UNPKG

bpmn-js

Version:

A bpmn 2.0 toolkit and web modeler

7 lines 548 kB
/*! bpmn-js - bpmn-modeler v18.6.1 | Copyright (c) 2014-present, camunda Services GmbH | bpmn.io/license */ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).BpmnJS=t()}(this,(function(){"use strict";function e(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}var t=function(e,t){return e(t={exports:{}},t.exports),t.exports}((function(e){var t=e.exports=function(e,n){if(n||(n=16),void 0===e&&(e=128),e<=0)return"0";for(var i=Math.log(Math.pow(2,e))/Math.log(n),r=2;i===1/0;r*=2)i=Math.log(Math.pow(2,e/r))/Math.log(n)*r;var o=i-Math.floor(i),a="";for(r=0;r<Math.floor(i);r++){a=Math.floor(Math.random()*n).toString(n)+a}if(o){var s=Math.pow(n,o);a=Math.floor(Math.random()*s).toString(n)+a}var c=parseInt(a,n);return c!==1/0&&c>=Math.pow(2,e)?t(e,n):a};t.rack=function(e,n,i){var r=function(r){var a=0;do{if(a++>10){if(!i)throw new Error("too many ID collisions, use more bits");e+=i}var s=t(e,n)}while(Object.hasOwnProperty.call(o,s));return o[s]=r,s},o=r.hats={};return r.get=function(e){return r.hats[e]},r.set=function(e,t){return r.hats[e]=t,r},r.bits=e||128,r.base=n||16,r}}));function n(e){if(!(this instanceof n))return new n(e);e=e||[128,36,1],this._seed=e.length?t.rack(e[0],e[1],e[2]):e}function i(e){return Array.prototype.concat.apply([],e)}n.prototype.next=function(e){return this._seed(e||!0)},n.prototype.nextPrefixed=function(e,t){var n;do{n=e+this.next(!0)}while(this.assigned(n));return this.claim(n,t),n},n.prototype.claim=function(e,t){this._seed.set(e,t||!0)},n.prototype.assigned=function(e){return this._seed.get(e)||!1},n.prototype.unclaim=function(e){delete this._seed.hats[e]},n.prototype.clear=function(){var e,t=this._seed.hats;for(e in t)this.unclaim(e)};const r=Object.prototype.toString,o=Object.prototype.hasOwnProperty;function a(e){return void 0===e}function s(e){return void 0!==e}function c(e){return null==e}function p(e){return"[object Array]"===r.call(e)}function l(e){return"[object Object]"===r.call(e)}function u(e){return"[object Number]"===r.call(e)}function h(e){const t=r.call(e);return"[object Function]"===t||"[object AsyncFunction]"===t||"[object GeneratorFunction]"===t||"[object AsyncGeneratorFunction]"===t||"[object Proxy]"===t}function d(e){return"[object String]"===r.call(e)}function f(e,t){return o.call(e,t)}function m(e,t){const n=D(t);let i;return g(e,(function(e,t){if(n(e,t))return i=e,!1})),i}function v(e,t){const n=D(t);let i=p(e)?-1:void 0;return g(e,(function(e,t){if(n(e,t))return i=t,!1})),i}function y(e,t){const n=D(t);let i=[];return g(e,(function(e,t){n(e,t)&&i.push(e)})),i}function g(e,t){let n,i;if(a(e))return;const r=p(e)?N:B;for(let o in e)if(f(e,o)&&(n=e[o],i=t(n,r(o)),!1===i))return n}function b(e,t){if(a(e))return[];!function(e){if(!p(e))throw new Error("must supply array")}(e);const n=D(t);return e.filter((function(e,t){return!n(e,t)}))}function _(e,t,n){return g(e,(function(e,i){n=t(n,e,i)})),n}function x(e,t){return!!_(e,(function(e,n,i){return e&&t(n,i)}),!0)}function w(e,t){return!!m(e,t)}function E(e,t){let n=[];return g(e,(function(e,i){n.push(t(e,i))})),n}function S(e){return e&&Object.keys(e)||[]}function C(e){return E(e,(e=>e))}function k(e,t,n={}){return t=T(t),g(e,(function(e){let i=t(e)||"_",r=n[i];r||(r=n[i]=[]),r.push(e)})),n}function R(e,...t){e=T(e);let n={};return g(t,(t=>k(t,e,n))),E(n,(function(e,t){return e[0]}))}const P=R;function A(e,t){t=T(t);let n=[];return g(e,(function(e,i){let r=t(e,i),o={d:r,v:e};for(var a=0;a<n.length;a++){let{d:e}=n[a];if(r<e)return void n.splice(a,0,o)}n.push(o)})),E(n,(e=>e.v))}function M(e){return function(t){return x(e,(function(e,n){return t[n]===e}))}}function T(e){return h(e)?e:t=>t[e]}function D(e){return h(e)?e:t=>t===e}function B(e){return e}function N(e){return Number(e)}function j(e,t){let n,i,r,o;function a(n){let a=Date.now(),p=n?0:o+t-a;if(p>0)return s(p);e.apply(r,i),c()}function s(e){n=setTimeout(a,e)}function c(){n&&clearTimeout(n),n=o=i=r=void 0}function p(...e){o=Date.now(),i=e,r=this,n||s(t)}return p.flush=function(){n&&a(!0),c()},p.cancel=c,p}function O(e,t){return e.bind(t)}function L(e,...t){return Object.assign(e,...t)}function $(e,t){let n={},i=Object(e);return g(t,(function(t){t in i&&(n[t]=e[t])})),n}function I(e,t){let n={};return g(Object(e),(function(e,i){-1===t.indexOf(i)&&(n[i]=e)})),n}function F(e,t){return t.forEach((function(t){t&&"string"!=typeof t&&!Array.isArray(t)&&Object.keys(t).forEach((function(n){if("default"!==n&&!(n in e)){var i=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(e,n,i.get?i:{enumerable:!0,get:function(){return t[n]}})}}))})),Object.freeze(e)}const z=Object.prototype.toString,H=Object.prototype.hasOwnProperty;function V(e,t){return H.call(e,t)}function G(e,t){let n,i;if(void 0===e)return;const r=function(e){return"[object Array]"===z.call(e)}(e)?U:W;for(let o in e)if(V(e,o)&&(n=e[o],i=t(n,r(o)),!1===i))return n}function W(e){return e}function U(e){return Number(e)}function q(e,...t){const n=e.style;return G(t,(function(e){e&&G(e,(function(e,t){n[t]=e}))})),e}function K(e,t,n){return 2==arguments.length?e.getAttribute(t):null===n?e.removeAttribute(t):(e.setAttribute(t,n),e)}const Y=Object.prototype.toString;function X(e){return new Z(e)}function Z(e){if(!e||!e.nodeType)throw new Error("A DOM element reference is required");this.el=e,this.list=e.classList}function Q(e){for(var t;t=e.firstChild;)e.removeChild(t);return e}function J(e,t,n){var i=n?e:e.parentNode;return i&&"function"==typeof i.closest&&i.closest(t)||null}Z.prototype.add=function(e){return this.list.add(e),this},Z.prototype.remove=function(e){return"[object RegExp]"==Y.call(e)?this.removeMatching(e):(this.list.remove(e),this)},Z.prototype.removeMatching=function(e){const t=this.array();for(let n=0;n<t.length;n++)e.test(t[n])&&this.remove(t[n]);return this},Z.prototype.toggle=function(e,t){return void 0!==t?t!==this.list.toggle(e,t)&&this.list.toggle(e):this.list.toggle(e),this},Z.prototype.array=function(){return Array.from(this.list)},Z.prototype.has=Z.prototype.contains=function(e){return this.list.contains(e)};var ee,te,ne,ie={};function re(){ee=window.addEventListener?"addEventListener":"attachEvent",te=window.removeEventListener?"removeEventListener":"detachEvent",ne="addEventListener"!==ee?"on":""}var oe=F({__proto__:null,bind:ie.bind=function(e,t,n,i){return ee||re(),e[ee](ne+t,n,i||!1),n},unbind:ie.unbind=function(e,t,n,i){return te||re(),e[te](ne+t,n,i||!1),n},default:ie},[ie]),ae=["focus","blur"];var se,ce={bind:function(e,t,n,i,r){return-1!==ae.indexOf(n)&&(r=!0),oe.bind(e,n,(function(n){var r=n.target||n.srcElement;n.delegateTarget=J(r,t,!0),n.delegateTarget&&i.call(e,n)}),r)},unbind:function(e,t,n,i){return-1!==ae.indexOf(t)&&(i=!0),oe.unbind(e,t,n,i)}},pe=function(e,t){if("string"!=typeof e)throw new TypeError("String expected");t||(t=document);var n=/<([\w:]+)/.exec(e);if(!n)return t.createTextNode(e);e=e.replace(/^\s+|\s+$/g,"");var i=n[1];if("body"==i){return(r=t.createElement("html")).innerHTML=e,r.removeChild(r.lastChild)}var r,o=Object.prototype.hasOwnProperty.call(ue,i)?ue[i]:ue._default,a=o[0],s=o[1],c=o[2];(r=t.createElement("div")).innerHTML=s+e+c;for(;a--;)r=r.lastChild;if(r.firstChild==r.lastChild)return r.removeChild(r.firstChild);var p=t.createDocumentFragment();for(;r.firstChild;)p.appendChild(r.removeChild(r.firstChild));return p},le=!1;"undefined"!=typeof document&&((se=document.createElement("div")).innerHTML=' <link/><table></table><a href="/a">a</a><input type="checkbox"/>',le=!se.getElementsByTagName("link").length,se=void 0);var ue={legend:[1,"<fieldset>","</fieldset>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],_default:le?[1,"X<div>","</div>"]:[0,"",""]};ue.td=ue.th=[3,"<table><tbody><tr>","</tr></tbody></table>"],ue.option=ue.optgroup=[1,'<select multiple="multiple">',"</select>"],ue.thead=ue.tbody=ue.colgroup=ue.caption=ue.tfoot=[1,"<table>","</table>"],ue.polyline=ue.ellipse=ue.polygon=ue.circle=ue.text=ue.line=ue.path=ue.rect=ue.g=[1,'<svg xmlns="http://www.w3.org/2000/svg" version="1.1">',"</svg>"];var he=pe;function de(e,t){return e&&"function"==typeof e.matches&&e.matches(t)||!1}function fe(e,t){return(t=t||document).querySelector(e)}function me(e,t){return(t=t||document).querySelectorAll(e)}function ve(e){e.parentNode&&e.parentNode.removeChild(e)}function ye(e,t){return function(e,t){t.appendChild(function(e,t){if(e.ownerDocument!==t.ownerDocument)try{return t.ownerDocument.importNode(e,!0)}catch(e){}return e}(e,t))}(t,e),e}var ge={"alignment-baseline":1,"baseline-shift":1,clip:1,"clip-path":1,"clip-rule":1,color:1,"color-interpolation":1,"color-interpolation-filters":1,"color-profile":1,"color-rendering":1,cursor:1,direction:1,display:1,"dominant-baseline":1,"enable-background":1,fill:1,"fill-opacity":1,"fill-rule":1,filter:1,"flood-color":1,"flood-opacity":1,font:1,"font-family":1,"font-size":2,"font-size-adjust":1,"font-stretch":1,"font-style":1,"font-variant":1,"font-weight":1,"glyph-orientation-horizontal":1,"glyph-orientation-vertical":1,"image-rendering":1,kerning:1,"letter-spacing":1,"lighting-color":1,marker:1,"marker-end":1,"marker-mid":1,"marker-start":1,mask:1,opacity:1,overflow:1,"pointer-events":1,"shape-rendering":1,"stop-color":1,"stop-opacity":1,stroke:1,"stroke-dasharray":1,"stroke-dashoffset":1,"stroke-linecap":1,"stroke-linejoin":1,"stroke-miterlimit":1,"stroke-opacity":1,"stroke-width":2,"text-anchor":1,"text-decoration":1,"text-rendering":1,"unicode-bidi":1,visibility:1,"word-spacing":1,"writing-mode":1};function be(e,t,n){var i=t.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase(),r=ge[i];r?(2===r&&"number"==typeof n&&(n=String(n)+"px"),e.style[i]=n):e.setAttributeNS(null,t,n)}function _e(e,t,n){if("string"==typeof t){if(void 0===n)return function(e,t){return ge[t]?e.style[t]:e.getAttributeNS(null,t)}(e,t);be(e,t,n)}else!function(e,t){var n,i,r=Object.keys(t);for(n=0;i=r[n];n++)be(e,i,t[i])}(e,t);return e}const xe=Object.prototype.toString;function we(e){return new Ee(e)}function Ee(e){if(!e||!e.nodeType)throw new Error("A DOM element reference is required");this.el=e,this.list=e.classList}function Se(e){for(var t;t=e.firstChild;)e.removeChild(t);return e}function Ce(e){return e.cloneNode(!0)}Ee.prototype.add=function(e){return this.list.add(e),this},Ee.prototype.remove=function(e){return"[object RegExp]"==xe.call(e)?this.removeMatching(e):(this.list.remove(e),this)},Ee.prototype.removeMatching=function(e){const t=this.array();for(let n=0;n<t.length;n++)e.test(t[n])&&this.remove(t[n]);return this},Ee.prototype.toggle=function(e,t){return void 0!==t?t!==this.list.toggle(e,t)&&this.list.toggle(e):this.list.toggle(e),this},Ee.prototype.array=function(){return Array.from(this.list)},Ee.prototype.has=Ee.prototype.contains=function(e){return this.list.contains(e)};var ke="http://www.w3.org/2000/svg",Re='<svg xmlns="'+ke+'"';function Pe(e){var t=!1;"<svg"===e.substring(0,4)?-1===e.indexOf(ke)&&(e=Re+e.substring(4)):(e=Re+">"+e+"</svg>",t=!0);var n=function(e){var t;return(t=new DOMParser).async=!1,t.parseFromString(e,"text/xml")}(e);if(!t)return n;for(var i=document.createDocumentFragment(),r=n.firstChild;r.firstChild;)i.appendChild(r.firstChild);return i}function Ae(e,t){var n;return"<"===(e=e.trim()).charAt(0)?(n=Pe(e).firstChild,n=document.importNode(n,!0)):n=document.createElementNS(ke,e),t&&_e(n,t),n}var Me=null;function Te(){return null===Me&&(Me=Ae("svg")),Me}function De(e,t){var n,i,r=Object.keys(t);for(n=0;i=r[n];n++)e[i]=t[i];return e}function Be(e){return Te().createSVGTransform()}var Ne=/([&<>]{1})/g,je=/([\n\r"]{1})/g,Oe={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"'"};function Le(e,t){return e.replace(t,(function(e,t){return Oe[t]||t}))}function $e(e,t){var n,i,r,o,a;switch(e.nodeType){case 3:t.push(Le(e.textContent,Ne));break;case 1:if(t.push("<",e.tagName),e.hasAttributes())for(n=0,i=(r=e.attributes).length;n<i;++n)o=r.item(n),t.push(" ",o.name,'="',Le(o.value,je),'"');if(e.hasChildNodes()){for(t.push(">"),n=0,i=(a=e.childNodes).length;n<i;++n)$e(a.item(n),t);t.push("</",e.tagName,">")}else t.push("/>");break;case 8:t.push("\x3c!--",Le(e.nodeValue,Ne),"--\x3e");break;case 4:t.push("<![CDATA[",e.nodeValue,"]]>");break;default:throw new Error("unable to handle node "+e.nodeType)}return t}function Ie(e,t){return function(e){for(var t=e.firstChild,n=[];t;)$e(t,n),t=t.nextSibling;return n.join("")}(e)}function Fe(e){var t=e.parentNode;return t&&t.removeChild(e),e}function ze(e,t){return t instanceof SVGMatrix?e.createSVGTransformFromMatrix(t):t}function He(e,t){var n=e.transform.baseVal;return t&&(Array.isArray(t)||(t=[t]),function(e,t){var n,i;for(e.clear(),n=0;i=t[n];n++)e.appendItem(ze(e,i))}(n,t)),n.consolidate()}const Ve=/^class[ {]/;function Ge(e){return Array.isArray(e)}function We(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Ue(...e){1===e.length&&Ge(e[0])&&(e=e[0]);const t=(e=[...e]).pop();return t.$inject=e,t}const qe=/constructor\s*[^(]*\(\s*([^)]*)\)/m,Ke=/^(?:async\s+)?(?:function\s*[^(]*)?(?:\(\s*([^)]*)\)|(\w+))/m,Ye=/\/\*([^*]*)\*\//m;function Xe(e){if("function"!=typeof e)throw new Error(`Cannot annotate "${e}". Expected a function!`);const t=e.toString().match(function(e){return Ve.test(e.toString())}(e)?qe:Ke);if(!t)return[];const n=t[1]||t[2];return n&&n.split(",").map((e=>{const t=e.match(Ye);return(t&&t[1]||e).trim()}))||[]}function Ze(e,t){const n=t||{get:function(e,t){if(i.push(e),!1===t)return null;throw s(`No provider for "${e}"!`)}},i=[],r=this._providers=Object.create(n._providers||null),o=this._instances=Object.create(null),a=o.injector=this,s=function(e){const t=i.join(" -> ");return i.length=0,new Error(t?`${e} (Resolving: ${t})`:e)};function c(e,t){if(!r[e]&&e.includes(".")){const t=e.split(".");let n=c(t.shift());for(;t.length;)n=n[t.shift()];return n}if(We(o,e))return o[e];if(We(r,e)){if(-1!==i.indexOf(e))throw i.push(e),s("Cannot resolve circular dependency!");return i.push(e),o[e]=r[e][0](r[e][1]),i.pop(),o[e]}return n.get(e,t)}function p(e,t){if(void 0===t&&(t={}),"function"!=typeof e){if(!Ge(e))throw s(`Cannot invoke "${e}". Expected a function!`);e=Ue(e.slice())}return{fn:e,dependencies:(e.$inject||Xe(e)).map((e=>We(t,e)?t[e]:c(e)))}}function l(e){const{fn:t,dependencies:n}=p(e);return new(Function.prototype.bind.call(t,null,...n))}function u(e,t,n){const{fn:i,dependencies:r}=p(e,n);return i.apply(t,r)}function h(e){return Ue((t=>e.get(t)))}function d(e,t){if(t&&t.length){const n=Object.create(null),i=Object.create(null),o=[],a=[],s=[];let c,p,l,u;for(let e in r)c=r[e],-1!==t.indexOf(e)&&("private"===c[2]?(p=o.indexOf(c[3]),-1===p?(l=c[3].createChild([],t),u=h(l),o.push(c[3]),a.push(l),s.push(u),n[e]=[u,e,"private",l]):n[e]=[s[p],e,"private",a[p]]):n[e]=[c[2],c[1]],i[e]=!0),"factory"!==c[2]&&"type"!==c[2]||!c[1].$scope||t.forEach((t=>{-1!==c[1].$scope.indexOf(t)&&(n[e]=[c[2],c[1]],i[t]=!0)}));t.forEach((e=>{if(!i[e])throw new Error('No provider for "'+e+'". Cannot use provider from the parent!')})),e.unshift(n)}return new Ze(e,a)}const f={factory:u,type:l,value:function(e){return e}};function m(e,t){const n=e.__init__||[];return function(){n.forEach((e=>{"string"==typeof e?t.get(e):t.invoke(e)}))}}function v(e){const t=e.__exports__;if(t){const n=e.__modules__,i=Object.keys(e).reduce(((t,n)=>("__exports__"!==n&&"__modules__"!==n&&"__init__"!==n&&"__depends__"!==n&&(t[n]=e[n]),t)),Object.create(null)),o=d((n||[]).concat(i)),a=Ue((function(e){return o.get(e)}));t.forEach((function(e){r[e]=[a,e,"private",o]}));const s=(e.__init__||[]).slice();return s.unshift((function(){o.init()})),m(e=Object.assign({},e,{__init__:s}),o)}return Object.keys(e).forEach((function(t){if("__init__"===t||"__depends__"===t)return;const n=e[t];if("private"===n[2])return void(r[t]=n);const i=n[0],o=n[1];r[t]=[f[i],Qe(i,o),i]})),m(e,a)}function y(e,t){return-1!==e.indexOf(t)||-1!==(e=(t.__depends__||[]).reduce(y,e)).indexOf(t)?e:e.concat(t)}this.get=c,this.invoke=u,this.instantiate=l,this.createChild=d,this.init=function(e){const t=e.reduce(y,[]).map(v);let n=!1;return function(){n||(n=!0,t.forEach((e=>e())))}}(e)}function Qe(e,t){return"value"!==e&&Ge(t)&&(t=Ue(t.slice())),t}function Je(e,t){var n=this;t=t||1e3,e.on(["render.shape","render.connection"],t,(function(e,t){var i=e.type,r=t.element,o=t.gfx,a=t.attrs;if(n.canRender(r))return"render.shape"===i?n.drawShape(o,r,a):n.drawConnection(o,r,a)})),e.on(["render.getShapePath","render.getConnectionPath"],t,(function(e,t){if(n.canRender(t))return"render.getShapePath"===e.type?n.getShapePath(t):n.getConnectionPath(t)}))}function et(e){return e.flat().join(",").replace(/,?([A-Za-z]),?/g,"$1")}function tt(e){return["L",e.x,e.y]}function nt(e,t){const n=e.length,i=[(r=e[0],["M",r.x,r.y])];var r,o,a,s;for(let r=1;r<n;r++){const n=e[r-1],c=e[r],p=e[r+1];if(!p||!t){i.push(tt(c));continue}const l=Math.min(t,rt(c.x-n.x,c.y-n.y),rt(p.x-c.x,p.y-c.y));if(!l){i.push(tt(c));continue}const u=it(c,n,l),h=it(c,n,.5*l),d=it(c,p,l),f=it(c,p,.5*l);i.push(tt(u)),i.push((a=f,s=d,["C",(o=h).x,o.y,a.x,a.y,s.x,s.y]))}return i}function it(e,t,n){const i=t.x-e.x,r=t.y-e.y,o=n/rt(i,r);return{x:e.x+i*o,y:e.y+r*o}}function rt(e,t){return Math.sqrt(Math.pow(e,2)+Math.pow(t,2))}function ot(e,t,n){u(t)&&(n=t,t=null),t||(t={});const i=Ae("path",t);return u(n)&&(i.dataset.cornerRadius=String(n)),at(i,e)}function at(e,t){return _e(e,{d:et(nt(t,parseInt(e.dataset.cornerRadius,10)||0))}),e}function st(e){return y(e,(function(t){return!m(e,(function(e){return e!==t&&ct(t,e)}))}))}function ct(e,t){if(t){if(e===t)return t;if(e.parent)return ct(e.parent,t)}}function pt(e,t,n){var i=!n||-1===e.indexOf(t);return i&&e.push(t),i}function lt(e,t,n){n=n||0,p(e)||(e=[e]),g(e,(function(e,i){var r=t(e,i,n);p(r)&&r.length&&lt(r,t,n+1)}))}function ut(e,t){return function(e,t){var n=[],i=[];return lt(e,(function(e,r,o){pt(n,e,t);var a=e.children;if(a&&pt(i,a,t))return a})),n}(e,!t)}function ht(e,t){var n,i,r,o;return t=!!t,p(e)||(e=[e]),g(e,(function(e){var a=e;e.waypoints&&!t&&(a=ht(e.waypoints,!0));var s=a.x,c=a.y,p=a.height||0,l=a.width||0;(s<n||void 0===n)&&(n=s),(c<i||void 0===i)&&(i=c),(s+l>r||void 0===r)&&(r=s+l),(c+p>o||void 0===o)&&(o=c+p)})),{x:n,y:i,height:o-i,width:r-n}}function dt(e,t){var n={};return g(e,(function(e){var i=e;i.waypoints&&(i=ht(i)),!u(t.y)&&i.x>t.x&&(n[e.id]=e),!u(t.x)&&i.y>t.y&&(n[e.id]=e),i.x>t.x&&i.y>t.y&&(u(t.width)&&u(t.height)&&i.width+i.x<t.width+t.x&&i.height+i.y<t.height+t.y?n[e.id]=e:u(t.width)&&u(t.height)||(n[e.id]=e))})),n}function ft(e){return"waypoints"in e?"connection":"x"in e?"shape":"root"}function mt(e){return!(!e||!e.isFrame)}function vt(e,t){return L({},e||{},t||{})}Je.prototype.canRender=function(e){},Je.prototype.drawShape=function(e,t){},Je.prototype.drawConnection=function(e,t){},Je.prototype.getShapePath=function(e){},Je.prototype.getConnectionPath=function(e){};function yt(e,t){Je.call(this,e,1),this.CONNECTION_STYLE=t.style(["no-fill"],{strokeWidth:5,stroke:"fuchsia"}),this.SHAPE_STYLE=t.style({fill:"white",stroke:"fuchsia",strokeWidth:2}),this.FRAME_STYLE=t.style(["no-fill"],{stroke:"fuchsia",strokeDasharray:4,strokeWidth:2})}e(yt,Je),yt.prototype.canRender=function(){return!0},yt.prototype.drawShape=function(e,t,n){var i=Ae("rect");return _e(i,{x:0,y:0,width:t.width||0,height:t.height||0}),mt(t)?_e(i,L({},this.FRAME_STYLE,n||{})):_e(i,L({},this.SHAPE_STYLE,n||{})),ye(e,i),i},yt.prototype.drawConnection=function(e,t,n){var i=ot(t.waypoints,L({},this.CONNECTION_STYLE,n||{}));return ye(e,i),i},yt.prototype.getShapePath=function(e){var t=e.x,n=e.y,i=e.width;return et([["M",t,n],["l",i,0],["l",0,e.height],["l",-i,0],["z"]])},yt.prototype.getConnectionPath=function(e){var t,n,i=e.waypoints,r=[];for(t=0;n=i[t];t++)n=n.original||n,r.push([0===t?"M":"L",n.x,n.y]);return et(r)},yt.$inject=["eventBus","styles"];var gt={__init__:["defaultRenderer"],defaultRenderer:["type",yt],styles:["type",function(){var e={"no-fill":{fill:"none"},"no-border":{strokeOpacity:0},"no-events":{pointerEvents:"none"}},t=this;this.cls=function(e,t,n){return L(this.style(t,n),{class:e})},this.style=function(t,n){p(t)||n||(n=t,t=[]);var i=_(t,(function(t,n){return L(t,e[n]||{})}),{});return n?L(i,n):i},this.computeStyle=function(e,n,i){return p(n)||(i=n,n=[]),t.style(n||[],L({},i,e||{}))}}]};function bt(e,t){if(!e||!t)return-1;var n=e.indexOf(t);return-1!==n&&e.splice(n,1),n}function _t(e,t,n){if(e&&t){"number"!=typeof n&&(n=-1);var i=e.indexOf(t);if(-1!==i){if(i===n)return;if(-1===n)return;e.splice(i,1)}-1!==n?e.splice(n,0,t):e.push(t)}}function xt(e,t){return e&&t?e.indexOf(t):-1}function wt(e,t){return e&&t?Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2)):-1}function Et(e,t,n,i){if(void 0===i&&(i=5),!e||!t||!n)return!1;var r=(t.x-e.x)*(n.y-e.y)-(t.y-e.y)*(n.x-e.x),o=wt(e,t);return Math.abs(r/o)<=i}function St(e,t){var n=Array.from(arguments).flat();const i={x:"v",y:"h"};for(const[e,t]of Object.entries(i))if(Ct(e,n))return t;return!1}function Ct(e,t){const n=t[0];return x(t,(function(t){return Math.abs(n[e]-t[e])<=2}))}function kt(e,t,n){return n=n||0,e.x>t.x-n&&e.y>t.y-n&&e.x<t.x+t.width+n&&e.y<t.y+t.height+n}function Rt(e,t){return{x:Math.round(e.x+(t.x-e.x)/2),y:Math.round(e.y+(t.y-e.y)/2)}} /** * This file contains source code adapted from Snap.svg (licensed Apache-2.0). * * @see https://github.com/adobe-webplatform/Snap.svg/blob/master/src/path.js */var Pt=/,?([a-z]),?/gi,At=parseFloat,Mt=Math,Tt=Mt.PI,Dt=Mt.min,Bt=Mt.max,Nt=Mt.pow,jt=Mt.abs,Ot=/([a-z])[\s,]*((-?\d*\.?\d*(?:e[-+]?\d+)?[\s]*,?[\s]*)+)/gi,Lt=/(-?\d*\.?\d*(?:e[-+]?\d+)?)[\s]*,?[\s]*/gi,$t=Array.isArray||function(e){return e instanceof Array};function It(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Ft(e){if("function"==typeof e||Object(e)!==e)return e;var t=new e.constructor;for(var n in e)It(e,n)&&(t[n]=Ft(e[n]));return t}function zt(e){var t=zt.ps=zt.ps||{};return t[e]?t[e].sleep=100:t[e]={sleep:100},setTimeout((function(){for(var n in t)It(t,n)&&n!=e&&(t[n].sleep--,!t[n].sleep&&delete t[n])})),t[e]}function Ht(e,t,n,i){return 1===arguments.length&&(t=e.y,n=e.width,i=e.height,e=e.x),{x:e,y:t,width:n,height:i,x2:e+n,y2:t+i}}function Vt(){return this.join(",").replace(Pt,"$1")}function Gt(e){var t=Ft(e);return t.toString=Vt,t}function Wt(e,t,n,i,r,o,a,s,c){var p=1-c,l=Nt(p,3),u=Nt(p,2),h=c*c*c,d=l*t+3*u*c*i+3*p*c*c*o+h*s;return{x:Zt(l*e+3*u*c*n+3*p*c*c*r+h*a),y:Zt(d)}}function Ut(e){var t=function(e,t,n,i,r,o,a,s){for(var c,p,l,u,h,d,f,m,v=[],y=[[],[]],g=0;g<2;++g)if(0==g?(p=6*e-12*n+6*r,c=-3*e+9*n-9*r+3*a,l=3*n-3*e):(p=6*t-12*i+6*o,c=-3*t+9*i-9*o+3*s,l=3*i-3*t),jt(c)<1e-12){if(jt(p)<1e-12)continue;0<(u=-l/p)&&u<1&&v.push(u)}else f=p*p-4*l*c,m=Mt.sqrt(f),f<0||(0<(h=(-p+m)/(2*c))&&h<1&&v.push(h),0<(d=(-p-m)/(2*c))&&d<1&&v.push(d));var b,_=v.length,x=_;for(;_--;)b=1-(u=v[_]),y[0][_]=b*b*b*e+3*b*b*u*n+3*b*u*u*r+u*u*u*a,y[1][_]=b*b*b*t+3*b*b*u*i+3*b*u*u*o+u*u*u*s;return y[0][x]=e,y[1][x]=t,y[0][x+1]=a,y[1][x+1]=s,y[0].length=y[1].length=x+2,{x0:Dt(...y[0]),y0:Dt(...y[1]),x1:Bt(...y[0]),y1:Bt(...y[1])}}(...e);return Ht(t.x0,t.y0,t.x1-t.x0,t.y1-t.y0)}function qt(e,t,n){return t>=e.x&&t<=e.x+e.width&&n>=e.y&&n<=e.y+e.height}function Kt(e,t,n,i,r){return e*(e*(-3*t+9*n-9*i+3*r)+6*t-12*n+6*i)-3*t+3*n}function Yt(e,t,n,i,r,o,a,s,c){null==c&&(c=1);for(var p=(c=c>1?1:c<0?0:c)/2,l=[-.1252,.1252,-.3678,.3678,-.5873,.5873,-.7699,.7699,-.9041,.9041,-.9816,.9816],u=[.2491,.2491,.2335,.2335,.2032,.2032,.1601,.1601,.1069,.1069,.0472,.0472],h=0,d=0;d<12;d++){var f=p*l[d]+p,m=Kt(f,e,n,r,a),v=Kt(f,t,i,o,s),y=m*m+v*v;h+=u[d]*Mt.sqrt(y)}return p*h}function Xt(e,t,n,i,r,o,a,s){if(!(Bt(e,n)<Dt(r,a)||Dt(e,n)>Bt(r,a)||Bt(t,i)<Dt(o,s)||Dt(t,i)>Bt(o,s))){var c=(e*i-t*n)*(o-s)-(t-i)*(r*s-o*a),p=(e-n)*(o-s)-(t-i)*(r-a);if(p){var l=Zt(((e*i-t*n)*(r-a)-(e-n)*(r*s-o*a))/p),u=Zt(c/p),h=+l.toFixed(2),d=+u.toFixed(2);if(!(h<+Dt(e,n).toFixed(2)||h>+Bt(e,n).toFixed(2)||h<+Dt(r,a).toFixed(2)||h>+Bt(r,a).toFixed(2)||d<+Dt(t,i).toFixed(2)||d>+Bt(t,i).toFixed(2)||d<+Dt(o,s).toFixed(2)||d>+Bt(o,s).toFixed(2)))return{x:l,y:u}}}}function Zt(e){return Math.round(1e11*e)/1e11}function Qt(e,t,n){if(!function(e,t){return e=Ht(e),qt(t=Ht(t),e.x,e.y)||qt(t,e.x2,e.y)||qt(t,e.x,e.y2)||qt(t,e.x2,e.y2)||qt(e,t.x,t.y)||qt(e,t.x2,t.y)||qt(e,t.x,t.y2)||qt(e,t.x2,t.y2)||(e.x<t.x2&&e.x>t.x||t.x<e.x2&&t.x>e.x)&&(e.y<t.y2&&e.y>t.y||t.y<e.y2&&t.y>e.y)}(Ut(e),Ut(t)))return[];for(var i=Yt(...e),r=Yt(...t),o=tn(e)?1:~~(i/5)||1,a=tn(t)?1:~~(r/5)||1,s=[],c=[],p={},l=[],u=0;u<o+1;u++){var h=Wt(...e,u/o);s.push({x:h.x,y:h.y,t:u/o})}for(u=0;u<a+1;u++)h=Wt(...t,u/a),c.push({x:h.x,y:h.y,t:u/a});for(u=0;u<o;u++)for(var d=0;d<a;d++){var f,m=s[u],v=s[u+1],y=c[d],g=c[d+1],b=jt(v.x-m.x)<.01?"y":"x",_=jt(g.x-y.x)<.01?"y":"x",x=Xt(m.x,m.y,v.x,v.y,y.x,y.y,g.x,g.y);if(x){if(p[f=x.x.toFixed(9)+"#"+x.y.toFixed(9)])continue;p[f]=!0;var w=m.t+jt((x[b]-m[b])/(v[b]-m[b]))*(v.t-m.t),E=y.t+jt((x[_]-y[_])/(g[_]-y[_]))*(g.t-y.t);w>=0&&w<=1&&E>=0&&E<=1&&l.push({x:x.x,y:x.y,t1:w,t2:E})}}return l}function Jt(e,t,n){e=an(e),t=an(t);for(var i,r,o,a,s,c,p,l,u,h,d=n?0:[],f=0,m=e.length;f<m;f++){var v=e[f];if("M"==v[0])i=s=v[1],r=c=v[2];else{"C"==v[0]?(i=(u=[i,r,...v.slice(1)])[6],r=u[7]):(u=[i,r,i,r,s,c,s,c],i=s,r=c);for(var y=0,g=t.length;y<g;y++){var b=t[y];if("M"==b[0])o=p=b[1],a=l=b[2];else{"C"==b[0]?(o=(h=[o,a,...b.slice(1)])[6],a=h[7]):(h=[o,a,o,a,p,l,p,l],o=p,a=l);for(var _=Qt(u,h),x=0,w=_.length;x<w;x++)_[x].segment1=f,_[x].segment2=y,_[x].bez1=u,_[x].bez2=h;d=d.concat(_)}}}}return d}function en(e){var t=zt(e);if(t.abs)return Gt(t.abs);if($t(e)&&$t(e&&e[0])||(e=function(e){if(!e)return null;var t=zt(e);if(t.arr)return Ft(t.arr);var n={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},i=[];return $t(e)&&$t(e[0])&&(i=Ft(e)),i.length||String(e).replace(Ot,(function(e,t,r){var o=[],a=t.toLowerCase();for(r.replace(Lt,(function(e,t){t&&o.push(+t)})),"m"==a&&o.length>2&&(i.push([t,...o.splice(0,2)]),a="l",t="m"==t?"l":"L");o.length>=n[a]&&(i.push([t,...o.splice(0,n[a])]),n[a]););})),i.toString=zt.toString,t.arr=Ft(i),i}(e)),!e||!e.length)return[["M",0,0]];var n,i=[],r=0,o=0,a=0,s=0,c=0;"M"==e[0][0]&&(a=r=+e[0][1],s=o=+e[0][2],c++,i[0]=["M",r,o]);for(var p,l,u=c,h=e.length;u<h;u++){if(i.push(p=[]),(n=(l=e[u])[0])!=n.toUpperCase())switch(p[0]=n.toUpperCase(),p[0]){case"A":p[1]=l[1],p[2]=l[2],p[3]=l[3],p[4]=l[4],p[5]=l[5],p[6]=+l[6]+r,p[7]=+l[7]+o;break;case"V":p[1]=+l[1]+o;break;case"H":p[1]=+l[1]+r;break;case"M":a=+l[1]+r,s=+l[2]+o;default:for(var d=1,f=l.length;d<f;d++)p[d]=+l[d]+(d%2?r:o)}else for(var m=0,v=l.length;m<v;m++)p[m]=l[m];switch(n=n.toUpperCase(),p[0]){case"Z":r=+a,o=+s;break;case"H":r=p[1];break;case"V":o=p[1];break;case"M":a=p[p.length-2],s=p[p.length-1];default:r=p[p.length-2],o=p[p.length-1]}}return i.toString=Vt,t.abs=Gt(i),i}function tn(e){return e[0]===e[2]&&e[1]===e[3]&&e[4]===e[6]&&e[5]===e[7]}function nn(e,t,n,i){return[e,t,n,i,n,i]}function rn(e,t,n,i,r,o){var a=1/3,s=2/3;return[a*e+s*n,a*t+s*i,a*r+s*n,a*o+s*i,r,o]}function on(e,t,n,i,r,o,a,s,c,p){var l,u=120*Tt/180,h=Tt/180*(+r||0),d=[],f=function(e){return function t(){var n=Array.prototype.slice.call(arguments,0).join("␀"),i=t.cache=t.cache||{},r=t.count=t.count||[];return It(i,n)?(function(e,t){for(var n=0,i=e.length;n<i;n++)if(e[n]===t)return e.push(e.splice(n,1)[0])}(r,n),i[n]):(r.length>=1e3&&delete i[r.shift()],r.push(n),i[n]=e(...arguments),i[n])}}((function(e,t,n){return{x:e*Mt.cos(n)-t*Mt.sin(n),y:e*Mt.sin(n)+t*Mt.cos(n)}}));if(p)E=p[0],S=p[1],x=p[2],w=p[3];else{e=(l=f(e,t,-h)).x,t=l.y;var m=(e-(s=(l=f(s,c,-h)).x))/2,v=(t-(c=l.y))/2,y=m*m/(n*n)+v*v/(i*i);y>1&&(n*=y=Mt.sqrt(y),i*=y);var g=n*n,b=i*i,_=(o==a?-1:1)*Mt.sqrt(jt((g*b-g*v*v-b*m*m)/(g*v*v+b*m*m))),x=_*n*v/i+(e+s)/2,w=_*-i*m/n+(t+c)/2,E=Mt.asin(((t-w)/i).toFixed(9)),S=Mt.asin(((c-w)/i).toFixed(9));(E=e<x?Tt-E:E)<0&&(E=2*Tt+E),(S=s<x?Tt-S:S)<0&&(S=2*Tt+S),a&&E>S&&(E-=2*Tt),!a&&S>E&&(S-=2*Tt)}var C=S-E;if(jt(C)>u){var k=S,R=s,P=c;S=E+u*(a&&S>E?1:-1),d=on(s=x+n*Mt.cos(S),c=w+i*Mt.sin(S),n,i,r,0,a,R,P,[S,k,x,w])}C=S-E;var A=Mt.cos(E),M=Mt.sin(E),T=Mt.cos(S),D=Mt.sin(S),B=Mt.tan(C/4),N=4/3*n*B,j=4/3*i*B,O=[e,t],L=[e+N*M,t-j*A],$=[s+N*D,c-j*T],I=[s,c];if(L[0]=2*O[0]-L[0],L[1]=2*O[1]-L[1],p)return[L,$,I].concat(d);for(var F=[],z=0,H=(d=[L,$,I].concat(d).join().split(",")).length;z<H;z++)F[z]=z%2?f(d[z-1],d[z],h).y:f(d[z],d[z+1],h).x;return F}function an(e){var t=zt(e);if(t.curve)return Gt(t.curve);for(var n=en(e),i={x:0,y:0,bx:0,by:0,X:0,Y:0,qx:null,qy:null},r=function(e,t,n){var i,r;if(!e)return["C",t.x,t.y,t.x,t.y,t.x,t.y];switch(!(e[0]in{T:1,Q:1})&&(t.qx=t.qy=null),e[0]){case"M":t.X=e[1],t.Y=e[2];break;case"A":e=["C",...on(t.x,t.y,...e.slice(1))];break;case"S":"C"==n||"S"==n?(i=2*t.x-t.bx,r=2*t.y-t.by):(i=t.x,r=t.y),e=["C",i,r,...e.slice(1)];break;case"T":"Q"==n||"T"==n?(t.qx=2*t.x-t.qx,t.qy=2*t.y-t.qy):(t.qx=t.x,t.qy=t.y),e=["C",...rn(t.x,t.y,t.qx,t.qy,e[1],e[2])];break;case"Q":t.qx=e[1],t.qy=e[2],e=["C",...rn(t.x,t.y,e[1],e[2],e[3],e[4])];break;case"L":e=["C",...nn(t.x,t.y,e[1],e[2])];break;case"H":e=["C",...nn(t.x,t.y,e[1],t.y)];break;case"V":e=["C",...nn(t.x,t.y,t.x,e[1])];break;case"Z":e=["C",...nn(t.x,t.y,t.X,t.Y)]}return e},o=function(e,t){if(e[t].length>7){e[t].shift();for(var i=e[t];i.length;)a[t]="A",e.splice(t++,0,["C",...i.splice(0,6)]);e.splice(t,1),l=n.length}},a=[],s="",c="",p=0,l=n.length;p<l;p++){n[p]&&(s=n[p][0]),"C"!=s&&(a[p]=s,p&&(c=a[p-1])),n[p]=r(n[p],i,c),"A"!=a[p]&&"C"==s&&(a[p]="C"),o(n,p);var u=n[p],h=u.length;i.x=u[h-2],i.y=u[h-1],i.bx=At(u[h-4])||i.x,i.by=At(u[h-3])||i.y}return t.curve=Gt(n),n}function sn(e){return l(e)&&f(e,"waypoints")}function cn(e){return l(e)&&f(e,"labelTarget")}function pn(e){return{x:Math.round(e.x),y:Math.round(e.y),width:Math.round(e.width),height:Math.round(e.height)}}function ln(e){return{x:Math.round(e.x),y:Math.round(e.y)}}function un(e){return{top:e.y,right:e.x+(e.width||0),bottom:e.y+(e.height||0),left:e.x}}function hn(e){return{x:e.left,y:e.top,width:e.right-e.left,height:e.bottom-e.top}}function dn(e){for(var t=e.waypoints,n=t.reduce((function(e,n,i){var r=t[i-1];if(r){var o=e[e.length-1],a=o&&o.endLength||0,s=function(e,t){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}(r,n);e.push({start:r,end:n,startLength:a,endLength:a+s,length:s})}return e}),[]),i=n.reduce((function(e,t){return e+t.length}),0),r=i/2,o=0,a=n[o];a.endLength<r;)a=n[++o];var s=(r-a.startLength)/a.length;return{x:a.start.x+(a.end.x-a.start.x)*s,y:a.start.y+(a.end.y-a.start.y)*s}}function fn(e){return sn(e)?dn(e):ln({x:(t=e).x+(t.width||0)/2,y:t.y+(t.height||0)/2});var t}function mn(e,t,n){l(n=n||0)||(n={x:n,y:n});var i=un(e),r=un(t),o=i.bottom+n.y<=r.top,a=i.left-n.x>=r.right,s=i.top-n.y>=r.bottom,c=o?"top":s?"bottom":null,p=i.right+n.x<=r.left?"left":a?"right":null;return p&&c?c+"-"+p:p||c||"intersect"}function vn(e,t,n){var i=function(e,t){return Jt(e,t)}(e,t);return 1===i.length||2===i.length&&wt(i[0],i[1])<1?ln(i[0]):i.length>1?(i=A(i,(function(e){var t=Math.floor(100*e.t2)||1;return t=((t=100-t)<10?"0":"")+t,e.segment2+"#"+t})),ln(i[n?0:i.length-1])):null}function yn(e,t){return Math.round(e*t)/t}function gn(e){return u(e)?e+"px":e}function bn(e,t,n){const i=Ae("g");we(i).add(t);const r=void 0!==n?n:e.childNodes.length-1;return e.insertBefore(i,e.childNodes[r]||null),i}const _n={shape:["x","y","width","height"],connection:["waypoints"]};function xn(e,t,n,i){this._eventBus=t,this._elementRegistry=i,this._graphicsFactory=n,this._rootsIdx=0,this._layers={},this._planes=[],this._rootElement=null,this._focused=!1,this._init(e||{})}function wn(e,t){const n="matrix("+t.a+","+t.b+","+t.c+","+t.d+","+t.e+","+t.f+")";e.setAttribute("transform",n)}xn.$inject=["config.canvas","eventBus","graphicsFactory","elementRegistry"],xn.prototype._init=function(e){const t=this._eventBus,n=this._container=function(e){const t=(e=L({},{width:"100%",height:"100%"},e)).container||document.body,n=document.createElement("div");return n.setAttribute("class","djs-container djs-parent"),q(n,{position:"relative",overflow:"hidden",width:gn(e.width),height:gn(e.height)}),t.appendChild(n),n}(e),i=this._svg=Ae("svg");_e(i,{width:"100%",height:"100%"}),K(i,"tabindex",0),e.autoFocus&&t.on("element.hover",(()=>{this.restoreFocus()})),t.on("element.mousedown",500,(e=>{this.focus()})),i.addEventListener("focusin",(()=>{this._setFocused(!0)})),i.addEventListener("focusout",(()=>{this._setFocused(!1)})),ye(n,i);const r=this._viewport=bn(i,"viewport");e.deferUpdate&&(this._viewboxChanged=j(O(this._viewboxChanged,this),300)),t.on("diagram.init",(()=>{t.fire("canvas.init",{svg:i,viewport:r})})),t.on(["shape.added","connection.added","shape.removed","connection.removed","elements.changed","root.set"],(()=>{delete this._cachedViewbox})),t.on("diagram.destroy",500,this._destroy,this),t.on("diagram.clear",500,this._clear,this)},xn.prototype._destroy=function(){this._eventBus.fire("canvas.destroy",{svg:this._svg,viewport:this._viewport});const e=this._container.parentNode;e&&e.removeChild(this._container),delete this._svg,delete this._container,delete this._layers,delete this._planes,delete this._rootElement,delete this._viewport},xn.prototype._setFocused=function(e){e!=this._focused&&(this._focused=e,this._eventBus.fire("canvas.focus.changed",{focused:e}))},xn.prototype._clear=function(){this._elementRegistry.getAll().forEach((e=>{const t=ft(e);"root"===t?this.removeRootElement(e):this._removeElement(e,t)})),this._planes=[],this._rootElement=null,delete this._cachedViewbox},xn.prototype.focus=function(){this._svg.focus({preventScroll:!0}),this._setFocused(!0)},xn.prototype.restoreFocus=function(){document.activeElement===document.body&&this.focus()},xn.prototype.isFocused=function(){return this._focused},xn.prototype.getDefaultLayer=function(){return this.getLayer("base",0)},xn.prototype.getLayer=function(e,t){if(!e)throw new Error("must specify a name");let n=this._layers[e];if(n||(n=this._layers[e]=this._createLayer(e,t)),void 0!==t&&n.index!==t)throw new Error("layer <"+e+"> already created at index <"+t+">");return n.group},xn.prototype._getChildIndex=function(e){return _(this._layers,(function(t,n){return n.visible&&e>=n.index&&t++,t}),0)},xn.prototype._createLayer=function(e,t){void 0===t&&(t=1);const n=this._getChildIndex(t);return{group:bn(this._viewport,"layer-"+e,n),index:t,visible:!0}},xn.prototype.showLayer=function(e){if(!e)throw new Error("must specify a name");const t=this._layers[e];if(!t)throw new Error("layer <"+e+"> does not exist");const n=this._viewport,i=t.group,r=t.index;if(t.visible)return i;const o=this._getChildIndex(r);return n.insertBefore(i,n.childNodes[o]||null),t.visible=!0,i},xn.prototype.hideLayer=function(e){if(!e)throw new Error("must specify a name");const t=this._layers[e];if(!t)throw new Error("layer <"+e+"> does not exist");const n=t.group;return t.visible?(Fe(n),t.visible=!1,n):n},xn.prototype._removeLayer=function(e){const t=this._layers[e];t&&(delete this._layers[e],Fe(t.group))},xn.prototype.getActiveLayer=function(){const e=this._findPlaneForRoot(this.getRootElement());return e?e.layer:null},xn.prototype.findRoot=function(e){if("string"==typeof e&&(e=this._elementRegistry.get(e)),!e)return;const t=this._findPlaneForRoot(function(e){for(;e.parent;)e=e.parent;return e}(e))||{};return t.rootElement},xn.prototype.getRootElements=function(){return this._planes.map((function(e){return e.rootElement}))},xn.prototype._findPlaneForRoot=function(e){return m(this._planes,(function(t){return t.rootElement===e}))},xn.prototype.getContainer=function(){return this._container},xn.prototype._updateMarker=function(e,t,n){let i;e.id||(e=this._elementRegistry.get(e)),e.markers=e.markers||new Set,i=this._elementRegistry._elements[e.id],i&&(g([i.gfx,i.secondaryGfx],(function(i){i&&(n?(e.markers.add(t),we(i).add(t)):(e.markers.delete(t),we(i).remove(t)))})),this._eventBus.fire("element.marker.update",{element:e,gfx:i.gfx,marker:t,add:!!n}))},xn.prototype.addMarker=function(e,t){this._updateMarker(e,t,!0)},xn.prototype.removeMarker=function(e,t){this._updateMarker(e,t,!1)},xn.prototype.hasMarker=function(e,t){return e.id||(e=this._elementRegistry.get(e)),!!e.markers&&e.markers.has(t)},xn.prototype.toggleMarker=function(e,t){this.hasMarker(e,t)?this.removeMarker(e,t):this.addMarker(e,t)},xn.prototype.getRootElement=function(){const e=this._rootElement;return e||this._planes.length?e:this.setRootElement(this.addRootElement(null))},xn.prototype.addRootElement=function(e){const t=this._rootsIdx++;e||(e={id:"__implicitroot_"+t,children:[],isImplicit:!0});const n=e.layer="root-"+t;this._ensureValid("root",e);const i=this.getLayer(n,0);return this.hideLayer(n),this._addRoot(e,i),this._planes.push({rootElement:e,layer:i}),e},xn.prototype.removeRootElement=function(e){"string"==typeof e&&(e=this._elementRegistry.get(e));if(this._findPlaneForRoot(e))return this._removeRoot(e),this._removeLayer(e.layer),this._planes=this._planes.filter((function(t){return t.rootElement!==e})),this._rootElement===e&&(this._rootElement=null),e},xn.prototype.setRootElement=function(e){if(e===this._rootElement)return e;let t;if(!e)throw new Error("rootElement required");return t=this._findPlaneForRoot(e),t||(e=this.addRootElement(e)),this._setRoot(e),e},xn.prototype._removeRoot=function(e){const t=this._elementRegistry,n=this._eventBus;n.fire("root.remove",{element:e}),n.fire("root.removed",{element:e}),t.remove(e)},xn.prototype._addRoot=function(e,t){const n=this._elementRegistry,i=this._eventBus;i.fire("root.add",{element:e}),n.add(e,t),i.fire("root.added",{element:e,gfx:t})},xn.prototype._setRoot=function(e,t){const n=this._rootElement;n&&(this._elementRegistry.updateGraphics(n,null,!0),this.hideLayer(n.layer)),e&&(t||(t=this._findPlaneForRoot(e).layer),this._elementRegistry.updateGraphics(e,this._svg,!0),this.showLayer(e.layer)),this._rootElement=e,this._eventBus.fire("root.set",{element:e})},xn.prototype._ensureValid=function(e,t){if(!t.id)throw new Error("element must have an id");if(this._elementRegistry.get(t.id))throw new Error("element <"+t.id+"> already exists");const n=_n[e],i=x(n,(function(e){return void 0!==t[e]}));if(!i)throw new Error("must supply { "+n.join(", ")+" } with "+e)},xn.prototype._setParent=function(e,t,n){_t(t.children,e,n),e.parent=t},xn.prototype._addElement=function(e,t,n,i){n=n||this.getRootElement();const r=this._eventBus,o=this._graphicsFactory;this._ensureValid(e,t),r.fire(e+".add",{element:t,parent:n}),this._setParent(t,n,i);const a=o.create(e,t,i);return this._elementRegistry.add(t,a),o.update(e,t,a),r.fire(e+".added",{element:t,gfx:a}),t},xn.prototype.addShape=function(e,t,n){return this._addElement("shape",e,t,n)},xn.prototype.addConnection=function(e,t,n){return this._addElement("connection",e,t,n)},xn.prototype._removeElement=function(e,t){const n=this._elementRegistry,i=this._graphicsFactory,r=this._eventBus;if(e=n.get(e.id||e))return r.fire(t+".remove",{element:e}),i.remove(e),bt(e.parent&&e.parent.children,e),e.parent=null,r.fire(t+".removed",{element:e}),n.remove(e),e},xn.prototype.removeShape=function(e){return this._removeElement(e,"shape")},xn.prototype.removeConnection=function(e){return this._removeElement(e,"connection")},xn.prototype.getGraphics=function(e,t){return this._elementRegistry.getGraphics(e,t)},xn.prototype._changeViewbox=function(e){this._eventBus.fire("canvas.viewbox.changing"),e.apply(this),this._cachedViewbox=null,this._viewboxChanged()},xn.prototype._viewboxChanged=function(){this._eventBus.fire("canvas.viewbox.changed",{viewbox:this.viewbox()})},xn.prototype.viewbox=function(e){if(void 0===e&&this._cachedViewbox)return structuredClone(this._cachedViewbox);const t=this._viewport,n=this.getSize();let i,r,o,a,s,c,p;return e?(this._changeViewbox((function(){s=Math.min(n.width/e.width,n.height/e.height);const i=this._svg.createSVGMatrix().scale(s).translate(-e.x,-e.y);He(t,i)})),e):(o=this._rootElement?this.getActiveLayer():null,i=o&&o.getBBox()||{},a=He(t),r=a?a.matrix:function(e,t,n,i,r,o){var a=Te().createSVGMatrix();switch(arguments.length){case 0:return a;case 1:return De(a,e);case 6:return De(a,{a:e,b:t,c:n,d:i,e:r,f:o})}}(),s=yn(r.a,1e3),c=yn(-r.e||0,1e3),p=yn(-r.f||0,1e3),e=this._cachedViewbox={x:c?c/s:0,y:p?p/s:0,width:n.width/s,height:n.height/s,scale:s,inner:{width:i.width||0,height:i.height||0,x:i.x||0,y:i.y||0},outer:n})},xn.prototype.scroll=function(e){const t=this._viewport;let n=t.getCTM();return e&&this._changeViewbox((function(){e=L({dx:0,dy:0},e||{}),n=this._svg.createSVGMatrix().translate(e.dx,e.dy).multiply(n),wn(t,n)})),{x:n.e,y:n.f}},xn.prototype.scrollToElement=function(e,t){let n=100;"string"==typeof e&&(e=this._elementRegistry.get(e));const i=this.findRoot(e);if(i!==this.getRootElement()&&this.setRootElement(i),i===e)return;t||(t={}),"number"==typeof t&&(n=t),t={top:t.top||n,right:t.right||n,bottom:t.bottom||n,left:t.left||n};const r=ht(e),o=un(r),a=this.viewbox(),s=this.zoom();let c,p;a.y+=t.top/s,a.x+=t.left/s,a.width-=(t.right+t.left)/s,a.height-=(t.bottom+t.top)/s;const l=un(a);if(r.width<a.width&&r.height<a.height){const e=Math.max(0,o.right-l.right),t=Math.min(0,o.left-l.left),n=Math.max(0,o.bottom-l.bottom),i=Math.min(0,o.top-l.top);c=e||t,p=n||i}else c=r.x-a.x,p=r.y-a.y;this.scroll({dx:-c*s,dy:-p*s})},xn.prototype.zoom=function(e,t){if(!e)return this.viewbox(e).scale;if("fit-viewport"===e)return this._fitViewport(t);let n,i;return this._changeViewbox((function(){"object"!=typeof t&&(n=this.viewbox().outer,t={x:n.width/2,y:n.height/2}),i=this._setZoom(e,t)})),yn(i.a,1e3)},xn.prototype._fitViewport=function(e){const t=this.viewbox(),n=t.outer,i=t.inner;let r,o;return i.x>=0&&i.y>=0&&i.x+i.width<=n.width&&i.y+i.height<=n.height&&!e?o={x:0,y:0,width:Math.max(i.width+i.x,n.width),height:Math.max(i.height+i.y,n.height)}:(r=Math.min(1,n.width/i.width,n.height/i.height),o={x:i.x+(e?i.width/2-n.width/r/2:0),y:i.y+(e?i.height/2-n.height/r/2:0),width:n.width/r,height:n.height/r}),this.viewbox(o),this.viewbox(!1).scale},xn.prototype._setZoom=function(e,t){const n=this._svg,i=this._viewport,r=n.createSVGMatrix(),o=n.createSVGPoint();let a,s,c,p,l;c=i.getCTM();const u=c.a;return t?(a=L(o,t),s=a.matrixTransform(c.inverse()),p=r.translate(s.x,s.y).scale(1/u*e).translate(-s.x,-s.y),l=c.multiply(p)):l=r.scale(e),wn(this._viewport,l),l},xn.prototype.getSize=function(){return{width:this._container.clientWidth,height:this._container.clientHeight}},xn.prototype.getAbsoluteBBox=function(e){const t=this.viewbox();let n;if(e.waypoints){n=this.getGraphics(e).getBBox()}else n=e;return{x:n.x*t.scale-t.x*t.scale,y:n.y*t.scale-t.y*t.scale,width:n.width*t.scale,height:n.height*t.scale}},xn.prototype.resized=function(){delete this._cachedViewbox,this._eventBus.fire("canvas.resized")};var En="data-element-id";function Sn(e){this._elements={},this._eventBus=e}function Cn(e,t,n){var i=function(e,t,n,i){var r=n.inverse;return Object.defineProperty(e,"remove",{value:function(e){var n=this.indexOf(e);return-1!==n&&(this.splice(n,1),t.unset(e,r,i)),e}}),Object.defineProperty(e,"contains",{value:function(e){return-1!==this.indexOf(e)}}),Object.defineProperty(e,"add",{value:function(e,n){var o=this.indexOf(e);if(void 0===n){if(-1!==o)return;n=this.length}-1!==o&&this.splice(o,1),this.splice(n,0,e),-1===o&&t.set(e,r,i)}}),Object.defineProperty(e,"__refs_collection",{value:!0}),e}(n[t.name]||[],e,t,n);Object.defineProperty(n,t.name,{enumerable:t.enumerable,value:i}),i.length&&i.forEach((function(i){e.set(i,t.inverse,n)}))}function kn(e,t){if(!(this instanceof kn))return new kn(e,t);e.inverse=t,t.inverse=e,this.props={},this.props[e.name]=e,this.props[t.name]=t}Sn.$inject=["eventBus"],Sn.prototype.add=function(e,t,n){var i=e.id;this._validateId(i),_e(t,En,i),n&&_e(n,En,i),this._elements[i]={element:e,gfx:t,secondaryGfx:n}},Sn.prototype.remove=function(e){var t=this._elements,n=e.id||e,i=n&&t[n];i&&(_e(i.gfx,En,""),i.secondaryGfx&&_e(i.secondaryGfx,En,""),delete t[n])},Sn.prototype.updateId=function(e,t){this._validateId(t),"string"==typeof e&&(e=this.get(e)),this._eventBus.fire("element.updateId",{element:e,newId:t});var n=this.getGraphics(e),i=this.getGraphics(e,!0);this.remove(e),e.id=t,this.add(e,n,i)},Sn.prototype.updateGraphics=function(e,t,n){var i=e.id||e,r=this._elements[i];return n?r.secondaryGfx=t:r.gfx=t,t&&_e(t,En,i),t},Sn.prototype.get=function(e){var t;t="string"==typeof e?e:e&&_e(e,En);var n=this._elements[t];return n&&n.element},Sn.prototype.filter=function(e){var t=[];return this.forEach((function(n,i){e(n,i)&&t.push(n)})),t},Sn.prototype.find=function(e){for(var t=this._elements,n=Object.keys(t),i=0;i<n.length;i++){var r=t[n[i]],o=r.element;if(e(o,r.gfx))return o}},Sn.prototype.getAll=function(){return this.filter((function(e){return e}))},Sn.prototype.forEach=function(e){var t=this._elements;Object.keys(t).forEach((function(n){var i=t[n],r=i.element,o=i.gfx;return e(r,o)}))},Sn.prototype.getGraphics=function(e,t){var n=e.id||e,i=this._elements[n];return i&&(t?i.secondaryGfx:i.gfx)},Sn.prototype._validateId=function(e){if(!e)throw new Error("element must have an id");if(this._elements[e])throw new Error("element with id "+e+" already added")},kn.prototype.bind=function(e,t){if("string"==typeof t){if(!this.props[t])throw new Error("no property <"+t+"> in ref");t=this.props[t]}t.collection?Cn(this,t,e):function(e,t,n){var i=t.inverse,r=n[t.name];Object.defineProperty(n,t.name,{configurable:t.configurable,enumerable:t.enumerable,get:function(){return r},set:function(t){if(t!==r){var o=r;r=null,o&&e.unset(o,i,n),r=t,e.set(r,i,n)}}})}(this,t,e)},kn.prototype.ensureRefsCollection=function(e,t){var n=e[t.name];return function(e){return!0===e.__refs_collection}(n)||Cn(this,t,e),n},kn.prototype.ensureBound=function(e,t){(function(e,t){return Object.prototype.hasOwnProperty.call(e,t.name||t)})(e,t)||this.bind(e,t)},kn.prototype.unset=function(e,t,n){e&&(this.ensureBound(e,t),t.collection?this.ensureRefsCollection(e,t).remove(n):e[t.name]=void 0)},kn.prototype.set=function(e,t,n){e&&(this.ensureBound(e,t),t.collection?this.ensureRefsCollection(e,t).add(n):e[t.name]=n)};var Rn=new kn({name:"children",enumerable:!0,collection:!0},{name:"parent"}),Pn=new kn({name:"labels",enumerable:!0,collection:!0},{name:"labelTarget"}),An=new kn({name:"attachers",collection:!0},{name:"host"}),Mn=new kn({name:"outgoing",collection:!0},{name:"source"}),Tn=new kn({name:"incoming",collection:!0},{name:"target"});function Dn(){Object.defineProperty(this,"businessObject",{writable:!0}),Object.defineProperty(this,"label",{get:function(){return this.labels[0]},set:function(e){var t=this.label,n=this.labels;!e&&t?n.remove(t):n.add(e,0)}}),Rn.bind(this,"parent"),Pn.bind(this,"labels"),Mn.bind(this,"outgoing"),Tn.bind(this,"incoming")}function Bn(){Dn.call(this),Rn.bind(this,"children"),An.bind(this,"host"),An.bind(this,"attachers")}function Nn(){Dn.call(this),Rn.bind(this,"children")}function jn(){Bn.call(this),Pn.bind(this,"labelTarget")}function On(){Dn.call(this),Mn.bind(this,"source"),Tn.bind(this,"target")}e(Bn,Dn),e(Nn,Bn),e(jn,Bn),e(On,Dn);var Ln={connection:On,shape:Bn,label:jn,root:Nn};function $n(){this._uid=12}$n.prototype.createRoot=function(e){return this.create("root",e)},$n.prototype.createLabel=function(e){return this.create("label",e)},$n.prototype.createShape=function(e){return this.create("shape",e)},$n.prototype.createConnection=function(e){return this.create("connection",e)},$n.prototype.create=function(e,t){return(t=L({},t||{})).id||(t.id=e+"_"+this._uid++),function(e,t){var n=Ln[e];if(!n)throw new Error("unknown type: <"+e+">");return L(new n,t)}(e,t)};var In="__fn",Fn=Array.prototype.slice;function zn(){this._listeners={},this.on("diagram.destroy",1,this._destroy,this)}function Hn(){}function Vn(e){return e.childNodes[0]}function Gn(e,t,n,i,r){var o=Be();o.setTranslate(t,n);var a=Be();a.setRotate(i||0,0,0);var s=Be();s.setScale(1,1),He(e,[o,a,s])}function Wn(e,t,n){var i=Be();i.setTranslate(t,n),He(e,i)}function Un(e,t){var n=Be();n.setRotate(t,0,0),He(e,n)}function qn(e,t){this._eventBus=e,this._elementRegistry=t}function Kn(e,t,n){var i=n||t.firstChild;e!==i&&t.insertBefore(e,i)}zn.prototype.on=function(e,t,n,i){if(e=p(e)?e:[e],h(t)&&(i=n,n=t,t=1e3),!u(t))throw new Error("priority must be a number");var r=n;i&&((r=O(n,i))[In]=n[In]||n);var o=this;e.forEach((function(e){o._addListener(e,{priority:t,callback:r,next:null})}))},zn.prototype.once=function(e,t,n,i){var r=this;if(h(t)&&(i=n,n=t,t=1e3),!u(t))throw new Error("priority must be a number");function o(){o.__isTomb=!0;var t=n.apply(i,arguments);return r.off(e,o),t}o[In]=n,this.on(e,t,o)},zn.prototype.off=function(e,t){e=p(e)?e:[e];var n=this;e.forEach((function(e){n._removeListener(e,t)}))},zn.prototype.createEvent=function(e){var t=new Hn;return t.init(e),t},zn.prototype.fire=function(e,t){var n,i,r,o;if(o=Fn.call(arguments),"object"==typeof e&&(e=(t=e).type),!e)throw new Error("no event type specified");if(i=this._listeners[e]){n=t instanceof Hn?t:this.createEvent(t),o[0]=n;var a=n.type;e!==a&&(n.type=e);try{r=this._invokeListeners(n,o,i)}finally{e!==a&&(n.type=a)}return void 0===r&&n.defaultPrevented&&(r=!1),r}},zn.prototype.handleError=function(e){return!1===this.fire("error",{error:e})},zn.prototype._destroy=function(){this._listeners={}},zn.prototype._invokeListeners=function(e,t,n){for(var i;n&&!e.cancelBubble;)i=this._invokeListener(e,t,n),n=n.next;return i},zn.prototype._invokeListener=function(e,t,n){var i;if(n.callback.__isTomb)return i;try{i=function(e,t){return e.apply(null,t)}(n.callback,t),void 0!==i&&(e.returnValue=i,e.stopPropagation()),!1===i&&e.preventDefault()}catch(e){if(!this.handleError(e))throw console.error("unhandled error in event listener",e),e}return i},zn.prototype._addListener=function(e,t){var n,i=this._getListeners(e);if(i){for(;i;){if(i.priority<t.priority)return t.