lecom-modeler 0.30.0 → 0.30.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/lib/index.cjs CHANGED
@@ -38,7 +38,7 @@
38
38
  </root>
39
39
  </mxGraphModel>`,Sd=(e,t)=>{if(!e.length&&!t.length)return fr;let o=[...e.map(r=>r.id),...t.map(r=>r.id)];return Math.max(...o.map(r=>Number(r)))};var sh=e=>{let t=Object.values(pr),o=e.filter(i=>{var s;let a=(s=i._attributes)==null?void 0:s.style;return t.includes(a)}),n=e.filter(i=>{var s;let a=(s=i._attributes)==null?void 0:s.style;return["attribute-loop"].includes(a)}),r=[];for(let i of o){let{style:a}=i._attributes,s=bd[a],l=s==null?void 0:s(i,n);if(!l){console.warn(`Node ${a} not supported`);continue}r.push(l)}return r},ah=(e,t)=>{let o=e.filter(r=>{var i;return(i=r._attributes)==null?void 0:i.edge}),n=[];for(let r of o){let i=_d(r),a=t.find(c=>c.id===i.source),s=t.find(c=>c.id===i.target);((a==null?void 0:a.type)==="LANE"||(s==null?void 0:s.type)==="LANE")&&i.type!=="ANNOTATION_EDGE"||n.push(i)}return n},lh=(e,t)=>{let o=[];return e.forEach(n=>{var a,s;let r=(s=(a=Td)[n.type])==null?void 0:s.call(a,n);if(!r){console.warn(`Node ${n.type} not supported`);return}if(o.push(r),n.type==="TASK"&&n.data.attribute==="LOOP"){let l=vd(n,t);o.push(l)}}),o},ch=(e,t)=>{let o=[];return e.forEach(n=>{let r=Nd(n,t);o.push(r)}),o},dh=(e=[],t=[],o)=>{let n=lh(e,o),r=ch(t,e);return{mxGraphModel:{root:{_attributes:{version:"1.1",lastId:o},mxCell:[{_attributes:{id:"0"}},{_attributes:{id:"1",parent:"0"}},...n,...r]}}}},Md=(e=[],t=[],o)=>{let n=dh(e,t,o);return md(JSON.stringify(n),{compact:!0,spaces:0})},Pd=async e=>{var c,d,u,m,p;let t=await Yi(e),o=((d=(c=t==null?void 0:t.mxGraphModel)==null?void 0:c.root)==null?void 0:d.mxCell)||[],n=Number(((p=(m=(u=t==null?void 0:t.mxGraphModel)==null?void 0:u.root)==null?void 0:m._attributes)==null?void 0:p.lastId)||fr),r=sh(o),i=ah(o,r),a=Id(r),{nodes:s,edges:l}=Da(a,i);return{lastElementId:n,edges:l,nodes:Do(s)}};var ht=require("@xyflow/react"),Ki=require("react");var mr=require("@xyflow/react");var Xs=require("react/jsx-runtime"),te=i=>{var a=i,{type:e,position:t,className:o,nodeType:n}=a,r=Yt(a,["type","position","className","nodeType"]);let s=n==="TASK";return(0,Xs.jsx)(mr.Handle,N({type:e,position:t,className:H("size-2.5 border border-grey-400 bg-white relative",{"before:content-[''] before:absolute before:inset-[-16px] before:bg-transparent before:pointer-events-none":s,"before:content-[''] before:absolute before:inset-[-4px] before:bg-transparent before:pointer-events-none":!s},o)},r))},et=s=>{var l=s,{nodeId:e,nodeType:t,gatewayVariant:o,type:n,position:r,className:i}=l,a=Yt(l,["nodeId","nodeType","gatewayVariant","type","position","className"]);let{getEdges:c,getNodes:d}=(0,mr.useReactFlow)(),m=(()=>{if(n!=="source")return!1;let p=c();if(t==="TASK")return p.filter(x=>x.source===e).length>=2;if(t==="GATEWAY"&&o==="EXCLUSIVE")return p.filter(x=>x.source===e).length>=2;if(t==="START_EVENT"){let g=d();return p.filter(f=>{if(f.source!==e)return!1;let h=g.find(_=>_.id===f.target);return(h==null?void 0:h.type)!=="ANNOTATION"}).length>=1}return!1})();return(0,Xs.jsx)(mr.Handle,N({type:n,position:r,className:H("size-2.5 border border-grey-400 bg-white transition-all duration-200 relative",{"before:content-[''] before:absolute before:inset-[-16px] before:bg-transparent before:pointer-events-none":t==="TASK","before:content-[''] before:absolute before:inset-[-4px] before:bg-transparent before:pointer-events-none":t!=="TASK","opacity-50 cursor-not-allowed pointer-events-none":m,"hover:border-grey-500":!m},i),style:{pointerEvents:m?"none":"auto"}},a))};var Us=require("react"),co=require("@xyflow/react");var Ld=require("@xyflow/react"),Wi=()=>{let e=(0,Ld.useStoreApi)();return{getInternalNodes:()=>{let{nodeLookup:o}=e.getState();return Array.from(o.values())}}};var Fi=require("react/jsx-runtime"),$s=require("react"),uh=["top","right","bottom","left"],ph=["top-left","top-middle","top-right","right-middle","bottom-left","left-middle","bottom-right","bottom-middle"],Mt=r=>{var i=r,{nodeId:e,isVisible:t,offset:o=8}=i,n=Yt(i,["nodeId","isVisible","offset"]);let{getInternalNode:a,setNodes:s}=(0,co.useReactFlow)(),{getInternalNodes:l}=Wi(),{isMultipleSelection:c}=q(),d=(0,co.useStoreApi)(),u=(0,Us.useRef)(0),m=(0,Us.useRef)([]),p=({y:h,width:_,height:b})=>{cancelAnimationFrame(u.current),u.current=requestAnimationFrame(()=>{var $,Z;if(!e)return;let{nodeLookup:T,onNodesChange:E}=d.getState(),y=T.get(e);if(!y||y.type!=="LANE")return;let w=!y.parentId,C=w?y.id:y.parentId;if(!C)return;let A=Array.from(T.values()).filter(Y=>Y.type==="LANE"&&Y.parentId===C);if(!A.length)return;m.current.length===0&&(m.current=Ho(A).map(Y=>Y.id));let R=m.current.map(Y=>A.find(S=>S.id===Y)).filter(Boolean),G=[],M=0,P=R.findIndex(Y=>Y.id===y.id),X=!w&&P>0&&Math.abs(h-y.position.y)>.5;for(let Y=0;Y<R.length;Y++){let S=R[Y],V=S.id===y.id,D=Y===R.length-1;if(V){M=X?h+b:M+b;continue}let I=(Z=($=S.measured)==null?void 0:$.height)!=null?Z:0,z=w?_-ie.HEADER_WIDTH:_,L=I;w&&D&&(L=Math.max(ie.MIN_HEIGHT,b-M)),X&&Y===P-1&&(L=Math.max(ie.MIN_HEIGHT,h-M)),G.push({id:S.id,type:"dimensions",dimensions:{width:z,height:L},setAttributes:!0}),G.push({id:S.id,type:"position",position:{x:ie.HEADER_WIDTH,y:M}}),M+=L}w?G.push({id:C,type:"dimensions",dimensions:{width:_,height:b},setAttributes:!0}):G.push({id:C,type:"dimensions",dimensions:{width:_+ie.HEADER_WIDTH,height:M},setAttributes:!0}),E==null||E(G)})},g=({y:h,width:_,height:b})=>{var y;if(cancelAnimationFrame(u.current),m.current=[],!e)return;let T=a(e);if(!T||T.type!=="LANE"&&!T.parentId)return;let E=[...l()];if(T.type!=="LANE"){E=E.map(w=>w.id===e?v(N({},w),{width:_,height:b,measured:{width:_,height:b}}):w),E=lo(E),s(E);return}E=Ga(T,_,b,E,h),E=lo(E),E=Vo((y=T.parentId)!=null?y:T.id,E),s(E)};if(!(!c&&t))return null;let f={"--resize-offset":`${o}px`};return(0,Fi.jsxs)(Fi.Fragment,{children:[uh.map(h=>(0,$s.createElement)(co.NodeResizeControl,v(N({},n),{key:h,nodeId:e,position:h,variant:co.ResizeControlVariant.Line,className:"border-blue-400/90 border-dashed",style:f,onResize:(_,b)=>p(b),onResizeEnd:(_,b)=>g(b)}))),ph.map(h=>(0,$s.createElement)(co.NodeResizeControl,v(N({},n),{key:h,nodeId:e,position:h,className:"size-1.5 bg-blue-400 relative before:content-[''] before:absolute before:w-5 before:h-5 before:left-1/2 before:top-1/2 before:-translate-x-1/2 before:-translate-y-1/2 before:cursor-[inherit]",style:f,onResize:(_,b)=>p(b),onResizeEnd:(_,b)=>g(b)})))]})};var $i=require("@xyflow/react"),Zt=require("@produto-lecom/lecom-ui"),gt=require("react");var kd=require("zustand"),kn=(0,kd.create)(e=>({draggableNode:null,setDraggableNode:t=>{e({draggableNode:t})}}));var Xi=require("react"),Rd=(e,t=!1)=>{let[o,n]=(0,Xi.useState)({width:0,height:0});return(0,Xi.useEffect)(()=>{if(e.current&&t){let r=e.current.getBoundingClientRect();n({width:r.width,height:r.height})}},[t,e]),{dimensions:o}};var wo=require("@xyflow/react"),Dd=require("react"),fh=120,mh=12,Od=(e,t=!1,o)=>{let{getNode:n,getViewport:r}=(0,wo.useReactFlow)(),{instanceId:i}=q();return(0,Dd.useMemo)(()=>{var p,g;if(!t)return{position:wo.Position.Right,align:"start"};let a=n(e);if(!a)return{position:wo.Position.Right,align:"start"};let s=r(),l=a.position.x*s.zoom+s.x,c=(((p=a.measured)==null?void 0:p.width)||a.width||100)*s.zoom,d=(g=document.getElementById(`modeler-${i}`))==null?void 0:g.clientWidth;if(!d)return{position:wo.Position.Right,align:"start"};let u=(o==null?void 0:o.width)||fh;return{position:l+c+u+mh>d?wo.Position.Left:wo.Position.Right}},[i,e,t,o,n,r])};var Ui=require("@xyflow/react"),be=require("@produto-lecom/lecom-ui"),Vd=require("lucide-react");var Se=require("react/jsx-runtime"),Hd=({nodeId:e})=>{let{t}=(0,be.useTranslation)(),{updateNodeData:o,getEdges:n,getNode:r}=(0,Ui.useReactFlow)(),i=(0,Ui.useNodesData)(e),s=n().filter(p=>p.source===e).some(p=>{let g=r(p.target);return(g==null?void 0:g.type)==="END_EVENT"}),l=(i==null?void 0:i.data.variant)==="SUBPROCESS",c=u=>{o(e,{variant:(i==null?void 0:i.data.variant)===u?"":u})},d=u=>{o(e,{attribute:(i==null?void 0:i.data.attribute)===u?"":u})};return(0,Se.jsxs)(be.DropdownMenu,{children:[(0,Se.jsxs)(be.Tooltip,{children:[(0,Se.jsx)(be.TooltipTrigger,{asChild:!0,children:(0,Se.jsx)(be.DropdownMenuTrigger,{asChild:!0,children:(0,Se.jsx)(be.Button,{variant:"ghost",color:"grey",size:"small",iconButton:!0,children:(0,Se.jsx)(Vd.WrenchIcon,{})})})}),(0,Se.jsx)(be.TooltipContent,{color:"black",children:t("bpmn.task.menu.title")})]}),(0,Se.jsxs)(be.DropdownMenuContent,{align:"start",className:"w-60 bg-white text-grey-600",children:[(0,Se.jsxs)(be.DropdownMenuLabel,{className:"flex items-center gap-1",children:[(0,Se.jsx)("div",{className:"flex-1 body-medium-500",children:t("bpmn.task.menu.title")}),(0,Se.jsx)("div",{className:"flex items-center gap-1",children:Object.entries(zr).map(([u,m])=>{let p=u==="LOOP"&&(s||l),x=(()=>{if(u==="LOOP"&&s)return t("editor.task_menu.loop_not_allowed_when_connected_to_end");if(u==="LOOP"&&l)return t("editor.task_menu.loop_not_allowed_when_subprocess");if(u==="LOOP")return t("editor.task_menu.loop")})();return(0,Se.jsxs)(be.Tooltip,{children:[(0,Se.jsx)(be.TooltipTrigger,{asChild:!0,children:(0,Se.jsx)(be.Button,{variant:"ghost",color:"grey",size:"small",iconButton:!0,disabled:p,className:H({"bg-grey-100 text-blue-500":(i==null?void 0:i.data.attribute)===u,"opacity-50 cursor-not-allowed":p}),onClick:p?void 0:()=>d(u),children:(0,Se.jsx)(m.icon,{className:"stroke-inherit"})})}),x&&(0,Se.jsx)(be.TooltipContent,{color:"black",children:x})]},u)})})]}),(0,Se.jsx)(be.DropdownMenuGroup,{children:(0,Se.jsxs)(be.Tooltip,{children:[(0,Se.jsx)(be.TooltipTrigger,{asChild:!0,children:(0,Se.jsx)("div",{className:H({"cursor-not-allowed":s}),children:(0,Se.jsxs)(be.DropdownMenuItem,{className:H({"bg-grey-100 text-blue-500":(i==null?void 0:i.data.variant)==="SCRIPT","opacity-50":s}),disabled:s,onClick:()=>c("SCRIPT"),children:[(0,Se.jsx)(Br.SCRIPT.icon,{className:"stroke-current"}),t(`bpmn.task.variant.${"SCRIPT".toLowerCase()}`)]})})}),s&&(0,Se.jsx)(be.TooltipContent,{color:"black",children:t("editor.task_menu.script_not_allowed_when_connected_to_end")})]})})]})]})};var ke=require("react/jsx-runtime"),qo={START_EVENT:{type:"START_EVENT",icon:Un,label:"bpmn.start_event.variant.default"},END_EVENT:{type:"END_EVENT",icon:rn,label:"bpmn.end_event.variant.default"},TASK:{type:"TASK",icon:Un,label:"bpmn.task.variant.default"},ANNOTATION:{type:"ANNOTATION",icon:Or,label:"bpmn.annotation.variant.default"}},gh={EXCLUSIVE:{type:"GATEWAY",variant:"EXCLUSIVE",icon:ln,label:"bpmn.gateway.variant.exclusive"},PARALLEL:{type:"GATEWAY",variant:"PARALLEL",icon:dn,label:"bpmn.gateway.variant.parallel"},COMPLEX:{type:"GATEWAY",variant:"COMPLEX",icon:sn,label:"bpmn.gateway.variant.complex"}},at=({nodeId:e,nodeType:t,nodeVariant:o})=>{let n=(0,gt.useRef)(null),r=(0,gt.useRef)(null),{t:i}=(0,Zt.useTranslation)(),{setDraggableNode:a}=kn(),{getEdges:s,getNodes:l,getNode:c}=(0,$i.useReactFlow)(),{setIsDragging:d,mode:u,isConnecting:m,isDragging:p,isMultipleSelection:g}=q(),x=c(e),f=!!(x!=null&&x.selected)&&!x.dragging&&!m&&!p&&!g,{dimensions:h}=Rd(n,f),{position:_}=Od(e,f,h),[b,T]=(0,gt.useState)(void 0),E=l(),y=s(),w=o==="SUBPROCESS",C=(0,gt.useRef)(null),A=(0,gt.useRef)(!1),R=(0,gt.useCallback)(()=>{C.current!==null&&(clearTimeout(C.current),C.current=null),A.current=!1,d(!1),a(null),T(void 0)},[d,a]);(0,gt.useEffect)(()=>{let L=k=>{A.current&&k.buttons===0&&R()};return document.addEventListener("dragend",R),document.addEventListener("mousemove",L),()=>{document.removeEventListener("dragend",R),document.removeEventListener("mousemove",L)}},[R]);let G=(0,gt.useCallback)((L,k)=>{A.current=!0,d(!1),a({type:k.type,variant:k.variant,attribute:k.attribute,icon:k.icon}),k.icon&&T((0,ke.jsx)(k.icon,{})),L.dataTransfer.effectAllowed="move",L.dataTransfer.setData("sourceId",e),r.current&&L.dataTransfer.setDragImage(r.current,10,10),C.current=setTimeout(()=>{C.current=null,d(!0)},100)},[e,a,d]),M=(0,gt.useCallback)(()=>{R()},[R]),P=[{component:(0,ke.jsx)(Pi,{elementId:e})}],X=()=>{if(u==="view")return[];let L=!y.some(k=>{var O;return k.source===e&&((O=E.find(B=>B.id===k.target))==null?void 0:O.type)!=="ANNOTATION"});return[{component:(0,ke.jsx)(vn,{nodeId:e,disabled:!L,tooltipMessage:L?void 0:i("editor.toolbar.start_event_limit_reached")})},qo.TASK,qo.ANNOTATION,...P]},$=()=>u==="view"?[{component:(0,ke.jsx)(To,{elementId:e})}]:[{component:(0,ke.jsx)(To,{elementId:e})},...w?[]:[{component:(0,ke.jsx)(Hd,{nodeId:e})}],{component:(0,ke.jsx)(vn,{nodeId:e})},qo.TASK,...Object.values(gh),...P],Z=()=>u==="view"?[{component:(0,ke.jsx)(To,{elementId:e})}]:[{component:(0,ke.jsx)(To,{elementId:e})},{component:(0,ke.jsx)(vn,{nodeId:e})},qo.TASK,qo.ANNOTATION,...P],Y=()=>u==="view"?[]:[qo.ANNOTATION,...P],S=()=>u==="view"?[]:[{component:(0,ke.jsx)(vn,{nodeId:e})},qo.ANNOTATION,...P],V=()=>u==="view"?[]:[{component:(0,ke.jsx)(vn,{nodeId:e})},...P],D=()=>u==="view"?[]:[...P],z=(L=>{switch(L){case"START_EVENT":return X();case"TASK":return $();case"GATEWAY":return Z();case"END_EVENT":return Y();case"LANE":return S();case"ANNOTATION":return V();case"UNSUPPORTED":return D();default:return[]}})(t);if(!(z.length===0||u==="readonly"))return(0,ke.jsxs)($i.NodeToolbar,{position:_,align:"start",className:"-top-8",isVisible:f,children:[(0,ke.jsx)("div",{ref:n,className:"flex items-center gap-1 px-3 py-2 bg-white rounded-sm shadow-md",children:z.map((L,k)=>{if(L.component)return(0,ke.jsx)("div",{children:L.component},k);let O={sourceNodeType:t,targetNodeType:L.type,sourceNodeId:e,nodes:E,edges:y},B=Uc(O),ee={gateway_limit_reached:i("editor.toolbar.gateway_limit_reached"),start_event_limit_reached:i("editor.toolbar.start_event_limit_reached"),start_event_already_exists:i("editor.toolbar.start_event_already_exists"),script_to_end_not_allowed:i("editor.toolbar.script_to_end_not_allowed"),loop_to_end_not_allowed:i("editor.toolbar.loop_to_end_not_allowed"),initial_activity_to_end_not_allowed:i("editor.toolbar.initial_activity_to_end_not_allowed"),final_activity_cannot_connect:i("editor.toolbar.final_activity_cannot_connect"),activity_has_outgoing_connections:i("editor.toolbar.activity_has_outgoing_connections"),task_limit_reached:i("editor.toolbar.task_limit_reached")},oe=B.shouldDisable&&B.reason?ee[B.reason]||i(L.label):i(L.label)||"";return(0,ke.jsxs)(Zt.Tooltip,{children:[(0,ke.jsx)(Zt.TooltipTrigger,{asChild:!0,children:(0,ke.jsx)(Zt.Button,{variant:"ghost",color:"grey",size:"small",iconButton:!0,draggable:!B.shouldDisable,disabled:B.shouldDisable,className:B.shouldDisable?"opacity-50 cursor-not-allowed":"",onDragStart:B.shouldDisable?void 0:K=>G(K,L),onDragEnd:B.shouldDisable?void 0:M,children:L.icon&&(0,ke.jsx)(L.icon,{size:16})})}),(0,ke.jsx)(Zt.TooltipContent,{color:"black",children:oe})]},k)})}),(0,ke.jsx)("div",{ref:r,className:"absolute w-0 h-0 top-0 left-0 z-[-1] bg-transparent",children:b})]})};var Ue=require("react/jsx-runtime"),Gd=({id:e,data:t,selected:o,dragging:n})=>{let{updateNodeData:r,setNodes:i}=(0,ht.useReactFlow)(),{inProgress:a,fromNode:s}=(0,ht.useConnection)(),{mode:l}=q(),c=a&&(s==null?void 0:s.id)!==e,d=(0,Ki.useCallback)(p=>{let _=p.split(`
40
40
  `),b=_.reduce((w,C)=>Math.max(w,C.length),0),T=_.length,E=Math.max(yn.MIN_WIDTH,b*7+32),y=Math.max(yn.MIN_HEIGHT,T*20+24);i(w=>w.map(C=>C.id===e?v(N({},C),{width:E,height:y,style:v(N({},C.style),{width:E,height:y})}):C))},[e,i]),u=(0,Ki.useCallback)(p=>{r(e,{label:p}),d(p)},[e,r,d]),m=(0,Ki.useCallback)(p=>{d(p)},[d]);return(0,Ue.jsxs)("div",{className:H("relative w-full h-full min-w-44 min-h-16 flex text-grey-400 hover:text-grey-500 bg-white rounded-sm border-l-2 border-current before:absolute before:top-0 before:left-0 before:w-4 before:border-t-2 before:border-current after:absolute after:bottom-0 after:left-0 after:w-4 after:border-t-2 after:border-current hover:shadow-md transition-colors duration-75",{"text-blue-500 hover:text-blue-600 shadow-md":o,"border-red-500 border-l-[3px] shadow-[0_0_5px_rgba(255,0,0,0.5)] before:absolute before:top-0 before:left-0 before:w-4 before:border-t-2 before:border-red-500 after:absolute after:bottom-0 after:left-0 after:w-4 after:border-t-2 after:border-red-500":t.hasError}),children:[(0,Ue.jsx)(Ze,{value:t.label,className:"m-1 text-grey-600 text-left",onChange:u,onInput:m,skipFirstCharValidation:!0}),(0,Ue.jsx)(at,{nodeId:e,nodeType:"ANNOTATION"}),l==="edit"&&(0,Ue.jsx)(Mt,{nodeId:e,minWidth:yn.MIN_WIDTH,minHeight:yn.MIN_HEIGHT,isVisible:!n&&o}),!a&&(0,Ue.jsxs)(Ue.Fragment,{children:[(0,Ue.jsx)(te,{type:"source",position:ht.Position.Left,id:"left"}),(0,Ue.jsx)(te,{type:"source",position:ht.Position.Right,id:"right"}),(0,Ue.jsx)(te,{type:"source",position:ht.Position.Top,id:"top"}),(0,Ue.jsx)(te,{type:"source",position:ht.Position.Bottom,id:"bottom"})]}),(!a||c)&&(0,Ue.jsxs)(Ue.Fragment,{children:[(0,Ue.jsx)(te,{type:"target",position:ht.Position.Left,id:"left",className:H({"annotation-handle":c})}),(0,Ue.jsx)(te,{type:"target",position:ht.Position.Right,id:"right",className:H({"annotation-handle":c})}),(0,Ue.jsx)(te,{type:"target",position:ht.Position.Top,id:"top",className:H({"annotation-handle":c})}),(0,Ue.jsx)(te,{type:"target",position:ht.Position.Bottom,id:"bottom",className:H({"annotation-handle":c})})]})]})};var yt=require("@xyflow/react"),Bd=require("react");var Be=require("react/jsx-runtime"),zd=({id:e,data:t,selected:o,dragging:n})=>{let{updateNodeData:r}=(0,yt.useReactFlow)(),{inProgress:i,fromNode:a}=(0,yt.useConnection)(),{mode:s,reconnectingEdgeId:l}=q(),[c,d]=(0,Bd.useState)(!1),u=i&&(a==null?void 0:a.id)!==e||!!l,m=x=>{r(e,{label:x})},p=()=>{d(!0)},g=()=>{d(!1)};return(0,Be.jsxs)("div",{className:"relative",onDoubleClick:p,children:[(0,Be.jsx)(rn,{className:H("w-full h-full min-w-9 min-h-9 hover:stroke-[#d33b3b] transition-colors duration-75",{"stroke-blue-500 hover:stroke-blue-600":o,"stroke-red-500 hover:stroke-red-600 drop-shadow-[0_0_3px_rgba(255,0,0,0.5)] fill-red-100":t.hasError})}),(0,Be.jsx)("div",{className:"absolute mt-2 left-1/2 -translate-x-1/2 max-w-80 w-max",children:(0,Be.jsx)(Ze,{value:t.label,isEditing:c,onBlur:g,onChange:m})}),(0,Be.jsx)(at,{nodeId:e,nodeType:"END_EVENT"}),s==="edit"&&(0,Be.jsx)(Mt,{nodeId:e,isVisible:!n&&o,minWidth:Fr.MIN_WIDTH,minHeight:Fr.MIN_HEIGHT,offset:4,keepAspectRatio:!0}),(!i||u)&&(0,Be.jsxs)(Be.Fragment,{children:[(0,Be.jsx)(te,{type:"target",position:yt.Position.Left,id:"left",className:H({"event-handle":u})}),(0,Be.jsx)(te,{type:"target",position:yt.Position.Right,id:"right",className:H({"event-handle":u})}),(0,Be.jsx)(te,{type:"target",position:yt.Position.Top,id:"top",className:H({"event-handle":u})}),(0,Be.jsx)(te,{type:"target",position:yt.Position.Bottom,id:"bottom",className:H({"event-handle":u})})]}),!i&&(0,Be.jsxs)(Be.Fragment,{children:[(0,Be.jsx)(te,{type:"source",position:yt.Position.Left,id:"left"}),(0,Be.jsx)(te,{type:"source",position:yt.Position.Right,id:"right"}),(0,Be.jsx)(te,{type:"source",position:yt.Position.Top,id:"top"}),(0,Be.jsx)(te,{type:"source",position:yt.Position.Bottom,id:"bottom"})]})]})};var xt=require("@xyflow/react"),qi=require("react");var ze=require("react/jsx-runtime"),Yd=({id:e,data:t,selected:o,dragging:n})=>{let r=gs[t.variant].icon,{updateNodeData:i}=(0,xt.useReactFlow)(),{inProgress:a,fromNode:s}=(0,xt.useConnection)(),{mode:l,reconnectingEdgeId:c}=q(),[d,u]=(0,qi.useState)(!1),m=a&&(s==null?void 0:s.id)!==e||!!c,p=(0,qi.useCallback)(f=>{i(e,{label:f})},[e,i]),g=()=>{u(!0)},x=()=>{u(!1)};return(0,ze.jsxs)("div",{className:"relative",onDoubleClick:g,children:[(0,ze.jsx)(r,{className:H("w-full h-full min-w-14 min-h-14 stroke-1 stroke-grey-400 hover:stroke-grey-500 transition-colors duration-75",{"stroke-blue-500 hover:stroke-blue-600":o,"stroke-red-500 hover:stroke-red-600 drop-shadow-[0_0_3px_rgba(255,0,0,0.5)]":t.hasError})}),(0,ze.jsx)("div",{className:"absolute mt-2 left-1/2 -translate-x-1/2 max-w-80 w-max",children:(0,ze.jsx)(Ze,{value:t.label,isEditing:d,onBlur:x,onChange:p})}),(0,ze.jsx)(at,{nodeId:e,nodeType:"GATEWAY"}),l==="edit"&&(0,ze.jsx)(Mt,{nodeId:e,isVisible:!n&&o,minWidth:Xr.MIN_WIDTH,minHeight:Xr.MIN_HEIGHT,offset:2,keepAspectRatio:!0}),(!a||m)&&(0,ze.jsxs)(ze.Fragment,{children:[(0,ze.jsx)(te,{type:"target",position:xt.Position.Left,id:"left",className:H({"gateway-handle":m})}),(0,ze.jsx)(te,{type:"target",position:xt.Position.Right,id:"right",className:H({"gateway-handle":m})}),(0,ze.jsx)(te,{type:"target",position:xt.Position.Top,id:"top",className:H({"gateway-handle":m})}),(0,ze.jsx)(te,{type:"target",position:xt.Position.Bottom,id:"bottom",className:H({"gateway-handle":m})})]}),!a&&(0,ze.jsxs)(ze.Fragment,{children:[(0,ze.jsx)(et,{type:"source",position:xt.Position.Left,id:"left",nodeId:e,nodeType:"GATEWAY",gatewayVariant:t.variant}),(0,ze.jsx)(et,{type:"source",position:xt.Position.Right,id:"right",nodeId:e,nodeType:"GATEWAY",gatewayVariant:t.variant}),(0,ze.jsx)(et,{type:"source",position:xt.Position.Top,id:"top",nodeId:e,nodeType:"GATEWAY",gatewayVariant:t.variant}),(0,ze.jsx)(et,{type:"source",position:xt.Position.Bottom,id:"bottom",nodeId:e,nodeType:"GATEWAY",gatewayVariant:t.variant})]})]})};var Wd=require("@xyflow/react"),Vt=require("@produto-lecom/lecom-ui"),hh=require("lucide-react");var Fd=require("react/jsx-runtime");var Et=require("@xyflow/react"),Xd=require("react");var Ye=require("react/jsx-runtime"),Ud=({id:e,data:t,selected:o,dragging:n})=>{let{updateNodeData:r}=(0,Et.useReactFlow)(),{inProgress:i,fromNode:a}=(0,Et.useConnection)(),{mode:s,reconnectingEdgeId:l}=q(),[c,d]=(0,Xd.useState)(!1),u=i&&(a==null?void 0:a.id)!==e||!!l,m=x=>{r(e,{label:x})},p=()=>{d(!0)},g=()=>{d(!1)};return(0,Ye.jsxs)("div",{className:"relative",onDoubleClick:p,children:[(0,Ye.jsx)(Gr,{className:H("w-full h-full min-w-9 min-h-9 hover:stroke-[#54890b] transition-colors duration-75",{"stroke-blue-500 hover:stroke-blue-600":o,"stroke-red-500 hover:stroke-red-600 drop-shadow-[0_0_3px_rgba(255,0,0,0.5)] fill-red-100":t.hasError})}),(0,Ye.jsx)("div",{className:"absolute mt-2 left-1/2 -translate-x-1/2 max-w-80 w-max",children:(0,Ye.jsx)(Ze,{value:t.label,isEditing:c,onBlur:g,onChange:m})}),(0,Ye.jsx)(at,{nodeId:e,nodeType:"START_EVENT"}),s==="edit"&&(0,Ye.jsx)(Mt,{nodeId:e,isVisible:!n&&o,minWidth:Wr.MIN_WIDTH,minHeight:Wr.MIN_HEIGHT,offset:4,keepAspectRatio:!0}),(!i||u)&&(0,Ye.jsxs)(Ye.Fragment,{children:[(0,Ye.jsx)(te,{type:"target",position:Et.Position.Left,id:"left",className:H({"event-handle":u})}),(0,Ye.jsx)(te,{type:"target",position:Et.Position.Right,id:"right",className:H({"event-handle":u})}),(0,Ye.jsx)(te,{type:"target",position:Et.Position.Top,id:"top",className:H({"event-handle":u})}),(0,Ye.jsx)(te,{type:"target",position:Et.Position.Bottom,id:"bottom",className:H({"event-handle":u})})]}),!i&&(0,Ye.jsxs)(Ye.Fragment,{children:[(0,Ye.jsx)(et,{type:"source",position:Et.Position.Left,id:"left",nodeId:e,nodeType:"START_EVENT"}),(0,Ye.jsx)(et,{type:"source",position:Et.Position.Right,id:"right",nodeId:e,nodeType:"START_EVENT"}),(0,Ye.jsx)(et,{type:"source",position:Et.Position.Top,id:"top",nodeId:e,nodeType:"START_EVENT"}),(0,Ye.jsx)(et,{type:"source",position:Et.Position.Bottom,id:"bottom",nodeId:e,nodeType:"START_EVENT"})]})]})};var Zd=require("@produto-lecom/lecom-ui"),bt=require("@xyflow/react"),xr=require("react");var gr=60,Zi=(e,t)=>{var a;let o=[],n=`${t} `;for(let s of e){if(!(s.type==="TASK"))continue;let c=(a=s.data)==null?void 0:a.label;if(c&&c.startsWith(n)){let d=c.substring(n.length);/^\d{1,15}$/.test(d)&&o.push(parseInt(d,10))}}let r=o.length>0?Math.max(...o)+1:1,i=`${t} ${r}`;return i.length<=gr?i:i.substring(0,gr).trim()},Rn=(e,t)=>{var s;let o=new Set;for(let l of t)l.type==="TASK"&&((s=l.data)!=null&&s.label)&&o.add(l.data.label);let n=e;if(n.length>gr&&(n=n.substring(0,gr).trim()),!o.has(n))return n;let r=n.replace(/\s+\(\d+\)$/,""),i=2,a=o.size+2;for(;i<=a;){let l=` (${i})`,c=gr-l.length,u=`${r.substring(0,c).trim()}${l}`;if(!o.has(u))return u;i++}return n};var hr=require("react/jsx-runtime"),$d=e=>(0,hr.jsxs)("svg",v(N({width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e),{children:[(0,hr.jsx)("circle",{cx:"12",cy:"12",r:"10",fill:"#10B981"}),(0,hr.jsx)("path",{d:"M7 12L10 15L17 8",stroke:"white",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})]}));var Ks=require("react/jsx-runtime"),Kd=e=>(0,Ks.jsx)("svg",v(N({width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e),{children:(0,Ks.jsx)("path",{d:"M12 2C8.13 2 5 5.13 5 9C5 14.25 12 22 12 22C12 22 19 14.25 19 9C19 5.13 15.87 2 12 2ZM12 11.5C10.62 11.5 9.5 10.38 9.5 9C9.5 7.62 10.62 6.5 12 6.5C13.38 6.5 14.5 7.62 14.5 9C14.5 10.38 13.38 11.5 12 11.5Z",fill:"#38bdf8"})}));var yr=require("react/jsx-runtime"),qd=e=>(0,yr.jsxs)("svg",v(N({width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e),{children:[(0,yr.jsx)("circle",{cx:"12",cy:"12",r:"10",fill:"#EF4444"}),(0,yr.jsx)("path",{d:"M8 8L16 16M8 16L16 8",stroke:"white",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})]}));var ge=require("react/jsx-runtime"),yh={APROVADO:$d,EM_ANDAMENTO:Kd,REJEITADO:qd},qs={APROVADO:"border-green-500 border-[3px] border-solid",EM_ANDAMENTO:"border-turquoise-400 border-[3px] border-solid",REJEITADO:"border-red-500 border-[3px] border-solid",default:"border-grey-400 border-2 border-solid",error:"border-red-500 border-[3px] shadow-[0_0_5px_rgba(255,0,0,0.5)]"},Jd=({id:e,data:t,selected:o,dragging:n})=>{let{t:r}=(0,Zd.useTranslation)(),{toast:i}=st(),{updateNodeData:a,getNodes:s,setNodes:l}=(0,bt.useReactFlow)(),{inProgress:c,fromNode:d}=(0,bt.useConnection)(),{mode:u,onSubprocessValidationClick:m,reconnectingEdgeId:p}=q(),{getTaskStatus:g}=Go(),x=c&&(d==null?void 0:d.id)!==e||!!p,f=g(e),h=t.variant==="SUBPROCESS",_=!!t.variant&&!h||!!f,b=!!t.attribute||h,T=(0,xr.useCallback)(P=>{let Y=_||b?80:40,S=P.split(`
41
- `),V=S.reduce((L,k)=>Math.max(L,k.length),0),D=S.length,I=Math.max(hn.MIN_WIDTH,V*7+64),z=Math.max(hn.MIN_HEIGHT,D*24+Y);l(L=>L.map(k=>k.id===e?v(N({},k),{width:I,height:z,style:v(N({},k.style),{width:I,height:z})}):k))},[e,l,_,b]),E=(0,xr.useCallback)(P=>{let X=P.trim(),$=t.label||"";if(X===$)return;let Z=X,Y=s();if(!(X&&X!=="")){Z=Zi(Y,r("bpmn.task.label.prefix")),a(e,{label:Z}),T(Z),i({variant:"warning",content:(0,ge.jsxs)(ge.Fragment,{children:[r("bpmn.task.feedback.label_empty.prefix")," ",(0,ge.jsx)("strong",{children:Z})]})});return}let V=Rn(Z,Y);V===$||(a(e,{label:V}),T(V),V!==Z&&i({variant:"warning",content:(0,ge.jsxs)(ge.Fragment,{children:[r("bpmn.task.feedback.label_already_exists.prefix")," ",(0,ge.jsx)("strong",{children:X})," ",r("bpmn.task.feedback.label_already_exists.middle")," ",(0,ge.jsx)("strong",{children:V})]})}))},[t.label,s,e,r,a,T,i]),y=(0,xr.useCallback)(P=>{T(P)},[T]),w=(0,xr.useCallback)(()=>{i({variant:"error",content:r("bpmn.task.feedback.invalid_first_character")})},[r,i]),C=f?yh[f]:null,A=t.variant?Br[t.variant].icon:null,R=t.attribute?zr[t.attribute].icon:null,G=()=>t.hasError?qs.error:f?qs[f]:qs.default,M=()=>{m==null||m({id:e,type:"sub_process",label:t.label})};return(0,ge.jsxs)("div",{className:H("relative w-full h-full min-w-44 min-h-24 flex flex-col items-stretch justify-stretch bg-white border-2 border-grey-400 hover:border-grey-500 rounded-md hover:shadow-md transition-colors duration-75",G(),{"border-blue-500 hover:border-blue-600 shadow-md":o,"border-red-500 hover:border-red-600 shadow-[0_0_5px_rgba(255,0,0,0.5)]":t.hasError}),children:[(0,ge.jsx)("div",{className:"flex-1 flex items-stretch justify-stretch overflow-hidden",children:(0,ge.jsx)(Ze,{value:t.label,maxLength:60,className:H({"py-10 px-8":_||b}),onChange:E,onInput:y,onInvalidFirstCharacter:w})}),A&&(0,ge.jsx)("div",{className:H("absolute flex items-center p-1",h?"bottom-0 left-1/2 -translate-x-1/2":"top-0 left-0"),children:(0,ge.jsx)(A,{size:16,className:H(t.hasError?"text-red-500":"text-grey-500",h&&"cursor-pointer"),onClick:h?M:void 0})}),R&&(0,ge.jsx)("div",{className:"absolute bottom-0 left-0 w-full flex items-center justify-center",children:(0,ge.jsx)("div",{className:H("flex items-center w-16 p-1",h?"justify-between":"justify-center"),children:(0,ge.jsx)(R,{size:16,className:H(t.hasError?"text-red-500":"text-grey-500")})})}),C&&(0,ge.jsx)("div",{className:"absolute top-0 right-0 flex items-center p-1",children:(0,ge.jsx)(C,{})}),(0,ge.jsx)(at,{nodeId:e,nodeType:"TASK",nodeVariant:t.variant}),u==="edit"&&(0,ge.jsx)(Mt,{nodeId:e,isVisible:!n&&o,minWidth:hn.MIN_WIDTH,minHeight:hn.MIN_HEIGHT}),(!c||x)&&(0,ge.jsxs)(ge.Fragment,{children:[(0,ge.jsx)(te,{type:"target",position:bt.Position.Left,id:"left",className:H({"task-handle":x})}),(0,ge.jsx)(te,{type:"target",position:bt.Position.Right,id:"right",className:H({"task-handle":x})}),(0,ge.jsx)(te,{type:"target",position:bt.Position.Top,id:"top",className:H({"task-handle":x})}),(0,ge.jsx)(te,{type:"target",position:bt.Position.Bottom,id:"bottom",className:H({"task-handle":x})})]}),!c&&(0,ge.jsxs)(ge.Fragment,{children:[(0,ge.jsx)(et,{type:"source",position:bt.Position.Left,id:"left",nodeId:e,nodeType:"TASK"}),(0,ge.jsx)(et,{type:"source",position:bt.Position.Right,id:"right",nodeId:e,nodeType:"TASK"}),(0,ge.jsx)(et,{type:"source",position:bt.Position.Top,id:"top",nodeId:e,nodeType:"TASK"}),(0,ge.jsx)(et,{type:"source",position:bt.Position.Bottom,id:"bottom",nodeId:e,nodeType:"TASK"})]})]})};var Zs=require("@xyflow/react");var uo=require("react/jsx-runtime"),Qd=({id:e,data:t})=>(0,uo.jsxs)(uo.Fragment,{children:[(0,uo.jsx)("div",{className:"relative w-full h-full min-w-32 min-h-16 flex items-center justify-center bg-white border-2 border-red-400 rounded-sm overflow-hidden",children:t.label}),(0,uo.jsx)(at,{nodeId:e,nodeType:"UNSUPPORTED"}),(0,uo.jsx)(te,{type:"source",position:Zs.Position.Right}),(0,uo.jsx)(te,{type:"target",position:Zs.Position.Left})]});var Oe=require("@xyflow/react"),Ji=require("react");var ve=require("react/jsx-runtime"),Q2={type:"MESSAGE_EDGE",reconnectable:!0,markerEnd:{type:Oe.MarkerType.Arrow},data:{label:""}},jd=({id:e,source:t,target:o,data:n,selected:r,sourcePosition:i,targetPosition:a,sourceHandleId:s,targetHandleId:l})=>{var L;let{zoom:c}=(0,Oe.useViewport)(),{updateEdgeData:d}=(0,Oe.useReactFlow)(),{isMultipleSelection:u,mode:m,instanceId:p}=q(),g=m!=="edit",[x,f]=(0,Ji.useState)(!1),{reconnectingHandle:h,cursorPosition:_,hoveredNodeId:b,reconnectingSide:T,isValidReconnection:E,handleReconnectStart:y}=Hi({edgeId:e,source:t,target:o,instanceId:p,isReadOnly:g}),w=(0,Oe.useInternalNode)(t),C=(0,Oe.useInternalNode)(o),{sx:A,sy:R,tx:G,ty:M,sourcePos:P,targetPos:X}=(0,Ji.useMemo)(()=>{var ne,le;if(!w||!C)return{sx:0,sy:0,tx:0,ty:0,sourcePos:Oe.Position.Left,targetPos:Oe.Position.Right};let k=gn(w,C),O=s?i:k.sourcePos,B=l?a:k.targetPos,ee=(U,Te,W)=>{var ue,Ne,We,Qe,ot,ct;let{x:j,y:ce}=U.internals.positionAbsolute,re=(We=(Ne=(ue=U.measured)==null?void 0:ue.width)!=null?Ne:U.width)!=null?We:0,fe=(ct=(ot=(Qe=U.measured)==null?void 0:Qe.height)!=null?ot:U.height)!=null?ct:0;switch(Te){case Oe.Position.Top:return{x:j+re*W,y:ce};case Oe.Position.Bottom:return{x:j+re*W,y:ce+fe};case Oe.Position.Left:return{x:j,y:ce+fe*W};case Oe.Position.Right:return{x:j+re,y:ce+fe*W};default:return{x:j+re/2,y:ce+fe/2}}},oe=(ne=n==null?void 0:n.sourceOffset)!=null?ne:.5,K=(le=n==null?void 0:n.targetOffset)!=null?le:.5,J=w?ee(w,O,oe).x:k.sx,Q=w?ee(w,O,oe).y:k.sy,ae=C?ee(C,B,K).x:k.tx,F=C?ee(C,B,K).y:k.ty;return h==="source"&&_?(J=_.x,Q=_.y,T&&(O=T)):h==="target"&&_&&(ae=_.x,F=_.y,T&&(B=T)),{sx:J,sy:Q,tx:ae,ty:F,sourcePos:O,targetPos:B}},[w,C,s,l,i,a,h,_,T,n==null?void 0:n.sourceOffset,n==null?void 0:n.targetOffset]);if(!w||!C)return null;let[$,Z,Y]=(0,Oe.getSmoothStepPath)({sourceX:A,sourceY:R,targetX:G,targetY:M,sourcePosition:P,targetPosition:X}),S=r||(w==null?void 0:w.selected)||(C==null?void 0:C.selected),V=S?"sequence-edge-marker-highlighted":"sequence-edge-marker",D=x||(n==null?void 0:n.label.trim().length)>0,I=()=>{f(!1)},z=k=>{d(e,{label:k.trim()})};return(0,ve.jsx)(ve.Fragment,{children:(0,ve.jsxs)("g",{className:H("group bpmn-arrow-edge",{"is-highlighted":S}),onDoubleClick:()=>!g&&f(!0),children:[(0,ve.jsx)("path",{d:$,fill:"none",stroke:"transparent",strokeWidth:Math.max(12,12/c),style:{pointerEvents:"stroke",cursor:"pointer"}}),(0,ve.jsxs)("g",{className:H("text-grey-500 transition-colors duration-75 group-hover:text-grey-800",{"text-blue-500 group-hover:text-blue-600":S}),children:[(0,ve.jsx)(Oe.BaseEdge,{id:e,path:$,interactionWidth:0,markerEnd:`url(#${V})`,strokeDasharray:4,className:H("stroke-2 stroke-current transition-[stroke,filter] duration-75 group-hover:drop-shadow-[0_0_3px_rgba(0,0,0,0.2)]",{"stroke-red-500 hover:stroke-red-600":(n==null?void 0:n.hasError)||h&&b&&!E,"stroke-green-500":h&&b&&E,"stroke-blue-500 hover:stroke-blue-600 drop-shadow-[0_0_3px_rgba(59,130,246,0.5)]":S&&!(n!=null&&n.hasError)&&!h})}),(0,ve.jsxs)(Oe.EdgeLabelRenderer,{children:[(0,ve.jsxs)("div",{className:"absolute z-[3000] pointer-events-auto flex flex-col items-center gap-1",style:{transform:`translate(-50%, -50%) translate(${Z}px, ${Y}px)`},children:[r&&!u&&(0,ve.jsx)(An,{sx:A,sy:R,tx:G,ty:M,hasLabel:!!((L=n==null?void 0:n.label)!=null&&L.trim()),children:(0,ve.jsx)(In,{edgeId:e,edgeType:"MESSAGE_EDGE"})}),D&&(0,ve.jsx)(Ze,{value:n==null?void 0:n.label,className:"min-w-8 max-w-56 bg-white rounded-md px-2 py-1 text-xs",isEditing:x,onBlur:I,onChange:z})]}),r&&!u&&!g&&(0,ve.jsxs)(ve.Fragment,{children:[(0,ve.jsx)("div",{className:"absolute z-[1000] pointer-events-none",style:{transform:`translate(-50%, -50%) translate(${A}px, ${R}px)`},children:(0,ve.jsxs)("svg",{width:12/c,height:12/c,style:{overflow:"visible",position:"absolute",left:"50%",top:"50%",transform:"translate(-50%, -50%)"},children:[(0,ve.jsx)("circle",{cx:6/c,cy:6/c,r:4/c,fill:h==="source"?"#3b82f6":"#fff",stroke:"#3b82f6",strokeWidth:2/c,className:"pointer-events-none"}),(0,ve.jsx)("circle",{cx:6/c,cy:6/c,r:6/c,fill:"none",stroke:"#3b82f6",strokeWidth:1/c,opacity:h==="source"?.6:.3,className:"pointer-events-none"}),(0,ve.jsx)("circle",{cx:6/c,cy:6/c,r:8/c,fill:"transparent",className:H("pointer-events-auto",{"cursor-move":!h||h!=="source","cursor-not-allowed":h==="source"&&b&&!E,"cursor-grabbing":h==="source"&&(!b||E)}),onMouseDown:k=>y("source",k.nativeEvent)})]})}),(0,ve.jsx)("div",{className:"absolute z-[1000] pointer-events-none",style:{transform:`translate(-50%, -50%) translate(${G}px, ${M}px)`},children:(0,ve.jsxs)("svg",{width:12/c,height:12/c,style:{overflow:"visible",position:"absolute",left:"50%",top:"50%",transform:"translate(-50%, -50%)"},children:[(0,ve.jsx)("circle",{cx:6/c,cy:6/c,r:4/c,fill:h==="target"?"#3b82f6":"#fff",stroke:"#3b82f6",strokeWidth:2/c,className:"pointer-events-none"}),(0,ve.jsx)("circle",{cx:6/c,cy:6/c,r:6/c,fill:"none",stroke:"#3b82f6",strokeWidth:1/c,opacity:h==="target"?.6:.3,className:"pointer-events-none"}),(0,ve.jsx)("circle",{cx:6/c,cy:6/c,r:8/c,fill:"transparent",className:H("pointer-events-auto",{"cursor-move":!h||h!=="target","cursor-not-allowed":h==="target"&&b&&!E,"cursor-grabbing":h==="target"&&(!b||E)}),onMouseDown:k=>y("target",k.nativeEvent)})]})})]})]})]})]})})};var Zo=require("@xyflow/react"),Er=require("react/jsx-runtime"),eu=({toX:e,toY:t,fromNode:o})=>{var u,m;if(!o)return null;let{internals:{positionAbsolute:{x:n,y:r}},measured:i}=o,a=(u=i.width)!=null?u:0,s=(m=i.height)!=null?m:0,c=[{x:n,y:r+s/2,pos:Zo.Position.Left},{x:n+a,y:r+s/2,pos:Zo.Position.Right},{x:n+a/2,y:r,pos:Zo.Position.Top},{x:n+a/2,y:r+s,pos:Zo.Position.Bottom}].reduce((p,g)=>{let x=Math.hypot(e-p.x,t-p.y);return Math.hypot(e-g.x,t-g.y)<x?g:p}),[d]=(0,Zo.getStraightPath)({sourceX:c.x,sourceY:c.y,targetX:e,targetY:t});return(0,Er.jsxs)("g",{className:"group",children:[(0,Er.jsx)("path",{fill:"none",className:"stroke-2 stroke-grey-500 animated transition-[stroke,filter] duration-75",d}),(0,Er.jsx)("circle",{cx:e,cy:t,fill:"none",r:4,className:"stroke-2 stroke-grey-600"})]})};var _t=require("@xyflow/react"),tu=require("lodash"),br=require("react");var Me=require("react/jsx-runtime"),ou=({id:e,data:t,selected:o,dragging:n,parentId:r})=>{let{updateNodeData:i,getNodes:a}=(0,_t.useReactFlow)(),{mode:s}=q(),{inProgress:l,fromNode:c}=(0,_t.useConnection)(),d=l&&(c==null?void 0:c.id)!==e,[u,m]=(0,br.useState)(!1),p=a(),g=!r,x=(0,br.useMemo)(()=>(0,tu.orderBy)([...p.filter(E=>E.parentId===e&&E.type==="LANE")],"position.y","asc"),[p,e]),f=g?Sa.MIN_WIDTH:ie.MIN_WIDTH,h=(0,br.useMemo)(()=>{if(g&&x.length>1){let E=[...x];return E.pop(),E.reduce((w,C)=>{var A,R;return w+((R=(A=C.measured)==null?void 0:A.height)!=null?R:0)},0)+ie.MIN_HEIGHT}return ie.MIN_HEIGHT},[g,x]),_=E=>{i(e,{label:E})},b=()=>{m(!0)},T=()=>{m(!1)};return(0,Me.jsxs)(Me.Fragment,{children:[(0,Me.jsxs)("div",{className:H("flex h-full min-h-64 w-full min-w-[50rem] hover:shadow-md bg-white outline outline-1 outline-grey-300",{"outline-offset-2 outline-blue-500 shadow-sm":o}),children:[(0,Me.jsx)("div",{className:"flex align-items justify-center w-10 border-r border-grey-300",onDoubleClick:b,children:(0,Me.jsx)("div",{className:"relative flex-1 [writing-mode:vertical-rl] [text-orientation:sideways] transform rotate-180",children:(0,Me.jsx)(Ze,{value:t.label,className:"w-full h-full self-auto",contentClassName:H({"whitespace-nowrap":u}),isEditing:u,onBlur:T,onChange:_})})}),(0,Me.jsx)("div",{className:"flex-1"})]}),(0,Me.jsx)(at,{nodeId:e,nodeType:"LANE",isChild:!g}),s==="edit"&&(0,Me.jsx)(Mt,{nodeId:e,isVisible:!n&&o,minWidth:f,minHeight:h,offset:10}),!l&&(0,Me.jsxs)(Me.Fragment,{children:[(0,Me.jsx)(te,{type:"source",position:_t.Position.Left,id:"left"}),(0,Me.jsx)(te,{type:"source",position:_t.Position.Right,id:"right"}),(0,Me.jsx)(te,{type:"source",position:_t.Position.Top,id:"top"}),(0,Me.jsx)(te,{type:"source",position:_t.Position.Bottom,id:"bottom"})]}),(!l||d)&&(0,Me.jsxs)(Me.Fragment,{children:[(0,Me.jsx)(te,{type:"target",position:_t.Position.Left,id:"left",className:H({"annotation-handle":d})}),(0,Me.jsx)(te,{type:"target",position:_t.Position.Right,id:"right",className:H({"annotation-handle":d})}),(0,Me.jsx)(te,{type:"target",position:_t.Position.Top,id:"top",className:H({"annotation-handle":d})}),(0,Me.jsx)(te,{type:"target",position:_t.Position.Bottom,id:"bottom",className:H({"annotation-handle":d})})]})]})};var nu={START_EVENT:Ud,END_EVENT:zd,TASK:Jd,GATEWAY:Yd,ANNOTATION:Gd,LANE:ou,UNSUPPORTED:Qd},ru={SEQUENCE_EDGE:ud,MESSAGE_EDGE:jd,ANNOTATION_EDGE:od},iu="#fafafa",su="#bebebe",au=1,lu=10,cu="bottom-left",Js=.05,du=5,Dn=.5,On=Js,Vn=1,uu={x:0,y:0,zoom:.75},pu=1,fu=2,xh={[pu]:4,[fu]:2},_r=[pu,fu],Qs=_r.reduce((e,t)=>e|xh[t],0);var mu=require("@xyflow/react");var Pt=()=>{let{getEdges:e,getNodes:t}=(0,mu.useReactFlow)(),{lastElementId:o}=q(),n=()=>{let i=t(),a=e(),s=Sd(i,a);return Math.max(s,o)};return{getLastId:n,getNextId:()=>n()+1}};var Gn=()=>{let{getNodes:e,getEdges:t,setNodes:o,setEdges:n,setViewport:r}=(0,Hn.useReactFlow)(),{getLastId:i}=Pt(),a=(0,Hn.useStoreApi)(),{setLastElementId:s}=q(),l=(0,js.useCallback)(async(d="")=>{let{nodes:u,edges:m,lastElementId:p}=await Pd(d),{width:g,height:x}=a.getState();if(g>0&&x>0){let f=Oa(u);f&&r((0,Hn.getViewportForBounds)(f,g,x,On,Vn,Dn))}o(u),n(m),s(p)},[o,n,s,a,r]),c=(0,js.useCallback)(()=>{let d=e(),u=t(),m=i();return Md(d,u,m)},[e,t,i]);return{importFromMxGraph:l,exportToMxGraph:c}};var ea=require("react"),Eh=500,Qi=()=>{let{isInitialized:e,onElementChanges:t}=q(),{exportToMxGraph:o}=Gn(),n=(0,gu.useDebouncedCallback)(()=>{if(!e)return;let a=o();t==null||t(a)},Eh),r=(0,ea.useCallback)(a=>{a.every(c=>c.type==="select")||a.some(c=>c.type==="position"&&c.dragging)||n()},[n]),i=(0,ea.useCallback)(a=>{a.some(l=>l.type==="select")||n()},[n]);return{emitElementChanges:n,handleNodeChanges:r,handleEdgeChanges:i}};var hu=({setEdges:e,saveHistory:t})=>{let{getNode:o,getEdges:n,getNodes:r,getInternalNode:i}=(0,ji.useReactFlow)(),{emitElementChanges:a}=Qi(),s=(0,Jt.useRef)(null),{getNextId:l}=Pt(),c=(0,Jt.useCallback)(f=>{var E;let h=o(f.source),_=o(f.target);if(!h||!_)return!1;let b={sourceNodeId:h.id,targetNodeId:_.id,sourceNodeType:h.type,targetNodeType:_.type,nodes:r(),edges:n(),reconnectingEdgeId:(E=s.current)!=null?E:void 0};return Os(b).isValid},[o,n,r]),d=(0,Jt.useCallback)(f=>{var b,T;let h=l(),_=i(f.source);if(_){let E=i(f.target),y=E?E.internals.positionAbsolute.x+((b=E.measured.width)!=null?b:0)/2:0,w=E?E.internals.positionAbsolute.y+((T=E.measured.height)!=null?T:0)/2:0,C=pd(_,y,w),A=(E==null?void 0:E.type)==="ANNOTATION"||(_==null?void 0:_.type)==="ANNOTATION",R=A?Cn:St,G;if(!A&&E&&f.targetHandle){let X=Bi(C),$=Bi(f.targetHandle),{x:Z,y:Y}=Bs(_,C),{x:S,y:V}=Bs(E,f.targetHandle),I=Oi(Z,Y,S,V,X,$).slice(1,-1);I.length>0&&(G=I)}let M=v(N(N({},f),R),{id:String(h),sourceHandle:C,data:N(N({},A?{}:St.data),G?{points:G}:{})}),P=n().concat(M);e(P),t("forceSave",{nodes:r(),edges:P}),a()}},[l,e,a,i,n,r,t]),u=(0,Jt.useCallback)((f,h)=>{s.current=h.id},[]),m=(0,Jt.useCallback)(()=>{s.current=null},[]),p=(0,Jt.useCallback)((f,h)=>{let _=o(h.source),b=o(h.target);if(!_||!b){s.current=null;return}let T={sourceNodeId:_.id,targetNodeId:b.id,sourceNodeType:_.type,targetNodeType:b.type,nodes:r(),edges:n(),reconnectingEdgeId:f.id};if(!Os(T).isValid){s.current=null;return}let y=(0,ji.reconnectEdge)(f,h,n()).map(w=>w.id===f.id?v(N({},w),{data:v(N({},w.data),{points:void 0})}):w);e(y),t("forceSave",{nodes:r(),edges:y}),s.current=null,a()},[o,r,n,e,a,t]),g=(0,Jt.useCallback)(f=>{s.current=f},[]),x=(0,Jt.useCallback)(()=>{s.current=null},[]);return{isValidConnection:c,onConnect:d,onReconnect:p,onReconnectStart:u,onReconnectEnd:m,setReconnectingEdge:g,clearReconnectingEdge:x}};var wu=require("@produto-lecom/lecom-ui"),Iu=require("@xyflow/react"),Ht=require("react");var Nr=(e=[])=>e.filter(t=>t.type==="START_EVENT"),Jo=(e=[])=>e.filter(t=>t.type==="END_EVENT"),Io=(e=[])=>e.filter(t=>t.type==="TASK")||[],yu=(e=[])=>e.filter(t=>{var o;return t.type==="TASK"&&((o=t.properties)==null?void 0:o.variant)==="SCRIPT"});var es=(e=[])=>e.filter(t=>t.type==="GATEWAY"),xu=(e=[])=>e.filter(t=>{var o;return t.type==="GATEWAY"&&((o=t.properties)==null?void 0:o.variant)==="EXCLUSIVE"}),Nt=(e,t=[])=>t.filter(o=>o.source===e),Tr=(e,t=[])=>t.filter(o=>o.target===e),Eu=(e,t)=>{var n,r;let o=(n=t.nodes)==null?void 0:n.find(i=>i.id===e);return((r=o==null?void 0:o.properties)==null?void 0:r.attribute)==="LOOP"},bu=(e,t)=>{let o=Nt(e,t.edges||[]);for(let n of o){let r=(t.nodes||[]).find(i=>i.id===n.target);if(r&&r.type==="END_EVENT")return!0}return!1},_u=e=>e?/[^\s]/.test(e.trim()):!1,we=e=>{let{isValid:t,nodeIds:o,edgeIds:n}=e;return{isValid:t,nodeIds:!t&&o&&o.length>0?o:[],edgeIds:!t&&n&&n.length>0?n:[]}},po=(e=[],t)=>{if(!e||e.length===0)return{isValid:!0,invalidIds:[]};let o=e.filter(n=>!t(n));return{isValid:o.length===0,invalidIds:o.map(n=>n.id)}},Nu=(e=[],t=[])=>({nodes:e.map(o=>{var n;return{id:o.id,type:o.type||"",label:typeof((n=o.data)==null?void 0:n.label)=="string"?o.data.label:void 0,properties:o.data}}),edges:t.map(o=>({id:o.id,source:o.source,target:o.target,type:o.type||"default"}))});var vr=[{id:"start_event_not_found",validate:e=>{let t=Nr(e.nodes);return we({isValid:t.length>=1})}},{id:"end_event_not_found",validate:e=>{let t=Jo(e.nodes);return we({isValid:t.length>=1})}},{id:"multiple_start_event_not_allowed",validate:e=>{let t=Nr(e.nodes),o=t.length===1;if(t.length===0)return we({isValid:!0});if(!o)return we({isValid:!1,nodeIds:t.map(i=>i.id)});let n=Nt(t[0].id,e.edges);if(!(n.length<=1)){let i=[...t.map(a=>a.id),...n.map(a=>a.target)];return we({isValid:!1,nodeIds:[...new Set(i)]})}return we({isValid:!0})}},{id:"task_flows_limit_exceeds",validate:e=>{let t=Io(e.nodes),o=po(t,n=>Nt(n.id,e.edges).length<=2);return we({isValid:o.isValid,nodeIds:o.invalidIds})}},{id:"task_label_empty",highlightRelatedEdges:!1,validate:e=>{let t=Io(e.nodes),o=po(t,n=>!!n.label&&n.label.trim()!=="");return we({isValid:o.isValid,nodeIds:o.invalidIds})}},{id:"task_label_length",highlightRelatedEdges:!1,validate:e=>{let o=Io(e.nodes),n=po(o,r=>!r.label||r.label.length<=60);return we({isValid:n.isValid,nodeIds:n.invalidIds})}},{id:"duplicate_task_name",highlightRelatedEdges:!1,validate:e=>{let t=Io(e.nodes),o=new Map;for(let r of t){if(!r.label)continue;let i=r.label.trim();i&&(o.has(i)||o.set(i,[]),o.get(i).push(r))}let n=[];for(let[,r]of o.entries())r.length>1&&r.forEach(i=>n.push(i.id));return we({isValid:n.length===0,nodeIds:n})}},{id:"nested_gateway",validate:e=>{let t=es(e.nodes),o=[],n=[];for(let r of t){let i=Nt(r.id,e.edges);for(let a of i){let s=e.nodes.find(l=>l.id===a.target);s&&s.type==="GATEWAY"&&(o.push(r.id,s.id),n.push(a.id))}}return we({isValid:o.length===0,nodeIds:o.length>0?[...new Set(o)]:[],edgeIds:n})}},{id:"events_nested",validate:e=>{let t=[...Nr(e.nodes),...Jo(e.nodes)],o=[],n=[];for(let r of t){let i=Nt(r.id,e.edges);for(let a of i){let s=e.nodes.find(l=>l.id===a.target);s&&(s.type==="START_EVENT"||s.type==="END_EVENT")&&(o.push(r.id,s.id),n.push(a.id))}}return we({isValid:o.length===0,nodeIds:o.length>0?[...new Set(o)]:[],edgeIds:n})}},{id:"flows_on_end_tasks_not_allowed",validate:e=>{let t=Jo(e.nodes),o=[],n=[];for(let r of t){let i=Tr(r.id,e.edges);for(let a of i){let s=e.nodes.find(l=>l.id===a.source);if(s&&s.type==="TASK"){let l=Nt(s.id,e.edges);l.length>1&&(o.push(s.id),l.forEach(c=>n.push(c.id)))}}}return we({isValid:o.length===0,nodeIds:o,edgeIds:n})}},{id:"conditions_flows_limit_exceeds",validate:e=>{let t=xu(e.nodes),o=po(t,r=>Nt(r.id,e.edges).length<=2),n=o.invalidIds.flatMap(r=>Nt(r,e.edges).map(i=>i.id));return we({isValid:o.isValid,nodeIds:o.invalidIds,edgeIds:n})}},{id:"activity_name_invalid",validate:e=>{let t=Io(e.nodes),o=po(t,n=>!n.label||_u(n.label));return we({isValid:o.isValid,nodeIds:o.invalidIds})}},{id:"final_activity_has_loop",validate:e=>{var a,s;if(!((a=e==null?void 0:e.nodes)!=null&&a.length)||!((s=e==null?void 0:e.edges)!=null&&s.length))return we({isValid:!0});let t=Jo(e.nodes)[0];if(!t)return we({isValid:!0});let o=Tr(t.id,e.edges);if(!o.length)return we({isValid:!0});let r=Io(e.nodes).filter(l=>o.some(c=>c.source===l.id)),i=po(r,l=>!Eu(l.id,e));return we({isValid:i.isValid,nodeIds:i.isValid?[]:[t.id,...i.invalidIds]})}},{id:"concurrent_initial_and_final_event",validate:e=>{let t=Io(e.nodes),o=Jo(e.nodes)[0];if(!o)return we({isValid:!0});let n=t.filter(l=>{let c=Tr(l.id,e.edges),d=Nt(l.id,e.edges),u=c.some(p=>{var g;return((g=e.nodes.find(x=>x.id===p.source))==null?void 0:g.type)==="START_EVENT"}),m=d.some(p=>{var g;return((g=e.nodes.find(x=>x.id===p.target))==null?void 0:g.type)==="END_EVENT"});return u&&m}),r=Tr(o.id,e.edges),i=r.length>1,a=r.map(l=>l.source),s={isValid:n.length===0&&!i,nodeIds:[...n.map(l=>l.id),...i?a:[]]};return we(s)}},{id:"gateway_flow_to_event",validate:e=>{let t=es(e.nodes),o=[],n=[];for(let r of t){let i=Nt(r.id,e.edges);for(let a of i){let s=e.nodes.find(l=>l.id===a.target);s&&s.type==="END_EVENT"&&(o.push(r.id,s.id),n.push(a.id))}}return we({isValid:o.length===0,nodeIds:o.length>0?[...new Set(o)]:[],edgeIds:n})}},{id:"gateway_missing_output_streams",validate:e=>{let t=es(e.nodes),o=po(t,n=>Nt(n.id,e.edges).length>=1);return we({isValid:o.isValid,nodeIds:o.invalidIds})}},{id:"event_to_condition",validate:e=>{let t=[...Nr(e.nodes),...Jo(e.nodes)],o=[],n=[];for(let r of t){let i=Nt(r.id,e.edges);for(let a of i){let s=e.nodes.find(l=>l.id===a.target);s&&s.type==="GATEWAY"&&(o.push(r.id,s.id),n.push(a.id))}}return we({isValid:o.length===0,nodeIds:o.length>0?[...new Set(o)]:[],edgeIds:n})}},{id:"script_in_final_activity",validate:e=>{let t=yu(e.nodes),o=po(t,n=>!bu(n.id,e));return we({isValid:o.isValid,nodeIds:o.invalidIds})}}];var Tu=e=>{e=e||{nodes:[],edges:[]},e.nodes=e.nodes||[],e.edges=e.edges||[];let t=[];for(let n of vr){let r=n.validate(e);r.isValid||t.push({id:n.id,message:n.id,nodeIds:r.nodeIds||[],edgeIds:r.edgeIds||[]})}return{isValid:t.length===0,errors:t}},vu=async(e,t)=>{let o=[];try{let n=await e(),r=n==null?void 0:n.filter(i=>i.area==="DIAGRAM");return r.length===0?{isValid:!0,errors:[]}:(r.forEach(i=>{var s,l;let a=(l=(s=i==null?void 0:i.detail)==null?void 0:s.phases)==null?void 0:l.map(c=>c.diagramCellId);o.push({id:i.code,message:i.code,nodeIds:a,edgeIds:[]})}),{isValid:!1,errors:o})}catch(n){return{isValid:!1,errors:[{id:"cannot_validate_subprocess_reference",message:"cannot_validate_subprocess_reference",nodeIds:t.map(r=>r.id)||[],edgeIds:[]}]}}};var Qo=require("react/jsx-runtime"),Au=()=>{let{t:e}=(0,wu.useTranslation)(),{toast:t}=st(),{setNodes:o,setEdges:n,getNodes:r,getEdges:i}=(0,Iu.useReactFlow)(),{validateCustomDiagram:a}=q(),[s,l]=(0,Ht.useState)(!1),c=(0,Ht.useRef)(!1),d=(0,Ht.useRef)(!1),u=(0,Ht.useCallback)(async f=>{let h=Nu(f.nodes,f.edges),_=Tu(h),b=f.nodes.filter(({type:E,data:y})=>E==="TASK"&&(y==null?void 0:y.variant)==="SUBPROCESS");if(a&&b.length>0){let E=await vu(a,b);_={isValid:_.isValid&&E.isValid,errors:[..._.errors,...E.errors]}}let T=_.errors.map(E=>v(N({},E),{message:e(`validation.errors.${E.id}`)}));return s||l(!0),{isValid:_.isValid,errors:T}},[s,e]),m=(0,Ht.useCallback)((f,h=!0)=>{if(h&&f&&t({variant:f.isValid?"success":"error",duration:5e3,title:f.isValid?e("validation.success.title"):e("validation.errors.title"),content:(0,Qo.jsxs)("div",{className:"flex flex-col gap-1",children:[!f.isValid&&(0,Qo.jsx)("span",{className:"body-small-500",children:e("validation.errors.subtitle")}),(0,Qo.jsx)("ul",{className:"list-disc list-inside max-h-40 overflow-y-auto",children:f.isValid?(0,Qo.jsx)("li",{children:e("validation.success.message")}):f.errors.map(M=>(0,Qo.jsx)("li",{className:"text-xs",children:M.message},M.id))})]})}),!f)return;c.current=!0,d.current=!0;let _=[],b=[];f.errors.forEach(M=>{M.nodeIds&&M.nodeIds.length>0&&M.nodeIds.forEach(P=>_.push(P)),M.edgeIds&&M.edgeIds.length>0&&M.edgeIds.forEach(P=>b.push(P))});let T=[...new Set(_)];o(M=>M.map(P=>v(N({},P),{data:v(N({},P.data),{hasError:!1})}))),n(M=>M.map(P=>v(N({},P),{data:v(N({},P.data),{hasError:!1})})));let E=r(),y=i(),w=new Set(T),C=new Set;f.errors.forEach(M=>{var $,Z;let P=vr.find(Y=>Y.id===M.id);(P==null?void 0:P.highlightRelatedEdges)!==!1&&(($=M.edgeIds)==null||$.forEach(Y=>C.add(Y)),(Z=M.nodeIds)==null||Z.forEach(Y=>{y.forEach(S=>{(S.source===Y||S.target===Y)&&C.add(S.id)})}))});let A=new Set,R=new Set,G=new Set;E.forEach(M=>{M.type==="START_EVENT"?A.add(M.id):M.type==="END_EVENT"&&R.add(M.id)}),y.forEach(M=>{A.has(M.source)&&G.add(M.target),R.has(M.target)&&G.add(M.source)}),G.forEach(M=>{var P,X;if(w.has(M)){let $=(P=f.errors.find(Y=>{var S;return(S=Y.nodeIds)==null?void 0:S.includes(M)}))==null?void 0:P.id;((X=vr.find(Y=>Y.id===$))==null?void 0:X.highlightRelatedEdges)!==!1&&y.forEach(Y=>{Y.source===M&&R.has(Y.target)&&(w.add(Y.target),C.add(Y.id)),Y.target===M&&A.has(Y.source)&&(w.add(Y.source),C.add(Y.id))})}}),w.size>0&&o(M=>M.map(P=>v(N({},P),{data:v(N({},P.data),{hasError:w.has(P.id)})}))),C.size>0&&n(M=>M.map(P=>v(N({},P),{data:v(N({},P.data),{hasError:C.has(P.id)})}))),setTimeout(()=>{c.current=!1},0)},[e,i,r,n,o,t]),p=(0,Ht.useCallback)(()=>{l(!1),d.current=!1,o(f=>f.map(h=>v(N({},h),{data:v(N({},h.data),{hasError:!1})}))),n(f=>f.map(h=>v(N({},h),{data:v(N({},h.data),{hasError:!1})})))},[n,o]),g=(0,Ht.useCallback)(()=>{d.current&&(c.current=!0,d.current=!1,o(f=>f.map(h=>v(N({},h),{data:v(N({},h.data),{hasError:!1})}))),n(f=>f.map(h=>v(N({},h),{data:v(N({},h.data),{hasError:!1})}))),setTimeout(()=>{c.current=!1},0))},[n,o]),x=(0,Ht.useCallback)(()=>c.current,[]);return{validateDiagram:u,handleValidationComplete:m,clearValidation:p,dismissValidationPanel:g,isAutoValidationEnabled:s,getIsClearingValidation:x}};var Mu=require("@xyflow/react"),Pu=require("@produto-lecom/lecom-ui"),Lu=require("react");var bh=15,Cu="bpmn:selection",_h=e=>{if(!e||!(e instanceof HTMLElement))return!1;let t=e.tagName.toLowerCase(),o=t==="input"||t==="textarea",n=e.isContentEditable,r=t==="select",i=e.closest('[contenteditable="true"], input, textarea, select')!==null;return o||n||r||i},Su=e=>{if(!_h(e.target))return!0;let t=window.getSelection(),o=t&&t.toString().length>0;if(e.target instanceof HTMLInputElement||e.target instanceof HTMLTextAreaElement){let n=e.target;return n.selectionStart===n.selectionEnd&&!o}return!o},ku=({offset:e=bh,saveHistory:t})=>{let{t:o}=(0,Pu.useTranslation)(),{getNodes:n,setNodes:r,getEdges:i,setEdges:a}=(0,Mu.useReactFlow)(),{getNextId:s}=Pt();(0,Lu.useEffect)(()=>{let l=d=>{var h,_;if(!Su(d))return;let u=n(),m=i(),p=u.filter(b=>b.selected);if(!p.length)return;d.preventDefault(),d.stopPropagation();let g=m.filter(b=>p.some(T=>T.id===b.source)&&p.some(T=>T.id===b.target)),f=JSON.stringify({nodes:p,edges:g});(h=d.clipboardData)==null||h.setData(Cu,f),(_=d.clipboardData)==null||_.setData("text/plain",`BPMN Selection: ${p.length} nodes`)},c=d=>{var w,C;if(!Su(d))return;let u=(w=d.clipboardData)==null?void 0:w.getData(Cu);if(!u)return;d.preventDefault(),d.stopPropagation();let m;try{m=JSON.parse(u)}catch(A){return}if(!((C=m.nodes)!=null&&C.length))return;let p=new Map,g=n(),x=[],f=m.nodes.filter(A=>_o(A.type,g));if(f.length===0)return;let h=s(),_=f.map(A=>{var M;let R=String(h++);p.set(A.id,R);let G=v(N({},A),{id:R,selected:!0,position:{x:A.position.x+e,y:A.position.y+e}});if(A.type==="TASK"){let P=(M=A.data)==null?void 0:M.label,X=Rn(P||o("bpmn.task.label.prefix"),[...g,...x]);G.data=v(N({},A.data),{label:X})}return x.push(G),G}),b=m.edges.map(A=>v(N({},A),{id:String(h++),selected:!0,source:p.get(A.source)||A.source,target:p.get(A.target)||A.target})),T=[...g.map(A=>v(N({},A),{selected:!1})),..._],y=[...i().map(A=>v(N({},A),{selected:!1})),...b];r(T),a(y),t("forceSave",{nodes:T,edges:y})};return document.addEventListener("copy",l,!0),document.addEventListener("paste",c,!0),()=>{document.removeEventListener("copy",l,!0),document.removeEventListener("paste",c,!0)}},[n,r,i,a,s,e,o,t])};var Ru=require("@produto-lecom/lecom-ui"),Du=require("@xyflow/react");var Ou=require("react");var Nh=50,Vu=({nodes:e,setNodes:t,setEdges:o,saveHistory:n})=>{let{draggableNode:r,setDraggableNode:i}=kn(),{t:a}=(0,Ru.useTranslation)(),{getInternalNode:s,getNodes:l,getEdges:c,screenToFlowPosition:d}=(0,Du.useReactFlow)(),{getNextId:u}=Pt(),{setIsDragging:m}=q(),{getInternalNodes:p}=Wi(),{rebuildIndex:g,forceRebuildIndex:x}=vi(),[f,h]=(0,Ou.useState)(null),_=(S,V,D)=>{var k;if(S.parentId!==V)return null;let I=D.filter(O=>O.id!==S.id&&O.parentId===V&&O.type==="LANE").sort((O,B)=>O.position.y-B.position.y);if(I.length===0)return null;let z=(k=D.find(O=>O.id===S.id))!=null?k:S,L=I.find(O=>z.position.y<O.position.y);return L?{draggedLaneId:S.id,beforeLaneId:L.id}:{draggedLaneId:S.id,afterLaneId:I[I.length-1].id}},b=(S,V=!1,D)=>{let I=V?"node-drop-target-error":"node-drop-target",z=V?"node-drop-target-lane-error":"node-drop-target-lane";t(L=>{var O;let k=(O=D==null?void 0:D(L))!=null?O:null;return L.map(B=>{let ee=[];return B.id===S&&ee.push(I),S!==void 0&&B.parentId===S&&B.type==="LANE"&&B.id!==(k==null?void 0:k.draggedLaneId)&&ee.push(z),B.id===(k==null?void 0:k.draggedLaneId)&&ee.push("lane-reorder-dragging"),B.id===(k==null?void 0:k.beforeLaneId)&&ee.push("lane-reorder-before"),B.id===(k==null?void 0:k.afterLaneId)&&ee.push("lane-reorder-after"),v(N({},B),{className:ee.join(" ")})})})},T=(S,V)=>{let D=p();if(S.type==="LANE"){if(V){b();return}let O=D.filter(oe=>oe.id!==S.id&&oe.type==="LANE"&&!oe.parentId),B=$n(S,O);if(!B){b();return}if(Oo({parentId:B.id,nodes:e,excludeTypes:["LANE"]})){b(B.id,!0);return}b(B.id,!1,oe=>_(S,B.id,oe));return}let z=D.filter(O=>O.id!==S.id&&O.type==="LANE"),L=$n(S,z);if(!L){b();return}if(Oo({parentId:L.id,nodes:e,includeTypes:["LANE"]})){b();return}b(L.id)},E=S=>{let V=s(S.id),D=S.type==="LANE"&&Oo({parentId:S.id,nodes:e,includeTypes:["LANE"]});T(V,D)},y=S=>S.map(V=>v(N({},V),{className:void 0})),w=S=>S.some(D=>D.dragging)?S.map(D=>D.dragging?v(N({},D),{dragging:!1}):D):S,C=(S,V)=>{let D=0;for(let I of V){if(I.id===S||I.parentId||I.type==="LANE")continue;let z=It(I),L=z.y+z.h;D=Math.max(D,L)}return D+Nh},A=(S,V)=>{if(!hs(S,V))return V;let D=C(S,V);return V.map(I=>I.id===S?v(N({},I),{position:v(N({},I.position),{y:D})}):I)},R=S=>{if(S.preventDefault(),S.dataTransfer.dropEffect="move",!(r!=null&&r.type))return;let V=d({x:S.clientX,y:S.clientY}),D={id:"__sidebar_drag__",type:r.type,position:V,measured:{width:1,height:1},internals:{positionAbsolute:V}};T(D,!1)},G=S=>{let V=S.relatedTarget;(!V||!S.currentTarget.contains(V))&&b()},M=(S,V)=>{S.preventDefault(),E(V)},P=(S,V,D)=>{var ee,oe;let I=[...D],z=V.parentId?V.parentId:V.id;if(S.parentId===V.id)return I=xs(S,V,I),I=lo(I),I=Vo(z,I),y(I);if(S.type==="LANE"){if(Oo({parentId:V.id,nodes:I,excludeTypes:["LANE"]})){let F=_i(V),ne=50,le=50;return I.map(U=>{var Te,W;return U.id===S.id?v(N({},U),{position:{x:(Te=f==null?void 0:f.x)!=null?Te:F.x+ne,y:(W=f==null?void 0:f.y)!=null?W:F.y2+le}}):U})}let Q=I.filter(F=>F.parentId===V.id).reduce((F,ne)=>{var le,U;return F+((U=(le=ne.measured)==null?void 0:le.height)!=null?U:0)},0),ae={x:ie.HEADER_WIDTH,y:Q};return I=I.map(F=>F.id===S.id?v(N({},F),{parentId:V.id,position:ae,className:void 0}):v(N({},F),{className:void 0})),I=lo(I),I=A(z,I),I}if(Oo({parentId:V.id,nodes:I,includeTypes:["LANE"]})){let K;if(S.parentId){let J=s(S.parentId),{x:Q,y:ae}=It(J);K={x:Q+((ee=S.position.x)!=null?ee:0),y:ae+((oe=S.position.y)!=null?oe:0)}}return I=I.map(J=>J.id===S.id?v(N({},J),{position:K!=null?K:J.position,parentId:void 0,className:void 0}):v(N({},J),{className:void 0})),I=Vo(z,I),I}let O=ka(S,V);I=I.map(K=>K.id===S.id?v(N({},K),{parentId:V.id,position:O,className:void 0}):v(N({},K),{className:void 0}));let B=I.find(K=>K.id===S.id);return I=xs(B,V,I),I=lo(I),I=Vo(z,I),I},X=S=>{if(S.preventDefault(),!(r!=null&&r.type))return;if(!_o(r.type,l())){m(!1),i(null);return}let V=d({x:S.clientX,y:S.clientY}),D={width:pe[r.type].MIN_WIDTH,height:pe[r.type].MIN_HEIGHT},I=u(),z={id:String(I),type:r.type,position:V,measured:D,data:{label:r.type==="TASK"?Zi(e,a("bpmn.task.label.prefix")):"",variant:r.variant,attribute:r.attribute},selected:!0},L=v(N({},z),{internals:{positionAbsolute:V}}),k=v(N({},L),{measured:{width:1,height:1}}),O=p(),B=r.type==="LANE",ee=O.filter(F=>B?F.type==="LANE"&&!F.parentId:F.type==="LANE"),oe=$n(k,ee),K=[...O.map(F=>v(N({},F),{selected:!1})),L];oe&&(K=P(L,oe,K)),K=Do(K),B&&!oe&&(K=A(L.id,K)),K=y(K),t(K),x();let J=S.dataTransfer.getData("sourceId"),Q=c(),ae=Q;if(J){let F={id:String(I+1),source:J,target:z.id},ne=r.type==="ANNOTATION"?N(N({},F),Cn):N(N({},F),St);ae=Q.concat(ne),o(ae)}n("forceSave",{nodes:K,edges:ae}),m(!1),i(null)},$=async(S,V,D)=>{let I=[...p()],z=new Set;D.forEach(O=>{let B=s(O.id),ee=O.type==="LANE",oe=I.filter(J=>J.id!==O.id&&(ee?J.type==="LANE"&&!J.parentId:J.type==="LANE")),K=$n(B,oe);if(K){if(ee&&Oo({parentId:O.id,nodes:I,includeTypes:["LANE"]})){O.parentId&&(I=Y(O,I),z.add(O.id));return}I=P(B,K,I);return}O.parentId&&(I=Y(O,I),O.type==="LANE"&&z.add(O.id))}),I=w(I);let L=D.filter(O=>O.type==="LANE"&&!O.parentId).map(O=>O.id);for(let O of L)hs(O,I)&&f&&(I=I.map(B=>B.id===O?v(N({},B),{position:N({},f)}):B));for(let O of z)I=A(O,I);if(D.some(O=>O.type!=="LANE"&&!O.parentId)){let O=I.filter(B=>B.type==="LANE"&&!B.parentId).map(B=>B.id);for(let B of O)I=Vo(B,I)}I=Do(I),I=y(I),t(I),g(I),h(null)},Z=(S,V)=>{h({x:V.position.x,y:V.position.y})},Y=(S,V)=>{var oe,K,J,Q,ae,F,ne,le;let D=s(S.parentId);if(!D)return V;let I=S.type==="LANE",z=V.filter(U=>U.parentId===D.id&&U.id!==S.id),L=z.filter(U=>U.type==="LANE"),k;if(I&&L.length===0)k=ie.MIN_HEIGHT;else if(I){let U=(K=(oe=S.measured)==null?void 0:oe.height)!=null?K:ie.MIN_HEIGHT;k=((Q=(J=D.measured)==null?void 0:J.height)!=null?Q:ie.MIN_HEIGHT)-U,k=Math.max(ie.MIN_HEIGHT,k)}else k=z.length>0?z.reduce((U,Te)=>{var W,j;return U+((j=(W=Te.measured)==null?void 0:W.height)!=null?j:0)},0)+De:Math.max(ie.MIN_HEIGHT,(F=(ae=D.measured)==null?void 0:ae.height)!=null?F:0);let{x:O,y:B}=It(D),ee={x:O+((ne=S.position.x)!=null?ne:0),y:B+((le=S.position.y)!=null?le:0)};return V=V.map(U=>U.id===S.id?v(N({},U),{position:ee,parentId:void 0}):U.id===D.id?v(N({},U),{height:k,measured:v(N({},U.measured),{height:k})}):U),V=lo(V),V};return{onDragOver:R,onDragLeave:G,onDrop:X,onNodeDrag:M,onNodeDragStart:Z,onNodeDragStop:$}};var Hu=require("@xyflow/react"),Gu=require("@produto-lecom/lecom-ui"),Bu=require("react");var Th=30,vh=e=>{if(!e||!(e instanceof HTMLElement))return!1;let t=e.tagName.toLowerCase(),o=t==="input"||t==="textarea",n=e.isContentEditable,r=t==="select",i=e.closest('[contenteditable="true"], input, textarea, select')!==null;return o||n||r||i},wh=e=>!vh(e.target),zu=({offset:e=Th,saveHistory:t})=>{let{t:o}=(0,Gu.useTranslation)(),{getNodes:n,setNodes:r,getEdges:i,setEdges:a}=(0,Hu.useReactFlow)(),{getNextId:s}=Pt();(0,Bu.useEffect)(()=>{let l=c=>{if(c.ctrlKey&&c.key.toLowerCase()==="d"&&wh(c)){c.preventDefault(),c.stopPropagation();let d=n(),u=i(),m=d.filter(y=>y.selected);if(!m.length)return;let p=new Map,g=[],x=m.filter(y=>_o(y.type,d));if(x.length===0)return;let f=u.filter(y=>x.some(w=>w.id===y.source)&&x.some(w=>w.id===y.target)),h=s(),_=x.map(y=>{var A;let w=String(h++);p.set(y.id,w);let C=v(N({},y),{id:w,selected:!0,position:{x:y.position.x+e,y:y.position.y+e}});if(y.type==="TASK"){let R=(A=y.data)==null?void 0:A.label,G=Rn(R||o("bpmn.task.label.prefix"),[...d,...g]);C.data=v(N({},y.data),{label:G})}return g.push(C),C}),b=f.map(y=>v(N({},y),{id:String(h++),selected:!0,source:p.get(y.source)||y.source,target:p.get(y.target)||y.target})),T=[...d.map(y=>v(N({},y),{selected:!1})),..._],E=[...u.map(y=>v(N({},y),{selected:!1})),...b];r(T),a(E),t("forceSave",{nodes:T,edges:E})}};return document.addEventListener("keydown",l,!0),()=>{document.removeEventListener("keydown",l,!0)}},[n,r,i,a,s,e,o,t])};var Ir=require("react"),Yu=require("@xyflow/react");var Ih=20,Ah=50,wr={UP:"ArrowUp",DOWN:"ArrowDown",LEFT:"ArrowLeft",RIGHT:"ArrowRight"},Ch=e=>{if(!e||!(e instanceof HTMLElement))return!1;let t=e.tagName.toLowerCase(),o=t==="input"||t==="textarea",n=e.isContentEditable,r=t==="select",i=e.closest('[contenteditable="true"], input, textarea, select')!==null;return o||n||r||i},Wu=e=>{let{getNodes:t}=(0,Yu.useReactFlow)(),{mode:o,isMoveTool:n}=q(),r=(0,Ir.useRef)(0),i=(0,Ir.useRef)(new Map);(0,Ir.useEffect)(()=>{let a=s=>{if(o!=="edit"||!n||Ch(s.target)||!Object.values(wr).includes(s.key))return;let u=t().filter(_=>_.selected);if(u.length===0){i.current.clear();return}s.preventDefault();let m=Date.now(),p=m-r.current<500;r.current=m;let g=s.shiftKey?Ah:Ih,x=0,f=0;switch(s.key){case wr.UP:f=-g;break;case wr.DOWN:f=g;break;case wr.LEFT:x=-g;break;case wr.RIGHT:x=g;break}let h=u.map(_=>{let b=i.current.get(_.id);(!p||!b)&&(b={x:_.position.x,y:_.position.y});let T={x:b.x+x,y:b.y+f};return i.current.set(_.id,T),{id:_.id,dragging:!0,type:"position",position:T}});e&&e(h)};return window.addEventListener("keydown",a),()=>{window.removeEventListener("keydown",a)}},[t,e,o,n])};var Ku=require("@xyflow/react");var Xu={"start-event":"START_EVENT","end-event":"END_EVENT",task:"TASK","gateway-exclusive":"GATEWAY"},Uu={"start-event":"","end-event":"",task:"","gateway-exclusive":"EXCLUSIVE"},Fu=(e,t)=>{if(!e){console.warn("Step not found");return}e=e.trim();let o=e.match(/(\<.*?\>)/)||[],n=e.match(/(\[.*?\])/)||[],r=e.match(/(\{.*?\})/)||[],i=e.match(/(--.*|\|.*?\|)/i)||[],a="",s="",l="";if(o.length){switch(o[1]){case"<start>":a="start-event";break;case"<end>":a="end-event";break}e=e.replace(o[1],"")}return n.length&&(a="task",s=n[1].replace(/\[|\]/g,""),e=e.replace(n[1],"")),r.length&&(a="gateway-exclusive",s=r[1].replace(/\{|\}/g,""),e=e.replace(r[1],"")),a||(a="task",s=e),i.length&&(l=i[1].replace(/(\||--)/g,""),e=e.replace(i[1],"")),e=e.trim(),t[e]||(t[e]={type:a,label:s}),{step:e,type:a,label:s,edgeLabel:l}},Sh=e=>{e=e||"";let t=e.trim().split(`
41
+ `),V=S.reduce((L,k)=>Math.max(L,k.length),0),D=S.length,I=Math.max(hn.MIN_WIDTH,V*7+64),z=Math.max(hn.MIN_HEIGHT,D*24+Y);l(L=>L.map(k=>k.id===e?v(N({},k),{width:I,height:z,style:v(N({},k.style),{width:I,height:z})}):k))},[e,l,_,b]),E=(0,xr.useCallback)(P=>{let X=P.trim(),$=t.label||"";if(X===$)return;let Z=X,Y=s();if(!(X&&X!=="")){Z=Zi(Y,r("bpmn.task.label.prefix")),a(e,{label:Z}),T(Z),i({variant:"warning",content:(0,ge.jsxs)(ge.Fragment,{children:[r("bpmn.task.feedback.label_empty.prefix")," ",(0,ge.jsx)("strong",{children:Z})]})});return}let V=Rn(Z,Y);V===$||(a(e,{label:V}),T(V),V!==Z&&i({variant:"warning",content:(0,ge.jsxs)(ge.Fragment,{children:[r("bpmn.task.feedback.label_already_exists.prefix")," ",(0,ge.jsx)("strong",{children:X})," ",r("bpmn.task.feedback.label_already_exists.middle")," ",(0,ge.jsx)("strong",{children:V})]})}))},[t.label,s,e,r,a,T,i]),y=(0,xr.useCallback)(P=>{T(P)},[T]),w=(0,xr.useCallback)(()=>{i({variant:"error",content:r("bpmn.task.feedback.invalid_first_character")})},[r,i]),C=f?yh[f]:null,A=t.variant?Br[t.variant].icon:null,R=t.attribute?zr[t.attribute].icon:null,G=()=>t.hasError?qs.error:f?qs[f]:qs.default,M=()=>{m==null||m({id:e,type:"sub_process",label:t.label})};return(0,ge.jsxs)("div",{className:H("relative w-full h-full min-w-44 min-h-24 flex flex-col items-stretch justify-stretch bg-white border-2 border-grey-400 hover:border-grey-500 rounded-md hover:shadow-md transition-colors duration-75",G(),{"border-blue-500 hover:border-blue-600 shadow-md":o,"border-red-500 hover:border-red-600 shadow-[0_0_5px_rgba(255,0,0,0.5)]":t.hasError}),children:[(0,ge.jsx)("div",{className:"flex-1 flex items-stretch justify-stretch overflow-hidden",children:(0,ge.jsx)(Ze,{value:t.label,maxLength:60,className:H({"py-10 px-8":_||b}),onChange:E,onInput:y,onInvalidFirstCharacter:w})}),A&&(0,ge.jsx)("div",{className:H("absolute flex items-center p-1",h?"bottom-0 left-1/2 -translate-x-1/2":"top-0 left-0"),children:(0,ge.jsx)(A,{size:16,className:H(t.hasError?"text-red-500":"text-grey-500",h&&"cursor-pointer"),onClick:h?M:void 0})}),R&&(0,ge.jsx)("div",{className:"absolute bottom-0 left-0 w-full flex items-center justify-center",children:(0,ge.jsx)("div",{className:H("flex items-center w-16 p-1",h?"justify-between":"justify-center"),children:(0,ge.jsx)(R,{size:16,className:H(t.hasError?"text-red-500":"text-grey-500")})})}),C&&(0,ge.jsx)("div",{className:"absolute top-0 right-0 flex items-center p-1",children:(0,ge.jsx)(C,{})}),(0,ge.jsx)(at,{nodeId:e,nodeType:"TASK",nodeVariant:t.variant}),u==="edit"&&(0,ge.jsx)(Mt,{nodeId:e,isVisible:!n&&o,minWidth:hn.MIN_WIDTH,minHeight:hn.MIN_HEIGHT}),(!c||x)&&(0,ge.jsxs)(ge.Fragment,{children:[(0,ge.jsx)(te,{type:"target",position:bt.Position.Left,id:"left",className:H({"task-handle":x})}),(0,ge.jsx)(te,{type:"target",position:bt.Position.Right,id:"right",className:H({"task-handle":x})}),(0,ge.jsx)(te,{type:"target",position:bt.Position.Top,id:"top",className:H({"task-handle":x})}),(0,ge.jsx)(te,{type:"target",position:bt.Position.Bottom,id:"bottom",className:H({"task-handle":x})})]}),!c&&(0,ge.jsxs)(ge.Fragment,{children:[(0,ge.jsx)(et,{type:"source",position:bt.Position.Left,id:"left",nodeId:e,nodeType:"TASK"}),(0,ge.jsx)(et,{type:"source",position:bt.Position.Right,id:"right",nodeId:e,nodeType:"TASK"}),(0,ge.jsx)(et,{type:"source",position:bt.Position.Top,id:"top",nodeId:e,nodeType:"TASK"}),(0,ge.jsx)(et,{type:"source",position:bt.Position.Bottom,id:"bottom",nodeId:e,nodeType:"TASK"})]})]})};var Zs=require("@xyflow/react");var uo=require("react/jsx-runtime"),Qd=({id:e,data:t})=>(0,uo.jsxs)(uo.Fragment,{children:[(0,uo.jsx)("div",{className:"relative w-full h-full min-w-32 min-h-16 flex items-center justify-center bg-white border-2 border-red-400 rounded-sm overflow-hidden",children:t.label}),(0,uo.jsx)(at,{nodeId:e,nodeType:"UNSUPPORTED"}),(0,uo.jsx)(te,{type:"source",position:Zs.Position.Right}),(0,uo.jsx)(te,{type:"target",position:Zs.Position.Left})]});var Oe=require("@xyflow/react"),Ji=require("react");var ve=require("react/jsx-runtime"),Q2={type:"MESSAGE_EDGE",reconnectable:!0,markerEnd:{type:Oe.MarkerType.Arrow},data:{label:""}},jd=({id:e,source:t,target:o,data:n,selected:r,sourcePosition:i,targetPosition:a,sourceHandleId:s,targetHandleId:l})=>{var L;let{zoom:c}=(0,Oe.useViewport)(),{updateEdgeData:d}=(0,Oe.useReactFlow)(),{isMultipleSelection:u,mode:m,instanceId:p}=q(),g=m!=="edit",[x,f]=(0,Ji.useState)(!1),{reconnectingHandle:h,cursorPosition:_,hoveredNodeId:b,reconnectingSide:T,isValidReconnection:E,handleReconnectStart:y}=Hi({edgeId:e,source:t,target:o,instanceId:p,isReadOnly:g}),w=(0,Oe.useInternalNode)(t),C=(0,Oe.useInternalNode)(o),{sx:A,sy:R,tx:G,ty:M,sourcePos:P,targetPos:X}=(0,Ji.useMemo)(()=>{var ne,le;if(!w||!C)return{sx:0,sy:0,tx:0,ty:0,sourcePos:Oe.Position.Left,targetPos:Oe.Position.Right};let k=gn(w,C),O=s?i:k.sourcePos,B=l?a:k.targetPos,ee=(U,Te,W)=>{var ue,Ne,We,Qe,ot,ct;let{x:j,y:ce}=U.internals.positionAbsolute,re=(We=(Ne=(ue=U.measured)==null?void 0:ue.width)!=null?Ne:U.width)!=null?We:0,fe=(ct=(ot=(Qe=U.measured)==null?void 0:Qe.height)!=null?ot:U.height)!=null?ct:0;switch(Te){case Oe.Position.Top:return{x:j+re*W,y:ce};case Oe.Position.Bottom:return{x:j+re*W,y:ce+fe};case Oe.Position.Left:return{x:j,y:ce+fe*W};case Oe.Position.Right:return{x:j+re,y:ce+fe*W};default:return{x:j+re/2,y:ce+fe/2}}},oe=(ne=n==null?void 0:n.sourceOffset)!=null?ne:.5,K=(le=n==null?void 0:n.targetOffset)!=null?le:.5,J=w?ee(w,O,oe).x:k.sx,Q=w?ee(w,O,oe).y:k.sy,ae=C?ee(C,B,K).x:k.tx,F=C?ee(C,B,K).y:k.ty;return h==="source"&&_?(J=_.x,Q=_.y,T&&(O=T)):h==="target"&&_&&(ae=_.x,F=_.y,T&&(B=T)),{sx:J,sy:Q,tx:ae,ty:F,sourcePos:O,targetPos:B}},[w,C,s,l,i,a,h,_,T,n==null?void 0:n.sourceOffset,n==null?void 0:n.targetOffset]);if(!w||!C)return null;let[$,Z,Y]=(0,Oe.getSmoothStepPath)({sourceX:A,sourceY:R,targetX:G,targetY:M,sourcePosition:P,targetPosition:X}),S=r||(w==null?void 0:w.selected)||(C==null?void 0:C.selected),V=S?"sequence-edge-marker-highlighted":"sequence-edge-marker",D=x||(n==null?void 0:n.label.trim().length)>0,I=()=>{f(!1)},z=k=>{d(e,{label:k.trim()})};return(0,ve.jsx)(ve.Fragment,{children:(0,ve.jsxs)("g",{className:H("group bpmn-arrow-edge",{"is-highlighted":S}),onDoubleClick:()=>!g&&f(!0),children:[(0,ve.jsx)("path",{d:$,fill:"none",stroke:"transparent",strokeWidth:Math.max(12,12/c),style:{pointerEvents:"stroke",cursor:"pointer"}}),(0,ve.jsxs)("g",{className:H("text-grey-500 transition-colors duration-75 group-hover:text-grey-800",{"text-blue-500 group-hover:text-blue-600":S}),children:[(0,ve.jsx)(Oe.BaseEdge,{id:e,path:$,interactionWidth:0,markerEnd:`url(#${V})`,strokeDasharray:4,className:H("stroke-2 stroke-current transition-[stroke,filter] duration-75 group-hover:drop-shadow-[0_0_3px_rgba(0,0,0,0.2)]",{"stroke-red-500 hover:stroke-red-600":(n==null?void 0:n.hasError)||h&&b&&!E,"stroke-green-500":h&&b&&E,"stroke-blue-500 hover:stroke-blue-600 drop-shadow-[0_0_3px_rgba(59,130,246,0.5)]":S&&!(n!=null&&n.hasError)&&!h})}),(0,ve.jsxs)(Oe.EdgeLabelRenderer,{children:[(0,ve.jsxs)("div",{className:"absolute z-[3000] pointer-events-auto flex flex-col items-center gap-1",style:{transform:`translate(-50%, -50%) translate(${Z}px, ${Y}px)`},children:[r&&!u&&(0,ve.jsx)(An,{sx:A,sy:R,tx:G,ty:M,hasLabel:!!((L=n==null?void 0:n.label)!=null&&L.trim()),children:(0,ve.jsx)(In,{edgeId:e,edgeType:"MESSAGE_EDGE"})}),D&&(0,ve.jsx)(Ze,{value:n==null?void 0:n.label,className:"min-w-8 max-w-56 bg-white rounded-md px-2 py-1 text-xs",isEditing:x,onBlur:I,onChange:z})]}),r&&!u&&!g&&(0,ve.jsxs)(ve.Fragment,{children:[(0,ve.jsx)("div",{className:"absolute z-[1000] pointer-events-none",style:{transform:`translate(-50%, -50%) translate(${A}px, ${R}px)`},children:(0,ve.jsxs)("svg",{width:12/c,height:12/c,style:{overflow:"visible",position:"absolute",left:"50%",top:"50%",transform:"translate(-50%, -50%)"},children:[(0,ve.jsx)("circle",{cx:6/c,cy:6/c,r:4/c,fill:h==="source"?"#3b82f6":"#fff",stroke:"#3b82f6",strokeWidth:2/c,className:"pointer-events-none"}),(0,ve.jsx)("circle",{cx:6/c,cy:6/c,r:6/c,fill:"none",stroke:"#3b82f6",strokeWidth:1/c,opacity:h==="source"?.6:.3,className:"pointer-events-none"}),(0,ve.jsx)("circle",{cx:6/c,cy:6/c,r:8/c,fill:"transparent",className:H("pointer-events-auto",{"cursor-move":!h||h!=="source","cursor-not-allowed":h==="source"&&b&&!E,"cursor-grabbing":h==="source"&&(!b||E)}),onMouseDown:k=>y("source",k.nativeEvent)})]})}),(0,ve.jsx)("div",{className:"absolute z-[1000] pointer-events-none",style:{transform:`translate(-50%, -50%) translate(${G}px, ${M}px)`},children:(0,ve.jsxs)("svg",{width:12/c,height:12/c,style:{overflow:"visible",position:"absolute",left:"50%",top:"50%",transform:"translate(-50%, -50%)"},children:[(0,ve.jsx)("circle",{cx:6/c,cy:6/c,r:4/c,fill:h==="target"?"#3b82f6":"#fff",stroke:"#3b82f6",strokeWidth:2/c,className:"pointer-events-none"}),(0,ve.jsx)("circle",{cx:6/c,cy:6/c,r:6/c,fill:"none",stroke:"#3b82f6",strokeWidth:1/c,opacity:h==="target"?.6:.3,className:"pointer-events-none"}),(0,ve.jsx)("circle",{cx:6/c,cy:6/c,r:8/c,fill:"transparent",className:H("pointer-events-auto",{"cursor-move":!h||h!=="target","cursor-not-allowed":h==="target"&&b&&!E,"cursor-grabbing":h==="target"&&(!b||E)}),onMouseDown:k=>y("target",k.nativeEvent)})]})})]})]})]})]})})};var Zo=require("@xyflow/react"),Er=require("react/jsx-runtime"),eu=({toX:e,toY:t,fromNode:o})=>{var u,m;if(!o)return null;let{internals:{positionAbsolute:{x:n,y:r}},measured:i}=o,a=(u=i.width)!=null?u:0,s=(m=i.height)!=null?m:0,c=[{x:n,y:r+s/2,pos:Zo.Position.Left},{x:n+a,y:r+s/2,pos:Zo.Position.Right},{x:n+a/2,y:r,pos:Zo.Position.Top},{x:n+a/2,y:r+s,pos:Zo.Position.Bottom}].reduce((p,g)=>{let x=Math.hypot(e-p.x,t-p.y);return Math.hypot(e-g.x,t-g.y)<x?g:p}),[d]=(0,Zo.getStraightPath)({sourceX:c.x,sourceY:c.y,targetX:e,targetY:t});return(0,Er.jsxs)("g",{className:"group",children:[(0,Er.jsx)("path",{fill:"none",className:"stroke-2 stroke-grey-500 animated transition-[stroke,filter] duration-75",d}),(0,Er.jsx)("circle",{cx:e,cy:t,fill:"none",r:4,className:"stroke-2 stroke-grey-600"})]})};var _t=require("@xyflow/react"),tu=require("lodash"),br=require("react");var Me=require("react/jsx-runtime"),ou=({id:e,data:t,selected:o,dragging:n,parentId:r})=>{let{updateNodeData:i,getNodes:a}=(0,_t.useReactFlow)(),{mode:s}=q(),{inProgress:l,fromNode:c}=(0,_t.useConnection)(),d=l&&(c==null?void 0:c.id)!==e,[u,m]=(0,br.useState)(!1),p=a(),g=!r,x=(0,br.useMemo)(()=>(0,tu.orderBy)([...p.filter(E=>E.parentId===e&&E.type==="LANE")],"position.y","asc"),[p,e]),f=g?Sa.MIN_WIDTH:ie.MIN_WIDTH,h=(0,br.useMemo)(()=>{if(g&&x.length>1){let E=[...x];return E.pop(),E.reduce((w,C)=>{var A,R;return w+((R=(A=C.measured)==null?void 0:A.height)!=null?R:0)},0)+ie.MIN_HEIGHT}return ie.MIN_HEIGHT},[g,x]),_=E=>{i(e,{label:E})},b=()=>{m(!0)},T=()=>{m(!1)};return(0,Me.jsxs)(Me.Fragment,{children:[(0,Me.jsxs)("div",{className:H("flex h-full min-h-64 w-full min-w-[50rem] hover:shadow-md bg-white outline outline-1 outline-grey-300",{"outline-offset-2 outline-blue-500 shadow-sm":o}),children:[(0,Me.jsx)("div",{className:"flex align-items justify-center w-10 border-r border-grey-300",onDoubleClick:b,children:(0,Me.jsx)("div",{className:"relative flex-1 [writing-mode:vertical-rl] [text-orientation:sideways] transform rotate-180",children:(0,Me.jsx)(Ze,{value:t.label,className:"w-full h-full self-auto",contentClassName:H({"whitespace-nowrap":u}),isEditing:u,onBlur:T,onChange:_})})}),(0,Me.jsx)("div",{className:"flex-1"})]}),(0,Me.jsx)(at,{nodeId:e,nodeType:"LANE",isChild:!g}),s==="edit"&&(0,Me.jsx)(Mt,{nodeId:e,isVisible:!n&&o,minWidth:f,minHeight:h,offset:10}),!l&&(0,Me.jsxs)(Me.Fragment,{children:[(0,Me.jsx)(te,{type:"source",position:_t.Position.Left,id:"left"}),(0,Me.jsx)(te,{type:"source",position:_t.Position.Right,id:"right"}),(0,Me.jsx)(te,{type:"source",position:_t.Position.Top,id:"top"}),(0,Me.jsx)(te,{type:"source",position:_t.Position.Bottom,id:"bottom"})]}),(!l||d)&&(0,Me.jsxs)(Me.Fragment,{children:[(0,Me.jsx)(te,{type:"target",position:_t.Position.Left,id:"left",className:H({"annotation-handle":d})}),(0,Me.jsx)(te,{type:"target",position:_t.Position.Right,id:"right",className:H({"annotation-handle":d})}),(0,Me.jsx)(te,{type:"target",position:_t.Position.Top,id:"top",className:H({"annotation-handle":d})}),(0,Me.jsx)(te,{type:"target",position:_t.Position.Bottom,id:"bottom",className:H({"annotation-handle":d})})]})]})};var nu={START_EVENT:Ud,END_EVENT:zd,TASK:Jd,GATEWAY:Yd,ANNOTATION:Gd,LANE:ou,UNSUPPORTED:Qd},ru={SEQUENCE_EDGE:ud,MESSAGE_EDGE:jd,ANNOTATION_EDGE:od},iu="#fafafa",su="#bebebe",au=1,lu=10,cu="bottom-left",Js=.05,du=5,Dn=.5,On=Js,Vn=1,uu={x:0,y:0,zoom:.75},pu=1,fu=2,xh={[pu]:4,[fu]:2},_r=[pu,fu],Qs=_r.reduce((e,t)=>e|xh[t],0);var mu=require("@xyflow/react");var Pt=()=>{let{getEdges:e,getNodes:t}=(0,mu.useReactFlow)(),{lastElementId:o}=q(),n=()=>{let i=t(),a=e(),s=Sd(i,a);return Math.max(s,o)};return{getLastId:n,getNextId:()=>n()+1}};var Gn=()=>{let{getNodes:e,getEdges:t,setNodes:o,setEdges:n,setViewport:r}=(0,Hn.useReactFlow)(),{getLastId:i}=Pt(),a=(0,Hn.useStoreApi)(),{setLastElementId:s}=q(),l=(0,js.useCallback)(async(d="")=>{let{nodes:u,edges:m,lastElementId:p}=await Pd(d),{width:g,height:x}=a.getState();if(g>0&&x>0){let f=Oa(u);f&&r((0,Hn.getViewportForBounds)(f,g,x,On,Vn,Dn))}o(u),n(m),s(p)},[o,n,s,a,r]),c=(0,js.useCallback)(()=>{let d=e(),u=t(),m=i();return Md(d,u,m)},[e,t,i]);return{importFromMxGraph:l,exportToMxGraph:c}};var ea=require("react"),Eh=500,Qi=()=>{let{isInitialized:e,onElementChanges:t}=q(),{exportToMxGraph:o}=Gn(),n=(0,gu.useDebouncedCallback)(()=>{if(!e)return;let a=o();t==null||t(a)},Eh),r=(0,ea.useCallback)(a=>{a.every(c=>c.type==="select")||a.some(c=>c.type==="position"&&c.dragging)||n()},[n]),i=(0,ea.useCallback)(a=>{a.some(l=>l.type==="select")||n()},[n]);return{emitElementChanges:n,handleNodeChanges:r,handleEdgeChanges:i}};var hu=({setEdges:e,saveHistory:t})=>{let{getNode:o,getEdges:n,getNodes:r,getInternalNode:i}=(0,ji.useReactFlow)(),{emitElementChanges:a}=Qi(),s=(0,Jt.useRef)(null),{getNextId:l}=Pt(),c=(0,Jt.useCallback)(f=>{var E;let h=o(f.source),_=o(f.target);if(!h||!_)return!1;let b={sourceNodeId:h.id,targetNodeId:_.id,sourceNodeType:h.type,targetNodeType:_.type,nodes:r(),edges:n(),reconnectingEdgeId:(E=s.current)!=null?E:void 0};return Os(b).isValid},[o,n,r]),d=(0,Jt.useCallback)(f=>{var b,T;let h=l(),_=i(f.source);if(_){let E=i(f.target),y=E?E.internals.positionAbsolute.x+((b=E.measured.width)!=null?b:0)/2:0,w=E?E.internals.positionAbsolute.y+((T=E.measured.height)!=null?T:0)/2:0,C=pd(_,y,w),A=(E==null?void 0:E.type)==="ANNOTATION"||(_==null?void 0:_.type)==="ANNOTATION",R=A?Cn:St,G;if(!A&&E&&f.targetHandle){let X=Bi(C),$=Bi(f.targetHandle),{x:Z,y:Y}=Bs(_,C),{x:S,y:V}=Bs(E,f.targetHandle),I=Oi(Z,Y,S,V,X,$).slice(1,-1);I.length>0&&(G=I)}let M=v(N(N({},f),R),{id:String(h),sourceHandle:C,data:N(N({},A?{}:St.data),G?{points:G}:{})}),P=n().concat(M);e(P),t("forceSave",{nodes:r(),edges:P}),a()}},[l,e,a,i,n,r,t]),u=(0,Jt.useCallback)((f,h)=>{s.current=h.id},[]),m=(0,Jt.useCallback)(()=>{s.current=null},[]),p=(0,Jt.useCallback)((f,h)=>{let _=o(h.source),b=o(h.target);if(!_||!b){s.current=null;return}let T={sourceNodeId:_.id,targetNodeId:b.id,sourceNodeType:_.type,targetNodeType:b.type,nodes:r(),edges:n(),reconnectingEdgeId:f.id};if(!Os(T).isValid){s.current=null;return}let y=(0,ji.reconnectEdge)(f,h,n()).map(w=>w.id===f.id?v(N({},w),{data:v(N({},w.data),{points:void 0})}):w);e(y),t("forceSave",{nodes:r(),edges:y}),s.current=null,a()},[o,r,n,e,a,t]),g=(0,Jt.useCallback)(f=>{s.current=f},[]),x=(0,Jt.useCallback)(()=>{s.current=null},[]);return{isValidConnection:c,onConnect:d,onReconnect:p,onReconnectStart:u,onReconnectEnd:m,setReconnectingEdge:g,clearReconnectingEdge:x}};var wu=require("@produto-lecom/lecom-ui"),Iu=require("@xyflow/react"),Ht=require("react");var Nr=(e=[])=>e.filter(t=>t.type==="START_EVENT"),Jo=(e=[])=>e.filter(t=>t.type==="END_EVENT"),Io=(e=[])=>e.filter(t=>t.type==="TASK")||[],yu=(e=[])=>e.filter(t=>{var o;return t.type==="TASK"&&((o=t.properties)==null?void 0:o.variant)==="SCRIPT"});var es=(e=[])=>e.filter(t=>t.type==="GATEWAY"),xu=(e=[])=>e.filter(t=>{var o;return t.type==="GATEWAY"&&((o=t.properties)==null?void 0:o.variant)==="EXCLUSIVE"}),Nt=(e,t=[])=>t.filter(o=>o.source===e),Tr=(e,t=[])=>t.filter(o=>o.target===e),Eu=(e,t)=>{var n,r;let o=(n=t.nodes)==null?void 0:n.find(i=>i.id===e);return((r=o==null?void 0:o.properties)==null?void 0:r.attribute)==="LOOP"},bu=(e,t)=>{let o=Nt(e,t.edges||[]);for(let n of o){let r=(t.nodes||[]).find(i=>i.id===n.target);if(r&&r.type==="END_EVENT")return!0}return!1},_u=e=>e?/[^\s]/.test(e.trim()):!1,we=e=>{let{isValid:t,nodeIds:o,edgeIds:n}=e;return{isValid:t,nodeIds:!t&&o&&o.length>0?o:[],edgeIds:!t&&n&&n.length>0?n:[]}},po=(e=[],t)=>{if(!e||e.length===0)return{isValid:!0,invalidIds:[]};let o=e.filter(n=>!t(n));return{isValid:o.length===0,invalidIds:o.map(n=>n.id)}},Nu=(e=[],t=[])=>({nodes:e.map(o=>{var n;return{id:o.id,type:o.type||"",label:typeof((n=o.data)==null?void 0:n.label)=="string"?o.data.label:void 0,properties:o.data}}),edges:t.map(o=>({id:o.id,source:o.source,target:o.target,type:o.type||"default"}))});var vr=[{id:"start_event_not_found",validate:e=>{let t=Nr(e.nodes);return we({isValid:t.length>=1})}},{id:"end_event_not_found",validate:e=>{let t=Jo(e.nodes);return we({isValid:t.length>=1})}},{id:"multiple_start_event_not_allowed",validate:e=>{let t=Nr(e.nodes),o=t.length===1;if(t.length===0)return we({isValid:!0});if(!o)return we({isValid:!1,nodeIds:t.map(i=>i.id)});let n=Nt(t[0].id,e.edges);if(!(n.length<=1)){let i=[...t.map(a=>a.id),...n.map(a=>a.target)];return we({isValid:!1,nodeIds:[...new Set(i)]})}return we({isValid:!0})}},{id:"task_flows_limit_exceeds",validate:e=>{let t=Io(e.nodes),o=po(t,n=>Nt(n.id,e.edges).length<=2);return we({isValid:o.isValid,nodeIds:o.invalidIds})}},{id:"task_label_empty",highlightRelatedEdges:!1,validate:e=>{let t=Io(e.nodes),o=po(t,n=>!!n.label&&n.label.trim()!=="");return we({isValid:o.isValid,nodeIds:o.invalidIds})}},{id:"task_label_length",highlightRelatedEdges:!1,validate:e=>{let o=Io(e.nodes),n=po(o,r=>!r.label||r.label.length<=60);return we({isValid:n.isValid,nodeIds:n.invalidIds})}},{id:"duplicate_task_name",highlightRelatedEdges:!1,validate:e=>{let t=Io(e.nodes),o=new Map;for(let r of t){if(!r.label)continue;let i=r.label.trim();i&&(o.has(i)||o.set(i,[]),o.get(i).push(r))}let n=[];for(let[,r]of o.entries())r.length>1&&r.forEach(i=>n.push(i.id));return we({isValid:n.length===0,nodeIds:n})}},{id:"nested_gateway",validate:e=>{let t=es(e.nodes),o=[],n=[];for(let r of t){let i=Nt(r.id,e.edges);for(let a of i){let s=e.nodes.find(l=>l.id===a.target);s&&s.type==="GATEWAY"&&(o.push(r.id,s.id),n.push(a.id))}}return we({isValid:o.length===0,nodeIds:o.length>0?[...new Set(o)]:[],edgeIds:n})}},{id:"events_nested",validate:e=>{let t=[...Nr(e.nodes),...Jo(e.nodes)],o=[],n=[];for(let r of t){let i=Nt(r.id,e.edges);for(let a of i){let s=e.nodes.find(l=>l.id===a.target);s&&(s.type==="START_EVENT"||s.type==="END_EVENT")&&(o.push(r.id,s.id),n.push(a.id))}}return we({isValid:o.length===0,nodeIds:o.length>0?[...new Set(o)]:[],edgeIds:n})}},{id:"flows_on_end_tasks_not_allowed",validate:e=>{let t=Jo(e.nodes),o=[],n=[];for(let r of t){let i=Tr(r.id,e.edges);for(let a of i){let s=e.nodes.find(l=>l.id===a.source);if(s&&s.type==="TASK"){let l=Nt(s.id,e.edges);l.length>1&&(o.push(s.id),l.forEach(c=>n.push(c.id)))}}}return we({isValid:o.length===0,nodeIds:o,edgeIds:n})}},{id:"conditions_flows_limit_exceeds",validate:e=>{let t=xu(e.nodes),o=po(t,r=>Nt(r.id,e.edges).length<=2),n=o.invalidIds.flatMap(r=>Nt(r,e.edges).map(i=>i.id));return we({isValid:o.isValid,nodeIds:o.invalidIds,edgeIds:n})}},{id:"activity_name_invalid",validate:e=>{let t=Io(e.nodes),o=po(t,n=>!n.label||_u(n.label));return we({isValid:o.isValid,nodeIds:o.invalidIds})}},{id:"final_activity_has_loop",validate:e=>{var a,s;if(!((a=e==null?void 0:e.nodes)!=null&&a.length)||!((s=e==null?void 0:e.edges)!=null&&s.length))return we({isValid:!0});let t=Jo(e.nodes)[0];if(!t)return we({isValid:!0});let o=Tr(t.id,e.edges);if(!o.length)return we({isValid:!0});let r=Io(e.nodes).filter(l=>o.some(c=>c.source===l.id)),i=po(r,l=>!Eu(l.id,e));return we({isValid:i.isValid,nodeIds:i.isValid?[]:[t.id,...i.invalidIds]})}},{id:"concurrent_initial_and_final_event",validate:e=>{let t=Io(e.nodes),o=Jo(e.nodes)[0];if(!o)return we({isValid:!0});let n=t.filter(l=>{let c=Tr(l.id,e.edges),d=Nt(l.id,e.edges),u=c.some(p=>{var g;return((g=e.nodes.find(x=>x.id===p.source))==null?void 0:g.type)==="START_EVENT"}),m=d.some(p=>{var g;return((g=e.nodes.find(x=>x.id===p.target))==null?void 0:g.type)==="END_EVENT"});return u&&m}),r=Tr(o.id,e.edges),i=r.length>1,a=r.map(l=>l.source),s={isValid:n.length===0&&!i,nodeIds:[...n.map(l=>l.id),...i?a:[]]};return we(s)}},{id:"gateway_flow_to_event",validate:e=>{let t=es(e.nodes),o=[],n=[];for(let r of t){let i=Nt(r.id,e.edges);for(let a of i){let s=e.nodes.find(l=>l.id===a.target);s&&s.type==="END_EVENT"&&(o.push(r.id,s.id),n.push(a.id))}}return we({isValid:o.length===0,nodeIds:o.length>0?[...new Set(o)]:[],edgeIds:n})}},{id:"gateway_missing_output_streams",validate:e=>{let t=es(e.nodes),o=po(t,n=>Nt(n.id,e.edges).length>=1);return we({isValid:o.isValid,nodeIds:o.invalidIds})}},{id:"event_to_condition",validate:e=>{let t=[...Nr(e.nodes),...Jo(e.nodes)],o=[],n=[];for(let r of t){let i=Nt(r.id,e.edges);for(let a of i){let s=e.nodes.find(l=>l.id===a.target);s&&s.type==="GATEWAY"&&(o.push(r.id,s.id),n.push(a.id))}}return we({isValid:o.length===0,nodeIds:o.length>0?[...new Set(o)]:[],edgeIds:n})}},{id:"script_in_final_activity",validate:e=>{let t=yu(e.nodes),o=po(t,n=>!bu(n.id,e));return we({isValid:o.isValid,nodeIds:o.invalidIds})}}];var Tu=e=>{e=e||{nodes:[],edges:[]},e.nodes=e.nodes||[],e.edges=e.edges||[];let t=[];for(let n of vr){let r=n.validate(e);r.isValid||t.push({id:n.id,message:n.id,nodeIds:r.nodeIds||[],edgeIds:r.edgeIds||[]})}return{isValid:t.length===0,errors:t}},vu=async(e,t)=>{var n;let o=[];try{let r=await e(),i=(n=r==null?void 0:r.filter(a=>a.area==="DIAGRAM"))!=null?n:[];return i.length===0?{isValid:!0,errors:[]}:(i.forEach(a=>{var l,c;let s=(c=(l=a==null?void 0:a.detail)==null?void 0:l.phases)==null?void 0:c.map(d=>d.diagramCellId);o.push({id:a.code,message:a.code,nodeIds:s,edgeIds:[]})}),{isValid:!1,errors:o})}catch(r){return{isValid:!1,errors:[{id:"cannot_validate_subprocess_reference",message:"cannot_validate_subprocess_reference",nodeIds:t.map(i=>i.id)||[],edgeIds:[]}]}}};var Qo=require("react/jsx-runtime"),Au=()=>{let{t:e}=(0,wu.useTranslation)(),{toast:t}=st(),{setNodes:o,setEdges:n,getNodes:r,getEdges:i}=(0,Iu.useReactFlow)(),{validateCustomDiagram:a}=q(),[s,l]=(0,Ht.useState)(!1),c=(0,Ht.useRef)(!1),d=(0,Ht.useRef)(!1),u=(0,Ht.useCallback)(async f=>{let h=Nu(f.nodes,f.edges),_=Tu(h),b=f.nodes.filter(({type:E,data:y})=>E==="TASK"&&(y==null?void 0:y.variant)==="SUBPROCESS");if(a&&b.length>0){let E=await vu(a,b);_={isValid:_.isValid&&E.isValid,errors:[..._.errors,...E.errors]}}let T=_.errors.map(E=>v(N({},E),{message:e(`validation.errors.${E.id}`)}));return s||l(!0),{isValid:_.isValid,errors:T}},[s,e,a]),m=(0,Ht.useCallback)((f,h=!0)=>{if(h&&f&&t({variant:f.isValid?"success":"error",duration:5e3,title:f.isValid?e("validation.success.title"):e("validation.errors.title"),content:(0,Qo.jsxs)("div",{className:"flex flex-col gap-1",children:[!f.isValid&&(0,Qo.jsx)("span",{className:"body-small-500",children:e("validation.errors.subtitle")}),(0,Qo.jsx)("ul",{className:"list-disc list-inside max-h-40 overflow-y-auto",children:f.isValid?(0,Qo.jsx)("li",{children:e("validation.success.message")}):f.errors.map(M=>(0,Qo.jsx)("li",{className:"text-xs",children:M.message},M.id))})]})}),!f)return;c.current=!0,d.current=!0;let _=[],b=[];f.errors.forEach(M=>{M.nodeIds&&M.nodeIds.length>0&&M.nodeIds.forEach(P=>_.push(P)),M.edgeIds&&M.edgeIds.length>0&&M.edgeIds.forEach(P=>b.push(P))});let T=[...new Set(_)];o(M=>M.map(P=>v(N({},P),{data:v(N({},P.data),{hasError:!1})}))),n(M=>M.map(P=>v(N({},P),{data:v(N({},P.data),{hasError:!1})})));let E=r(),y=i(),w=new Set(T),C=new Set;f.errors.forEach(M=>{var $,Z;let P=vr.find(Y=>Y.id===M.id);(P==null?void 0:P.highlightRelatedEdges)!==!1&&(($=M.edgeIds)==null||$.forEach(Y=>C.add(Y)),(Z=M.nodeIds)==null||Z.forEach(Y=>{y.forEach(S=>{(S.source===Y||S.target===Y)&&C.add(S.id)})}))});let A=new Set,R=new Set,G=new Set;E.forEach(M=>{M.type==="START_EVENT"?A.add(M.id):M.type==="END_EVENT"&&R.add(M.id)}),y.forEach(M=>{A.has(M.source)&&G.add(M.target),R.has(M.target)&&G.add(M.source)}),G.forEach(M=>{var P,X;if(w.has(M)){let $=(P=f.errors.find(Y=>{var S;return(S=Y.nodeIds)==null?void 0:S.includes(M)}))==null?void 0:P.id;((X=vr.find(Y=>Y.id===$))==null?void 0:X.highlightRelatedEdges)!==!1&&y.forEach(Y=>{Y.source===M&&R.has(Y.target)&&(w.add(Y.target),C.add(Y.id)),Y.target===M&&A.has(Y.source)&&(w.add(Y.source),C.add(Y.id))})}}),w.size>0&&o(M=>M.map(P=>v(N({},P),{data:v(N({},P.data),{hasError:w.has(P.id)})}))),C.size>0&&n(M=>M.map(P=>v(N({},P),{data:v(N({},P.data),{hasError:C.has(P.id)})}))),setTimeout(()=>{c.current=!1},0)},[e,i,r,n,o,t]),p=(0,Ht.useCallback)(()=>{l(!1),d.current=!1,o(f=>f.map(h=>v(N({},h),{data:v(N({},h.data),{hasError:!1})}))),n(f=>f.map(h=>v(N({},h),{data:v(N({},h.data),{hasError:!1})})))},[n,o]),g=(0,Ht.useCallback)(()=>{d.current&&(c.current=!0,d.current=!1,o(f=>f.map(h=>v(N({},h),{data:v(N({},h.data),{hasError:!1})}))),n(f=>f.map(h=>v(N({},h),{data:v(N({},h.data),{hasError:!1})}))),setTimeout(()=>{c.current=!1},0))},[n,o]),x=(0,Ht.useCallback)(()=>c.current,[]);return{validateDiagram:u,handleValidationComplete:m,clearValidation:p,dismissValidationPanel:g,isAutoValidationEnabled:s,getIsClearingValidation:x}};var Mu=require("@xyflow/react"),Pu=require("@produto-lecom/lecom-ui"),Lu=require("react");var bh=15,Cu="bpmn:selection",_h=e=>{if(!e||!(e instanceof HTMLElement))return!1;let t=e.tagName.toLowerCase(),o=t==="input"||t==="textarea",n=e.isContentEditable,r=t==="select",i=e.closest('[contenteditable="true"], input, textarea, select')!==null;return o||n||r||i},Su=e=>{if(!_h(e.target))return!0;let t=window.getSelection(),o=t&&t.toString().length>0;if(e.target instanceof HTMLInputElement||e.target instanceof HTMLTextAreaElement){let n=e.target;return n.selectionStart===n.selectionEnd&&!o}return!o},ku=({offset:e=bh,saveHistory:t})=>{let{t:o}=(0,Pu.useTranslation)(),{getNodes:n,setNodes:r,getEdges:i,setEdges:a}=(0,Mu.useReactFlow)(),{getNextId:s}=Pt();(0,Lu.useEffect)(()=>{let l=d=>{var h,_;if(!Su(d))return;let u=n(),m=i(),p=u.filter(b=>b.selected);if(!p.length)return;d.preventDefault(),d.stopPropagation();let g=m.filter(b=>p.some(T=>T.id===b.source)&&p.some(T=>T.id===b.target)),f=JSON.stringify({nodes:p,edges:g});(h=d.clipboardData)==null||h.setData(Cu,f),(_=d.clipboardData)==null||_.setData("text/plain",`BPMN Selection: ${p.length} nodes`)},c=d=>{var w,C;if(!Su(d))return;let u=(w=d.clipboardData)==null?void 0:w.getData(Cu);if(!u)return;d.preventDefault(),d.stopPropagation();let m;try{m=JSON.parse(u)}catch(A){return}if(!((C=m.nodes)!=null&&C.length))return;let p=new Map,g=n(),x=[],f=m.nodes.filter(A=>_o(A.type,g));if(f.length===0)return;let h=s(),_=f.map(A=>{var M;let R=String(h++);p.set(A.id,R);let G=v(N({},A),{id:R,selected:!0,position:{x:A.position.x+e,y:A.position.y+e}});if(A.type==="TASK"){let P=(M=A.data)==null?void 0:M.label,X=Rn(P||o("bpmn.task.label.prefix"),[...g,...x]);G.data=v(N({},A.data),{label:X})}return x.push(G),G}),b=m.edges.map(A=>v(N({},A),{id:String(h++),selected:!0,source:p.get(A.source)||A.source,target:p.get(A.target)||A.target})),T=[...g.map(A=>v(N({},A),{selected:!1})),..._],y=[...i().map(A=>v(N({},A),{selected:!1})),...b];r(T),a(y),t("forceSave",{nodes:T,edges:y})};return document.addEventListener("copy",l,!0),document.addEventListener("paste",c,!0),()=>{document.removeEventListener("copy",l,!0),document.removeEventListener("paste",c,!0)}},[n,r,i,a,s,e,o,t])};var Ru=require("@produto-lecom/lecom-ui"),Du=require("@xyflow/react");var Ou=require("react");var Nh=50,Vu=({nodes:e,setNodes:t,setEdges:o,saveHistory:n})=>{let{draggableNode:r,setDraggableNode:i}=kn(),{t:a}=(0,Ru.useTranslation)(),{getInternalNode:s,getNodes:l,getEdges:c,screenToFlowPosition:d}=(0,Du.useReactFlow)(),{getNextId:u}=Pt(),{setIsDragging:m}=q(),{getInternalNodes:p}=Wi(),{rebuildIndex:g,forceRebuildIndex:x}=vi(),[f,h]=(0,Ou.useState)(null),_=(S,V,D)=>{var k;if(S.parentId!==V)return null;let I=D.filter(O=>O.id!==S.id&&O.parentId===V&&O.type==="LANE").sort((O,B)=>O.position.y-B.position.y);if(I.length===0)return null;let z=(k=D.find(O=>O.id===S.id))!=null?k:S,L=I.find(O=>z.position.y<O.position.y);return L?{draggedLaneId:S.id,beforeLaneId:L.id}:{draggedLaneId:S.id,afterLaneId:I[I.length-1].id}},b=(S,V=!1,D)=>{let I=V?"node-drop-target-error":"node-drop-target",z=V?"node-drop-target-lane-error":"node-drop-target-lane";t(L=>{var O;let k=(O=D==null?void 0:D(L))!=null?O:null;return L.map(B=>{let ee=[];return B.id===S&&ee.push(I),S!==void 0&&B.parentId===S&&B.type==="LANE"&&B.id!==(k==null?void 0:k.draggedLaneId)&&ee.push(z),B.id===(k==null?void 0:k.draggedLaneId)&&ee.push("lane-reorder-dragging"),B.id===(k==null?void 0:k.beforeLaneId)&&ee.push("lane-reorder-before"),B.id===(k==null?void 0:k.afterLaneId)&&ee.push("lane-reorder-after"),v(N({},B),{className:ee.join(" ")})})})},T=(S,V)=>{let D=p();if(S.type==="LANE"){if(V){b();return}let O=D.filter(oe=>oe.id!==S.id&&oe.type==="LANE"&&!oe.parentId),B=$n(S,O);if(!B){b();return}if(Oo({parentId:B.id,nodes:e,excludeTypes:["LANE"]})){b(B.id,!0);return}b(B.id,!1,oe=>_(S,B.id,oe));return}let z=D.filter(O=>O.id!==S.id&&O.type==="LANE"),L=$n(S,z);if(!L){b();return}if(Oo({parentId:L.id,nodes:e,includeTypes:["LANE"]})){b();return}b(L.id)},E=S=>{let V=s(S.id),D=S.type==="LANE"&&Oo({parentId:S.id,nodes:e,includeTypes:["LANE"]});T(V,D)},y=S=>S.map(V=>v(N({},V),{className:void 0})),w=S=>S.some(D=>D.dragging)?S.map(D=>D.dragging?v(N({},D),{dragging:!1}):D):S,C=(S,V)=>{let D=0;for(let I of V){if(I.id===S||I.parentId||I.type==="LANE")continue;let z=It(I),L=z.y+z.h;D=Math.max(D,L)}return D+Nh},A=(S,V)=>{if(!hs(S,V))return V;let D=C(S,V);return V.map(I=>I.id===S?v(N({},I),{position:v(N({},I.position),{y:D})}):I)},R=S=>{if(S.preventDefault(),S.dataTransfer.dropEffect="move",!(r!=null&&r.type))return;let V=d({x:S.clientX,y:S.clientY}),D={id:"__sidebar_drag__",type:r.type,position:V,measured:{width:1,height:1},internals:{positionAbsolute:V}};T(D,!1)},G=S=>{let V=S.relatedTarget;(!V||!S.currentTarget.contains(V))&&b()},M=(S,V)=>{S.preventDefault(),E(V)},P=(S,V,D)=>{var ee,oe;let I=[...D],z=V.parentId?V.parentId:V.id;if(S.parentId===V.id)return I=xs(S,V,I),I=lo(I),I=Vo(z,I),y(I);if(S.type==="LANE"){if(Oo({parentId:V.id,nodes:I,excludeTypes:["LANE"]})){let F=_i(V),ne=50,le=50;return I.map(U=>{var Te,W;return U.id===S.id?v(N({},U),{position:{x:(Te=f==null?void 0:f.x)!=null?Te:F.x+ne,y:(W=f==null?void 0:f.y)!=null?W:F.y2+le}}):U})}let Q=I.filter(F=>F.parentId===V.id).reduce((F,ne)=>{var le,U;return F+((U=(le=ne.measured)==null?void 0:le.height)!=null?U:0)},0),ae={x:ie.HEADER_WIDTH,y:Q};return I=I.map(F=>F.id===S.id?v(N({},F),{parentId:V.id,position:ae,className:void 0}):v(N({},F),{className:void 0})),I=lo(I),I=A(z,I),I}if(Oo({parentId:V.id,nodes:I,includeTypes:["LANE"]})){let K;if(S.parentId){let J=s(S.parentId),{x:Q,y:ae}=It(J);K={x:Q+((ee=S.position.x)!=null?ee:0),y:ae+((oe=S.position.y)!=null?oe:0)}}return I=I.map(J=>J.id===S.id?v(N({},J),{position:K!=null?K:J.position,parentId:void 0,className:void 0}):v(N({},J),{className:void 0})),I=Vo(z,I),I}let O=ka(S,V);I=I.map(K=>K.id===S.id?v(N({},K),{parentId:V.id,position:O,className:void 0}):v(N({},K),{className:void 0}));let B=I.find(K=>K.id===S.id);return I=xs(B,V,I),I=lo(I),I=Vo(z,I),I},X=S=>{if(S.preventDefault(),!(r!=null&&r.type))return;if(!_o(r.type,l())){m(!1),i(null);return}let V=d({x:S.clientX,y:S.clientY}),D={width:pe[r.type].MIN_WIDTH,height:pe[r.type].MIN_HEIGHT},I=u(),z={id:String(I),type:r.type,position:V,measured:D,data:{label:r.type==="TASK"?Zi(e,a("bpmn.task.label.prefix")):"",variant:r.variant,attribute:r.attribute},selected:!0},L=v(N({},z),{internals:{positionAbsolute:V}}),k=v(N({},L),{measured:{width:1,height:1}}),O=p(),B=r.type==="LANE",ee=O.filter(F=>B?F.type==="LANE"&&!F.parentId:F.type==="LANE"),oe=$n(k,ee),K=[...O.map(F=>v(N({},F),{selected:!1})),L];oe&&(K=P(L,oe,K)),K=Do(K),B&&!oe&&(K=A(L.id,K)),K=y(K),t(K),x();let J=S.dataTransfer.getData("sourceId"),Q=c(),ae=Q;if(J){let F={id:String(I+1),source:J,target:z.id},ne=r.type==="ANNOTATION"?N(N({},F),Cn):N(N({},F),St);ae=Q.concat(ne),o(ae)}n("forceSave",{nodes:K,edges:ae}),m(!1),i(null)},$=async(S,V,D)=>{let I=[...p()],z=new Set;D.forEach(O=>{let B=s(O.id),ee=O.type==="LANE",oe=I.filter(J=>J.id!==O.id&&(ee?J.type==="LANE"&&!J.parentId:J.type==="LANE")),K=$n(B,oe);if(K){if(ee&&Oo({parentId:O.id,nodes:I,includeTypes:["LANE"]})){O.parentId&&(I=Y(O,I),z.add(O.id));return}I=P(B,K,I);return}O.parentId&&(I=Y(O,I),O.type==="LANE"&&z.add(O.id))}),I=w(I);let L=D.filter(O=>O.type==="LANE"&&!O.parentId).map(O=>O.id);for(let O of L)hs(O,I)&&f&&(I=I.map(B=>B.id===O?v(N({},B),{position:N({},f)}):B));for(let O of z)I=A(O,I);if(D.some(O=>O.type!=="LANE"&&!O.parentId)){let O=I.filter(B=>B.type==="LANE"&&!B.parentId).map(B=>B.id);for(let B of O)I=Vo(B,I)}I=Do(I),I=y(I),t(I),g(I),h(null)},Z=(S,V)=>{h({x:V.position.x,y:V.position.y})},Y=(S,V)=>{var oe,K,J,Q,ae,F,ne,le;let D=s(S.parentId);if(!D)return V;let I=S.type==="LANE",z=V.filter(U=>U.parentId===D.id&&U.id!==S.id),L=z.filter(U=>U.type==="LANE"),k;if(I&&L.length===0)k=ie.MIN_HEIGHT;else if(I){let U=(K=(oe=S.measured)==null?void 0:oe.height)!=null?K:ie.MIN_HEIGHT;k=((Q=(J=D.measured)==null?void 0:J.height)!=null?Q:ie.MIN_HEIGHT)-U,k=Math.max(ie.MIN_HEIGHT,k)}else k=z.length>0?z.reduce((U,Te)=>{var W,j;return U+((j=(W=Te.measured)==null?void 0:W.height)!=null?j:0)},0)+De:Math.max(ie.MIN_HEIGHT,(F=(ae=D.measured)==null?void 0:ae.height)!=null?F:0);let{x:O,y:B}=It(D),ee={x:O+((ne=S.position.x)!=null?ne:0),y:B+((le=S.position.y)!=null?le:0)};return V=V.map(U=>U.id===S.id?v(N({},U),{position:ee,parentId:void 0}):U.id===D.id?v(N({},U),{height:k,measured:v(N({},U.measured),{height:k})}):U),V=lo(V),V};return{onDragOver:R,onDragLeave:G,onDrop:X,onNodeDrag:M,onNodeDragStart:Z,onNodeDragStop:$}};var Hu=require("@xyflow/react"),Gu=require("@produto-lecom/lecom-ui"),Bu=require("react");var Th=30,vh=e=>{if(!e||!(e instanceof HTMLElement))return!1;let t=e.tagName.toLowerCase(),o=t==="input"||t==="textarea",n=e.isContentEditable,r=t==="select",i=e.closest('[contenteditable="true"], input, textarea, select')!==null;return o||n||r||i},wh=e=>!vh(e.target),zu=({offset:e=Th,saveHistory:t})=>{let{t:o}=(0,Gu.useTranslation)(),{getNodes:n,setNodes:r,getEdges:i,setEdges:a}=(0,Hu.useReactFlow)(),{getNextId:s}=Pt();(0,Bu.useEffect)(()=>{let l=c=>{if(c.ctrlKey&&c.key.toLowerCase()==="d"&&wh(c)){c.preventDefault(),c.stopPropagation();let d=n(),u=i(),m=d.filter(y=>y.selected);if(!m.length)return;let p=new Map,g=[],x=m.filter(y=>_o(y.type,d));if(x.length===0)return;let f=u.filter(y=>x.some(w=>w.id===y.source)&&x.some(w=>w.id===y.target)),h=s(),_=x.map(y=>{var A;let w=String(h++);p.set(y.id,w);let C=v(N({},y),{id:w,selected:!0,position:{x:y.position.x+e,y:y.position.y+e}});if(y.type==="TASK"){let R=(A=y.data)==null?void 0:A.label,G=Rn(R||o("bpmn.task.label.prefix"),[...d,...g]);C.data=v(N({},y.data),{label:G})}return g.push(C),C}),b=f.map(y=>v(N({},y),{id:String(h++),selected:!0,source:p.get(y.source)||y.source,target:p.get(y.target)||y.target})),T=[...d.map(y=>v(N({},y),{selected:!1})),..._],E=[...u.map(y=>v(N({},y),{selected:!1})),...b];r(T),a(E),t("forceSave",{nodes:T,edges:E})}};return document.addEventListener("keydown",l,!0),()=>{document.removeEventListener("keydown",l,!0)}},[n,r,i,a,s,e,o,t])};var Ir=require("react"),Yu=require("@xyflow/react");var Ih=20,Ah=50,wr={UP:"ArrowUp",DOWN:"ArrowDown",LEFT:"ArrowLeft",RIGHT:"ArrowRight"},Ch=e=>{if(!e||!(e instanceof HTMLElement))return!1;let t=e.tagName.toLowerCase(),o=t==="input"||t==="textarea",n=e.isContentEditable,r=t==="select",i=e.closest('[contenteditable="true"], input, textarea, select')!==null;return o||n||r||i},Wu=e=>{let{getNodes:t}=(0,Yu.useReactFlow)(),{mode:o,isMoveTool:n}=q(),r=(0,Ir.useRef)(0),i=(0,Ir.useRef)(new Map);(0,Ir.useEffect)(()=>{let a=s=>{if(o!=="edit"||!n||Ch(s.target)||!Object.values(wr).includes(s.key))return;let u=t().filter(_=>_.selected);if(u.length===0){i.current.clear();return}s.preventDefault();let m=Date.now(),p=m-r.current<500;r.current=m;let g=s.shiftKey?Ah:Ih,x=0,f=0;switch(s.key){case wr.UP:f=-g;break;case wr.DOWN:f=g;break;case wr.LEFT:x=-g;break;case wr.RIGHT:x=g;break}let h=u.map(_=>{let b=i.current.get(_.id);(!p||!b)&&(b={x:_.position.x,y:_.position.y});let T={x:b.x+x,y:b.y+f};return i.current.set(_.id,T),{id:_.id,dragging:!0,type:"position",position:T}});e&&e(h)};return window.addEventListener("keydown",a),()=>{window.removeEventListener("keydown",a)}},[t,e,o,n])};var Ku=require("@xyflow/react");var Xu={"start-event":"START_EVENT","end-event":"END_EVENT",task:"TASK","gateway-exclusive":"GATEWAY"},Uu={"start-event":"","end-event":"",task:"","gateway-exclusive":"EXCLUSIVE"},Fu=(e,t)=>{if(!e){console.warn("Step not found");return}e=e.trim();let o=e.match(/(\<.*?\>)/)||[],n=e.match(/(\[.*?\])/)||[],r=e.match(/(\{.*?\})/)||[],i=e.match(/(--.*|\|.*?\|)/i)||[],a="",s="",l="";if(o.length){switch(o[1]){case"<start>":a="start-event";break;case"<end>":a="end-event";break}e=e.replace(o[1],"")}return n.length&&(a="task",s=n[1].replace(/\[|\]/g,""),e=e.replace(n[1],"")),r.length&&(a="gateway-exclusive",s=r[1].replace(/\{|\}/g,""),e=e.replace(r[1],"")),a||(a="task",s=e),i.length&&(l=i[1].replace(/(\||--)/g,""),e=e.replace(i[1],"")),e=e.trim(),t[e]||(t[e]={type:a,label:s}),{step:e,type:a,label:s,edgeLabel:l}},Sh=e=>{e=e||"";let t=e.trim().split(`
42
42
  `),o={},n=[];return t.forEach(r=>{r=r||"";let i=r.trim().split("-->");if(i.length!==2){console.warn("Invalid number of steps");return}let a=Fu(i[0],o),s=Fu(i[1],o);a&&s&&n.push({sourceId:a.step,targetId:s.step,label:a.edgeLabel||s.edgeLabel||""})}),{components:o,connections:n}},$u=e=>{let{components:t,connections:o}=Sh(e);return{nodes:t,edges:o}};var qu=()=>{let{setNodes:e,setEdges:t,fitView:o}=(0,Ku.useReactFlow)(),{getNextId:n}=Pt();return{importFromLia:i=>{let a=typeof i=="string"?i:i.diagramXml||"",{nodes:s,edges:l}=$u(a),c=[],d=new Map,u=!1,m=n();for(let[f,h]of Object.entries(s)){let _=String(m++),b=Xu[h.type],T=Uu[h.type];b==="START_EVENT"&&(u=!0),d.set(f,_);let E=pe[b].MIN_WIDTH,y=pe[b].MIN_HEIGHT;c.push({id:_,type:b,data:{label:h.label||"",variant:T,attribute:""},position:{x:0,y:0},width:E,height:y,measured:{width:E,height:y}})}let p=[];for(let f of l){let h=v(N({},St),{id:String(m++),source:d.get(f.sourceId)||f.sourceId,target:d.get(f.targetId)||f.targetId});p.push(h)}if(!u&&c.length>0){let f=String(m++),h={id:f,type:"START_EVENT",data:{label:"",variant:"",attribute:""},position:{x:0,y:0},width:pe.START_EVENT.MIN_WIDTH,height:pe.START_EVENT.MIN_HEIGHT,measured:{width:pe.START_EVENT.MIN_WIDTH,height:pe.START_EVENT.MIN_HEIGHT}};c.unshift(h);let _=c[1];if(_){let b=v(N({},St),{id:String(m++),source:f,target:_.id});p.unshift(b)}}let{nodes:g,edges:x}=wd(c,p);e(g),t(x),o({padding:Dn,minZoom:On,maxZoom:Vn})}}};var ts=require("react"),Mh={origin:"*",debug:!1};function Zu(e,t=Mh){let{origin:o,debug:n}=t,r=(0,ts.useCallback)((i,a)=>{let s={event:i,data:[i,{event:i,data:a}]};window.parent.postMessage(s,o||"*")},[o]);return(0,ts.useEffect)(()=>{let i=a=>{let s=a.data;if(!(s!=null&&s.event)||(s==null?void 0:s.data)===void 0)return;let{event:l,data:c}=s,d;if(Array.isArray(c)){let[,u]=c;d=u.data}else d=c;n&&(console.debug("[postMessage] received:",s),console.debug("[postMessage] eventData:",d)),l&&e[l]&&e[l](d)};return window.addEventListener("message",i),()=>window.removeEventListener("message",i)},[e,n]),{sendMessage:r}}var Ju=require("@xyflow/react"),ta=require("react");var Qu=()=>{let e=(0,Ju.useNodesInitialized)(),{initialDiagram:t,setIsInitialized:o}=q(),{importFromMxGraph:n}=Gn();(0,ta.useEffect)(()=>{t&&n(t)},[t,n,o]),(0,ta.useEffect)(()=>{if(!e)return;(async()=>{await Vr(),o(!0)})()},[e,o])};var oa=require("react"),ju=require("@xyflow/react");function ep(){let{setTaskStatuses:e,clearTaskStatuses:t,calculateFlowPath:o}=Go(),{getEdges:n}=(0,ju.useReactFlow)(),r=Ur(),i=(0,oa.useCallback)(s=>{if(!(s!=null&&s.activities))return;e(s.activities);let l=s.activities.map(d=>d.diagramId),c=n();o(c,l),setTimeout(()=>{r()},0)},[e,o,n,r]),a=(0,oa.useCallback)(()=>{t(),setTimeout(()=>{r()},0)},[t,r]);return{handleTasksStatus:i,handleClearTaskStatus:a}}var op=require("@xyflow/react"),tt=require("react"),np=require("use-debounce");var Ph=500,tp=100,rp=(e=!1)=>{let{getNodes:t,getEdges:o,setNodes:n,setEdges:r}=(0,op.useReactFlow)(),[i,a]=(0,tt.useState)({history:[],currentStep:0}),{history:s,currentStep:l}=i,c=l>0,d=l<s.length-1,u=(0,tt.useCallback)((E,y)=>{n(E[y].nodes),r(E[y].edges)},[n,r]),m=(0,tt.useCallback)(()=>{if(l>0){let E=l-1;a(y=>v(N({},y),{currentStep:E})),u(s,E)}},[l,s,u]),p=(0,tt.useCallback)(()=>{if(l<s.length-1){let E=l+1;a(y=>v(N({},y),{currentStep:E})),u(s,E)}},[s,l,u]),g=(0,tt.useCallback)(E=>{a(y=>{let w=y.history[y.currentStep];if(w&&JSON.stringify(w)===JSON.stringify(E))return y;let R=[...y.history.slice(0,y.currentStep+1),E],G=R.length>tp?R.slice(R.length-tp):R;return{history:G,currentStep:G.length-1}})},[]),x=(0,tt.useCallback)((E,y)=>{let w=E.map(A=>v(N({},A),{selected:!1,className:"",data:v(N({},A.data),{hasError:!1})})),C=y.map(A=>v(N({},A),{data:v(N({},A.data),{hasError:!1})}));return{nodes:Do(w),edges:C}},[]),f=(0,tt.useCallback)(()=>x(t(),o()),[t,o,x]),h=(0,np.useDebouncedCallback)(()=>{let E=f();g(E)},Ph),_=(0,tt.useCallback)((E,y)=>{if(!e)return;if(s.length===0){let A=f();a({history:[A],currentStep:0})}if(E==="forceSave"){if(y){g(x(y.nodes,y.edges));return}h();return}E.some(A=>A.type==="select")||E.some(A=>A.type==="position"&&A.dragging)||h()},[e,h,s.length,f,g,x]);(0,tt.useEffect)(()=>{if(e&&s.length===0){let E=f();a({history:[E],currentStep:0})}},[e,s.length,f]);let b=(0,tt.useCallback)(E=>{a({history:E||[],currentStep:0})},[]),T=(0,tt.useCallback)(()=>{a({history:[],currentStep:0})},[]);return(0,tt.useEffect)(()=>{let E=y=>{(y.ctrlKey||y.metaKey)&&(y.shiftKey&&y.key.toLowerCase()==="z"?(y.preventDefault(),p()):y.key.toLowerCase()==="z"&&(y.preventDefault(),m()))};return document.addEventListener("keydown",E),()=>{document.removeEventListener("keydown",E)}},[m,p]),{history:s,undo:m,redo:p,canUndo:c,canRedo:d,saveHistory:_,resetHistory:b,clearHistory:T}};var sp=()=>{let{t:e}=(0,ip.useTranslation)(),[t,o,n]=(0,Qt.useNodesState)([]),[r,i,a]=(0,Qt.useEdgesState)([]),{getNodes:s,getNode:l}=(0,Qt.useReactFlow)(),{toast:c}=st(),d=(0,Qt.useStoreApi)(),{instanceId:u,isInitialized:m,setIsConnecting:p,setIsMultipleSelection:g,onElementClick:x}=q(),{updateHelperLines:f,HelperLines:h}=vi(),{undo:_,redo:b,canUndo:T,canRedo:E,saveHistory:y}=rp(m),{onNodeDrag:w,onDrop:C,onDragOver:A,onDragLeave:R,onNodeDragStop:G,onNodeDragStart:M}=Vu({nodes:t,setNodes:o,setEdges:i,saveHistory:y}),{isValidConnection:P,onConnect:X,onReconnect:$,onReconnectStart:Z,onReconnectEnd:Y,setReconnectingEdge:S,clearReconnectingEdge:V}=hu({setEdges:i,saveHistory:y}),{handleValidationComplete:D,clearValidation:I,dismissValidationPanel:z,validateDiagram:L,getIsClearingValidation:k}=Au(),{importFromLia:O}=qu(),{handleTasksStatus:B,handleClearTaskStatus:ee}=ep(),{clearPathEdges:oe}=Go(),{emitElementChanges:K,handleNodeChanges:J,handleEdgeChanges:Q}=Qi(),ae=Ur();ku({saveHistory:y}),zu({saveHistory:y}),Qu();let F=(0,Lt.useCallback)(()=>{o([]),i([]),oe(),setTimeout(ae,0)},[o,i,oe,ae]);Zu({LIA_CREATE_DIAGRAM:O,CLEAR_DIAGRAM:F,TASKS_STATUS:B,CLEAR_TASKS_STATUS:ee});let{selectElements:ne,clearSelection:le}=No(),{importFromMxGraph:U,exportToMxGraph:Te}=Gn(),{configureElement:W,getConfigureElement:j}=Mi(),ce=(0,Lt.useCallback)(()=>t.length+r.length,[t,r]);(0,Lt.useEffect)(()=>(Kt.set(u,{importFromMxGraph:U,exportToMxGraph:Te,selectElements:ne,clearSelection:le,configureElement:W,getConfigureElement:j,getElementsCount:ce,setReconnectingEdge:S,clearReconnectingEdge:V}),()=>{Kt.delete(u)}),[u,U,Te,ne,le,W,j,ce,S,V]);let re=(0,Lt.useCallback)((Ae,Ee)=>{if(Ee.type!=="TASK"&&Ee.type!=="GATEWAY")return;let me=j(Ee.id);me&&(x==null||x(me))},[j,x]),fe=(0,Lt.useCallback)((Ae,Ee)=>{if(Ee.type!=="SEQUENCE_EDGE")return;let me=l(Ee.source),Pe=l(Ee.target),{isFromStartEvent:ut,isGatewayToGateway:vt,isActiviyToAndGateway:nt}=Yr(me,Pe);if(!(!ut&&!vt&&!nt))return;let zt=j(Ee.id);zt&&(x==null||x(zt))},[j,l,x]),ue=(0,Lt.useCallback)(Ae=>{let Ee=f(Ae,t);n(Ee),y(Ae),k()||z(),J(Ae)},[t,n,y,k,z,f,J]),Ne=(0,Lt.useCallback)(Ae=>{a(Ae),y(Ae),k()||z(),Q(Ae)},[a,y,k,z,Q]);Wu(ue);let We=(0,Lt.useCallback)(({nodes:Ae,edges:Ee})=>{g(Ae.length+Ee.length>=2)},[g]);(0,Qt.useOnSelectionChange)({onChange:We});let Qe=(0,Lt.useCallback)(async({nodes:Ae})=>Ae.some(me=>me.type==="LANE"&&t.some(Pe=>Pe.parentId===me.id))?(c({variant:"error",title:e("validation.errors.title"),content:e("editor.toolbar.delete_pool_lane_error")}),!1):!0,[t,e,c]),ot=()=>{y("forceSave"),K(),z()},ct=()=>{p(!0)},Bt=()=>{p(!1),z()},dt=(0,Lt.useCallback)(Ae=>{let Ee=new Set(Ae.filter(me=>me.type==="LANE"&&!!me.parentId).map(me=>me.parentId));Ee.size!==0&&setTimeout(()=>{var ut,vt;let me=s(),Pe=new Map(me.map(nt=>[nt.id,nt]));for(let nt of Ee){let oo=Ho(me.filter(no=>no.type==="LANE"&&no.parentId===nt));if(oo.length===0)continue;let zt=0;for(let no of oo)Pe.set(no.id,v(N({},no),{position:{x:ie.HEADER_WIDTH,y:zt}})),zt+=(vt=(ut=no.measured)==null?void 0:ut.height)!=null?vt:0;let nn=Pe.get(nt);nn&&Pe.set(nt,v(N({},nn),{height:zt,measured:v(N({},nn.measured),{height:zt})}))}o(me.map(nt=>{var oo;return(oo=Pe.get(nt.id))!=null?oo:nt}))},0)},[s,o]);return{nodes:t,setNodes:o,edges:r,setEdges:i,events:{isValidConnection:P,onConnect:X,onReconnect:$,onReconnectStart:Z,onReconnectEnd:Y,onDrop:C,onDragOver:A,onDragLeave:R,onNodeDrag:w,onNodeDragStop:G,onNodeDragStart:M,onNodeClick:re,onEdgeClick:fe,onDropCapture:ot,onConnectStart:ct,onConnectEnd:Bt,onSelectionEnd:()=>setTimeout(()=>d.setState({nodesSelectionActive:!1}),0),onNodesChange:ue,onEdgesChange:Ne,onBeforeDelete:Qe,onNodesDelete:dt},ui:{handleCloseValidationPanel:I},controls:{undo:_,redo:b,canUndo:T,canRedo:E},components:{HelperLines:h},actions:{saveHistory:y,selectElements:ne,clearSelection:le,exportToMxGraph:Te,validateDiagram:L,handleValidationComplete:D,setReconnectingEdge:S,clearReconnectingEdge:V}}};var ap=require("@xyflow/react"),Ao=require("react");var Lh=".react-flow__node, .react-flow__edge, .react-flow__node-toolbar";function lp(e,t,o){let[n,r]=(0,Ao.useState)(!1),i=(0,Ao.useRef)(null),{getViewport:a,setViewport:s}=(0,ap.useReactFlow)(),l=(0,Ao.useCallback)(()=>{i.current=null,r(!1)},[]);return(0,Ao.useEffect)(()=>{let c=e.current;if(!c)return;let d=p=>{if(!_r.some(x=>x===p.button)||t.current||o.current||(r(!0),!(p.target instanceof Element))||!p.target.closest(Lh))return;p.preventDefault(),p.stopPropagation();let g=a();i.current={pointerX:p.clientX,pointerY:p.clientY,viewportX:g.x,viewportY:g.y,zoom:g.zoom}},u=p=>{let g=i.current;if(g){if((p.buttons&Qs)===0){l();return}s({x:g.viewportX+(p.clientX-g.pointerX),y:g.viewportY+(p.clientY-g.pointerY),zoom:g.zoom})}},m=p=>{(p.buttons&Qs)===0&&l()};return c.addEventListener("pointerdown",d,!0),window.addEventListener("pointermove",u),window.addEventListener("pointerup",m),window.addEventListener("pointercancel",l),window.addEventListener("blur",l),()=>{c.removeEventListener("pointerdown",d,!0),window.removeEventListener("pointermove",u),window.removeEventListener("pointerup",m),window.removeEventListener("pointercancel",l),window.removeEventListener("blur",l)}},[e,t,o,a,s,l]),n}var na=require("react/jsx-runtime"),os=({id:e,className:t})=>(0,na.jsx)("marker",{id:e,className:H("react-flow__arrowhead",t),viewBox:"0 0 10 10",refX:"9",refY:"5",markerWidth:"7",markerHeight:"7",orient:"auto",markerUnits:"userSpaceOnUse",fill:"currentColor",stroke:"currentColor",children:(0,na.jsx)("path",{d:"M 0 0 L 10 5 L 0 10 Z"})});var jo=require("react/jsx-runtime"),cp=()=>(0,jo.jsx)("svg",{style:{position:"absolute",top:0,left:0},children:(0,jo.jsxs)("defs",{children:[(0,jo.jsx)(os,{id:"sequence-edge-marker",className:"text-grey-500"}),(0,jo.jsx)(os,{id:"sequence-edge-marker-hovered",className:"text-grey-800"}),(0,jo.jsx)(os,{id:"sequence-edge-marker-highlighted",className:"text-blue-500"})]})});var Po=require("@produto-lecom/lecom-ui");var Sr=require("@xyflow/react"),Ve=require("@produto-lecom/lecom-ui"),jt=require("lucide-react"),fo=require("react");var Co=require("@produto-lecom/lecom-ui");var Ar=(b=>(b.START_EVENT="START_EVENT",b.END_EVENT="END_EVENT",b.TASK="TASK",b.SUBPROCESS="SUBPROCESS",b.GATEWAY="GATEWAY",b.LANE="LANE",b.ANNOTATION="ANNOTATION",b.CONNECTION="CONNECTION",b.INTERMEDIATE_EVENT="INTERMEDIATE_EVENT",b.ACTIVITY="ACTIVITY",b.PROCESS_INTERFACE="PROCESS_INTERFACE",b.WORKFLOW_INTERFACE="WORKFLOW_INTERFACE",b.VARIANT_ACTIVITY="VARIANT_ACTIVITY",b.AUTO_ACTIVITY="AUTO_ACTIVITY",b.DATA_STORE="DATA_STORE",b.DATA_OBJECT="DATA_OBJECT",b.DATA_OUTPUT="DATA_OUTPUT",b.DATA_INPUT="DATA_INPUT",b.MARKER="MARKER",b))(Ar||{});var rs=require("@produto-lecom/lecom-ui"),bp=require("@xyflow/react");var dp=async e=>new Promise((t,o)=>{let n=new FileReader;n.onload=r=>{var i;t((i=r.target)==null?void 0:i.result)},n.onerror=r=>{var i;o((i=r.target)==null?void 0:i.error)},n.readAsText(e)});function up({columns:e=[],rows:t=[],fileName:o="report"}){if(!e.length||!t.length)return;let r="data:text/csv;charset=utf-8,"+[e,...t].map(a=>a.join(",")).join(`
43
43
  `),i=encodeURI(r);ns(i,`${o}.csv`)}var ns=(e,t)=>{let o=document.createElement("a");o.setAttribute("download",t),o.setAttribute("href",e),document.body.appendChild(o),o.click(),document.body.removeChild(o)};function pp(e){return e==null?void 0:e.replaceAll("&#xA;"," ")}var yS={START_EVENT:"START_EVENT",END_EVENT:"END_EVENT",TASK:"TASK",GATEWAY:"GATEWAY",ANNOTATION:"ANNOTATION"},fp={script:"SCRIPT",subprocess:"SUBPROCESS"},mp={"marker-loop":"LOOP"},gp={complex:"COMPLEX",none:"EXCLUSIVE",exclusive:"EXCLUSIVE",parallel:"PARALLEL",inclusive:"EXCLUSIVE"};var en=({cell:e,type:t,variant:o="",attribute:n=""})=>{let{_attributes:r,mxGeometry:i}=e,{value:a,parent:s}=r,l=Number(i._attributes.width),c=Number(i._attributes.height),d=s==="1"?void 0:s;return{id:r.id,parentId:d,type:t,data:{label:a||"",variant:o,attribute:n},position:{x:Number(i._attributes.x)||0,y:Number(i._attributes.y)||0},width:l,height:c,measured:{width:l,height:c}}},Rh=e=>{let{subType:t,style:o}=e._attributes,n="imported";return["none"].includes(t)||(n="adapted"),e.mxGeometry._attributes.width=pe.START_EVENT.MIN_WIDTH,e.mxGeometry._attributes.height=pe.START_EVENT.MIN_HEIGHT,{node:en({cell:e,type:"START_EVENT"}),status:n,originalType:o}},Dh=e=>{let{subType:t,style:o}=e==null?void 0:e._attributes,n="imported";return["none"].includes(t)||(n="adapted"),e.mxGeometry._attributes.width=pe.END_EVENT.MIN_WIDTH,e.mxGeometry._attributes.height=pe.END_EVENT.MIN_HEIGHT,{node:en({cell:e,type:"END_EVENT"}),status:n,originalType:o}},Oh=(e,t)=>{let{id:o,subType:n,style:r}=e==null?void 0:e._attributes,i=fp[n],a=t.get(o)||"",s=mp[a]||"",l=s==="LOOP",c="imported";return!["script","none"].includes(n)&&!l&&(c="adapted"),e.mxGeometry._attributes.width=go(e.mxGeometry._attributes.width||0,pe.TASK.MIN_WIDTH),e.mxGeometry._attributes.height=go(e.mxGeometry._attributes.height||0,pe.TASK.MIN_HEIGHT),{node:en({cell:e,type:"TASK",variant:i,attribute:s}),status:c,originalType:r}},Vh=e=>{let{style:t,subType:o}=e==null?void 0:e._attributes,n=gp[o],r=["none","inclusive","event-based"],i="imported";return r.includes(o)&&(i="adapted"),e.mxGeometry._attributes.width=pe.GATEWAY.MIN_WIDTH,e.mxGeometry._attributes.height=pe.GATEWAY.MIN_HEIGHT,{node:en({cell:e,type:"GATEWAY",variant:n}),status:i,originalType:t}},Hh=e=>{let{style:t}=e==null?void 0:e._attributes;return{node:en({cell:e,type:"LANE"}),status:"imported",originalType:t}},Gh=e=>{let{style:t}=e==null?void 0:e._attributes;return e.mxGeometry._attributes.width=go(e.mxGeometry._attributes.width||0,pe.ANNOTATION.MIN_WIDTH),e.mxGeometry._attributes.height=go(e.mxGeometry._attributes.height||0,pe.ANNOTATION.MIN_HEIGHT),{node:en({cell:e,type:"ANNOTATION"}),status:"imported",originalType:t}},hp=e=>{let{style:t}=e==null?void 0:e._attributes;return e.mxGeometry._attributes.width=pe.UNSUPPORTED.MIN_WIDTH,e.mxGeometry._attributes.height=pe.UNSUPPORTED.MIN_HEIGHT,{node:en({cell:e,type:"UNSUPPORTED"}),status:"unsupported",originalType:t}},yp=(e,t)=>{let{id:o,source:n,target:r,value:i}=e._attributes;return v(N({},St),{id:o,source:t.get(n)||n,target:t.get(r)||r,data:{label:i||""}})},xp={TASK:Oh,GATEWAY:Vh,START_EVENT:Rh,END_EVENT:Dh,LANE:Hh,ANNOTATION:Gh};var Bh=e=>{let t=new Map,o=Object.values(Ar),n=[],r=new Map;e.forEach(s=>{var c;let l=(c=s._attributes)==null?void 0:c.type;if(l==="MARKER"){r.set(s._attributes.parent,s._attributes.style);return}if(o.includes(l)){n.push(s);return}});let i=[],a=[];for(let s of n){let{type:l}=s._attributes,c=xp[l]||hp,{node:d,status:u,originalType:m}=c(s,r);a.push(d),i.push({originalType:m,type:d.type,variant:d.data.variant,value:pp(d.data.label),status:u})}return{nodes:a,governanceIdToNodeIdMap:t,summary:i}},zh=(e,t)=>e.filter(r=>{var i;return(i=r._attributes)==null?void 0:i.edge}).map(r=>yp(r,t)),Yh=e=>{let{mxGraphModel:t}=e,{nodes:o,governanceIdToNodeIdMap:n,summary:r}=Bh(t.root.mxCell),i=zh(t.root.mxCell,n);return{nodes:o,edges:i,summary:r}},Wh=async e=>{let t=await dp(e),o=Yi(t);if(!o)throw new Error("EMPTY_FILE");let{metadata:n,mxGraphModel:r}=o.modeler||{},i=(n==null?void 0:n.app)&&(n==null?void 0:n.diagramType)&&(n==null?void 0:n.version),a=r==null?void 0:r.root;if(!i||!a)throw new Error("INVALID_FILE");if(!Object.keys(r.root.mxCell||{}).length)throw new Error("CONTAIN_NO_CELLS");return{metadata:n,mxGraphModel:r}},Ep=async e=>{try{let t=await Wh(e),{nodes:o,edges:n,summary:r}=Yh(t)||{};return{nodes:o,edges:n,summary:r}}catch(t){throw t}};var Np=require("react/jsx-runtime"),_p=()=>{let{t:e}=(0,rs.useTranslation)(),{toast:t}=st(),{setNodes:o,setEdges:n,fitView:r}=(0,bp.useReactFlow)(),i=s=>{let l=[e("adapter.governance.report.columns.type"),e("adapter.governance.report.columns.value"),e("adapter.governance.report.columns.status")],c=s.map(d=>[d.originalType,d.value,e(`adapter.governance.report.status.${d.status.toLowerCase()}`)]);t({variant:"warning",content:e("adapter.governance.success.incompatible_cells"),duration:1e3*60*1,action:(0,Np.jsx)(rs.Button,{size:"small",variant:"ghost",onClick:()=>up({columns:l,rows:c,fileName:"governance-imported-cells"}),children:e("adapter.governance.action.download")})})};return{importFromGovernance:async s=>{try{let{nodes:l,edges:c,summary:d}=await Ep(s);if(o(m=>m.concat(l)),n(m=>m.concat(c)),r({padding:Dn,minZoom:On,maxZoom:Vn}),d.some(m=>m.status==="unsupported")){i(d);return}t({variant:"success",content:e("adapter.governance.success.default")})}catch(l){let c=l instanceof Error?l.message:"DEFAULT";t({variant:"error",content:e(`adapter.governance.error.${c}`)})}}}};var Tp=require("@produto-lecom/lecom-ui"),vp=require("react");var tn=require("react/jsx-runtime"),wp=s=>{var l=s,{children:e,accept:t="*",multiple:o=!1,disabled:n=!1,onClick:r,onFilesSelected:i}=l,a=Yt(l,["children","accept","multiple","disabled","onClick","onFilesSelected"]);let c=(0,vp.useRef)(null),d=m=>{let p=m.target.files;p!=null&&p.length&&i(p),c.current&&(c.current.value="")};return(0,tn.jsxs)(tn.Fragment,{children:[(0,tn.jsx)(Tp.Button,v(N({disabled:n,onClick:m=>{var p;(p=c.current)==null||p.click(),r==null||r(m)}},a),{children:e})),(0,tn.jsx)("input",{type:"file",ref:c,className:"sr-only",accept:t,multiple:o,disabled:n,onChange:d})]})};var on=require("react/jsx-runtime"),Ip=({disabled:e=!1})=>{let{t}=(0,Co.useTranslation)(),{toast:o}=st(),{importFromGovernance:n}=_p(),r=()=>{if(e){o({variant:"error",content:t("adapter.governance.error.ALREADY_INITIALIZED")});return}},i=a=>{let s=a[0];if(!s){o({variant:"error",content:t("adapter.governance.error.NO_FILE")});return}n(s)};return(0,on.jsxs)(Co.Tooltip,{children:[(0,on.jsx)(Co.TooltipTrigger,{asChild:!0,children:(0,on.jsx)(wp,{className:"[&>svg]:size-7 p-0",variant:"ghost",size:"small",color:"grey",iconButton:!0,accept:".mdr",disabled:e,onClick:r,onFilesSelected:i,children:(0,on.jsx)(Ea,{})})}),(0,on.jsx)(Co.TooltipContent,{color:"black",children:t("editor.controls.actions.import_governance")})]})};var Ap=require("react/jsx-runtime"),ra=({shortcut:e})=>(0,Ap.jsx)("span",{className:"min-h-7.5 inline-flex justify-center items-center py-0.5 px-1.5 bg-grey-100 border border-grey-300 font-mono text-gray-800 shadow-lg rounded-md text-grey-900",children:e});var _e=require("@produto-lecom/lecom-ui"),So=require("lucide-react"),kp=require("react");var Sp=require("@produto-lecom/lecom-ui"),Mp=require("@xyflow/react"),Cr=require("html-to-image"),Pp=require("react");var Fh=3,ia="diagram",is=50,Xh=96,Uh=25.4,Cp=e=>e*Uh/Xh,Lp=()=>{let{t:e}=(0,Sp.useTranslation)(),{toast:t}=st(),{getNodes:o,getNodesBounds:n}=(0,Mp.useReactFlow)(),{clearSelection:r}=No(),[i,a]=(0,Pp.useState)({png:!1,html:!1,print:!1}),s=()=>{let m=Fs(o()),p=n(m),g=p.width+is*2,x=p.height+is*2,f=is-p.x,h=is-p.y;return{width:g,height:x,style:{width:`${g}px`,height:`${x}px`,transform:`translate(${f}px, ${h}px)`,transformOrigin:"top left"}}},l=async(m,p)=>{a(g=>v(N({},g),{[p]:!0})),await r();try{if(Fs(o()).length===0){t({content:e("editor.controls.actions.export.feedback.empty"),variant:"warning"});return}let x=Ad();if(!x)throw new Error("Flow element not found");let f=s();return await m(x,f)}catch(g){console.error("Diagram export failed",g),t({content:e("editor.controls.actions.export.feedback.error"),variant:"error"})}finally{a(g=>v(N({},g),{[p]:!1}))}};return{exportAsPng:async(m=ia)=>{await l(async(p,g)=>{let x=await(0,Cr.toPng)(p,v(N({},g),{backgroundColor:"#fcfcfc",skipFonts:!0}));ns(x,`${m}.png`)},"png")},exportAsHtml:async(m=ia)=>{await l(async(p,g)=>{let x=await(0,Cr.toSvg)(p,v(N({},g),{backgroundColor:"#fcfcfc",skipFonts:!0})),f=`
44
44
  <!DOCTYPE html>
@@ -83,4 +83,4 @@
83
83
  height: 100%;
84
84
  object-fit: contain;
85
85
  }
86
- `,h.head.appendChild(T),h.title=m;let E=h.createElement("img");E.alt="Diagram",h.body.appendChild(E),await new Promise((A,R)=>{let G=!1,M=P=>{G||(G=!0,P?R(P):A())};E.onload=()=>M(),E.onerror=()=>M(new Error("Failed to load print image")),E.src=x,E.complete&&E.naturalWidth>0&&M()});let y=f.contentWindow;if(!y)throw document.body.removeChild(f),new Error("Unable to access print iframe window");let w=()=>{f.parentNode&&document.body.removeChild(f)};y.addEventListener("afterprint",w,{once:!0}),window.setTimeout(w,6e4),y.focus(),y.print()},"print")},isPrintingPng:i.png,isPrintingHtml:i.html,isPrinting:i.print}};var Ie=require("react/jsx-runtime");function Rp(){let{t:e}=(0,_e.useTranslation)(),{exportAsPng:t,exportAsHtml:o,printDiagram:n,isPrinting:r,isPrintingPng:i,isPrintingHtml:a}=Lp(),[s,l]=(0,kp.useState)(!1);return(0,Ie.jsxs)(_e.DropdownMenu,{modal:!1,open:s,onOpenChange:l,children:[(0,Ie.jsx)(_e.DropdownMenuTrigger,{asChild:!0,children:(0,Ie.jsx)("div",{children:(0,Ie.jsxs)(_e.Tooltip,{children:[(0,Ie.jsx)(_e.TooltipTrigger,{asChild:!0,children:(0,Ie.jsx)(_e.Button,{size:"small",variant:"ghost",color:"grey",iconButton:!0,children:(0,Ie.jsx)(So.FolderOutputIcon,{})})}),!s&&(0,Ie.jsx)(_e.TooltipContent,{color:"black",children:e("editor.controls.actions.export.title")})]})})}),(0,Ie.jsxs)(_e.DropdownMenuContent,{align:"center",side:"top",sideOffset:16,className:"min-w-0 flex flex-col gap-2 p-2 shadow-sm",children:[(0,Ie.jsxs)(_e.Tooltip,{children:[(0,Ie.jsx)(_e.TooltipTrigger,{asChild:!0,children:(0,Ie.jsx)(_e.DropdownMenuItem,{className:"p-1.5",disabled:i,onClick:()=>t(),children:(0,Ie.jsx)(So.FileImageIcon,{})})}),(0,Ie.jsx)(_e.TooltipContent,{side:"right",color:"black",children:e("editor.controls.actions.export.png")})]}),(0,Ie.jsxs)(_e.Tooltip,{children:[(0,Ie.jsx)(_e.TooltipTrigger,{asChild:!0,children:(0,Ie.jsx)(_e.DropdownMenuItem,{className:"p-1.5",disabled:a,onClick:()=>o(),children:(0,Ie.jsx)(So.FileCodeIcon,{})})}),(0,Ie.jsx)(_e.TooltipContent,{side:"right",color:"black",children:e("editor.controls.actions.export.html")})]}),(0,Ie.jsxs)(_e.Tooltip,{children:[(0,Ie.jsx)(_e.TooltipTrigger,{asChild:!0,children:(0,Ie.jsx)(_e.DropdownMenuItem,{className:"p-1.5",disabled:r,onClick:()=>n(),children:(0,Ie.jsx)(So.PrinterIcon,{})})}),(0,Ie.jsx)(_e.TooltipContent,{side:"right",color:"black",children:e("editor.controls.actions.export.print")})]})]})]})}var he=require("react/jsx-runtime"),Dp=({nodes:e,edges:t,validateDiagram:o,handleValidationComplete:n})=>{let{t:r}=(0,Ve.useTranslation)(),{clearSelection:i}=No(),{mode:a,isMinimapOpen:s,setIsMinimapOpen:l,isMoveTool:c,isHandTool:d,setIsMoveTool:u,setIsHandTool:m}=q(),{getNodes:p,getEdges:g}=(0,Sr.useReactFlow)(),x=(0,Sr.useKeyPress)(["v","V"]),f=(0,Sr.useKeyPress)(["h","H"]),h=(0,fo.useCallback)(()=>{i(),m(!0),u(!1)},[i,m,u]),_=(0,fo.useCallback)(()=>{u(!0),m(!1)},[u,m]),[b,T]=(0,fo.useState)(!1),E=(0,fo.useCallback)(async()=>{T(!0);let y=p(),w=g(),C=await o({nodes:y,edges:w});n(C),T(!1)},[p,g,o,n]);return(0,fo.useEffect)(()=>{x&&!c&&a==="edit"&&_()},[x,_,c,a]),(0,fo.useEffect)(()=>{f&&!d&&a==="edit"&&h()},[f,h,d,a]),(0,he.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 bg-white rounded-sm shadow-md",children:[a==="edit"&&(0,he.jsxs)(he.Fragment,{children:[(0,he.jsxs)(Ve.Tooltip,{children:[(0,he.jsx)(Ve.TooltipTrigger,{asChild:!0,children:(0,he.jsx)(Ve.Button,{size:"small",variant:"ghost",color:"grey",className:H(c&&"bg-grey-400"),iconButton:!0,onClick:_,children:(0,he.jsx)(jt.MousePointerIcon,{})})}),(0,he.jsxs)(Ve.TooltipContent,{color:"black",className:"flex items-center gap-2",children:[r("editor.controls.actions.move_tool"),(0,he.jsx)(ra,{shortcut:"V"})]})]}),(0,he.jsxs)(Ve.Tooltip,{children:[(0,he.jsx)(Ve.TooltipTrigger,{asChild:!0,children:(0,he.jsx)(Ve.Button,{size:"small",variant:"ghost",color:"grey",className:H(d&&"bg-grey-400"),iconButton:!0,onClick:h,children:(0,he.jsx)(jt.HandIcon,{})})}),(0,he.jsxs)(Ve.TooltipContent,{color:"black",className:"flex items-center gap-2",children:[r("editor.controls.actions.hand_tool")," ",(0,he.jsx)(ra,{shortcut:"H"})]})]})]}),(0,he.jsx)(Rp,{}),a==="edit"&&(0,he.jsxs)(he.Fragment,{children:[(0,he.jsxs)(Ve.Tooltip,{children:[(0,he.jsx)(Ve.TooltipTrigger,{asChild:!0,children:(0,he.jsx)(Ve.Button,{size:"small",variant:"ghost",color:"grey",iconButton:!0,disabled:b,onClick:E,children:b?(0,he.jsx)(jt.Loader2Icon,{className:"animate-spin"}):(0,he.jsx)(jt.ListCheckIcon,{})})}),(0,he.jsx)(Ve.TooltipContent,{color:"black",children:r(b?"editor.controls.actions.check_loading":"editor.controls.actions.check")})]}),(0,he.jsx)(Ip,{disabled:e.length>0||t.length>0})]}),(0,he.jsxs)(Ve.Tooltip,{children:[(0,he.jsx)(Ve.TooltipTrigger,{asChild:!0,children:(0,he.jsx)(Ve.Button,{size:"small",variant:"ghost",color:"grey",className:H(s&&"bg-grey-400"),iconButton:!0,onClick:()=>l(!s),children:(0,he.jsx)(jt.MapIcon,{})})}),(0,he.jsx)(Ve.TooltipContent,{color:"black",children:r(s?"editor.controls.actions.minimap.close":"editor.controls.actions.minimap.open")})]})]})};var lt=require("@produto-lecom/lecom-ui"),ss=require("lucide-react"),Tt=require("react/jsx-runtime"),Op=({undo:e,redo:t,canUndo:o,canRedo:n})=>{let{t:r}=(0,lt.useTranslation)();return(0,Tt.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 bg-white rounded-sm shadow-md",children:[(0,Tt.jsxs)(lt.Tooltip,{children:[(0,Tt.jsx)(lt.TooltipTrigger,{asChild:!0,children:(0,Tt.jsx)(lt.Button,{size:"small",variant:"ghost",color:"grey",iconButton:!0,disabled:!o,onClick:e,children:(0,Tt.jsx)(ss.UndoIcon,{})})}),(0,Tt.jsx)(lt.TooltipContent,{color:"black",children:r("editor.controls.history.undo")})]}),(0,Tt.jsxs)(lt.Tooltip,{children:[(0,Tt.jsx)(lt.TooltipTrigger,{asChild:!0,children:(0,Tt.jsx)(lt.Button,{size:"small",variant:"ghost",color:"grey",iconButton:!0,disabled:!n,onClick:t,children:(0,Tt.jsx)(ss.RedoIcon,{})})}),(0,Tt.jsx)(lt.TooltipContent,{color:"black",children:r("editor.controls.history.redo")})]})]})};var Bn=require("@xyflow/react"),He=require("@produto-lecom/lecom-ui"),zn=require("lucide-react");var Re=require("react/jsx-runtime"),Vp=()=>{let{t:e}=(0,He.useTranslation)(),t=(0,Bn.useNodes)(),o=(0,Bn.useEdges)(),{zoomIn:n,zoomOut:r,zoomTo:i,fitView:a}=(0,Bn.useReactFlow)(),s=t.length===0&&o.length===0;return(0,Re.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 bg-white rounded-sm shadow-md",children:[(0,Re.jsxs)(He.Tooltip,{children:[(0,Re.jsx)(He.TooltipTrigger,{asChild:!0,children:(0,Re.jsx)(He.Button,{iconButton:!0,size:"small",color:"grey",variant:"ghost",disabled:s,onClick:()=>a(),children:(0,Re.jsx)(zn.ScanIcon,{})})}),(0,Re.jsx)(He.TooltipContent,{color:"black",children:e("editor.controls.zoom.fit")})]}),(0,Re.jsxs)(He.Tooltip,{children:[(0,Re.jsx)(He.TooltipTrigger,{asChild:!0,children:(0,Re.jsx)(He.Button,{iconButton:!0,size:"small",color:"grey",variant:"ghost",disabled:s,onClick:()=>r(),children:(0,Re.jsx)(zn.ZoomOut,{})})}),(0,Re.jsx)(He.TooltipContent,{color:"black",children:e("editor.controls.zoom.out")})]}),(0,Re.jsxs)(He.Tooltip,{children:[(0,Re.jsx)(He.TooltipTrigger,{asChild:!0,children:(0,Re.jsx)(He.Button,{iconButton:!0,size:"small",color:"grey",variant:"ghost",disabled:s,onClick:()=>i(1),children:(0,Re.jsx)(Ta,{})})}),(0,Re.jsx)(He.TooltipContent,{color:"black",children:e("editor.controls.zoom.reset")})]}),(0,Re.jsxs)(He.Tooltip,{children:[(0,Re.jsx)(He.TooltipTrigger,{asChild:!0,children:(0,Re.jsx)(He.Button,{iconButton:!0,size:"small",color:"grey",variant:"ghost",disabled:s,onClick:()=>n(),children:(0,Re.jsx)(zn.ZoomIn,{})})}),(0,Re.jsx)(He.TooltipContent,{color:"black",children:e("editor.controls.zoom.in")})]})]})};var Hp=require("@xyflow/react"),eo=require("@produto-lecom/lecom-ui"),as=require("react");var Gt=require("react/jsx-runtime"),Gp=()=>{let e=(0,as.useRef)(null),{t}=(0,eo.useTranslation)(),{setDraggableNode:o}=kn(),n=(0,Hp.useNodes)(),{setIsDragging:r}=q(),[i,a]=(0,as.useState)(void 0),s=[{type:"START_EVENT",icon:Gr,label:t("bpmn.start_event.variant.default")},{type:"END_EVENT",icon:rn,label:t("bpmn.end_event.variant.default")},{type:"TASK",icon:Un,label:t("bpmn.task.variant.default")},{type:"TASK",variant:"SUBPROCESS",icon:Ia,label:t("bpmn.task.variant.subprocess")},{type:"TASK",variant:"SCRIPT",icon:wa,label:t("bpmn.task.variant.script")},{type:"TASK",attribute:"LOOP",icon:va,label:t("bpmn.task.attribute.loop")},{type:"GATEWAY",variant:"EXCLUSIVE",icon:ln,label:t("bpmn.gateway.variant.exclusive")},{type:"GATEWAY",variant:"PARALLEL",icon:dn,label:t("bpmn.gateway.variant.parallel")},{type:"GATEWAY",variant:"COMPLEX",icon:sn,label:t("bpmn.gateway.variant.complex")},{type:"LANE",icon:Na,label:t("bpmn.lane.variant.default")},{type:"ANNOTATION",icon:Or,label:t("bpmn.annotation.variant.default")}],l=(c,d)=>{o({type:d.type,variant:d.variant,attribute:d.attribute,icon:d.icon}),a((0,Gt.jsx)(d.icon,{})),c.dataTransfer.effectAllowed="move",e.current&&c.dataTransfer.setDragImage(e.current,10,10),setTimeout(()=>{r(!0)},100)};return(0,Gt.jsxs)("aside",{className:"sidebar absolute z-[1] top-4 left-4",children:[(0,Gt.jsx)("div",{className:"grid grid-cols-1 gap-2 p-2 bg-white rounded-md shadow-md",children:s.map((c,d)=>{let u=!_o(c.type,n),m=u?t("editor.toolbar.start_event_already_exists"):c.label;return(0,Gt.jsxs)(eo.Tooltip,{children:[(0,Gt.jsx)(eo.TooltipTrigger,{asChild:!0,children:(0,Gt.jsx)(eo.Button,{className:H("[&>svg]:size-6",{"opacity-50 cursor-not-allowed":u}),size:"small",variant:"ghost",color:"grey",draggable:!u,disabled:u,iconButton:!0,onDragStart:u?void 0:p=>l(p,c),children:(0,Gt.jsx)(c.icon,{})},d)}),(0,Gt.jsx)(eo.TooltipContent,{color:"black",side:"right",children:m})]},d)})}),(0,Gt.jsx)("div",{ref:e,className:"absolute w-0 h-0 top-0 left-0 z-[-1] bg-transparent",children:i})]})};var qe=require("react/jsx-runtime"),sa=e=>e.preventDefault(),aa=(0,Mo.forwardRef)((e,t)=>{let o=(0,to.useKeyPress)("Space"),{instanceId:n,mode:r,isMinimapOpen:i,isMoveTool:a,isHandTool:s}=q(),l=(0,Mo.useRef)(null),c=(0,Mo.useRef)(s),d=(0,Mo.useRef)(o),{nodes:u,edges:m,actions:p,events:g,components:x,controls:f}=sp(),{t:h}=(0,Po.useTranslation)();c.current=s,d.current=o;let _=lp(l,c,d);(0,Mo.useImperativeHandle)(t,()=>({selectElements:p.selectElements,clearSelection:p.clearSelection}));let b=s||o||r!=="edit",T=b?[0,1,2]:_r,E=s||o||_,y=a&&!o&&!_,w=r==="edit"&&y,C=!b&&!_,A=r==="view"||y;return(0,qe.jsxs)("div",{ref:l,className:"w-full h-full",children:[r==="edit"&&(0,qe.jsx)(Gp,{}),(0,qe.jsx)(cp,{}),(0,qe.jsxs)(to.ReactFlow,v(N({},g),{id:`modeler-${n}`,className:H({"is-hand-tool":E,"is-pan-tool-active":E}),edges:m,nodes:u,nodeTypes:nu,edgeTypes:ru,minZoom:Js,maxZoom:du,panOnDrag:T,panOnScroll:!0,selectionOnDrag:C,elevateEdgesOnSelect:!0,elevateNodesOnSelect:!0,elementsSelectable:A,nodesConnectable:w,nodesDraggable:w,connectionLineComponent:eu,selectionMode:to.SelectionMode.Partial,multiSelectionKeyCode:["Control","Meta"],deleteKeyCode:w?"Delete":null,selectionKeyCode:null,defaultViewport:uu,connectOnClick:!1,connectionRadius:50,onPaneContextMenu:sa,onNodeContextMenu:sa,onEdgeContextMenu:sa,proOptions:{hideAttribution:!0},children:[(0,qe.jsx)(to.Background,{gap:lu,size:au,color:su,bgColor:iu}),i&&(0,qe.jsxs)(Po.Tooltip,{children:[(0,qe.jsx)(Po.TooltipTrigger,{asChild:!0,children:(0,qe.jsx)("div",{className:"absolute bottom-[0px] left-[0px] z-[5]",children:(0,qe.jsx)(to.MiniMap,{pannable:!0,zoomable:!0,position:cu,className:"shadow-md rounded-md",ariaLabel:"",style:{pointerEvents:"all",position:"relative"}})})}),(0,qe.jsx)(Po.TooltipContent,{color:"black",children:h("editor.controls.actions.minimap.label")})]}),(0,qe.jsxs)("div",{className:"absolute z-10 bottom-4 left-1/2 -translate-x-1/2 flex gap-4",children:[r==="edit"&&(0,qe.jsx)(Op,N({},f)),(0,qe.jsx)(Dp,{nodes:u,edges:m,validateDiagram:p.validateDiagram,handleValidationComplete:p.handleValidationComplete}),(0,qe.jsx)(Vp,{})]}),(0,qe.jsx)(x.HelperLines,{})]}))]})});aa.displayName="Editor";var Bp=require("@xyflow/react"),ls=require("react"),zp=require("react/jsx-runtime"),$h=e=>({width:e.width,height:e.height,transform:e.transform}),la="rgba(51, 103, 217, 0.4)",Hc=({horizontal:e,vertical:t})=>{let{width:o,height:n,transform:r}=(0,Bp.useStore)($h),i=(0,ls.useRef)(null);return(0,ls.useEffect)(()=>{let a=i.current,s=a==null?void 0:a.getContext("2d");if(!s||!a)return;let l=window.devicePixelRatio;a.width=o*l,a.height=n*l,s.clearRect(0,0,o,n),s.scale(l,l),s.strokeStyle=la,t&&(s.beginPath(),s.strokeStyle=t.color||la,s.moveTo(t.position*r[2]+r[0],0),s.lineTo(t.position*r[2]+r[0],n),s.stroke()),e&&(s.beginPath(),s.strokeStyle=e.color||la,s.moveTo(0,e.position*r[2]+r[1]),s.lineTo(o,e.position*r[2]+r[1]),s.stroke())},[o,n,r,e,t]),(0,zp.jsx)("canvas",{ref:i,className:"w-full h-full absolute z-10 pointer-events-none"})};var Yn=require("@produto-lecom/lecom-ui"),Lo=require("react");var Mr=require("react/jsx-runtime"),Kt=new Map,Yp=(0,Lo.createContext)(null),Tn=()=>{let e=(0,Lo.useContext)(Yp);if(!e)throw new Error("useModeler must be used within an <ModelerProvider />");return e},Wp=({locale:e,defaultMode:t="view",toast:o,children:n})=>{let[r,i]=(0,Lo.useState)(e||"pt_BR");(0,Lo.useEffect)(()=>{e&&(i(e),Yn.i18n.changeLanguage(e))},[e]);let a=g=>{let x=Kt.size;if(x===0)throw new Error("No modeler instances found");if(x===1||!g){let[h]=Kt.values();return h}let f=Kt.get(g);if(!f)throw new Error(`Modeler instance with ID "${g}" not found`);return f},s=(g,x)=>{let f=a(x);return f==null?void 0:f.selectElements(g)},l=async g=>{let x=a(g);return x==null?void 0:x.clearSelection()},c=(g,x)=>{let f=a(x);return f==null?void 0:f.configureElement(g)},d=(g,x)=>{let f=a(x);return f==null?void 0:f.getConfigureElement(g)},u=async(g,x)=>{let f=a(x);await(f==null?void 0:f.importFromMxGraph(g))},m=g=>{let x=a(g);return x==null?void 0:x.exportToMxGraph()},p=g=>{let x=a(g);return(x==null?void 0:x.getElementsCount())||0};return(0,Mr.jsx)(Yp.Provider,{value:{defaultMode:t,locale:r,selectElements:s,clearSelection:l,configureElement:c,getConfigureElement:d,importDiagram:u,exportDiagram:m,getElementsCount:p,toast:o},children:(0,Mr.jsxs)(Yn.TooltipProvider,{children:[!o&&(0,Mr.jsx)(Yn.Notification,{type:"toast",placement:"topRight",enableClose:!0,showProgress:!0,pauseOnHover:!0}),n]})})};var cs=require("react/jsx-runtime"),Up=(0,Ge.createContext)(null),q=()=>{let e=(0,Ge.useContext)(Up);if(!e)throw new Error("useModelerInstance must be used within an <Modeler />");return e},$p=({selectorRef:e,initialDiagram:t,instanceId:o,mode:n,validateCustomDiagram:r,onElementChanges:i,onConfigureElement:a,onElementClick:s,onSubprocessValidationClick:l})=>{let{t:c}=(0,Fp.useTranslation)(),{defaultMode:d}=Tn(),u=(0,Ge.useId)(),[m]=(0,Ge.useState)(o||u),[p,g]=(0,Ge.useState)(n||d||"edit"),[x,f]=(0,Ge.useState)(fr),[h,_]=(0,Ge.useState)(!1),[b,T]=(0,Ge.useState)(!0),[E,y]=(0,Ge.useState)(!1),[w,C]=(0,Ge.useState)(!1),[A,R]=(0,Ge.useState)(!1),[G,M]=(0,Ge.useState)(!1),[P,X]=(0,Ge.useState)(!1),[$,Z]=(0,Ge.useState)(null);(0,Ge.useEffect)(()=>{n&&g(n)},[n]);let Y=(0,Ge.useMemo)(()=>t||Cd(c),[t,c]),S={instanceId:m,initialDiagram:Y,mode:p,lastElementId:x,isInitialized:h,isMinimapOpen:w,isMoveTool:b,isHandTool:E,isDragging:A,isMultipleSelection:P,isConnecting:G,setLastElementId:f,setIsInitialized:_,reconnectingEdgeId:$,setIsMinimapOpen:C,setIsMoveTool:T,setIsHandTool:y,setIsDragging:R,setIsConnecting:M,setIsMultipleSelection:X,setReconnectingEdgeId:Z,validateCustomDiagram:r,onElementChanges:i,onConfigureElement:a,onElementClick:s,onSubprocessValidationClick:l};return(0,cs.jsx)(Xp.ReactFlowProvider,{children:(0,cs.jsx)(Up.Provider,{value:S,children:(0,cs.jsx)(aa,{ref:e})})})};0&&(module.exports={EditorMode,ElementPosition,ElementType,GatewayElementVariant,GatewayVariant,Modeler,ModelerProvider,NodeAttribute,NodeType,NodeVariant,RoutingVariant,useModeler});
86
+ `,h.head.appendChild(T),h.title=m;let E=h.createElement("img");E.alt="Diagram",h.body.appendChild(E),await new Promise((A,R)=>{let G=!1,M=P=>{G||(G=!0,P?R(P):A())};E.onload=()=>M(),E.onerror=()=>M(new Error("Failed to load print image")),E.src=x,E.complete&&E.naturalWidth>0&&M()});let y=f.contentWindow;if(!y)throw document.body.removeChild(f),new Error("Unable to access print iframe window");let w=()=>{f.parentNode&&document.body.removeChild(f)};y.addEventListener("afterprint",w,{once:!0}),window.setTimeout(w,6e4),y.focus(),y.print()},"print")},isPrintingPng:i.png,isPrintingHtml:i.html,isPrinting:i.print}};var Ie=require("react/jsx-runtime");function Rp(){let{t:e}=(0,_e.useTranslation)(),{exportAsPng:t,exportAsHtml:o,printDiagram:n,isPrinting:r,isPrintingPng:i,isPrintingHtml:a}=Lp(),[s,l]=(0,kp.useState)(!1);return(0,Ie.jsxs)(_e.DropdownMenu,{modal:!1,open:s,onOpenChange:l,children:[(0,Ie.jsx)(_e.DropdownMenuTrigger,{asChild:!0,children:(0,Ie.jsx)("div",{children:(0,Ie.jsxs)(_e.Tooltip,{children:[(0,Ie.jsx)(_e.TooltipTrigger,{asChild:!0,children:(0,Ie.jsx)(_e.Button,{size:"small",variant:"ghost",color:"grey",iconButton:!0,children:(0,Ie.jsx)(So.FolderOutputIcon,{})})}),!s&&(0,Ie.jsx)(_e.TooltipContent,{color:"black",children:e("editor.controls.actions.export.title")})]})})}),(0,Ie.jsxs)(_e.DropdownMenuContent,{align:"center",side:"top",sideOffset:16,className:"min-w-0 flex flex-col gap-2 p-2 shadow-sm",children:[(0,Ie.jsxs)(_e.Tooltip,{children:[(0,Ie.jsx)(_e.TooltipTrigger,{asChild:!0,children:(0,Ie.jsx)(_e.DropdownMenuItem,{className:"p-1.5",disabled:i,onClick:()=>t(),children:(0,Ie.jsx)(So.FileImageIcon,{})})}),(0,Ie.jsx)(_e.TooltipContent,{side:"right",color:"black",children:e("editor.controls.actions.export.png")})]}),(0,Ie.jsxs)(_e.Tooltip,{children:[(0,Ie.jsx)(_e.TooltipTrigger,{asChild:!0,children:(0,Ie.jsx)(_e.DropdownMenuItem,{className:"p-1.5",disabled:a,onClick:()=>o(),children:(0,Ie.jsx)(So.FileCodeIcon,{})})}),(0,Ie.jsx)(_e.TooltipContent,{side:"right",color:"black",children:e("editor.controls.actions.export.html")})]}),(0,Ie.jsxs)(_e.Tooltip,{children:[(0,Ie.jsx)(_e.TooltipTrigger,{asChild:!0,children:(0,Ie.jsx)(_e.DropdownMenuItem,{className:"p-1.5",disabled:r,onClick:()=>n(),children:(0,Ie.jsx)(So.PrinterIcon,{})})}),(0,Ie.jsx)(_e.TooltipContent,{side:"right",color:"black",children:e("editor.controls.actions.export.print")})]})]})]})}var he=require("react/jsx-runtime"),Dp=({nodes:e,edges:t,validateDiagram:o,handleValidationComplete:n})=>{let{t:r}=(0,Ve.useTranslation)(),{clearSelection:i}=No(),{mode:a,isMinimapOpen:s,setIsMinimapOpen:l,isMoveTool:c,isHandTool:d,setIsMoveTool:u,setIsHandTool:m}=q(),{getNodes:p,getEdges:g}=(0,Sr.useReactFlow)(),x=(0,Sr.useKeyPress)(["v","V"]),f=(0,Sr.useKeyPress)(["h","H"]),h=(0,fo.useCallback)(()=>{i(),m(!0),u(!1)},[i,m,u]),_=(0,fo.useCallback)(()=>{u(!0),m(!1)},[u,m]),[b,T]=(0,fo.useState)(!1),E=(0,fo.useCallback)(async()=>{T(!0);try{let y=p(),w=g(),C=await o({nodes:y,edges:w});n(C)}finally{T(!1)}},[p,g,o,n]);return(0,fo.useEffect)(()=>{x&&!c&&a==="edit"&&_()},[x,_,c,a]),(0,fo.useEffect)(()=>{f&&!d&&a==="edit"&&h()},[f,h,d,a]),(0,he.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 bg-white rounded-sm shadow-md",children:[a==="edit"&&(0,he.jsxs)(he.Fragment,{children:[(0,he.jsxs)(Ve.Tooltip,{children:[(0,he.jsx)(Ve.TooltipTrigger,{asChild:!0,children:(0,he.jsx)(Ve.Button,{size:"small",variant:"ghost",color:"grey",className:H(c&&"bg-grey-400"),iconButton:!0,onClick:_,children:(0,he.jsx)(jt.MousePointerIcon,{})})}),(0,he.jsxs)(Ve.TooltipContent,{color:"black",className:"flex items-center gap-2",children:[r("editor.controls.actions.move_tool"),(0,he.jsx)(ra,{shortcut:"V"})]})]}),(0,he.jsxs)(Ve.Tooltip,{children:[(0,he.jsx)(Ve.TooltipTrigger,{asChild:!0,children:(0,he.jsx)(Ve.Button,{size:"small",variant:"ghost",color:"grey",className:H(d&&"bg-grey-400"),iconButton:!0,onClick:h,children:(0,he.jsx)(jt.HandIcon,{})})}),(0,he.jsxs)(Ve.TooltipContent,{color:"black",className:"flex items-center gap-2",children:[r("editor.controls.actions.hand_tool")," ",(0,he.jsx)(ra,{shortcut:"H"})]})]})]}),(0,he.jsx)(Rp,{}),a==="edit"&&(0,he.jsxs)(he.Fragment,{children:[(0,he.jsxs)(Ve.Tooltip,{children:[(0,he.jsx)(Ve.TooltipTrigger,{asChild:!0,children:(0,he.jsx)(Ve.Button,{size:"small",variant:"ghost",color:"grey",iconButton:!0,disabled:b,onClick:E,children:b?(0,he.jsx)(jt.Loader2Icon,{className:"animate-spin"}):(0,he.jsx)(jt.ListCheckIcon,{})})}),(0,he.jsx)(Ve.TooltipContent,{color:"black",children:r(b?"editor.controls.actions.check_loading":"editor.controls.actions.check")})]}),(0,he.jsx)(Ip,{disabled:e.length>0||t.length>0})]}),(0,he.jsxs)(Ve.Tooltip,{children:[(0,he.jsx)(Ve.TooltipTrigger,{asChild:!0,children:(0,he.jsx)(Ve.Button,{size:"small",variant:"ghost",color:"grey",className:H(s&&"bg-grey-400"),iconButton:!0,onClick:()=>l(!s),children:(0,he.jsx)(jt.MapIcon,{})})}),(0,he.jsx)(Ve.TooltipContent,{color:"black",children:r(s?"editor.controls.actions.minimap.close":"editor.controls.actions.minimap.open")})]})]})};var lt=require("@produto-lecom/lecom-ui"),ss=require("lucide-react"),Tt=require("react/jsx-runtime"),Op=({undo:e,redo:t,canUndo:o,canRedo:n})=>{let{t:r}=(0,lt.useTranslation)();return(0,Tt.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 bg-white rounded-sm shadow-md",children:[(0,Tt.jsxs)(lt.Tooltip,{children:[(0,Tt.jsx)(lt.TooltipTrigger,{asChild:!0,children:(0,Tt.jsx)(lt.Button,{size:"small",variant:"ghost",color:"grey",iconButton:!0,disabled:!o,onClick:e,children:(0,Tt.jsx)(ss.UndoIcon,{})})}),(0,Tt.jsx)(lt.TooltipContent,{color:"black",children:r("editor.controls.history.undo")})]}),(0,Tt.jsxs)(lt.Tooltip,{children:[(0,Tt.jsx)(lt.TooltipTrigger,{asChild:!0,children:(0,Tt.jsx)(lt.Button,{size:"small",variant:"ghost",color:"grey",iconButton:!0,disabled:!n,onClick:t,children:(0,Tt.jsx)(ss.RedoIcon,{})})}),(0,Tt.jsx)(lt.TooltipContent,{color:"black",children:r("editor.controls.history.redo")})]})]})};var Bn=require("@xyflow/react"),He=require("@produto-lecom/lecom-ui"),zn=require("lucide-react");var Re=require("react/jsx-runtime"),Vp=()=>{let{t:e}=(0,He.useTranslation)(),t=(0,Bn.useNodes)(),o=(0,Bn.useEdges)(),{zoomIn:n,zoomOut:r,zoomTo:i,fitView:a}=(0,Bn.useReactFlow)(),s=t.length===0&&o.length===0;return(0,Re.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 bg-white rounded-sm shadow-md",children:[(0,Re.jsxs)(He.Tooltip,{children:[(0,Re.jsx)(He.TooltipTrigger,{asChild:!0,children:(0,Re.jsx)(He.Button,{iconButton:!0,size:"small",color:"grey",variant:"ghost",disabled:s,onClick:()=>a(),children:(0,Re.jsx)(zn.ScanIcon,{})})}),(0,Re.jsx)(He.TooltipContent,{color:"black",children:e("editor.controls.zoom.fit")})]}),(0,Re.jsxs)(He.Tooltip,{children:[(0,Re.jsx)(He.TooltipTrigger,{asChild:!0,children:(0,Re.jsx)(He.Button,{iconButton:!0,size:"small",color:"grey",variant:"ghost",disabled:s,onClick:()=>r(),children:(0,Re.jsx)(zn.ZoomOut,{})})}),(0,Re.jsx)(He.TooltipContent,{color:"black",children:e("editor.controls.zoom.out")})]}),(0,Re.jsxs)(He.Tooltip,{children:[(0,Re.jsx)(He.TooltipTrigger,{asChild:!0,children:(0,Re.jsx)(He.Button,{iconButton:!0,size:"small",color:"grey",variant:"ghost",disabled:s,onClick:()=>i(1),children:(0,Re.jsx)(Ta,{})})}),(0,Re.jsx)(He.TooltipContent,{color:"black",children:e("editor.controls.zoom.reset")})]}),(0,Re.jsxs)(He.Tooltip,{children:[(0,Re.jsx)(He.TooltipTrigger,{asChild:!0,children:(0,Re.jsx)(He.Button,{iconButton:!0,size:"small",color:"grey",variant:"ghost",disabled:s,onClick:()=>n(),children:(0,Re.jsx)(zn.ZoomIn,{})})}),(0,Re.jsx)(He.TooltipContent,{color:"black",children:e("editor.controls.zoom.in")})]})]})};var Hp=require("@xyflow/react"),eo=require("@produto-lecom/lecom-ui"),as=require("react");var Gt=require("react/jsx-runtime"),Gp=()=>{let e=(0,as.useRef)(null),{t}=(0,eo.useTranslation)(),{setDraggableNode:o}=kn(),n=(0,Hp.useNodes)(),{setIsDragging:r}=q(),[i,a]=(0,as.useState)(void 0),s=[{type:"START_EVENT",icon:Gr,label:t("bpmn.start_event.variant.default")},{type:"END_EVENT",icon:rn,label:t("bpmn.end_event.variant.default")},{type:"TASK",icon:Un,label:t("bpmn.task.variant.default")},{type:"TASK",variant:"SUBPROCESS",icon:Ia,label:t("bpmn.task.variant.subprocess")},{type:"TASK",variant:"SCRIPT",icon:wa,label:t("bpmn.task.variant.script")},{type:"TASK",attribute:"LOOP",icon:va,label:t("bpmn.task.attribute.loop")},{type:"GATEWAY",variant:"EXCLUSIVE",icon:ln,label:t("bpmn.gateway.variant.exclusive")},{type:"GATEWAY",variant:"PARALLEL",icon:dn,label:t("bpmn.gateway.variant.parallel")},{type:"GATEWAY",variant:"COMPLEX",icon:sn,label:t("bpmn.gateway.variant.complex")},{type:"LANE",icon:Na,label:t("bpmn.lane.variant.default")},{type:"ANNOTATION",icon:Or,label:t("bpmn.annotation.variant.default")}],l=(c,d)=>{o({type:d.type,variant:d.variant,attribute:d.attribute,icon:d.icon}),a((0,Gt.jsx)(d.icon,{})),c.dataTransfer.effectAllowed="move",e.current&&c.dataTransfer.setDragImage(e.current,10,10),setTimeout(()=>{r(!0)},100)};return(0,Gt.jsxs)("aside",{className:"sidebar absolute z-[1] top-4 left-4",children:[(0,Gt.jsx)("div",{className:"grid grid-cols-1 gap-2 p-2 bg-white rounded-md shadow-md",children:s.map((c,d)=>{let u=!_o(c.type,n),m=u?t("editor.toolbar.start_event_already_exists"):c.label;return(0,Gt.jsxs)(eo.Tooltip,{children:[(0,Gt.jsx)(eo.TooltipTrigger,{asChild:!0,children:(0,Gt.jsx)(eo.Button,{className:H("[&>svg]:size-6",{"opacity-50 cursor-not-allowed":u}),size:"small",variant:"ghost",color:"grey",draggable:!u,disabled:u,iconButton:!0,onDragStart:u?void 0:p=>l(p,c),children:(0,Gt.jsx)(c.icon,{})},d)}),(0,Gt.jsx)(eo.TooltipContent,{color:"black",side:"right",children:m})]},d)})}),(0,Gt.jsx)("div",{ref:e,className:"absolute w-0 h-0 top-0 left-0 z-[-1] bg-transparent",children:i})]})};var qe=require("react/jsx-runtime"),sa=e=>e.preventDefault(),aa=(0,Mo.forwardRef)((e,t)=>{let o=(0,to.useKeyPress)("Space"),{instanceId:n,mode:r,isMinimapOpen:i,isMoveTool:a,isHandTool:s}=q(),l=(0,Mo.useRef)(null),c=(0,Mo.useRef)(s),d=(0,Mo.useRef)(o),{nodes:u,edges:m,actions:p,events:g,components:x,controls:f}=sp(),{t:h}=(0,Po.useTranslation)();c.current=s,d.current=o;let _=lp(l,c,d);(0,Mo.useImperativeHandle)(t,()=>({selectElements:p.selectElements,clearSelection:p.clearSelection}));let b=s||o||r!=="edit",T=b?[0,1,2]:_r,E=s||o||_,y=a&&!o&&!_,w=r==="edit"&&y,C=!b&&!_,A=r==="view"||y;return(0,qe.jsxs)("div",{ref:l,className:"w-full h-full",children:[r==="edit"&&(0,qe.jsx)(Gp,{}),(0,qe.jsx)(cp,{}),(0,qe.jsxs)(to.ReactFlow,v(N({},g),{id:`modeler-${n}`,className:H({"is-hand-tool":E,"is-pan-tool-active":E}),edges:m,nodes:u,nodeTypes:nu,edgeTypes:ru,minZoom:Js,maxZoom:du,panOnDrag:T,panOnScroll:!0,selectionOnDrag:C,elevateEdgesOnSelect:!0,elevateNodesOnSelect:!0,elementsSelectable:A,nodesConnectable:w,nodesDraggable:w,connectionLineComponent:eu,selectionMode:to.SelectionMode.Partial,multiSelectionKeyCode:["Control","Meta"],deleteKeyCode:w?"Delete":null,selectionKeyCode:null,defaultViewport:uu,connectOnClick:!1,connectionRadius:50,onPaneContextMenu:sa,onNodeContextMenu:sa,onEdgeContextMenu:sa,proOptions:{hideAttribution:!0},children:[(0,qe.jsx)(to.Background,{gap:lu,size:au,color:su,bgColor:iu}),i&&(0,qe.jsxs)(Po.Tooltip,{children:[(0,qe.jsx)(Po.TooltipTrigger,{asChild:!0,children:(0,qe.jsx)("div",{className:"absolute bottom-[0px] left-[0px] z-[5]",children:(0,qe.jsx)(to.MiniMap,{pannable:!0,zoomable:!0,position:cu,className:"shadow-md rounded-md",ariaLabel:"",style:{pointerEvents:"all",position:"relative"}})})}),(0,qe.jsx)(Po.TooltipContent,{color:"black",children:h("editor.controls.actions.minimap.label")})]}),(0,qe.jsxs)("div",{className:"absolute z-10 bottom-4 left-1/2 -translate-x-1/2 flex gap-4",children:[r==="edit"&&(0,qe.jsx)(Op,N({},f)),(0,qe.jsx)(Dp,{nodes:u,edges:m,validateDiagram:p.validateDiagram,handleValidationComplete:p.handleValidationComplete}),(0,qe.jsx)(Vp,{})]}),(0,qe.jsx)(x.HelperLines,{})]}))]})});aa.displayName="Editor";var Bp=require("@xyflow/react"),ls=require("react"),zp=require("react/jsx-runtime"),$h=e=>({width:e.width,height:e.height,transform:e.transform}),la="rgba(51, 103, 217, 0.4)",Hc=({horizontal:e,vertical:t})=>{let{width:o,height:n,transform:r}=(0,Bp.useStore)($h),i=(0,ls.useRef)(null);return(0,ls.useEffect)(()=>{let a=i.current,s=a==null?void 0:a.getContext("2d");if(!s||!a)return;let l=window.devicePixelRatio;a.width=o*l,a.height=n*l,s.clearRect(0,0,o,n),s.scale(l,l),s.strokeStyle=la,t&&(s.beginPath(),s.strokeStyle=t.color||la,s.moveTo(t.position*r[2]+r[0],0),s.lineTo(t.position*r[2]+r[0],n),s.stroke()),e&&(s.beginPath(),s.strokeStyle=e.color||la,s.moveTo(0,e.position*r[2]+r[1]),s.lineTo(o,e.position*r[2]+r[1]),s.stroke())},[o,n,r,e,t]),(0,zp.jsx)("canvas",{ref:i,className:"w-full h-full absolute z-10 pointer-events-none"})};var Yn=require("@produto-lecom/lecom-ui"),Lo=require("react");var Mr=require("react/jsx-runtime"),Kt=new Map,Yp=(0,Lo.createContext)(null),Tn=()=>{let e=(0,Lo.useContext)(Yp);if(!e)throw new Error("useModeler must be used within an <ModelerProvider />");return e},Wp=({locale:e,defaultMode:t="view",toast:o,children:n})=>{let[r,i]=(0,Lo.useState)(e||"pt_BR");(0,Lo.useEffect)(()=>{e&&(i(e),Yn.i18n.changeLanguage(e))},[e]);let a=g=>{let x=Kt.size;if(x===0)throw new Error("No modeler instances found");if(x===1||!g){let[h]=Kt.values();return h}let f=Kt.get(g);if(!f)throw new Error(`Modeler instance with ID "${g}" not found`);return f},s=(g,x)=>{let f=a(x);return f==null?void 0:f.selectElements(g)},l=async g=>{let x=a(g);return x==null?void 0:x.clearSelection()},c=(g,x)=>{let f=a(x);return f==null?void 0:f.configureElement(g)},d=(g,x)=>{let f=a(x);return f==null?void 0:f.getConfigureElement(g)},u=async(g,x)=>{let f=a(x);await(f==null?void 0:f.importFromMxGraph(g))},m=g=>{let x=a(g);return x==null?void 0:x.exportToMxGraph()},p=g=>{let x=a(g);return(x==null?void 0:x.getElementsCount())||0};return(0,Mr.jsx)(Yp.Provider,{value:{defaultMode:t,locale:r,selectElements:s,clearSelection:l,configureElement:c,getConfigureElement:d,importDiagram:u,exportDiagram:m,getElementsCount:p,toast:o},children:(0,Mr.jsxs)(Yn.TooltipProvider,{children:[!o&&(0,Mr.jsx)(Yn.Notification,{type:"toast",placement:"topRight",enableClose:!0,showProgress:!0,pauseOnHover:!0}),n]})})};var cs=require("react/jsx-runtime"),Up=(0,Ge.createContext)(null),q=()=>{let e=(0,Ge.useContext)(Up);if(!e)throw new Error("useModelerInstance must be used within an <Modeler />");return e},$p=({selectorRef:e,initialDiagram:t,instanceId:o,mode:n,validateCustomDiagram:r,onElementChanges:i,onConfigureElement:a,onElementClick:s,onSubprocessValidationClick:l})=>{let{t:c}=(0,Fp.useTranslation)(),{defaultMode:d}=Tn(),u=(0,Ge.useId)(),[m]=(0,Ge.useState)(o||u),[p,g]=(0,Ge.useState)(n||d||"edit"),[x,f]=(0,Ge.useState)(fr),[h,_]=(0,Ge.useState)(!1),[b,T]=(0,Ge.useState)(!0),[E,y]=(0,Ge.useState)(!1),[w,C]=(0,Ge.useState)(!1),[A,R]=(0,Ge.useState)(!1),[G,M]=(0,Ge.useState)(!1),[P,X]=(0,Ge.useState)(!1),[$,Z]=(0,Ge.useState)(null);(0,Ge.useEffect)(()=>{n&&g(n)},[n]);let Y=(0,Ge.useMemo)(()=>t||Cd(c),[t,c]),S={instanceId:m,initialDiagram:Y,mode:p,lastElementId:x,isInitialized:h,isMinimapOpen:w,isMoveTool:b,isHandTool:E,isDragging:A,isMultipleSelection:P,isConnecting:G,setLastElementId:f,setIsInitialized:_,reconnectingEdgeId:$,setIsMinimapOpen:C,setIsMoveTool:T,setIsHandTool:y,setIsDragging:R,setIsConnecting:M,setIsMultipleSelection:X,setReconnectingEdgeId:Z,validateCustomDiagram:r,onElementChanges:i,onConfigureElement:a,onElementClick:s,onSubprocessValidationClick:l};return(0,cs.jsx)(Xp.ReactFlowProvider,{children:(0,cs.jsx)(Up.Provider,{value:S,children:(0,cs.jsx)(aa,{ref:e})})})};0&&(module.exports={EditorMode,ElementPosition,ElementType,GatewayElementVariant,GatewayVariant,Modeler,ModelerProvider,NodeAttribute,NodeType,NodeVariant,RoutingVariant,useModeler});
package/lib/index.js CHANGED
@@ -38,7 +38,7 @@ var rp=Object.defineProperty,ip=Object.defineProperties;var sp=Object.getOwnProp
38
38
  </root>
39
39
  </mxGraphModel>`,Kc=(e,t)=>{if(!e.length&&!t.length)return bn;let o=[...e.map(r=>r.id),...t.map(r=>r.id)];return Math.max(...o.map(r=>Number(r)))};var Ih=e=>{let t=Object.values(En),o=e.filter(i=>{var s;let a=(s=i._attributes)==null?void 0:s.style;return t.includes(a)}),n=e.filter(i=>{var s;let a=(s=i._attributes)==null?void 0:s.style;return["attribute-loop"].includes(a)}),r=[];for(let i of o){let{style:a}=i._attributes,s=Hc[a],l=s==null?void 0:s(i,n);if(!l){console.warn(`Node ${a} not supported`);continue}r.push(l)}return r},Ah=(e,t)=>{let o=e.filter(r=>{var i;return(i=r._attributes)==null?void 0:i.edge}),n=[];for(let r of o){let i=Gc(r),a=t.find(c=>c.id===i.source),s=t.find(c=>c.id===i.target);((a==null?void 0:a.type)==="LANE"||(s==null?void 0:s.type)==="LANE")&&i.type!=="ANNOTATION_EDGE"||n.push(i)}return n},Ch=(e,t)=>{let o=[];return e.forEach(n=>{var a,s;let r=(s=(a=zc)[n.type])==null?void 0:s.call(a,n);if(!r){console.warn(`Node ${n.type} not supported`);return}if(o.push(r),n.type==="TASK"&&n.data.attribute==="LOOP"){let l=Yc(n,t);o.push(l)}}),o},Sh=(e,t)=>{let o=[];return e.forEach(n=>{let r=Bc(n,t);o.push(r)}),o},Mh=(e=[],t=[],o)=>{let n=Ch(e,o),r=Sh(t,e);return{mxGraphModel:{root:{_attributes:{version:"1.1",lastId:o},mxCell:[{_attributes:{id:"0"}},{_attributes:{id:"1",parent:"0"}},...n,...r]}}}},qc=(e=[],t=[],o)=>{let n=Mh(e,t,o);return Lc(JSON.stringify(n),{compact:!0,spaces:0})},Zc=async e=>{var c,d,u,m,p;let t=await Ur(e),o=((d=(c=t==null?void 0:t.mxGraphModel)==null?void 0:c.root)==null?void 0:d.mxCell)||[],n=Number(((p=(m=(u=t==null?void 0:t.mxGraphModel)==null?void 0:u.root)==null?void 0:m._attributes)==null?void 0:p.lastId)||bn),r=Ih(o),i=Ah(o,r),a=Xc(r),{nodes:s,edges:l}=oa(a,i);return{lastElementId:n,edges:l,nodes:qt(s)}};import{Position as zt,useConnection as fy,useReactFlow as my}from"@xyflow/react";import{useCallback as ds}from"react";import{Handle as Jc,useReactFlow as Ph}from"@xyflow/react";import{jsx as Qc}from"react/jsx-runtime";var te=i=>{var a=i,{type:e,position:t,className:o,nodeType:n}=a,r=mt(a,["type","position","className","nodeType"]);let s=n==="TASK";return Qc(Jc,N({type:e,position:t,className:H("size-2.5 border border-grey-400 bg-white relative",{"before:content-[''] before:absolute before:inset-[-16px] before:bg-transparent before:pointer-events-none":s,"before:content-[''] before:absolute before:inset-[-4px] before:bg-transparent before:pointer-events-none":!s},o)},r))},He=s=>{var l=s,{nodeId:e,nodeType:t,gatewayVariant:o,type:n,position:r,className:i}=l,a=mt(l,["nodeId","nodeType","gatewayVariant","type","position","className"]);let{getEdges:c,getNodes:d}=Ph(),m=(()=>{if(n!=="source")return!1;let p=c();if(t==="TASK")return p.filter(x=>x.source===e).length>=2;if(t==="GATEWAY"&&o==="EXCLUSIVE")return p.filter(x=>x.source===e).length>=2;if(t==="START_EVENT"){let g=d();return p.filter(f=>{if(f.source!==e)return!1;let h=g.find(_=>_.id===f.target);return(h==null?void 0:h.type)!=="ANNOTATION"}).length>=1}return!1})();return Qc(Jc,N({type:n,position:r,className:H("size-2.5 border border-grey-400 bg-white transition-all duration-200 relative",{"before:content-[''] before:absolute before:inset-[-16px] before:bg-transparent before:pointer-events-none":t==="TASK","before:content-[''] before:absolute before:inset-[-4px] before:bg-transparent before:pointer-events-none":t!=="TASK","opacity-50 cursor-not-allowed pointer-events-none":m,"hover:border-grey-500":!m},i),style:{pointerEvents:m?"none":"auto"}},a))};import{useRef as jc}from"react";import{NodeResizeControl as ed,ResizeControlVariant as kh,useReactFlow as Rh,useStoreApi as Dh}from"@xyflow/react";import{useStoreApi as Lh}from"@xyflow/react";var $r=()=>{let e=Lh();return{getInternalNodes:()=>{let{nodeLookup:o}=e.getState();return Array.from(o.values())}}};import{Fragment as Hh,jsxs as Gh}from"react/jsx-runtime";import{createElement as td}from"react";var Oh=["top","right","bottom","left"],Vh=["top-left","top-middle","top-right","right-middle","bottom-left","left-middle","bottom-right","bottom-middle"],it=r=>{var i=r,{nodeId:e,isVisible:t,offset:o=8}=i,n=mt(i,["nodeId","isVisible","offset"]);let{getInternalNode:a,setNodes:s}=Rh(),{getInternalNodes:l}=$r(),{isMultipleSelection:c}=q(),d=Dh(),u=jc(0),m=jc([]),p=({y:h,width:_,height:b})=>{cancelAnimationFrame(u.current),u.current=requestAnimationFrame(()=>{var $,Z;if(!e)return;let{nodeLookup:T,onNodesChange:E}=d.getState(),y=T.get(e);if(!y||y.type!=="LANE")return;let w=!y.parentId,C=w?y.id:y.parentId;if(!C)return;let A=Array.from(T.values()).filter(Y=>Y.type==="LANE"&&Y.parentId===C);if(!A.length)return;m.current.length===0&&(m.current=Qt(A).map(Y=>Y.id));let R=m.current.map(Y=>A.find(S=>S.id===Y)).filter(Boolean),G=[],M=0,P=R.findIndex(Y=>Y.id===y.id),X=!w&&P>0&&Math.abs(h-y.position.y)>.5;for(let Y=0;Y<R.length;Y++){let S=R[Y],V=S.id===y.id,D=Y===R.length-1;if(V){M=X?h+b:M+b;continue}let I=(Z=($=S.measured)==null?void 0:$.height)!=null?Z:0,z=w?_-ie.HEADER_WIDTH:_,L=I;w&&D&&(L=Math.max(ie.MIN_HEIGHT,b-M)),X&&Y===P-1&&(L=Math.max(ie.MIN_HEIGHT,h-M)),G.push({id:S.id,type:"dimensions",dimensions:{width:z,height:L},setAttributes:!0}),G.push({id:S.id,type:"position",position:{x:ie.HEADER_WIDTH,y:M}}),M+=L}w?G.push({id:C,type:"dimensions",dimensions:{width:_,height:b},setAttributes:!0}):G.push({id:C,type:"dimensions",dimensions:{width:_+ie.HEADER_WIDTH,height:M},setAttributes:!0}),E==null||E(G)})},g=({y:h,width:_,height:b})=>{var y;if(cancelAnimationFrame(u.current),m.current=[],!e)return;let T=a(e);if(!T||T.type!=="LANE"&&!T.parentId)return;let E=[...l()];if(T.type!=="LANE"){E=E.map(w=>w.id===e?v(N({},w),{width:_,height:b,measured:{width:_,height:b}}):w),E=It(E),s(E);return}E=sa(T,_,b,E,h),E=It(E),E=Jt((y=T.parentId)!=null?y:T.id,E),s(E)};if(!(!c&&t))return null;let f={"--resize-offset":`${o}px`};return Gh(Hh,{children:[Oh.map(h=>td(ed,v(N({},n),{key:h,nodeId:e,position:h,variant:kh.Line,className:"border-blue-400/90 border-dashed",style:f,onResize:(_,b)=>p(b),onResizeEnd:(_,b)=>g(b)}))),Vh.map(h=>td(ed,v(N({},n),{key:h,nodeId:e,position:h,className:"size-1.5 bg-blue-400 relative before:content-[''] before:absolute before:w-5 before:h-5 before:left-1/2 before:top-1/2 before:-translate-x-1/2 before:-translate-y-1/2 before:cursor-[inherit]",style:f,onResize:(_,b)=>p(b),onResizeEnd:(_,b)=>g(b)})))]})};import{NodeToolbar as ny,useReactFlow as ry}from"@xyflow/react";import{Button as iy,Tooltip as sy,TooltipContent as ay,TooltipTrigger as ly,useTranslation as cy}from"@produto-lecom/lecom-ui";import{useCallback as cs,useEffect as dy,useRef as Kr,useState as uy}from"react";import{create as Bh}from"zustand";var Ho=Bh(e=>({draggableNode:null,setDraggableNode:t=>{e({draggableNode:t})}}));import{useEffect as zh,useState as Yh}from"react";var od=(e,t=!1)=>{let[o,n]=Yh({width:0,height:0});return zh(()=>{if(e.current&&t){let r=e.current.getBoundingClientRect();n({width:r.width,height:r.height})}},[t,e]),{dimensions:o}};import{Position as _n,useReactFlow as Wh}from"@xyflow/react";import{useMemo as Fh}from"react";var Xh=120,Uh=12,nd=(e,t=!1,o)=>{let{getNode:n,getViewport:r}=Wh(),{instanceId:i}=q();return Fh(()=>{var p,g;if(!t)return{position:_n.Right,align:"start"};let a=n(e);if(!a)return{position:_n.Right,align:"start"};let s=r(),l=a.position.x*s.zoom+s.x,c=(((p=a.measured)==null?void 0:p.width)||a.width||100)*s.zoom,d=(g=document.getElementById(`modeler-${i}`))==null?void 0:g.clientWidth;if(!d)return{position:_n.Right,align:"start"};let u=(o==null?void 0:o.width)||Xh;return{position:l+c+u+Uh>d?_n.Left:_n.Right}},[i,e,t,o,n,r])};import{useNodesData as $h,useReactFlow as Kh}from"@xyflow/react";import{Button as rd,DropdownMenu as qh,DropdownMenuContent as Zh,DropdownMenuGroup as Jh,DropdownMenuItem as Qh,DropdownMenuLabel as jh,DropdownMenuTrigger as ey,Tooltip as ss,TooltipContent as as,TooltipTrigger as ls,useTranslation as ty}from"@produto-lecom/lecom-ui";import{WrenchIcon as oy}from"lucide-react";import{jsx as Re,jsxs as ao}from"react/jsx-runtime";var id=({nodeId:e})=>{let{t}=ty(),{updateNodeData:o,getEdges:n,getNode:r}=Kh(),i=$h(e),s=n().filter(p=>p.source===e).some(p=>{let g=r(p.target);return(g==null?void 0:g.type)==="END_EVENT"}),l=(i==null?void 0:i.data.variant)==="SUBPROCESS",c=u=>{o(e,{variant:(i==null?void 0:i.data.variant)===u?"":u})},d=u=>{o(e,{attribute:(i==null?void 0:i.data.attribute)===u?"":u})};return ao(qh,{children:[ao(ss,{children:[Re(ls,{asChild:!0,children:Re(ey,{asChild:!0,children:Re(rd,{variant:"ghost",color:"grey",size:"small",iconButton:!0,children:Re(oy,{})})})}),Re(as,{color:"black",children:t("bpmn.task.menu.title")})]}),ao(Zh,{align:"start",className:"w-60 bg-white text-grey-600",children:[ao(jh,{className:"flex items-center gap-1",children:[Re("div",{className:"flex-1 body-medium-500",children:t("bpmn.task.menu.title")}),Re("div",{className:"flex items-center gap-1",children:Object.entries(Bn).map(([u,m])=>{let p=u==="LOOP"&&(s||l),x=(()=>{if(u==="LOOP"&&s)return t("editor.task_menu.loop_not_allowed_when_connected_to_end");if(u==="LOOP"&&l)return t("editor.task_menu.loop_not_allowed_when_subprocess");if(u==="LOOP")return t("editor.task_menu.loop")})();return ao(ss,{children:[Re(ls,{asChild:!0,children:Re(rd,{variant:"ghost",color:"grey",size:"small",iconButton:!0,disabled:p,className:H({"bg-grey-100 text-blue-500":(i==null?void 0:i.data.attribute)===u,"opacity-50 cursor-not-allowed":p}),onClick:p?void 0:()=>d(u),children:Re(m.icon,{className:"stroke-inherit"})})}),x&&Re(as,{color:"black",children:x})]},u)})})]}),Re(Jh,{children:ao(ss,{children:[Re(ls,{asChild:!0,children:Re("div",{className:H({"cursor-not-allowed":s}),children:ao(Qh,{className:H({"bg-grey-100 text-blue-500":(i==null?void 0:i.data.variant)==="SCRIPT","opacity-50":s}),disabled:s,onClick:()=>c("SCRIPT"),children:[Re(Gn.SCRIPT.icon,{className:"stroke-current"}),t(`bpmn.task.variant.${"SCRIPT".toLowerCase()}`)]})})}),s&&Re(as,{color:"black",children:t("editor.task_menu.script_not_allowed_when_connected_to_end")})]})})]})]})};import{jsx as Ce,jsxs as sd}from"react/jsx-runtime";var lo={START_EVENT:{type:"START_EVENT",icon:$o,label:"bpmn.start_event.variant.default"},END_EVENT:{type:"END_EVENT",icon:ho,label:"bpmn.end_event.variant.default"},TASK:{type:"TASK",icon:$o,label:"bpmn.task.variant.default"},ANNOTATION:{type:"ANNOTATION",icon:Dn,label:"bpmn.annotation.variant.default"}},py={EXCLUSIVE:{type:"GATEWAY",variant:"EXCLUSIVE",icon:xo,label:"bpmn.gateway.variant.exclusive"},PARALLEL:{type:"GATEWAY",variant:"PARALLEL",icon:Eo,label:"bpmn.gateway.variant.parallel"},COMPLEX:{type:"GATEWAY",variant:"COMPLEX",icon:yo,label:"bpmn.gateway.variant.complex"}},Fe=({nodeId:e,nodeType:t,nodeVariant:o})=>{let n=Kr(null),r=Kr(null),{t:i}=cy(),{setDraggableNode:a}=Ho(),{getEdges:s,getNodes:l,getNode:c}=ry(),{setIsDragging:d,mode:u,isConnecting:m,isDragging:p,isMultipleSelection:g}=q(),x=c(e),f=!!(x!=null&&x.selected)&&!x.dragging&&!m&&!p&&!g,{dimensions:h}=od(n,f),{position:_}=nd(e,f,h),[b,T]=uy(void 0),E=l(),y=s(),w=o==="SUBPROCESS",C=Kr(null),A=Kr(!1),R=cs(()=>{C.current!==null&&(clearTimeout(C.current),C.current=null),A.current=!1,d(!1),a(null),T(void 0)},[d,a]);dy(()=>{let L=k=>{A.current&&k.buttons===0&&R()};return document.addEventListener("dragend",R),document.addEventListener("mousemove",L),()=>{document.removeEventListener("dragend",R),document.removeEventListener("mousemove",L)}},[R]);let G=cs((L,k)=>{A.current=!0,d(!1),a({type:k.type,variant:k.variant,attribute:k.attribute,icon:k.icon}),k.icon&&T(Ce(k.icon,{})),L.dataTransfer.effectAllowed="move",L.dataTransfer.setData("sourceId",e),r.current&&L.dataTransfer.setDragImage(r.current,10,10),C.current=setTimeout(()=>{C.current=null,d(!0)},100)},[e,a,d]),M=cs(()=>{R()},[R]),P=[{component:Ce(Rr,{elementId:e})}],X=()=>{if(u==="view")return[];let L=!y.some(k=>{var O;return k.source===e&&((O=E.find(B=>B.id===k.target))==null?void 0:O.type)!=="ANNOTATION"});return[{component:Ce(Ao,{nodeId:e,disabled:!L,tooltipMessage:L?void 0:i("editor.toolbar.start_event_limit_reached")})},lo.TASK,lo.ANNOTATION,...P]},$=()=>u==="view"?[{component:Ce(Ht,{elementId:e})}]:[{component:Ce(Ht,{elementId:e})},...w?[]:[{component:Ce(id,{nodeId:e})}],{component:Ce(Ao,{nodeId:e})},lo.TASK,...Object.values(py),...P],Z=()=>u==="view"?[{component:Ce(Ht,{elementId:e})}]:[{component:Ce(Ht,{elementId:e})},{component:Ce(Ao,{nodeId:e})},lo.TASK,lo.ANNOTATION,...P],Y=()=>u==="view"?[]:[lo.ANNOTATION,...P],S=()=>u==="view"?[]:[{component:Ce(Ao,{nodeId:e})},lo.ANNOTATION,...P],V=()=>u==="view"?[]:[{component:Ce(Ao,{nodeId:e})},...P],D=()=>u==="view"?[]:[...P],z=(L=>{switch(L){case"START_EVENT":return X();case"TASK":return $();case"GATEWAY":return Z();case"END_EVENT":return Y();case"LANE":return S();case"ANNOTATION":return V();case"UNSUPPORTED":return D();default:return[]}})(t);if(!(z.length===0||u==="readonly"))return sd(ny,{position:_,align:"start",className:"-top-8",isVisible:f,children:[Ce("div",{ref:n,className:"flex items-center gap-1 px-3 py-2 bg-white rounded-sm shadow-md",children:z.map((L,k)=>{if(L.component)return Ce("div",{children:L.component},k);let O={sourceNodeType:t,targetNodeType:L.type,sourceNodeId:e,nodes:E,edges:y},B=cc(O),ee={gateway_limit_reached:i("editor.toolbar.gateway_limit_reached"),start_event_limit_reached:i("editor.toolbar.start_event_limit_reached"),start_event_already_exists:i("editor.toolbar.start_event_already_exists"),script_to_end_not_allowed:i("editor.toolbar.script_to_end_not_allowed"),loop_to_end_not_allowed:i("editor.toolbar.loop_to_end_not_allowed"),initial_activity_to_end_not_allowed:i("editor.toolbar.initial_activity_to_end_not_allowed"),final_activity_cannot_connect:i("editor.toolbar.final_activity_cannot_connect"),activity_has_outgoing_connections:i("editor.toolbar.activity_has_outgoing_connections"),task_limit_reached:i("editor.toolbar.task_limit_reached")},oe=B.shouldDisable&&B.reason?ee[B.reason]||i(L.label):i(L.label)||"";return sd(sy,{children:[Ce(ly,{asChild:!0,children:Ce(iy,{variant:"ghost",color:"grey",size:"small",iconButton:!0,draggable:!B.shouldDisable,disabled:B.shouldDisable,className:B.shouldDisable?"opacity-50 cursor-not-allowed":"",onDragStart:B.shouldDisable?void 0:K=>G(K,L),onDragEnd:B.shouldDisable?void 0:M,children:L.icon&&Ce(L.icon,{size:16})})}),Ce(ay,{color:"black",children:oe})]},k)})}),Ce("div",{ref:r,className:"absolute w-0 h-0 top-0 left-0 z-[-1] bg-transparent",children:b})]})};import{Fragment as ad,jsx as ct,jsxs as us}from"react/jsx-runtime";var ld=({id:e,data:t,selected:o,dragging:n})=>{let{updateNodeData:r,setNodes:i}=my(),{inProgress:a,fromNode:s}=fy(),{mode:l}=q(),c=a&&(s==null?void 0:s.id)!==e,d=ds(p=>{let _=p.split(`
40
40
  `),b=_.reduce((w,C)=>Math.max(w,C.length),0),T=_.length,E=Math.max(No.MIN_WIDTH,b*7+32),y=Math.max(No.MIN_HEIGHT,T*20+24);i(w=>w.map(C=>C.id===e?v(N({},C),{width:E,height:y,style:v(N({},C.style),{width:E,height:y})}):C))},[e,i]),u=ds(p=>{r(e,{label:p}),d(p)},[e,r,d]),m=ds(p=>{d(p)},[d]);return us("div",{className:H("relative w-full h-full min-w-44 min-h-16 flex text-grey-400 hover:text-grey-500 bg-white rounded-sm border-l-2 border-current before:absolute before:top-0 before:left-0 before:w-4 before:border-t-2 before:border-current after:absolute after:bottom-0 after:left-0 after:w-4 after:border-t-2 after:border-current hover:shadow-md transition-colors duration-75",{"text-blue-500 hover:text-blue-600 shadow-md":o,"border-red-500 border-l-[3px] shadow-[0_0_5px_rgba(255,0,0,0.5)] before:absolute before:top-0 before:left-0 before:w-4 before:border-t-2 before:border-red-500 after:absolute after:bottom-0 after:left-0 after:w-4 after:border-t-2 after:border-red-500":t.hasError}),children:[ct(ke,{value:t.label,className:"m-1 text-grey-600 text-left",onChange:u,onInput:m,skipFirstCharValidation:!0}),ct(Fe,{nodeId:e,nodeType:"ANNOTATION"}),l==="edit"&&ct(it,{nodeId:e,minWidth:No.MIN_WIDTH,minHeight:No.MIN_HEIGHT,isVisible:!n&&o}),!a&&us(ad,{children:[ct(te,{type:"source",position:zt.Left,id:"left"}),ct(te,{type:"source",position:zt.Right,id:"right"}),ct(te,{type:"source",position:zt.Top,id:"top"}),ct(te,{type:"source",position:zt.Bottom,id:"bottom"})]}),(!a||c)&&us(ad,{children:[ct(te,{type:"target",position:zt.Left,id:"left",className:H({"annotation-handle":c})}),ct(te,{type:"target",position:zt.Right,id:"right",className:H({"annotation-handle":c})}),ct(te,{type:"target",position:zt.Top,id:"top",className:H({"annotation-handle":c})}),ct(te,{type:"target",position:zt.Bottom,id:"bottom",className:H({"annotation-handle":c})})]})]})};import{Position as Yt,useConnection as gy,useReactFlow as hy}from"@xyflow/react";import{useState as yy}from"react";import{Fragment as cd,jsx as Ze,jsxs as ps}from"react/jsx-runtime";var dd=({id:e,data:t,selected:o,dragging:n})=>{let{updateNodeData:r}=hy(),{inProgress:i,fromNode:a}=gy(),{mode:s,reconnectingEdgeId:l}=q(),[c,d]=yy(!1),u=i&&(a==null?void 0:a.id)!==e||!!l,m=x=>{r(e,{label:x})},p=()=>{d(!0)},g=()=>{d(!1)};return ps("div",{className:"relative",onDoubleClick:p,children:[Ze(ho,{className:H("w-full h-full min-w-9 min-h-9 hover:stroke-[#d33b3b] transition-colors duration-75",{"stroke-blue-500 hover:stroke-blue-600":o,"stroke-red-500 hover:stroke-red-600 drop-shadow-[0_0_3px_rgba(255,0,0,0.5)] fill-red-100":t.hasError})}),Ze("div",{className:"absolute mt-2 left-1/2 -translate-x-1/2 max-w-80 w-max",children:Ze(ke,{value:t.label,isEditing:c,onBlur:g,onChange:m})}),Ze(Fe,{nodeId:e,nodeType:"END_EVENT"}),s==="edit"&&Ze(it,{nodeId:e,isVisible:!n&&o,minWidth:Wn.MIN_WIDTH,minHeight:Wn.MIN_HEIGHT,offset:4,keepAspectRatio:!0}),(!i||u)&&ps(cd,{children:[Ze(te,{type:"target",position:Yt.Left,id:"left",className:H({"event-handle":u})}),Ze(te,{type:"target",position:Yt.Right,id:"right",className:H({"event-handle":u})}),Ze(te,{type:"target",position:Yt.Top,id:"top",className:H({"event-handle":u})}),Ze(te,{type:"target",position:Yt.Bottom,id:"bottom",className:H({"event-handle":u})})]}),!i&&ps(cd,{children:[Ze(te,{type:"source",position:Yt.Left,id:"left"}),Ze(te,{type:"source",position:Yt.Right,id:"right"}),Ze(te,{type:"source",position:Yt.Top,id:"top"}),Ze(te,{type:"source",position:Yt.Bottom,id:"bottom"})]})]})};import{Position as Wt,useConnection as xy,useReactFlow as Ey}from"@xyflow/react";import{useCallback as by,useState as _y}from"react";import{Fragment as ud,jsx as Je,jsxs as fs}from"react/jsx-runtime";var pd=({id:e,data:t,selected:o,dragging:n})=>{let r=Mi[t.variant].icon,{updateNodeData:i}=Ey(),{inProgress:a,fromNode:s}=xy(),{mode:l,reconnectingEdgeId:c}=q(),[d,u]=_y(!1),m=a&&(s==null?void 0:s.id)!==e||!!c,p=by(f=>{i(e,{label:f})},[e,i]),g=()=>{u(!0)},x=()=>{u(!1)};return fs("div",{className:"relative",onDoubleClick:g,children:[Je(r,{className:H("w-full h-full min-w-14 min-h-14 stroke-1 stroke-grey-400 hover:stroke-grey-500 transition-colors duration-75",{"stroke-blue-500 hover:stroke-blue-600":o,"stroke-red-500 hover:stroke-red-600 drop-shadow-[0_0_3px_rgba(255,0,0,0.5)]":t.hasError})}),Je("div",{className:"absolute mt-2 left-1/2 -translate-x-1/2 max-w-80 w-max",children:Je(ke,{value:t.label,isEditing:d,onBlur:x,onChange:p})}),Je(Fe,{nodeId:e,nodeType:"GATEWAY"}),l==="edit"&&Je(it,{nodeId:e,isVisible:!n&&o,minWidth:Fn.MIN_WIDTH,minHeight:Fn.MIN_HEIGHT,offset:2,keepAspectRatio:!0}),(!a||m)&&fs(ud,{children:[Je(te,{type:"target",position:Wt.Left,id:"left",className:H({"gateway-handle":m})}),Je(te,{type:"target",position:Wt.Right,id:"right",className:H({"gateway-handle":m})}),Je(te,{type:"target",position:Wt.Top,id:"top",className:H({"gateway-handle":m})}),Je(te,{type:"target",position:Wt.Bottom,id:"bottom",className:H({"gateway-handle":m})})]}),!a&&fs(ud,{children:[Je(He,{type:"source",position:Wt.Left,id:"left",nodeId:e,nodeType:"GATEWAY",gatewayVariant:t.variant}),Je(He,{type:"source",position:Wt.Right,id:"right",nodeId:e,nodeType:"GATEWAY",gatewayVariant:t.variant}),Je(He,{type:"source",position:Wt.Top,id:"top",nodeId:e,nodeType:"GATEWAY",gatewayVariant:t.variant}),Je(He,{type:"source",position:Wt.Bottom,id:"bottom",nodeId:e,nodeType:"GATEWAY",gatewayVariant:t.variant})]})]})};import{useNodesData as iM,useReactFlow as sM}from"@xyflow/react";import{Button as lM,DropdownMenu as cM,DropdownMenuContent as dM,DropdownMenuGroup as uM,DropdownMenuItem as pM,DropdownMenuLabel as fM,DropdownMenuTrigger as mM,Tooltip as gM,TooltipContent as hM,TooltipTrigger as yM,useTranslation as xM}from"@produto-lecom/lecom-ui";import{WrenchIcon as bM}from"lucide-react";import{jsx as vM,jsxs as wM}from"react/jsx-runtime";import{Position as Ft,useConnection as Ny,useReactFlow as Ty}from"@xyflow/react";import{useState as vy}from"react";import{Fragment as fd,jsx as Qe,jsxs as ms}from"react/jsx-runtime";var md=({id:e,data:t,selected:o,dragging:n})=>{let{updateNodeData:r}=Ty(),{inProgress:i,fromNode:a}=Ny(),{mode:s,reconnectingEdgeId:l}=q(),[c,d]=vy(!1),u=i&&(a==null?void 0:a.id)!==e||!!l,m=x=>{r(e,{label:x})},p=()=>{d(!0)},g=()=>{d(!1)};return ms("div",{className:"relative",onDoubleClick:p,children:[Qe(Vn,{className:H("w-full h-full min-w-9 min-h-9 hover:stroke-[#54890b] transition-colors duration-75",{"stroke-blue-500 hover:stroke-blue-600":o,"stroke-red-500 hover:stroke-red-600 drop-shadow-[0_0_3px_rgba(255,0,0,0.5)] fill-red-100":t.hasError})}),Qe("div",{className:"absolute mt-2 left-1/2 -translate-x-1/2 max-w-80 w-max",children:Qe(ke,{value:t.label,isEditing:c,onBlur:g,onChange:m})}),Qe(Fe,{nodeId:e,nodeType:"START_EVENT"}),s==="edit"&&Qe(it,{nodeId:e,isVisible:!n&&o,minWidth:Yn.MIN_WIDTH,minHeight:Yn.MIN_HEIGHT,offset:4,keepAspectRatio:!0}),(!i||u)&&ms(fd,{children:[Qe(te,{type:"target",position:Ft.Left,id:"left",className:H({"event-handle":u})}),Qe(te,{type:"target",position:Ft.Right,id:"right",className:H({"event-handle":u})}),Qe(te,{type:"target",position:Ft.Top,id:"top",className:H({"event-handle":u})}),Qe(te,{type:"target",position:Ft.Bottom,id:"bottom",className:H({"event-handle":u})})]}),!i&&ms(fd,{children:[Qe(He,{type:"source",position:Ft.Left,id:"left",nodeId:e,nodeType:"START_EVENT"}),Qe(He,{type:"source",position:Ft.Right,id:"right",nodeId:e,nodeType:"START_EVENT"}),Qe(He,{type:"source",position:Ft.Top,id:"top",nodeId:e,nodeType:"START_EVENT"}),Qe(He,{type:"source",position:Ft.Bottom,id:"bottom",nodeId:e,nodeType:"START_EVENT"})]})]})};import{useTranslation as Ay}from"@produto-lecom/lecom-ui";import{Position as Xt,useConnection as Cy,useReactFlow as Sy}from"@xyflow/react";import{useCallback as Zr}from"react";var Nn=60,qr=(e,t)=>{var a;let o=[],n=`${t} `;for(let s of e){if(!(s.type==="TASK"))continue;let c=(a=s.data)==null?void 0:a.label;if(c&&c.startsWith(n)){let d=c.substring(n.length);/^\d{1,15}$/.test(d)&&o.push(parseInt(d,10))}}let r=o.length>0?Math.max(...o)+1:1,i=`${t} ${r}`;return i.length<=Nn?i:i.substring(0,Nn).trim()},Go=(e,t)=>{var s;let o=new Set;for(let l of t)l.type==="TASK"&&((s=l.data)!=null&&s.label)&&o.add(l.data.label);let n=e;if(n.length>Nn&&(n=n.substring(0,Nn).trim()),!o.has(n))return n;let r=n.replace(/\s+\(\d+\)$/,""),i=2,a=o.size+2;for(;i<=a;){let l=` (${i})`,c=Nn-l.length,u=`${r.substring(0,c).trim()}${l}`;if(!o.has(u))return u;i++}return n};import{jsx as gd,jsxs as wy}from"react/jsx-runtime";var hd=e=>wy("svg",v(N({width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e),{children:[gd("circle",{cx:"12",cy:"12",r:"10",fill:"#10B981"}),gd("path",{d:"M7 12L10 15L17 8",stroke:"white",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})]}));import{jsx as yd}from"react/jsx-runtime";var xd=e=>yd("svg",v(N({width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e),{children:yd("path",{d:"M12 2C8.13 2 5 5.13 5 9C5 14.25 12 22 12 22C12 22 19 14.25 19 9C19 5.13 15.87 2 12 2ZM12 11.5C10.62 11.5 9.5 10.38 9.5 9C9.5 7.62 10.62 6.5 12 6.5C13.38 6.5 14.5 7.62 14.5 9C14.5 10.38 13.38 11.5 12 11.5Z",fill:"#38bdf8"})}));import{jsx as Ed,jsxs as Iy}from"react/jsx-runtime";var bd=e=>Iy("svg",v(N({width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e),{children:[Ed("circle",{cx:"12",cy:"12",r:"10",fill:"#EF4444"}),Ed("path",{d:"M8 8L16 16M8 16L16 8",stroke:"white",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})]}));import{Fragment as Jr,jsx as Te,jsxs as Tn}from"react/jsx-runtime";var My={APROVADO:hd,EM_ANDAMENTO:xd,REJEITADO:bd},gs={APROVADO:"border-green-500 border-[3px] border-solid",EM_ANDAMENTO:"border-turquoise-400 border-[3px] border-solid",REJEITADO:"border-red-500 border-[3px] border-solid",default:"border-grey-400 border-2 border-solid",error:"border-red-500 border-[3px] shadow-[0_0_5px_rgba(255,0,0,0.5)]"},_d=({id:e,data:t,selected:o,dragging:n})=>{let{t:r}=Ay(),{toast:i}=We(),{updateNodeData:a,getNodes:s,setNodes:l}=Sy(),{inProgress:c,fromNode:d}=Cy(),{mode:u,onSubprocessValidationClick:m,reconnectingEdgeId:p}=q(),{getTaskStatus:g}=jt(),x=c&&(d==null?void 0:d.id)!==e||!!p,f=g(e),h=t.variant==="SUBPROCESS",_=!!t.variant&&!h||!!f,b=!!t.attribute||h,T=Zr(P=>{let Y=_||b?80:40,S=P.split(`
41
- `),V=S.reduce((L,k)=>Math.max(L,k.length),0),D=S.length,I=Math.max(_o.MIN_WIDTH,V*7+64),z=Math.max(_o.MIN_HEIGHT,D*24+Y);l(L=>L.map(k=>k.id===e?v(N({},k),{width:I,height:z,style:v(N({},k.style),{width:I,height:z})}):k))},[e,l,_,b]),E=Zr(P=>{let X=P.trim(),$=t.label||"";if(X===$)return;let Z=X,Y=s();if(!(X&&X!=="")){Z=qr(Y,r("bpmn.task.label.prefix")),a(e,{label:Z}),T(Z),i({variant:"warning",content:Tn(Jr,{children:[r("bpmn.task.feedback.label_empty.prefix")," ",Te("strong",{children:Z})]})});return}let V=Go(Z,Y);V===$||(a(e,{label:V}),T(V),V!==Z&&i({variant:"warning",content:Tn(Jr,{children:[r("bpmn.task.feedback.label_already_exists.prefix")," ",Te("strong",{children:X})," ",r("bpmn.task.feedback.label_already_exists.middle")," ",Te("strong",{children:V})]})}))},[t.label,s,e,r,a,T,i]),y=Zr(P=>{T(P)},[T]),w=Zr(()=>{i({variant:"error",content:r("bpmn.task.feedback.invalid_first_character")})},[r,i]),C=f?My[f]:null,A=t.variant?Gn[t.variant].icon:null,R=t.attribute?Bn[t.attribute].icon:null,G=()=>t.hasError?gs.error:f?gs[f]:gs.default,M=()=>{m==null||m({id:e,type:"sub_process",label:t.label})};return Tn("div",{className:H("relative w-full h-full min-w-44 min-h-24 flex flex-col items-stretch justify-stretch bg-white border-2 border-grey-400 hover:border-grey-500 rounded-md hover:shadow-md transition-colors duration-75",G(),{"border-blue-500 hover:border-blue-600 shadow-md":o,"border-red-500 hover:border-red-600 shadow-[0_0_5px_rgba(255,0,0,0.5)]":t.hasError}),children:[Te("div",{className:"flex-1 flex items-stretch justify-stretch overflow-hidden",children:Te(ke,{value:t.label,maxLength:60,className:H({"py-10 px-8":_||b}),onChange:E,onInput:y,onInvalidFirstCharacter:w})}),A&&Te("div",{className:H("absolute flex items-center p-1",h?"bottom-0 left-1/2 -translate-x-1/2":"top-0 left-0"),children:Te(A,{size:16,className:H(t.hasError?"text-red-500":"text-grey-500",h&&"cursor-pointer"),onClick:h?M:void 0})}),R&&Te("div",{className:"absolute bottom-0 left-0 w-full flex items-center justify-center",children:Te("div",{className:H("flex items-center w-16 p-1",h?"justify-between":"justify-center"),children:Te(R,{size:16,className:H(t.hasError?"text-red-500":"text-grey-500")})})}),C&&Te("div",{className:"absolute top-0 right-0 flex items-center p-1",children:Te(C,{})}),Te(Fe,{nodeId:e,nodeType:"TASK",nodeVariant:t.variant}),u==="edit"&&Te(it,{nodeId:e,isVisible:!n&&o,minWidth:_o.MIN_WIDTH,minHeight:_o.MIN_HEIGHT}),(!c||x)&&Tn(Jr,{children:[Te(te,{type:"target",position:Xt.Left,id:"left",className:H({"task-handle":x})}),Te(te,{type:"target",position:Xt.Right,id:"right",className:H({"task-handle":x})}),Te(te,{type:"target",position:Xt.Top,id:"top",className:H({"task-handle":x})}),Te(te,{type:"target",position:Xt.Bottom,id:"bottom",className:H({"task-handle":x})})]}),!c&&Tn(Jr,{children:[Te(He,{type:"source",position:Xt.Left,id:"left",nodeId:e,nodeType:"TASK"}),Te(He,{type:"source",position:Xt.Right,id:"right",nodeId:e,nodeType:"TASK"}),Te(He,{type:"source",position:Xt.Top,id:"top",nodeId:e,nodeType:"TASK"}),Te(He,{type:"source",position:Xt.Bottom,id:"bottom",nodeId:e,nodeType:"TASK"})]})]})};import{Position as Nd}from"@xyflow/react";import{Fragment as Py,jsx as Qr,jsxs as Ly}from"react/jsx-runtime";var Td=({id:e,data:t})=>Ly(Py,{children:[Qr("div",{className:"relative w-full h-full min-w-32 min-h-16 flex items-center justify-center bg-white border-2 border-red-400 rounded-sm overflow-hidden",children:t.label}),Qr(Fe,{nodeId:e,nodeType:"UNSUPPORTED"}),Qr(te,{type:"source",position:Nd.Right}),Qr(te,{type:"target",position:Nd.Left})]});import{BaseEdge as ky,EdgeLabelRenderer as Ry,getSmoothStepPath as Dy,MarkerType as Oy,useInternalNode as vd,useReactFlow as Vy,useViewport as Hy,Position as Bo}from"@xyflow/react";import{useState as Gy,useMemo as By}from"react";import{Fragment as wd,jsx as Xe,jsxs as co}from"react/jsx-runtime";var cP={type:"MESSAGE_EDGE",reconnectable:!0,markerEnd:{type:Oy.Arrow},data:{label:""}},Id=({id:e,source:t,target:o,data:n,selected:r,sourcePosition:i,targetPosition:a,sourceHandleId:s,targetHandleId:l})=>{var L;let{zoom:c}=Hy(),{updateEdgeData:d}=Vy(),{isMultipleSelection:u,mode:m,instanceId:p}=q(),g=m!=="edit",[x,f]=Gy(!1),{reconnectingHandle:h,cursorPosition:_,hoveredNodeId:b,reconnectingSide:T,isValidReconnection:E,handleReconnectStart:y}=Wr({edgeId:e,source:t,target:o,instanceId:p,isReadOnly:g}),w=vd(t),C=vd(o),{sx:A,sy:R,tx:G,ty:M,sourcePos:P,targetPos:X}=By(()=>{var ne,ae;if(!w||!C)return{sx:0,sy:0,tx:0,ty:0,sourcePos:Bo.Left,targetPos:Bo.Right};let k=bo(w,C),O=s?i:k.sourcePos,B=l?a:k.targetPos,ee=(U,xe,W)=>{var ue,ye,ve,Oe,Ge,$e;let{x:j,y:ce}=U.internals.positionAbsolute,re=(ve=(ye=(ue=U.measured)==null?void 0:ue.width)!=null?ye:U.width)!=null?ve:0,fe=($e=(Ge=(Oe=U.measured)==null?void 0:Oe.height)!=null?Ge:U.height)!=null?$e:0;switch(xe){case Bo.Top:return{x:j+re*W,y:ce};case Bo.Bottom:return{x:j+re*W,y:ce+fe};case Bo.Left:return{x:j,y:ce+fe*W};case Bo.Right:return{x:j+re,y:ce+fe*W};default:return{x:j+re/2,y:ce+fe/2}}},oe=(ne=n==null?void 0:n.sourceOffset)!=null?ne:.5,K=(ae=n==null?void 0:n.targetOffset)!=null?ae:.5,J=w?ee(w,O,oe).x:k.sx,Q=w?ee(w,O,oe).y:k.sy,se=C?ee(C,B,K).x:k.tx,F=C?ee(C,B,K).y:k.ty;return h==="source"&&_?(J=_.x,Q=_.y,T&&(O=T)):h==="target"&&_&&(se=_.x,F=_.y,T&&(B=T)),{sx:J,sy:Q,tx:se,ty:F,sourcePos:O,targetPos:B}},[w,C,s,l,i,a,h,_,T,n==null?void 0:n.sourceOffset,n==null?void 0:n.targetOffset]);if(!w||!C)return null;let[$,Z,Y]=Dy({sourceX:A,sourceY:R,targetX:G,targetY:M,sourcePosition:P,targetPosition:X}),S=r||(w==null?void 0:w.selected)||(C==null?void 0:C.selected),V=S?"sequence-edge-marker-highlighted":"sequence-edge-marker",D=x||(n==null?void 0:n.label.trim().length)>0,I=()=>{f(!1)},z=k=>{d(e,{label:k.trim()})};return Xe(wd,{children:co("g",{className:H("group bpmn-arrow-edge",{"is-highlighted":S}),onDoubleClick:()=>!g&&f(!0),children:[Xe("path",{d:$,fill:"none",stroke:"transparent",strokeWidth:Math.max(12,12/c),style:{pointerEvents:"stroke",cursor:"pointer"}}),co("g",{className:H("text-grey-500 transition-colors duration-75 group-hover:text-grey-800",{"text-blue-500 group-hover:text-blue-600":S}),children:[Xe(ky,{id:e,path:$,interactionWidth:0,markerEnd:`url(#${V})`,strokeDasharray:4,className:H("stroke-2 stroke-current transition-[stroke,filter] duration-75 group-hover:drop-shadow-[0_0_3px_rgba(0,0,0,0.2)]",{"stroke-red-500 hover:stroke-red-600":(n==null?void 0:n.hasError)||h&&b&&!E,"stroke-green-500":h&&b&&E,"stroke-blue-500 hover:stroke-blue-600 drop-shadow-[0_0_3px_rgba(59,130,246,0.5)]":S&&!(n!=null&&n.hasError)&&!h})}),co(Ry,{children:[co("div",{className:"absolute z-[3000] pointer-events-auto flex flex-col items-center gap-1",style:{transform:`translate(-50%, -50%) translate(${Z}px, ${Y}px)`},children:[r&&!u&&Xe(So,{sx:A,sy:R,tx:G,ty:M,hasLabel:!!((L=n==null?void 0:n.label)!=null&&L.trim()),children:Xe(Co,{edgeId:e,edgeType:"MESSAGE_EDGE"})}),D&&Xe(ke,{value:n==null?void 0:n.label,className:"min-w-8 max-w-56 bg-white rounded-md px-2 py-1 text-xs",isEditing:x,onBlur:I,onChange:z})]}),r&&!u&&!g&&co(wd,{children:[Xe("div",{className:"absolute z-[1000] pointer-events-none",style:{transform:`translate(-50%, -50%) translate(${A}px, ${R}px)`},children:co("svg",{width:12/c,height:12/c,style:{overflow:"visible",position:"absolute",left:"50%",top:"50%",transform:"translate(-50%, -50%)"},children:[Xe("circle",{cx:6/c,cy:6/c,r:4/c,fill:h==="source"?"#3b82f6":"#fff",stroke:"#3b82f6",strokeWidth:2/c,className:"pointer-events-none"}),Xe("circle",{cx:6/c,cy:6/c,r:6/c,fill:"none",stroke:"#3b82f6",strokeWidth:1/c,opacity:h==="source"?.6:.3,className:"pointer-events-none"}),Xe("circle",{cx:6/c,cy:6/c,r:8/c,fill:"transparent",className:H("pointer-events-auto",{"cursor-move":!h||h!=="source","cursor-not-allowed":h==="source"&&b&&!E,"cursor-grabbing":h==="source"&&(!b||E)}),onMouseDown:k=>y("source",k.nativeEvent)})]})}),Xe("div",{className:"absolute z-[1000] pointer-events-none",style:{transform:`translate(-50%, -50%) translate(${G}px, ${M}px)`},children:co("svg",{width:12/c,height:12/c,style:{overflow:"visible",position:"absolute",left:"50%",top:"50%",transform:"translate(-50%, -50%)"},children:[Xe("circle",{cx:6/c,cy:6/c,r:4/c,fill:h==="target"?"#3b82f6":"#fff",stroke:"#3b82f6",strokeWidth:2/c,className:"pointer-events-none"}),Xe("circle",{cx:6/c,cy:6/c,r:6/c,fill:"none",stroke:"#3b82f6",strokeWidth:1/c,opacity:h==="target"?.6:.3,className:"pointer-events-none"}),Xe("circle",{cx:6/c,cy:6/c,r:8/c,fill:"transparent",className:H("pointer-events-auto",{"cursor-move":!h||h!=="target","cursor-not-allowed":h==="target"&&b&&!E,"cursor-grabbing":h==="target"&&(!b||E)}),onMouseDown:k=>y("target",k.nativeEvent)})]})})]})]})]})]})})};import{getStraightPath as zy,Position as jr}from"@xyflow/react";import{jsx as Ad,jsxs as Yy}from"react/jsx-runtime";var Cd=({toX:e,toY:t,fromNode:o})=>{var u,m;if(!o)return null;let{internals:{positionAbsolute:{x:n,y:r}},measured:i}=o,a=(u=i.width)!=null?u:0,s=(m=i.height)!=null?m:0,c=[{x:n,y:r+s/2,pos:jr.Left},{x:n+a,y:r+s/2,pos:jr.Right},{x:n+a/2,y:r,pos:jr.Top},{x:n+a/2,y:r+s,pos:jr.Bottom}].reduce((p,g)=>{let x=Math.hypot(e-p.x,t-p.y);return Math.hypot(e-g.x,t-g.y)<x?g:p}),[d]=zy({sourceX:c.x,sourceY:c.y,targetX:e,targetY:t});return Yy("g",{className:"group",children:[Ad("path",{fill:"none",className:"stroke-2 stroke-grey-500 animated transition-[stroke,filter] duration-75",d}),Ad("circle",{cx:e,cy:t,fill:"none",r:4,className:"stroke-2 stroke-grey-600"})]})};import{Position as Ut,useConnection as Wy,useReactFlow as Fy}from"@xyflow/react";import{orderBy as Xy}from"lodash";import{useMemo as Sd,useState as Uy}from"react";import{Fragment as hs,jsx as Ue,jsxs as ei}from"react/jsx-runtime";var Md=({id:e,data:t,selected:o,dragging:n,parentId:r})=>{let{updateNodeData:i,getNodes:a}=Fy(),{mode:s}=q(),{inProgress:l,fromNode:c}=Wy(),d=l&&(c==null?void 0:c.id)!==e,[u,m]=Uy(!1),p=a(),g=!r,x=Sd(()=>Xy([...p.filter(E=>E.parentId===e&&E.type==="LANE")],"position.y","asc"),[p,e]),f=g?Js.MIN_WIDTH:ie.MIN_WIDTH,h=Sd(()=>{if(g&&x.length>1){let E=[...x];return E.pop(),E.reduce((w,C)=>{var A,R;return w+((R=(A=C.measured)==null?void 0:A.height)!=null?R:0)},0)+ie.MIN_HEIGHT}return ie.MIN_HEIGHT},[g,x]),_=E=>{i(e,{label:E})},b=()=>{m(!0)},T=()=>{m(!1)};return ei(hs,{children:[ei("div",{className:H("flex h-full min-h-64 w-full min-w-[50rem] hover:shadow-md bg-white outline outline-1 outline-grey-300",{"outline-offset-2 outline-blue-500 shadow-sm":o}),children:[Ue("div",{className:"flex align-items justify-center w-10 border-r border-grey-300",onDoubleClick:b,children:Ue("div",{className:"relative flex-1 [writing-mode:vertical-rl] [text-orientation:sideways] transform rotate-180",children:Ue(ke,{value:t.label,className:"w-full h-full self-auto",contentClassName:H({"whitespace-nowrap":u}),isEditing:u,onBlur:T,onChange:_})})}),Ue("div",{className:"flex-1"})]}),Ue(Fe,{nodeId:e,nodeType:"LANE",isChild:!g}),s==="edit"&&Ue(it,{nodeId:e,isVisible:!n&&o,minWidth:f,minHeight:h,offset:10}),!l&&ei(hs,{children:[Ue(te,{type:"source",position:Ut.Left,id:"left"}),Ue(te,{type:"source",position:Ut.Right,id:"right"}),Ue(te,{type:"source",position:Ut.Top,id:"top"}),Ue(te,{type:"source",position:Ut.Bottom,id:"bottom"})]}),(!l||d)&&ei(hs,{children:[Ue(te,{type:"target",position:Ut.Left,id:"left",className:H({"annotation-handle":d})}),Ue(te,{type:"target",position:Ut.Right,id:"right",className:H({"annotation-handle":d})}),Ue(te,{type:"target",position:Ut.Top,id:"top",className:H({"annotation-handle":d})}),Ue(te,{type:"target",position:Ut.Bottom,id:"bottom",className:H({"annotation-handle":d})})]})]})};var Pd={START_EVENT:md,END_EVENT:dd,TASK:_d,GATEWAY:pd,ANNOTATION:ld,LANE:Md,UNSUPPORTED:Td},Ld={SEQUENCE_EDGE:Sc,MESSAGE_EDGE:Id,ANNOTATION_EDGE:fc},kd="#fafafa",Rd="#bebebe",Dd=1,Od=10,Vd="bottom-left",ys=.05,Hd=5,zo=.5,Yo=ys,Wo=1,Gd={x:0,y:0,zoom:.75},Bd=1,zd=2,$y={[Bd]:4,[zd]:2},vn=[Bd,zd],xs=vn.reduce((e,t)=>e|$y[t],0);import{useReactFlow as Ky}from"@xyflow/react";var st=()=>{let{getEdges:e,getNodes:t}=Ky(),{lastElementId:o}=q(),n=()=>{let i=t(),a=e(),s=Kc(i,a);return Math.max(s,o)};return{getLastId:n,getNextId:()=>n()+1}};var Fo=()=>{let{getNodes:e,getEdges:t,setNodes:o,setEdges:n,setViewport:r}=Zy(),{getLastId:i}=st(),a=Jy(),{setLastElementId:s}=q(),l=Yd(async(d="")=>{let{nodes:u,edges:m,lastElementId:p}=await Zc(d),{width:g,height:x}=a.getState();if(g>0&&x>0){let f=na(u);f&&r(qy(f,g,x,Yo,Wo,zo))}o(u),n(m),s(p)},[o,n,s,a,r]),c=Yd(()=>{let d=e(),u=t(),m=i();return qc(d,u,m)},[e,t,i]);return{importFromMxGraph:l,exportToMxGraph:c}};import{useCallback as Wd}from"react";var jy=500,ti=()=>{let{isInitialized:e,onElementChanges:t}=q(),{exportToMxGraph:o}=Fo(),n=Qy(()=>{if(!e)return;let a=o();t==null||t(a)},jy),r=Wd(a=>{a.every(c=>c.type==="select")||a.some(c=>c.type==="position"&&c.dragging)||n()},[n]),i=Wd(a=>{a.some(l=>l.type==="select")||n()},[n]);return{emitElementChanges:n,handleNodeChanges:r,handleEdgeChanges:i}};var Fd=({setEdges:e,saveHistory:t})=>{let{getNode:o,getEdges:n,getNodes:r,getInternalNode:i}=t0(),{emitElementChanges:a}=ti(),s=o0(null),{getNextId:l}=st(),c=uo(f=>{var E;let h=o(f.source),_=o(f.target);if(!h||!_)return!1;let b={sourceNodeId:h.id,targetNodeId:_.id,sourceNodeType:h.type,targetNodeType:_.type,nodes:r(),edges:n(),reconnectingEdgeId:(E=s.current)!=null?E:void 0};return Ji(b).isValid},[o,n,r]),d=uo(f=>{var b,T;let h=l(),_=i(f.source);if(_){let E=i(f.target),y=E?E.internals.positionAbsolute.x+((b=E.measured.width)!=null?b:0)/2:0,w=E?E.internals.positionAbsolute.y+((T=E.measured.height)!=null?T:0)/2:0,C=Mc(_,y,w),A=(E==null?void 0:E.type)==="ANNOTATION"||(_==null?void 0:_.type)==="ANNOTATION",R=A?Mo:rt,G;if(!A&&E&&f.targetHandle){let X=Xr(C),$=Xr(f.targetHandle),{x:Z,y:Y}=os(_,C),{x:S,y:V}=os(E,f.targetHandle),I=zr(Z,Y,S,V,X,$).slice(1,-1);I.length>0&&(G=I)}let M=v(N(N({},f),R),{id:String(h),sourceHandle:C,data:N(N({},A?{}:rt.data),G?{points:G}:{})}),P=n().concat(M);e(P),t("forceSave",{nodes:r(),edges:P}),a()}},[l,e,a,i,n,r,t]),u=uo((f,h)=>{s.current=h.id},[]),m=uo(()=>{s.current=null},[]),p=uo((f,h)=>{let _=o(h.source),b=o(h.target);if(!_||!b){s.current=null;return}let T={sourceNodeId:_.id,targetNodeId:b.id,sourceNodeType:_.type,targetNodeType:b.type,nodes:r(),edges:n(),reconnectingEdgeId:f.id};if(!Ji(T).isValid){s.current=null;return}let y=e0(f,h,n()).map(w=>w.id===f.id?v(N({},w),{data:v(N({},w.data),{points:void 0})}):w);e(y),t("forceSave",{nodes:r(),edges:y}),s.current=null,a()},[o,r,n,e,a,t]),g=uo(f=>{s.current=f},[]),x=uo(()=>{s.current=null},[]);return{isValidConnection:c,onConnect:d,onReconnect:p,onReconnectStart:u,onReconnectEnd:m,setReconnectingEdge:g,clearReconnectingEdge:x}};import{useTranslation as n0}from"@produto-lecom/lecom-ui";import{useReactFlow as r0}from"@xyflow/react";import{useCallback as Cn,useRef as jd,useState as i0}from"react";var wn=(e=[])=>e.filter(t=>t.type==="START_EVENT"),po=(e=[])=>e.filter(t=>t.type==="END_EVENT"),$t=(e=[])=>e.filter(t=>t.type==="TASK")||[],Xd=(e=[])=>e.filter(t=>{var o;return t.type==="TASK"&&((o=t.properties)==null?void 0:o.variant)==="SCRIPT"});var oi=(e=[])=>e.filter(t=>t.type==="GATEWAY"),Ud=(e=[])=>e.filter(t=>{var o;return t.type==="GATEWAY"&&((o=t.properties)==null?void 0:o.variant)==="EXCLUSIVE"}),je=(e,t=[])=>t.filter(o=>o.source===e),In=(e,t=[])=>t.filter(o=>o.target===e),$d=(e,t)=>{var n,r;let o=(n=t.nodes)==null?void 0:n.find(i=>i.id===e);return((r=o==null?void 0:o.properties)==null?void 0:r.attribute)==="LOOP"},Kd=(e,t)=>{let o=je(e,t.edges||[]);for(let n of o){let r=(t.nodes||[]).find(i=>i.id===n.target);if(r&&r.type==="END_EVENT")return!0}return!1},qd=e=>e?/[^\s]/.test(e.trim()):!1,Ee=e=>{let{isValid:t,nodeIds:o,edgeIds:n}=e;return{isValid:t,nodeIds:!t&&o&&o.length>0?o:[],edgeIds:!t&&n&&n.length>0?n:[]}},At=(e=[],t)=>{if(!e||e.length===0)return{isValid:!0,invalidIds:[]};let o=e.filter(n=>!t(n));return{isValid:o.length===0,invalidIds:o.map(n=>n.id)}},Zd=(e=[],t=[])=>({nodes:e.map(o=>{var n;return{id:o.id,type:o.type||"",label:typeof((n=o.data)==null?void 0:n.label)=="string"?o.data.label:void 0,properties:o.data}}),edges:t.map(o=>({id:o.id,source:o.source,target:o.target,type:o.type||"default"}))});var An=[{id:"start_event_not_found",validate:e=>{let t=wn(e.nodes);return Ee({isValid:t.length>=1})}},{id:"end_event_not_found",validate:e=>{let t=po(e.nodes);return Ee({isValid:t.length>=1})}},{id:"multiple_start_event_not_allowed",validate:e=>{let t=wn(e.nodes),o=t.length===1;if(t.length===0)return Ee({isValid:!0});if(!o)return Ee({isValid:!1,nodeIds:t.map(i=>i.id)});let n=je(t[0].id,e.edges);if(!(n.length<=1)){let i=[...t.map(a=>a.id),...n.map(a=>a.target)];return Ee({isValid:!1,nodeIds:[...new Set(i)]})}return Ee({isValid:!0})}},{id:"task_flows_limit_exceeds",validate:e=>{let t=$t(e.nodes),o=At(t,n=>je(n.id,e.edges).length<=2);return Ee({isValid:o.isValid,nodeIds:o.invalidIds})}},{id:"task_label_empty",highlightRelatedEdges:!1,validate:e=>{let t=$t(e.nodes),o=At(t,n=>!!n.label&&n.label.trim()!=="");return Ee({isValid:o.isValid,nodeIds:o.invalidIds})}},{id:"task_label_length",highlightRelatedEdges:!1,validate:e=>{let o=$t(e.nodes),n=At(o,r=>!r.label||r.label.length<=60);return Ee({isValid:n.isValid,nodeIds:n.invalidIds})}},{id:"duplicate_task_name",highlightRelatedEdges:!1,validate:e=>{let t=$t(e.nodes),o=new Map;for(let r of t){if(!r.label)continue;let i=r.label.trim();i&&(o.has(i)||o.set(i,[]),o.get(i).push(r))}let n=[];for(let[,r]of o.entries())r.length>1&&r.forEach(i=>n.push(i.id));return Ee({isValid:n.length===0,nodeIds:n})}},{id:"nested_gateway",validate:e=>{let t=oi(e.nodes),o=[],n=[];for(let r of t){let i=je(r.id,e.edges);for(let a of i){let s=e.nodes.find(l=>l.id===a.target);s&&s.type==="GATEWAY"&&(o.push(r.id,s.id),n.push(a.id))}}return Ee({isValid:o.length===0,nodeIds:o.length>0?[...new Set(o)]:[],edgeIds:n})}},{id:"events_nested",validate:e=>{let t=[...wn(e.nodes),...po(e.nodes)],o=[],n=[];for(let r of t){let i=je(r.id,e.edges);for(let a of i){let s=e.nodes.find(l=>l.id===a.target);s&&(s.type==="START_EVENT"||s.type==="END_EVENT")&&(o.push(r.id,s.id),n.push(a.id))}}return Ee({isValid:o.length===0,nodeIds:o.length>0?[...new Set(o)]:[],edgeIds:n})}},{id:"flows_on_end_tasks_not_allowed",validate:e=>{let t=po(e.nodes),o=[],n=[];for(let r of t){let i=In(r.id,e.edges);for(let a of i){let s=e.nodes.find(l=>l.id===a.source);if(s&&s.type==="TASK"){let l=je(s.id,e.edges);l.length>1&&(o.push(s.id),l.forEach(c=>n.push(c.id)))}}}return Ee({isValid:o.length===0,nodeIds:o,edgeIds:n})}},{id:"conditions_flows_limit_exceeds",validate:e=>{let t=Ud(e.nodes),o=At(t,r=>je(r.id,e.edges).length<=2),n=o.invalidIds.flatMap(r=>je(r,e.edges).map(i=>i.id));return Ee({isValid:o.isValid,nodeIds:o.invalidIds,edgeIds:n})}},{id:"activity_name_invalid",validate:e=>{let t=$t(e.nodes),o=At(t,n=>!n.label||qd(n.label));return Ee({isValid:o.isValid,nodeIds:o.invalidIds})}},{id:"final_activity_has_loop",validate:e=>{var a,s;if(!((a=e==null?void 0:e.nodes)!=null&&a.length)||!((s=e==null?void 0:e.edges)!=null&&s.length))return Ee({isValid:!0});let t=po(e.nodes)[0];if(!t)return Ee({isValid:!0});let o=In(t.id,e.edges);if(!o.length)return Ee({isValid:!0});let r=$t(e.nodes).filter(l=>o.some(c=>c.source===l.id)),i=At(r,l=>!$d(l.id,e));return Ee({isValid:i.isValid,nodeIds:i.isValid?[]:[t.id,...i.invalidIds]})}},{id:"concurrent_initial_and_final_event",validate:e=>{let t=$t(e.nodes),o=po(e.nodes)[0];if(!o)return Ee({isValid:!0});let n=t.filter(l=>{let c=In(l.id,e.edges),d=je(l.id,e.edges),u=c.some(p=>{var g;return((g=e.nodes.find(x=>x.id===p.source))==null?void 0:g.type)==="START_EVENT"}),m=d.some(p=>{var g;return((g=e.nodes.find(x=>x.id===p.target))==null?void 0:g.type)==="END_EVENT"});return u&&m}),r=In(o.id,e.edges),i=r.length>1,a=r.map(l=>l.source),s={isValid:n.length===0&&!i,nodeIds:[...n.map(l=>l.id),...i?a:[]]};return Ee(s)}},{id:"gateway_flow_to_event",validate:e=>{let t=oi(e.nodes),o=[],n=[];for(let r of t){let i=je(r.id,e.edges);for(let a of i){let s=e.nodes.find(l=>l.id===a.target);s&&s.type==="END_EVENT"&&(o.push(r.id,s.id),n.push(a.id))}}return Ee({isValid:o.length===0,nodeIds:o.length>0?[...new Set(o)]:[],edgeIds:n})}},{id:"gateway_missing_output_streams",validate:e=>{let t=oi(e.nodes),o=At(t,n=>je(n.id,e.edges).length>=1);return Ee({isValid:o.isValid,nodeIds:o.invalidIds})}},{id:"event_to_condition",validate:e=>{let t=[...wn(e.nodes),...po(e.nodes)],o=[],n=[];for(let r of t){let i=je(r.id,e.edges);for(let a of i){let s=e.nodes.find(l=>l.id===a.target);s&&s.type==="GATEWAY"&&(o.push(r.id,s.id),n.push(a.id))}}return Ee({isValid:o.length===0,nodeIds:o.length>0?[...new Set(o)]:[],edgeIds:n})}},{id:"script_in_final_activity",validate:e=>{let t=Xd(e.nodes),o=At(t,n=>!Kd(n.id,e));return Ee({isValid:o.isValid,nodeIds:o.invalidIds})}}];var Jd=e=>{e=e||{nodes:[],edges:[]},e.nodes=e.nodes||[],e.edges=e.edges||[];let t=[];for(let n of An){let r=n.validate(e);r.isValid||t.push({id:n.id,message:n.id,nodeIds:r.nodeIds||[],edgeIds:r.edgeIds||[]})}return{isValid:t.length===0,errors:t}},Qd=async(e,t)=>{let o=[];try{let n=await e(),r=n==null?void 0:n.filter(i=>i.area==="DIAGRAM");return r.length===0?{isValid:!0,errors:[]}:(r.forEach(i=>{var s,l;let a=(l=(s=i==null?void 0:i.detail)==null?void 0:s.phases)==null?void 0:l.map(c=>c.diagramCellId);o.push({id:i.code,message:i.code,nodeIds:a,edgeIds:[]})}),{isValid:!1,errors:o})}catch(n){return{isValid:!1,errors:[{id:"cannot_validate_subprocess_reference",message:"cannot_validate_subprocess_reference",nodeIds:t.map(r=>r.id)||[],edgeIds:[]}]}}};import{jsx as ni,jsxs as s0}from"react/jsx-runtime";var eu=()=>{let{t:e}=n0(),{toast:t}=We(),{setNodes:o,setEdges:n,getNodes:r,getEdges:i}=r0(),{validateCustomDiagram:a}=q(),[s,l]=i0(!1),c=jd(!1),d=jd(!1),u=Cn(async f=>{let h=Zd(f.nodes,f.edges),_=Jd(h),b=f.nodes.filter(({type:E,data:y})=>E==="TASK"&&(y==null?void 0:y.variant)==="SUBPROCESS");if(a&&b.length>0){let E=await Qd(a,b);_={isValid:_.isValid&&E.isValid,errors:[..._.errors,...E.errors]}}let T=_.errors.map(E=>v(N({},E),{message:e(`validation.errors.${E.id}`)}));return s||l(!0),{isValid:_.isValid,errors:T}},[s,e]),m=Cn((f,h=!0)=>{if(h&&f&&t({variant:f.isValid?"success":"error",duration:5e3,title:f.isValid?e("validation.success.title"):e("validation.errors.title"),content:s0("div",{className:"flex flex-col gap-1",children:[!f.isValid&&ni("span",{className:"body-small-500",children:e("validation.errors.subtitle")}),ni("ul",{className:"list-disc list-inside max-h-40 overflow-y-auto",children:f.isValid?ni("li",{children:e("validation.success.message")}):f.errors.map(M=>ni("li",{className:"text-xs",children:M.message},M.id))})]})}),!f)return;c.current=!0,d.current=!0;let _=[],b=[];f.errors.forEach(M=>{M.nodeIds&&M.nodeIds.length>0&&M.nodeIds.forEach(P=>_.push(P)),M.edgeIds&&M.edgeIds.length>0&&M.edgeIds.forEach(P=>b.push(P))});let T=[...new Set(_)];o(M=>M.map(P=>v(N({},P),{data:v(N({},P.data),{hasError:!1})}))),n(M=>M.map(P=>v(N({},P),{data:v(N({},P.data),{hasError:!1})})));let E=r(),y=i(),w=new Set(T),C=new Set;f.errors.forEach(M=>{var $,Z;let P=An.find(Y=>Y.id===M.id);(P==null?void 0:P.highlightRelatedEdges)!==!1&&(($=M.edgeIds)==null||$.forEach(Y=>C.add(Y)),(Z=M.nodeIds)==null||Z.forEach(Y=>{y.forEach(S=>{(S.source===Y||S.target===Y)&&C.add(S.id)})}))});let A=new Set,R=new Set,G=new Set;E.forEach(M=>{M.type==="START_EVENT"?A.add(M.id):M.type==="END_EVENT"&&R.add(M.id)}),y.forEach(M=>{A.has(M.source)&&G.add(M.target),R.has(M.target)&&G.add(M.source)}),G.forEach(M=>{var P,X;if(w.has(M)){let $=(P=f.errors.find(Y=>{var S;return(S=Y.nodeIds)==null?void 0:S.includes(M)}))==null?void 0:P.id;((X=An.find(Y=>Y.id===$))==null?void 0:X.highlightRelatedEdges)!==!1&&y.forEach(Y=>{Y.source===M&&R.has(Y.target)&&(w.add(Y.target),C.add(Y.id)),Y.target===M&&A.has(Y.source)&&(w.add(Y.source),C.add(Y.id))})}}),w.size>0&&o(M=>M.map(P=>v(N({},P),{data:v(N({},P.data),{hasError:w.has(P.id)})}))),C.size>0&&n(M=>M.map(P=>v(N({},P),{data:v(N({},P.data),{hasError:C.has(P.id)})}))),setTimeout(()=>{c.current=!1},0)},[e,i,r,n,o,t]),p=Cn(()=>{l(!1),d.current=!1,o(f=>f.map(h=>v(N({},h),{data:v(N({},h.data),{hasError:!1})}))),n(f=>f.map(h=>v(N({},h),{data:v(N({},h.data),{hasError:!1})})))},[n,o]),g=Cn(()=>{d.current&&(c.current=!0,d.current=!1,o(f=>f.map(h=>v(N({},h),{data:v(N({},h.data),{hasError:!1})}))),n(f=>f.map(h=>v(N({},h),{data:v(N({},h.data),{hasError:!1})}))),setTimeout(()=>{c.current=!1},0))},[n,o]),x=Cn(()=>c.current,[]);return{validateDiagram:u,handleValidationComplete:m,clearValidation:p,dismissValidationPanel:g,isAutoValidationEnabled:s,getIsClearingValidation:x}};import{useReactFlow as a0}from"@xyflow/react";import{useTranslation as l0}from"@produto-lecom/lecom-ui";import{useEffect as c0}from"react";var d0=15,tu="bpmn:selection",u0=e=>{if(!e||!(e instanceof HTMLElement))return!1;let t=e.tagName.toLowerCase(),o=t==="input"||t==="textarea",n=e.isContentEditable,r=t==="select",i=e.closest('[contenteditable="true"], input, textarea, select')!==null;return o||n||r||i},ou=e=>{if(!u0(e.target))return!0;let t=window.getSelection(),o=t&&t.toString().length>0;if(e.target instanceof HTMLInputElement||e.target instanceof HTMLTextAreaElement){let n=e.target;return n.selectionStart===n.selectionEnd&&!o}return!o},nu=({offset:e=d0,saveHistory:t})=>{let{t:o}=l0(),{getNodes:n,setNodes:r,getEdges:i,setEdges:a}=a0(),{getNextId:s}=st();c0(()=>{let l=d=>{var h,_;if(!ou(d))return;let u=n(),m=i(),p=u.filter(b=>b.selected);if(!p.length)return;d.preventDefault(),d.stopPropagation();let g=m.filter(b=>p.some(T=>T.id===b.source)&&p.some(T=>T.id===b.target)),f=JSON.stringify({nodes:p,edges:g});(h=d.clipboardData)==null||h.setData(tu,f),(_=d.clipboardData)==null||_.setData("text/plain",`BPMN Selection: ${p.length} nodes`)},c=d=>{var w,C;if(!ou(d))return;let u=(w=d.clipboardData)==null?void 0:w.getData(tu);if(!u)return;d.preventDefault(),d.stopPropagation();let m;try{m=JSON.parse(u)}catch(A){return}if(!((C=m.nodes)!=null&&C.length))return;let p=new Map,g=n(),x=[],f=m.nodes.filter(A=>Ot(A.type,g));if(f.length===0)return;let h=s(),_=f.map(A=>{var M;let R=String(h++);p.set(A.id,R);let G=v(N({},A),{id:R,selected:!0,position:{x:A.position.x+e,y:A.position.y+e}});if(A.type==="TASK"){let P=(M=A.data)==null?void 0:M.label,X=Go(P||o("bpmn.task.label.prefix"),[...g,...x]);G.data=v(N({},A.data),{label:X})}return x.push(G),G}),b=m.edges.map(A=>v(N({},A),{id:String(h++),selected:!0,source:p.get(A.source)||A.source,target:p.get(A.target)||A.target})),T=[...g.map(A=>v(N({},A),{selected:!1})),..._],y=[...i().map(A=>v(N({},A),{selected:!1})),...b];r(T),a(y),t("forceSave",{nodes:T,edges:y})};return document.addEventListener("copy",l,!0),document.addEventListener("paste",c,!0),()=>{document.removeEventListener("copy",l,!0),document.removeEventListener("paste",c,!0)}},[n,r,i,a,s,e,o,t])};import{useTranslation as p0}from"@produto-lecom/lecom-ui";import{useReactFlow as f0}from"@xyflow/react";import{useState as m0}from"react";var g0=50,ru=({nodes:e,setNodes:t,setEdges:o,saveHistory:n})=>{let{draggableNode:r,setDraggableNode:i}=Ho(),{t:a}=p0(),{getInternalNode:s,getNodes:l,getEdges:c,screenToFlowPosition:d}=f0(),{getNextId:u}=st(),{setIsDragging:m}=q(),{getInternalNodes:p}=$r(),{rebuildIndex:g,forceRebuildIndex:x}=Tr(),[f,h]=m0(null),_=(S,V,D)=>{var k;if(S.parentId!==V)return null;let I=D.filter(O=>O.id!==S.id&&O.parentId===V&&O.type==="LANE").sort((O,B)=>O.position.y-B.position.y);if(I.length===0)return null;let z=(k=D.find(O=>O.id===S.id))!=null?k:S,L=I.find(O=>z.position.y<O.position.y);return L?{draggedLaneId:S.id,beforeLaneId:L.id}:{draggedLaneId:S.id,afterLaneId:I[I.length-1].id}},b=(S,V=!1,D)=>{let I=V?"node-drop-target-error":"node-drop-target",z=V?"node-drop-target-lane-error":"node-drop-target-lane";t(L=>{var O;let k=(O=D==null?void 0:D(L))!=null?O:null;return L.map(B=>{let ee=[];return B.id===S&&ee.push(I),S!==void 0&&B.parentId===S&&B.type==="LANE"&&B.id!==(k==null?void 0:k.draggedLaneId)&&ee.push(z),B.id===(k==null?void 0:k.draggedLaneId)&&ee.push("lane-reorder-dragging"),B.id===(k==null?void 0:k.beforeLaneId)&&ee.push("lane-reorder-before"),B.id===(k==null?void 0:k.afterLaneId)&&ee.push("lane-reorder-after"),v(N({},B),{className:ee.join(" ")})})})},T=(S,V)=>{let D=p();if(S.type==="LANE"){if(V){b();return}let O=D.filter(oe=>oe.id!==S.id&&oe.type==="LANE"&&!oe.parentId),B=Zo(S,O);if(!B){b();return}if(Zt({parentId:B.id,nodes:e,excludeTypes:["LANE"]})){b(B.id,!0);return}b(B.id,!1,oe=>_(S,B.id,oe));return}let z=D.filter(O=>O.id!==S.id&&O.type==="LANE"),L=Zo(S,z);if(!L){b();return}if(Zt({parentId:L.id,nodes:e,includeTypes:["LANE"]})){b();return}b(L.id)},E=S=>{let V=s(S.id),D=S.type==="LANE"&&Zt({parentId:S.id,nodes:e,includeTypes:["LANE"]});T(V,D)},y=S=>S.map(V=>v(N({},V),{className:void 0})),w=S=>S.some(D=>D.dragging)?S.map(D=>D.dragging?v(N({},D),{dragging:!1}):D):S,C=(S,V)=>{let D=0;for(let I of V){if(I.id===S||I.parentId||I.type==="LANE")continue;let z=ot(I),L=z.y+z.h;D=Math.max(D,L)}return D+g0},A=(S,V)=>{if(!Pi(S,V))return V;let D=C(S,V);return V.map(I=>I.id===S?v(N({},I),{position:v(N({},I.position),{y:D})}):I)},R=S=>{if(S.preventDefault(),S.dataTransfer.dropEffect="move",!(r!=null&&r.type))return;let V=d({x:S.clientX,y:S.clientY}),D={id:"__sidebar_drag__",type:r.type,position:V,measured:{width:1,height:1},internals:{positionAbsolute:V}};T(D,!1)},G=S=>{let V=S.relatedTarget;(!V||!S.currentTarget.contains(V))&&b()},M=(S,V)=>{S.preventDefault(),E(V)},P=(S,V,D)=>{var ee,oe;let I=[...D],z=V.parentId?V.parentId:V.id;if(S.parentId===V.id)return I=ki(S,V,I),I=It(I),I=Jt(z,I),y(I);if(S.type==="LANE"){if(Zt({parentId:V.id,nodes:I,excludeTypes:["LANE"]})){let F=br(V),ne=50,ae=50;return I.map(U=>{var xe,W;return U.id===S.id?v(N({},U),{position:{x:(xe=f==null?void 0:f.x)!=null?xe:F.x+ne,y:(W=f==null?void 0:f.y)!=null?W:F.y2+ae}}):U})}let Q=I.filter(F=>F.parentId===V.id).reduce((F,ne)=>{var ae,U;return F+((U=(ae=ne.measured)==null?void 0:ae.height)!=null?U:0)},0),se={x:ie.HEADER_WIDTH,y:Q};return I=I.map(F=>F.id===S.id?v(N({},F),{parentId:V.id,position:se,className:void 0}):v(N({},F),{className:void 0})),I=It(I),I=A(z,I),I}if(Zt({parentId:V.id,nodes:I,includeTypes:["LANE"]})){let K;if(S.parentId){let J=s(S.parentId),{x:Q,y:se}=ot(J);K={x:Q+((ee=S.position.x)!=null?ee:0),y:se+((oe=S.position.y)!=null?oe:0)}}return I=I.map(J=>J.id===S.id?v(N({},J),{position:K!=null?K:J.position,parentId:void 0,className:void 0}):v(N({},J),{className:void 0})),I=Jt(z,I),I}let O=ea(S,V);I=I.map(K=>K.id===S.id?v(N({},K),{parentId:V.id,position:O,className:void 0}):v(N({},K),{className:void 0}));let B=I.find(K=>K.id===S.id);return I=ki(B,V,I),I=It(I),I=Jt(z,I),I},X=S=>{if(S.preventDefault(),!(r!=null&&r.type))return;if(!Ot(r.type,l())){m(!1),i(null);return}let V=d({x:S.clientX,y:S.clientY}),D={width:pe[r.type].MIN_WIDTH,height:pe[r.type].MIN_HEIGHT},I=u(),z={id:String(I),type:r.type,position:V,measured:D,data:{label:r.type==="TASK"?qr(e,a("bpmn.task.label.prefix")):"",variant:r.variant,attribute:r.attribute},selected:!0},L=v(N({},z),{internals:{positionAbsolute:V}}),k=v(N({},L),{measured:{width:1,height:1}}),O=p(),B=r.type==="LANE",ee=O.filter(F=>B?F.type==="LANE"&&!F.parentId:F.type==="LANE"),oe=Zo(k,ee),K=[...O.map(F=>v(N({},F),{selected:!1})),L];oe&&(K=P(L,oe,K)),K=qt(K),B&&!oe&&(K=A(L.id,K)),K=y(K),t(K),x();let J=S.dataTransfer.getData("sourceId"),Q=c(),se=Q;if(J){let F={id:String(I+1),source:J,target:z.id},ne=r.type==="ANNOTATION"?N(N({},F),Mo):N(N({},F),rt);se=Q.concat(ne),o(se)}n("forceSave",{nodes:K,edges:se}),m(!1),i(null)},$=async(S,V,D)=>{let I=[...p()],z=new Set;D.forEach(O=>{let B=s(O.id),ee=O.type==="LANE",oe=I.filter(J=>J.id!==O.id&&(ee?J.type==="LANE"&&!J.parentId:J.type==="LANE")),K=Zo(B,oe);if(K){if(ee&&Zt({parentId:O.id,nodes:I,includeTypes:["LANE"]})){O.parentId&&(I=Y(O,I),z.add(O.id));return}I=P(B,K,I);return}O.parentId&&(I=Y(O,I),O.type==="LANE"&&z.add(O.id))}),I=w(I);let L=D.filter(O=>O.type==="LANE"&&!O.parentId).map(O=>O.id);for(let O of L)Pi(O,I)&&f&&(I=I.map(B=>B.id===O?v(N({},B),{position:N({},f)}):B));for(let O of z)I=A(O,I);if(D.some(O=>O.type!=="LANE"&&!O.parentId)){let O=I.filter(B=>B.type==="LANE"&&!B.parentId).map(B=>B.id);for(let B of O)I=Jt(B,I)}I=qt(I),I=y(I),t(I),g(I),h(null)},Z=(S,V)=>{h({x:V.position.x,y:V.position.y})},Y=(S,V)=>{var oe,K,J,Q,se,F,ne,ae;let D=s(S.parentId);if(!D)return V;let I=S.type==="LANE",z=V.filter(U=>U.parentId===D.id&&U.id!==S.id),L=z.filter(U=>U.type==="LANE"),k;if(I&&L.length===0)k=ie.MIN_HEIGHT;else if(I){let U=(K=(oe=S.measured)==null?void 0:oe.height)!=null?K:ie.MIN_HEIGHT;k=((Q=(J=D.measured)==null?void 0:J.height)!=null?Q:ie.MIN_HEIGHT)-U,k=Math.max(ie.MIN_HEIGHT,k)}else k=z.length>0?z.reduce((U,xe)=>{var W,j;return U+((j=(W=xe.measured)==null?void 0:W.height)!=null?j:0)},0)+Ne:Math.max(ie.MIN_HEIGHT,(F=(se=D.measured)==null?void 0:se.height)!=null?F:0);let{x:O,y:B}=ot(D),ee={x:O+((ne=S.position.x)!=null?ne:0),y:B+((ae=S.position.y)!=null?ae:0)};return V=V.map(U=>U.id===S.id?v(N({},U),{position:ee,parentId:void 0}):U.id===D.id?v(N({},U),{height:k,measured:v(N({},U.measured),{height:k})}):U),V=It(V),V};return{onDragOver:R,onDragLeave:G,onDrop:X,onNodeDrag:M,onNodeDragStart:Z,onNodeDragStop:$}};import{useReactFlow as h0}from"@xyflow/react";import{useTranslation as y0}from"@produto-lecom/lecom-ui";import{useEffect as x0}from"react";var E0=30,b0=e=>{if(!e||!(e instanceof HTMLElement))return!1;let t=e.tagName.toLowerCase(),o=t==="input"||t==="textarea",n=e.isContentEditable,r=t==="select",i=e.closest('[contenteditable="true"], input, textarea, select')!==null;return o||n||r||i},_0=e=>!b0(e.target),iu=({offset:e=E0,saveHistory:t})=>{let{t:o}=y0(),{getNodes:n,setNodes:r,getEdges:i,setEdges:a}=h0(),{getNextId:s}=st();x0(()=>{let l=c=>{if(c.ctrlKey&&c.key.toLowerCase()==="d"&&_0(c)){c.preventDefault(),c.stopPropagation();let d=n(),u=i(),m=d.filter(y=>y.selected);if(!m.length)return;let p=new Map,g=[],x=m.filter(y=>Ot(y.type,d));if(x.length===0)return;let f=u.filter(y=>x.some(w=>w.id===y.source)&&x.some(w=>w.id===y.target)),h=s(),_=x.map(y=>{var A;let w=String(h++);p.set(y.id,w);let C=v(N({},y),{id:w,selected:!0,position:{x:y.position.x+e,y:y.position.y+e}});if(y.type==="TASK"){let R=(A=y.data)==null?void 0:A.label,G=Go(R||o("bpmn.task.label.prefix"),[...d,...g]);C.data=v(N({},y.data),{label:G})}return g.push(C),C}),b=f.map(y=>v(N({},y),{id:String(h++),selected:!0,source:p.get(y.source)||y.source,target:p.get(y.target)||y.target})),T=[...d.map(y=>v(N({},y),{selected:!1})),..._],E=[...u.map(y=>v(N({},y),{selected:!1})),...b];r(T),a(E),t("forceSave",{nodes:T,edges:E})}};return document.addEventListener("keydown",l,!0),()=>{document.removeEventListener("keydown",l,!0)}},[n,r,i,a,s,e,o,t])};import{useEffect as N0,useRef as su}from"react";import{useReactFlow as T0}from"@xyflow/react";var v0=20,w0=50,Sn={UP:"ArrowUp",DOWN:"ArrowDown",LEFT:"ArrowLeft",RIGHT:"ArrowRight"},I0=e=>{if(!e||!(e instanceof HTMLElement))return!1;let t=e.tagName.toLowerCase(),o=t==="input"||t==="textarea",n=e.isContentEditable,r=t==="select",i=e.closest('[contenteditable="true"], input, textarea, select')!==null;return o||n||r||i},au=e=>{let{getNodes:t}=T0(),{mode:o,isMoveTool:n}=q(),r=su(0),i=su(new Map);N0(()=>{let a=s=>{if(o!=="edit"||!n||I0(s.target)||!Object.values(Sn).includes(s.key))return;let u=t().filter(_=>_.selected);if(u.length===0){i.current.clear();return}s.preventDefault();let m=Date.now(),p=m-r.current<500;r.current=m;let g=s.shiftKey?w0:v0,x=0,f=0;switch(s.key){case Sn.UP:f=-g;break;case Sn.DOWN:f=g;break;case Sn.LEFT:x=-g;break;case Sn.RIGHT:x=g;break}let h=u.map(_=>{let b=i.current.get(_.id);(!p||!b)&&(b={x:_.position.x,y:_.position.y});let T={x:b.x+x,y:b.y+f};return i.current.set(_.id,T),{id:_.id,dragging:!0,type:"position",position:T}});e&&e(h)};return window.addEventListener("keydown",a),()=>{window.removeEventListener("keydown",a)}},[t,e,o,n])};import{useReactFlow as C0}from"@xyflow/react";var cu={"start-event":"START_EVENT","end-event":"END_EVENT",task:"TASK","gateway-exclusive":"GATEWAY"},du={"start-event":"","end-event":"",task:"","gateway-exclusive":"EXCLUSIVE"},lu=(e,t)=>{if(!e){console.warn("Step not found");return}e=e.trim();let o=e.match(/(\<.*?\>)/)||[],n=e.match(/(\[.*?\])/)||[],r=e.match(/(\{.*?\})/)||[],i=e.match(/(--.*|\|.*?\|)/i)||[],a="",s="",l="";if(o.length){switch(o[1]){case"<start>":a="start-event";break;case"<end>":a="end-event";break}e=e.replace(o[1],"")}return n.length&&(a="task",s=n[1].replace(/\[|\]/g,""),e=e.replace(n[1],"")),r.length&&(a="gateway-exclusive",s=r[1].replace(/\{|\}/g,""),e=e.replace(r[1],"")),a||(a="task",s=e),i.length&&(l=i[1].replace(/(\||--)/g,""),e=e.replace(i[1],"")),e=e.trim(),t[e]||(t[e]={type:a,label:s}),{step:e,type:a,label:s,edgeLabel:l}},A0=e=>{e=e||"";let t=e.trim().split(`
41
+ `),V=S.reduce((L,k)=>Math.max(L,k.length),0),D=S.length,I=Math.max(_o.MIN_WIDTH,V*7+64),z=Math.max(_o.MIN_HEIGHT,D*24+Y);l(L=>L.map(k=>k.id===e?v(N({},k),{width:I,height:z,style:v(N({},k.style),{width:I,height:z})}):k))},[e,l,_,b]),E=Zr(P=>{let X=P.trim(),$=t.label||"";if(X===$)return;let Z=X,Y=s();if(!(X&&X!=="")){Z=qr(Y,r("bpmn.task.label.prefix")),a(e,{label:Z}),T(Z),i({variant:"warning",content:Tn(Jr,{children:[r("bpmn.task.feedback.label_empty.prefix")," ",Te("strong",{children:Z})]})});return}let V=Go(Z,Y);V===$||(a(e,{label:V}),T(V),V!==Z&&i({variant:"warning",content:Tn(Jr,{children:[r("bpmn.task.feedback.label_already_exists.prefix")," ",Te("strong",{children:X})," ",r("bpmn.task.feedback.label_already_exists.middle")," ",Te("strong",{children:V})]})}))},[t.label,s,e,r,a,T,i]),y=Zr(P=>{T(P)},[T]),w=Zr(()=>{i({variant:"error",content:r("bpmn.task.feedback.invalid_first_character")})},[r,i]),C=f?My[f]:null,A=t.variant?Gn[t.variant].icon:null,R=t.attribute?Bn[t.attribute].icon:null,G=()=>t.hasError?gs.error:f?gs[f]:gs.default,M=()=>{m==null||m({id:e,type:"sub_process",label:t.label})};return Tn("div",{className:H("relative w-full h-full min-w-44 min-h-24 flex flex-col items-stretch justify-stretch bg-white border-2 border-grey-400 hover:border-grey-500 rounded-md hover:shadow-md transition-colors duration-75",G(),{"border-blue-500 hover:border-blue-600 shadow-md":o,"border-red-500 hover:border-red-600 shadow-[0_0_5px_rgba(255,0,0,0.5)]":t.hasError}),children:[Te("div",{className:"flex-1 flex items-stretch justify-stretch overflow-hidden",children:Te(ke,{value:t.label,maxLength:60,className:H({"py-10 px-8":_||b}),onChange:E,onInput:y,onInvalidFirstCharacter:w})}),A&&Te("div",{className:H("absolute flex items-center p-1",h?"bottom-0 left-1/2 -translate-x-1/2":"top-0 left-0"),children:Te(A,{size:16,className:H(t.hasError?"text-red-500":"text-grey-500",h&&"cursor-pointer"),onClick:h?M:void 0})}),R&&Te("div",{className:"absolute bottom-0 left-0 w-full flex items-center justify-center",children:Te("div",{className:H("flex items-center w-16 p-1",h?"justify-between":"justify-center"),children:Te(R,{size:16,className:H(t.hasError?"text-red-500":"text-grey-500")})})}),C&&Te("div",{className:"absolute top-0 right-0 flex items-center p-1",children:Te(C,{})}),Te(Fe,{nodeId:e,nodeType:"TASK",nodeVariant:t.variant}),u==="edit"&&Te(it,{nodeId:e,isVisible:!n&&o,minWidth:_o.MIN_WIDTH,minHeight:_o.MIN_HEIGHT}),(!c||x)&&Tn(Jr,{children:[Te(te,{type:"target",position:Xt.Left,id:"left",className:H({"task-handle":x})}),Te(te,{type:"target",position:Xt.Right,id:"right",className:H({"task-handle":x})}),Te(te,{type:"target",position:Xt.Top,id:"top",className:H({"task-handle":x})}),Te(te,{type:"target",position:Xt.Bottom,id:"bottom",className:H({"task-handle":x})})]}),!c&&Tn(Jr,{children:[Te(He,{type:"source",position:Xt.Left,id:"left",nodeId:e,nodeType:"TASK"}),Te(He,{type:"source",position:Xt.Right,id:"right",nodeId:e,nodeType:"TASK"}),Te(He,{type:"source",position:Xt.Top,id:"top",nodeId:e,nodeType:"TASK"}),Te(He,{type:"source",position:Xt.Bottom,id:"bottom",nodeId:e,nodeType:"TASK"})]})]})};import{Position as Nd}from"@xyflow/react";import{Fragment as Py,jsx as Qr,jsxs as Ly}from"react/jsx-runtime";var Td=({id:e,data:t})=>Ly(Py,{children:[Qr("div",{className:"relative w-full h-full min-w-32 min-h-16 flex items-center justify-center bg-white border-2 border-red-400 rounded-sm overflow-hidden",children:t.label}),Qr(Fe,{nodeId:e,nodeType:"UNSUPPORTED"}),Qr(te,{type:"source",position:Nd.Right}),Qr(te,{type:"target",position:Nd.Left})]});import{BaseEdge as ky,EdgeLabelRenderer as Ry,getSmoothStepPath as Dy,MarkerType as Oy,useInternalNode as vd,useReactFlow as Vy,useViewport as Hy,Position as Bo}from"@xyflow/react";import{useState as Gy,useMemo as By}from"react";import{Fragment as wd,jsx as Xe,jsxs as co}from"react/jsx-runtime";var cP={type:"MESSAGE_EDGE",reconnectable:!0,markerEnd:{type:Oy.Arrow},data:{label:""}},Id=({id:e,source:t,target:o,data:n,selected:r,sourcePosition:i,targetPosition:a,sourceHandleId:s,targetHandleId:l})=>{var L;let{zoom:c}=Hy(),{updateEdgeData:d}=Vy(),{isMultipleSelection:u,mode:m,instanceId:p}=q(),g=m!=="edit",[x,f]=Gy(!1),{reconnectingHandle:h,cursorPosition:_,hoveredNodeId:b,reconnectingSide:T,isValidReconnection:E,handleReconnectStart:y}=Wr({edgeId:e,source:t,target:o,instanceId:p,isReadOnly:g}),w=vd(t),C=vd(o),{sx:A,sy:R,tx:G,ty:M,sourcePos:P,targetPos:X}=By(()=>{var ne,ae;if(!w||!C)return{sx:0,sy:0,tx:0,ty:0,sourcePos:Bo.Left,targetPos:Bo.Right};let k=bo(w,C),O=s?i:k.sourcePos,B=l?a:k.targetPos,ee=(U,xe,W)=>{var ue,ye,ve,Oe,Ge,$e;let{x:j,y:ce}=U.internals.positionAbsolute,re=(ve=(ye=(ue=U.measured)==null?void 0:ue.width)!=null?ye:U.width)!=null?ve:0,fe=($e=(Ge=(Oe=U.measured)==null?void 0:Oe.height)!=null?Ge:U.height)!=null?$e:0;switch(xe){case Bo.Top:return{x:j+re*W,y:ce};case Bo.Bottom:return{x:j+re*W,y:ce+fe};case Bo.Left:return{x:j,y:ce+fe*W};case Bo.Right:return{x:j+re,y:ce+fe*W};default:return{x:j+re/2,y:ce+fe/2}}},oe=(ne=n==null?void 0:n.sourceOffset)!=null?ne:.5,K=(ae=n==null?void 0:n.targetOffset)!=null?ae:.5,J=w?ee(w,O,oe).x:k.sx,Q=w?ee(w,O,oe).y:k.sy,se=C?ee(C,B,K).x:k.tx,F=C?ee(C,B,K).y:k.ty;return h==="source"&&_?(J=_.x,Q=_.y,T&&(O=T)):h==="target"&&_&&(se=_.x,F=_.y,T&&(B=T)),{sx:J,sy:Q,tx:se,ty:F,sourcePos:O,targetPos:B}},[w,C,s,l,i,a,h,_,T,n==null?void 0:n.sourceOffset,n==null?void 0:n.targetOffset]);if(!w||!C)return null;let[$,Z,Y]=Dy({sourceX:A,sourceY:R,targetX:G,targetY:M,sourcePosition:P,targetPosition:X}),S=r||(w==null?void 0:w.selected)||(C==null?void 0:C.selected),V=S?"sequence-edge-marker-highlighted":"sequence-edge-marker",D=x||(n==null?void 0:n.label.trim().length)>0,I=()=>{f(!1)},z=k=>{d(e,{label:k.trim()})};return Xe(wd,{children:co("g",{className:H("group bpmn-arrow-edge",{"is-highlighted":S}),onDoubleClick:()=>!g&&f(!0),children:[Xe("path",{d:$,fill:"none",stroke:"transparent",strokeWidth:Math.max(12,12/c),style:{pointerEvents:"stroke",cursor:"pointer"}}),co("g",{className:H("text-grey-500 transition-colors duration-75 group-hover:text-grey-800",{"text-blue-500 group-hover:text-blue-600":S}),children:[Xe(ky,{id:e,path:$,interactionWidth:0,markerEnd:`url(#${V})`,strokeDasharray:4,className:H("stroke-2 stroke-current transition-[stroke,filter] duration-75 group-hover:drop-shadow-[0_0_3px_rgba(0,0,0,0.2)]",{"stroke-red-500 hover:stroke-red-600":(n==null?void 0:n.hasError)||h&&b&&!E,"stroke-green-500":h&&b&&E,"stroke-blue-500 hover:stroke-blue-600 drop-shadow-[0_0_3px_rgba(59,130,246,0.5)]":S&&!(n!=null&&n.hasError)&&!h})}),co(Ry,{children:[co("div",{className:"absolute z-[3000] pointer-events-auto flex flex-col items-center gap-1",style:{transform:`translate(-50%, -50%) translate(${Z}px, ${Y}px)`},children:[r&&!u&&Xe(So,{sx:A,sy:R,tx:G,ty:M,hasLabel:!!((L=n==null?void 0:n.label)!=null&&L.trim()),children:Xe(Co,{edgeId:e,edgeType:"MESSAGE_EDGE"})}),D&&Xe(ke,{value:n==null?void 0:n.label,className:"min-w-8 max-w-56 bg-white rounded-md px-2 py-1 text-xs",isEditing:x,onBlur:I,onChange:z})]}),r&&!u&&!g&&co(wd,{children:[Xe("div",{className:"absolute z-[1000] pointer-events-none",style:{transform:`translate(-50%, -50%) translate(${A}px, ${R}px)`},children:co("svg",{width:12/c,height:12/c,style:{overflow:"visible",position:"absolute",left:"50%",top:"50%",transform:"translate(-50%, -50%)"},children:[Xe("circle",{cx:6/c,cy:6/c,r:4/c,fill:h==="source"?"#3b82f6":"#fff",stroke:"#3b82f6",strokeWidth:2/c,className:"pointer-events-none"}),Xe("circle",{cx:6/c,cy:6/c,r:6/c,fill:"none",stroke:"#3b82f6",strokeWidth:1/c,opacity:h==="source"?.6:.3,className:"pointer-events-none"}),Xe("circle",{cx:6/c,cy:6/c,r:8/c,fill:"transparent",className:H("pointer-events-auto",{"cursor-move":!h||h!=="source","cursor-not-allowed":h==="source"&&b&&!E,"cursor-grabbing":h==="source"&&(!b||E)}),onMouseDown:k=>y("source",k.nativeEvent)})]})}),Xe("div",{className:"absolute z-[1000] pointer-events-none",style:{transform:`translate(-50%, -50%) translate(${G}px, ${M}px)`},children:co("svg",{width:12/c,height:12/c,style:{overflow:"visible",position:"absolute",left:"50%",top:"50%",transform:"translate(-50%, -50%)"},children:[Xe("circle",{cx:6/c,cy:6/c,r:4/c,fill:h==="target"?"#3b82f6":"#fff",stroke:"#3b82f6",strokeWidth:2/c,className:"pointer-events-none"}),Xe("circle",{cx:6/c,cy:6/c,r:6/c,fill:"none",stroke:"#3b82f6",strokeWidth:1/c,opacity:h==="target"?.6:.3,className:"pointer-events-none"}),Xe("circle",{cx:6/c,cy:6/c,r:8/c,fill:"transparent",className:H("pointer-events-auto",{"cursor-move":!h||h!=="target","cursor-not-allowed":h==="target"&&b&&!E,"cursor-grabbing":h==="target"&&(!b||E)}),onMouseDown:k=>y("target",k.nativeEvent)})]})})]})]})]})]})})};import{getStraightPath as zy,Position as jr}from"@xyflow/react";import{jsx as Ad,jsxs as Yy}from"react/jsx-runtime";var Cd=({toX:e,toY:t,fromNode:o})=>{var u,m;if(!o)return null;let{internals:{positionAbsolute:{x:n,y:r}},measured:i}=o,a=(u=i.width)!=null?u:0,s=(m=i.height)!=null?m:0,c=[{x:n,y:r+s/2,pos:jr.Left},{x:n+a,y:r+s/2,pos:jr.Right},{x:n+a/2,y:r,pos:jr.Top},{x:n+a/2,y:r+s,pos:jr.Bottom}].reduce((p,g)=>{let x=Math.hypot(e-p.x,t-p.y);return Math.hypot(e-g.x,t-g.y)<x?g:p}),[d]=zy({sourceX:c.x,sourceY:c.y,targetX:e,targetY:t});return Yy("g",{className:"group",children:[Ad("path",{fill:"none",className:"stroke-2 stroke-grey-500 animated transition-[stroke,filter] duration-75",d}),Ad("circle",{cx:e,cy:t,fill:"none",r:4,className:"stroke-2 stroke-grey-600"})]})};import{Position as Ut,useConnection as Wy,useReactFlow as Fy}from"@xyflow/react";import{orderBy as Xy}from"lodash";import{useMemo as Sd,useState as Uy}from"react";import{Fragment as hs,jsx as Ue,jsxs as ei}from"react/jsx-runtime";var Md=({id:e,data:t,selected:o,dragging:n,parentId:r})=>{let{updateNodeData:i,getNodes:a}=Fy(),{mode:s}=q(),{inProgress:l,fromNode:c}=Wy(),d=l&&(c==null?void 0:c.id)!==e,[u,m]=Uy(!1),p=a(),g=!r,x=Sd(()=>Xy([...p.filter(E=>E.parentId===e&&E.type==="LANE")],"position.y","asc"),[p,e]),f=g?Js.MIN_WIDTH:ie.MIN_WIDTH,h=Sd(()=>{if(g&&x.length>1){let E=[...x];return E.pop(),E.reduce((w,C)=>{var A,R;return w+((R=(A=C.measured)==null?void 0:A.height)!=null?R:0)},0)+ie.MIN_HEIGHT}return ie.MIN_HEIGHT},[g,x]),_=E=>{i(e,{label:E})},b=()=>{m(!0)},T=()=>{m(!1)};return ei(hs,{children:[ei("div",{className:H("flex h-full min-h-64 w-full min-w-[50rem] hover:shadow-md bg-white outline outline-1 outline-grey-300",{"outline-offset-2 outline-blue-500 shadow-sm":o}),children:[Ue("div",{className:"flex align-items justify-center w-10 border-r border-grey-300",onDoubleClick:b,children:Ue("div",{className:"relative flex-1 [writing-mode:vertical-rl] [text-orientation:sideways] transform rotate-180",children:Ue(ke,{value:t.label,className:"w-full h-full self-auto",contentClassName:H({"whitespace-nowrap":u}),isEditing:u,onBlur:T,onChange:_})})}),Ue("div",{className:"flex-1"})]}),Ue(Fe,{nodeId:e,nodeType:"LANE",isChild:!g}),s==="edit"&&Ue(it,{nodeId:e,isVisible:!n&&o,minWidth:f,minHeight:h,offset:10}),!l&&ei(hs,{children:[Ue(te,{type:"source",position:Ut.Left,id:"left"}),Ue(te,{type:"source",position:Ut.Right,id:"right"}),Ue(te,{type:"source",position:Ut.Top,id:"top"}),Ue(te,{type:"source",position:Ut.Bottom,id:"bottom"})]}),(!l||d)&&ei(hs,{children:[Ue(te,{type:"target",position:Ut.Left,id:"left",className:H({"annotation-handle":d})}),Ue(te,{type:"target",position:Ut.Right,id:"right",className:H({"annotation-handle":d})}),Ue(te,{type:"target",position:Ut.Top,id:"top",className:H({"annotation-handle":d})}),Ue(te,{type:"target",position:Ut.Bottom,id:"bottom",className:H({"annotation-handle":d})})]})]})};var Pd={START_EVENT:md,END_EVENT:dd,TASK:_d,GATEWAY:pd,ANNOTATION:ld,LANE:Md,UNSUPPORTED:Td},Ld={SEQUENCE_EDGE:Sc,MESSAGE_EDGE:Id,ANNOTATION_EDGE:fc},kd="#fafafa",Rd="#bebebe",Dd=1,Od=10,Vd="bottom-left",ys=.05,Hd=5,zo=.5,Yo=ys,Wo=1,Gd={x:0,y:0,zoom:.75},Bd=1,zd=2,$y={[Bd]:4,[zd]:2},vn=[Bd,zd],xs=vn.reduce((e,t)=>e|$y[t],0);import{useReactFlow as Ky}from"@xyflow/react";var st=()=>{let{getEdges:e,getNodes:t}=Ky(),{lastElementId:o}=q(),n=()=>{let i=t(),a=e(),s=Kc(i,a);return Math.max(s,o)};return{getLastId:n,getNextId:()=>n()+1}};var Fo=()=>{let{getNodes:e,getEdges:t,setNodes:o,setEdges:n,setViewport:r}=Zy(),{getLastId:i}=st(),a=Jy(),{setLastElementId:s}=q(),l=Yd(async(d="")=>{let{nodes:u,edges:m,lastElementId:p}=await Zc(d),{width:g,height:x}=a.getState();if(g>0&&x>0){let f=na(u);f&&r(qy(f,g,x,Yo,Wo,zo))}o(u),n(m),s(p)},[o,n,s,a,r]),c=Yd(()=>{let d=e(),u=t(),m=i();return qc(d,u,m)},[e,t,i]);return{importFromMxGraph:l,exportToMxGraph:c}};import{useCallback as Wd}from"react";var jy=500,ti=()=>{let{isInitialized:e,onElementChanges:t}=q(),{exportToMxGraph:o}=Fo(),n=Qy(()=>{if(!e)return;let a=o();t==null||t(a)},jy),r=Wd(a=>{a.every(c=>c.type==="select")||a.some(c=>c.type==="position"&&c.dragging)||n()},[n]),i=Wd(a=>{a.some(l=>l.type==="select")||n()},[n]);return{emitElementChanges:n,handleNodeChanges:r,handleEdgeChanges:i}};var Fd=({setEdges:e,saveHistory:t})=>{let{getNode:o,getEdges:n,getNodes:r,getInternalNode:i}=t0(),{emitElementChanges:a}=ti(),s=o0(null),{getNextId:l}=st(),c=uo(f=>{var E;let h=o(f.source),_=o(f.target);if(!h||!_)return!1;let b={sourceNodeId:h.id,targetNodeId:_.id,sourceNodeType:h.type,targetNodeType:_.type,nodes:r(),edges:n(),reconnectingEdgeId:(E=s.current)!=null?E:void 0};return Ji(b).isValid},[o,n,r]),d=uo(f=>{var b,T;let h=l(),_=i(f.source);if(_){let E=i(f.target),y=E?E.internals.positionAbsolute.x+((b=E.measured.width)!=null?b:0)/2:0,w=E?E.internals.positionAbsolute.y+((T=E.measured.height)!=null?T:0)/2:0,C=Mc(_,y,w),A=(E==null?void 0:E.type)==="ANNOTATION"||(_==null?void 0:_.type)==="ANNOTATION",R=A?Mo:rt,G;if(!A&&E&&f.targetHandle){let X=Xr(C),$=Xr(f.targetHandle),{x:Z,y:Y}=os(_,C),{x:S,y:V}=os(E,f.targetHandle),I=zr(Z,Y,S,V,X,$).slice(1,-1);I.length>0&&(G=I)}let M=v(N(N({},f),R),{id:String(h),sourceHandle:C,data:N(N({},A?{}:rt.data),G?{points:G}:{})}),P=n().concat(M);e(P),t("forceSave",{nodes:r(),edges:P}),a()}},[l,e,a,i,n,r,t]),u=uo((f,h)=>{s.current=h.id},[]),m=uo(()=>{s.current=null},[]),p=uo((f,h)=>{let _=o(h.source),b=o(h.target);if(!_||!b){s.current=null;return}let T={sourceNodeId:_.id,targetNodeId:b.id,sourceNodeType:_.type,targetNodeType:b.type,nodes:r(),edges:n(),reconnectingEdgeId:f.id};if(!Ji(T).isValid){s.current=null;return}let y=e0(f,h,n()).map(w=>w.id===f.id?v(N({},w),{data:v(N({},w.data),{points:void 0})}):w);e(y),t("forceSave",{nodes:r(),edges:y}),s.current=null,a()},[o,r,n,e,a,t]),g=uo(f=>{s.current=f},[]),x=uo(()=>{s.current=null},[]);return{isValidConnection:c,onConnect:d,onReconnect:p,onReconnectStart:u,onReconnectEnd:m,setReconnectingEdge:g,clearReconnectingEdge:x}};import{useTranslation as n0}from"@produto-lecom/lecom-ui";import{useReactFlow as r0}from"@xyflow/react";import{useCallback as Cn,useRef as jd,useState as i0}from"react";var wn=(e=[])=>e.filter(t=>t.type==="START_EVENT"),po=(e=[])=>e.filter(t=>t.type==="END_EVENT"),$t=(e=[])=>e.filter(t=>t.type==="TASK")||[],Xd=(e=[])=>e.filter(t=>{var o;return t.type==="TASK"&&((o=t.properties)==null?void 0:o.variant)==="SCRIPT"});var oi=(e=[])=>e.filter(t=>t.type==="GATEWAY"),Ud=(e=[])=>e.filter(t=>{var o;return t.type==="GATEWAY"&&((o=t.properties)==null?void 0:o.variant)==="EXCLUSIVE"}),je=(e,t=[])=>t.filter(o=>o.source===e),In=(e,t=[])=>t.filter(o=>o.target===e),$d=(e,t)=>{var n,r;let o=(n=t.nodes)==null?void 0:n.find(i=>i.id===e);return((r=o==null?void 0:o.properties)==null?void 0:r.attribute)==="LOOP"},Kd=(e,t)=>{let o=je(e,t.edges||[]);for(let n of o){let r=(t.nodes||[]).find(i=>i.id===n.target);if(r&&r.type==="END_EVENT")return!0}return!1},qd=e=>e?/[^\s]/.test(e.trim()):!1,Ee=e=>{let{isValid:t,nodeIds:o,edgeIds:n}=e;return{isValid:t,nodeIds:!t&&o&&o.length>0?o:[],edgeIds:!t&&n&&n.length>0?n:[]}},At=(e=[],t)=>{if(!e||e.length===0)return{isValid:!0,invalidIds:[]};let o=e.filter(n=>!t(n));return{isValid:o.length===0,invalidIds:o.map(n=>n.id)}},Zd=(e=[],t=[])=>({nodes:e.map(o=>{var n;return{id:o.id,type:o.type||"",label:typeof((n=o.data)==null?void 0:n.label)=="string"?o.data.label:void 0,properties:o.data}}),edges:t.map(o=>({id:o.id,source:o.source,target:o.target,type:o.type||"default"}))});var An=[{id:"start_event_not_found",validate:e=>{let t=wn(e.nodes);return Ee({isValid:t.length>=1})}},{id:"end_event_not_found",validate:e=>{let t=po(e.nodes);return Ee({isValid:t.length>=1})}},{id:"multiple_start_event_not_allowed",validate:e=>{let t=wn(e.nodes),o=t.length===1;if(t.length===0)return Ee({isValid:!0});if(!o)return Ee({isValid:!1,nodeIds:t.map(i=>i.id)});let n=je(t[0].id,e.edges);if(!(n.length<=1)){let i=[...t.map(a=>a.id),...n.map(a=>a.target)];return Ee({isValid:!1,nodeIds:[...new Set(i)]})}return Ee({isValid:!0})}},{id:"task_flows_limit_exceeds",validate:e=>{let t=$t(e.nodes),o=At(t,n=>je(n.id,e.edges).length<=2);return Ee({isValid:o.isValid,nodeIds:o.invalidIds})}},{id:"task_label_empty",highlightRelatedEdges:!1,validate:e=>{let t=$t(e.nodes),o=At(t,n=>!!n.label&&n.label.trim()!=="");return Ee({isValid:o.isValid,nodeIds:o.invalidIds})}},{id:"task_label_length",highlightRelatedEdges:!1,validate:e=>{let o=$t(e.nodes),n=At(o,r=>!r.label||r.label.length<=60);return Ee({isValid:n.isValid,nodeIds:n.invalidIds})}},{id:"duplicate_task_name",highlightRelatedEdges:!1,validate:e=>{let t=$t(e.nodes),o=new Map;for(let r of t){if(!r.label)continue;let i=r.label.trim();i&&(o.has(i)||o.set(i,[]),o.get(i).push(r))}let n=[];for(let[,r]of o.entries())r.length>1&&r.forEach(i=>n.push(i.id));return Ee({isValid:n.length===0,nodeIds:n})}},{id:"nested_gateway",validate:e=>{let t=oi(e.nodes),o=[],n=[];for(let r of t){let i=je(r.id,e.edges);for(let a of i){let s=e.nodes.find(l=>l.id===a.target);s&&s.type==="GATEWAY"&&(o.push(r.id,s.id),n.push(a.id))}}return Ee({isValid:o.length===0,nodeIds:o.length>0?[...new Set(o)]:[],edgeIds:n})}},{id:"events_nested",validate:e=>{let t=[...wn(e.nodes),...po(e.nodes)],o=[],n=[];for(let r of t){let i=je(r.id,e.edges);for(let a of i){let s=e.nodes.find(l=>l.id===a.target);s&&(s.type==="START_EVENT"||s.type==="END_EVENT")&&(o.push(r.id,s.id),n.push(a.id))}}return Ee({isValid:o.length===0,nodeIds:o.length>0?[...new Set(o)]:[],edgeIds:n})}},{id:"flows_on_end_tasks_not_allowed",validate:e=>{let t=po(e.nodes),o=[],n=[];for(let r of t){let i=In(r.id,e.edges);for(let a of i){let s=e.nodes.find(l=>l.id===a.source);if(s&&s.type==="TASK"){let l=je(s.id,e.edges);l.length>1&&(o.push(s.id),l.forEach(c=>n.push(c.id)))}}}return Ee({isValid:o.length===0,nodeIds:o,edgeIds:n})}},{id:"conditions_flows_limit_exceeds",validate:e=>{let t=Ud(e.nodes),o=At(t,r=>je(r.id,e.edges).length<=2),n=o.invalidIds.flatMap(r=>je(r,e.edges).map(i=>i.id));return Ee({isValid:o.isValid,nodeIds:o.invalidIds,edgeIds:n})}},{id:"activity_name_invalid",validate:e=>{let t=$t(e.nodes),o=At(t,n=>!n.label||qd(n.label));return Ee({isValid:o.isValid,nodeIds:o.invalidIds})}},{id:"final_activity_has_loop",validate:e=>{var a,s;if(!((a=e==null?void 0:e.nodes)!=null&&a.length)||!((s=e==null?void 0:e.edges)!=null&&s.length))return Ee({isValid:!0});let t=po(e.nodes)[0];if(!t)return Ee({isValid:!0});let o=In(t.id,e.edges);if(!o.length)return Ee({isValid:!0});let r=$t(e.nodes).filter(l=>o.some(c=>c.source===l.id)),i=At(r,l=>!$d(l.id,e));return Ee({isValid:i.isValid,nodeIds:i.isValid?[]:[t.id,...i.invalidIds]})}},{id:"concurrent_initial_and_final_event",validate:e=>{let t=$t(e.nodes),o=po(e.nodes)[0];if(!o)return Ee({isValid:!0});let n=t.filter(l=>{let c=In(l.id,e.edges),d=je(l.id,e.edges),u=c.some(p=>{var g;return((g=e.nodes.find(x=>x.id===p.source))==null?void 0:g.type)==="START_EVENT"}),m=d.some(p=>{var g;return((g=e.nodes.find(x=>x.id===p.target))==null?void 0:g.type)==="END_EVENT"});return u&&m}),r=In(o.id,e.edges),i=r.length>1,a=r.map(l=>l.source),s={isValid:n.length===0&&!i,nodeIds:[...n.map(l=>l.id),...i?a:[]]};return Ee(s)}},{id:"gateway_flow_to_event",validate:e=>{let t=oi(e.nodes),o=[],n=[];for(let r of t){let i=je(r.id,e.edges);for(let a of i){let s=e.nodes.find(l=>l.id===a.target);s&&s.type==="END_EVENT"&&(o.push(r.id,s.id),n.push(a.id))}}return Ee({isValid:o.length===0,nodeIds:o.length>0?[...new Set(o)]:[],edgeIds:n})}},{id:"gateway_missing_output_streams",validate:e=>{let t=oi(e.nodes),o=At(t,n=>je(n.id,e.edges).length>=1);return Ee({isValid:o.isValid,nodeIds:o.invalidIds})}},{id:"event_to_condition",validate:e=>{let t=[...wn(e.nodes),...po(e.nodes)],o=[],n=[];for(let r of t){let i=je(r.id,e.edges);for(let a of i){let s=e.nodes.find(l=>l.id===a.target);s&&s.type==="GATEWAY"&&(o.push(r.id,s.id),n.push(a.id))}}return Ee({isValid:o.length===0,nodeIds:o.length>0?[...new Set(o)]:[],edgeIds:n})}},{id:"script_in_final_activity",validate:e=>{let t=Xd(e.nodes),o=At(t,n=>!Kd(n.id,e));return Ee({isValid:o.isValid,nodeIds:o.invalidIds})}}];var Jd=e=>{e=e||{nodes:[],edges:[]},e.nodes=e.nodes||[],e.edges=e.edges||[];let t=[];for(let n of An){let r=n.validate(e);r.isValid||t.push({id:n.id,message:n.id,nodeIds:r.nodeIds||[],edgeIds:r.edgeIds||[]})}return{isValid:t.length===0,errors:t}},Qd=async(e,t)=>{var n;let o=[];try{let r=await e(),i=(n=r==null?void 0:r.filter(a=>a.area==="DIAGRAM"))!=null?n:[];return i.length===0?{isValid:!0,errors:[]}:(i.forEach(a=>{var l,c;let s=(c=(l=a==null?void 0:a.detail)==null?void 0:l.phases)==null?void 0:c.map(d=>d.diagramCellId);o.push({id:a.code,message:a.code,nodeIds:s,edgeIds:[]})}),{isValid:!1,errors:o})}catch(r){return{isValid:!1,errors:[{id:"cannot_validate_subprocess_reference",message:"cannot_validate_subprocess_reference",nodeIds:t.map(i=>i.id)||[],edgeIds:[]}]}}};import{jsx as ni,jsxs as s0}from"react/jsx-runtime";var eu=()=>{let{t:e}=n0(),{toast:t}=We(),{setNodes:o,setEdges:n,getNodes:r,getEdges:i}=r0(),{validateCustomDiagram:a}=q(),[s,l]=i0(!1),c=jd(!1),d=jd(!1),u=Cn(async f=>{let h=Zd(f.nodes,f.edges),_=Jd(h),b=f.nodes.filter(({type:E,data:y})=>E==="TASK"&&(y==null?void 0:y.variant)==="SUBPROCESS");if(a&&b.length>0){let E=await Qd(a,b);_={isValid:_.isValid&&E.isValid,errors:[..._.errors,...E.errors]}}let T=_.errors.map(E=>v(N({},E),{message:e(`validation.errors.${E.id}`)}));return s||l(!0),{isValid:_.isValid,errors:T}},[s,e,a]),m=Cn((f,h=!0)=>{if(h&&f&&t({variant:f.isValid?"success":"error",duration:5e3,title:f.isValid?e("validation.success.title"):e("validation.errors.title"),content:s0("div",{className:"flex flex-col gap-1",children:[!f.isValid&&ni("span",{className:"body-small-500",children:e("validation.errors.subtitle")}),ni("ul",{className:"list-disc list-inside max-h-40 overflow-y-auto",children:f.isValid?ni("li",{children:e("validation.success.message")}):f.errors.map(M=>ni("li",{className:"text-xs",children:M.message},M.id))})]})}),!f)return;c.current=!0,d.current=!0;let _=[],b=[];f.errors.forEach(M=>{M.nodeIds&&M.nodeIds.length>0&&M.nodeIds.forEach(P=>_.push(P)),M.edgeIds&&M.edgeIds.length>0&&M.edgeIds.forEach(P=>b.push(P))});let T=[...new Set(_)];o(M=>M.map(P=>v(N({},P),{data:v(N({},P.data),{hasError:!1})}))),n(M=>M.map(P=>v(N({},P),{data:v(N({},P.data),{hasError:!1})})));let E=r(),y=i(),w=new Set(T),C=new Set;f.errors.forEach(M=>{var $,Z;let P=An.find(Y=>Y.id===M.id);(P==null?void 0:P.highlightRelatedEdges)!==!1&&(($=M.edgeIds)==null||$.forEach(Y=>C.add(Y)),(Z=M.nodeIds)==null||Z.forEach(Y=>{y.forEach(S=>{(S.source===Y||S.target===Y)&&C.add(S.id)})}))});let A=new Set,R=new Set,G=new Set;E.forEach(M=>{M.type==="START_EVENT"?A.add(M.id):M.type==="END_EVENT"&&R.add(M.id)}),y.forEach(M=>{A.has(M.source)&&G.add(M.target),R.has(M.target)&&G.add(M.source)}),G.forEach(M=>{var P,X;if(w.has(M)){let $=(P=f.errors.find(Y=>{var S;return(S=Y.nodeIds)==null?void 0:S.includes(M)}))==null?void 0:P.id;((X=An.find(Y=>Y.id===$))==null?void 0:X.highlightRelatedEdges)!==!1&&y.forEach(Y=>{Y.source===M&&R.has(Y.target)&&(w.add(Y.target),C.add(Y.id)),Y.target===M&&A.has(Y.source)&&(w.add(Y.source),C.add(Y.id))})}}),w.size>0&&o(M=>M.map(P=>v(N({},P),{data:v(N({},P.data),{hasError:w.has(P.id)})}))),C.size>0&&n(M=>M.map(P=>v(N({},P),{data:v(N({},P.data),{hasError:C.has(P.id)})}))),setTimeout(()=>{c.current=!1},0)},[e,i,r,n,o,t]),p=Cn(()=>{l(!1),d.current=!1,o(f=>f.map(h=>v(N({},h),{data:v(N({},h.data),{hasError:!1})}))),n(f=>f.map(h=>v(N({},h),{data:v(N({},h.data),{hasError:!1})})))},[n,o]),g=Cn(()=>{d.current&&(c.current=!0,d.current=!1,o(f=>f.map(h=>v(N({},h),{data:v(N({},h.data),{hasError:!1})}))),n(f=>f.map(h=>v(N({},h),{data:v(N({},h.data),{hasError:!1})}))),setTimeout(()=>{c.current=!1},0))},[n,o]),x=Cn(()=>c.current,[]);return{validateDiagram:u,handleValidationComplete:m,clearValidation:p,dismissValidationPanel:g,isAutoValidationEnabled:s,getIsClearingValidation:x}};import{useReactFlow as a0}from"@xyflow/react";import{useTranslation as l0}from"@produto-lecom/lecom-ui";import{useEffect as c0}from"react";var d0=15,tu="bpmn:selection",u0=e=>{if(!e||!(e instanceof HTMLElement))return!1;let t=e.tagName.toLowerCase(),o=t==="input"||t==="textarea",n=e.isContentEditable,r=t==="select",i=e.closest('[contenteditable="true"], input, textarea, select')!==null;return o||n||r||i},ou=e=>{if(!u0(e.target))return!0;let t=window.getSelection(),o=t&&t.toString().length>0;if(e.target instanceof HTMLInputElement||e.target instanceof HTMLTextAreaElement){let n=e.target;return n.selectionStart===n.selectionEnd&&!o}return!o},nu=({offset:e=d0,saveHistory:t})=>{let{t:o}=l0(),{getNodes:n,setNodes:r,getEdges:i,setEdges:a}=a0(),{getNextId:s}=st();c0(()=>{let l=d=>{var h,_;if(!ou(d))return;let u=n(),m=i(),p=u.filter(b=>b.selected);if(!p.length)return;d.preventDefault(),d.stopPropagation();let g=m.filter(b=>p.some(T=>T.id===b.source)&&p.some(T=>T.id===b.target)),f=JSON.stringify({nodes:p,edges:g});(h=d.clipboardData)==null||h.setData(tu,f),(_=d.clipboardData)==null||_.setData("text/plain",`BPMN Selection: ${p.length} nodes`)},c=d=>{var w,C;if(!ou(d))return;let u=(w=d.clipboardData)==null?void 0:w.getData(tu);if(!u)return;d.preventDefault(),d.stopPropagation();let m;try{m=JSON.parse(u)}catch(A){return}if(!((C=m.nodes)!=null&&C.length))return;let p=new Map,g=n(),x=[],f=m.nodes.filter(A=>Ot(A.type,g));if(f.length===0)return;let h=s(),_=f.map(A=>{var M;let R=String(h++);p.set(A.id,R);let G=v(N({},A),{id:R,selected:!0,position:{x:A.position.x+e,y:A.position.y+e}});if(A.type==="TASK"){let P=(M=A.data)==null?void 0:M.label,X=Go(P||o("bpmn.task.label.prefix"),[...g,...x]);G.data=v(N({},A.data),{label:X})}return x.push(G),G}),b=m.edges.map(A=>v(N({},A),{id:String(h++),selected:!0,source:p.get(A.source)||A.source,target:p.get(A.target)||A.target})),T=[...g.map(A=>v(N({},A),{selected:!1})),..._],y=[...i().map(A=>v(N({},A),{selected:!1})),...b];r(T),a(y),t("forceSave",{nodes:T,edges:y})};return document.addEventListener("copy",l,!0),document.addEventListener("paste",c,!0),()=>{document.removeEventListener("copy",l,!0),document.removeEventListener("paste",c,!0)}},[n,r,i,a,s,e,o,t])};import{useTranslation as p0}from"@produto-lecom/lecom-ui";import{useReactFlow as f0}from"@xyflow/react";import{useState as m0}from"react";var g0=50,ru=({nodes:e,setNodes:t,setEdges:o,saveHistory:n})=>{let{draggableNode:r,setDraggableNode:i}=Ho(),{t:a}=p0(),{getInternalNode:s,getNodes:l,getEdges:c,screenToFlowPosition:d}=f0(),{getNextId:u}=st(),{setIsDragging:m}=q(),{getInternalNodes:p}=$r(),{rebuildIndex:g,forceRebuildIndex:x}=Tr(),[f,h]=m0(null),_=(S,V,D)=>{var k;if(S.parentId!==V)return null;let I=D.filter(O=>O.id!==S.id&&O.parentId===V&&O.type==="LANE").sort((O,B)=>O.position.y-B.position.y);if(I.length===0)return null;let z=(k=D.find(O=>O.id===S.id))!=null?k:S,L=I.find(O=>z.position.y<O.position.y);return L?{draggedLaneId:S.id,beforeLaneId:L.id}:{draggedLaneId:S.id,afterLaneId:I[I.length-1].id}},b=(S,V=!1,D)=>{let I=V?"node-drop-target-error":"node-drop-target",z=V?"node-drop-target-lane-error":"node-drop-target-lane";t(L=>{var O;let k=(O=D==null?void 0:D(L))!=null?O:null;return L.map(B=>{let ee=[];return B.id===S&&ee.push(I),S!==void 0&&B.parentId===S&&B.type==="LANE"&&B.id!==(k==null?void 0:k.draggedLaneId)&&ee.push(z),B.id===(k==null?void 0:k.draggedLaneId)&&ee.push("lane-reorder-dragging"),B.id===(k==null?void 0:k.beforeLaneId)&&ee.push("lane-reorder-before"),B.id===(k==null?void 0:k.afterLaneId)&&ee.push("lane-reorder-after"),v(N({},B),{className:ee.join(" ")})})})},T=(S,V)=>{let D=p();if(S.type==="LANE"){if(V){b();return}let O=D.filter(oe=>oe.id!==S.id&&oe.type==="LANE"&&!oe.parentId),B=Zo(S,O);if(!B){b();return}if(Zt({parentId:B.id,nodes:e,excludeTypes:["LANE"]})){b(B.id,!0);return}b(B.id,!1,oe=>_(S,B.id,oe));return}let z=D.filter(O=>O.id!==S.id&&O.type==="LANE"),L=Zo(S,z);if(!L){b();return}if(Zt({parentId:L.id,nodes:e,includeTypes:["LANE"]})){b();return}b(L.id)},E=S=>{let V=s(S.id),D=S.type==="LANE"&&Zt({parentId:S.id,nodes:e,includeTypes:["LANE"]});T(V,D)},y=S=>S.map(V=>v(N({},V),{className:void 0})),w=S=>S.some(D=>D.dragging)?S.map(D=>D.dragging?v(N({},D),{dragging:!1}):D):S,C=(S,V)=>{let D=0;for(let I of V){if(I.id===S||I.parentId||I.type==="LANE")continue;let z=ot(I),L=z.y+z.h;D=Math.max(D,L)}return D+g0},A=(S,V)=>{if(!Pi(S,V))return V;let D=C(S,V);return V.map(I=>I.id===S?v(N({},I),{position:v(N({},I.position),{y:D})}):I)},R=S=>{if(S.preventDefault(),S.dataTransfer.dropEffect="move",!(r!=null&&r.type))return;let V=d({x:S.clientX,y:S.clientY}),D={id:"__sidebar_drag__",type:r.type,position:V,measured:{width:1,height:1},internals:{positionAbsolute:V}};T(D,!1)},G=S=>{let V=S.relatedTarget;(!V||!S.currentTarget.contains(V))&&b()},M=(S,V)=>{S.preventDefault(),E(V)},P=(S,V,D)=>{var ee,oe;let I=[...D],z=V.parentId?V.parentId:V.id;if(S.parentId===V.id)return I=ki(S,V,I),I=It(I),I=Jt(z,I),y(I);if(S.type==="LANE"){if(Zt({parentId:V.id,nodes:I,excludeTypes:["LANE"]})){let F=br(V),ne=50,ae=50;return I.map(U=>{var xe,W;return U.id===S.id?v(N({},U),{position:{x:(xe=f==null?void 0:f.x)!=null?xe:F.x+ne,y:(W=f==null?void 0:f.y)!=null?W:F.y2+ae}}):U})}let Q=I.filter(F=>F.parentId===V.id).reduce((F,ne)=>{var ae,U;return F+((U=(ae=ne.measured)==null?void 0:ae.height)!=null?U:0)},0),se={x:ie.HEADER_WIDTH,y:Q};return I=I.map(F=>F.id===S.id?v(N({},F),{parentId:V.id,position:se,className:void 0}):v(N({},F),{className:void 0})),I=It(I),I=A(z,I),I}if(Zt({parentId:V.id,nodes:I,includeTypes:["LANE"]})){let K;if(S.parentId){let J=s(S.parentId),{x:Q,y:se}=ot(J);K={x:Q+((ee=S.position.x)!=null?ee:0),y:se+((oe=S.position.y)!=null?oe:0)}}return I=I.map(J=>J.id===S.id?v(N({},J),{position:K!=null?K:J.position,parentId:void 0,className:void 0}):v(N({},J),{className:void 0})),I=Jt(z,I),I}let O=ea(S,V);I=I.map(K=>K.id===S.id?v(N({},K),{parentId:V.id,position:O,className:void 0}):v(N({},K),{className:void 0}));let B=I.find(K=>K.id===S.id);return I=ki(B,V,I),I=It(I),I=Jt(z,I),I},X=S=>{if(S.preventDefault(),!(r!=null&&r.type))return;if(!Ot(r.type,l())){m(!1),i(null);return}let V=d({x:S.clientX,y:S.clientY}),D={width:pe[r.type].MIN_WIDTH,height:pe[r.type].MIN_HEIGHT},I=u(),z={id:String(I),type:r.type,position:V,measured:D,data:{label:r.type==="TASK"?qr(e,a("bpmn.task.label.prefix")):"",variant:r.variant,attribute:r.attribute},selected:!0},L=v(N({},z),{internals:{positionAbsolute:V}}),k=v(N({},L),{measured:{width:1,height:1}}),O=p(),B=r.type==="LANE",ee=O.filter(F=>B?F.type==="LANE"&&!F.parentId:F.type==="LANE"),oe=Zo(k,ee),K=[...O.map(F=>v(N({},F),{selected:!1})),L];oe&&(K=P(L,oe,K)),K=qt(K),B&&!oe&&(K=A(L.id,K)),K=y(K),t(K),x();let J=S.dataTransfer.getData("sourceId"),Q=c(),se=Q;if(J){let F={id:String(I+1),source:J,target:z.id},ne=r.type==="ANNOTATION"?N(N({},F),Mo):N(N({},F),rt);se=Q.concat(ne),o(se)}n("forceSave",{nodes:K,edges:se}),m(!1),i(null)},$=async(S,V,D)=>{let I=[...p()],z=new Set;D.forEach(O=>{let B=s(O.id),ee=O.type==="LANE",oe=I.filter(J=>J.id!==O.id&&(ee?J.type==="LANE"&&!J.parentId:J.type==="LANE")),K=Zo(B,oe);if(K){if(ee&&Zt({parentId:O.id,nodes:I,includeTypes:["LANE"]})){O.parentId&&(I=Y(O,I),z.add(O.id));return}I=P(B,K,I);return}O.parentId&&(I=Y(O,I),O.type==="LANE"&&z.add(O.id))}),I=w(I);let L=D.filter(O=>O.type==="LANE"&&!O.parentId).map(O=>O.id);for(let O of L)Pi(O,I)&&f&&(I=I.map(B=>B.id===O?v(N({},B),{position:N({},f)}):B));for(let O of z)I=A(O,I);if(D.some(O=>O.type!=="LANE"&&!O.parentId)){let O=I.filter(B=>B.type==="LANE"&&!B.parentId).map(B=>B.id);for(let B of O)I=Jt(B,I)}I=qt(I),I=y(I),t(I),g(I),h(null)},Z=(S,V)=>{h({x:V.position.x,y:V.position.y})},Y=(S,V)=>{var oe,K,J,Q,se,F,ne,ae;let D=s(S.parentId);if(!D)return V;let I=S.type==="LANE",z=V.filter(U=>U.parentId===D.id&&U.id!==S.id),L=z.filter(U=>U.type==="LANE"),k;if(I&&L.length===0)k=ie.MIN_HEIGHT;else if(I){let U=(K=(oe=S.measured)==null?void 0:oe.height)!=null?K:ie.MIN_HEIGHT;k=((Q=(J=D.measured)==null?void 0:J.height)!=null?Q:ie.MIN_HEIGHT)-U,k=Math.max(ie.MIN_HEIGHT,k)}else k=z.length>0?z.reduce((U,xe)=>{var W,j;return U+((j=(W=xe.measured)==null?void 0:W.height)!=null?j:0)},0)+Ne:Math.max(ie.MIN_HEIGHT,(F=(se=D.measured)==null?void 0:se.height)!=null?F:0);let{x:O,y:B}=ot(D),ee={x:O+((ne=S.position.x)!=null?ne:0),y:B+((ae=S.position.y)!=null?ae:0)};return V=V.map(U=>U.id===S.id?v(N({},U),{position:ee,parentId:void 0}):U.id===D.id?v(N({},U),{height:k,measured:v(N({},U.measured),{height:k})}):U),V=It(V),V};return{onDragOver:R,onDragLeave:G,onDrop:X,onNodeDrag:M,onNodeDragStart:Z,onNodeDragStop:$}};import{useReactFlow as h0}from"@xyflow/react";import{useTranslation as y0}from"@produto-lecom/lecom-ui";import{useEffect as x0}from"react";var E0=30,b0=e=>{if(!e||!(e instanceof HTMLElement))return!1;let t=e.tagName.toLowerCase(),o=t==="input"||t==="textarea",n=e.isContentEditable,r=t==="select",i=e.closest('[contenteditable="true"], input, textarea, select')!==null;return o||n||r||i},_0=e=>!b0(e.target),iu=({offset:e=E0,saveHistory:t})=>{let{t:o}=y0(),{getNodes:n,setNodes:r,getEdges:i,setEdges:a}=h0(),{getNextId:s}=st();x0(()=>{let l=c=>{if(c.ctrlKey&&c.key.toLowerCase()==="d"&&_0(c)){c.preventDefault(),c.stopPropagation();let d=n(),u=i(),m=d.filter(y=>y.selected);if(!m.length)return;let p=new Map,g=[],x=m.filter(y=>Ot(y.type,d));if(x.length===0)return;let f=u.filter(y=>x.some(w=>w.id===y.source)&&x.some(w=>w.id===y.target)),h=s(),_=x.map(y=>{var A;let w=String(h++);p.set(y.id,w);let C=v(N({},y),{id:w,selected:!0,position:{x:y.position.x+e,y:y.position.y+e}});if(y.type==="TASK"){let R=(A=y.data)==null?void 0:A.label,G=Go(R||o("bpmn.task.label.prefix"),[...d,...g]);C.data=v(N({},y.data),{label:G})}return g.push(C),C}),b=f.map(y=>v(N({},y),{id:String(h++),selected:!0,source:p.get(y.source)||y.source,target:p.get(y.target)||y.target})),T=[...d.map(y=>v(N({},y),{selected:!1})),..._],E=[...u.map(y=>v(N({},y),{selected:!1})),...b];r(T),a(E),t("forceSave",{nodes:T,edges:E})}};return document.addEventListener("keydown",l,!0),()=>{document.removeEventListener("keydown",l,!0)}},[n,r,i,a,s,e,o,t])};import{useEffect as N0,useRef as su}from"react";import{useReactFlow as T0}from"@xyflow/react";var v0=20,w0=50,Sn={UP:"ArrowUp",DOWN:"ArrowDown",LEFT:"ArrowLeft",RIGHT:"ArrowRight"},I0=e=>{if(!e||!(e instanceof HTMLElement))return!1;let t=e.tagName.toLowerCase(),o=t==="input"||t==="textarea",n=e.isContentEditable,r=t==="select",i=e.closest('[contenteditable="true"], input, textarea, select')!==null;return o||n||r||i},au=e=>{let{getNodes:t}=T0(),{mode:o,isMoveTool:n}=q(),r=su(0),i=su(new Map);N0(()=>{let a=s=>{if(o!=="edit"||!n||I0(s.target)||!Object.values(Sn).includes(s.key))return;let u=t().filter(_=>_.selected);if(u.length===0){i.current.clear();return}s.preventDefault();let m=Date.now(),p=m-r.current<500;r.current=m;let g=s.shiftKey?w0:v0,x=0,f=0;switch(s.key){case Sn.UP:f=-g;break;case Sn.DOWN:f=g;break;case Sn.LEFT:x=-g;break;case Sn.RIGHT:x=g;break}let h=u.map(_=>{let b=i.current.get(_.id);(!p||!b)&&(b={x:_.position.x,y:_.position.y});let T={x:b.x+x,y:b.y+f};return i.current.set(_.id,T),{id:_.id,dragging:!0,type:"position",position:T}});e&&e(h)};return window.addEventListener("keydown",a),()=>{window.removeEventListener("keydown",a)}},[t,e,o,n])};import{useReactFlow as C0}from"@xyflow/react";var cu={"start-event":"START_EVENT","end-event":"END_EVENT",task:"TASK","gateway-exclusive":"GATEWAY"},du={"start-event":"","end-event":"",task:"","gateway-exclusive":"EXCLUSIVE"},lu=(e,t)=>{if(!e){console.warn("Step not found");return}e=e.trim();let o=e.match(/(\<.*?\>)/)||[],n=e.match(/(\[.*?\])/)||[],r=e.match(/(\{.*?\})/)||[],i=e.match(/(--.*|\|.*?\|)/i)||[],a="",s="",l="";if(o.length){switch(o[1]){case"<start>":a="start-event";break;case"<end>":a="end-event";break}e=e.replace(o[1],"")}return n.length&&(a="task",s=n[1].replace(/\[|\]/g,""),e=e.replace(n[1],"")),r.length&&(a="gateway-exclusive",s=r[1].replace(/\{|\}/g,""),e=e.replace(r[1],"")),a||(a="task",s=e),i.length&&(l=i[1].replace(/(\||--)/g,""),e=e.replace(i[1],"")),e=e.trim(),t[e]||(t[e]={type:a,label:s}),{step:e,type:a,label:s,edgeLabel:l}},A0=e=>{e=e||"";let t=e.trim().split(`
42
42
  `),o={},n=[];return t.forEach(r=>{r=r||"";let i=r.trim().split("-->");if(i.length!==2){console.warn("Invalid number of steps");return}let a=lu(i[0],o),s=lu(i[1],o);a&&s&&n.push({sourceId:a.step,targetId:s.step,label:a.edgeLabel||s.edgeLabel||""})}),{components:o,connections:n}},uu=e=>{let{components:t,connections:o}=A0(e);return{nodes:t,edges:o}};var pu=()=>{let{setNodes:e,setEdges:t,fitView:o}=C0(),{getNextId:n}=st();return{importFromLia:i=>{let a=typeof i=="string"?i:i.diagramXml||"",{nodes:s,edges:l}=uu(a),c=[],d=new Map,u=!1,m=n();for(let[f,h]of Object.entries(s)){let _=String(m++),b=cu[h.type],T=du[h.type];b==="START_EVENT"&&(u=!0),d.set(f,_);let E=pe[b].MIN_WIDTH,y=pe[b].MIN_HEIGHT;c.push({id:_,type:b,data:{label:h.label||"",variant:T,attribute:""},position:{x:0,y:0},width:E,height:y,measured:{width:E,height:y}})}let p=[];for(let f of l){let h=v(N({},rt),{id:String(m++),source:d.get(f.sourceId)||f.sourceId,target:d.get(f.targetId)||f.targetId});p.push(h)}if(!u&&c.length>0){let f=String(m++),h={id:f,type:"START_EVENT",data:{label:"",variant:"",attribute:""},position:{x:0,y:0},width:pe.START_EVENT.MIN_WIDTH,height:pe.START_EVENT.MIN_HEIGHT,measured:{width:pe.START_EVENT.MIN_WIDTH,height:pe.START_EVENT.MIN_HEIGHT}};c.unshift(h);let _=c[1];if(_){let b=v(N({},rt),{id:String(m++),source:f,target:_.id});p.unshift(b)}}let{nodes:g,edges:x}=Fc(c,p);e(g),t(x),o({padding:zo,minZoom:Yo,maxZoom:Wo})}}};import{useEffect as S0,useCallback as M0}from"react";var P0={origin:"*",debug:!1};function fu(e,t=P0){let{origin:o,debug:n}=t,r=M0((i,a)=>{let s={event:i,data:[i,{event:i,data:a}]};window.parent.postMessage(s,o||"*")},[o]);return S0(()=>{let i=a=>{let s=a.data;if(!(s!=null&&s.event)||(s==null?void 0:s.data)===void 0)return;let{event:l,data:c}=s,d;if(Array.isArray(c)){let[,u]=c;d=u.data}else d=c;n&&(console.debug("[postMessage] received:",s),console.debug("[postMessage] eventData:",d)),l&&e[l]&&e[l](d)};return window.addEventListener("message",i),()=>window.removeEventListener("message",i)},[e,n]),{sendMessage:r}}import{useNodesInitialized as L0}from"@xyflow/react";import{useEffect as mu}from"react";var gu=()=>{let e=L0(),{initialDiagram:t,setIsInitialized:o}=q(),{importFromMxGraph:n}=Fo();mu(()=>{t&&n(t)},[t,n,o]),mu(()=>{if(!e)return;(async()=>{await On(),o(!0)})()},[e,o])};import{useCallback as hu}from"react";import{useReactFlow as k0}from"@xyflow/react";function yu(){let{setTaskStatuses:e,clearTaskStatuses:t,calculateFlowPath:o}=jt(),{getEdges:n}=k0(),r=Xn(),i=hu(s=>{if(!(s!=null&&s.activities))return;e(s.activities);let l=s.activities.map(d=>d.diagramId),c=n();o(c,l),setTimeout(()=>{r()},0)},[e,o,n,r]),a=hu(()=>{t(),setTimeout(()=>{r()},0)},[t,r]);return{handleTasksStatus:i,handleClearTaskStatus:a}}import{useReactFlow as R0}from"@xyflow/react";import{useCallback as Ct,useState as D0,useEffect as xu}from"react";import{useDebouncedCallback as O0}from"use-debounce";var V0=500,Eu=100,bu=(e=!1)=>{let{getNodes:t,getEdges:o,setNodes:n,setEdges:r}=R0(),[i,a]=D0({history:[],currentStep:0}),{history:s,currentStep:l}=i,c=l>0,d=l<s.length-1,u=Ct((E,y)=>{n(E[y].nodes),r(E[y].edges)},[n,r]),m=Ct(()=>{if(l>0){let E=l-1;a(y=>v(N({},y),{currentStep:E})),u(s,E)}},[l,s,u]),p=Ct(()=>{if(l<s.length-1){let E=l+1;a(y=>v(N({},y),{currentStep:E})),u(s,E)}},[s,l,u]),g=Ct(E=>{a(y=>{let w=y.history[y.currentStep];if(w&&JSON.stringify(w)===JSON.stringify(E))return y;let R=[...y.history.slice(0,y.currentStep+1),E],G=R.length>Eu?R.slice(R.length-Eu):R;return{history:G,currentStep:G.length-1}})},[]),x=Ct((E,y)=>{let w=E.map(A=>v(N({},A),{selected:!1,className:"",data:v(N({},A.data),{hasError:!1})})),C=y.map(A=>v(N({},A),{data:v(N({},A.data),{hasError:!1})}));return{nodes:qt(w),edges:C}},[]),f=Ct(()=>x(t(),o()),[t,o,x]),h=O0(()=>{let E=f();g(E)},V0),_=Ct((E,y)=>{if(!e)return;if(s.length===0){let A=f();a({history:[A],currentStep:0})}if(E==="forceSave"){if(y){g(x(y.nodes,y.edges));return}h();return}E.some(A=>A.type==="select")||E.some(A=>A.type==="position"&&A.dragging)||h()},[e,h,s.length,f,g,x]);xu(()=>{if(e&&s.length===0){let E=f();a({history:[E],currentStep:0})}},[e,s.length,f]);let b=Ct(E=>{a({history:E||[],currentStep:0})},[]),T=Ct(()=>{a({history:[],currentStep:0})},[]);return xu(()=>{let E=y=>{(y.ctrlKey||y.metaKey)&&(y.shiftKey&&y.key.toLowerCase()==="z"?(y.preventDefault(),p()):y.key.toLowerCase()==="z"&&(y.preventDefault(),m()))};return document.addEventListener("keydown",E),()=>{document.removeEventListener("keydown",E)}},[m,p]),{history:s,undo:m,redo:p,canUndo:c,canRedo:d,saveHistory:_,resetHistory:b,clearHistory:T}};var _u=()=>{let{t:e}=H0(),[t,o,n]=B0([]),[r,i,a]=G0([]),{getNodes:s,getNode:l}=Y0(),{toast:c}=We(),d=W0(),{instanceId:u,isInitialized:m,setIsConnecting:p,setIsMultipleSelection:g,onElementClick:x}=q(),{updateHelperLines:f,HelperLines:h}=Tr(),{undo:_,redo:b,canUndo:T,canRedo:E,saveHistory:y}=bu(m),{onNodeDrag:w,onDrop:C,onDragOver:A,onDragLeave:R,onNodeDragStop:G,onNodeDragStart:M}=ru({nodes:t,setNodes:o,setEdges:i,saveHistory:y}),{isValidConnection:P,onConnect:X,onReconnect:$,onReconnectStart:Z,onReconnectEnd:Y,setReconnectingEdge:S,clearReconnectingEdge:V}=Fd({setEdges:i,saveHistory:y}),{handleValidationComplete:D,clearValidation:I,dismissValidationPanel:z,validateDiagram:L,getIsClearingValidation:k}=eu(),{importFromLia:O}=pu(),{handleTasksStatus:B,handleClearTaskStatus:ee}=yu(),{clearPathEdges:oe}=jt(),{emitElementChanges:K,handleNodeChanges:J,handleEdgeChanges:Q}=ti(),se=Xn();nu({saveHistory:y}),iu({saveHistory:y}),gu();let F=St(()=>{o([]),i([]),oe(),setTimeout(se,0)},[o,i,oe,se]);fu({LIA_CREATE_DIAGRAM:O,CLEAR_DIAGRAM:F,TASKS_STATUS:B,CLEAR_TASKS_STATUS:ee});let{selectElements:ne,clearSelection:ae}=Vt(),{importFromMxGraph:U,exportToMxGraph:xe}=Fo(),{configureElement:W,getConfigureElement:j}=Pr(),ce=St(()=>t.length+r.length,[t,r]);F0(()=>(xt.set(u,{importFromMxGraph:U,exportToMxGraph:xe,selectElements:ne,clearSelection:ae,configureElement:W,getConfigureElement:j,getElementsCount:ce,setReconnectingEdge:S,clearReconnectingEdge:V}),()=>{xt.delete(u)}),[u,U,xe,ne,ae,W,j,ce,S,V]);let re=St((be,he)=>{if(he.type!=="TASK"&&he.type!=="GATEWAY")return;let me=j(he.id);me&&(x==null||x(me))},[j,x]),fe=St((be,he)=>{if(he.type!=="SEQUENCE_EDGE")return;let me=l(he.source),_e=l(he.target),{isFromStartEvent:qe,isGatewayToGateway:et,isActiviyToAndGateway:Be}=zn(me,_e);if(!(!qe&&!et&&!Be))return;let ft=j(he.id);ft&&(x==null||x(ft))},[j,l,x]),ue=St(be=>{let he=f(be,t);n(he),y(be),k()||z(),J(be)},[t,n,y,k,z,f,J]),ye=St(be=>{a(be),y(be),k()||z(),Q(be)},[a,y,k,z,Q]);au(ue);let ve=St(({nodes:be,edges:he})=>{g(be.length+he.length>=2)},[g]);z0({onChange:ve});let Oe=St(async({nodes:be})=>be.some(me=>me.type==="LANE"&&t.some(_e=>_e.parentId===me.id))?(c({variant:"error",title:e("validation.errors.title"),content:e("editor.toolbar.delete_pool_lane_error")}),!1):!0,[t,e,c]),Ge=()=>{y("forceSave"),K(),z()},$e=()=>{p(!0)},pt=()=>{p(!1),z()},Ke=St(be=>{let he=new Set(be.filter(me=>me.type==="LANE"&&!!me.parentId).map(me=>me.parentId));he.size!==0&&setTimeout(()=>{var qe,et;let me=s(),_e=new Map(me.map(Be=>[Be.id,Be]));for(let Be of he){let Et=Qt(me.filter(bt=>bt.type==="LANE"&&bt.parentId===Be));if(Et.length===0)continue;let ft=0;for(let bt of Et)_e.set(bt.id,v(N({},bt),{position:{x:ie.HEADER_WIDTH,y:ft}})),ft+=(et=(qe=bt.measured)==null?void 0:qe.height)!=null?et:0;let go=_e.get(Be);go&&_e.set(Be,v(N({},go),{height:ft,measured:v(N({},go.measured),{height:ft})}))}o(me.map(Be=>{var Et;return(Et=_e.get(Be.id))!=null?Et:Be}))},0)},[s,o]);return{nodes:t,setNodes:o,edges:r,setEdges:i,events:{isValidConnection:P,onConnect:X,onReconnect:$,onReconnectStart:Z,onReconnectEnd:Y,onDrop:C,onDragOver:A,onDragLeave:R,onNodeDrag:w,onNodeDragStop:G,onNodeDragStart:M,onNodeClick:re,onEdgeClick:fe,onDropCapture:Ge,onConnectStart:$e,onConnectEnd:pt,onSelectionEnd:()=>setTimeout(()=>d.setState({nodesSelectionActive:!1}),0),onNodesChange:ue,onEdgesChange:ye,onBeforeDelete:Oe,onNodesDelete:Ke},ui:{handleCloseValidationPanel:I},controls:{undo:_,redo:b,canUndo:T,canRedo:E},components:{HelperLines:h},actions:{saveHistory:y,selectElements:ne,clearSelection:ae,exportToMxGraph:xe,validateDiagram:L,handleValidationComplete:D,setReconnectingEdge:S,clearReconnectingEdge:V}}};import{useReactFlow as X0}from"@xyflow/react";import{useCallback as U0,useEffect as $0,useRef as K0,useState as q0}from"react";var Z0=".react-flow__node, .react-flow__edge, .react-flow__node-toolbar";function Nu(e,t,o){let[n,r]=q0(!1),i=K0(null),{getViewport:a,setViewport:s}=X0(),l=U0(()=>{i.current=null,r(!1)},[]);return $0(()=>{let c=e.current;if(!c)return;let d=p=>{if(!vn.some(x=>x===p.button)||t.current||o.current||(r(!0),!(p.target instanceof Element))||!p.target.closest(Z0))return;p.preventDefault(),p.stopPropagation();let g=a();i.current={pointerX:p.clientX,pointerY:p.clientY,viewportX:g.x,viewportY:g.y,zoom:g.zoom}},u=p=>{let g=i.current;if(g){if((p.buttons&xs)===0){l();return}s({x:g.viewportX+(p.clientX-g.pointerX),y:g.viewportY+(p.clientY-g.pointerY),zoom:g.zoom})}},m=p=>{(p.buttons&xs)===0&&l()};return c.addEventListener("pointerdown",d,!0),window.addEventListener("pointermove",u),window.addEventListener("pointerup",m),window.addEventListener("pointercancel",l),window.addEventListener("blur",l),()=>{c.removeEventListener("pointerdown",d,!0),window.removeEventListener("pointermove",u),window.removeEventListener("pointerup",m),window.removeEventListener("pointercancel",l),window.removeEventListener("blur",l)}},[e,t,o,a,s,l]),n}import{jsx as Tu}from"react/jsx-runtime";var ri=({id:e,className:t})=>Tu("marker",{id:e,className:H("react-flow__arrowhead",t),viewBox:"0 0 10 10",refX:"9",refY:"5",markerWidth:"7",markerHeight:"7",orient:"auto",markerUnits:"userSpaceOnUse",fill:"currentColor",stroke:"currentColor",children:Tu("path",{d:"M 0 0 L 10 5 L 0 10 Z"})});import{jsx as ii,jsxs as J0}from"react/jsx-runtime";var vu=()=>ii("svg",{style:{position:"absolute",top:0,left:0},children:J0("defs",{children:[ii(ri,{id:"sequence-edge-marker",className:"text-grey-500"}),ii(ri,{id:"sequence-edge-marker-hovered",className:"text-grey-800"}),ii(ri,{id:"sequence-edge-marker-highlighted",className:"text-blue-500"})]})});import{Tooltip as EE,TooltipContent as bE,TooltipTrigger as _E,useTranslation as NE}from"@produto-lecom/lecom-ui";import{useKeyPress as Wu,useReactFlow as Bx}from"@xyflow/react";import{Button as pi,Tooltip as fi,TooltipContent as mi,TooltipTrigger as gi,useTranslation as zx}from"@produto-lecom/lecom-ui";import{HandIcon as Yx,ListCheckIcon as Wx,Loader2Icon as Fx,MapIcon as Xx,MousePointerIcon as Ux}from"lucide-react";import{useCallback as Ns,useEffect as Fu,useState as $x}from"react";import{Tooltip as yx,TooltipContent as xx,TooltipTrigger as Ex,useTranslation as bx}from"@produto-lecom/lecom-ui";var Mn=(b=>(b.START_EVENT="START_EVENT",b.END_EVENT="END_EVENT",b.TASK="TASK",b.SUBPROCESS="SUBPROCESS",b.GATEWAY="GATEWAY",b.LANE="LANE",b.ANNOTATION="ANNOTATION",b.CONNECTION="CONNECTION",b.INTERMEDIATE_EVENT="INTERMEDIATE_EVENT",b.ACTIVITY="ACTIVITY",b.PROCESS_INTERFACE="PROCESS_INTERFACE",b.WORKFLOW_INTERFACE="WORKFLOW_INTERFACE",b.VARIANT_ACTIVITY="VARIANT_ACTIVITY",b.AUTO_ACTIVITY="AUTO_ACTIVITY",b.DATA_STORE="DATA_STORE",b.DATA_OBJECT="DATA_OBJECT",b.DATA_OUTPUT="DATA_OUTPUT",b.DATA_INPUT="DATA_INPUT",b.MARKER="MARKER",b))(Mn||{});import{Button as cx,useTranslation as dx}from"@produto-lecom/lecom-ui";import{useReactFlow as ux}from"@xyflow/react";var wu=async e=>new Promise((t,o)=>{let n=new FileReader;n.onload=r=>{var i;t((i=r.target)==null?void 0:i.result)},n.onerror=r=>{var i;o((i=r.target)==null?void 0:i.error)},n.readAsText(e)});function Iu({columns:e=[],rows:t=[],fileName:o="report"}){if(!e.length||!t.length)return;let r="data:text/csv;charset=utf-8,"+[e,...t].map(a=>a.join(",")).join(`
43
43
  `),i=encodeURI(r);si(i,`${o}.csv`)}var si=(e,t)=>{let o=document.createElement("a");o.setAttribute("download",t),o.setAttribute("href",e),document.body.appendChild(o),o.click(),document.body.removeChild(o)};function Au(e){return e==null?void 0:e.replaceAll("&#xA;"," ")}var E3={START_EVENT:"START_EVENT",END_EVENT:"END_EVENT",TASK:"TASK",GATEWAY:"GATEWAY",ANNOTATION:"ANNOTATION"},Cu={script:"SCRIPT",subprocess:"SUBPROCESS"},Su={"marker-loop":"LOOP"},Mu={complex:"COMPLEX",none:"EXCLUSIVE",exclusive:"EXCLUSIVE",parallel:"PARALLEL",inclusive:"EXCLUSIVE"};var fo=({cell:e,type:t,variant:o="",attribute:n=""})=>{let{_attributes:r,mxGeometry:i}=e,{value:a,parent:s}=r,l=Number(i._attributes.width),c=Number(i._attributes.height),d=s==="1"?void 0:s;return{id:r.id,parentId:d,type:t,data:{label:a||"",variant:o,attribute:n},position:{x:Number(i._attributes.x)||0,y:Number(i._attributes.y)||0},width:l,height:c,measured:{width:l,height:c}}},j0=e=>{let{subType:t,style:o}=e._attributes,n="imported";return["none"].includes(t)||(n="adapted"),e.mxGeometry._attributes.width=pe.START_EVENT.MIN_WIDTH,e.mxGeometry._attributes.height=pe.START_EVENT.MIN_HEIGHT,{node:fo({cell:e,type:"START_EVENT"}),status:n,originalType:o}},ex=e=>{let{subType:t,style:o}=e==null?void 0:e._attributes,n="imported";return["none"].includes(t)||(n="adapted"),e.mxGeometry._attributes.width=pe.END_EVENT.MIN_WIDTH,e.mxGeometry._attributes.height=pe.END_EVENT.MIN_HEIGHT,{node:fo({cell:e,type:"END_EVENT"}),status:n,originalType:o}},tx=(e,t)=>{let{id:o,subType:n,style:r}=e==null?void 0:e._attributes,i=Cu[n],a=t.get(o)||"",s=Su[a]||"",l=s==="LOOP",c="imported";return!["script","none"].includes(n)&&!l&&(c="adapted"),e.mxGeometry._attributes.width=Pt(e.mxGeometry._attributes.width||0,pe.TASK.MIN_WIDTH),e.mxGeometry._attributes.height=Pt(e.mxGeometry._attributes.height||0,pe.TASK.MIN_HEIGHT),{node:fo({cell:e,type:"TASK",variant:i,attribute:s}),status:c,originalType:r}},ox=e=>{let{style:t,subType:o}=e==null?void 0:e._attributes,n=Mu[o],r=["none","inclusive","event-based"],i="imported";return r.includes(o)&&(i="adapted"),e.mxGeometry._attributes.width=pe.GATEWAY.MIN_WIDTH,e.mxGeometry._attributes.height=pe.GATEWAY.MIN_HEIGHT,{node:fo({cell:e,type:"GATEWAY",variant:n}),status:i,originalType:t}},nx=e=>{let{style:t}=e==null?void 0:e._attributes;return{node:fo({cell:e,type:"LANE"}),status:"imported",originalType:t}},rx=e=>{let{style:t}=e==null?void 0:e._attributes;return e.mxGeometry._attributes.width=Pt(e.mxGeometry._attributes.width||0,pe.ANNOTATION.MIN_WIDTH),e.mxGeometry._attributes.height=Pt(e.mxGeometry._attributes.height||0,pe.ANNOTATION.MIN_HEIGHT),{node:fo({cell:e,type:"ANNOTATION"}),status:"imported",originalType:t}},Pu=e=>{let{style:t}=e==null?void 0:e._attributes;return e.mxGeometry._attributes.width=pe.UNSUPPORTED.MIN_WIDTH,e.mxGeometry._attributes.height=pe.UNSUPPORTED.MIN_HEIGHT,{node:fo({cell:e,type:"UNSUPPORTED"}),status:"unsupported",originalType:t}},Lu=(e,t)=>{let{id:o,source:n,target:r,value:i}=e._attributes;return v(N({},rt),{id:o,source:t.get(n)||n,target:t.get(r)||r,data:{label:i||""}})},ku={TASK:tx,GATEWAY:ox,START_EVENT:j0,END_EVENT:ex,LANE:nx,ANNOTATION:rx};var ix=e=>{let t=new Map,o=Object.values(Mn),n=[],r=new Map;e.forEach(s=>{var c;let l=(c=s._attributes)==null?void 0:c.type;if(l==="MARKER"){r.set(s._attributes.parent,s._attributes.style);return}if(o.includes(l)){n.push(s);return}});let i=[],a=[];for(let s of n){let{type:l}=s._attributes,c=ku[l]||Pu,{node:d,status:u,originalType:m}=c(s,r);a.push(d),i.push({originalType:m,type:d.type,variant:d.data.variant,value:Au(d.data.label),status:u})}return{nodes:a,governanceIdToNodeIdMap:t,summary:i}},sx=(e,t)=>e.filter(r=>{var i;return(i=r._attributes)==null?void 0:i.edge}).map(r=>Lu(r,t)),ax=e=>{let{mxGraphModel:t}=e,{nodes:o,governanceIdToNodeIdMap:n,summary:r}=ix(t.root.mxCell),i=sx(t.root.mxCell,n);return{nodes:o,edges:i,summary:r}},lx=async e=>{let t=await wu(e),o=Ur(t);if(!o)throw new Error("EMPTY_FILE");let{metadata:n,mxGraphModel:r}=o.modeler||{},i=(n==null?void 0:n.app)&&(n==null?void 0:n.diagramType)&&(n==null?void 0:n.version),a=r==null?void 0:r.root;if(!i||!a)throw new Error("INVALID_FILE");if(!Object.keys(r.root.mxCell||{}).length)throw new Error("CONTAIN_NO_CELLS");return{metadata:n,mxGraphModel:r}},Ru=async e=>{try{let t=await lx(e),{nodes:o,edges:n,summary:r}=ax(t)||{};return{nodes:o,edges:n,summary:r}}catch(t){throw t}};import{jsx as px}from"react/jsx-runtime";var Du=()=>{let{t:e}=dx(),{toast:t}=We(),{setNodes:o,setEdges:n,fitView:r}=ux(),i=s=>{let l=[e("adapter.governance.report.columns.type"),e("adapter.governance.report.columns.value"),e("adapter.governance.report.columns.status")],c=s.map(d=>[d.originalType,d.value,e(`adapter.governance.report.status.${d.status.toLowerCase()}`)]);t({variant:"warning",content:e("adapter.governance.success.incompatible_cells"),duration:1e3*60*1,action:px(cx,{size:"small",variant:"ghost",onClick:()=>Iu({columns:l,rows:c,fileName:"governance-imported-cells"}),children:e("adapter.governance.action.download")})})};return{importFromGovernance:async s=>{try{let{nodes:l,edges:c,summary:d}=await Ru(s);if(o(m=>m.concat(l)),n(m=>m.concat(c)),r({padding:zo,minZoom:Yo,maxZoom:Wo}),d.some(m=>m.status==="unsupported")){i(d);return}t({variant:"success",content:e("adapter.governance.success.default")})}catch(l){let c=l instanceof Error?l.message:"DEFAULT";t({variant:"error",content:e(`adapter.governance.error.${c}`)})}}}};import{Button as fx}from"@produto-lecom/lecom-ui";import{useRef as mx}from"react";import{Fragment as gx,jsx as Ou,jsxs as hx}from"react/jsx-runtime";var Vu=s=>{var l=s,{children:e,accept:t="*",multiple:o=!1,disabled:n=!1,onClick:r,onFilesSelected:i}=l,a=mt(l,["children","accept","multiple","disabled","onClick","onFilesSelected"]);let c=mx(null),d=m=>{let p=m.target.files;p!=null&&p.length&&i(p),c.current&&(c.current.value="")};return hx(gx,{children:[Ou(fx,v(N({disabled:n,onClick:m=>{var p;(p=c.current)==null||p.click(),r==null||r(m)}},a),{children:e})),Ou("input",{type:"file",ref:c,className:"sr-only",accept:t,multiple:o,disabled:n,onChange:d})]})};import{jsx as ai,jsxs as _x}from"react/jsx-runtime";var Hu=({disabled:e=!1})=>{let{t}=bx(),{toast:o}=We(),{importFromGovernance:n}=Du(),r=()=>{if(e){o({variant:"error",content:t("adapter.governance.error.ALREADY_INITIALIZED")});return}},i=a=>{let s=a[0];if(!s){o({variant:"error",content:t("adapter.governance.error.NO_FILE")});return}n(s)};return _x(yx,{children:[ai(Ex,{asChild:!0,children:ai(Vu,{className:"[&>svg]:size-7 p-0",variant:"ghost",size:"small",color:"grey",iconButton:!0,accept:".mdr",disabled:e,onClick:r,onFilesSelected:i,children:ai(Bs,{})})}),ai(xx,{color:"black",children:t("editor.controls.actions.import_governance")})]})};import{jsx as Nx}from"react/jsx-runtime";var Es=({shortcut:e})=>Nx("span",{className:"min-h-7.5 inline-flex justify-center items-center py-0.5 px-1.5 bg-grey-100 border border-grey-300 font-mono text-gray-800 shadow-lg rounded-md text-grey-900",children:e});import{Button as Mx,DropdownMenu as Px,DropdownMenuContent as Lx,DropdownMenuItem as _s,DropdownMenuTrigger as kx,Tooltip as ci,TooltipContent as di,TooltipTrigger as ui,useTranslation as Rx}from"@produto-lecom/lecom-ui";import{FileCodeIcon as Dx,FileImageIcon as Ox,FolderOutputIcon as Vx,PrinterIcon as Hx}from"lucide-react";import{useState as Gx}from"react";import{useTranslation as Tx}from"@produto-lecom/lecom-ui";import{useReactFlow as vx}from"@xyflow/react";import{toPng as Gu,toSvg as wx}from"html-to-image";import{useState as Ix}from"react";var Ax=3,bs="diagram",li=50,Cx=96,Sx=25.4,Bu=e=>e*Sx/Cx,zu=()=>{let{t:e}=Tx(),{toast:t}=We(),{getNodes:o,getNodesBounds:n}=vx(),{clearSelection:r}=Vt(),[i,a]=Ix({png:!1,html:!1,print:!1}),s=()=>{let m=is(o()),p=n(m),g=p.width+li*2,x=p.height+li*2,f=li-p.x,h=li-p.y;return{width:g,height:x,style:{width:`${g}px`,height:`${x}px`,transform:`translate(${f}px, ${h}px)`,transformOrigin:"top left"}}},l=async(m,p)=>{a(g=>v(N({},g),{[p]:!0})),await r();try{if(is(o()).length===0){t({content:e("editor.controls.actions.export.feedback.empty"),variant:"warning"});return}let x=Uc();if(!x)throw new Error("Flow element not found");let f=s();return await m(x,f)}catch(g){console.error("Diagram export failed",g),t({content:e("editor.controls.actions.export.feedback.error"),variant:"error"})}finally{a(g=>v(N({},g),{[p]:!1}))}};return{exportAsPng:async(m=bs)=>{await l(async(p,g)=>{let x=await Gu(p,v(N({},g),{backgroundColor:"#fcfcfc",skipFonts:!0}));si(x,`${m}.png`)},"png")},exportAsHtml:async(m=bs)=>{await l(async(p,g)=>{let x=await wx(p,v(N({},g),{backgroundColor:"#fcfcfc",skipFonts:!0})),f=`
44
44
  <!DOCTYPE html>
@@ -83,4 +83,4 @@ var rp=Object.defineProperty,ip=Object.defineProperties;var sp=Object.getOwnProp
83
83
  height: 100%;
84
84
  object-fit: contain;
85
85
  }
86
- `,h.head.appendChild(T),h.title=m;let E=h.createElement("img");E.alt="Diagram",h.body.appendChild(E),await new Promise((A,R)=>{let G=!1,M=P=>{G||(G=!0,P?R(P):A())};E.onload=()=>M(),E.onerror=()=>M(new Error("Failed to load print image")),E.src=x,E.complete&&E.naturalWidth>0&&M()});let y=f.contentWindow;if(!y)throw document.body.removeChild(f),new Error("Unable to access print iframe window");let w=()=>{f.parentNode&&document.body.removeChild(f)};y.addEventListener("afterprint",w,{once:!0}),window.setTimeout(w,6e4),y.focus(),y.print()},"print")},isPrintingPng:i.png,isPrintingHtml:i.html,isPrinting:i.print}};import{jsx as Me,jsxs as Xo}from"react/jsx-runtime";function Yu(){let{t:e}=Rx(),{exportAsPng:t,exportAsHtml:o,printDiagram:n,isPrinting:r,isPrintingPng:i,isPrintingHtml:a}=zu(),[s,l]=Gx(!1);return Xo(Px,{modal:!1,open:s,onOpenChange:l,children:[Me(kx,{asChild:!0,children:Me("div",{children:Xo(ci,{children:[Me(ui,{asChild:!0,children:Me(Mx,{size:"small",variant:"ghost",color:"grey",iconButton:!0,children:Me(Vx,{})})}),!s&&Me(di,{color:"black",children:e("editor.controls.actions.export.title")})]})})}),Xo(Lx,{align:"center",side:"top",sideOffset:16,className:"min-w-0 flex flex-col gap-2 p-2 shadow-sm",children:[Xo(ci,{children:[Me(ui,{asChild:!0,children:Me(_s,{className:"p-1.5",disabled:i,onClick:()=>t(),children:Me(Ox,{})})}),Me(di,{side:"right",color:"black",children:e("editor.controls.actions.export.png")})]}),Xo(ci,{children:[Me(ui,{asChild:!0,children:Me(_s,{className:"p-1.5",disabled:a,onClick:()=>o(),children:Me(Dx,{})})}),Me(di,{side:"right",color:"black",children:e("editor.controls.actions.export.html")})]}),Xo(ci,{children:[Me(ui,{asChild:!0,children:Me(_s,{className:"p-1.5",disabled:r,onClick:()=>n(),children:Me(Hx,{})})}),Me(di,{side:"right",color:"black",children:e("editor.controls.actions.export.print")})]})]})]})}import{Fragment as Xu,jsx as Se,jsxs as Mt}from"react/jsx-runtime";var Uu=({nodes:e,edges:t,validateDiagram:o,handleValidationComplete:n})=>{let{t:r}=zx(),{clearSelection:i}=Vt(),{mode:a,isMinimapOpen:s,setIsMinimapOpen:l,isMoveTool:c,isHandTool:d,setIsMoveTool:u,setIsHandTool:m}=q(),{getNodes:p,getEdges:g}=Bx(),x=Wu(["v","V"]),f=Wu(["h","H"]),h=Ns(()=>{i(),m(!0),u(!1)},[i,m,u]),_=Ns(()=>{u(!0),m(!1)},[u,m]),[b,T]=$x(!1),E=Ns(async()=>{T(!0);let y=p(),w=g(),C=await o({nodes:y,edges:w});n(C),T(!1)},[p,g,o,n]);return Fu(()=>{x&&!c&&a==="edit"&&_()},[x,_,c,a]),Fu(()=>{f&&!d&&a==="edit"&&h()},[f,h,d,a]),Mt("div",{className:"flex items-center gap-2 px-3 py-2 bg-white rounded-sm shadow-md",children:[a==="edit"&&Mt(Xu,{children:[Mt(fi,{children:[Se(gi,{asChild:!0,children:Se(pi,{size:"small",variant:"ghost",color:"grey",className:H(c&&"bg-grey-400"),iconButton:!0,onClick:_,children:Se(Ux,{})})}),Mt(mi,{color:"black",className:"flex items-center gap-2",children:[r("editor.controls.actions.move_tool"),Se(Es,{shortcut:"V"})]})]}),Mt(fi,{children:[Se(gi,{asChild:!0,children:Se(pi,{size:"small",variant:"ghost",color:"grey",className:H(d&&"bg-grey-400"),iconButton:!0,onClick:h,children:Se(Yx,{})})}),Mt(mi,{color:"black",className:"flex items-center gap-2",children:[r("editor.controls.actions.hand_tool")," ",Se(Es,{shortcut:"H"})]})]})]}),Se(Yu,{}),a==="edit"&&Mt(Xu,{children:[Mt(fi,{children:[Se(gi,{asChild:!0,children:Se(pi,{size:"small",variant:"ghost",color:"grey",iconButton:!0,disabled:b,onClick:E,children:b?Se(Fx,{className:"animate-spin"}):Se(Wx,{})})}),Se(mi,{color:"black",children:r(b?"editor.controls.actions.check_loading":"editor.controls.actions.check")})]}),Se(Hu,{disabled:e.length>0||t.length>0})]}),Mt(fi,{children:[Se(gi,{asChild:!0,children:Se(pi,{size:"small",variant:"ghost",color:"grey",className:H(s&&"bg-grey-400"),iconButton:!0,onClick:()=>l(!s),children:Se(Xx,{})})}),Se(mi,{color:"black",children:r(s?"editor.controls.actions.minimap.close":"editor.controls.actions.minimap.open")})]})]})};import{Button as $u,Tooltip as Ku,TooltipContent as qu,TooltipTrigger as Zu,useTranslation as Kx}from"@produto-lecom/lecom-ui";import{RedoIcon as qx,UndoIcon as Zx}from"lucide-react";import{jsx as Kt,jsxs as Ts}from"react/jsx-runtime";var Ju=({undo:e,redo:t,canUndo:o,canRedo:n})=>{let{t:r}=Kx();return Ts("div",{className:"flex items-center gap-2 px-3 py-2 bg-white rounded-sm shadow-md",children:[Ts(Ku,{children:[Kt(Zu,{asChild:!0,children:Kt($u,{size:"small",variant:"ghost",color:"grey",iconButton:!0,disabled:!o,onClick:e,children:Kt(Zx,{})})}),Kt(qu,{color:"black",children:r("editor.controls.history.undo")})]}),Ts(Ku,{children:[Kt(Zu,{asChild:!0,children:Kt($u,{size:"small",variant:"ghost",color:"grey",iconButton:!0,disabled:!n,onClick:t,children:Kt(qx,{})})}),Kt(qu,{color:"black",children:r("editor.controls.history.redo")})]})]})};import{useEdges as Jx,useNodes as Qx,useReactFlow as jx}from"@xyflow/react";import{Button as hi,Tooltip as yi,TooltipContent as xi,TooltipTrigger as Ei,useTranslation as eE}from"@produto-lecom/lecom-ui";import{ScanIcon as tE,ZoomIn as oE,ZoomOut as nE}from"lucide-react";import{jsx as De,jsxs as Pn}from"react/jsx-runtime";var Qu=()=>{let{t:e}=eE(),t=Qx(),o=Jx(),{zoomIn:n,zoomOut:r,zoomTo:i,fitView:a}=jx(),s=t.length===0&&o.length===0;return Pn("div",{className:"flex items-center gap-2 px-3 py-2 bg-white rounded-sm shadow-md",children:[Pn(yi,{children:[De(Ei,{asChild:!0,children:De(hi,{iconButton:!0,size:"small",color:"grey",variant:"ghost",disabled:s,onClick:()=>a(),children:De(tE,{})})}),De(xi,{color:"black",children:e("editor.controls.zoom.fit")})]}),Pn(yi,{children:[De(Ei,{asChild:!0,children:De(hi,{iconButton:!0,size:"small",color:"grey",variant:"ghost",disabled:s,onClick:()=>r(),children:De(nE,{})})}),De(xi,{color:"black",children:e("editor.controls.zoom.out")})]}),Pn(yi,{children:[De(Ei,{asChild:!0,children:De(hi,{iconButton:!0,size:"small",color:"grey",variant:"ghost",disabled:s,onClick:()=>i(1),children:De(Ws,{})})}),De(xi,{color:"black",children:e("editor.controls.zoom.reset")})]}),Pn(yi,{children:[De(Ei,{asChild:!0,children:De(hi,{iconButton:!0,size:"small",color:"grey",variant:"ghost",disabled:s,onClick:()=>n(),children:De(oE,{})})}),De(xi,{color:"black",children:e("editor.controls.zoom.in")})]})]})};import{useNodes as rE}from"@xyflow/react";import{Button as iE,Tooltip as sE,TooltipContent as aE,TooltipTrigger as lE,useTranslation as cE}from"@produto-lecom/lecom-ui";import{useRef as dE,useState as uE}from"react";import{jsx as mo,jsxs as ju}from"react/jsx-runtime";var ep=()=>{let e=dE(null),{t}=cE(),{setDraggableNode:o}=Ho(),n=rE(),{setIsDragging:r}=q(),[i,a]=uE(void 0),s=[{type:"START_EVENT",icon:Vn,label:t("bpmn.start_event.variant.default")},{type:"END_EVENT",icon:ho,label:t("bpmn.end_event.variant.default")},{type:"TASK",icon:$o,label:t("bpmn.task.variant.default")},{type:"TASK",variant:"SUBPROCESS",icon:Ks,label:t("bpmn.task.variant.subprocess")},{type:"TASK",variant:"SCRIPT",icon:$s,label:t("bpmn.task.variant.script")},{type:"TASK",attribute:"LOOP",icon:Us,label:t("bpmn.task.attribute.loop")},{type:"GATEWAY",variant:"EXCLUSIVE",icon:xo,label:t("bpmn.gateway.variant.exclusive")},{type:"GATEWAY",variant:"PARALLEL",icon:Eo,label:t("bpmn.gateway.variant.parallel")},{type:"GATEWAY",variant:"COMPLEX",icon:yo,label:t("bpmn.gateway.variant.complex")},{type:"LANE",icon:Ys,label:t("bpmn.lane.variant.default")},{type:"ANNOTATION",icon:Dn,label:t("bpmn.annotation.variant.default")}],l=(c,d)=>{o({type:d.type,variant:d.variant,attribute:d.attribute,icon:d.icon}),a(mo(d.icon,{})),c.dataTransfer.effectAllowed="move",e.current&&c.dataTransfer.setDragImage(e.current,10,10),setTimeout(()=>{r(!0)},100)};return ju("aside",{className:"sidebar absolute z-[1] top-4 left-4",children:[mo("div",{className:"grid grid-cols-1 gap-2 p-2 bg-white rounded-md shadow-md",children:s.map((c,d)=>{let u=!Ot(c.type,n),m=u?t("editor.toolbar.start_event_already_exists"):c.label;return ju(sE,{children:[mo(lE,{asChild:!0,children:mo(iE,{className:H("[&>svg]:size-6",{"opacity-50 cursor-not-allowed":u}),size:"small",variant:"ghost",color:"grey",draggable:!u,disabled:u,iconButton:!0,onDragStart:u?void 0:p=>l(p,c),children:mo(c.icon,{})},d)}),mo(aE,{color:"black",side:"right",children:m})]},d)})}),mo("div",{ref:e,className:"absolute w-0 h-0 top-0 left-0 z-[-1] bg-transparent",children:i})]})};import{jsx as dt,jsxs as bi}from"react/jsx-runtime";var ws=e=>e.preventDefault(),Is=yE((e,t)=>{let o=hE("Space"),{instanceId:n,mode:r,isMinimapOpen:i,isMoveTool:a,isHandTool:s}=q(),l=vs(null),c=vs(s),d=vs(o),{nodes:u,edges:m,actions:p,events:g,components:x,controls:f}=_u(),{t:h}=NE();c.current=s,d.current=o;let _=Nu(l,c,d);xE(t,()=>({selectElements:p.selectElements,clearSelection:p.clearSelection}));let b=s||o||r!=="edit",T=b?[0,1,2]:vn,E=s||o||_,y=a&&!o&&!_,w=r==="edit"&&y,C=!b&&!_,A=r==="view"||y;return bi("div",{ref:l,className:"w-full h-full",children:[r==="edit"&&dt(ep,{}),dt(vu,{}),bi(mE,v(N({},g),{id:`modeler-${n}`,className:H({"is-hand-tool":E,"is-pan-tool-active":E}),edges:m,nodes:u,nodeTypes:Pd,edgeTypes:Ld,minZoom:ys,maxZoom:Hd,panOnDrag:T,panOnScroll:!0,selectionOnDrag:C,elevateEdgesOnSelect:!0,elevateNodesOnSelect:!0,elementsSelectable:A,nodesConnectable:w,nodesDraggable:w,connectionLineComponent:Cd,selectionMode:gE.Partial,multiSelectionKeyCode:["Control","Meta"],deleteKeyCode:w?"Delete":null,selectionKeyCode:null,defaultViewport:Gd,connectOnClick:!1,connectionRadius:50,onPaneContextMenu:ws,onNodeContextMenu:ws,onEdgeContextMenu:ws,proOptions:{hideAttribution:!0},children:[dt(pE,{gap:Od,size:Dd,color:Rd,bgColor:kd}),i&&bi(EE,{children:[dt(_E,{asChild:!0,children:dt("div",{className:"absolute bottom-[0px] left-[0px] z-[5]",children:dt(fE,{pannable:!0,zoomable:!0,position:Vd,className:"shadow-md rounded-md",ariaLabel:"",style:{pointerEvents:"all",position:"relative"}})})}),dt(bE,{color:"black",children:h("editor.controls.actions.minimap.label")})]}),bi("div",{className:"absolute z-10 bottom-4 left-1/2 -translate-x-1/2 flex gap-4",children:[r==="edit"&&dt(Ju,N({},f)),dt(Uu,{nodes:u,edges:m,validateDiagram:p.validateDiagram,handleValidationComplete:p.handleValidationComplete}),dt(Qu,{})]}),dt(x.HelperLines,{})]}))]})});Is.displayName="Editor";import{useStore as TE}from"@xyflow/react";import{useEffect as vE,useRef as wE}from"react";import{jsx as AE}from"react/jsx-runtime";var IE=e=>({width:e.width,height:e.height,transform:e.transform}),As="rgba(51, 103, 217, 0.4)",tc=({horizontal:e,vertical:t})=>{let{width:o,height:n,transform:r}=TE(IE),i=wE(null);return vE(()=>{let a=i.current,s=a==null?void 0:a.getContext("2d");if(!s||!a)return;let l=window.devicePixelRatio;a.width=o*l,a.height=n*l,s.clearRect(0,0,o,n),s.scale(l,l),s.strokeStyle=As,t&&(s.beginPath(),s.strokeStyle=t.color||As,s.moveTo(t.position*r[2]+r[0],0),s.lineTo(t.position*r[2]+r[0],n),s.stroke()),e&&(s.beginPath(),s.strokeStyle=e.color||As,s.moveTo(0,e.position*r[2]+r[1]),s.lineTo(o,e.position*r[2]+r[1]),s.stroke())},[o,n,r,e,t]),AE("canvas",{ref:i,className:"w-full h-full absolute z-10 pointer-events-none"})};import{i18n as CE,Notification as SE,TooltipProvider as ME}from"@produto-lecom/lecom-ui";import{createContext as PE,useContext as LE,useEffect as kE,useState as RE}from"react";import{jsx as tp,jsxs as OE}from"react/jsx-runtime";var xt=new Map,op=PE(null),hn=()=>{let e=LE(op);if(!e)throw new Error("useModeler must be used within an <ModelerProvider />");return e},DE=({locale:e,defaultMode:t="view",toast:o,children:n})=>{let[r,i]=RE(e||"pt_BR");kE(()=>{e&&(i(e),CE.changeLanguage(e))},[e]);let a=g=>{let x=xt.size;if(x===0)throw new Error("No modeler instances found");if(x===1||!g){let[h]=xt.values();return h}let f=xt.get(g);if(!f)throw new Error(`Modeler instance with ID "${g}" not found`);return f},s=(g,x)=>{let f=a(x);return f==null?void 0:f.selectElements(g)},l=async g=>{let x=a(g);return x==null?void 0:x.clearSelection()},c=(g,x)=>{let f=a(x);return f==null?void 0:f.configureElement(g)},d=(g,x)=>{let f=a(x);return f==null?void 0:f.getConfigureElement(g)},u=async(g,x)=>{let f=a(x);await(f==null?void 0:f.importFromMxGraph(g))},m=g=>{let x=a(g);return x==null?void 0:x.exportToMxGraph()},p=g=>{let x=a(g);return(x==null?void 0:x.getElementsCount())||0};return tp(op.Provider,{value:{defaultMode:t,locale:r,selectElements:s,clearSelection:l,configureElement:c,getConfigureElement:d,importDiagram:u,exportDiagram:m,getElementsCount:p,toast:o},children:OE(ME,{children:[!o&&tp(SE,{type:"toast",placement:"topRight",enableClose:!0,showProgress:!0,pauseOnHover:!0}),n]})})};import{jsx as Cs}from"react/jsx-runtime";var np=GE(null),q=()=>{let e=BE(np);if(!e)throw new Error("useModelerInstance must be used within an <Modeler />");return e},FE=({selectorRef:e,initialDiagram:t,instanceId:o,mode:n,validateCustomDiagram:r,onElementChanges:i,onConfigureElement:a,onElementClick:s,onSubprocessValidationClick:l})=>{let{t:c}=VE(),{defaultMode:d}=hn(),u=YE(),[m]=ut(o||u),[p,g]=ut(n||d||"edit"),[x,f]=ut(bn),[h,_]=ut(!1),[b,T]=ut(!0),[E,y]=ut(!1),[w,C]=ut(!1),[A,R]=ut(!1),[G,M]=ut(!1),[P,X]=ut(!1),[$,Z]=ut(null);zE(()=>{n&&g(n)},[n]);let Y=WE(()=>t||$c(c),[t,c]),S={instanceId:m,initialDiagram:Y,mode:p,lastElementId:x,isInitialized:h,isMinimapOpen:w,isMoveTool:b,isHandTool:E,isDragging:A,isMultipleSelection:P,isConnecting:G,setLastElementId:f,setIsInitialized:_,reconnectingEdgeId:$,setIsMinimapOpen:C,setIsMoveTool:T,setIsHandTool:y,setIsDragging:R,setIsConnecting:M,setIsMultipleSelection:X,setReconnectingEdgeId:Z,validateCustomDiagram:r,onElementChanges:i,onConfigureElement:a,onElementClick:s,onSubprocessValidationClick:l};return Cs(HE,{children:Cs(np.Provider,{value:S,children:Cs(Is,{ref:e})})})};export{Pe as EditorMode,Ni as ElementPosition,kn as ElementType,Ti as GatewayElementVariant,at as GatewayVariant,FE as Modeler,DE as ModelerProvider,gt as NodeAttribute,le as NodeType,tt as NodeVariant,vi as RoutingVariant,hn as useModeler};
86
+ `,h.head.appendChild(T),h.title=m;let E=h.createElement("img");E.alt="Diagram",h.body.appendChild(E),await new Promise((A,R)=>{let G=!1,M=P=>{G||(G=!0,P?R(P):A())};E.onload=()=>M(),E.onerror=()=>M(new Error("Failed to load print image")),E.src=x,E.complete&&E.naturalWidth>0&&M()});let y=f.contentWindow;if(!y)throw document.body.removeChild(f),new Error("Unable to access print iframe window");let w=()=>{f.parentNode&&document.body.removeChild(f)};y.addEventListener("afterprint",w,{once:!0}),window.setTimeout(w,6e4),y.focus(),y.print()},"print")},isPrintingPng:i.png,isPrintingHtml:i.html,isPrinting:i.print}};import{jsx as Me,jsxs as Xo}from"react/jsx-runtime";function Yu(){let{t:e}=Rx(),{exportAsPng:t,exportAsHtml:o,printDiagram:n,isPrinting:r,isPrintingPng:i,isPrintingHtml:a}=zu(),[s,l]=Gx(!1);return Xo(Px,{modal:!1,open:s,onOpenChange:l,children:[Me(kx,{asChild:!0,children:Me("div",{children:Xo(ci,{children:[Me(ui,{asChild:!0,children:Me(Mx,{size:"small",variant:"ghost",color:"grey",iconButton:!0,children:Me(Vx,{})})}),!s&&Me(di,{color:"black",children:e("editor.controls.actions.export.title")})]})})}),Xo(Lx,{align:"center",side:"top",sideOffset:16,className:"min-w-0 flex flex-col gap-2 p-2 shadow-sm",children:[Xo(ci,{children:[Me(ui,{asChild:!0,children:Me(_s,{className:"p-1.5",disabled:i,onClick:()=>t(),children:Me(Ox,{})})}),Me(di,{side:"right",color:"black",children:e("editor.controls.actions.export.png")})]}),Xo(ci,{children:[Me(ui,{asChild:!0,children:Me(_s,{className:"p-1.5",disabled:a,onClick:()=>o(),children:Me(Dx,{})})}),Me(di,{side:"right",color:"black",children:e("editor.controls.actions.export.html")})]}),Xo(ci,{children:[Me(ui,{asChild:!0,children:Me(_s,{className:"p-1.5",disabled:r,onClick:()=>n(),children:Me(Hx,{})})}),Me(di,{side:"right",color:"black",children:e("editor.controls.actions.export.print")})]})]})]})}import{Fragment as Xu,jsx as Se,jsxs as Mt}from"react/jsx-runtime";var Uu=({nodes:e,edges:t,validateDiagram:o,handleValidationComplete:n})=>{let{t:r}=zx(),{clearSelection:i}=Vt(),{mode:a,isMinimapOpen:s,setIsMinimapOpen:l,isMoveTool:c,isHandTool:d,setIsMoveTool:u,setIsHandTool:m}=q(),{getNodes:p,getEdges:g}=Bx(),x=Wu(["v","V"]),f=Wu(["h","H"]),h=Ns(()=>{i(),m(!0),u(!1)},[i,m,u]),_=Ns(()=>{u(!0),m(!1)},[u,m]),[b,T]=$x(!1),E=Ns(async()=>{T(!0);try{let y=p(),w=g(),C=await o({nodes:y,edges:w});n(C)}finally{T(!1)}},[p,g,o,n]);return Fu(()=>{x&&!c&&a==="edit"&&_()},[x,_,c,a]),Fu(()=>{f&&!d&&a==="edit"&&h()},[f,h,d,a]),Mt("div",{className:"flex items-center gap-2 px-3 py-2 bg-white rounded-sm shadow-md",children:[a==="edit"&&Mt(Xu,{children:[Mt(fi,{children:[Se(gi,{asChild:!0,children:Se(pi,{size:"small",variant:"ghost",color:"grey",className:H(c&&"bg-grey-400"),iconButton:!0,onClick:_,children:Se(Ux,{})})}),Mt(mi,{color:"black",className:"flex items-center gap-2",children:[r("editor.controls.actions.move_tool"),Se(Es,{shortcut:"V"})]})]}),Mt(fi,{children:[Se(gi,{asChild:!0,children:Se(pi,{size:"small",variant:"ghost",color:"grey",className:H(d&&"bg-grey-400"),iconButton:!0,onClick:h,children:Se(Yx,{})})}),Mt(mi,{color:"black",className:"flex items-center gap-2",children:[r("editor.controls.actions.hand_tool")," ",Se(Es,{shortcut:"H"})]})]})]}),Se(Yu,{}),a==="edit"&&Mt(Xu,{children:[Mt(fi,{children:[Se(gi,{asChild:!0,children:Se(pi,{size:"small",variant:"ghost",color:"grey",iconButton:!0,disabled:b,onClick:E,children:b?Se(Fx,{className:"animate-spin"}):Se(Wx,{})})}),Se(mi,{color:"black",children:r(b?"editor.controls.actions.check_loading":"editor.controls.actions.check")})]}),Se(Hu,{disabled:e.length>0||t.length>0})]}),Mt(fi,{children:[Se(gi,{asChild:!0,children:Se(pi,{size:"small",variant:"ghost",color:"grey",className:H(s&&"bg-grey-400"),iconButton:!0,onClick:()=>l(!s),children:Se(Xx,{})})}),Se(mi,{color:"black",children:r(s?"editor.controls.actions.minimap.close":"editor.controls.actions.minimap.open")})]})]})};import{Button as $u,Tooltip as Ku,TooltipContent as qu,TooltipTrigger as Zu,useTranslation as Kx}from"@produto-lecom/lecom-ui";import{RedoIcon as qx,UndoIcon as Zx}from"lucide-react";import{jsx as Kt,jsxs as Ts}from"react/jsx-runtime";var Ju=({undo:e,redo:t,canUndo:o,canRedo:n})=>{let{t:r}=Kx();return Ts("div",{className:"flex items-center gap-2 px-3 py-2 bg-white rounded-sm shadow-md",children:[Ts(Ku,{children:[Kt(Zu,{asChild:!0,children:Kt($u,{size:"small",variant:"ghost",color:"grey",iconButton:!0,disabled:!o,onClick:e,children:Kt(Zx,{})})}),Kt(qu,{color:"black",children:r("editor.controls.history.undo")})]}),Ts(Ku,{children:[Kt(Zu,{asChild:!0,children:Kt($u,{size:"small",variant:"ghost",color:"grey",iconButton:!0,disabled:!n,onClick:t,children:Kt(qx,{})})}),Kt(qu,{color:"black",children:r("editor.controls.history.redo")})]})]})};import{useEdges as Jx,useNodes as Qx,useReactFlow as jx}from"@xyflow/react";import{Button as hi,Tooltip as yi,TooltipContent as xi,TooltipTrigger as Ei,useTranslation as eE}from"@produto-lecom/lecom-ui";import{ScanIcon as tE,ZoomIn as oE,ZoomOut as nE}from"lucide-react";import{jsx as De,jsxs as Pn}from"react/jsx-runtime";var Qu=()=>{let{t:e}=eE(),t=Qx(),o=Jx(),{zoomIn:n,zoomOut:r,zoomTo:i,fitView:a}=jx(),s=t.length===0&&o.length===0;return Pn("div",{className:"flex items-center gap-2 px-3 py-2 bg-white rounded-sm shadow-md",children:[Pn(yi,{children:[De(Ei,{asChild:!0,children:De(hi,{iconButton:!0,size:"small",color:"grey",variant:"ghost",disabled:s,onClick:()=>a(),children:De(tE,{})})}),De(xi,{color:"black",children:e("editor.controls.zoom.fit")})]}),Pn(yi,{children:[De(Ei,{asChild:!0,children:De(hi,{iconButton:!0,size:"small",color:"grey",variant:"ghost",disabled:s,onClick:()=>r(),children:De(nE,{})})}),De(xi,{color:"black",children:e("editor.controls.zoom.out")})]}),Pn(yi,{children:[De(Ei,{asChild:!0,children:De(hi,{iconButton:!0,size:"small",color:"grey",variant:"ghost",disabled:s,onClick:()=>i(1),children:De(Ws,{})})}),De(xi,{color:"black",children:e("editor.controls.zoom.reset")})]}),Pn(yi,{children:[De(Ei,{asChild:!0,children:De(hi,{iconButton:!0,size:"small",color:"grey",variant:"ghost",disabled:s,onClick:()=>n(),children:De(oE,{})})}),De(xi,{color:"black",children:e("editor.controls.zoom.in")})]})]})};import{useNodes as rE}from"@xyflow/react";import{Button as iE,Tooltip as sE,TooltipContent as aE,TooltipTrigger as lE,useTranslation as cE}from"@produto-lecom/lecom-ui";import{useRef as dE,useState as uE}from"react";import{jsx as mo,jsxs as ju}from"react/jsx-runtime";var ep=()=>{let e=dE(null),{t}=cE(),{setDraggableNode:o}=Ho(),n=rE(),{setIsDragging:r}=q(),[i,a]=uE(void 0),s=[{type:"START_EVENT",icon:Vn,label:t("bpmn.start_event.variant.default")},{type:"END_EVENT",icon:ho,label:t("bpmn.end_event.variant.default")},{type:"TASK",icon:$o,label:t("bpmn.task.variant.default")},{type:"TASK",variant:"SUBPROCESS",icon:Ks,label:t("bpmn.task.variant.subprocess")},{type:"TASK",variant:"SCRIPT",icon:$s,label:t("bpmn.task.variant.script")},{type:"TASK",attribute:"LOOP",icon:Us,label:t("bpmn.task.attribute.loop")},{type:"GATEWAY",variant:"EXCLUSIVE",icon:xo,label:t("bpmn.gateway.variant.exclusive")},{type:"GATEWAY",variant:"PARALLEL",icon:Eo,label:t("bpmn.gateway.variant.parallel")},{type:"GATEWAY",variant:"COMPLEX",icon:yo,label:t("bpmn.gateway.variant.complex")},{type:"LANE",icon:Ys,label:t("bpmn.lane.variant.default")},{type:"ANNOTATION",icon:Dn,label:t("bpmn.annotation.variant.default")}],l=(c,d)=>{o({type:d.type,variant:d.variant,attribute:d.attribute,icon:d.icon}),a(mo(d.icon,{})),c.dataTransfer.effectAllowed="move",e.current&&c.dataTransfer.setDragImage(e.current,10,10),setTimeout(()=>{r(!0)},100)};return ju("aside",{className:"sidebar absolute z-[1] top-4 left-4",children:[mo("div",{className:"grid grid-cols-1 gap-2 p-2 bg-white rounded-md shadow-md",children:s.map((c,d)=>{let u=!Ot(c.type,n),m=u?t("editor.toolbar.start_event_already_exists"):c.label;return ju(sE,{children:[mo(lE,{asChild:!0,children:mo(iE,{className:H("[&>svg]:size-6",{"opacity-50 cursor-not-allowed":u}),size:"small",variant:"ghost",color:"grey",draggable:!u,disabled:u,iconButton:!0,onDragStart:u?void 0:p=>l(p,c),children:mo(c.icon,{})},d)}),mo(aE,{color:"black",side:"right",children:m})]},d)})}),mo("div",{ref:e,className:"absolute w-0 h-0 top-0 left-0 z-[-1] bg-transparent",children:i})]})};import{jsx as dt,jsxs as bi}from"react/jsx-runtime";var ws=e=>e.preventDefault(),Is=yE((e,t)=>{let o=hE("Space"),{instanceId:n,mode:r,isMinimapOpen:i,isMoveTool:a,isHandTool:s}=q(),l=vs(null),c=vs(s),d=vs(o),{nodes:u,edges:m,actions:p,events:g,components:x,controls:f}=_u(),{t:h}=NE();c.current=s,d.current=o;let _=Nu(l,c,d);xE(t,()=>({selectElements:p.selectElements,clearSelection:p.clearSelection}));let b=s||o||r!=="edit",T=b?[0,1,2]:vn,E=s||o||_,y=a&&!o&&!_,w=r==="edit"&&y,C=!b&&!_,A=r==="view"||y;return bi("div",{ref:l,className:"w-full h-full",children:[r==="edit"&&dt(ep,{}),dt(vu,{}),bi(mE,v(N({},g),{id:`modeler-${n}`,className:H({"is-hand-tool":E,"is-pan-tool-active":E}),edges:m,nodes:u,nodeTypes:Pd,edgeTypes:Ld,minZoom:ys,maxZoom:Hd,panOnDrag:T,panOnScroll:!0,selectionOnDrag:C,elevateEdgesOnSelect:!0,elevateNodesOnSelect:!0,elementsSelectable:A,nodesConnectable:w,nodesDraggable:w,connectionLineComponent:Cd,selectionMode:gE.Partial,multiSelectionKeyCode:["Control","Meta"],deleteKeyCode:w?"Delete":null,selectionKeyCode:null,defaultViewport:Gd,connectOnClick:!1,connectionRadius:50,onPaneContextMenu:ws,onNodeContextMenu:ws,onEdgeContextMenu:ws,proOptions:{hideAttribution:!0},children:[dt(pE,{gap:Od,size:Dd,color:Rd,bgColor:kd}),i&&bi(EE,{children:[dt(_E,{asChild:!0,children:dt("div",{className:"absolute bottom-[0px] left-[0px] z-[5]",children:dt(fE,{pannable:!0,zoomable:!0,position:Vd,className:"shadow-md rounded-md",ariaLabel:"",style:{pointerEvents:"all",position:"relative"}})})}),dt(bE,{color:"black",children:h("editor.controls.actions.minimap.label")})]}),bi("div",{className:"absolute z-10 bottom-4 left-1/2 -translate-x-1/2 flex gap-4",children:[r==="edit"&&dt(Ju,N({},f)),dt(Uu,{nodes:u,edges:m,validateDiagram:p.validateDiagram,handleValidationComplete:p.handleValidationComplete}),dt(Qu,{})]}),dt(x.HelperLines,{})]}))]})});Is.displayName="Editor";import{useStore as TE}from"@xyflow/react";import{useEffect as vE,useRef as wE}from"react";import{jsx as AE}from"react/jsx-runtime";var IE=e=>({width:e.width,height:e.height,transform:e.transform}),As="rgba(51, 103, 217, 0.4)",tc=({horizontal:e,vertical:t})=>{let{width:o,height:n,transform:r}=TE(IE),i=wE(null);return vE(()=>{let a=i.current,s=a==null?void 0:a.getContext("2d");if(!s||!a)return;let l=window.devicePixelRatio;a.width=o*l,a.height=n*l,s.clearRect(0,0,o,n),s.scale(l,l),s.strokeStyle=As,t&&(s.beginPath(),s.strokeStyle=t.color||As,s.moveTo(t.position*r[2]+r[0],0),s.lineTo(t.position*r[2]+r[0],n),s.stroke()),e&&(s.beginPath(),s.strokeStyle=e.color||As,s.moveTo(0,e.position*r[2]+r[1]),s.lineTo(o,e.position*r[2]+r[1]),s.stroke())},[o,n,r,e,t]),AE("canvas",{ref:i,className:"w-full h-full absolute z-10 pointer-events-none"})};import{i18n as CE,Notification as SE,TooltipProvider as ME}from"@produto-lecom/lecom-ui";import{createContext as PE,useContext as LE,useEffect as kE,useState as RE}from"react";import{jsx as tp,jsxs as OE}from"react/jsx-runtime";var xt=new Map,op=PE(null),hn=()=>{let e=LE(op);if(!e)throw new Error("useModeler must be used within an <ModelerProvider />");return e},DE=({locale:e,defaultMode:t="view",toast:o,children:n})=>{let[r,i]=RE(e||"pt_BR");kE(()=>{e&&(i(e),CE.changeLanguage(e))},[e]);let a=g=>{let x=xt.size;if(x===0)throw new Error("No modeler instances found");if(x===1||!g){let[h]=xt.values();return h}let f=xt.get(g);if(!f)throw new Error(`Modeler instance with ID "${g}" not found`);return f},s=(g,x)=>{let f=a(x);return f==null?void 0:f.selectElements(g)},l=async g=>{let x=a(g);return x==null?void 0:x.clearSelection()},c=(g,x)=>{let f=a(x);return f==null?void 0:f.configureElement(g)},d=(g,x)=>{let f=a(x);return f==null?void 0:f.getConfigureElement(g)},u=async(g,x)=>{let f=a(x);await(f==null?void 0:f.importFromMxGraph(g))},m=g=>{let x=a(g);return x==null?void 0:x.exportToMxGraph()},p=g=>{let x=a(g);return(x==null?void 0:x.getElementsCount())||0};return tp(op.Provider,{value:{defaultMode:t,locale:r,selectElements:s,clearSelection:l,configureElement:c,getConfigureElement:d,importDiagram:u,exportDiagram:m,getElementsCount:p,toast:o},children:OE(ME,{children:[!o&&tp(SE,{type:"toast",placement:"topRight",enableClose:!0,showProgress:!0,pauseOnHover:!0}),n]})})};import{jsx as Cs}from"react/jsx-runtime";var np=GE(null),q=()=>{let e=BE(np);if(!e)throw new Error("useModelerInstance must be used within an <Modeler />");return e},FE=({selectorRef:e,initialDiagram:t,instanceId:o,mode:n,validateCustomDiagram:r,onElementChanges:i,onConfigureElement:a,onElementClick:s,onSubprocessValidationClick:l})=>{let{t:c}=VE(),{defaultMode:d}=hn(),u=YE(),[m]=ut(o||u),[p,g]=ut(n||d||"edit"),[x,f]=ut(bn),[h,_]=ut(!1),[b,T]=ut(!0),[E,y]=ut(!1),[w,C]=ut(!1),[A,R]=ut(!1),[G,M]=ut(!1),[P,X]=ut(!1),[$,Z]=ut(null);zE(()=>{n&&g(n)},[n]);let Y=WE(()=>t||$c(c),[t,c]),S={instanceId:m,initialDiagram:Y,mode:p,lastElementId:x,isInitialized:h,isMinimapOpen:w,isMoveTool:b,isHandTool:E,isDragging:A,isMultipleSelection:P,isConnecting:G,setLastElementId:f,setIsInitialized:_,reconnectingEdgeId:$,setIsMinimapOpen:C,setIsMoveTool:T,setIsHandTool:y,setIsDragging:R,setIsConnecting:M,setIsMultipleSelection:X,setReconnectingEdgeId:Z,validateCustomDiagram:r,onElementChanges:i,onConfigureElement:a,onElementClick:s,onSubprocessValidationClick:l};return Cs(HE,{children:Cs(np.Provider,{value:S,children:Cs(Is,{ref:e})})})};export{Pe as EditorMode,Ni as ElementPosition,kn as ElementType,Ti as GatewayElementVariant,at as GatewayVariant,FE as Modeler,DE as ModelerProvider,gt as NodeAttribute,le as NodeType,tt as NodeVariant,vi as RoutingVariant,hn as useModeler};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lecom-modeler",
3
- "version": "0.30.0",
3
+ "version": "0.30.2",
4
4
  "type": "module",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib/index.js",