diff --git a/dist/modeler.js b/dist/modeler.js new file mode 100644 index 0000000..28eab38 --- /dev/null +++ b/dist/modeler.js @@ -0,0 +1,172 @@ +/*! For license information please see modeler.js.LICENSE.txt */ +(()=>{var e={480:(e,t,n)=>{"use strict";var i=n(603);function o(e,t,n){var o=function(e,t){var n=[],o=e.get("extensionElements");if(void 0!==o){var r=o.get("values");void 0!==r&&(n=i.filter(r,(function(e){return function(e,t){return e&&"function"==typeof e.$instanceOf&&e.$instanceOf(t)}(e,t)})))}return n}(e,t);return n?(o[0]||{})[n]||[]:o}function r(e,t){var n=function(e){return(o(e,"camunda:InputOutput")||[])[0]}(e);return n&&n.get(t)||[]}function s(e){for(var t=[],n=e;n.$parent;)t.push(n.$parent),n=n.$parent;return t}function a(e,t,n){n=n||0,i.isArray(e)||(e=[e]),i.forEach(e,(function(e,o){var r=t(e,o,n);i.isArray(r)&&r.length&&a(r,t,n+1)}))}function l(e,t,n){var i=!n||-1===e.indexOf(t);return i&&e.push(t),i}function c(e,t,n){var i=[],o=[];return a(e,(function(e,r,s){l(i,e,t);var a=e.flowElements;if((-1===n||s=0?e[r].origin=(n=e[r].origin,o=t.origin,n.concat(o)):e.push(t)}function p(e,t,n){var o,a,l,c,h=(o=n,a=t,l=s(e),c=i.find(l,(function(e){return(t=e)&&"function"==typeof t.$instanceOf&&t.$instanceOf("bpmn:SubProcess")&&function(e,t){return i.find(function(e){return r(e,"inputParameters")}(e),(function(e){return e.name===t}))}(e,a);var t})),c||o);return{name:t,origin:[e],scope:h}}function d(e,t){var n=e.eventDefinitions;return n&&t?i.filter(n,(function(e){return function(e,t){return e&&"function"==typeof e.$instanceOf&&e.$instanceOf(t)}(e,t)})):n}var f=[function(e){var t=e.elements,n=e.containerElement,o=e.processVariables;return i.isArray(t)||(t=[t]),i.forEach(t,(function(e){var t=function(e){return r(e,"outputParameters")}(e);i.forEach(t,(function(t){var i=p(e,t.name,n);u(o,i)}))})),o},function(e){var t=e.elements,n=e.containerElement,o=e.processVariables;return i.isArray(t)||(t=[t]),i.forEach(t,(function(e){var t=function(e){return e.get("camunda:resultVariable")}(e);if(t){var i=p(e,t,n);u(o,i)}})),o},function(e){var t=e.elements,n=e.containerElement,r=e.processVariables;return i.isArray(t)||(t=[t]),i.forEach(t,(function(e){var t=function(e){var t=function(e){return o(e,"camunda:FormData")[0]}(e);return t&&t.get("fields")||[]}(e);i.forEach(t,(function(t){var i=p(e,t.id,n);u(r,i)}))})),r},function(e){var t=e.elements,n=e.containerElement,r=e.processVariables;return i.isArray(t)||(t=[t]),i.forEach(t,(function(e){var t=function(e){return o(e,"camunda:Out")}(e);i.forEach(t,(function(t){if(!t.local){var i=p(e,t.target,n);u(r,i)}}))})),r},function(e){var t=e.elements,n=e.containerElement,o=e.processVariables,r=function(e,t){var i=p(e,t,n);u(o,i)};return i.isArray(t)||(t=[t]),i.forEach(t,(function(e){var t=function(e){return d(e,"bpmn:ErrorEventDefinition")}(e);i.forEach(t,(function(t){var n=t.get("errorCodeVariable"),i=t.get("errorMessageVariable");n&&r(e,n),i&&r(e,i)}));var n=function(e){return d(e,"bpmn:EscalationEventDefinition")}(e);i.forEach(n,(function(t){var n=t.get("escalationCodeVariable");n&&r(e,n)}))})),o}];t.Zc=async function(e,t,n=[]){var o,r=await function(e,t=[]){const n=[];var o=[],r=h([e],!1);return i.forEach([...f,...t],(function(t){n.push(t({elements:r,containerElement:e,processVariables:o}))})),Promise.all(n).then((()=>o))}(t,n),a=function(e,t){var n=h(t);return i.find(n,(function(t){return t.id===e}))}(e,t),l=i.filter(r,(function(e){return e.scope.id===a.id})),c=s(a);return o=i.filter(r,(function(e){return i.find(c,(function(t){return t.id===e.scope.id}))})),l.concat(o)}},285:(e,t,n)=>{"use strict";var i=n(603);function o(e){return(r(e,"zeebe:IoMapping")||[])[0]}function r(e,t,n){var o=function(e,t){var n=[],o=e.get("extensionElements");if(void 0!==o){var r=o.get("values");void 0!==r&&(n=i.filter(r,(function(e){return function(e,t){return e&&"function"==typeof e.$instanceOf&&e.$instanceOf(t)}(e,t)})))}return n}(e,t);return n?(o[0]||{})[n]||[]:o}function s(e){for(var t=[],n=e;n.$parent;)t.push(n.$parent),n=n.$parent;return t}function a(e,t,n){n=n||0,i.isArray(e)||(e=[e]),i.forEach(e,(function(e,o){var r=t(e,o,n);i.isArray(r)&&r.length&&a(r,t,n+1)}))}function l(e,t,n){var i=!n||-1===e.indexOf(t);return i&&e.push(t),i}function c(e,t,n){var i=[],o=[];return a(e,(function(e,r,s){l(i,e,t);var a=e.flowElements;if((-1===n||s=0?e[r].origin=(n=e[r].origin,o=t.origin,n.concat(o)):e.push(t)}function p(e,t,n){var r,a,l,c,h=(r=n,a=t,l=s(e),c=i.find(l,(function(e){return(t=e)&&"function"==typeof t.$instanceOf&&t.$instanceOf("bpmn:SubProcess")&&function(e,t){return i.find(function(e){return function(e,t){var n=o(e);return n&&n.get("inputParameters")||[]}(e)}(e),(function(e){return e.target===t}))}(e,a);var t})),c||r);return{name:t,origin:[e],scope:h}}var d=[function(e){var t=e.elements,n=e.processVariables;return i.isArray(t)||(t=[t]),i.forEach(t,(function(e){var t=function(e){return(o(e)||{}).inputParameters}(e);i.forEach(t,(function(t){var i=p(e,t.target,e);u(n,i)}))})),n},function(e){var t=e.elements,n=e.processVariables;return i.isArray(t)||(t=[t]),i.forEach(t,(function(e){var t=e.loopCharacteristics,i=t&&function(e){const t=r(e,"zeebe:LoopCharacteristics")[0];return t&&t.inputElement}(t);if(i){var o=p(e,i,e);u(n,o)}})),n},function(e){var t=e.elements,n=e.containerElement,r=e.processVariables;return i.isArray(t)||(t=[t]),i.forEach(t,(function(e){var t=function(e){return(o(e)||{}).outputParameters}(e);i.forEach(t,(function(t){var i=p(e,t.target,n);u(r,i)}))})),r},function(e){var t=e.elements,n=e.containerElement,o=e.processVariables;return i.isArray(t)||(t=[t]),i.forEach(t,(function(e){var t=e.loopCharacteristics,i=t&&function(e){const t=r(e,"zeebe:LoopCharacteristics")[0];return t&&t.outputCollection}(t);if(i){var s=p(e,i,n);u(o,s)}})),o},function(e){var t=e.elements,n=e.containerElement,o=e.processVariables;return i.isArray(t)||(t=[t]),i.forEach(t,(function(e){var t=function(e){return(r(e,"zeebe:CalledDecision")||[])[0]}(e)||function(e){return(r(e,"zeebe:Script")||[])[0]}(e);if(t){var i=t.resultVariable;if(i){var s=p(e,i,n);u(o,s)}}})),o}];async function f(e,t,n=[]){var o,r=await function(e,t=[]){var n=[],o=h([e],!1);const r=[];return i.forEach([...d,...t],(function(t){r.push(t({elements:o,containerElement:e,processVariables:n}))})),Promise.all(r).then((()=>n))}(t,n),a=function(e,t){var n=h(t);return i.find(n,(function(t){return t.id===e}))}(e,t),l=i.filter(r,(function(e){return e.scope.id===a.id})),c=s(a);return o=i.filter(r,(function(e){return i.find(c,(function(t){return t.id===e.scope.id}))})),l.concat(o)}function m(e){return e&&e.businessObject||e}function g(e,t){var n=m(e);return n&&"function"==typeof n.$instanceOf&&n.$instanceOf(t)}t.Hp=function(e,t=[]){return f(function(e){const t=m(e);return g(e,"bpmn:Participant")?t.processRef.id:t.id}(e),function(e){const t=m(e);if(g(t,"bpmn:Participant"))return t.processRef;if(g(t,"bpmn:Process"))return t;let n=t;for(;n.$parent&&!g(n,"bpmn:Process");)n=n.$parent;return n}(e),t)}},485:(e,t)=>{var n;!function(){"use strict";var i={}.hasOwnProperty;function o(){for(var e=[],t=0;t2096103.424&&d!==p))return navigator.msSaveBlob?navigator.msSaveBlob(b(c),f):w(c);l=(c=b(c)).type||a}else if(/([\x80-\xff])/.test(c)){for(var g=0,v=new Uint8Array(c.length),y=v.length;g=Number.MAX_SAFE_INTEGER);n++)t+=e.charCodeAt(n);return t}(t.seed);else{if(void 0!==t.seed&&null!==t.seed)throw new TypeError("The seed value must be an integer or string");e=null}var a,l;if(null!==t.count&&void 0!==t.count){for(var c=t.count,u=[],d=0;du.length;){var f=i(t);null!==e&&(t.seed=e),u.push(f)}return t.count=c,u}return function(e,t){switch(t.format){case"hsvArray":return e;case"hslArray":return p(e);case"hsl":var n=p(e);return"hsl("+n[0]+", "+n[1]+"%, "+n[2]+"%)";case"hsla":var i=p(e),o=t.alpha||Math.random();return"hsla("+i[0]+", "+i[1]+"%, "+i[2]+"%, "+o+")";case"rgbArray":return h(e);case"rgb":return"rgb("+h(e).join(", ")+")";case"rgba":var r=h(e);return o=t.alpha||Math.random(),"rgba("+r.join(", ")+", "+o+")";default:return function(e){var t=h(e);function n(e){var t=e.toString(16);return 1==t.length?"0"+t:t}return"#"+n(t[0])+n(t[1])+n(t[2])}(e)}}([a=o(t),l=r(a,t),s(a,l,t)],t)};function o(e){if(n.length>0){var i=l(s=function(e){if(isNaN(e)){if("string"==typeof e)if(t[e]){var n=t[e];if(n.hueRange)return n.hueRange}else if(e.match(/^#?([0-9A-F]{3}|[0-9A-F]{6})$/i))return a(u(e)[0]).hueRange}else{var i=parseInt(e);if(i<360&&i>0)return a(e).hueRange}return[0,360]}(e.hue)),o=(s[1]-s[0])/n.length,r=parseInt((i-s[0])/o);return!0===n[r]?r=(r+2)%n.length:n[r]=!0,(i=l(s=[(s[0]+r*o)%359,(s[0]+(r+1)*o)%359]))<0&&(i=360+i),i}var s;return(i=l(s=function(e){if("number"==typeof parseInt(e)){var n=parseInt(e);if(n<360&&n>0)return[n,n]}if("string"==typeof e)if(t[e]){var i=t[e];if(i.hueRange)return i.hueRange}else if(e.match(/^#?([0-9A-F]{3}|[0-9A-F]{6})$/i)){var o=u(e)[0];return[o,o]}return[0,360]}(e.hue)))<0&&(i=360+i),i}function r(e,t){if("monochrome"===t.hue)return 0;if("random"===t.luminosity)return l([0,100]);var n=function(e){return a(e).saturationRange}(e),i=n[0],o=n[1];switch(t.luminosity){case"bright":i=55;break;case"dark":i=o-10;break;case"light":o=55}return l([i,o])}function s(e,t,n){var i=function(e,t){for(var n=a(e).lowerBounds,i=0;i=o&&t<=s){var c=(l-r)/(s-o);return c*t+(r-c*o)}}return 0}(e,t),o=100;switch(n.luminosity){case"dark":o=i+20;break;case"light":i=(o+i)/2;break;case"random":i=0,o=100}return l([i,o])}function a(e){for(var n in e>=334&&e<=360&&(e-=360),t){var i=t[n];if(i.hueRange&&e>=i.hueRange[0]&&e<=i.hueRange[1])return t[n]}return"Color not found"}function l(t){if(null===e){var n=Math.random();return n+=.618033988749895,n%=1,Math.floor(t[0]+n*(t[1]+1-t[0]))}var i=t[1]||1,o=t[0]||0,r=(e=(9301*e+49297)%233280)/233280;return Math.floor(o+r*(i-o))}function c(e,n,i){var o=i[0][0],r=i[i.length-1][0],s=i[i.length-1][1],a=i[0][1];t[e]={hueRange:n,lowerBounds:i,saturationRange:[o,r],brightnessRange:[s,a]}}function h(e){var t=e[0];0===t&&(t=1),360===t&&(t=359),t/=360;var n=e[1]/100,i=e[2]/100,o=Math.floor(6*t),r=6*t-o,s=i*(1-n),a=i*(1-r*n),l=i*(1-(1-r)*n),c=256,h=256,u=256;switch(o){case 0:c=i,h=l,u=s;break;case 1:c=a,h=i,u=s;break;case 2:c=s,h=i,u=l;break;case 3:c=s,h=a,u=i;break;case 4:c=l,h=s,u=i;break;case 5:c=i,h=s,u=a}return[Math.floor(255*c),Math.floor(255*h),Math.floor(255*u)]}function u(e){e=3===(e=e.replace(/^#/,"")).length?e.replace(/(.)/g,"$1$1"):e;var t=parseInt(e.substr(0,2),16)/255,n=parseInt(e.substr(2,2),16)/255,i=parseInt(e.substr(4,2),16)/255,o=Math.max(t,n,i),r=o-Math.min(t,n,i),s=o?r/o:0;switch(o){case t:return[(n-i)/r%6*60||0,s,o];case n:return[60*((i-t)/r+2)||0,s,o];case i:return[60*((t-n)/r+4)||0,s,o]}}function p(e){var t=e[0],n=e[1]/100,i=e[2]/100,o=(2-n)*i;return[t,Math.round(n*i/(o<1?o:2-o)*1e4)/100,o/2*100]}return i}(),e&&e.exports&&(t=e.exports=i),t.randomColor=i},603:(e,t)=>{"use strict";const n=Object.prototype.toString,i=Object.prototype.hasOwnProperty;function o(e){return void 0===e}function r(e){return void 0!==e}function s(e){return null==e}function a(e){return"[object Array]"===n.call(e)}function l(e){return"[object Object]"===n.call(e)}function c(e){const t=n.call(e);return"[object Function]"===t||"[object AsyncFunction]"===t||"[object GeneratorFunction]"===t||"[object AsyncGeneratorFunction]"===t||"[object Proxy]"===t}function h(e){if(!a(e))throw new Error("must supply array")}function u(e,t){return i.call(e,t)}function p(e,t){const n=_(t);let i;return d(e,(function(e,t){if(n(e,t))return i=e,!1})),i}function d(e,t){let n,i;if(o(e))return;const r=a(e)?k:E;for(let o in e)if(u(e,o)&&(n=e[o],i=t(n,r(o)),!1===i))return n}function f(e,t,n){return d(e,(function(e,i){n=t(n,e,i)})),n}function m(e,t){return!!f(e,(function(e,n,i){return e&&t(n,i)}),!0)}function g(e,t){let n=[];return d(e,(function(e,i){n.push(t(e,i))})),n}function v(e){return e&&Object.keys(e)||[]}function y(e,t,n={}){return t=x(t),d(e,(function(e){let i=t(e)||"_",o=n[i];o||(o=n[i]=[]),o.push(e)})),n}function b(e,...t){e=x(e);let n={};return d(t,(t=>y(t,e,n))),g(n,(function(e,t){return e[0]}))}const w=b;function x(e){return c(e)?e:t=>t[e]}function _(e){return c(e)?e:t=>t===e}function E(e){return e}function k(e){return Number(e)}t.assign=function(e,...t){return Object.assign(e,...t)},t.bind=function(e,t){return e.bind(t)},t.debounce=function(e,t){let n,i,o,r;function s(n){let s=Date.now(),c=n?0:r+t-s;if(c>0)return a(c);e.apply(o,i),l()}function a(e){n=setTimeout(s,e)}function l(){n&&clearTimeout(n),n=r=i=o=void 0}function c(...e){r=Date.now(),i=e,o=this,n||a(t)}return c.flush=function(){n&&s(!0),l()},c.cancel=l,c},t.ensureArray=h,t.every=m,t.filter=function(e,t){const n=_(t);let i=[];return d(e,(function(e,t){n(e,t)&&i.push(e)})),i},t.find=p,t.findIndex=function(e,t){const n=_(t);let i=a(e)?-1:void 0;return d(e,(function(e,t){if(n(e,t))return i=t,!1})),i},t.flatten=function(e){return Array.prototype.concat.apply([],e)},t.forEach=d,t.get=function(e,t,n){let i=e;return d(t,(function(e){if(s(i))return i=void 0,!1;i=i[e]})),o(i)?n:i},t.groupBy=y,t.has=u,t.isArray=a,t.isDefined=r,t.isFunction=c,t.isNil=s,t.isNumber=function(e){return"[object Number]"===n.call(e)},t.isObject=l,t.isString=function(e){return"[object String]"===n.call(e)},t.isUndefined=o,t.keys=v,t.map=g,t.matchPattern=function(e){return function(t){return m(e,(function(e,n){return t[n]===e}))}},t.merge=function e(t,...n){return n.length?(d(n,(function(n){n&&l(n)&&d(n,(function(n,i){if("__proto__"===i)return;let o=t[i];l(n)?(l(o)||(o={}),t[i]=e(o,n)):t[i]=n}))})),t):t},t.omit=function(e,t){let n={};return d(Object(e),(function(e,i){-1===t.indexOf(i)&&(n[i]=e)})),n},t.pick=function(e,t){let n={},i=Object(e);return d(t,(function(t){t in i&&(n[t]=e[t])})),n},t.reduce=f,t.set=function(e,t,n){let i=e;return d(t,(function(e,a){if("number"!=typeof e&&"string"!=typeof e)throw new Error("illegal key type: "+typeof e+". Key should be of type number or string.");if("constructor"===e)throw new Error("illegal key: constructor");if("__proto__"===e)throw new Error("illegal key: __proto__");let l=t[a+1],c=i[e];r(l)&&s(c)&&(c=i[e]=isNaN(+l)?{}:[]),o(l)?o(n)?delete i[e]:i[e]=n:i=c})),e},t.size=function(e){return v(e).length},t.some=function(e,t){return!!p(e,t)},t.sortBy=function(e,t){t=x(t);let n=[];return d(e,(function(e,i){let o=t(e,i),r={d:o,v:e};for(var s=0;se.v))},t.throttle=function(e,t){let n=!1;return function(...i){n||(e(...i),n=!0,setTimeout((()=>{n=!1}),t))}},t.unionBy=w,t.uniqueBy=b,t.values=function(e){return g(e,(e=>e))},t.without=function(e,t){if(o(e))return[];h(e);const n=_(t);return e.filter((function(e,t){return!n(e,t)}))}}},t={};function n(i){var o=t[i];if(void 0!==o)return o.exports;var r=t[i]={id:i,loaded:!1,exports:{}};return e[i].call(r.exports,r,r.exports,n),r.loaded=!0,r.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{for(var i in t)n.o(t,i)&&!n.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{"use strict";var e,t=(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),o=2;i===1/0;o*=2)i=Math.log(Math.pow(2,e/o))/Math.log(n)*o;var r=i-Math.floor(i),s="";for(o=0;o=Math.pow(2,e)?t(e,n):s};t.rack=function(e,n,i){var o=function(o){var s=0;do{if(s++>10){if(!i)throw new Error("too many ID collisions, use more bits");e+=i}var a=t(e,n)}while(Object.hasOwnProperty.call(r,a));return r[a]=o,a},r=o.hats={};return o.get=function(e){return o.hats[e]},o.set=function(e,t){return o.hats[e]=t,o},o.bits=e||128,o.base=n||16,o}}(e={exports:{}}),e.exports);function i(e){if(!(this instanceof i))return new i(e);e=e||[128,36,1],this._seed=e.length?t.rack(e[0],e[1],e[2]):e}i.prototype.next=function(e){return this._seed(e||!0)},i.prototype.nextPrefixed=function(e,t){var n;do{n=e+this.next(!0)}while(this.assigned(n));return this.claim(n,t),n},i.prototype.claim=function(e,t){this._seed.set(e,t||!0)},i.prototype.assigned=function(e){return this._seed.get(e)||!1},i.prototype.unclaim=function(e){delete this._seed.hats[e]},i.prototype.clear=function(){var e,t=this._seed.hats;for(e in t)this.unclaim(e)};const o=i,r=Object.freeze({ACTIVATED:1,RUNNING:2,ENDING:4,ENDED:8,DESTROYED:16,FAILED:32,TERMINATED:64,CANCELED:128,COMPLETED:256,COMPENSABLE:512,ACTIVE:7,NOT_DEAD:9}),s={};function a(e,t){throw new Error(`illegal transition: ${e.name} -> ${t}`)}function l(e,t){return e===s?t:e}class c{constructor(e,t,{start:n,cancel:i,complete:o,destroy:r,fail:s,terminate:a,compensable:c}={}){this.name=e,this.traits=t,this._start=l(n,this),this._compensable=l(c,this),this._cancel=l(i,this),this._complete=l(o,this),this._destroy=l(r,this),this._fail=l(s,this),this._terminate=l(a,this)}hasTrait(e){return!!(this.traits&e)}complete(){return this._complete||a(this,"complete")}destroy(){return this._destroy||a(this,"destroy")}cancel(){return this._cancel||a(this,"cancel")}fail(){return this._fail||a(this,"fail")}terminate(){return this._terminate||a(this,"terminate")}compensable(){return this._compensable||a(this,"compensable")}start(){return this._start||a(this,"start")}}const h=new c("failed",r.DESTROYED|r.FAILED),u=new c("terminated",r.DESTROYED|r.TERMINATED),p=new c("completed",r.DESTROYED|r.COMPLETED),d=new c("terminating",r.ENDING|r.TERMINATED,{destroy:u}),f=new c("canceling",r.ENDING|r.FAILED|r.CANCELED,{destroy:h,complete:s,terminate:d}),m=new c("completing",r.ENDING|r.COMPLETED,{destroy:p,cancel:f,terminate:d}),g=new c("failing",r.ENDING|r.FAILED,{cancel:f,complete:m,destroy:h,terminate:d}),v=new c("compensable:failing",r.ENDING|r.FAILED,{complete:s,terminate:d,destroy:h}),y=new c("compensable:completed",r.ENDED|r.COMPLETED,{cancel:f,fail:v,destroy:p,compensable:s}),b=new c("compensable:completing",r.ENDING|r.COMPLETED,{destroy:y,terminate:d,compensable:s}),w=new c("compensable:running",r.RUNNING|r.COMPENSABLE,{cancel:f,complete:b,compensable:s,destroy:y,fail:g,terminate:d}),x=new c("running",r.RUNNING,{cancel:f,complete:m,compensable:w,destroy:u,fail:g,terminate:d}),_=new c("activated",r.ACTIVATED,{start:x,destroy:u}),E=Object.freeze({ACTIVATED:_,RUNNING:x,CANCELING:f,COMPLETING:m,COMPLETED:p,FAILING:g,FAILED:h,TERMINATING:d,TERMINATED:u});class k{constructor(e,t,n=null,i=null){this.id=e,this.element=t,this.parent=n,this.initiator=i,this.subscriptions=new Set,this.children=[],this.state=E.ACTIVATED}get running(){return this.hasTrait(r.RUNNING)}get destroyed(){return this.hasTrait(r.DESTROYED)}get completed(){return this.hasTrait(r.COMPLETED)}get canceled(){return this.hasTrait(r.CANCELED)}get failed(){return this.hasTrait(r.FAILED)}hasTrait(e){return this.state.hasTrait(e)}start(){return this.state=this.state.start(),this}compensable(){return this.state=this.state.compensable(),this}fail(e){return this.failed||(this.state=this.state.fail(),this.failInitiator=e),this}cancel(e){return this.canceled||(this.state=this.state.cancel(),this.cancelInitiator=e),this}terminate(e){return this.state=this.state.terminate(),this.terminateInitiator=e,this}complete(){return this.state=this.state.complete(),this}destroy(e){return this.state=this.state.destroy(),this.destroyInitiator=e,this}getTokens(){return this.children.filter((e=>!e.destroyed)).length}getTokensByElement(e){return this.children.filter((t=>!t.destroyed&&t.element===e)).length}}function S(e,t){const n=[];for(const i of e)t(i)&&n.push(i);return n}function C(e,t){for(const n of e)if(t(n))return n;return null}function O(e,t){const n=["type","name","iref"].every((n=>!(n in e)||e[n]===t[n])),i=!t.ref&&("error"===t.type||"escalation"===t.type);return n&&(i||P(e,t))}function P(e,t){const n="ref";return!(n in e)||e[n]===t[n]}function M(e){return Array.prototype.concat.apply([],e)}const A=Object.prototype.toString,T=Object.prototype.hasOwnProperty;function B(e){return void 0===e}function R(e){return void 0!==e}function D(e){return null==e}function L(e){return"[object Array]"===A.call(e)}function N(e){return"[object Object]"===A.call(e)}function z(e){return"[object Number]"===A.call(e)}function I(e){const t=A.call(e);return"[object Function]"===t||"[object AsyncFunction]"===t||"[object GeneratorFunction]"===t||"[object AsyncGeneratorFunction]"===t||"[object Proxy]"===t}function F(e){return"[object String]"===A.call(e)}function $(e,t){return T.call(e,t)}function j(e,t){const n=oe(t);let i;return V(e,(function(e,t){if(n(e,t))return i=e,!1})),i}function q(e,t){const n=oe(t);let i=L(e)?-1:void 0;return V(e,(function(e,t){if(n(e,t))return i=t,!1})),i}function H(e,t){const n=oe(t);let i=[];return V(e,(function(e,t){n(e,t)&&i.push(e)})),i}function V(e,t){let n,i;if(B(e))return;const o=L(e)?se:re;for(let r in e)if($(e,r)&&(n=e[r],i=t(n,o(r)),!1===i))return n}function W(e,t){if(B(e))return[];!function(e){if(!L(e))throw new Error("must supply array")}(e);const n=oe(t);return e.filter((function(e,t){return!n(e,t)}))}function G(e,t,n){return V(e,(function(e,i){n=t(n,e,i)})),n}function Q(e,t){return!!G(e,(function(e,n,i){return e&&t(n,i)}),!0)}function X(e,t){return!!j(e,t)}function U(e,t){let n=[];return V(e,(function(e,i){n.push(t(e,i))})),n}function Y(e){return e&&Object.keys(e)||[]}function K(e){return U(e,(e=>e))}function Z(e,t,n={}){return t=ie(t),V(e,(function(e){let i=t(e)||"_",o=n[i];o||(o=n[i]=[]),o.push(e)})),n}function J(e,...t){e=ie(e);let n={};return V(t,(t=>Z(t,e,n))),U(n,(function(e,t){return e[0]}))}const ee=J;function te(e,t){t=ie(t);let n=[];return V(e,(function(e,i){let o=t(e,i),r={d:o,v:e};for(var s=0;se.v))}function ne(e){return function(t){return Q(e,(function(e,n){return t[n]===e}))}}function ie(e){return I(e)?e:t=>t[e]}function oe(e){return I(e)?e:t=>t===e}function re(e){return e}function se(e){return Number(e)}function ae(e,t){let n,i,o,r;function s(n){let s=Date.now(),c=n?0:r+t-s;if(c>0)return a(c);e.apply(o,i),l()}function a(e){n=setTimeout(s,e)}function l(){n&&clearTimeout(n),n=r=i=o=void 0}function c(...e){r=Date.now(),i=e,o=this,n||a(t)}return c.flush=function(){n&&s(!0),l()},c.cancel=l,c}function le(e,t){return e.bind(t)}function ce(e,...t){return Object.assign(e,...t)}function he(e,t,n){let i=e;return V(t,(function(e,o){if("number"!=typeof e&&"string"!=typeof e)throw new Error("illegal key type: "+typeof e+". Key should be of type number or string.");if("constructor"===e)throw new Error("illegal key: constructor");if("__proto__"===e)throw new Error("illegal key: __proto__");let r=t[o+1],s=i[e];R(r)&&D(s)&&(s=i[e]=isNaN(+r)?{}:[]),B(r)?B(n)?delete i[e]:i[e]=n:i=s})),e}function ue(e,t){let n={},i=Object(e);return V(t,(function(t){t in i&&(n[t]=e[t])})),n}function pe(e,t){let n={};return V(Object(e),(function(e,i){-1===t.indexOf(i)&&(n[i]=e)})),n}function de(e,t){var n=me(e);return n&&"function"==typeof n.$instanceOf&&n.$instanceOf(t)}function fe(e,t){return X(t,(function(t){return de(e,t)}))}function me(e){return e&&e.businessObject||e}function ge(e){return e&&e.di}function ve(e){return e.filter((e=>de(e,"bpmn:SequenceFlow")))}function ye(e){return de(e,"bpmn:MessageFlow")}function be(e){return de(e,"bpmn:SequenceFlow")}function we(e){return Ee(e)&&Be(e,"bpmn:LinkEventDefinition")}function xe(e){return Ee(e)&&Be(e,"bpmn:CompensateEventDefinition")}function _e(e){return de(e,"bpmn:Activity")&&e.businessObject.isForCompensation}function Ee(e){return(de(e,"bpmn:CatchEvent")||de(e,"bpmn:ReceiveTask"))&&!Pe(e)}function ke(e){return de(e,"bpmn:BoundaryEvent")&&!Pe(e)}function Se(e){return Oe(e)&&!Be(e)}function Ce(e){return!Pe(e)&&(!!Te(e,["bpmn:Activity","bpmn:IntermediateCatchEvent","bpmn:IntermediateThrowEvent","bpmn:Gateway","bpmn:EndEvent"])&&(!we(e)&&(!e.incoming.find(be)&&!_e(e)&&!Me(e))))}function Oe(e){return de(e,"bpmn:StartEvent")&&!Pe(e)}function Pe(e){return!!e.labelTarget}function Me(e){return me(e).triggeredByEvent}function Ae(e){return de(e,"bpmn:StartEvent")&&me(e).isInterrupting||de(e,"bpmn:BoundaryEvent")&&me(e).cancelActivity}function Te(e,t){return t.some((t=>de(e,t)))}function Be(e,t){return X(me(e).eventDefinitions,(e=>!t||de(e,t)))}function Re(e,t,n){const i=e.get("scopeIds",!1)||new o([32,36]),s={},a={},l=new De,c=new Set,h=[],u=new Set,p=new Set;function d(e,t){if(h.push([t,e]),1!==h.length)return;let n;for(;n=h[0];){const[e,t]=n;t.destroyed||e(),h.shift()}R("tick")}function f(e){return a[e.type]||l}function m(e){const{element:t,parentScope:n,initiator:i=null,scope:o=z({element:t,parent:n,initiator:i})}=e;return d(o,(function(){o.running||o.start(),A("signal",{...e,scope:o}),f(t).signal({...e,scope:o}),o.parent&&B(o.parent)})),o}function g(e){const{event:t,initiator:n,scope:i}=e,o=w(t),r=i.subscriptions;let s=S(r,(e=>O(o,e.event)));if("error"===o.type||"escalation"===o.type){const e=S(s,(e=>P(o,e.event)));(s.every((e=>e.event.boundary))&&e.some((e=>e.event.boundary))||e.some((e=>!e.event.boundary)))&&(s=e)}const a=s.filter((e=>!e.event.interrupting)),l=s.filter((e=>e.event.interrupting));if(!l.length)return a.map((e=>e.triggerFn(n))).flat();const c=l.find((e=>!e.event.boundary))||l[0],h=S(r,(e=>e.event.persistent||function(e,t){return e.type===t.type&&e.boundary&&!t.boundary}(e.event,c.event)));return r.forEach((e=>{h.includes(e)||e.remove()})),[c.triggerFn(n)].flat().filter((e=>e))}function v(e,t,n){const i=(t=w(t)).element,o={scope:e,event:t,element:i,triggerFn:n,remove(){y(o)}};return p.add(o),e.subscriptions.add(o),i&&T(i),o}function y(e){const{scope:t,event:n}=e;p.delete(e),t.subscriptions.delete(e),n.element&&T(n.element)}function b(e){return{element:e,interrupting:!1,boundary:!1,iref:e.id,type:"none"}}function w(e){if(!e.businessObject)return e;const t=Ae(e),i=ke(e),o=function(e){return de(e,"bpmn:StartEvent")||de(e,"bpmn:IntermediateCatchEvent")||de(e,"bpmn:ReceiveTask")||function(e){if(!ke(e))return!1;const t=Ne(e);return!t[0]||Te(t[0],["bpmn:ConditionalEventDefinition","bpmn:TimerEventDefinition"])}(e)?me(e).name||e.id:null}(e),r={element:e,interrupting:t,boundary:i,...o?{iref:o}:{}},s=Ne(e)[0];if(!s)return{...r,type:Le(e)?"message":"none"};if(de(s,"bpmn:LinkEventDefinition"))return{...r,type:"link",name:s.name};if(de(s,"bpmn:SignalEventDefinition"))return{...r,type:"signal",ref:s.signalRef};if(de(s,"bpmn:TimerEventDefinition"))return{...r,type:"timer"};if(de(s,"bpmn:ConditionalEventDefinition"))return{...r,type:"condition"};if(de(s,"bpmn:EscalationEventDefinition"))return{...r,type:"escalation",ref:s.escalationRef};if(de(s,"bpmn:CancelEventDefinition"))return{...r,type:"cancel"};if(de(s,"bpmn:ErrorEventDefinition"))return{...r,type:"error",ref:s.errorRef};if(de(s,"bpmn:MessageEventDefinition"))return{...r,type:"message",ref:s.messageRef};if(de(s,"bpmn:CompensateEventDefinition")){let t=s.activityRef&&n.get(s.activityRef.id);return t||(t=Oe(e)&&Me(e.parent)?e.parent.parent:ke(e)?e.host:e.parent),{...r,type:"compensate",ref:t,persistent:!0}}throw new Error("unknown event definition",s)}function x(e,t=!0){const{element:n,parent:o,initiator:r}=e;t&&A("createScope",{element:n,scope:o});const s=new k(i.next(),n,o,r);return o&&o.children.push(s),u.add(s),t&&R("createScope",{scope:s}),T(n),o&&T(o.element),s}function _(e){if("function"==typeof e)return e;const{event:t,element:n,scope:i}=e,o=e.elements||n&&[n],r=t&&w(t);return e=>(!r||O(r,e.event))&&(!o||o.includes(e.element))&&(!i||i===e.scope)}function E(e){if("function"==typeof e)return e;const{element:t,waitsOnElement:n,parent:i,trait:o=r.RUNNING,subscribedTo:s}=e,a=s?function(e){const t="function"===e?e:_(e);return e=>Array.from(e.subscriptions).some(t)}(s):()=>!0;return e=>(!t||e.element===t)&&(!i||e.parent===i)&&(!n||e.getTokensByElement(n)>0)&&e.hasTrait(o)&&a(e)}function M(e,t=null){if(!e.destroyed){e.destroy(t);for(const t of e.subscriptions){const n=t.event.traits||r.ACTIVE;e.hasTrait(n)||y(t)}if(e.destroyed){for(const n of e.children)n.destroyed||M(n,t);A("destroyScope",{element:e.element,scope:e}),u.delete(e),R("destroyScope",{scope:e})}T(e.element),e.parent&&T(e.parent.element)}}function A(e,t){R("trace",{...t,action:e})}function T(e){c.add(e),h.length||R("tick")}function B(e){R("scopeChanged",{scope:e})}function R(e,n={}){return t.fire(`tokenSimulation.simulator.${e}`,n)}function D(e,n){t.on("tokenSimulation.simulator."+e,n)}function L(e,n){t.off("tokenSimulation.simulator."+e,n)}function N(e,t){const n=I(e);s[e.id||e]={...n,...t},T(e)}function z(e){const{element:t}=e,n=x(e),{children:i=[],attachers:o=[]}=t;for(const e of i)if(Me(e)){const t=e.children.filter((e=>Oe(e)&&!xe(e)));for(const i of t)v(n,i,(t=>m({element:e,parentScope:n,startEvent:i,initiator:t})))}for(const e of o)ke(e)&&!xe(e)&&v(n,e,(t=>m({element:e,parentScope:n.parent,hostScope:n,initiator:t})));return n}function I(e){return s[e.id||e]||{}}D("tick",(function(){for(const e of c)R("elementChanged",{element:e});c.clear()})),this.createScope=x,this.destroyScope=M,this.findScope=function(e){return C(u,E(e))},this.findScopes=function(e){return S(u,E(e))},this.findSubscription=function(e){return C(p,_(e))},this.findSubscriptions=function(e){return S(p,_(e))},this.waitAtElement=function(e,t=!0){N(e,{wait:t})},this.waitForScopes=function(e,t){if(!t.length)return;const n={type:"all-completed",persistent:!1},i=new Set(t),o=t=>{i.delete(t.scope),0===i.size&&(L("destroyScope",o),g({scope:e,event:n}))};return D("destroyScope",o),n},this.setConfig=N,this.getConfig=I,this.signal=m,this.enter=function(e){const{element:t,scope:n,initiator:i=n}=e,o=z({element:t,parent:n,initiator:i});return d(o,(function(){o.running||o.start(),A("enter",e),f(t).enter({...e,initiator:i,scope:o}),o.parent&&B(o.parent)})),o},this.exit=function(e){const{element:t,scope:n,initiator:i=n}=e;d(n,(function(){A("exit",e),f(t).exit({...e,initiator:i}),n.running&&n.complete(),M(n,i),n.parent&&B(n.parent)}))},this.subscribe=v,this.trigger=g,this.reset=function(){for(const e of u)M(e);for(const e of function(){const e=[];return n.forEach((t=>{if(!Te(t,["bpmn:Process","bpmn:Participant"]))return;const n=x({element:t},!1);e.push(n);const i=t.children.filter(Oe),o=t.children.filter(Ce);for(const e of i)v(n,{...w(e),interrupting:!1},(n=>m({element:t,startEvent:e,initiator:n})));if(!i.length)for(const e of o)v(n,b(e),(e=>m({element:t,initiator:e})))})),e}())u.add(e);R("tick"),R("reset")},this.on=D,this.off=L,this.registerBehavior=function(e,t){a[e]=t}}function De(){this.signal=function(e){console.log("ignored #exit",e.element)},this.exit=function(e){console.log("ignored #exit",e.element)},this.enter=function(e){console.log("ignored #enter",e.element)}}function Le(e){return de(e,"bpmn:ReceiveTask")||e.incoming.some((e=>de(e,"bpmn:MessageFlow")))}function Ne(e){return e.businessObject.get("eventDefinitions")||[]}function ze(e,t){this._simulator=e,this._activityBehavior=t,e.registerBehavior("bpmn:StartEvent",this)}function Ie(e,t,n){this._intermediateThrowEventBehavior=n,this._scopeBehavior=t,e.registerBehavior("bpmn:EndEvent",this)}function Fe(e,t,n){this._simulator=e,this._activityBehavior=t,this._scopeBehavior=n,e.registerBehavior("bpmn:BoundaryEvent",this)}function $e(e,t){this._activityBehavior=t,this._simulator=e,e.registerBehavior("bpmn:IntermediateCatchEvent",this),e.registerBehavior("bpmn:ReceiveTask",this)}function je(e,t,n){this._simulator=e,this._activityBehavior=t,this._eventBehaviors=n,e.registerBehavior("bpmn:IntermediateThrowEvent",this),e.registerBehavior("bpmn:SendTask",this)}function qe(e,t){this._scopeBehavior=t,this._simulator=e,e.registerBehavior("bpmn:ExclusiveGateway",this)}function He(e,t){this._simulator=e,this._activityBehavior=t,e.registerBehavior("bpmn:ParallelGateway",this)}function Ve(e){this._simulator=e,e.registerBehavior("bpmn:EventBasedGateway",this)}function We(e,t){this._simulator=e,this._activityBehavior=t,e.registerBehavior("bpmn:InclusiveGateway",this)}function Ge(e,t,n){this._simulator=e,this._scopeBehavior=t,this._transactionBehavior=n;const i=["bpmn:BusinessRuleTask","bpmn:CallActivity","bpmn:ManualTask","bpmn:ScriptTask","bpmn:ServiceTask","bpmn:Task","bpmn:UserTask"];for(const t of i)e.registerBehavior(t,this)}function Qe(e,t,n,i,o){this._simulator=e,this._activityBehavior=t,this._scopeBehavior=n,this._transactionBehavior=i,this._elementRegistry=o,e.registerBehavior("bpmn:SubProcess",this),e.registerBehavior("bpmn:Transaction",this),e.registerBehavior("bpmn:AdHocSubProcess",this)}Re.$inject=["injector","eventBus","elementRegistry"],ze.prototype.signal=function(e){this._simulator.exit(e)},ze.prototype.exit=function(e){this._activityBehavior.exit(e)},ze.$inject=["simulator","activityBehavior"],Ie.$inject=["simulator","scopeBehavior","intermediateThrowEventBehavior"],Ie.prototype.enter=function(e){this._intermediateThrowEventBehavior.enter(e)},Ie.prototype.signal=function(e){this._intermediateThrowEventBehavior.signal(e)},Ie.prototype.exit=function(e){const{scope:t}=e;this._scopeBehavior.tryExit(t.parent,t)},Fe.prototype.signal=function(e){const{element:t,scope:n,hostScope:i=this._simulator.findScope({parent:n.parent,element:t.host})}=e;if(!i)throw new Error("host scope not found");if(me(t).cancelActivity){this._scopeBehavior.interrupt(i,n);const t=this._scopeBehavior.tryExit(i,n);if(t){const n=this._simulator.subscribe(i,t,(t=>(n.remove(),this._simulator.exit(e))));return}}this._simulator.exit(e)},Fe.prototype.exit=function(e){this._activityBehavior.exit(e)},Fe.$inject=["simulator","activityBehavior","scopeBehavior"],$e.$inject=["simulator","activityBehavior"],$e.prototype.signal=function(e){return this._simulator.exit(e)},$e.prototype.enter=function(e){const{element:t}=e;return this._activityBehavior.signalOnEvent(e,t)},$e.prototype.exit=function(e){this._activityBehavior.exit(e)},je.prototype.enter=function(e){const{element:t}=e,n=this._eventBehaviors.get(t);if(n){const t=n(e);if(t)return this._activityBehavior.signalOnEvent(e,t)}this._activityBehavior.enter(e)},je.prototype.signal=function(e){this._activityBehavior.signal(e)},je.prototype.exit=function(e){this._activityBehavior.exit(e)},je.$inject=["simulator","activityBehavior","eventBehaviors"],qe.prototype.enter=function(e){this._simulator.exit(e)},qe.prototype.exit=function(e){const{element:t,scope:n}=e,i=ve(t.outgoing);if(1===i.length)return this._simulator.enter({element:i[0],scope:n.parent});const{activeOutgoing:o}=this._simulator.getConfig(t),r=i.find((e=>e===o));return r?this._simulator.enter({element:r,scope:n.parent}):this._scopeBehavior.tryExit(n.parent,n)},qe.$inject=["simulator","scopeBehavior"],He.prototype.enter=function(e){const{scope:t}=e,n=this._findJoiningScopes(e);if(n.length){for(const e of n)e!==t&&this._simulator.destroyScope(e.complete(),t);this._simulator.exit(e)}},He.prototype._findJoiningScopes=function(e){const{scope:t,element:n}=e,i=ve(n.incoming),{parent:o}=t,r=this._simulator.findScopes({parent:o,element:n}),s=i.map((e=>r.find((t=>t.initiator.element===e)))).filter((e=>e));return s.length===i.length?s:[]},He.prototype.exit=function(e){this._activityBehavior.exit(e)},He.$inject=["simulator","activityBehavior"],Ve.$inject=["simulator"],Ve.prototype.enter=function(e){const{element:t,scope:n}=e,i=n.parent,o=function(e){return e.outgoing.map((e=>e.target)).filter((e=>Te(e,["bpmn:IntermediateCatchEvent","bpmn:ReceiveTask"])))}(t),r=o.map((e=>this._simulator.subscribe(i,e,(t=>(r.forEach((e=>e.remove())),this._simulator.destroyScope(n,t),this._simulator.signal({element:e,parentScope:i,initiator:t}))))))},We.prototype.enter=function(e){this._tryJoin(e)},We.prototype.exit=function(e){const{element:t,scope:n}=e;if(ve(t.outgoing).length>1){const{activeOutgoing:e=[]}=this._simulator.getConfig(t);if(!e.length)throw new Error("no outgoing configured");for(const t of e)this._simulator.enter({element:t,scope:n.parent})}else this._activityBehavior.exit(e)},We.prototype._tryJoin=function(e){const t=this._getRemainingScopes(e),n=t.map((e=>e.element));if(!this._canReachAnyElement(n,e.element))return this._join(e);const i=this._getElementScopes(e),{scope:o}=e;if(i[0]!==o)return;const r=this._simulator.waitForScopes(o,t),s=this._simulator.subscribe(o,r,(()=>{s.remove(),this._tryJoin(e)}))},We.prototype._getRemainingScopes=function(e){const{scope:t,element:n}=e,{parent:i}=t;return this._simulator.findScopes((e=>e.parent===i&&e.element!==n))},We.prototype._join=function(e){const t=this._getElementScopes(e);for(const n of t)n!==e.scope&&this._simulator.destroyScope(n.complete(),e.scope);this._simulator.exit(e)},We.prototype._getElementScopes=function(e){const{element:t,scope:n}=e;return this._simulator.findScopes({parent:n.parent,element:t})},We.prototype._canReachAnyElement=function(e,t,n=new Set){if(!e.length)return!1;if(n.has(t))return!1;if(n.add(t),e.some((e=>e===t)))return!0;if(be(t))return this._canReachAnyElement(e,t.source,n);const i=ve(t.incoming);for(const t of i)if(this._canReachAnyElement(e,t,n))return!0;return!1},We.$inject=["simulator","activityBehavior"],Ge.$inject=["simulator","scopeBehavior","transactionBehavior"],Ge.prototype.signal=function(e){const t=this._triggerMessages(e);if(t)return this.signalOnEvent(e,t);this._simulator.exit(e)},Ge.prototype.enter=function(e){const{element:t}=e,n=this.waitAtElement(t);if(n)return this.signalOnEvent(e,n);const i=this._triggerMessages(e);if(i)return this.signalOnEvent(e,i);this._simulator.exit(e)},Ge.prototype.exit=function(e){const{element:t,scope:n}=e,i=n.parent,o=!n.failed;o&&!Me(t)&&this._transactionBehavior.registerCompensation(n);const r=o?t.outgoing.filter(be):[];r.forEach((e=>this._simulator.enter({element:e,scope:i}))),0===r.length&&this._scopeBehavior.tryExit(i,n)},Ge.prototype.signalOnEvent=function(e,t){const{scope:n,element:i}=e,o=this._simulator.subscribe(n,t,(e=>(o.remove(),this._simulator.signal({scope:n,element:i,initiator:e}))))},Ge.prototype.waitAtElement=function(e){return this._simulator.getConfig(e).wait&&{element:e,type:"continue",interrupting:!1,boundary:!1}},Ge.prototype._getMessageContexts=function(e,t=null){const n=t?e=>e.referencePoint.x>t.x:()=>!0;return[...e.incoming.filter(ye).map((e=>{return{incoming:e,referencePoint:(t=e.waypoints,t&&t[t.length-1])};var t})),...e.outgoing.filter(ye).map((e=>{return{outgoing:e,referencePoint:(t=e.waypoints,t&&t[0])};var t}))].sort(((e,t)=>e.referencePoint.x-t.referencePoint.x)).filter(n)},Ge.prototype._triggerMessages=function(e){const{element:t,initiator:n,scope:i}=e;let o=i.messageContexts;o||(o=i.messageContexts=this._getMessageContexts(t));const r=n&&n.element;if(ye(r)&&i.expectedIncoming!==r)console.debug("Simulator :: ActivityBehavior :: ignoring out-of-bounds message");else for(;o.length;){const{incoming:e,outgoing:r}=o.shift();if(e){if(!n)continue;return i.expectedIncoming=e,{element:t,type:"message",name:e.id,interrupting:!1,boundary:!1}}this._simulator.signal({element:r})}},Qe.$inject=["simulator","activityBehavior","scopeBehavior","transactionBehavior","elementRegistry"],Qe.prototype.signal=function(e){this._start(e)},Qe.prototype.enter=function(e){const{element:t}=e,n=this._activityBehavior.waitAtElement(t);if(n)return this._activityBehavior.signalOnEvent(e,n);this._start(e)},Qe.prototype.exit=function(e){const{scope:t}=e,n=t.parent;n.failInitiator===t&&n.complete(),this._activityBehavior.exit(e)},Qe.prototype._start=function(e){const{element:t,startEvent:n,scope:i}=e,o=i.parent;if(Me(t)){if(!n)throw new Error("missing : required for event sub-process")}else if(n)throw new Error("unexpected : not allowed for sub-process");if(o.destroyed)throw new Error(`target scope <${o.id}> destroyed`);(function(e){return de(e,"bpmn:Transaction")})(t)&&this._transactionBehavior.setup(e),n&&Ae(n)&&this._scopeBehavior.interrupt(o,i);const r=this._findStarts(t,n);for(const e of r)Oe(e)?this._simulator.signal({element:e,parentScope:i,initiator:i}):this._simulator.enter({element:e,scope:i,initiator:i})},Qe.prototype._findStarts=function(e,t){e=this._elementRegistry.get(e.id+"_plane")||e;const n=t?e=>t===e:e=>Se(e);return e.children.filter((e=>n(e)||Ce(e)))};const Xe={type:"cancel",interrupting:!0,boundary:!1,persistent:!0};function Ue(e,t){this._simulator=e,this._scopeBehavior=t}function Ye(e,t){this._simulator=e,this._scopeBehavior=t,e.registerBehavior("bpmn:SequenceFlow",this)}function Ke(e){this._simulator=e,e.registerBehavior("bpmn:MessageFlow",this)}function Ze(e,t){return"label"!==e.type&&(Array.isArray(t)||(t=[t]),t.some((function(t){return de(e,t)})))}function Je(e,t,n){this._simulator=e,this._elementRegistry=t,this._scopeBehavior=n}function et(e){return"bpmn:LinkEventDefinition",j(me(e).eventDefinitions,(e=>Ze(e,"bpmn:LinkEventDefinition")))}function tt(e){for(;Me(e.parent.element);)e=e.parent;return e.parent}Ue.$inject=["simulator","scopeBehavior"],Ue.prototype.setup=function(e){const{scope:t}=e,n=this._simulator.subscribe(t,Xe,(e=>(n.remove(),this.cancel({scope:t,initiator:e})))),i={type:"compensate",ref:t.element,persistent:!0,traits:r.NOT_DEAD},o=this._simulator.subscribe(t,i,(e=>t.canceled?(o.remove(),this.compensate({scope:t,element:t.element,initiator:e})):this._simulator.trigger({event:Xe,scope:t})))},Ue.prototype.cancel=function(e){const{scope:t,initiator:n}=e;if(!t.destroyed)return t.cancel(n),this._simulator.trigger({event:{type:"compensate",ref:t.element},initiator:n,scope:t}),this._simulator.trigger({scope:t,initiator:n,event:Xe})},Ue.prototype.registerCompensation=function(e){const{element:t}=e,n=t.children.filter(Me).map((e=>e.children.find((e=>Oe(e)&&xe(e))))).filter((e=>e)),i=t.attachers.filter(xe);if(!n.length&&!i.length)return;const o=this.findTransactionScope(e.parent);de(o.element,"bpmn:Transaction")||this.makeCompensable(o);for(const i of n){const n={element:i,type:"compensate",persistent:!0,interrupting:!0,ref:t,traits:r.NOT_DEAD},o=i.parent,s=this._simulator.subscribe(e,n,(t=>(s.remove(),this._simulator.signal({initiator:t,element:o,startEvent:i,parentScope:e}))))}for(const e of i){const n={element:e,type:"compensate",persistent:!0,ref:t,traits:r.NOT_DEAD},i=e.outgoing.map((e=>e.target)).find(_e);if(!i)continue;const s=this._simulator.subscribe(o,n,(e=>(s.remove(),this._simulator.enter({initiator:e,element:i,scope:o}))))}},Ue.prototype.makeCompensable=function(e){if(e.hasTrait(r.COMPENSABLE)||!e.parent)return;const t={type:"compensate",ref:e.element,interrupting:!0,persistent:!0,traits:r.NOT_DEAD};e.compensable();const n=this._simulator.subscribe(e,t,(t=>(n.remove(),e.fail(t),this.compensate({scope:e,element:e.element,initiator:t}),this._scopeBehavior.tryExit(e,t),e))),i=e.parent;if(!i)return;const o=this._simulator.subscribe(i,t,(n=>(o.remove(),this._simulator.trigger({scope:e,event:t,initiator:n}))));this.makeCompensable(i)},Ue.prototype.findTransactionScope=function(e){let t=e;for(;t;){const e=t.element;if(de(e,"bpmn:SubProcess")&&!Me(e))return t;if(Te(e,["bpmn:Transaction","bpmn:Process","bpmn:Participant"]))return t;t=t.parent}throw function(e){throw new Error(`no transaction context for <${e.id}>`)}(e)},Ue.prototype.compensate=function(e){const{scope:t,element:n}=e,i=S(t.subscriptions,(e=>O({type:"compensate"},e.event))),o=i.filter((e=>e.event.ref===n)),r=i.filter((e=>e.event.ref!==n));for(const e of o)this._scopeBehavior.preExit(t,(t=>this._simulator.trigger(e)));for(const e of r.reverse())this._scopeBehavior.preExit(t,(t=>this._simulator.trigger(e)))},Ye.prototype.enter=function(e){this._simulator.exit(e)},Ye.prototype.exit=function(e){const{element:t,scope:n}=e;this._simulator.enter({initiator:n,element:t.target,scope:n.parent})},Ye.$inject=["simulator","scopeBehavior"],Ke.$inject=["simulator"],Ke.prototype.signal=function(e){this._simulator.exit(e)},Ke.prototype.exit=function(e){const{element:t,scope:n}=e,i=t.target,o=Ee(i)?i:{type:"message",element:t,name:t.id},r=this._simulator.findSubscription({event:o,elements:[i,i.parent]});r&&this._simulator.trigger({event:o,initiator:n,scope:r.scope})},Je.$inject=["simulator","elementRegistry","scopeBehavior"],Je.prototype.get=function(e){const t={"bpmn:LinkEventDefinition":e=>{const{element:t,scope:n}=e,i=et(t),o=n.parent,r=o.element.children.filter((e=>we(e)&&et(e).name===i.name));for(const e of r)this._simulator.signal({element:e,parentScope:o,initiator:n})},"bpmn:SignalEventDefinition":e=>{const{element:t,scope:n}=e,i=this._simulator.findSubscriptions({event:t}),o=new Set;for(const e of i){const i=e.scope;o.has(i)||(o.add(i),this._simulator.trigger({event:t,scope:i,initiator:n}))}},"bpmn:EscalationEventDefinition":e=>{const{element:t,scope:n}=e,i=this._simulator.findScopes({subscribedTo:{event:t},trait:r.ACTIVE});let o=n;for(;o=o.parent;)if(i.includes(o)){this._simulator.trigger({event:t,scope:o,initiator:n});break}},"bpmn:ErrorEventDefinition":e=>{const{element:t,scope:n}=e,i=this._simulator.findScopes({subscribedTo:{event:t},trait:r.ACTIVE});let o=n;for(;o=o.parent;)if(i.includes(o)){this._simulator.trigger({event:t,scope:o,initiator:n});break}},"bpmn:TerminateEventDefinition":e=>{const{scope:t}=e;this._scopeBehavior.terminate(t.parent,t)},"bpmn:CancelEventDefinition":e=>{const{scope:t,element:n}=e;this._simulator.trigger({event:n,initiator:t,scope:tt(t)})},"bpmn:CompensateEventDefinition":e=>{const{scope:t,element:n}=e;return this._simulator.waitForScopes(t,this._simulator.trigger({event:n,scope:tt(t)}))}},n=Object.entries(t).find((t=>{return n=e,i=t[0],X(me(n).eventDefinitions,(e=>Ze(e,i)));var n,i}));return n&&n[1]};const nt={type:"pre-exit",persistent:!0,interrupting:!0,boundary:!1},it={type:"exit",interrupting:!0,boundary:!1,persistent:!0};function ot(e){this._simulator=e}function rt(e){return"function"==typeof e?e:t=>t===e}function st(e,t){this._simulator=e,this._scopeBehavior=t,e.registerBehavior("bpmn:Process",this),e.registerBehavior("bpmn:Participant",this)}ot.$inject=["simulator"],ot.prototype.isFinished=function(e,t=null){return t=rt(t),e.children.every((e=>e.destroyed||e.completed||t(e)))},ot.prototype.destroyChildren=function(e,t,n=null){n=rt(n),e.children.filter((e=>!e.destroyed&&!n(e))).map((e=>{this._simulator.destroyScope(e,t)}))},ot.prototype.terminate=function(e,t){this.destroyChildren(e,t),e.terminate(t),this.tryExit(e,t)},ot.prototype.interrupt=function(e,t){this.destroyChildren(e,t,t),e.fail(t)},ot.prototype.tryExit=function(e,t){if(!e)throw new Error("missing ");if(t||(t=e),!this.isFinished(e,t))return it;const n=this._simulator.findSubscriptions({event:nt,scope:e});for(const e of n){const{event:n,scope:i}=e;if(this._simulator.trigger({event:n,scope:i,initiator:t}).length)return it}this._simulator.trigger({event:it,scope:e,initiator:t}),this.exit({scope:e,initiator:t})},ot.prototype.exit=function(e){const{scope:t,initiator:n}=e;if(!n)throw new Error("missing ");this._simulator.exit({element:t.element,scope:t,initiator:n})},ot.prototype.preExit=function(e,t){const n=this._simulator.subscribe(e,nt,(e=>(n.remove(),t(e))));return n},st.prototype.signal=function(e){const{element:t,startEvent:n,startNodes:i=this._findStarts(t,n),scope:o}=e;if(!i.length)throw new Error("missing or ");for(const e of i)Oe(e)?this._simulator.signal({element:e,parentScope:o}):this._simulator.enter({element:e,scope:o})},st.prototype.exit=function(e){const{scope:t,initiator:n}=e;this._scopeBehavior.destroyChildren(t,n)},st.prototype._findStarts=function(e,t){const n=t?e=>t===e:e=>Se(e);return e.children.filter((e=>n(e)||Ce(e)))},st.$inject=["simulator","scopeBehavior"];const at={__depends__:[{__init__:["startEventBehavior","endEventBehavior","boundaryEventBehavior","intermediateCatchEventBehavior","intermediateThrowEventBehavior","exclusiveGatewayBehavior","parallelGatewayBehavior","eventBasedGatewayBehavior","inclusiveGatewayBehavior","subProcessBehavior","sequenceFlowBehavior","messageFlowBehavior","processBehavior"],startEventBehavior:["type",ze],endEventBehavior:["type",Ie],boundaryEventBehavior:["type",Fe],intermediateCatchEventBehavior:["type",$e],intermediateThrowEventBehavior:["type",je],exclusiveGatewayBehavior:["type",qe],parallelGatewayBehavior:["type",He],eventBasedGatewayBehavior:["type",Ve],inclusiveGatewayBehavior:["type",We],activityBehavior:["type",Ge],subProcessBehavior:["type",Qe],sequenceFlowBehavior:["type",Ye],messageFlowBehavior:["type",Ke],eventBehaviors:["type",Je],scopeBehavior:["type",ot],processBehavior:["type",st],transactionBehavior:["type",Ue]}],__init__:[["eventBus","simulator",function(e,t){e.on(["tokenSimulation.toggleMode","tokenSimulation.resetSimulation"],5e3,(e=>{t.reset()}))}]],simulator:["type",Re]};function lt(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}function ct(e,t){e.invoke(Ke,this),this._animation=t}function ht(e,t){e.invoke(Ye,this),this._animation=t}lt(ct,Ke),ct.$inject=["injector","animation"],ct.prototype.signal=function(e){const{element:t,scope:n}=e;this._animation.animate(t,n,(()=>{Ke.prototype.signal.call(this,e)}))},lt(ht,Ye),ht.$inject=["injector","animation"],ht.prototype.enter=function(e){const{element:t,scope:n}=e;this._animation.animate(t,n,(()=>{Ye.prototype.enter.call(this,e)}))};const ut={sequenceFlowBehavior:["type",ht],messageFlowBehavior:["type",ct]},pt="tokenSimulation.toggleMode",dt="tokenSimulation.playSimulation",ft="tokenSimulation.pauseSimulation",mt="tokenSimulation.resetSimulation",gt="tokenSimulation.animationSpeedChanged",vt="tokenSimulation.simulator.elementChanged",yt="tokenSimulation.simulator.destroyScope",bt="tokenSimulation.simulator.createScope",wt="tokenSimulation.scopeFilterChanged",xt="tokenSimulation.simulator.trace",_t=e=>!0;function Et(e,t){this._eventBus=e,this._simulator=t,this._filter=_t,e.on([pt,mt],(()=>{this._filter=_t})),e.on(yt,(e=>{const{scope:t}=e;this._scope===t&&t.parent&&this.toggle(t.parent)})),e.on(bt,(e=>{const{scope:t}=e;t.parent||!this._scope||kt(this._scope,t)||this.toggle(null)}))}function kt(e,t){do{if(e===t)return!0}while(t=t.parent);return!1}Et.prototype.toggle=function(e){const t=this._scope!==e;this._scope=t?e:null,this._filter=this._scope?e=>kt(this._scope,e):e=>!0,this._eventBus.fire(wt,{filter:this._filter,scope:this._scope})},Et.prototype.isShown=function(e){return"string"==typeof e&&(e=this._simulator.findScope((t=>t.id===e))),e&&this._filter(e)},Et.prototype.findScope=function(e){return this._simulator.findScopes(e).filter((e=>this.isShown(e)))[0]},Et.$inject=["eventBus","simulator"];const St={scopeFilter:["type",Et]};function Ct(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 Ot=Object.prototype.toString,Pt=Object.prototype.hasOwnProperty;function Mt(e,t){return Pt.call(e,t)}function At(e,t){let n,i;if(void 0===e)return;const o=(r=e,"[object Array]"===Ot.call(r)?Bt:Tt);var r;for(let r in e)if(Mt(e,r)&&(n=e[r],i=t(n,o(r)),!1===i))return n}function Tt(e){return e}function Bt(e){return Number(e)}function Rt(e,...t){const n=e.style;return At(t,(function(e){e&&At(e,(function(e,t){n[t]=e}))})),e}function Dt(e,t,n){return 2==arguments.length?e.getAttribute(t):null===n?e.removeAttribute(t):(e.setAttribute(t,n),e)}const Lt=Object.prototype.toString;function Nt(e){return new zt(e)}function zt(e){if(!e||!e.nodeType)throw new Error("A DOM element reference is required");this.el=e,this.list=e.classList}function It(e){for(var t;t=e.firstChild;)e.removeChild(t);return e}function Ft(e,t,n){var i=n?e:e.parentNode;return i&&"function"==typeof i.closest&&i.closest(t)||null}zt.prototype.add=function(e){return this.list.add(e),this},zt.prototype.remove=function(e){return"[object RegExp]"==Lt.call(e)?this.removeMatching(e):(this.list.remove(e),this)},zt.prototype.removeMatching=function(e){const t=this.array();for(let n=0;n
a',Ut=!Wt.getElementsByTagName("link").length,Wt=void 0);var Yt={legend:[1,"
","
"],tr:[2,"","
"],col:[2,"","
"],_default:Ut?[1,"X
","
"]:[0,"",""]};Yt.td=Yt.th=[3,"","
"],Yt.option=Yt.optgroup=[1,'"],Yt.thead=Yt.tbody=Yt.colgroup=Yt.caption=Yt.tfoot=[1,"","
"],Yt.polyline=Yt.ellipse=Yt.polygon=Yt.circle=Yt.text=Yt.line=Yt.path=Yt.rect=Yt.g=[1,'',""];var Kt=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(l=t.createElement("html")).innerHTML=e,l.removeChild(l.lastChild);var o=Object.prototype.hasOwnProperty.call(Yt,i)?Yt[i]:Yt._default,r=o[0],s=o[1],a=o[2],l=t.createElement("div");for(l.innerHTML=s+e+a;r--;)l=l.lastChild;if(l.firstChild==l.lastChild)return l.removeChild(l.firstChild);for(var c=t.createDocumentFragment();l.firstChild;)c.appendChild(l.removeChild(l.firstChild));return c};function Zt(e,t){return e&&"function"==typeof e.matches&&e.matches(t)||!1}function Jt(e,t){return(t=t||document).querySelector(e)}function en(e,t){return(t=t||document).querySelectorAll(e)}function tn(e){e.parentNode&&e.parentNode.removeChild(e)}function nn(e,t){return t.appendChild(function(e,t){if(e.ownerDocument!==t.ownerDocument)try{return t.ownerDocument.importNode(e,!0)}catch(e){}return e}(e,t))}function on(e,t){return nn(t,e),e}var rn=2,sn={"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":rn,"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":rn,"text-anchor":1,"text-decoration":1,"text-rendering":1,"unicode-bidi":1,visibility:1,"word-spacing":1,"writing-mode":1};function an(e,t,n){var i=t.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase(),o=sn[i];o?(o===rn&&"number"==typeof n&&(n=String(n)+"px"),e.style[i]=n):e.setAttributeNS(null,t,n)}function ln(e,t,n){if("string"==typeof t){if(void 0===n)return function(e,t){return sn[t]?e.style[t]:e.getAttributeNS(null,t)}(e,t);an(e,t,n)}else!function(e,t){var n,i,o=Object.keys(t);for(n=0;i=o[n];n++)an(e,i,t[i])}(e,t);return e}const cn=Object.prototype.toString;function hn(e){return new un(e)}function un(e){if(!e||!e.nodeType)throw new Error("A DOM element reference is required");this.el=e,this.list=e.classList}function pn(e){for(var t;t=e.firstChild;)e.removeChild(t);return e}function dn(e){return e.cloneNode(!0)}un.prototype.add=function(e){return this.list.add(e),this},un.prototype.remove=function(e){return"[object RegExp]"==cn.call(e)?this.removeMatching(e):(this.list.remove(e),this)},un.prototype.removeMatching=function(e){const t=this.array();for(let n=0;n"+e+"",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(),o=n.firstChild;o.firstChild;)i.appendChild(o.firstChild);return i}function vn(e,t){var n;return"<"===(e=e.trim()).charAt(0)?(n=gn(e).firstChild,n=document.importNode(n,!0)):n=document.createElementNS(fn.svg,e),t&&ln(n,t),n}var yn=null;function bn(){return null===yn&&(yn=vn("svg")),yn}function wn(e,t){var n,i,o=Object.keys(t);for(n=0;i=o[n];n++)e[i]=t[i];return e}function xn(e){return e?bn().createSVGTransformFromMatrix(e):bn().createSVGTransform()}var _n=/([&<>]{1})/g,En=/([\n\r"]{1})/g,kn={"&":"&","<":"<",">":">",'"':"'"};function Sn(e,t){return e.replace(t,(function(e,t){return kn[t]||t}))}function Cn(e,t){var n,i,o,r,s;switch(e.nodeType){case 3:t.push(Sn(e.textContent,_n));break;case 1:if(t.push("<",e.tagName),e.hasAttributes())for(n=0,i=(o=e.attributes).length;n"),n=0,i=(s=e.childNodes).length;n")}else t.push("/>");break;case 8:t.push("\x3c!--",Sn(e.nodeValue,_n),"--\x3e");break;case 4:t.push("");break;default:throw new Error("unable to handle node "+e.nodeType)}return t}function On(e,t){if(void 0!==t){try{!function(e,t){var n=gn(t);if(pn(e),t){(function(e){return"#document-fragment"===e.nodeName})(n)||(n=n.documentElement);for(var i,o=(i=n.childNodes,Array.prototype.slice.call(i)),r=0;r{this.clearAnimations()})),n.on(ft,(()=>{this.pause()})),n.on(dt,(()=>{this.play()})),n.on(wt,(e=>{this.each((e=>{this._scopeFilter.isShown(e.scope)?e.show():e.hide()}))})),n.on(yt,(e=>{const{scope:t}=e;this.clearAnimations(t)}))}function jn(e,t,n,i){this.gfx=e,this.waypoints=t,this.done=i,this.randomize=n,this._paused=!0,this._t=0,this._parts=[],this.create()}$n.prototype.animate=function(e,t,n){this.createAnimation(e,t,n)},$n.prototype.pause=function(){this.each((e=>e.pause()))},$n.prototype.play=function(){this.each((e=>e.play()))},$n.prototype.each=function(e){this._animations.forEach(e)},$n.prototype.createAnimation=function(e,t,n=Dn){const i=this._getGroup(t);if(!i)return;const o=new jn(this._createTokenGfx(i,t),e.waypoints,this._randomize,(()=>{this._animations.delete(o),n()}));return o.setSpeed(this.getAnimationSpeed()),this._scopeFilter.isShown(t)||o.hide(),o.scope=t,o.element=e,this._animations.add(o),this._eventBus.fire("tokenSimulation.animationCreated",{animation:o}),o.play(),o},$n.prototype.setAnimationSpeed=function(e){this._speed=e,this.each((t=>t.setSpeed(e))),this._eventBus.fire(gt,{speed:e})},$n.prototype.getAnimationSpeed=function(){return this._speed},$n.prototype.clearAnimations=function(e){this.each((t=>{e&&t.scope!==e||t.remove()}))},$n.prototype._createTokenGfx=function(e,t){return nn(vn(this._getTokenSVG(t).trim()),e)},$n.prototype._getTokenSVG=function(e){const t=e.colors||{primary:Bn,auxiliary:Rn};return`\n \n \n 1\n \n `},$n.prototype._getGroup=function(e){var t,n,i=this._canvas;"findRoot"in i?(n=i.findRoot(e.element),t=i._findPlaneForRoot(n).layer):t=Jt(".viewport",i._svg);var o=Jt(".bts-animation-tokens",t);return o||nn(o=vn(''),t),o},$n.$inject=["config.animation","canvas","eventBus","scopeFilter"],jn.prototype.pause=function(){this._paused=!0},jn.prototype.play=function(){this._paused&&(this._paused=!1,this.tick(0)),this.schedule()},jn.prototype.schedule=function(){if(this._paused)return;if(this._scheduled)return;const e=Date.now();this._scheduled=!0,requestAnimationFrame((()=>{this._scheduled=!1,this._paused||(this.tick((Date.now()-e)*this._speed),this.schedule())}))},jn.prototype.tick=function(e){const t=this._t=this._t+e,n=this._parts.find((e=>e.startTime<=t&&e.endTime>t));if(!n)return this.remove();const i=t-n.startTime,o=n.length*n.easing(i/n.duration),r=n.startLength+o,s=this._path.getPointAtLength(r);this.move(s.x,s.y)},jn.prototype.move=function(e,t){ln(this.gfx,"transform",`translate(${e}, ${t})`)},jn.prototype.create=function(){const e=this.waypoints,t=e.reduce(((t,n,i)=>{const o=e[i-1];if(o){const r=t[t.length-1],s=r&&r.endLength||0,a=function(e,t){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}(o,n);t.push({startLength:s,endLength:s+a,length:a,easing:Ln(i,e)})}return t}),[]),n=t.reduce((function(e,t){return e+t.length}),0),i=e.reduce(((e,t,n)=>{const i=t.x-10,o=t.y-10;return e.push([n>0?"L":"M",i,o]),e}),[]).flat().join(" "),o=function(e,t=!1){return Math.log(e)*(t?250+Math.floor(50*Math.random()):250)}(n,this._randomize);this._parts=t.reduce(((e,t,i)=>{const r=o/n*t.length,s=i>0?e[i-1].endTime:0,a=s+r;return[...e,{...t,startTime:s,endTime:a,duration:r}]}),[]),this._path=vn(``),this._t=0},jn.prototype.show=function(){ln(this.gfx,"display","")},jn.prototype.hide=function(){ln(this.gfx,"display","none")},jn.prototype.remove=function(){this.pause(),Pn(this.gfx),this.done()},jn.prototype.setSpeed=function(e){this._speed=e};const qn={__depends__:[at,ut,St],animation:["type",$n]};var Hn=n(555),Vn=n.n(Hn);function Wn(e){const t=Vn()({count:60}).filter((e=>n(e.substring(1))<200));function n(e){return(299*parseInt(e.substr(0,2),16)+587*parseInt(e.substr(2,2),16)+114*parseInt(e.substr(4,2),16))/1e3}let i=0;e.on(bt,1500,(e=>{const{scope:o}=e;o.colors=function(e){const{element:o}=e;if(o&&"bpmn:MessageFlow"===o.type)return{primary:"#999",auxiliary:"#FFF"};if(e.parent)return e.parent.colors;const r=t[i++%t.length];return{primary:r,auxiliary:n(r)>=128?"#111":"#fff"}}(o)}))}Wn.$inject=["eventBus"];const Gn={__init__:["coloredScopes"],coloredScopes:["type",Wn]};function Qn(e){return function(t=""){return`${e}`}}const Xn=Qn('\x3c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\x3e'),Un=Qn('\x3c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\x3e'),Yn=Qn('\x3c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\x3e'),Kn=Qn('\n \n \n\n'),Zn=Qn('\x3c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\x3e'),Jn=Qn('\x3c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\x3e'),ei=Qn('\x3c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\x3e'),ti=Qn('\x3c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\x3e'),ni=Qn('\x3c!-- Adapted from Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\x3e'),ii=Qn('\x3c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\x3e'),oi=Qn('\x3c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\x3e'),ri=Qn('\x3c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\x3e'),si=Qn('\x3c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\x3e'),ai=Qn('\x3c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\x3e'),li=Qn('\x3c!-- Font Awesome Free 5.15.4 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --\x3e');function ci(e){this._exclusiveGatewaySettings=e}function hi(e){this._inclusiveGatewaySettings=e}function ui(e){this._simulator=e}function pi(e){this._simulator=e}function di(e,t,n,i,o,r){this._elementRegistry=t,this._overlays=n,this._injector=i,this._canvas=o,this._scopeFilter=r,this._overlayCache=new Map,this._handlerIdx=0,this._handlers=[],this.registerHandler("bpmn:ExclusiveGateway",ci),this.registerHandler("bpmn:InclusiveGateway",hi),this.registerHandler("bpmn:Activity",ui),this.registerHandler("bpmn:Event",pi),this.registerHandler("bpmn:Gateway",pi),this.registerHandler("bpmn:Activity",pi),e.on(pt,500,(e=>{e.active?this.openContextPads():this.closeContextPads()})),e.on(mt,500,(()=>{this.closeContextPads(),this.openContextPads()})),e.on(wt,(e=>{const t=en(".djs-overlay-ts-context-menu [data-scope-ids]",n._overlayRoot);for(const e of t){const t=e.dataset.scopeIds.split(",").some((e=>r.isShown(e)));Nt(e).toggle("hidden",!t)}const i=en(".djs-overlay-ts-context-menu [data-hide-scope-ids]",n._overlayRoot);for(const e of i){const t=e.dataset.hideScopeIds.split(",").some((e=>r.isShown(e)));Nt(e).toggle("hidden",t)}})),e.on(vt,500,(e=>{const{element:t}=e;this.updateElementContextPads(t)}))}ci.prototype.createContextPads=function(e){if(e.outgoing.filter((function(e){return Ze(e,"bpmn:SequenceFlow")})).length<2)return;const t=`\n
\n ${Zn()}\n
\n `;return[{action:()=>{this._exclusiveGatewaySettings.setSequenceFlow(e)},element:e,html:t}]},ci.$inject=["exclusiveGatewaySettings"],hi.prototype.createContextPads=function(e){const t=e.outgoing.filter(be);if(t.length<2)return;const n=t.filter((t=>{const n=me(t);return me(e).default!==n})),i=`\n
\n ${Zn()}\n
\n `;return n.map((t=>({action:()=>{this._inclusiveGatewaySettings.toggleSequenceFlow(e,t)},element:t,html:i})))},hi.$inject=["inclusiveGatewaySettings"],ui.prototype.createContextPads=function(e){return Ze(e,"bpmn:ReceiveTask")||Ze(e,"bpmn:SubProcess")&&me(e).triggeredByEvent?[]:[this.createPauseContextPad(e)]},ui.prototype.createPauseContextPad=function(e){const t=this._isPaused(e),n=`\n
\n ${(t?Kn:ti)("show-hover")}\n ${ti("hide-hover")}\n
\n `;return{action:()=>{this._togglePaused(e)},element:e,hideContexts:()=>this._findSubscriptions({element:e}),html:n}},ui.prototype._isPaused=function(e){const{wait:t}=this._simulator.getConfig(e);return t},ui.prototype._togglePaused=function(e){const t=!this._isPaused(e);this._simulator.waitAtElement(e,t)},ui.prototype._findSubscriptions=function(e){return this._simulator.findSubscriptions(e)},ui.$inject=["simulator"],pi.$inject=["simulator"],pi.prototype.createContextPads=function(e){return[this.createTriggerContextPad(e)]},pi.prototype.createTriggerContextPad=function(e){const t=`\n
\n ${ni()}\n
\n `;return{action:e=>{const{event:t,scope:n}=e[0];return this._simulator.trigger({event:t,scope:n})},element:e,html:t,contexts:()=>{const t=this._findSubscriptions({element:e}).slice().sort(((e,t)=>"none"===e.event.type?1:-1));return t}}},pi.prototype._findSubscriptions=function(e){return this._simulator.findSubscriptions(e)},di.prototype.registerHandler=function(e,t){const n=this._injector.instantiate(t);n.hash=String(this._handlerIdx++),this._handlers.push({handler:n,type:e})},di.prototype.getHandlers=function(e){return this._handlers.filter((({type:t})=>Ze(e,t))).map((({handler:e})=>e))},di.prototype.openContextPads=function(e){e||(e=this._canvas.getRootElement()),this._elementRegistry.forEach((t=>{(function(e,t){do{if(e===t)return!0;t=t.parent}while(t);return!1})(e,t)&&this.updateElementContextPads(t)}))},di.prototype._getOverlays=function(e){return this._overlayCache.get(e)||[]},di.prototype._addOverlay=function(e,t){const{handlerHash:n}=t;if(!n)throw new Error(" required");const i=this._overlays.add(e,"bts-context-menu",{...t,position:{top:-15,left:-15},show:{minZoom:.5}}),o=this._overlays.get(i),r=this._overlayCache;r.has(n)||r.set(n,[]),r.get(n).push(o)},di.prototype._removeOverlay=function(e){const{id:t,handlerHash:n}=e;this._overlays.remove(t);const i=this._overlayCache.get(n)||[],o=i.indexOf(e);-1!==o&&i.splice(o,1)},di.prototype.updateElementContextPads=function(e){for(const t of this.getHandlers(e))this._updateElementContextPads(e,t)},di.prototype._updateElementContextPads=function(e,t){const n=(t.createContextPads(e)||[]).filter((e=>e)),i=`${e.id}------${t.hash}`,o=this._getOverlays(i),r=[];for(const e of n){const{element:t,contexts:n,hideContexts:s,action:a,html:l}=e,c=`${e.element.id}-------${l}`;let h=o.find((e=>e.hash===c));const u=h&&h.html||Kt(l);if(n){const e=n();u.dataset.scopeIds=e.map((e=>e.scope.id)).join(",");const t=e.filter((e=>this._scopeFilter.isShown(e.scope)));Nt(u).toggle("hidden",0===t.length)}if(s){const e=s();u.dataset.hideScopeIds=e.map((e=>e.scope.id)).join(",");const t=e.filter((e=>this._scopeFilter.isShown(e.scope)));Nt(u).toggle("hidden",t.length>0)}h?r.push(h):(a&&Gt.bind(u,"click",(e=>{e.preventDefault();const t=n?n().filter((e=>this._scopeFilter.isShown(e.scope))):null;a(t)})),this._addOverlay(t,{hash:c,handlerHash:i,html:u}))}for(const e of o)r.includes(e)||this._removeOverlay(e)},di.prototype.closeContextPads=function(){for(const e of this._overlayCache.values())for(const t of e)this._closeOverlay(t);this._overlayCache.clear()},di.prototype._closeOverlay=function(e){this._overlays.remove(e.id)},di.$inject=["eventBus","elementRegistry","overlays","injector","canvas","scopeFilter"];const fi={__depends__:[St],__init__:["contextPads"],contextPads:["type",di]};function mi(e,t,n){e.on(yt,(e=>{const{scope:t}=e,{destroyInitiator:i,element:o}=t;t.completed&&i&&["bpmn:Process","bpmn:Participant"].includes(o.type)&&n.addElementNotification(i.element,{type:"success",icon:Yn(),text:"Finished",scope:t})}))}function gi(e,t){this._overlays=e,t.on([mt,bt,pt],(()=>{this.clear()}))}mi.$inject=["eventBus","simulator","elementNotifications"],gi.prototype.addElementNotification=function(e,t){const{type:n,icon:i,text:o,scope:r={}}=t,s=r.colors,a=s?`style="color: ${s.auxiliary}; background: ${s.primary}"`:"",l=Kt(`\n
\n ${i||""}\n ${o}\n
\n `);this._overlays.add(e,"bts-element-notification",{position:{top:-15,right:15},html:l,show:{minZoom:.5}})},gi.prototype.clear=function(){this._overlays.remove({type:"bts-element-notification"})},gi.prototype.removeElementNotification=function(e){this._overlays.remove({element:e})},gi.$inject=["overlays","eventBus"];const vi={elementNotifications:["type",gi]},yi=2e3,bi=ei();function wi(e,t,n){this._eventBus=e,this._canvas=t,this._scopeFilter=n,this._init(),e.on([pt,mt],(e=>{this.clear()}))}wi.prototype._init=function(){this.container=Kt('
'),this._canvas.getContainer().appendChild(this.container)},wi.prototype.showNotification=function(e){const{text:t,type:n="info",icon:i=bi,scope:o,ttl:r=yi}=e;if(o&&!this._scopeFilter.isShown(o))return;const s=i.startsWith("<")?i:``,a=o&&o.colors,l=a?`style="color: ${a.auxiliary}; background: ${a.primary}"`:"",c=Kt(`\n
\n ${s}\n ${t}\n ${o?`${o.id}`:""}\n
\n `);for(this.container.appendChild(c);this.container.children.length>5;)this.container.children[0].remove();setTimeout((function(){c.remove()}),r)},wi.prototype.clear=function(){for(;this.container.children.length;)this.container.children[0].remove()},wi.$inject=["eventBus","canvas","scopeFilter"];const xi={__depends__:[St],notifications:["type",wi]},_i={__depends__:[vi,xi],__init__:["simulationState"],simulationState:["type",mi]},Ei="show-scopes";function ki(e,t,n,i,o){this._eventBus=e,this._canvas=t,this._scopeFilter=n,this._elementColors=i,this._simulationStyles=o,this._highlight=null,this._init(),e.on(pt,(e=>{e.active?Nt(this._container).remove("hidden"):(Nt(this._container).add("hidden"),It(this._container),this.unhighlightScope())})),e.on(wt,(e=>{const t=this.getScopeElements();for(const e of t){const t=e.dataset.scopeId;Nt(e).toggle("inactive",!this._scopeFilter.isShown(t))}})),e.on(bt,(e=>{this.addScope(e.scope)})),e.on(yt,(e=>{this.removeScope(e.scope)})),e.on("tokenSimulation.simulator.scopeChanged",(e=>{this.updateScope(e.scope)})),e.on(mt,(()=>{this.removeAllInstances()}))}function Si(){this._cache={}}function Ci(){return{getPropertyValue:()=>""}}ki.prototype._init=function(){this._container=Kt(''),this._canvas.getContainer().appendChild(this._container)},ki.prototype.addScope=function(e){const{element:t}=e;if(!["bpmn:Process","bpmn:SubProcess","bpmn:Participant"].includes(t.type))return;const n=e.colors,i=n?`style="color: ${n.auxiliary}; background: ${n.primary}"`:"",o=Kt(`\n
\n ${e.getTokens()}\n
\n `);Gt.bind(o,"click",(()=>{this._scopeFilter.toggle(e)})),Gt.bind(o,"mouseenter",(()=>{this.highlightScope(t)})),Gt.bind(o,"mouseleave",(()=>{this.unhighlightScope()})),this._scopeFilter.isShown(e)||Nt(o).add("inactive"),this._container.appendChild(o)},ki.prototype.getScopeElements=function(){return en("[data-scope-id]",this._container)},ki.prototype.getScopeElement=function(e){return Jt(`[data-scope-id="${e.id}"]`,this._container)},ki.prototype.updateScope=function(e){const t=this.getScopeElement(e);t&&(t.textContent=e.getTokens())},ki.prototype.removeScope=function(e){const t=this.getScopeElement(e);t&&t.remove()},ki.prototype.removeAllInstances=function(){this._container.innerHTML=""},ki.prototype.highlightScope=function(e){this.unhighlightScope(),this._highlight=e,this._elementColors.add(e,Ei,this._getHighlightColors(),3e3),e.parent||Nt(this._canvas.getContainer()).add("highlight")},ki.prototype.unhighlightScope=function(){if(!this._highlight)return;const e=this._highlight;this._elementColors.remove(e,Ei),e.parent||Nt(this._canvas.getContainer()).remove("highlight"),this._highlight=null},ki.prototype._getHighlightColors=function(){return{fill:this._simulationStyles.get("--token-simulation-silver-base-97"),stroke:this._simulationStyles.get("--token-simulation-green-base-44")}},ki.$inject=["eventBus","canvas","scopeFilter","elementColors","simulationStyles"],Si.$inject=[],Si.prototype.get=function(e){return this._cache[e]||(this._computedStyle||(this._computedStyle=this._getComputedStyle()),this._cache[e]=this._computedStyle.getPropertyValue(e).trim())},Si.prototype._getComputedStyle=function(){return("function"==typeof getComputedStyle?getComputedStyle:Ci)("undefined"!=typeof document?document.documentElement:{})};const Oi={simulationStyles:["type",Si]},Pi={__depends__:[St,Oi],__init__:["showScopes"],showScopes:["type",ki]};function Mi(e){return CSS.escape(e)}var Ai={"&":"&","<":"<",">":">",'"':""","'":"'"};function Ti(e){return(e=""+e)&&e.replace(/[&<>"']/g,(function(e){return Ai[e]}))}const Bi=ei();function Ri(e){const t=e&&e.businessObject.name;return t&&Ti(t)}function Di(e,t){const n=Li(e);return"none"===n?"bpmn-icon-intermediate-event-none":`bpmn-icon-intermediate-event-${t}-${n}`}function Li(e){const t=me(e);if(0===t.get("eventDefinitions").length)return"none";const n=t.eventDefinitions[0];return Ze(n,"bpmn:MessageEventDefinition")?"message":Ze(n,"bpmn:TimerEventDefinition")?"timer":Ze(n,"bpmn:SignalEventDefinition")?"signal":Ze(n,"bpmn:ErrorEventDefinition")?"error":Ze(n,"bpmn:EscalationEventDefinition")?"escalation":Ze(n,"bpmn:CompensateEventDefinition")?"compensation":Ze(n,"bpmn:ConditionalEventDefinition")?"condition":Ze(n,"bpmn:LinkEventDefinition")?"link":Ze(n,"bpmn:CancelEventDefinition")?"cancel":Ze(n,"bpmn:TerminateEventDefinition")?"terminate":"none"}function Ni(e,t,n,i,o,r){this._notifications=t,this._tokenSimulationPalette=n,this._canvas=i,this._scopeFilter=o,this._init(),e.on(wt,(e=>{const t=en(".bts-entry[data-scope-id]",this._container);for(const e of t){const t=e.dataset.scopeId;Nt(e).toggle("inactive",!this._scopeFilter.isShown(t))}})),e.on(yt,(e=>{const{scope:t}=e,{element:n}=t,i=t.completed;if(!["bpmn:Process","bpmn:Participant","bpmn:SubProcess"].includes(n.type))return;const o=`${Ze(n,"bpmn:SubProcess")?Ri(n)||"SubProcess":"Process"} ${i?"finished":"canceled"}`;this.log({text:o,icon:i?Yn():ri(),scope:t})})),e.on(bt,(e=>{const{scope:t}=e,{element:n}=t;if(!["bpmn:Process","bpmn:Participant","bpmn:SubProcess"].includes(n.type))return;const i=`${Ze(n,"bpmn:SubProcess")?Ri(n)||"SubProcess":"Process"} started`;this.log({text:i,icon:Yn(),scope:t})})),e.on(xt,(e=>{const{action:t,scope:n,element:i}=e;if("exit"!==t)return;const o=n.parent,r=Ri(i);return Ze(i,"bpmn:ServiceTask")?this.log({text:r||"Service Task",icon:"bpmn-icon-service",scope:o}):Ze(i,"bpmn:UserTask")?this.log({text:r||"User Task",icon:"bpmn-icon-user",scope:o}):Ze(i,"bpmn:CallActivity")?this.log({text:r||"Call Activity",icon:"bpmn-icon-call-activity",scope:o}):Ze(i,"bpmn:ScriptTask")?this.log({text:r||"Script Task",icon:"bpmn-icon-script",scope:o}):Ze(i,"bpmn:BusinessRuleTask")?this.log({text:r||"Business Rule Task",icon:"bpmn-icon-business-rule",scope:o}):Ze(i,"bpmn:ManualTask")?this.log({text:r||"Manual Task",icon:"bpmn-icon-manual-task",scope:o}):Ze(i,"bpmn:ReceiveTask")?this.log({text:r||"Receive Task",icon:"bpmn-icon-receive",scope:o}):Ze(i,"bpmn:SendTask")?this.log({text:r||"Send Task",icon:"bpmn-icon-send",scope:o}):Ze(i,"bpmn:Task")?this.log({text:r||"Task",icon:"bpmn-icon-task",scope:o}):Ze(i,"bpmn:ExclusiveGateway")?this.log({text:r||"Exclusive Gateway",icon:"bpmn-icon-gateway-xor",scope:o}):Ze(i,"bpmn:ParallelGateway")?this.log({text:r||"Parallel Gateway",icon:"bpmn-icon-gateway-parallel",scope:o}):Ze(i,"bpmn:InclusiveGateway")?this.log({text:r||"Inclusive Gateway",icon:"bpmn-icon-gateway-or",scope:o}):Ze(i,"bpmn:StartEvent")?this.log({text:r||"Start Event",icon:`bpmn-icon-start-event-${Li(i)}`,scope:o}):Ze(i,"bpmn:IntermediateCatchEvent")?this.log({text:r||"Intermediate Event",icon:Di(i,"catch"),scope:o}):Ze(i,"bpmn:IntermediateThrowEvent")?this.log({text:r||"Intermediate Event",icon:Di(i,"throw"),scope:o}):Ze(i,"bpmn:BoundaryEvent")?this.log({text:r||"Boundary Event",icon:Di(i,"catch"),scope:o}):Ze(i,"bpmn:EndEvent")?this.log({text:r||"End Event",icon:`bpmn-icon-end-event-${Li(i)}`,scope:o}):void 0})),e.on([pt,mt],(e=>{this.clear(),this.toggle(!1)}))}Ni.prototype._init=function(){this._container=Kt(`\n \n `),this._placeholder=Jt(".bts-placeholder",this._container),this._content=Jt(".bts-content",this._container),Gt.bind(this._content,"mousedown",(e=>{e.stopPropagation()})),this._close=Jt(".bts-close",this._container),Gt.bind(this._close,"click",(()=>{this.toggle(!1)})),this._icon=Jt(".bts-log-icon",this._container),Gt.bind(this._icon,"click",(()=>{this.toggle()})),this._canvas.getContainer().appendChild(this._container),this.paletteEntry=Kt(`\n
\n ${Xn()}\n
\n `),Gt.bind(this.paletteEntry,"click",(()=>{this.toggle()})),this._tokenSimulationPalette.addEntry(this.paletteEntry,3)},Ni.prototype.isShown=function(){return!Nt(this._container).has("hidden")},Ni.prototype.toggle=function(e=!this.isShown()){const t=this._container;e?Nt(t).remove("hidden"):Nt(t).add("hidden")},Ni.prototype.log=function(e){const{text:t,type:n="info",icon:i=Bi,scope:o}=e,r=this._content;Nt(this._placeholder).add("hidden"),this.isShown()||this._notifications.showNotification(e);const s=i.startsWith("<")?i:``,a=o&&o.colors,l=a?`style="background: ${a.primary}; color: ${a.auxiliary}"`:"",c=Kt(`\n

\n ${s}\n ${t}\n ${o?`${o.id}`:""}\n

\n `);Xt.bind(c,".bts-scope[data-scope-id]","click",(e=>{this._scopeFilter.toggle(o)}));const h=Math.abs(r.clientHeight+r.scrollTop-r.scrollHeight)<2;r.appendChild(c),h&&(r.scrollTop=r.scrollHeight)},Ni.prototype.clear=function(){for(;this._content.firstChild;)this._content.removeChild(this._content.firstChild);this._placeholder=Kt('

No Entries

'),this._content.appendChild(this._placeholder)},Ni.$inject=["eventBus","notifications","tokenSimulationPalette","canvas","scopeFilter","simulator"];const zi={__depends__:[xi,St],__init__:["log"],log:["type",Ni]},Ii=["bpmn:ComplexGateway"];function Fi(e,t,n,i,o){this._eventBus=e,this._elementRegistry=t,this._elementNotifications=o,this._notifications=i,this._canvasParent=n.getContainer().parentNode,e.on(pt,(e=>{e.active?this.enable():this.clear()}))}Fi.prototype.getUnsupportedElements=function(){return this._unsupportedElements},Fi.prototype.enable=function(){const e=[];this._elementRegistry.forEach((t=>{(function(e){return e.labelTarget})(t)||Ze(t,Ii)&&(this.showWarning(t),e.push(t))})),e.length&&this._notifications.showNotification({text:"Found unsupported elements",icon:Jn(),type:"warning",ttl:5e3}),this._unsupportedElements=e},Fi.prototype.clear=function(){Nt(this._canvasParent).remove("warning")},Fi.prototype.showWarning=function(e){this._elementNotifications.addElementNotification(e,{type:"warning",icon:Jn(),text:"Not supported"})},Fi.$inject=["eventBus","elementRegistry","canvas","notifications","elementNotifications"];const $i={__depends__:[vi,xi],__init__:["elementSupport"],elementSupport:["type",Fi]},ji=ni(),qi=ti();function Hi(e,t,n,i){this._eventBus=e,this._tokenSimulationPalette=t,this._notifications=n,this.canvasParent=i.getContainer().parentNode,this.isActive=!1,this.isPaused=!0,this._init(),e.on(bt,1500,(e=>{this.activate(),this.unpause()})),e.on([mt,pt],(()=>{this.deactivate(),this.pause()})),e.on(xt,1500,(e=>{this.unpause()}))}Hi.prototype._init=function(){this.paletteEntry=Kt(`\n
\n ${ji}\n
\n `),Gt.bind(this.paletteEntry,"click",this.toggle.bind(this)),this._tokenSimulationPalette.addEntry(this.paletteEntry,1)},Hi.prototype.toggle=function(){this.isPaused?this.unpause():this.pause()},Hi.prototype.pause=function(){this.isActive&&(Nt(this.paletteEntry).remove("active"),Nt(this.canvasParent).add("paused"),this.paletteEntry.innerHTML=ji,this._eventBus.fire(ft),this._notifications.showNotification({text:"Pause Simulation"}),this.isPaused=!0)},Hi.prototype.unpause=function(){this.isActive&&this.isPaused&&(Nt(this.paletteEntry).add("active"),Nt(this.canvasParent).remove("paused"),this.paletteEntry.innerHTML=qi,this._eventBus.fire(dt),this._notifications.showNotification({text:"Play Simulation"}),this.isPaused=!1)},Hi.prototype.activate=function(){this.isActive=!0,Nt(this.paletteEntry).remove("disabled")},Hi.prototype.deactivate=function(){this.isActive=!1,Nt(this.paletteEntry).remove("active"),Nt(this.paletteEntry).add("disabled")},Hi.$inject=["eventBus","tokenSimulationPalette","notifications","canvas"];const Vi={__depends__:[xi],__init__:["pauseSimulation"],pauseSimulation:["type",Hi]};function Wi(e,t,n){this._eventBus=e,this._tokenSimulationPalette=t,this._notifications=n,this._init(),e.on(bt,(()=>{Nt(this._paletteEntry).remove("disabled")})),e.on(pt,(e=>{(this._active=e.active)||this.resetSimulation()}))}Wi.prototype._init=function(){this._paletteEntry=Kt(`\n
\n ${ii()}\n
\n `),Gt.bind(this._paletteEntry,"click",(()=>{this.resetSimulation(),this._notifications.showNotification({text:"Reset Simulation",type:"info"})})),this._tokenSimulationPalette.addEntry(this._paletteEntry,2)},Wi.prototype.resetSimulation=function(){Nt(this._paletteEntry).add("disabled"),this._eventBus.fire(mt)},Wi.$inject=["eventBus","tokenSimulationPalette","notifications"];const Gi={__depends__:[xi],__init__:["resetSimulation"],resetSimulation:["type",Wi]};function Qi(e,t,n,i,o){this._overlays=t,this._scopeFilter=i,this._simulator=n,this._simulationStyles=o,this.overlayIds={},e.on(vt,500,(e=>{const{element:t}=e;this.removeTokenCounts(t),this.addTokenCounts(t)})),e.on(wt,(e=>{const n=en(".bts-token-count[data-scope-id]",t._overlayRoot);for(const e of n){const t=e.dataset.scopeId;Nt(e).toggle("inactive",!this._scopeFilter.isShown(t))}}))}Qi.prototype.addTokenCounts=function(e){if(Ze(e,"bpmn:MessageFlow")||Ze(e,"bpmn:SequenceFlow"))return;const t=this._simulator.findScopes((t=>!t.destroyed&&t.children.some((t=>!t.destroyed&&t.element===e&&!t.children.length))));this.addTokenCount(e,t)},Qi.prototype.addTokenCount=function(e,t){if(!t.length)return;const n=t.map((t=>this._getTokenHTML(e,t))).join(""),i=Kt(`\n
\n ${n}\n
\n `),o=this._overlays.add(e,"bts-token-count",{position:{bottom:10,left:-15},html:i,show:{minZoom:.5}});this.overlayIds[e.id]=o},Qi.prototype.removeTokenCounts=function(e){this.removeTokenCount(e)},Qi.prototype.removeTokenCount=function(e){const t=this.overlayIds[e.id];t&&(this._overlays.remove(t),delete this.overlayIds[e.id])},Qi.prototype._getTokenHTML=function(e,t){const n=t.colors||this._getDefaultColors();return`\n
\n ${t.getTokensByElement(e)}\n
\n `},Qi.prototype._getDefaultColors=function(){return{primary:this._simulationStyles.get("--token-simulation-green-base-44"),auxiliary:this._simuationStyles.get("--token-simulation-white")}},Qi.$inject=["eventBus","overlays","simulator","scopeFilter","simulationStyles"];const Xi={__depends__:[St,Oi],__init__:["tokenCount"],tokenCount:["type",Qi]},Ui=[["Slow",.5],["Normal",1],["Fast",2]];function Yi(e,t,n){this._canvas=e,this._animation=t,this._eventBus=n,this._init(t.getAnimationSpeed()),n.on(pt,(e=>{e.active?Nt(this._container).remove("hidden"):Nt(this._container).add("hidden")})),n.on(gt,(e=>{this.setActive(e.speed)}))}Yi.prototype.getToggleSpeed=function(e){return parseFloat(e.dataset.speed)},Yi.prototype._init=function(e){this._container=Kt(`\n \n `),Xt.bind(this._container,"[data-speed]","click",(e=>{const t=e.delegateTarget,n=this.getToggleSpeed(t);this._animation.setAnimationSpeed(n)})),this._canvas.getContainer().appendChild(this._container)},Yi.prototype.setActive=function(e){en("[data-speed]",this._container).forEach((t=>{const n=this.getToggleSpeed(t)===e;Nt(t)[n?"add":"remove"]("active")}))},Yi.$inject=["canvas","animation","eventBus"];const Ki={__init__:["setAnimationSpeed"],setAnimationSpeed:["type",Yi]};function Zi(e){return Ze(e,"bpmn:SequenceFlow")}function Ji(e,t,n,i,o){this._elementRegistry=t,this._elementColors=n,this._simulator=i,this._simulationStyles=o,e.on(pt,(e=>{e.active?this.setSequenceFlowsDefault():this.resetSequenceFlows()}))}function eo(e,t,n){this._elementRegistry=e,this._eventBus=t,this._graphicsFactory=n,this._originalColors={},this._customColors={},t.on(pt,5e4,(e=>{e.active?this._saveOriginalColors():(this._applyOriginalColors(),this._originalColors={},this._customColors={})})),t.on("saveXML.start",5e4,(()=>{this._applyOriginalColors(),t.once("saveXML.done",(()=>this._applyCustomColors()))}))}function to(e){return"labelTarget"in e}function no(e={}){const t=Object.values(e).reduce(((e,t)=>{const{priority:n=1e3}=t;return!e||n>e.priority?t:e}),void 0);if(t){const{priority:e,...n}=t;return n}}Ji.prototype.setSequenceFlowsDefault=function(){const e=this._elementRegistry.filter((e=>Ze(e,"bpmn:ExclusiveGateway")));for(const t of e)this.setSequenceFlow(t)},Ji.prototype.resetSequenceFlows=function(){this._elementRegistry.filter((e=>Ze(e,"bpmn:ExclusiveGateway"))).forEach((e=>{e.outgoing.filter(Zi).length&&this.resetSequenceFlow(e)}))},Ji.prototype.resetSequenceFlow=function(e){this._simulator.setConfig(e,{activeOutgoing:void 0})},Ji.prototype.setSequenceFlow=function(e){const t=e.outgoing.filter(Zi);if(t.length<2)return;const{activeOutgoing:n}=this._simulator.getConfig(e);let i;i=n?function(e,t){var n=e.outgoing.filter(Zi),i=n.indexOf(t||e.sequenceFlow);return n[i+1]?n[i+1]:n[0]}(e,n):t[0],this._simulator.setConfig(e,{activeOutgoing:i}),e.outgoing.forEach((e=>{const t=e===i?"--token-simulation-grey-darken-30":"--token-simulation-grey-lighten-56",n=this._simulationStyles.get(t);this._elementColors.add(e,"exclusive-gateway-settings",{stroke:n},2e3)}))},Ji.$inject=["eventBus","elementRegistry","elementColors","simulator","simulationStyles"],eo.$inject=["elementRegistry","eventBus","graphicsFactory"],eo.prototype.add=function(e,t,n,i=1e3){let o=this._customColors[e.id];o||(o=this._customColors[e.id]={}),o[t]={...n,priority:i},this._applyHighestPriorityColor(e)},eo.prototype.remove=function(e,t){const n=this._customColors[e.id];n&&(delete n[t],Object.keys(n)||delete this._customColors[e.id]),this._applyHighestPriorityColor(e)},eo.prototype._get=function(e){const t=ge(e);if(t)return to(e)?{stroke:t.label&&t.label.get("color")}:fe(t,["bpmndi:BPMNEdge","bpmndi:BPMNShape"])?{fill:t.get("background-color"),stroke:t.get("border-color")}:void 0},eo.prototype._set=function(e,t={}){const{fill:n,stroke:i}=t,o=ge(e);o&&(to(e)?o.label&&o.label.set("color",i):fe(o,["bpmndi:BPMNEdge","bpmndi:BPMNShape"])&&(o.set("background-color",n),o.set("border-color",i)),this._forceRedraw(e))},eo.prototype._saveOriginalColors=function(){this._originalColors={},this._elementRegistry.forEach((e=>{this._originalColors[e.id]=this._get(e)}))},eo.prototype._applyOriginalColors=function(){this._elementRegistry.forEach((e=>{const t=this._originalColors[e.id];t&&this._set(e,t)}))},eo.prototype._applyCustomColors=function(){this._elementRegistry.forEach((e=>{const t=this._customColors[e.id];t&&this._set(e,no(t))}))},eo.prototype._applyHighestPriorityColor=function(e){const t=this._customColors[e.id];t?this._set(e,no(t)):this._set(e,this._originalColors[e.id])},eo.prototype._forceRedraw=function(e){const t=this._elementRegistry.getGraphics(e),n=e.waypoints?"connection":"shape";this._graphicsFactory.update(n,e,t)};const io={elementColors:["type",eo]},oo={__depends__:[io,Oi],exclusiveGatewaySettings:["type",Ji]};function ro(e,t,n){this._elementRegistry=t,this._elementColors=n,e.on(pt,(e=>{const{active:t}=e;t&&this._setNeutralColors()}))}ro.prototype._setNeutralColors=function(){this._elementRegistry.forEach((e=>{this._elementColors.add(e,"neutral-element-colors",{stroke:"#212121",fill:"#fff"})}))},ro.$inject=["eventBus","elementRegistry","elementColors"];const so={__depends__:[io],__init__:["neutralElementColors"],neutralElementColors:["type",ro]};function ao(e,t,n,i,o){this._elementRegistry=t,this._elementColors=n,this._simulator=i,this._simulationStyles=o,e.on(pt,(e=>{e.active?this.setDefaults():this.reset()}))}function lo(e){const t=me(e).default;if(t)return e.outgoing.find((e=>me(e)===t))}function co(e,t){return e.filter((e=>e!==t))}ao.prototype.setDefaults=function(){this._elementRegistry.filter((e=>de(e,"bpmn:InclusiveGateway"))).forEach((e=>{e.outgoing.filter(be).length>1&&this._setGatewayDefaults(e)}))},ao.prototype.reset=function(){this._elementRegistry.filter((e=>de(e,"bpmn:InclusiveGateway"))).forEach((e=>{e.outgoing.filter(be).length>1&&this._resetGateway(e)}))},ao.prototype.toggleSequenceFlow=function(e,t){const n=this._getActiveOutgoing(e),i=lo(e),o=function(e){const t=lo(e);return e.outgoing.filter((e=>me(e)!==t))}(e);let r;r=n.includes(t)?co(n,t):co(n,i).concat(t),r.length||(r=i?[i]:[o.find((e=>e!==t))]),this._setActiveOutgoing(e,r)},ao.prototype._getActiveOutgoing=function(e){const{activeOutgoing:t}=this._simulator.getConfig(e);return t},ao.prototype._setActiveOutgoing=function(e,t){this._simulator.setConfig(e,{activeOutgoing:t}),e.outgoing.filter(be).forEach((e=>{const n=!t||t.includes(e)?"--token-simulation-grey-darken-30":"--token-simulation-grey-lighten-56",i=this._simulationStyles.get(n);this._elementColors.add(e,"inclusive-gateway-settings",{stroke:i})}))},ao.prototype._setGatewayDefaults=function(e){const t=co(e.outgoing.filter(be),lo(e));this._setActiveOutgoing(e,t)},ao.prototype._resetGateway=function(e){this._setActiveOutgoing(e,void 0)},ao.$inject=["eventBus","elementRegistry","elementColors","simulator","simulationStyles"];const ho={__depends__:[io,Oi],inclusiveGatewaySettings:["type",ao]};function uo(e,t){var n=this;this._canvas=t,this.entries=[],this._init(),e.on(pt,(function(e){e.active?Nt(n.container).remove("hidden"):Nt(n.container).add("hidden")}))}uo.prototype._init=function(){this.container=Kt(''),this._canvas.getContainer().appendChild(this.container)},uo.prototype.addEntry=function(e,t){var n=0;this.entries.forEach((function(e){t>=e.index&&n++})),this.container.insertBefore(e,this.container.childNodes[n]),this.entries.push({entry:e,index:t})},uo.$inject=["eventBus","canvas"];const po={__depends__:[at,qn,Gn,fi,_i,Pi,zi,$i,Vi,Gi,Xi,Ki,oo,so,ho,{__init__:["tokenSimulationPalette"],tokenSimulationPalette:["type",uo]}]};function fo(e,t,n,i,o,r,s){let a=!1;function l(e,t,n){const i=e[t];e[t]=function(){return n.call(this,i,arguments)}}function c(e,t){l(e,t,(function(e,t){if(!a)return e.apply(this,t)}))}function h(e,t){l(e,t,(function(e,t){if(a)throw new Error("model is read-only");return e.apply(this,t)}))}e.on(pt,10001,(e=>{a=e.active,a&&(i.cancel(),n.cancel()),s._update()})),c(n,"init"),c(i,"activate"),c(n,"init"),c(i,"activate"),h(r,"moveShape"),h(r,"updateAttachment"),h(r,"moveElements"),h(r,"moveConnection"),h(r,"layoutConnection"),h(r,"createConnection"),h(r,"createShape"),h(r,"createLabel"),h(r,"appendShape"),h(r,"removeElements"),h(r,"distributeElements"),h(r,"removeShape"),h(r,"removeConnection"),h(r,"replaceShape"),h(r,"pasteElements"),h(r,"alignElements"),h(r,"resizeShape"),h(r,"createSpace"),h(r,"updateWaypoints"),h(r,"reconnectStart"),h(r,"reconnectEnd"),l(o,"trigger",(function(e,t){const n=t[0];if(!a||!function(e,t){return["undo","redo","copy","paste","removeSelection","spaceTool","lassoTool","globalConnectTool","distributeElements","alignElements","directEditing"].indexOf(t)>-1}(0,n))return e.apply(this,t)}))}fo.$inject=["eventBus","contextPad","dragging","directEditing","editorActions","modeling","palette"];const mo={__init__:["disableModeling"],disableModeling:["type",fo]};function go(e,t,n,i){this._eventBus=e,this._canvas=t,this._selection=n,this._contextPad=i,this._active=!1,e.on("import.parse.start",(()=>{this._active&&(this.toggleMode(!1),e.once("import.done",(()=>{this.toggleMode(!0)})))})),e.on("diagram.init",(()=>{this._canvasParent=this._canvas.getContainer().parentNode,this._palette=Jt(".djs-palette",this._canvas.getContainer()),this._init()}))}go.prototype._init=function(){this._container=Kt(`\n
\n Token Simulation ${ai()}\n
\n `),Gt.bind(this._container,"click",(()=>this.toggleMode())),this._canvas.getContainer().appendChild(this._container)},go.prototype.toggleMode=function(e=!this._active){if(e!==this._active){if(e)this._container.innerHTML=`Token Simulation ${li()}`,Nt(this._canvasParent).add("simulation"),Nt(this._palette).add("hidden");else{this._container.innerHTML=`Token Simulation ${ai()}`,Nt(this._canvasParent).remove("simulation"),Nt(this._palette).remove("hidden");const e=this._selection.get();1===e.length&&this._contextPad.open(e[0])}this._eventBus.fire(pt,{active:e}),this._active=e}},go.$inject=["eventBus","canvas","selection","contextPad"];const vo={__init__:["toggleMode"],toggleMode:["type",go]};function yo(e,t,n,i,o,r){var s=!1;o.register({toggleTokenSimulation:function(){t.toggleMode()}}),o.register({togglePauseTokenSimulation:function(){s&&n.toggle()}}),o.register({resetTokenSimulation:function(){s&&i.resetSimulation()}});const a=r.get("log",!1);a&&o.register({toggleTokenSimulationLog:function(){a.toggle()}}),e.on(pt,(e=>{s=e.active}))}yo.$inject=["eventBus","toggleMode","pauseSimulation","resetSimulation","editorActions","injector"];const bo={__init__:["tokenSimulationEditorActions"],tokenSimulationEditorActions:["type",yo]};function wo(e,t){var n=t.get("editorActions",!1),i=t.get("keyboard",!1);if(i&&n){var o=!1;e.on("keyboard.init",(function(){i.addListener(1e4,(function(e){var t;xo(["t","T"],t=e.keyEvent)?n.trigger("toggleTokenSimulation"):o&&(xo(["l","L"],t)?n.trigger("toggleTokenSimulationLog"):xo([" ","Spacebar"],t)?n.trigger("togglePauseTokenSimulation"):xo(["r","R"],t)&&n.trigger("resetTokenSimulation"))}))})),e.on(pt,(function(e){var t=e.active;o=!!t}))}}function xo(e,t){return e.indexOf(t.key)>-1}wo.$inject=["eventBus","injector"];const _o={__depends__:[po,mo,vo,bo,{__init__:["tokenSimulationKeyboardBindings"],tokenSimulationKeyboardBindings:["type",wo]}]},Eo=/^class[ {]/;function ko(e){return Array.isArray(e)}function So(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Co(...e){1===e.length&&ko(e[0])&&(e=e[0]);const t=(e=[...e]).pop();return t.$inject=e,t}const Oo=/constructor\s*[^(]*\(\s*([^)]*)\)/m,Po=/^(?:async\s+)?(?:function\s*[^(]*)?(?:\(\s*([^)]*)\)|(\w+))/m,Mo=/\/\*([^*]*)\*\//m;function Ao(e){if("function"!=typeof e)throw new Error(`Cannot annotate "${e}". Expected a function!`);const t=e.toString().match(function(e){return Eo.test(e.toString())}(e)?Oo:Po);if(!t)return[];const n=t[1]||t[2];return n&&n.split(",").map((e=>{const t=e.match(Mo);return(t&&t[1]||e).trim()}))||[]}function To(e,t){const n=t||{get:function(e,t){if(i.push(e),!1===t)return null;throw a(`No provider for "${e}"!`)}},i=[],o=this._providers=Object.create(n._providers||null),r=this._instances=Object.create(null),s=r.injector=this,a=function(e){const t=i.join(" -> ");return i.length=0,new Error(t?`${e} (Resolving: ${t})`:e)};function l(e,t){if(!o[e]&&e.includes(".")){const t=e.split(".");let n=l(t.shift());for(;t.length;)n=n[t.shift()];return n}if(So(r,e))return r[e];if(So(o,e)){if(-1!==i.indexOf(e))throw i.push(e),a("Cannot resolve circular dependency!");return i.push(e),r[e]=o[e][0](o[e][1]),i.pop(),r[e]}return n.get(e,t)}function c(e,t){if(void 0===t&&(t={}),"function"!=typeof e){if(!ko(e))throw a(`Cannot invoke "${e}". Expected a function!`);e=Co(e.slice())}return{fn:e,dependencies:(e.$inject||Ao(e)).map((e=>So(t,e)?t[e]:l(e)))}}function h(e){const{fn:t,dependencies:n}=c(e);return new(Function.prototype.bind.call(t,null,...n))}function u(e,t,n){const{fn:i,dependencies:o}=c(e,n);return i.apply(t,o)}function p(e){return Co((t=>e.get(t)))}function d(e,t){if(t&&t.length){const n=Object.create(null),i=Object.create(null),r=[],s=[],a=[];let l,c,h,u;for(let e in o)l=o[e],-1!==t.indexOf(e)&&("private"===l[2]?(c=r.indexOf(l[3]),-1===c?(h=l[3].createChild([],t),u=p(h),r.push(l[3]),s.push(h),a.push(u),n[e]=[u,e,"private",h]):n[e]=[a[c],e,"private",s[c]]):n[e]=[l[2],l[1]],i[e]=!0),"factory"!==l[2]&&"type"!==l[2]||!l[1].$scope||t.forEach((t=>{-1!==l[1].$scope.indexOf(t)&&(n[e]=[l[2],l[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 To(e,s)}const f={factory:u,type:h,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 g(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)),r=d((n||[]).concat(i)),s=Co((function(e){return r.get(e)}));t.forEach((function(e){o[e]=[s,e,"private",r]}));const a=(e.__init__||[]).slice();return a.unshift((function(){r.init()})),m(e=Object.assign({},e,{__init__:a}),r)}return Object.keys(e).forEach((function(t){if("__init__"===t||"__depends__"===t)return;const n=e[t];if("private"===n[2])return void(o[t]=n);const i=n[0],r=n[1];o[t]=[f[i],Bo(i,r),i]})),m(e,s)}function v(e,t){return-1!==e.indexOf(t)||-1!==(e=(t.__depends__||[]).reduce(v,e)).indexOf(t)?e:e.concat(t)}this.get=l,this.invoke=u,this.instantiate=h,this.createChild=d,this.init=function(e){const t=e.reduce(v,[]).map(g);let n=!1;return function(){n||(n=!0,t.forEach((e=>e())))}}(e)}function Bo(e,t){return"value"!==e&&ko(t)&&(t=Co(t.slice())),t}var Ro=1e3;function Do(e,t){var n=this;t=t||Ro,e.on(["render.shape","render.connection"],t,(function(e,t){var i=e.type,o=t.element,r=t.gfx,s=t.attrs;if(n.canRender(o))return"render.shape"===i?n.drawShape(r,o,s):n.drawConnection(r,o,s)})),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 Lo(e){return e.flat().join(",").replace(/,?([A-z]),?/g,"$1")}function No(e){return["L",e.x,e.y]}function zo(e,t){const n=e.length,i=[(o=e[0],["M",o.x,o.y])];var o,r,s,a;for(let o=1;oo||void 0===o)&&(o=a+h),(l+c>r||void 0===r)&&(r=l+c)})),{x:n,y:i,height:r-i,width:o-n}}function Xo(e){return"waypoints"in e?"connection":"x"in e?"shape":"root"}function Uo(e){return!(!e||!e.isFrame)}function Yo(e,t){return ce({},e||{},t||{})}function Ko(e,t){Do.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})}Do.prototype.canRender=function(e){},Do.prototype.drawShape=function(e,t){},Do.prototype.drawConnection=function(e,t){},Do.prototype.getShapePath=function(e){},Do.prototype.getConnectionPath=function(e){},lt(Ko,Do),Ko.prototype.canRender=function(){return!0},Ko.prototype.drawShape=function(e,t,n){var i=vn("rect");return ln(i,{x:0,y:0,width:t.width||0,height:t.height||0}),Uo(t)?ln(i,ce({},this.FRAME_STYLE,n||{})):ln(i,ce({},this.SHAPE_STYLE,n||{})),on(e,i),i},Ko.prototype.drawConnection=function(e,t,n){var i=$o(t.waypoints,ce({},this.CONNECTION_STYLE,n||{}));return on(e,i),i},Ko.prototype.getShapePath=function(e){var t=e.x,n=e.y,i=e.width;return Lo([["M",t,n],["l",i,0],["l",0,e.height],["l",-i,0],["z"]])},Ko.prototype.getConnectionPath=function(e){var t,n,i=e.waypoints,o=[];for(t=0;n=i[t];t++)n=n.original||n,o.push([0===t?"M":"L",n.x,n.y]);return Lo(o)},Ko.$inject=["eventBus","styles"];const Zo={__init__:["defaultRenderer"],defaultRenderer:["type",Ko],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 ce(this.style(t,n),{class:e})},this.style=function(t,n){L(t)||n||(n=t,t=[]);var i=G(t,(function(t,n){return ce(t,e[n]||{})}),{});return n?ce(i,n):i},this.computeStyle=function(e,n,i){return L(n)||(i=n,n=[]),t.style(n||[],ce({},i,e||{}))}}]};function Jo(e,t){if(!e||!t)return-1;var n=e.indexOf(t);return-1!==n&&e.splice(n,1),n}function er(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 tr(e,t){return e&&t?e.indexOf(t):-1}function nr(e,t){return e&&t?Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2)):-1}function ir(e,t,n,i){if(void 0===i&&(i=5),!e||!t||!n)return!1;var o=(t.x-e.x)*(n.y-e.y)-(t.y-e.y)*(n.x-e.x),r=nr(e,t);return Math.abs(o/r)<=i}var or=2;function rr(e,t){var n=Array.from(arguments).flat();const i={x:"v",y:"h"};for(const[e,t]of Object.entries(i))if(sr(e,n))return t;return!1}function sr(e,t){const n=t[0];return Q(t,(function(t){return Math.abs(n[e]-t[e])<=or}))}function ar(e,t,n){return n=n||0,e.x>t.x-n&&e.y>t.y-n&&e.x=e.x&&t<=e.x+e.width&&n>=e.y&&n<=e.y+e.height}function Mr(e,t,n,i,o){return e*(e*(-3*t+9*n-9*i+3*o)+6*t-12*n+6*i)-3*t+3*n}function Ar(e,t,n,i,o,r,s,a,l){null==l&&(l=1);for(var c=(l=l>1?1:l<0?0:l)/2,h=[-.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],p=0,d=0;d<12;d++){var f=c*h[d]+c,m=Mr(f,e,n,o,s),g=Mr(f,t,i,r,a),v=m*m+g*g;p+=u[d]*ur.sqrt(v)}return c*p}function Tr(e,t,n,i,o,r,s,a){if(!(fr(e,n)fr(o,s)||fr(t,i)fr(r,a))){var l=(e*i-t*n)*(r-a)-(t-i)*(o*a-r*s),c=(e-n)*(r-a)-(t-i)*(o-s);if(c){var h=Br(((e*i-t*n)*(o-s)-(e-n)*(o*a-r*s))/c),u=Br(l/c),p=+h.toFixed(2),d=+u.toFixed(2);if(!(p<+dr(e,n).toFixed(2)||p>+fr(e,n).toFixed(2)||p<+dr(o,s).toFixed(2)||p>+fr(o,s).toFixed(2)||d<+dr(t,i).toFixed(2)||d>+fr(t,i).toFixed(2)||d<+dr(r,a).toFixed(2)||d>+fr(r,a).toFixed(2)))return{x:h,y:u}}}}function Br(e){return Math.round(1e11*e)/1e11}function Rr(e,t,n){if(i=Or(e),o=Or(t),i=Er(i),!(Pr(o=Er(o),i.x,i.y)||Pr(o,i.x2,i.y)||Pr(o,i.x,i.y2)||Pr(o,i.x2,i.y2)||Pr(i,o.x,o.y)||Pr(i,o.x2,o.y)||Pr(i,o.x,o.y2)||Pr(i,o.x2,o.y2)||(i.xo.x||o.xi.x)&&(i.yo.y||o.yi.y)))return n?0:[];for(var i,o,r=Ar(...e),s=Ar(...t),a=Nr(e)?1:~~(r/5)||1,l=Nr(t)?1:~~(s/5)||1,c=[],h=[],u={},p=n?0:[],d=0;d=0&&k<=1&&S>=0&&S<=1&&(n?p++:p.push({x:E.x,y:E.y,t1:k,t2:S}))}}return p}function Dr(e,t,n){e=$r(e),t=$r(t);for(var i,o,r,s,a,l,c,h,u,p,d=n?0:[],f=0,m=e.length;f2&&(i.push([t,...r.splice(0,2)]),s="l",t="m"==t?"l":"L");r.length>=n[s]&&(i.push([t,...r.splice(0,n[s])]),n[s]););})),i.toString=_r.toString,t.arr=xr(i),i}(e)),!e||!e.length)return[["M",0,0]];var n,i=[],o=0,r=0,s=0,a=0,l=0;"M"==e[0][0]&&(s=o=+e[0][1],a=r=+e[0][2],l++,i[0]=["M",o,r]);for(var c,h,u=l,p=e.length;u=1e3&&delete n[i.shift()],i.push(t),n[t]=function(e,t,n){return{x:e*ur.cos(n)-t*ur.sin(n),y:e*ur.sin(n)+t*ur.cos(n)}}(...arguments),n[t])};if(c)E=c[0],k=c[1],x=c[2],_=c[3];else{e=(h=f(e,t,-p)).x,t=h.y;var m=(e-(a=(h=f(a,l,-p)).x))/2,g=(t-(l=h.y))/2,v=m*m/(n*n)+g*g/(i*i);v>1&&(n*=v=ur.sqrt(v),i*=v);var y=n*n,b=i*i,w=(r==s?-1:1)*ur.sqrt(gr((y*b-y*g*g-b*m*m)/(y*g*g+b*m*m))),x=w*n*g/i+(e+a)/2,_=w*-i*m/n+(t+l)/2,E=ur.asin(((t-_)/i).toFixed(9)),k=ur.asin(((l-_)/i).toFixed(9));(E=ek&&(E-=2*pr),!s&&k>E&&(k-=2*pr)}var S=k-E;if(gr(S)>u){var C=k,O=a,P=l;k=E+u*(s&&k>E?1:-1),d=Fr(a=x+n*ur.cos(k),l=_+i*ur.sin(k),n,i,o,0,s,O,P,[k,C,x,_])}S=k-E;var M=ur.cos(E),A=ur.sin(E),T=ur.cos(k),B=ur.sin(k),R=ur.tan(S/4),D=4/3*n*R,L=4/3*i*R,N=[e,t],z=[e+D*A,t-L*M],I=[a+D*B,l-L*T],F=[a,l];if(z[0]=2*N[0]-z[0],z[1]=2*N[1]-z[1],c)return[z,I,F].concat(d);for(var $=[],j=0,q=(d=[z,I,F].concat(d).join().split(",")).length;j7){e[t].shift();for(var i=e[t];i.length;)s[t]="A",e.splice(t++,0,["C",...i.splice(0,6)]);e.splice(t,1),h=n.length}},s=[],a="",l="",c=0,h=n.length;c=o.right,a=i.top-n.y>=o.bottom,l=r?"top":a?"bottom":null,c=i.right+n.x<=o.left?"left":s?"right":null;return c&&l?l+"-"+c:c||l||"intersect"}function Ur(e,t,n){var i=function(e,t){return Dr(e,t)}(e,t);return 1===i.length||2===i.length&&nr(i[0],i[1])<1?Vr(i[0]):i.length>1?(i=te(i,(function(e){var t=Math.floor(100*e.t2)||1;return t=((t=100-t)<10?"0":"")+t,e.segment2+"#"+t})),Vr(i[n?0:i.length-1])):null}function Yr(e,t){return Math.round(e*t)/t}function Kr(e){return z(e)?e+"px":e}function Zr(e,t,n){const i=vn("g");hn(i).add(t);const o=void 0!==n?n:e.childNodes.length-1;return e.insertBefore(i,e.childNodes[o]||null),i}const Jr={shape:["x","y","width","height"],connection:["waypoints"]};function es(e,t,n,i){this._eventBus=t,this._elementRegistry=i,this._graphicsFactory=n,this._rootsIdx=0,this._layers={},this._planes=[],this._rootElement=null,this._init(e||{})}function ts(e,t){const n="matrix("+t.a+","+t.b+","+t.c+","+t.d+","+t.e+","+t.f+")";e.setAttribute("transform",n)}es.$inject=["config.canvas","eventBus","graphicsFactory","elementRegistry"],es.prototype._init=function(e){const t=this._eventBus,n=this._container=function(e){const t=(e=ce({},{width:"100%",height:"100%"},e)).container||document.body,n=document.createElement("div");return n.setAttribute("class","djs-container djs-parent"),Rt(n,{position:"relative",overflow:"hidden",width:Kr(e.width),height:Kr(e.height)}),t.appendChild(n),n}(e),i=this._svg=vn("svg");ln(i,{width:"100%",height:"100%"}),on(n,i);const o=this._viewport=Zr(i,"viewport");e.deferUpdate&&(this._viewboxChanged=ae(le(this._viewboxChanged,this),300)),t.on("diagram.init",(()=>{t.fire("canvas.init",{svg:i,viewport:o})})),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)},es.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},es.prototype._clear=function(){this._elementRegistry.getAll().forEach((e=>{const t=Xo(e);"root"===t?this.removeRootElement(e):this._removeElement(e,t)})),this._planes=[],this._rootElement=null,delete this._cachedViewbox},es.prototype.getDefaultLayer=function(){return this.getLayer("base",0)},es.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},es.prototype._getChildIndex=function(e){return G(this._layers,(function(t,n){return n.visible&&e>=n.index&&t++,t}),0)},es.prototype._createLayer=function(e,t){void 0===t&&(t=1);const n=this._getChildIndex(t);return{group:Zr(this._viewport,"layer-"+e,n),index:t,visible:!0}},es.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,o=t.index;if(t.visible)return i;const r=this._getChildIndex(o);return n.insertBefore(i,n.childNodes[r]||null),t.visible=!0,i},es.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?(Pn(n),t.visible=!1,n):n},es.prototype._removeLayer=function(e){const t=this._layers[e];t&&(delete this._layers[e],Pn(t.group))},es.prototype.getActiveLayer=function(){const e=this._findPlaneForRoot(this.getRootElement());return e?e.layer:null},es.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},es.prototype.getRootElements=function(){return this._planes.map((function(e){return e.rootElement}))},es.prototype._findPlaneForRoot=function(e){return j(this._planes,(function(t){return t.rootElement===e}))},es.prototype.getContainer=function(){return this._container},es.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&&(V([i.gfx,i.secondaryGfx],(function(i){i&&(n?(e.markers.add(t),hn(i).add(t)):(e.markers.delete(t),hn(i).remove(t)))})),this._eventBus.fire("element.marker.update",{element:e,gfx:i.gfx,marker:t,add:!!n}))},es.prototype.addMarker=function(e,t){this._updateMarker(e,t,!0)},es.prototype.removeMarker=function(e,t){this._updateMarker(e,t,!1)},es.prototype.hasMarker=function(e,t){return e.id||(e=this._elementRegistry.get(e)),!!e.markers&&e.markers.has(t)},es.prototype.toggleMarker=function(e,t){this.hasMarker(e,t)?this.removeMarker(e,t):this.addMarker(e,t)},es.prototype.getRootElement=function(){const e=this._rootElement;return e||this._planes.length?e:this.setRootElement(this.addRootElement(null))},es.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},es.prototype.removeRootElement=function(e){if("string"==typeof e&&(e=this._elementRegistry.get(e)),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},es.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},es.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)},es.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})},es.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})},es.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=Jr[e],i=Q(n,(function(e){return void 0!==t[e]}));if(!i)throw new Error("must supply { "+n.join(", ")+" } with "+e)},es.prototype._setParent=function(e,t,n){er(t.children,e,n),e.parent=t},es.prototype._addElement=function(e,t,n,i){n=n||this.getRootElement();const o=this._eventBus,r=this._graphicsFactory;this._ensureValid(e,t),o.fire(e+".add",{element:t,parent:n}),this._setParent(t,n,i);const s=r.create(e,t,i);return this._elementRegistry.add(t,s),r.update(e,t,s),o.fire(e+".added",{element:t,gfx:s}),t},es.prototype.addShape=function(e,t,n){return this._addElement("shape",e,t,n)},es.prototype.addConnection=function(e,t,n){return this._addElement("connection",e,t,n)},es.prototype._removeElement=function(e,t){const n=this._elementRegistry,i=this._graphicsFactory,o=this._eventBus;if(e=n.get(e.id||e))return o.fire(t+".remove",{element:e}),i.remove(e),Jo(e.parent&&e.parent.children,e),e.parent=null,o.fire(t+".removed",{element:e}),n.remove(e),e},es.prototype.removeShape=function(e){return this._removeElement(e,"shape")},es.prototype.removeConnection=function(e){return this._removeElement(e,"connection")},es.prototype.getGraphics=function(e,t){return this._elementRegistry.getGraphics(e,t)},es.prototype._changeViewbox=function(e){this._eventBus.fire("canvas.viewbox.changing"),e.apply(this),this._cachedViewbox=null,this._viewboxChanged()},es.prototype._viewboxChanged=function(){this._eventBus.fire("canvas.viewbox.changed",{viewbox:this.viewbox()})},es.prototype.viewbox=function(e){if(void 0===e&&this._cachedViewbox)return this._cachedViewbox;const t=this._viewport,n=this.getSize();let i,o,r,s,a,l,c;return e?(this._changeViewbox((function(){a=Math.min(n.width/e.width,n.height/e.height);const i=this._svg.createSVGMatrix().scale(a).translate(-e.x,-e.y);An(t,i)})),e):(r=this._rootElement?this.getActiveLayer():null,i=r&&r.getBBox()||{},s=An(t),o=s?s.matrix:function(e,t,n,i,o,r){var s=bn().createSVGMatrix();switch(arguments.length){case 0:return s;case 1:return wn(s,e);case 6:return wn(s,{a:e,b:t,c:n,d:i,e:o,f:r})}}(),a=Yr(o.a,1e3),l=Yr(-o.e||0,1e3),c=Yr(-o.f||0,1e3),e=this._cachedViewbox={x:l?l/a:0,y:c?c/a:0,width:n.width/a,height:n.height/a,scale:a,inner:{width:i.width||0,height:i.height||0,x:i.x||0,y:i.y||0},outer:n})},es.prototype.scroll=function(e){const t=this._viewport;let n=t.getCTM();return e&&this._changeViewbox((function(){e=ce({dx:0,dy:0},e||{}),n=this._svg.createSVGMatrix().translate(e.dx,e.dy).multiply(n),ts(t,n)})),{x:n.e,y:n.f}},es.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 o=Qo(e),r=Wr(o),s=this.viewbox(),a=this.zoom();let l,c;s.y+=t.top/a,s.x+=t.left/a,s.width-=(t.right+t.left)/a,s.height-=(t.bottom+t.top)/a;const h=Wr(s);if(o.width=0&&i.y>=0&&i.x+i.width<=n.width&&i.y+i.height<=n.height&&!e?r={x:0,y:0,width:Math.max(i.width+i.x,n.width),height:Math.max(i.height+i.y,n.height)}:(o=Math.min(1,n.width/i.width,n.height/i.height),r={x:i.x+(e?i.width/2-n.width/o/2:0),y:i.y+(e?i.height/2-n.height/o/2:0),width:n.width/o,height:n.height/o}),this.viewbox(r),this.viewbox(!1).scale},es.prototype._setZoom=function(e,t){const n=this._svg,i=this._viewport,o=n.createSVGMatrix(),r=n.createSVGPoint();let s,a,l,c,h;l=i.getCTM();const u=l.a;return t?(s=ce(r,t),a=s.matrixTransform(l.inverse()),c=o.translate(a.x,a.y).scale(1/u*e).translate(-a.x,-a.y),h=l.multiply(c)):h=o.scale(e),ts(this._viewport,h),h},es.prototype.getSize=function(){return{width:this._container.clientWidth,height:this._container.clientHeight}},es.prototype.getAbsoluteBBox=function(e){const t=this.viewbox();let n;return n=e.waypoints?this.getGraphics(e).getBBox():e,{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}},es.prototype.resized=function(){delete this._cachedViewbox,this._eventBus.fire("canvas.resized")};var ns="data-element-id";function is(e){this._elements={},this._eventBus=e}function os(e,t,n){var i=function(e,t,n,i){var o=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,o,i)),e}}),Object.defineProperty(e,"contains",{value:function(e){return-1!==this.indexOf(e)}}),Object.defineProperty(e,"add",{value:function(e,n){var r=this.indexOf(e);if(void 0===n){if(-1!==r)return;n=this.length}-1!==r&&this.splice(r,1),this.splice(n,0,e),-1===r&&t.set(e,o,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 rs(e,t){if(!(this instanceof rs))return new rs(e,t);e.inverse=t,t.inverse=e,this.props={},this.props[e.name]=e,this.props[t.name]=t}is.$inject=["eventBus"],is.prototype.add=function(e,t,n){var i=e.id;this._validateId(i),ln(t,ns,i),n&&ln(n,ns,i),this._elements[i]={element:e,gfx:t,secondaryGfx:n}},is.prototype.remove=function(e){var t=this._elements,n=e.id||e,i=n&&t[n];i&&(ln(i.gfx,ns,""),i.secondaryGfx&&ln(i.secondaryGfx,ns,""),delete t[n])},is.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)},is.prototype.updateGraphics=function(e,t,n){var i=e.id||e,o=this._elements[i];return n?o.secondaryGfx=t:o.gfx=t,t&&ln(t,ns,i),t},is.prototype.get=function(e){var t;t="string"==typeof e?e:e&&ln(e,ns);var n=this._elements[t];return n&&n.element},is.prototype.filter=function(e){var t=[];return this.forEach((function(n,i){e(n,i)&&t.push(n)})),t},is.prototype.find=function(e){for(var t=this._elements,n=Object.keys(t),i=0;i in ref");t=this.props[t]}t.collection?os(this,t,e):function(e,t,n){var i=t.inverse,o=n[t.name];Object.defineProperty(n,t.name,{configurable:t.configurable,enumerable:t.enumerable,get:function(){return o},set:function(t){if(t!==o){var r=o;o=null,r&&e.unset(r,i,n),o=t,e.set(o,i,n)}}})}(this,t,e)},rs.prototype.ensureRefsCollection=function(e,t){var n=e[t.name];return function(e){return!0===e.__refs_collection}(n)||os(this,t,e),n},rs.prototype.ensureBound=function(e,t){(function(e,t){return Object.prototype.hasOwnProperty.call(e,t.name||t)})(e,t)||this.bind(e,t)},rs.prototype.unset=function(e,t,n){e&&(this.ensureBound(e,t),t.collection?this.ensureRefsCollection(e,t).remove(n):e[t.name]=void 0)},rs.prototype.set=function(e,t,n){e&&(this.ensureBound(e,t),t.collection?this.ensureRefsCollection(e,t).add(n):e[t.name]=n)};var ss=new rs({name:"children",enumerable:!0,collection:!0},{name:"parent"}),as=new rs({name:"labels",enumerable:!0,collection:!0},{name:"labelTarget"}),ls=new rs({name:"attachers",collection:!0},{name:"host"}),cs=new rs({name:"outgoing",collection:!0},{name:"source"}),hs=new rs({name:"incoming",collection:!0},{name:"target"});function us(){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)}}),ss.bind(this,"parent"),as.bind(this,"labels"),cs.bind(this,"outgoing"),hs.bind(this,"incoming")}function ps(){us.call(this),ss.bind(this,"children"),ls.bind(this,"host"),ls.bind(this,"attachers")}function ds(){us.call(this),ss.bind(this,"children")}function fs(){ps.call(this),as.bind(this,"labelTarget")}function ms(){us.call(this),cs.bind(this,"source"),hs.bind(this,"target")}lt(ps,us),lt(ds,ps),lt(fs,ps),lt(ms,us);var gs={connection:ms,shape:ps,label:fs,root:ds};function vs(){this._uid=12}vs.prototype.createRoot=function(e){return this.create("root",e)},vs.prototype.createLabel=function(e){return this.create("label",e)},vs.prototype.createShape=function(e){return this.create("shape",e)},vs.prototype.createConnection=function(e){return this.create("connection",e)},vs.prototype.create=function(e,t){return(t=ce({},t||{})).id||(t.id=e+"_"+this._uid++),function(e,t){var n=gs[e];if(!n)throw new Error("unknown type: <"+e+">");return ce(new n,t)}(e,t)};var ys="__fn",bs=Array.prototype.slice;function ws(){this._listeners={},this.on("diagram.destroy",1,this._destroy,this)}function xs(){}function _s(e){return e.childNodes[0]}function Es(e,t,n,i,o){var r=xn();r.setTranslate(t,n);var s=xn();s.setRotate(i||0,0,0);var a=xn();a.setScale(o||1,o||1),An(e,[r,s,a])}function ks(e,t,n){var i=xn();i.setTranslate(t,n),An(e,i)}function Ss(e,t){var n=xn();n.setRotate(t,0,0),An(e,n)}function Cs(e,t){this._eventBus=e,this._elementRegistry=t}function Os(e,t,n){var i=n||t.firstChild;e!==i&&t.insertBefore(e,i)}ws.prototype.on=function(e,t,n,i){if(e=L(e)?e:[e],I(t)&&(i=n,n=t,t=1e3),!z(t))throw new Error("priority must be a number");var o=n;i&&((o=le(n,i))[ys]=n[ys]||n);var r=this;e.forEach((function(e){r._addListener(e,{priority:t,callback:o,next:null})}))},ws.prototype.once=function(e,t,n,i){var o=this;if(I(t)&&(i=n,n=t,t=1e3),!z(t))throw new Error("priority must be a number");function r(){r.__isTomb=!0;var t=n.apply(i,arguments);return o.off(e,r),t}r[ys]=n,this.on(e,t,r)},ws.prototype.off=function(e,t){e=L(e)?e:[e];var n=this;e.forEach((function(e){n._removeListener(e,t)}))},ws.prototype.createEvent=function(e){var t=new xs;return t.init(e),t},ws.prototype.fire=function(e,t){var n,i,o,r;if(r=bs.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 xs?t:this.createEvent(t),r[0]=n;var s=n.type;e!==s&&(n.type=e);try{o=this._invokeListeners(n,r,i)}finally{e!==s&&(n.type=s)}return void 0===o&&n.defaultPrevented&&(o=!1),o}},ws.prototype.handleError=function(e){return!1===this.fire("error",{error:e})},ws.prototype._destroy=function(){this._listeners={}},ws.prototype._invokeListeners=function(e,t,n){for(var i;n&&!e.cancelBubble;)i=this._invokeListener(e,t,n),n=n.next;return i},ws.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},ws.prototype._addListener=function(e,t){var n,i=this._getListeners(e);if(i){for(;i;){if(i.priority or , got "+e);n=o[1],i=o[0]}return{name:e=(i?i+":":"")+n,prefix:i,localName:n}}function Is(e){this.ns=e,this.name=e.name,this.allTypes=[],this.allTypesByName={},this.properties=[],this.propertiesByName={}}function Fs(e,t){this.packageMap={},this.typeMap={},this.packages=[],this.properties=t,V(e,le(this.registerPackage,this))}function $s(e,t,n){var i=t[n];if(i in e)throw new Error("package with "+n+" <"+i+"> already defined")}function js(e){this.model=e}function qs(e,t,n){Object.defineProperty(e,t.name,{enumerable:!t.isReference,writable:!0,value:n,configurable:!0})}function Hs(e){return e.replace(/^:/,"")}function Vs(e,t={}){this.properties=new js(this),this.factory=new Ts(this,this.properties),this.registry=new Fs(e,this.properties),this.typeCache={},this.config=t}Is.prototype.build=function(){return ue(this,["ns","name","allTypes","allTypesByName","properties","propertiesByName","bodyProperty","idProperty"])},Is.prototype.addProperty=function(e,t,n){"boolean"==typeof t&&(n=t,t=void 0),this.addNamedProperty(e,!1!==n);var i=this.properties;void 0!==t?i.splice(t,0,e):i.push(e)},Is.prototype.replaceProperty=function(e,t,n){var i=e.ns,o=this.properties,r=this.propertiesByName,s=e.name!==t.name;if(e.isId){if(!t.isId)throw new Error("property <"+t.ns.name+"> must be id property to refine <"+e.ns.name+">");this.setIdProperty(t,!1)}if(e.isBody){if(!t.isBody)throw new Error("property <"+t.ns.name+"> must be body property to refine <"+e.ns.name+">");this.setBodyProperty(t,!1)}var a=o.indexOf(e);if(-1===a)throw new Error("property <"+i.name+"> not found in property list");o.splice(a,1),this.addProperty(t,n?void 0:a,s),r[i.name]=r[i.localName]=t},Is.prototype.redefineProperty=function(e,t,n){var i=e.ns.prefix,o=t.split("#"),r=zs(o[0],i),s=zs(o[1],r.prefix).name,a=this.propertiesByName[s];if(!a)throw new Error("refined property <"+s+"> not found");this.replaceProperty(a,e,n),delete e.redefines},Is.prototype.addNamedProperty=function(e,t){var n=e.ns,i=this.propertiesByName;t&&(this.assertNotDefined(e,n.name),this.assertNotDefined(e,n.localName)),i[n.name]=i[n.localName]=e},Is.prototype.removeNamedProperty=function(e){var t=e.ns,n=this.propertiesByName;delete n[t.name],delete n[t.localName]},Is.prototype.setBodyProperty=function(e,t){if(t&&this.bodyProperty)throw new Error("body property defined multiple times (<"+this.bodyProperty.ns.name+">, <"+e.ns.name+">)");this.bodyProperty=e},Is.prototype.setIdProperty=function(e,t){if(t&&this.idProperty)throw new Error("id property defined multiple times (<"+this.idProperty.ns.name+">, <"+e.ns.name+">)");this.idProperty=e},Is.prototype.assertNotTrait=function(e){if((e.extends||[]).length)throw new Error(`cannot create <${e.name}> extending <${e.extends}>`)},Is.prototype.assertNotDefined=function(e,t){var n=e.name,i=this.propertiesByName[n];if(i)throw new Error("property <"+n+"> already defined; override of <"+i.definedBy.ns.name+"#"+i.ns.name+"> by <"+e.definedBy.ns.name+"#"+e.ns.name+"> not allowed without redefines")},Is.prototype.hasProperty=function(e){return this.propertiesByName[e]},Is.prototype.addTrait=function(e,t){t&&this.assertNotTrait(e);var n=this.allTypesByName,i=this.allTypes,o=e.name;o in n||(V(e.properties,le((function(n){n=ce({},n,{name:n.ns.localName,inherited:t}),Object.defineProperty(n,"definedBy",{value:e});var i=n.replaces,o=n.redefines;i||o?this.redefineProperty(n,i||o,i):(n.isBody&&this.setBodyProperty(n),n.isId&&this.setIdProperty(n),this.addProperty(n))}),this)),i.push(e),n[o]=e)},Fs.prototype.getPackage=function(e){return this.packageMap[e]},Fs.prototype.getPackages=function(){return this.packages},Fs.prototype.registerPackage=function(e){e=ce({},e);var t=this.packageMap;$s(t,e,"prefix"),$s(t,e,"uri"),V(e.types,le((function(t){this.registerType(t,e)}),this)),t[e.uri]=t[e.prefix]=e,this.packages.push(e)},Fs.prototype.registerType=function(e,t){var n=zs((e=ce({},e,{superClass:(e.superClass||[]).slice(),extends:(e.extends||[]).slice(),properties:(e.properties||[]).slice(),meta:ce(e.meta||{})})).name,t.prefix),i=n.name,o={};V(e.properties,le((function(e){var t=zs(e.name,n.prefix),i=t.name;Ls(e.type)||(e.type=zs(e.type,t.prefix).name),ce(e,{ns:t,name:i}),o[i]=e}),this)),ce(e,{ns:n,name:i,propertiesByName:o}),V(e.extends,le((function(e){var t=zs(e,n.prefix),o=this.typeMap[t.name];o.traits=o.traits||[],o.traits.push(i)}),this)),this.definePackage(e,t),this.typeMap[i]=e},Fs.prototype.mapTypes=function(e,t,n){var i=Ls(e.name)?{name:e.name}:this.typeMap[e.name],o=this;function r(n,i){var r=zs(n,Ls(n)?"":e.prefix);o.mapTypes(r,t,i)}function s(e){return r(e,!0)}if(!i)throw new Error("unknown type <"+e.name+">");V(i.superClass,n?s:function(e){return r(e,!1)}),t(i,!n),V(i.traits,s)},Fs.prototype.getEffectiveDescriptor=function(e){var t=zs(e),n=new Is(t);this.mapTypes(t,(function(e,t){n.addTrait(e,t)}));var i=n.build();return this.definePackage(i,i.allTypes[i.allTypes.length-1].$pkg),i},Fs.prototype.definePackage=function(e,t){this.properties.define(e,"$pkg",{value:t})},js.prototype.set=function(e,t,n){if(!F(t)||!t.length)throw new TypeError("property name must be a non-empty string");var i=this.getProperty(e,t),o=i&&i.name;void 0===n?i?delete e[o]:delete e.$attrs[Hs(t)]:i?o in e?e[o]=n:qs(e,i,n):e.$attrs[Hs(t)]=n},js.prototype.get=function(e,t){var n=this.getProperty(e,t);if(!n)return e.$attrs[Hs(t)];var i=n.name;return!e[i]&&n.isMany&&qs(e,n,[]),e[i]},js.prototype.define=function(e,t,n){if(!n.writable){var i=n.value;delete(n=ce({},n,{get:function(){return i}})).value}Object.defineProperty(e,t,n)},js.prototype.defineDescriptor=function(e,t){this.define(e,"$descriptor",{value:t})},js.prototype.defineModel=function(e,t){this.define(e,"$model",{value:t})},js.prototype.getProperty=function(e,t){var n=this.model,i=n.getPropertyDescriptor(e,t);if(i)return i;if(t.includes(":"))return null;const o=n.config.strict;if(void 0!==o){const n=new TypeError(`unknown property <${t}> on <${e.$type}>`);if(o)throw n;"undefined"!=typeof console&&console.warn(n)}return null},Vs.prototype.create=function(e,t){var n=this.getType(e);if(!n)throw new Error("unknown type <"+e+">");return new n(t)},Vs.prototype.getType=function(e){var t=this.typeCache,n=F(e)?e:e.ns.name,i=t[n];return i||(e=this.registry.getEffectiveDescriptor(n),i=t[n]=this.factory.createType(e)),i},Vs.prototype.createAny=function(e,t,n){var i=zs(e),o={$type:e,$instanceOf:function(e){return e===this.$type},get:function(e){return this[e]},set:function(e,t){he(this,[e],t)}},r={name:e,isGeneric:!0,ns:{prefix:i.prefix,localName:i.localName,uri:t}};return this.properties.defineDescriptor(o,r),this.properties.defineModel(o,this),this.properties.define(o,"get",{enumerable:!1,writable:!0}),this.properties.define(o,"set",{enumerable:!1,writable:!0}),this.properties.define(o,"$parent",{enumerable:!1,writable:!0}),this.properties.define(o,"$instanceOf",{enumerable:!1,writable:!0}),V(n,(function(e,t){N(e)&&void 0!==e.value?o[e.name]=e.value:o[t]=e})),o},Vs.prototype.getPackage=function(e){return this.registry.getPackage(e)},Vs.prototype.getPackages=function(){return this.registry.getPackages()},Vs.prototype.getElementDescriptor=function(e){return e.$descriptor},Vs.prototype.hasType=function(e,t){return void 0===t&&(t=e,e=this),t in e.$model.getElementDescriptor(e).allTypesByName},Vs.prototype.getPropertyDescriptor=function(e,t){return this.getElementDescriptor(e).propertiesByName[t]},Vs.prototype.getTypeDescriptor=function(e){return this.registry.typeMap[e]};var Ws=String.fromCharCode,Gs=Object.prototype.hasOwnProperty,Qs=/&#(\d+);|&#x([0-9a-f]+);|&(\w+);/gi,Xs={amp:"&",apos:"'",gt:">",lt:"<",quot:'"'};function Us(e,t,n,i){return i?Gs.call(Xs,i)?Xs[i]:"&"+i+";":Ws(t||parseInt(n,16))}function Ys(e){return e.length>3&&-1!==e.indexOf("&")?e.replace(Qs,Us):e}Object.keys(Xs).forEach((function(e){Xs[e.toUpperCase()]=Xs[e]}));var Ks="xsi:type",Zs="non-whitespace outside of root node";function Js(e){return new Error(e)}function ea(e){return"missing namespace for prefix <"+e+">"}function ta(e){return{get:e,enumerable:!0}}function na(e){var t,n={};for(t in e)n[t]=e[t];return n}function ia(e){return e+"$uri"}function oa(){return{line:0,column:0}}function ra(e){throw e}function sa(e){if(!this)return new sa(e);var t,n,i,o,r,s,a,l,c,h=e&&e.proxy,u=ra,p=oa,d=!1,f=!1,m=null,g=!1;function v(e){e instanceof Error||(e=Js(e)),m=e,u(e,p)}function y(e){r&&(e instanceof Error||(e=Js(e)),r(e,p))}this.on=function(e,c){if("function"!=typeof c)throw Js("required args ");switch(e){case"openTag":n=c;break;case"text":t=c;break;case"closeTag":i=c;break;case"error":u=c;break;case"warn":r=c;break;case"cdata":o=c;break;case"attention":l=c;break;case"question":a=c;break;case"comment":s=c;break;default:throw Js("unsupported event: "+e)}return this},this.ns=function(e){if(void 0===e&&(e={}),"object"!=typeof e)throw Js("required args ");var t,n={};for(t in e)n[t]=e[t];return n["http://www.w3.org/2001/XMLSchema-instance"]="xsi",f=!0,c=n,this},this.parse=function(e){if("string"!=typeof e)throw Js("required args ");return m=null,function(e){var r,u,m,b,w,x,_,E,k,S,C,O=f?[]:null,P=f?function(e){var t,n,i={};for(t in e)i[n=e[t]]=n,i[ia(n)]=t;return i}(c):null,M=[],A=0,T=!1,B=!1,R=0,D=0,L="",N=0;function z(){if(null!==C)return C;var e,t,n,i,o,r,s,a,l,h,u,p=f&&P.xmlns,m=f&&d?[]:null,g=N,v=L,b=v.length,w={},x={};e:for(;g8)){for((h<65||h>122||h>90&&h<97)&&95!==h&&58!==h&&(y("illegal first char attribute name"),l=!0),u=g+1;u96&&h<123||h>64&&h<91||h>47&&h<59||46===h||45===h||95===h)){if(32===h||h<14&&h>8){y("missing attribute value"),g=u;continue e}if(61===h)break;y("illegal attribute name char"),l=!0}if("xmlns:xmlns"===(a=v.substring(g,u))&&(y("illegal declaration of xmlns"),l=!0),34===(h=v.charCodeAt(u+1)))-1===(u=v.indexOf('"',g=u+2))&&-1!==(u=v.indexOf("'",g))&&(y("attribute value quote missmatch"),l=!0);else if(39===h)-1===(u=v.indexOf("'",g=u+2))&&-1!==(u=v.indexOf('"',g))&&(y("attribute value quote missmatch"),l=!0);else for(y("missing attribute value quotes"),l=!0,u+=1;u8);u++);for(-1===u&&(y("missing closing quotes"),u=b,l=!0),l||(r=v.substring(g,u)),g=u;u+18);u++)g===u&&(y("illegal character after attribute end"),l=!0);if(g=u+1,!l)if(a in x)y("attribute <"+a+"> already defined");else if(x[a]=!0,f)if(d){if(null!==(o="xmlns"===a?"xmlns":120===a.charCodeAt(0)&&"xmlns:"===a.substr(0,6)?a.substr(6):null)){if(e=Ys(r),t=ia(o),!(s=c[e])){if("xmlns"===o||t in P&&P[t]!==e)do{s="ns"+A++}while(void 0!==P[s]);else s=o;c[e]=s}P[o]!==s&&(i||(P=na(P),i=!0),P[o]=s,"xmlns"===o&&(P[ia(s)]=e,p=s),P[t]=e),w[a]=r;continue}m.push(a,r)}else-1!==(h=a.indexOf(":"))?(n=P[a.substring(0,h)])?((a=p===n?a.substr(h+1):n+a.substr(h))===Ks&&(-1!==(h=r.indexOf(":"))?(n=r.substring(0,h),r=(n=P[n]||n)+r.substring(h)):r=p+":"+r),w[a]=r):y(ea(a.substring(0,h))):w[a]=r;else w[a]=r}if(d)for(g=0,b=m.length;g=s&&(t=i.exec(e))&&!((a=t[0].length+t.index)>R);)o+=1,s=a;return-1==R?(r=a,n=e.substring(D)):0===D?n=e.substring(D,R):(r=R-s,n=-1==D?e.substring(R):e.substring(R,D+1)),{data:n,line:o,column:r}},h&&(S=Object.create({},{name:ta((function(){return E})),originalName:ta((function(){return k})),attrs:ta(z),ns:ta((function(){return P}))}));-1!==D;){if(-1===(R=60===e.charCodeAt(D)?D:e.indexOf("<",D)))return M.length?v("unexpected end of file"):0===D?v("missing start tag"):void(D",R)))return v("unclosed cdata");if(o&&(o(e.substring(R+9,D),p),g))return;D+=3;continue}if(45===b&&45===e.charCodeAt(R+3)){if(-1===(D=e.indexOf("--\x3e",R)))return v("unclosed comment");if(s&&(s(e.substring(R+4,D),Ys,p),g))return;D+=3;continue}}if(63!==w){for(u=R+1;;u++){if(x=e.charCodeAt(u),isNaN(x))return D=-1,v("unclosed tag");if(34===x)u=-1!==(b=e.indexOf('"',u+1))?b:u;else if(39===x)u=-1!==(b=e.indexOf("'",u+1))?b:u;else if(62===x){D=u;break}}if(33!==w){if(C={},47===w){if(T=!1,B=!0,!M.length)return v("missing open tag");if(u=E=M.pop(),b=R+2+u.length,e.substring(R+2,b)!==u)return v("closing tag mismatch");for(;b8&&w<14))return v("close tag")}else{if(47===e.charCodeAt(D-1)?(u=E=e.substring(R+1,D-1),T=!0,B=!0):(u=E=e.substring(R+1,D),T=!0,B=!1),!(w>96&&w<123||w>64&&w<91||95===w||58===w))return v("illegal first char nodeName");for(b=1,m=u.length;b96&&w<123||w>64&&w<91||w>47&&w<59||45===w||95===w||46==w)){if(32===w||w<14&&w>8){E=u.substring(0,b),C=null;break}return v("invalid nodeName")}B||M.push(E)}if(f){if(r=P,T&&(B||O.push(r),null===C&&(d=-1!==u.indexOf("xmlns",b))&&(N=b,L=u,z(),d=!1)),k=E,-1!==(w=E.indexOf(":"))){if(!(_=P[E.substring(0,w)]))return v("missing namespace on <"+k+">");E=E.substr(w+1)}else _=P.xmlns;_&&(E=_+":"+E)}if(T&&(N=b,L=u,n&&(h?n(S,Ys,B,p):n(E,z,Ys,B,p),g)))return;if(B){if(i&&(i(h?S:E,Ys,T,p),g))return;f&&(P=T?r:O.pop())}D+=1}else{if(l&&(l(e.substring(R,D+1),Ys,p),g))return;D+=1}}else{if(-1===(D=e.indexOf("?>",R)))return v("unclosed question");if(a&&(a(e.substring(R,D+2),p),g))return;D+=2}}}(e),p=oa,g=!1,m},this.stop=function(){g=!0}}function aa(e){return e.xml&&"lowerCase"===e.xml.tagAlias}var la={xsi:"http://www.w3.org/2001/XMLSchema-instance",xml:"http://www.w3.org/XML/1998/namespace"},ca="xsi:type";function ha(e){return e.xml&&e.xml.serialize}function ua(e){return ha(e)===ca}function pa(e,t){return aa(t)?e.prefix+":"+((n=e.localName).charAt(0).toUpperCase()+n.slice(1)):e.name;var n}function da(e){return new Error(e)}function fa(e){return e.$descriptor}function ma(e){ce(this,e),this.elementsById={},this.references=[],this.warnings=[],this.addReference=function(e){this.references.push(e)},this.addElement=function(e){if(!e)throw da("expected element");var t,n=this.elementsById,i=fa(e).idProperty;if(i&&(t=e.get(i.name))){if(!/^([a-z][\w-.]*:)?[a-z_][\w-.]*$/i.test(t))throw new Error("illegal ID <"+t+">");if(n[t])throw da("duplicate ID <"+t+">");n[t]=e}},this.addWarning=function(e){this.warnings.push(e)}}function ga(){}function va(){}function ya(){}function ba(e,t){this.property=e,this.context=t}function wa(e,t){this.element=t,this.propertyDesc=e}function xa(){}function _a(e,t,n){this.model=e,this.type=e.getType(t),this.context=n}function Ea(e,t,n){_a.call(this,e,t,n)}function ka(e,t,n){this.model=e,this.context=n}function Sa(e){e instanceof Vs&&(e={model:e}),ce(this,{lax:!1},e)}ga.prototype.handleEnd=function(){},ga.prototype.handleText=function(){},ga.prototype.handleNode=function(){},va.prototype=Object.create(ga.prototype),va.prototype.handleNode=function(){return this},ya.prototype=Object.create(ga.prototype),ya.prototype.handleText=function(e){this.body=(this.body||"")+e},ba.prototype=Object.create(ya.prototype),ba.prototype.handleNode=function(e){if(this.element)throw da("expected no sub nodes");return this.element=this.createReference(e),this},ba.prototype.handleEnd=function(){this.element.id=this.body},ba.prototype.createReference=function(e){return{property:this.property.ns.name,id:""}},wa.prototype=Object.create(ya.prototype),wa.prototype.handleEnd=function(){var e=this.body||"",t=this.element,n=this.propertyDesc;e=Ds(n.type,e),n.isMany?t.get(n.name).push(e):t.set(n.name,e)},xa.prototype=Object.create(ya.prototype),xa.prototype.handleNode=function(e){var t=this,n=this.element;return n?t=this.handleChild(e):(n=this.element=this.createElement(e),this.context.addElement(n)),t},_a.prototype=Object.create(xa.prototype),_a.prototype.addReference=function(e){this.context.addReference(e)},_a.prototype.handleText=function(e){if(!fa(this.element).bodyProperty)throw da("unexpected body text <"+e+">");ya.prototype.handleText.call(this,e)},_a.prototype.handleEnd=function(){var e=this.body,t=this.element,n=fa(t).bodyProperty;n&&void 0!==e&&(e=Ds(n.type,e),t.set(n.name,e))},_a.prototype.createElement=function(e){var t,n=e.attributes,i=this.type,o=fa(i),r=this.context,s=new i({}),a=this.model;return V(n,(function(e,n){var i=o.propertiesByName[n];i&&i.isReference?i.isMany?V(e.split(" "),(function(e){r.addReference({element:s,property:i.ns.name,id:e})})):r.addReference({element:s,property:i.ns.name,id:e}):(i?e=Ds(i.type,e):"xmlns"!==n&&(t=zs(n,o.ns.prefix),a.getPackage(t.prefix)&&r.addWarning({message:"unknown attribute <"+n+">",element:s,property:n,value:e})),s.set(n,e))})),s},_a.prototype.getPropertyForNode=function(e){var t,n,i=zs(e.name),o=this.type,r=this.model,s=fa(o),a=i.name,l=s.propertiesByName[a];if(l&&!l.isAttr)return ua(l)&&(t=e.attributes[ca])?(t=function(e,t){var n=zs(e);return function(e,t){var n=e.name,i=e.localName,o=t.xml&&t.xml.typePrefix;return o&&0===i.indexOf(o)?e.prefix+":"+i.slice(o.length):n}(n,t.getPackage(n.prefix))}(t,r),ce({},l,{effectiveType:fa(n=r.getType(t)).name})):l;var c=r.getPackage(i.prefix);if(c){if(t=pa(i,c),n=r.getType(t),l=j(s.properties,(function(e){return!e.isVirtual&&!e.isReference&&!e.isAttribute&&n.hasType(e.type)})),l)return ce({},l,{effectiveType:fa(n).name})}else if(l=j(s.properties,(function(e){return!e.isReference&&!e.isAttribute&&"Element"===e.type})),l)return l;throw da("unrecognized element <"+i.name+">")},_a.prototype.toString=function(){return"ElementDescriptor["+fa(this.type).name+"]"},_a.prototype.valueHandler=function(e,t){return new wa(e,t)},_a.prototype.referenceHandler=function(e){return new ba(e,this.context)},_a.prototype.handler=function(e){return"Element"===e?new ka(this.model,e,this.context):new _a(this.model,e,this.context)},_a.prototype.handleChild=function(e){var t,n,i,o;if(t=this.getPropertyForNode(e),i=this.element,Ns(n=t.effectiveType||t.type))return this.valueHandler(t,i);var r=(o=t.isReference?this.referenceHandler(t).handleNode(e):this.handler(n).handleNode(e)).element;return void 0!==r&&(t.isMany?i.get(t.name).push(r):i.set(t.name,r),t.isReference?(ce(r,{element:i}),this.context.addReference(r)):r.$parent=i),o},Ea.prototype=Object.create(_a.prototype),Ea.prototype.createElement=function(e){var t=e.name,n=zs(t),i=this.model,o=this.type,r=i.getPackage(n.prefix),s=r&&pa(n,r)||t;if(!o.hasType(s))throw da("unexpected element <"+e.originalName+">");return _a.prototype.createElement.call(this,e)},ka.prototype=Object.create(xa.prototype),ka.prototype.createElement=function(e){var t=e.name,n=zs(t).prefix,i=e.ns[n+"$uri"],o=e.attributes;return this.model.createAny(t,i,o)},ka.prototype.handleChild=function(e){var t=new ka(this.model,"Element",this.context).handleNode(e),n=this.element,i=t.element;return void 0!==i&&((n.$children=n.$children||[]).push(i),i.$parent=n),t},ka.prototype.handleEnd=function(){this.body&&(this.element.$body=this.body)},Sa.prototype.fromXML=function(e,t,n){var i=t.rootHandler;t instanceof _a?(i=t,t={}):"string"==typeof t?(i=this.handler(t),t={}):"string"==typeof i&&(i=this.handler(i));var o=this.model,r=this.lax,s=new ma(ce({},t,{rootHandler:i})),a=new sa({proxy:!0}),l=function(){var e=[];return Object.defineProperty(e,"peek",{value:function(){return this[this.length-1]}}),e}();function c(e,t,n){var i=t(),o=i.line,r=i.column,a=i.data;"<"===a.charAt(0)&&-1!==a.indexOf(" ")&&(a=a.slice(0,a.indexOf(" "))+">");var l="unparsable content "+(a?a+" ":"")+"detected\n\tline: "+o+"\n\tcolumn: "+r+"\n\tnested error: "+e.message;if(n)return s.addWarning({message:l,error:e}),!0;throw da(l)}function h(e,t){return c(e,t,!0)}i.context=s,l.push(i);var u=/^<\?xml /i,p=/ encoding="([^"]+)"/i,d=/^utf-8$/i;function f(e,t){try{l.peek().handleText(e)}catch(e){h(e,t)}}var m=o.getPackages().reduce((function(e,t){return e[t.uri]=t.prefix,e}),{"http://www.w3.org/XML/1998/namespace":"xml"});return a.ns(m).on("openTag",(function(e,t,n,i){var o=e.attrs||{},s=Object.keys(o).reduce((function(e,n){var i=t(o[n]);return e[n]=i,e}),{});!function(e,t){var n=l.peek();try{l.push(n.handleNode(e))}catch(e){c(e,t,r)&&l.push(new va)}}({name:e.name,originalName:e.originalName,attributes:s,ns:e.ns},i)})).on("question",(function(e){if(u.test(e)){var t=p.exec(e),n=t&&t[1];n&&!d.test(n)&&s.addWarning({message:"unsupported document encoding <"+n+">, falling back to UTF-8"})}})).on("closeTag",(function(){l.pop().handleEnd()})).on("cdata",f).on("text",(function(e,t,n){!function(e,t){e.trim()&&f(e,t)}(t(e),n)})).on("error",c).on("warn",h),new Promise((function(t,n){var o;try{a.parse(e),function(){var e,t,n=s.elementsById,i=s.references;for(e=0;t=i[e];e++){var o=t.element,r=n[t.id],a=fa(o).propertiesByName[t.property];if(r||s.addWarning({message:"unresolved reference <"+t.id+">",element:t.element,property:t.property,value:t.id}),a.isMany){var l=o.get(a.name),c=l.indexOf(t);-1===c&&(c=l.length),r?l[c]=r:l.splice(c,1)}else o.set(a.name,r)}}()}catch(e){o=e}var r=i.element;o||r||(o=da("failed to parse document as <"+i.type.$descriptor.name+">"));var l=s.warnings,c=s.references,h=s.elementsById;return o?(o.warnings=l,n(o)):t({rootElement:r,elementsById:h,references:c,warnings:l})}))},Sa.prototype.handler=function(e){return new Ea(this.model,e)};var Ca=/<|>|'|"|&|\n\r|\n/g,Oa=/<|>|&/g;function Pa(e){var t={},n={},i={},o=[],r=[];this.byUri=function(t){return n[t]||e&&e.byUri(t)},this.add=function(e,t){n[e.uri]=e,t?o.push(e):r.push(e),this.mapPrefix(e.prefix,e.uri)},this.uriByPrefix=function(e){return t[e||"xmlns"]},this.mapPrefix=function(e,n){t[e||"xmlns"]=n},this.getNSKey=function(e){return void 0!==e.prefix?e.uri+"|"+e.prefix:e.uri},this.logUsed=function(t){var n=t.uri,o=this.getNSKey(t);i[o]=this.byUri(n),e&&e.logUsed(t)},this.getUsed=function(e){var t=this;return[].concat(o,r).filter((function(e){var n=t.getNSKey(e);return i[n]}))}}function Ma(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}function Aa(e){return F(e)?e:(e.prefix?e.prefix+":":"")+e.localName}var Ta={"\n":"#10","\n\r":"#10",'"':"#34","'":"#39","<":"#60",">":"#62","&":"#38"},Ba={"<":"lt",">":"gt","&":"amp"};function Ra(e,t,n){return(e=F(e)?e:""+e).replace(t,(function(e){return"&"+n[e]+";"}))}function Da(e){this.tagName=e}function La(){}function Na(e){this.tagName=e}function za(e,t){this.body=[],this.attrs=[],this.parent=e,this.propertyDescriptor=t}function Ia(e,t){za.call(this,e,t)}function Fa(){this.value="",this.write=function(e){this.value+=e}}function $a(e,t){var n=[""];this.append=function(t){return e.write(t),this},this.appendNewLine=function(){return t&&e.write("\n"),this},this.appendIndent=function(){return t&&e.write(n.join(" ")),this},this.indent=function(){return n.push(""),this},this.unindent=function(){return n.pop(),this}}function ja(e){return e=ce({format:!1,preamble:!0},e||{}),{toXML:function(t,n){var i=n||new Fa,o=new $a(i,e.format);if(e.preamble&&o.append('\n'),(new za).build(t).serializeTo(o),!n)return i.value}}}function qa(e,t){Vs.call(this,e,t)}Da.prototype.build=function(e){return this.element=e,this},Da.prototype.serializeTo=function(e){e.appendIndent().append("<"+this.tagName+">"+this.element.id+"").appendNewLine()},La.prototype.serializeValue=La.prototype.serializeTo=function(e){e.append(this.escape?Ra(this.value,Oa,Ba):this.value)},La.prototype.build=function(e,t){return this.value=t,"String"===e.type&&-1!==t.search(Oa)&&(this.escape=!0),this},Ma(Na,La),Na.prototype.serializeTo=function(e){e.appendIndent().append("<"+this.tagName+">"),this.serializeValue(e),e.append("").appendNewLine()},za.prototype.build=function(e){this.element=e;var t,n,i=e.$descriptor,o=this.propertyDescriptor,r=i.isGeneric;return t=r?this.parseGeneric(e):this.parseNsAttributes(e),this.ns=o?this.nsPropertyTagName(o):this.nsTagName(i),this.tagName=this.addTagName(this.ns),r||(n=function(e){return H(e.$descriptor.properties,(function(t){var n=t.name;if(t.isVirtual)return!1;if(!$(e,n))return!1;var i=e[n];return i!==t.default&&null!==i&&(!t.isMany||i.length)}))}(e),this.parseAttributes(H(n,(function(e){return e.isAttr}))),this.parseContainments(H(n,(function(e){return!e.isAttr})))),this.parseGenericAttributes(e,t),this},za.prototype.nsTagName=function(e){return function(e,t){return t.isGeneric?ce({localName:t.ns.localName},e):ce({localName:(n=t.ns.localName,i=t.$pkg,aa(i)?function(e){return e.charAt(0).toLowerCase()+e.slice(1)}(n):n)},e);var n,i}(this.logNamespaceUsed(e.ns),e)},za.prototype.nsPropertyTagName=function(e){return function(e,t){return ce({localName:t.ns.localName},e)}(this.logNamespaceUsed(e.ns),e)},za.prototype.isLocalNs=function(e){return e.uri===this.ns.uri},za.prototype.nsAttributeName=function(e){var t;if(t=F(e)?zs(e):e.ns,e.inherited)return{localName:t.localName};var n=this.logNamespaceUsed(t);return this.getNamespaces().logUsed(n),this.isLocalNs(n)?{localName:t.localName}:ce({localName:t.localName},n)},za.prototype.parseGeneric=function(e){var t=this,n=this.body,i=[];return V(e,(function(o,r){"$body"===r?n.push((new La).build({type:"String"},o)):"$children"===r?V(o,(function(e){n.push(new za(t).build(e))})):0!==r.indexOf("$")&&t.parseNsAttribute(e,r,o)&&i.push({name:r,value:o})})),i},za.prototype.parseNsAttribute=function(e,t,n){var i,o=e.$model,r=zs(t);if("xmlns"===r.prefix&&(i={prefix:r.localName,uri:n}),r.prefix||"xmlns"!==r.localName||(i={uri:n}),!i)return{name:t,value:n};if(o&&o.getPackage(n))this.logNamespace(i,!0,!0);else{var s=this.logNamespaceUsed(i,!0);this.getNamespaces().logUsed(s)}},za.prototype.parseNsAttributes=function(e,t){var n=this,i=e.$attrs,o=[];return V(i,(function(t,i){var r=n.parseNsAttribute(e,i,t);r&&o.push(r)})),o},za.prototype.parseGenericAttributes=function(e,t){var n=this;V(t,(function(t){if(t.name!==ca)try{n.addAttribute(n.nsAttributeName(t.name),t.value)}catch(n){console.warn("missing namespace information for ",t.name,"=",t.value,"on",e,n)}}))},za.prototype.parseContainments=function(e){var t=this,n=this.body,i=this.element;V(e,(function(e){var o=i.get(e.name),r=e.isReference;if(e.isMany||(o=[o]),e.isBody)n.push((new La).build(e,o[0]));else if(Ns(e.type))V(o,(function(i){n.push(new Na(t.addTagName(t.nsPropertyTagName(e))).build(e,i))}));else if(r)V(o,(function(i){n.push(new Da(t.addTagName(t.nsPropertyTagName(e))).build(i))}));else{var s=ua(e),a=function(e){return"property"===ha(e)}(e);V(o,(function(i){var o;o=s?new Ia(t,e):a?new za(t,e):new za(t),n.push(o.build(i))}))}}))},za.prototype.getNamespaces=function(e){var t,n=this.namespaces,i=this.parent;return n||(t=i&&i.getNamespaces(),e||!t?this.namespaces=n=new Pa(t):n=t),n},za.prototype.logNamespace=function(e,t,n){var i=this.getNamespaces(n),o=e.uri,r=e.prefix;return i.byUri(o)&&!n||i.add(e,t),i.mapPrefix(r,o),e},za.prototype.logNamespaceUsed=function(e,t){var n,i,o,r=this.element.$model,s=this.getNamespaces(t),a=e.prefix,l=e.uri;if(!a&&!l)return{localName:e.localName};if(o=la[a]||r&&(r.getPackage(a)||{}).uri,!(l=l||o||s.uriByPrefix(a)))throw new Error("no namespace uri given for prefix <"+a+">");if(!(e=s.byUri(l))){for(n=a,i=1;s.uriByPrefix(n);)n=a+"_"+i++;e=this.logNamespace({prefix:n,uri:l},o===l)}return a&&s.mapPrefix(a,l),e},za.prototype.parseAttributes=function(e){var t=this,n=this.element;V(e,(function(e){var i=n.get(e.name);if(e.isReference)if(e.isMany){var o=[];V(i,(function(e){o.push(e.id)})),i=o.join(" ")}else i=i.id;t.addAttribute(t.nsAttributeName(e),i)}))},za.prototype.addTagName=function(e){var t=this.logNamespaceUsed(e);return this.getNamespaces().logUsed(t),Aa(e)},za.prototype.addAttribute=function(e,t){var n=this.attrs;F(t)&&(t=Ra(t,Ca,Ta));var i=q(n,(function(t){return t.name.localName===e.localName&&t.name.uri===e.uri&&t.name.prefix===e.prefix})),o={name:e,value:t};-1!==i?n.splice(i,1,o):n.push(o)},za.prototype.serializeAttributes=function(e){var t=this.attrs,n=this.namespaces;n&&(t=function(e){return e.getUsed().filter((function(e){return"xml"!==e.prefix})).map((function(e){return{name:"xmlns"+(e.prefix?":"+e.prefix:""),value:e.uri}}))}(n).concat(t)),V(t,(function(t){e.append(" ").append(Aa(t.name)).append('="').append(t.value).append('"')}))},za.prototype.serializeTo=function(e){var t=this.body[0],n=t&&t.constructor!==La;e.appendIndent().append("<"+this.tagName),this.serializeAttributes(e),e.append(t?">":" />"),t&&(n&&e.appendNewLine().indent(),V(this.body,(function(t){t.serializeTo(e)})),n&&e.unindent().appendIndent(),e.append("")),e.appendNewLine()},Ma(Ia,za),Ia.prototype.parseNsAttributes=function(e){var t=za.prototype.parseNsAttributes.call(this,e),n=e.$descriptor;if(n.name===this.propertyDescriptor.type)return t;var i=this.typeNs=this.nsTagName(n);this.getNamespaces().logUsed(this.typeNs);var o=e.$model.getPackage(i.uri),r=o.xml&&o.xml.typePrefix||"";return this.addAttribute(this.nsAttributeName(ca),(i.prefix?i.prefix+":":"")+r+n.ns.localName),t},Ia.prototype.isLocalNs=function(e){return e.uri===(this.typeNs||this.ns).uri},qa.prototype=Object.create(Vs.prototype),qa.prototype.fromXML=function(e,t,n){F(t)||(n=t,t="bpmn:Definitions");var i=new Sa(ce({model:this,lax:!0},n)),o=i.handler(t);return i.fromXML(e,o)},qa.prototype.toXML=function(e,t){var n=new ja(t);return new Promise((function(t,i){try{return t({xml:n.toXML(e)})}catch(e){return i(e)}}))};var Ha={bpmn:{name:"BPMN20",uri:"http://www.omg.org/spec/BPMN/20100524/MODEL",prefix:"bpmn",associations:[],types:[{name:"Interface",superClass:["RootElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"operations",type:"Operation",isMany:!0},{name:"implementationRef",isAttr:!0,type:"String"}]},{name:"Operation",superClass:["BaseElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"inMessageRef",type:"Message",isReference:!0},{name:"outMessageRef",type:"Message",isReference:!0},{name:"errorRef",type:"Error",isMany:!0,isReference:!0},{name:"implementationRef",isAttr:!0,type:"String"}]},{name:"EndPoint",superClass:["RootElement"]},{name:"Auditing",superClass:["BaseElement"]},{name:"GlobalTask",superClass:["CallableElement"],properties:[{name:"resources",type:"ResourceRole",isMany:!0}]},{name:"Monitoring",superClass:["BaseElement"]},{name:"Performer",superClass:["ResourceRole"]},{name:"Process",superClass:["FlowElementsContainer","CallableElement"],properties:[{name:"processType",type:"ProcessType",isAttr:!0},{name:"isClosed",isAttr:!0,type:"Boolean"},{name:"auditing",type:"Auditing"},{name:"monitoring",type:"Monitoring"},{name:"properties",type:"Property",isMany:!0},{name:"laneSets",isMany:!0,replaces:"FlowElementsContainer#laneSets",type:"LaneSet"},{name:"flowElements",isMany:!0,replaces:"FlowElementsContainer#flowElements",type:"FlowElement"},{name:"artifacts",type:"Artifact",isMany:!0},{name:"resources",type:"ResourceRole",isMany:!0},{name:"correlationSubscriptions",type:"CorrelationSubscription",isMany:!0},{name:"supports",type:"Process",isMany:!0,isReference:!0},{name:"definitionalCollaborationRef",type:"Collaboration",isAttr:!0,isReference:!0},{name:"isExecutable",isAttr:!0,type:"Boolean"}]},{name:"LaneSet",superClass:["BaseElement"],properties:[{name:"lanes",type:"Lane",isMany:!0},{name:"name",isAttr:!0,type:"String"}]},{name:"Lane",superClass:["BaseElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"partitionElementRef",type:"BaseElement",isAttr:!0,isReference:!0},{name:"partitionElement",type:"BaseElement"},{name:"flowNodeRef",type:"FlowNode",isMany:!0,isReference:!0},{name:"childLaneSet",type:"LaneSet",xml:{serialize:"xsi:type"}}]},{name:"GlobalManualTask",superClass:["GlobalTask"]},{name:"ManualTask",superClass:["Task"]},{name:"UserTask",superClass:["Task"],properties:[{name:"renderings",type:"Rendering",isMany:!0},{name:"implementation",isAttr:!0,type:"String"}]},{name:"Rendering",superClass:["BaseElement"]},{name:"HumanPerformer",superClass:["Performer"]},{name:"PotentialOwner",superClass:["HumanPerformer"]},{name:"GlobalUserTask",superClass:["GlobalTask"],properties:[{name:"implementation",isAttr:!0,type:"String"},{name:"renderings",type:"Rendering",isMany:!0}]},{name:"Gateway",isAbstract:!0,superClass:["FlowNode"],properties:[{name:"gatewayDirection",type:"GatewayDirection",default:"Unspecified",isAttr:!0}]},{name:"EventBasedGateway",superClass:["Gateway"],properties:[{name:"instantiate",default:!1,isAttr:!0,type:"Boolean"},{name:"eventGatewayType",type:"EventBasedGatewayType",isAttr:!0,default:"Exclusive"}]},{name:"ComplexGateway",superClass:["Gateway"],properties:[{name:"activationCondition",type:"Expression",xml:{serialize:"xsi:type"}},{name:"default",type:"SequenceFlow",isAttr:!0,isReference:!0}]},{name:"ExclusiveGateway",superClass:["Gateway"],properties:[{name:"default",type:"SequenceFlow",isAttr:!0,isReference:!0}]},{name:"InclusiveGateway",superClass:["Gateway"],properties:[{name:"default",type:"SequenceFlow",isAttr:!0,isReference:!0}]},{name:"ParallelGateway",superClass:["Gateway"]},{name:"RootElement",isAbstract:!0,superClass:["BaseElement"]},{name:"Relationship",superClass:["BaseElement"],properties:[{name:"type",isAttr:!0,type:"String"},{name:"direction",type:"RelationshipDirection",isAttr:!0},{name:"source",isMany:!0,isReference:!0,type:"Element"},{name:"target",isMany:!0,isReference:!0,type:"Element"}]},{name:"BaseElement",isAbstract:!0,properties:[{name:"id",isAttr:!0,type:"String",isId:!0},{name:"documentation",type:"Documentation",isMany:!0},{name:"extensionDefinitions",type:"ExtensionDefinition",isMany:!0,isReference:!0},{name:"extensionElements",type:"ExtensionElements"}]},{name:"Extension",properties:[{name:"mustUnderstand",default:!1,isAttr:!0,type:"Boolean"},{name:"definition",type:"ExtensionDefinition",isAttr:!0,isReference:!0}]},{name:"ExtensionDefinition",properties:[{name:"name",isAttr:!0,type:"String"},{name:"extensionAttributeDefinitions",type:"ExtensionAttributeDefinition",isMany:!0}]},{name:"ExtensionAttributeDefinition",properties:[{name:"name",isAttr:!0,type:"String"},{name:"type",isAttr:!0,type:"String"},{name:"isReference",default:!1,isAttr:!0,type:"Boolean"},{name:"extensionDefinition",type:"ExtensionDefinition",isAttr:!0,isReference:!0}]},{name:"ExtensionElements",properties:[{name:"valueRef",isAttr:!0,isReference:!0,type:"Element"},{name:"values",type:"Element",isMany:!0},{name:"extensionAttributeDefinition",type:"ExtensionAttributeDefinition",isAttr:!0,isReference:!0}]},{name:"Documentation",superClass:["BaseElement"],properties:[{name:"text",type:"String",isBody:!0},{name:"textFormat",default:"text/plain",isAttr:!0,type:"String"}]},{name:"Event",isAbstract:!0,superClass:["FlowNode","InteractionNode"],properties:[{name:"properties",type:"Property",isMany:!0}]},{name:"IntermediateCatchEvent",superClass:["CatchEvent"]},{name:"IntermediateThrowEvent",superClass:["ThrowEvent"]},{name:"EndEvent",superClass:["ThrowEvent"]},{name:"StartEvent",superClass:["CatchEvent"],properties:[{name:"isInterrupting",default:!0,isAttr:!0,type:"Boolean"}]},{name:"ThrowEvent",isAbstract:!0,superClass:["Event"],properties:[{name:"dataInputs",type:"DataInput",isMany:!0},{name:"dataInputAssociations",type:"DataInputAssociation",isMany:!0},{name:"inputSet",type:"InputSet"},{name:"eventDefinitions",type:"EventDefinition",isMany:!0},{name:"eventDefinitionRef",type:"EventDefinition",isMany:!0,isReference:!0}]},{name:"CatchEvent",isAbstract:!0,superClass:["Event"],properties:[{name:"parallelMultiple",isAttr:!0,type:"Boolean",default:!1},{name:"dataOutputs",type:"DataOutput",isMany:!0},{name:"dataOutputAssociations",type:"DataOutputAssociation",isMany:!0},{name:"outputSet",type:"OutputSet"},{name:"eventDefinitions",type:"EventDefinition",isMany:!0},{name:"eventDefinitionRef",type:"EventDefinition",isMany:!0,isReference:!0}]},{name:"BoundaryEvent",superClass:["CatchEvent"],properties:[{name:"cancelActivity",default:!0,isAttr:!0,type:"Boolean"},{name:"attachedToRef",type:"Activity",isAttr:!0,isReference:!0}]},{name:"EventDefinition",isAbstract:!0,superClass:["RootElement"]},{name:"CancelEventDefinition",superClass:["EventDefinition"]},{name:"ErrorEventDefinition",superClass:["EventDefinition"],properties:[{name:"errorRef",type:"Error",isAttr:!0,isReference:!0}]},{name:"TerminateEventDefinition",superClass:["EventDefinition"]},{name:"EscalationEventDefinition",superClass:["EventDefinition"],properties:[{name:"escalationRef",type:"Escalation",isAttr:!0,isReference:!0}]},{name:"Escalation",properties:[{name:"structureRef",type:"ItemDefinition",isAttr:!0,isReference:!0},{name:"name",isAttr:!0,type:"String"},{name:"escalationCode",isAttr:!0,type:"String"}],superClass:["RootElement"]},{name:"CompensateEventDefinition",superClass:["EventDefinition"],properties:[{name:"waitForCompletion",isAttr:!0,type:"Boolean",default:!0},{name:"activityRef",type:"Activity",isAttr:!0,isReference:!0}]},{name:"TimerEventDefinition",superClass:["EventDefinition"],properties:[{name:"timeDate",type:"Expression",xml:{serialize:"xsi:type"}},{name:"timeCycle",type:"Expression",xml:{serialize:"xsi:type"}},{name:"timeDuration",type:"Expression",xml:{serialize:"xsi:type"}}]},{name:"LinkEventDefinition",superClass:["EventDefinition"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"target",type:"LinkEventDefinition",isReference:!0},{name:"source",type:"LinkEventDefinition",isMany:!0,isReference:!0}]},{name:"MessageEventDefinition",superClass:["EventDefinition"],properties:[{name:"messageRef",type:"Message",isAttr:!0,isReference:!0},{name:"operationRef",type:"Operation",isAttr:!0,isReference:!0}]},{name:"ConditionalEventDefinition",superClass:["EventDefinition"],properties:[{name:"condition",type:"Expression",xml:{serialize:"xsi:type"}}]},{name:"SignalEventDefinition",superClass:["EventDefinition"],properties:[{name:"signalRef",type:"Signal",isAttr:!0,isReference:!0}]},{name:"Signal",superClass:["RootElement"],properties:[{name:"structureRef",type:"ItemDefinition",isAttr:!0,isReference:!0},{name:"name",isAttr:!0,type:"String"}]},{name:"ImplicitThrowEvent",superClass:["ThrowEvent"]},{name:"DataState",superClass:["BaseElement"],properties:[{name:"name",isAttr:!0,type:"String"}]},{name:"ItemAwareElement",superClass:["BaseElement"],properties:[{name:"itemSubjectRef",type:"ItemDefinition",isAttr:!0,isReference:!0},{name:"dataState",type:"DataState"}]},{name:"DataAssociation",superClass:["BaseElement"],properties:[{name:"sourceRef",type:"ItemAwareElement",isMany:!0,isReference:!0},{name:"targetRef",type:"ItemAwareElement",isReference:!0},{name:"transformation",type:"FormalExpression",xml:{serialize:"property"}},{name:"assignment",type:"Assignment",isMany:!0}]},{name:"DataInput",superClass:["ItemAwareElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"isCollection",default:!1,isAttr:!0,type:"Boolean"},{name:"inputSetRef",type:"InputSet",isMany:!0,isVirtual:!0,isReference:!0},{name:"inputSetWithOptional",type:"InputSet",isMany:!0,isVirtual:!0,isReference:!0},{name:"inputSetWithWhileExecuting",type:"InputSet",isMany:!0,isVirtual:!0,isReference:!0}]},{name:"DataOutput",superClass:["ItemAwareElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"isCollection",default:!1,isAttr:!0,type:"Boolean"},{name:"outputSetRef",type:"OutputSet",isMany:!0,isVirtual:!0,isReference:!0},{name:"outputSetWithOptional",type:"OutputSet",isMany:!0,isVirtual:!0,isReference:!0},{name:"outputSetWithWhileExecuting",type:"OutputSet",isMany:!0,isVirtual:!0,isReference:!0}]},{name:"InputSet",superClass:["BaseElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"dataInputRefs",type:"DataInput",isMany:!0,isReference:!0},{name:"optionalInputRefs",type:"DataInput",isMany:!0,isReference:!0},{name:"whileExecutingInputRefs",type:"DataInput",isMany:!0,isReference:!0},{name:"outputSetRefs",type:"OutputSet",isMany:!0,isReference:!0}]},{name:"OutputSet",superClass:["BaseElement"],properties:[{name:"dataOutputRefs",type:"DataOutput",isMany:!0,isReference:!0},{name:"name",isAttr:!0,type:"String"},{name:"inputSetRefs",type:"InputSet",isMany:!0,isReference:!0},{name:"optionalOutputRefs",type:"DataOutput",isMany:!0,isReference:!0},{name:"whileExecutingOutputRefs",type:"DataOutput",isMany:!0,isReference:!0}]},{name:"Property",superClass:["ItemAwareElement"],properties:[{name:"name",isAttr:!0,type:"String"}]},{name:"DataInputAssociation",superClass:["DataAssociation"]},{name:"DataOutputAssociation",superClass:["DataAssociation"]},{name:"InputOutputSpecification",superClass:["BaseElement"],properties:[{name:"dataInputs",type:"DataInput",isMany:!0},{name:"dataOutputs",type:"DataOutput",isMany:!0},{name:"inputSets",type:"InputSet",isMany:!0},{name:"outputSets",type:"OutputSet",isMany:!0}]},{name:"DataObject",superClass:["FlowElement","ItemAwareElement"],properties:[{name:"isCollection",default:!1,isAttr:!0,type:"Boolean"}]},{name:"InputOutputBinding",properties:[{name:"inputDataRef",type:"InputSet",isAttr:!0,isReference:!0},{name:"outputDataRef",type:"OutputSet",isAttr:!0,isReference:!0},{name:"operationRef",type:"Operation",isAttr:!0,isReference:!0}]},{name:"Assignment",superClass:["BaseElement"],properties:[{name:"from",type:"Expression",xml:{serialize:"xsi:type"}},{name:"to",type:"Expression",xml:{serialize:"xsi:type"}}]},{name:"DataStore",superClass:["RootElement","ItemAwareElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"capacity",isAttr:!0,type:"Integer"},{name:"isUnlimited",default:!0,isAttr:!0,type:"Boolean"}]},{name:"DataStoreReference",superClass:["ItemAwareElement","FlowElement"],properties:[{name:"dataStoreRef",type:"DataStore",isAttr:!0,isReference:!0}]},{name:"DataObjectReference",superClass:["ItemAwareElement","FlowElement"],properties:[{name:"dataObjectRef",type:"DataObject",isAttr:!0,isReference:!0}]},{name:"ConversationLink",superClass:["BaseElement"],properties:[{name:"sourceRef",type:"InteractionNode",isAttr:!0,isReference:!0},{name:"targetRef",type:"InteractionNode",isAttr:!0,isReference:!0},{name:"name",isAttr:!0,type:"String"}]},{name:"ConversationAssociation",superClass:["BaseElement"],properties:[{name:"innerConversationNodeRef",type:"ConversationNode",isAttr:!0,isReference:!0},{name:"outerConversationNodeRef",type:"ConversationNode",isAttr:!0,isReference:!0}]},{name:"CallConversation",superClass:["ConversationNode"],properties:[{name:"calledCollaborationRef",type:"Collaboration",isAttr:!0,isReference:!0},{name:"participantAssociations",type:"ParticipantAssociation",isMany:!0}]},{name:"Conversation",superClass:["ConversationNode"]},{name:"SubConversation",superClass:["ConversationNode"],properties:[{name:"conversationNodes",type:"ConversationNode",isMany:!0}]},{name:"ConversationNode",isAbstract:!0,superClass:["InteractionNode","BaseElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"participantRef",type:"Participant",isMany:!0,isReference:!0},{name:"messageFlowRefs",type:"MessageFlow",isMany:!0,isReference:!0},{name:"correlationKeys",type:"CorrelationKey",isMany:!0}]},{name:"GlobalConversation",superClass:["Collaboration"]},{name:"PartnerEntity",superClass:["RootElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"participantRef",type:"Participant",isMany:!0,isReference:!0}]},{name:"PartnerRole",superClass:["RootElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"participantRef",type:"Participant",isMany:!0,isReference:!0}]},{name:"CorrelationProperty",superClass:["RootElement"],properties:[{name:"correlationPropertyRetrievalExpression",type:"CorrelationPropertyRetrievalExpression",isMany:!0},{name:"name",isAttr:!0,type:"String"},{name:"type",type:"ItemDefinition",isAttr:!0,isReference:!0}]},{name:"Error",superClass:["RootElement"],properties:[{name:"structureRef",type:"ItemDefinition",isAttr:!0,isReference:!0},{name:"name",isAttr:!0,type:"String"},{name:"errorCode",isAttr:!0,type:"String"}]},{name:"CorrelationKey",superClass:["BaseElement"],properties:[{name:"correlationPropertyRef",type:"CorrelationProperty",isMany:!0,isReference:!0},{name:"name",isAttr:!0,type:"String"}]},{name:"Expression",superClass:["BaseElement"],isAbstract:!1,properties:[{name:"body",isBody:!0,type:"String"}]},{name:"FormalExpression",superClass:["Expression"],properties:[{name:"language",isAttr:!0,type:"String"},{name:"evaluatesToTypeRef",type:"ItemDefinition",isAttr:!0,isReference:!0}]},{name:"Message",superClass:["RootElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"itemRef",type:"ItemDefinition",isAttr:!0,isReference:!0}]},{name:"ItemDefinition",superClass:["RootElement"],properties:[{name:"itemKind",type:"ItemKind",isAttr:!0},{name:"structureRef",isAttr:!0,type:"String"},{name:"isCollection",default:!1,isAttr:!0,type:"Boolean"},{name:"import",type:"Import",isAttr:!0,isReference:!0}]},{name:"FlowElement",isAbstract:!0,superClass:["BaseElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"auditing",type:"Auditing"},{name:"monitoring",type:"Monitoring"},{name:"categoryValueRef",type:"CategoryValue",isMany:!0,isReference:!0}]},{name:"SequenceFlow",superClass:["FlowElement"],properties:[{name:"isImmediate",isAttr:!0,type:"Boolean"},{name:"conditionExpression",type:"Expression",xml:{serialize:"xsi:type"}},{name:"sourceRef",type:"FlowNode",isAttr:!0,isReference:!0},{name:"targetRef",type:"FlowNode",isAttr:!0,isReference:!0}]},{name:"FlowElementsContainer",isAbstract:!0,superClass:["BaseElement"],properties:[{name:"laneSets",type:"LaneSet",isMany:!0},{name:"flowElements",type:"FlowElement",isMany:!0}]},{name:"CallableElement",isAbstract:!0,superClass:["RootElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"ioSpecification",type:"InputOutputSpecification",xml:{serialize:"property"}},{name:"supportedInterfaceRef",type:"Interface",isMany:!0,isReference:!0},{name:"ioBinding",type:"InputOutputBinding",isMany:!0,xml:{serialize:"property"}}]},{name:"FlowNode",isAbstract:!0,superClass:["FlowElement"],properties:[{name:"incoming",type:"SequenceFlow",isMany:!0,isReference:!0},{name:"outgoing",type:"SequenceFlow",isMany:!0,isReference:!0},{name:"lanes",type:"Lane",isMany:!0,isVirtual:!0,isReference:!0}]},{name:"CorrelationPropertyRetrievalExpression",superClass:["BaseElement"],properties:[{name:"messagePath",type:"FormalExpression"},{name:"messageRef",type:"Message",isAttr:!0,isReference:!0}]},{name:"CorrelationPropertyBinding",superClass:["BaseElement"],properties:[{name:"dataPath",type:"FormalExpression"},{name:"correlationPropertyRef",type:"CorrelationProperty",isAttr:!0,isReference:!0}]},{name:"Resource",superClass:["RootElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"resourceParameters",type:"ResourceParameter",isMany:!0}]},{name:"ResourceParameter",superClass:["BaseElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"isRequired",isAttr:!0,type:"Boolean"},{name:"type",type:"ItemDefinition",isAttr:!0,isReference:!0}]},{name:"CorrelationSubscription",superClass:["BaseElement"],properties:[{name:"correlationKeyRef",type:"CorrelationKey",isAttr:!0,isReference:!0},{name:"correlationPropertyBinding",type:"CorrelationPropertyBinding",isMany:!0}]},{name:"MessageFlow",superClass:["BaseElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"sourceRef",type:"InteractionNode",isAttr:!0,isReference:!0},{name:"targetRef",type:"InteractionNode",isAttr:!0,isReference:!0},{name:"messageRef",type:"Message",isAttr:!0,isReference:!0}]},{name:"MessageFlowAssociation",superClass:["BaseElement"],properties:[{name:"innerMessageFlowRef",type:"MessageFlow",isAttr:!0,isReference:!0},{name:"outerMessageFlowRef",type:"MessageFlow",isAttr:!0,isReference:!0}]},{name:"InteractionNode",isAbstract:!0,properties:[{name:"incomingConversationLinks",type:"ConversationLink",isMany:!0,isVirtual:!0,isReference:!0},{name:"outgoingConversationLinks",type:"ConversationLink",isMany:!0,isVirtual:!0,isReference:!0}]},{name:"Participant",superClass:["InteractionNode","BaseElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"interfaceRef",type:"Interface",isMany:!0,isReference:!0},{name:"participantMultiplicity",type:"ParticipantMultiplicity"},{name:"endPointRefs",type:"EndPoint",isMany:!0,isReference:!0},{name:"processRef",type:"Process",isAttr:!0,isReference:!0}]},{name:"ParticipantAssociation",superClass:["BaseElement"],properties:[{name:"innerParticipantRef",type:"Participant",isAttr:!0,isReference:!0},{name:"outerParticipantRef",type:"Participant",isAttr:!0,isReference:!0}]},{name:"ParticipantMultiplicity",properties:[{name:"minimum",default:0,isAttr:!0,type:"Integer"},{name:"maximum",default:1,isAttr:!0,type:"Integer"}],superClass:["BaseElement"]},{name:"Collaboration",superClass:["RootElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"isClosed",isAttr:!0,type:"Boolean"},{name:"participants",type:"Participant",isMany:!0},{name:"messageFlows",type:"MessageFlow",isMany:!0},{name:"artifacts",type:"Artifact",isMany:!0},{name:"conversations",type:"ConversationNode",isMany:!0},{name:"conversationAssociations",type:"ConversationAssociation"},{name:"participantAssociations",type:"ParticipantAssociation",isMany:!0},{name:"messageFlowAssociations",type:"MessageFlowAssociation",isMany:!0},{name:"correlationKeys",type:"CorrelationKey",isMany:!0},{name:"choreographyRef",type:"Choreography",isMany:!0,isReference:!0},{name:"conversationLinks",type:"ConversationLink",isMany:!0}]},{name:"ChoreographyActivity",isAbstract:!0,superClass:["FlowNode"],properties:[{name:"participantRef",type:"Participant",isMany:!0,isReference:!0},{name:"initiatingParticipantRef",type:"Participant",isAttr:!0,isReference:!0},{name:"correlationKeys",type:"CorrelationKey",isMany:!0},{name:"loopType",type:"ChoreographyLoopType",default:"None",isAttr:!0}]},{name:"CallChoreography",superClass:["ChoreographyActivity"],properties:[{name:"calledChoreographyRef",type:"Choreography",isAttr:!0,isReference:!0},{name:"participantAssociations",type:"ParticipantAssociation",isMany:!0}]},{name:"SubChoreography",superClass:["ChoreographyActivity","FlowElementsContainer"],properties:[{name:"artifacts",type:"Artifact",isMany:!0}]},{name:"ChoreographyTask",superClass:["ChoreographyActivity"],properties:[{name:"messageFlowRef",type:"MessageFlow",isMany:!0,isReference:!0}]},{name:"Choreography",superClass:["Collaboration","FlowElementsContainer"]},{name:"GlobalChoreographyTask",superClass:["Choreography"],properties:[{name:"initiatingParticipantRef",type:"Participant",isAttr:!0,isReference:!0}]},{name:"TextAnnotation",superClass:["Artifact"],properties:[{name:"text",type:"String"},{name:"textFormat",default:"text/plain",isAttr:!0,type:"String"}]},{name:"Group",superClass:["Artifact"],properties:[{name:"categoryValueRef",type:"CategoryValue",isAttr:!0,isReference:!0}]},{name:"Association",superClass:["Artifact"],properties:[{name:"associationDirection",type:"AssociationDirection",isAttr:!0},{name:"sourceRef",type:"BaseElement",isAttr:!0,isReference:!0},{name:"targetRef",type:"BaseElement",isAttr:!0,isReference:!0}]},{name:"Category",superClass:["RootElement"],properties:[{name:"categoryValue",type:"CategoryValue",isMany:!0},{name:"name",isAttr:!0,type:"String"}]},{name:"Artifact",isAbstract:!0,superClass:["BaseElement"]},{name:"CategoryValue",superClass:["BaseElement"],properties:[{name:"categorizedFlowElements",type:"FlowElement",isMany:!0,isVirtual:!0,isReference:!0},{name:"value",isAttr:!0,type:"String"}]},{name:"Activity",isAbstract:!0,superClass:["FlowNode"],properties:[{name:"isForCompensation",default:!1,isAttr:!0,type:"Boolean"},{name:"default",type:"SequenceFlow",isAttr:!0,isReference:!0},{name:"ioSpecification",type:"InputOutputSpecification",xml:{serialize:"property"}},{name:"boundaryEventRefs",type:"BoundaryEvent",isMany:!0,isReference:!0},{name:"properties",type:"Property",isMany:!0},{name:"dataInputAssociations",type:"DataInputAssociation",isMany:!0},{name:"dataOutputAssociations",type:"DataOutputAssociation",isMany:!0},{name:"startQuantity",default:1,isAttr:!0,type:"Integer"},{name:"resources",type:"ResourceRole",isMany:!0},{name:"completionQuantity",default:1,isAttr:!0,type:"Integer"},{name:"loopCharacteristics",type:"LoopCharacteristics"}]},{name:"ServiceTask",superClass:["Task"],properties:[{name:"implementation",isAttr:!0,type:"String"},{name:"operationRef",type:"Operation",isAttr:!0,isReference:!0}]},{name:"SubProcess",superClass:["Activity","FlowElementsContainer","InteractionNode"],properties:[{name:"triggeredByEvent",default:!1,isAttr:!0,type:"Boolean"},{name:"artifacts",type:"Artifact",isMany:!0}]},{name:"LoopCharacteristics",isAbstract:!0,superClass:["BaseElement"]},{name:"MultiInstanceLoopCharacteristics",superClass:["LoopCharacteristics"],properties:[{name:"isSequential",default:!1,isAttr:!0,type:"Boolean"},{name:"behavior",type:"MultiInstanceBehavior",default:"All",isAttr:!0},{name:"loopCardinality",type:"Expression",xml:{serialize:"xsi:type"}},{name:"loopDataInputRef",type:"ItemAwareElement",isReference:!0},{name:"loopDataOutputRef",type:"ItemAwareElement",isReference:!0},{name:"inputDataItem",type:"DataInput",xml:{serialize:"property"}},{name:"outputDataItem",type:"DataOutput",xml:{serialize:"property"}},{name:"complexBehaviorDefinition",type:"ComplexBehaviorDefinition",isMany:!0},{name:"completionCondition",type:"Expression",xml:{serialize:"xsi:type"}},{name:"oneBehaviorEventRef",type:"EventDefinition",isAttr:!0,isReference:!0},{name:"noneBehaviorEventRef",type:"EventDefinition",isAttr:!0,isReference:!0}]},{name:"StandardLoopCharacteristics",superClass:["LoopCharacteristics"],properties:[{name:"testBefore",default:!1,isAttr:!0,type:"Boolean"},{name:"loopCondition",type:"Expression",xml:{serialize:"xsi:type"}},{name:"loopMaximum",type:"Integer",isAttr:!0}]},{name:"CallActivity",superClass:["Activity","InteractionNode"],properties:[{name:"calledElement",type:"String",isAttr:!0}]},{name:"Task",superClass:["Activity","InteractionNode"]},{name:"SendTask",superClass:["Task"],properties:[{name:"implementation",isAttr:!0,type:"String"},{name:"operationRef",type:"Operation",isAttr:!0,isReference:!0},{name:"messageRef",type:"Message",isAttr:!0,isReference:!0}]},{name:"ReceiveTask",superClass:["Task"],properties:[{name:"implementation",isAttr:!0,type:"String"},{name:"instantiate",default:!1,isAttr:!0,type:"Boolean"},{name:"operationRef",type:"Operation",isAttr:!0,isReference:!0},{name:"messageRef",type:"Message",isAttr:!0,isReference:!0}]},{name:"ScriptTask",superClass:["Task"],properties:[{name:"scriptFormat",isAttr:!0,type:"String"},{name:"script",type:"String"}]},{name:"BusinessRuleTask",superClass:["Task"],properties:[{name:"implementation",isAttr:!0,type:"String"}]},{name:"AdHocSubProcess",superClass:["SubProcess"],properties:[{name:"completionCondition",type:"Expression",xml:{serialize:"xsi:type"}},{name:"ordering",type:"AdHocOrdering",isAttr:!0},{name:"cancelRemainingInstances",default:!0,isAttr:!0,type:"Boolean"}]},{name:"Transaction",superClass:["SubProcess"],properties:[{name:"protocol",isAttr:!0,type:"String"},{name:"method",isAttr:!0,type:"String"}]},{name:"GlobalScriptTask",superClass:["GlobalTask"],properties:[{name:"scriptLanguage",isAttr:!0,type:"String"},{name:"script",isAttr:!0,type:"String"}]},{name:"GlobalBusinessRuleTask",superClass:["GlobalTask"],properties:[{name:"implementation",isAttr:!0,type:"String"}]},{name:"ComplexBehaviorDefinition",superClass:["BaseElement"],properties:[{name:"condition",type:"FormalExpression"},{name:"event",type:"ImplicitThrowEvent"}]},{name:"ResourceRole",superClass:["BaseElement"],properties:[{name:"resourceRef",type:"Resource",isReference:!0},{name:"resourceParameterBindings",type:"ResourceParameterBinding",isMany:!0},{name:"resourceAssignmentExpression",type:"ResourceAssignmentExpression"},{name:"name",isAttr:!0,type:"String"}]},{name:"ResourceParameterBinding",properties:[{name:"expression",type:"Expression",xml:{serialize:"xsi:type"}},{name:"parameterRef",type:"ResourceParameter",isAttr:!0,isReference:!0}],superClass:["BaseElement"]},{name:"ResourceAssignmentExpression",properties:[{name:"expression",type:"Expression",xml:{serialize:"xsi:type"}}],superClass:["BaseElement"]},{name:"Import",properties:[{name:"importType",isAttr:!0,type:"String"},{name:"location",isAttr:!0,type:"String"},{name:"namespace",isAttr:!0,type:"String"}]},{name:"Definitions",superClass:["BaseElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"targetNamespace",isAttr:!0,type:"String"},{name:"expressionLanguage",default:"http://www.w3.org/1999/XPath",isAttr:!0,type:"String"},{name:"typeLanguage",default:"http://www.w3.org/2001/XMLSchema",isAttr:!0,type:"String"},{name:"imports",type:"Import",isMany:!0},{name:"extensions",type:"Extension",isMany:!0},{name:"rootElements",type:"RootElement",isMany:!0},{name:"diagrams",isMany:!0,type:"bpmndi:BPMNDiagram"},{name:"exporter",isAttr:!0,type:"String"},{name:"relationships",type:"Relationship",isMany:!0},{name:"exporterVersion",isAttr:!0,type:"String"}]}],enumerations:[{name:"ProcessType",literalValues:[{name:"None"},{name:"Public"},{name:"Private"}]},{name:"GatewayDirection",literalValues:[{name:"Unspecified"},{name:"Converging"},{name:"Diverging"},{name:"Mixed"}]},{name:"EventBasedGatewayType",literalValues:[{name:"Parallel"},{name:"Exclusive"}]},{name:"RelationshipDirection",literalValues:[{name:"None"},{name:"Forward"},{name:"Backward"},{name:"Both"}]},{name:"ItemKind",literalValues:[{name:"Physical"},{name:"Information"}]},{name:"ChoreographyLoopType",literalValues:[{name:"None"},{name:"Standard"},{name:"MultiInstanceSequential"},{name:"MultiInstanceParallel"}]},{name:"AssociationDirection",literalValues:[{name:"None"},{name:"One"},{name:"Both"}]},{name:"MultiInstanceBehavior",literalValues:[{name:"None"},{name:"One"},{name:"All"},{name:"Complex"}]},{name:"AdHocOrdering",literalValues:[{name:"Parallel"},{name:"Sequential"}]}],xml:{tagAlias:"lowerCase",typePrefix:"t"}},bpmndi:{name:"BPMNDI",uri:"http://www.omg.org/spec/BPMN/20100524/DI",prefix:"bpmndi",types:[{name:"BPMNDiagram",properties:[{name:"plane",type:"BPMNPlane",redefines:"di:Diagram#rootElement"},{name:"labelStyle",type:"BPMNLabelStyle",isMany:!0}],superClass:["di:Diagram"]},{name:"BPMNPlane",properties:[{name:"bpmnElement",isAttr:!0,isReference:!0,type:"bpmn:BaseElement",redefines:"di:DiagramElement#modelElement"}],superClass:["di:Plane"]},{name:"BPMNShape",properties:[{name:"bpmnElement",isAttr:!0,isReference:!0,type:"bpmn:BaseElement",redefines:"di:DiagramElement#modelElement"},{name:"isHorizontal",isAttr:!0,type:"Boolean"},{name:"isExpanded",isAttr:!0,type:"Boolean"},{name:"isMarkerVisible",isAttr:!0,type:"Boolean"},{name:"label",type:"BPMNLabel"},{name:"isMessageVisible",isAttr:!0,type:"Boolean"},{name:"participantBandKind",type:"ParticipantBandKind",isAttr:!0},{name:"choreographyActivityShape",type:"BPMNShape",isAttr:!0,isReference:!0}],superClass:["di:LabeledShape"]},{name:"BPMNEdge",properties:[{name:"label",type:"BPMNLabel"},{name:"bpmnElement",isAttr:!0,isReference:!0,type:"bpmn:BaseElement",redefines:"di:DiagramElement#modelElement"},{name:"sourceElement",isAttr:!0,isReference:!0,type:"di:DiagramElement",redefines:"di:Edge#source"},{name:"targetElement",isAttr:!0,isReference:!0,type:"di:DiagramElement",redefines:"di:Edge#target"},{name:"messageVisibleKind",type:"MessageVisibleKind",isAttr:!0,default:"initiating"}],superClass:["di:LabeledEdge"]},{name:"BPMNLabel",properties:[{name:"labelStyle",type:"BPMNLabelStyle",isAttr:!0,isReference:!0,redefines:"di:DiagramElement#style"}],superClass:["di:Label"]},{name:"BPMNLabelStyle",properties:[{name:"font",type:"dc:Font"}],superClass:["di:Style"]}],enumerations:[{name:"ParticipantBandKind",literalValues:[{name:"top_initiating"},{name:"middle_initiating"},{name:"bottom_initiating"},{name:"top_non_initiating"},{name:"middle_non_initiating"},{name:"bottom_non_initiating"}]},{name:"MessageVisibleKind",literalValues:[{name:"initiating"},{name:"non_initiating"}]}],associations:[]},dc:{name:"DC",uri:"http://www.omg.org/spec/DD/20100524/DC",prefix:"dc",types:[{name:"Boolean"},{name:"Integer"},{name:"Real"},{name:"String"},{name:"Font",properties:[{name:"name",type:"String",isAttr:!0},{name:"size",type:"Real",isAttr:!0},{name:"isBold",type:"Boolean",isAttr:!0},{name:"isItalic",type:"Boolean",isAttr:!0},{name:"isUnderline",type:"Boolean",isAttr:!0},{name:"isStrikeThrough",type:"Boolean",isAttr:!0}]},{name:"Point",properties:[{name:"x",type:"Real",default:"0",isAttr:!0},{name:"y",type:"Real",default:"0",isAttr:!0}]},{name:"Bounds",properties:[{name:"x",type:"Real",default:"0",isAttr:!0},{name:"y",type:"Real",default:"0",isAttr:!0},{name:"width",type:"Real",isAttr:!0},{name:"height",type:"Real",isAttr:!0}]}],associations:[]},di:{name:"DI",uri:"http://www.omg.org/spec/DD/20100524/DI",prefix:"di",types:[{name:"DiagramElement",isAbstract:!0,properties:[{name:"id",isAttr:!0,isId:!0,type:"String"},{name:"extension",type:"Extension"},{name:"owningDiagram",type:"Diagram",isReadOnly:!0,isVirtual:!0,isReference:!0},{name:"owningElement",type:"DiagramElement",isReadOnly:!0,isVirtual:!0,isReference:!0},{name:"modelElement",isReadOnly:!0,isVirtual:!0,isReference:!0,type:"Element"},{name:"style",type:"Style",isReadOnly:!0,isVirtual:!0,isReference:!0},{name:"ownedElement",type:"DiagramElement",isReadOnly:!0,isMany:!0,isVirtual:!0}]},{name:"Node",isAbstract:!0,superClass:["DiagramElement"]},{name:"Edge",isAbstract:!0,superClass:["DiagramElement"],properties:[{name:"source",type:"DiagramElement",isReadOnly:!0,isVirtual:!0,isReference:!0},{name:"target",type:"DiagramElement",isReadOnly:!0,isVirtual:!0,isReference:!0},{name:"waypoint",isUnique:!1,isMany:!0,type:"dc:Point",xml:{serialize:"xsi:type"}}]},{name:"Diagram",isAbstract:!0,properties:[{name:"id",isAttr:!0,isId:!0,type:"String"},{name:"rootElement",type:"DiagramElement",isReadOnly:!0,isVirtual:!0},{name:"name",isAttr:!0,type:"String"},{name:"documentation",isAttr:!0,type:"String"},{name:"resolution",isAttr:!0,type:"Real"},{name:"ownedStyle",type:"Style",isReadOnly:!0,isMany:!0,isVirtual:!0}]},{name:"Shape",isAbstract:!0,superClass:["Node"],properties:[{name:"bounds",type:"dc:Bounds"}]},{name:"Plane",isAbstract:!0,superClass:["Node"],properties:[{name:"planeElement",type:"DiagramElement",subsettedProperty:"DiagramElement-ownedElement",isMany:!0}]},{name:"LabeledEdge",isAbstract:!0,superClass:["Edge"],properties:[{name:"ownedLabel",type:"Label",isReadOnly:!0,subsettedProperty:"DiagramElement-ownedElement",isMany:!0,isVirtual:!0}]},{name:"LabeledShape",isAbstract:!0,superClass:["Shape"],properties:[{name:"ownedLabel",type:"Label",isReadOnly:!0,subsettedProperty:"DiagramElement-ownedElement",isMany:!0,isVirtual:!0}]},{name:"Label",isAbstract:!0,superClass:["Node"],properties:[{name:"bounds",type:"dc:Bounds"}]},{name:"Style",isAbstract:!0,properties:[{name:"id",isAttr:!0,isId:!0,type:"String"}]},{name:"Extension",properties:[{name:"values",isMany:!0,type:"Element"}]}],associations:[],xml:{tagAlias:"lowerCase"}},bioc:{name:"bpmn.io colors for BPMN",uri:"http://bpmn.io/schema/bpmn/biocolor/1.0",prefix:"bioc",types:[{name:"ColoredShape",extends:["bpmndi:BPMNShape"],properties:[{name:"stroke",isAttr:!0,type:"String"},{name:"fill",isAttr:!0,type:"String"}]},{name:"ColoredEdge",extends:["bpmndi:BPMNEdge"],properties:[{name:"stroke",isAttr:!0,type:"String"},{name:"fill",isAttr:!0,type:"String"}]}],enumerations:[],associations:[]},color:{name:"BPMN in Color",uri:"http://www.omg.org/spec/BPMN/non-normative/color/1.0",prefix:"color",types:[{name:"ColoredLabel",extends:["bpmndi:BPMNLabel"],properties:[{name:"color",isAttr:!0,type:"String"}]},{name:"ColoredShape",extends:["bpmndi:BPMNShape"],properties:[{name:"background-color",isAttr:!0,type:"String"},{name:"border-color",isAttr:!0,type:"String"}]},{name:"ColoredEdge",extends:["bpmndi:BPMNEdge"],properties:[{name:"border-color",isAttr:!0,type:"String"}]}],enumerations:[],associations:[]}};function Va(e,t){return new qa(ce({},Ha,e),t)}function Wa(e){return e?"<"+e.$type+(e.id?' id="'+e.id:"")+'" />':""}var Ga="Tried to access di from the businessObject. The di is available through the diagram element only. For more information, see https://github.com/bpmn-io/bpmn-js/issues/1472";function Qa(e){$(e,"di")||Object.defineProperty(e,"di",{enumerable:!1,get:function(){throw new Error(Ga)}})}function Xa(e,t){return e.$instanceOf(t)}function Ua(e){var t={},n=[],i={};function o(e,t){return function(n){e(n,t)}}function r(e){t[e.id]=e}function s(t,n){try{var o=i[t.id]&&function(t,n){if(t.gfx)throw new Error(`already rendered ${Wa(t)}`);return e.element(t,i[t.id],n)}(t,n);return r(t),o}catch(e){a(e.message,{element:t,error:e}),console.error(`failed to import ${Wa(t)}`,e)}}function a(t,n){e.error(t,n)}var l=this.registerDi=function(e){var t=e.bpmnElement;t?i[t.id]?a(`multiple DI elements defined for ${Wa(t)}`,{element:t}):(i[t.id]=e,Qa(t)):a(`no bpmnElement referenced in ${Wa(e)}`,{element:e})};function c(e){l(e)}this.handleDefinitions=function(r,s){var d=r.diagrams;if(s&&-1===d.indexOf(s))throw new Error("diagram not part of ");if(!s&&d&&d.length&&(s=d[0]),!s)throw new Error("no diagram to display");i={},function(e){var t;t=e.plane,l(t),V(t.planeElement,c)}(s);var f=s.plane;if(!f)throw new Error(`no plane for ${Wa(s)}`);var m=f.bpmnElement;if(!m){if(m=function(e){return j(e.rootElements,(function(e){return Xa(e,"bpmn:Process")||Xa(e,"bpmn:Collaboration")}))}(r),!m)throw new Error("no process or collaboration to display");a(`correcting missing bpmnElement on ${Wa(f)} to ${Wa(m)}`),f.bpmnElement=m,l(f)}var g,y,b=function(t,n){return e.root(t,i[t.id],n)}(m,f);if(Xa(m,"bpmn:Process")||Xa(m,"bpmn:SubProcess"))u(m,b);else{if(!Xa(m,"bpmn:Collaboration"))throw new Error(`unsupported bpmnElement for ${Wa(f)}: ${Wa(m)}`);y=b,V((g=m).participants,o(k,y)),v(g.artifacts,y),n.push((function(){!function(e,t){V(e,o(p,t))}(g.messageFlows,y)})),function(e,n){H(e,(function(e){return!t[e.id]&&Xa(e,"bpmn:Process")&&e.laneSets})).forEach(o(u,n))}(r.rootElements,b)}h(n)};var h=this.handleDeferred=function(){for(;n.length;)n.shift()()};function u(e,t){E(e,t),y(e.ioSpecification,t),v(e.artifacts,t),r(e)}function p(e,t){s(e,t)}function d(e,t){s(e,t)}function f(e,t){s(e,t)}function m(e,t){s(e,t)}function g(e,t){s(e,t)}function v(e,t){V(e,(function(e){Xa(e,"bpmn:Association")?n.push((function(){g(e,t)})):g(e,t)}))}function y(e,t){e&&(V(e.dataInputs,o(f,t)),V(e.dataOutputs,o(m,t)))}var b=this.handleSubProcess=function(e,t){E(e,t),v(e.artifacts,t)};function w(e,t){var i=s(e,t);Xa(e,"bpmn:SubProcess")&&b(e,i||t),Xa(e,"bpmn:Activity")&&y(e.ioSpecification,t),n.push((function(){V(e.dataInputAssociations,o(d,t)),V(e.dataOutputAssociations,o(d,t))}))}function x(e,t){n.push((function(){var n=s(e,t);e.childLaneSet&&_(e.childLaneSet,n||t),function(e){V(e.flowNodeRef,(function(t){var n=t.get("lanes");n&&n.push(e)}))}(e)}))}function _(e,t){V(e.lanes,o(x,t))}function E(e,t){!function(e,t){V(e,(function(e){Xa(e,"bpmn:SequenceFlow")?n.push((function(){!function(e,t){s(e,t)}(e,t)})):Xa(e,"bpmn:BoundaryEvent")?n.unshift((function(){w(e,t)})):Xa(e,"bpmn:FlowNode")?w(e,t):Xa(e,"bpmn:DataObject")||(Xa(e,"bpmn:DataStoreReference")||Xa(e,"bpmn:DataObjectReference")?function(e,t){s(e,t)}(e,t):a(`unrecognized flowElement ${Wa(e)} in context ${Wa(t&&t.businessObject)}`,{element:e,context:t}))}))}(e.flowElements,t),e.laneSets&&function(e,t){V(e,o(_,t))}(e.laneSets,t)}function k(e,t){var n=s(e,t),i=e.processRef;i&&u(i,n||t)}}function Ya(e,t,n){var i,o,r,s=[];function a(e,t){var n=new Ua({root:function(e,t){return i.add(e,t)},element:function(e,t,n){return i.add(e,t,n)},error:function(e,t){s.push({message:e,context:t})}});t=t||e.diagrams&&e.diagrams[0];var o=function(e,t){if(t&&t.plane){var n,i=t.plane.bpmnElement,o=i;de(i,"bpmn:Process")||de(i,"bpmn:Collaboration")||(o=function(e){for(var t=e;t;){if(de(t,"bpmn:Process"))return t;t=t.$parent}}(i)),n=de(o,"bpmn:Collaboration")?o:j(e.rootElements,(function(e){if(de(e,"bpmn:Collaboration"))return j(e.participants,(function(e){return e.processRef===o}))}));var r=[o];n&&(r=U(n.participants,(function(e){return e.processRef}))).push(n);var s=Ka(r),a=[t],l=[i];return V(e.diagrams,(function(e){if(e.plane){var t=e.plane.bpmnElement;-1!==s.indexOf(t)&&-1===l.indexOf(t)&&(a.push(e),l.push(t))}})),a}}(e,t);if(!o)throw new Error("no diagram to display");V(o,(function(t){n.handleDefinitions(e,t)}));var a=t.plane.bpmnElement.id;r.setRootElement(r.findRoot(a+"_plane")||r.findRoot(a))}return new Promise((function(l,c){try{return i=e.get("bpmnImporter"),o=e.get("eventBus"),r=e.get("canvas"),o.fire("import.render.start",{definitions:t}),a(t,n),o.fire("import.render.complete",{error:void 0,warnings:s}),l({warnings:s})}catch(e){return e.warnings=s,c(e)}}))}function Ka(e){var t=[];return V(e,(function(e){e&&(t.push(e),t=t.concat(Ka(e.flowElements)))})),t}var Za,Ja='',el={verticalAlign:"middle"},tl={color:"#404040"},nl={zIndex:"1001",position:"fixed",top:"0",left:"0",right:"0",bottom:"0"},il={width:"100%",height:"100%",background:"rgba(40,40,40,0.2)"},ol={position:"absolute",left:"50%",top:"40%",transform:"translate(-50%)",width:"260px",padding:"10px",background:"white",boxShadow:"0 1px 4px rgba(0,0,0,0.3)",fontFamily:"Helvetica, Arial, sans-serif",fontSize:"14px",display:"flex",lineHeight:"1.3"},rl='
'+Ja+'Web-based tooling for BPMN, DMN and forms powered by bpmn.io.
';function sl(e){e=ce({},ll,e),this._moddle=this._createModdle(e),this._container=this._createContainer(e),function(e){const t=Kt(''+Ja+"");Rt(Jt("svg",t),el),Rt(t,tl,{position:"absolute",bottom:"15px",right:"15px",zIndex:"100"}),e.appendChild(t),Gt.bind(t,"click",(function(e){Za||(Rt(Za=Kt(rl),nl),Rt(Jt("svg",Za),el),Rt(Jt(".backdrop",Za),il),Rt(Jt(".notice",Za),ol),Rt(Jt(".link",Za),tl,{margin:"15px 20px 15px 10px",alignSelf:"center"}),Xt.bind(Za,".backdrop","click",(function(e){document.body.removeChild(Za)}))),document.body.appendChild(Za),e.preventDefault()}))}(this._container),this._init(this._container,this._moddle,e)}function al(e,t){return e.warnings=t,e}lt(sl,Ms),sl.prototype.importXML=async function(e,t){const n=this;let i=[];try{let r;e=this._emit("import.parse.start",{xml:e})||e;try{r=await this._moddle.fromXML(e,"bpmn:Definitions")}catch(e){throw this._emit("import.parse.complete",{error:e}),e}let s=r.rootElement;const a=r.references,l=r.warnings,c=r.elementsById;i=i.concat(l),s=this._emit("import.parse.complete",(o={error:null,definitions:s,elementsById:c,references:a,warnings:i},n.get("eventBus").createEvent(o)))||s;const h=await this.importDefinitions(s,t);return i=i.concat(h.warnings),this._emit("import.done",{error:null,warnings:i}),{warnings:i}}catch(e){let t=e;throw i=i.concat(t.warnings||[]),al(t,i),t=function(e){const t=/unparsable content <([^>]+)> detected([\s\S]*)$/.exec(e.message);return t&&(e.message="unparsable content <"+t[1]+"> detected; this may indicate an invalid BPMN 2.0 diagram file"+t[2]),e}(t),this._emit("import.done",{error:t,warnings:t.warnings}),t}var o},sl.prototype.importDefinitions=async function(e,t){return this._setDefinitions(e),{warnings:(await this.open(t)).warnings}},sl.prototype.open=async function(e){const t=this._definitions;let n=e;if(!t){const e=new Error("no XML imported");throw al(e,[]),e}if("string"==typeof e&&(n=function(e,t){return t&&j(e.diagrams,(function(e){return e.id===t}))||null}(t,e),!n)){const t=new Error("BPMNDiagram <"+e+"> not found");throw al(t,[]),t}try{this.clear()}catch(e){throw al(e,[]),e}const{warnings:i}=await Ya(this,t,n);return{warnings:i}},sl.prototype.saveXML=async function(e){e=e||{};let t,n,i=this._definitions;try{if(!i)throw new Error("no definitions loaded");i=this._emit("saveXML.start",{definitions:i})||i,n=(await this._moddle.toXML(i,e)).xml,n=this._emit("saveXML.serialized",{xml:n})||n}catch(e){t=e}const o=t?{error:t}:{xml:n};if(this._emit("saveXML.done",o),t)throw t;return o},sl.prototype.saveSVG=async function(){let e,t;this._emit("saveSVG.start");try{const t=this.get("canvas"),n=t.getActiveLayer(),i=Jt(":scope > defs",t._svg),o=On(n),r=i?""+On(i)+"":"",s=n.getBBox();e='\n\x3c!-- created with bpmn-js / http://bpmn.io --\x3e\n\n'+r+o+""}catch(e){t=e}if(this._emit("saveSVG.done",{error:t,svg:e}),t)throw t;return{svg:e}},sl.prototype._setDefinitions=function(e){this._definitions=e},sl.prototype.getModules=function(){return this._modules},sl.prototype.clear=function(){this.getDefinitions()&&Ms.prototype.clear.call(this)},sl.prototype.destroy=function(){Ms.prototype.destroy.call(this),tn(this._container)},sl.prototype.on=function(e,t,n,i){return this.get("eventBus").on(e,t,n,i)},sl.prototype.off=function(e,t){this.get("eventBus").off(e,t)},sl.prototype.attachTo=function(e){if(!e)throw new Error("parentNode required");this.detach(),e.get&&e.constructor.prototype.jquery&&(e=e.get(0)),"string"==typeof e&&(e=Jt(e)),e.appendChild(this._container),this._emit("attach",{}),this.get("canvas").resized()},sl.prototype.getDefinitions=function(){return this._definitions},sl.prototype.detach=function(){const e=this._container,t=e.parentNode;t&&(this._emit("detach",{}),t.removeChild(e))},sl.prototype._init=function(e,t,n){const i=n.modules||this.getModules(n),o=n.additionalModules||[],r=[].concat([{bpmnjs:["value",this],moddle:["value",t]}],i,o),s=ce(pe(n,["additionalModules"]),{canvas:ce({},n.canvas,{container:e}),modules:r});Ms.call(this,s),n&&n.container&&this.attachTo(n.container)},sl.prototype._emit=function(e,t){return this.get("eventBus").fire(e,t)},sl.prototype._createContainer=function(e){const t=Kt('
');return Rt(t,{width:cl(e.width),height:cl(e.height),position:e.position}),t},sl.prototype._createModdle=function(e){return new Va(ce({},this._moddleExtensions,e.moddleExtensions))},sl.prototype._modules=[];const ll={width:"100%",height:"100%",position:"relative"};function cl(e){return e+(z(e)?"px":"")}function hl(e){sl.call(this,e),this.on("import.parse.complete",(function(e){e.error||this._collectIds(e.definitions,e.elementsById)}),this),this.on("diagram.destroy",(function(){this.get("moddle").ids.clear()}),this)}function ul(e,t){return!de(e,"bpmn:CallActivity")&&(de(e,"bpmn:SubProcess")?!(!(t=t||ge(e))||!de(t,"bpmndi:BPMNPlane"))||t&&!!t.isExpanded:!de(e,"bpmn:Participant")||!!me(e).processRef)}function pl(e){if(de(e,"bpmn:Participant")||de(e,"bpmn:Lane")){var t=ge(e).isHorizontal;return void 0===t||t}}function dl(e){return e&&!1!==me(e).isInterrupting}function fl(e){return e&&!!me(e).triggeredByEvent}function ml(e,t){return X(me(e).eventDefinitions,(function(e){return de(e,t)}))}lt(hl,sl),hl.prototype._createModdle=function(e){var t=sl.prototype._createModdle.call(this,e);return t.ids=new o([32,36,1]),t},hl.prototype._collectIds=function(e,t){var n,i=e.$model.ids;for(n in i.clear(),t)i.claim(n,t[n])};var gl={width:90,height:20},vl=15;function yl(e){return de(e,"bpmn:Event")||de(e,"bpmn:Gateway")||de(e,"bpmn:DataStoreReference")||de(e,"bpmn:DataObjectReference")||de(e,"bpmn:DataInput")||de(e,"bpmn:DataOutput")||de(e,"bpmn:SequenceFlow")||de(e,"bpmn:MessageFlow")||de(e,"bpmn:Group")}function bl(e){return qr(e.label)}function wl(e){return e.waypoints?function(e){var t=e.length/2-1,n=e[Math.floor(t)],i=e[Math.ceil(t+.01)],o=function(e){var t=e.length/2-1,n=e[Math.floor(t)],i=e[Math.ceil(t+.01)];return{x:n.x+(i.x-n.x)/2,y:n.y+(i.y-n.y)/2}}(e),r=Math.atan((i.y-n.y)/(i.x-n.x)),s=o.x,a=o.y;return Math.abs(r) defs",s);l||on(s,l=vn("defs")),on(l,a)}function d(e,t,n,i){var o=Bl.nextPrefixed("marker-");return function(e,t,n,i,o){"sequenceflow-end"===n&&p(t,{element:vn("path",{d:"M 1 5 L 11 10 L 1 15 Z",...h({fill:o,stroke:o,strokeWidth:1})}),ref:{x:11,y:10},scale:.5,parentGfx:e}),"messageflow-start"===n&&p(t,{element:vn("circle",{cx:6,cy:6,r:3.5,...h({fill:i,stroke:o,strokeWidth:1,strokeDasharray:[1e4,1]})}),ref:{x:6,y:6},parentGfx:e}),"messageflow-end"===n&&p(t,{element:vn("path",{d:"m 1 5 l 0 -3 l 7 3 l -7 3 z",...h({fill:i,stroke:o,strokeWidth:1,strokeDasharray:[1e4,1]})}),ref:{x:8.5,y:5},parentGfx:e}),"association-start"===n&&p(t,{element:vn("path",{d:"M 11 5 L 1 10 L 11 15",...u({fill:"none",stroke:o,strokeWidth:1.5,strokeDasharray:[1e4,1]})}),ref:{x:1,y:10},scale:.5,parentGfx:e}),"association-end"===n&&p(t,{element:vn("path",{d:"M 1 5 L 11 10 L 1 15",...u({fill:"none",stroke:o,strokeWidth:1.5,strokeDasharray:[1e4,1]})}),ref:{x:11,y:10},scale:.5,parentGfx:e}),"conditional-flow-marker"===n&&p(t,{element:vn("path",{d:"M 0 10 L 8 6 L 16 10 L 8 14 Z",...h({fill:i,stroke:o})}),ref:{x:-1,y:10},scale:.5,parentGfx:e}),"conditional-default-flow-marker"===n&&p(t,{element:vn("path",{d:"M 6 4 L 10 16",...h({stroke:o,fill:"none"})}),ref:{x:0,y:10},scale:.5,parentGfx:e})}(e,o,t,n,i),"url(#"+o+")"}function f(e,t,n,i,o={}){N(i)&&(o=i,i=0),i=i||0,o=h(o);var r=vn("circle",{cx:t/2,cy:n/2,r:Math.round((t+n)/4-i),...o});return on(e,r),r}function m(e,t,n,i,o,r){N(o)&&(r=o,o=0),o=o||0,r=h(r);var s=vn("rect",{x:o,y:o,width:t-2*o,height:n-2*o,rx:i,ry:i,...r});return on(e,s),s}function g(e,t,n,i){var o=$o(t,n=u(n),i);return on(e,o),o}function v(e,t,n){return g(e,t,n,5)}function y(e,t,n){n=u(n);var i=vn("path",{...n,d:t});return on(e,i),i}function b(e,t,n,i){return y(t,n,ce({"data-marker":e},i))}function w(e){return I[e]}function x(e){return function(t,n,i){return w(e)(t,n,i)}}function _(e,t,n={}){var o,r=me(e),s="bpmn:IntermediateThrowEvent"===(o=r).$type||"bpmn:EndEvent"===o.$type;return r.get("eventDefinitions")&&r.get("eventDefinitions").length>1?r.get("parallelMultiple")?function(e,t,n={}){return y(e,i.getScaledPath("EVENT_PARALLEL_MULTIPLE",{xScaleFactor:1.2,yScaleFactor:1.2,containerWidth:t.width,containerHeight:t.height,position:{mx:.458,my:.194}}),{fill:Cl(t,a,n.fill),stroke:Ol(t,l,n.stroke),strokeWidth:1})}(t,e,n):function(e,t,n={},o){return y(e,i.getScaledPath("EVENT_MULTIPLE",{xScaleFactor:1.1,yScaleFactor:1.1,containerWidth:t.width,containerHeight:t.height,position:{mx:.222,my:.36}}),{fill:o?Ol(t,l,n.stroke):Cl(t,a,n.fill),strokeWidth:1})}(t,e,n,s):Sl(r,"bpmn:MessageEventDefinition")?function(e,t,n={},o){return y(e,i.getScaledPath("EVENT_MESSAGE",{xScaleFactor:.9,yScaleFactor:.9,containerWidth:t.width,containerHeight:t.height,position:{mx:.235,my:.315}}),{fill:o?Ol(t,l,n.stroke):Cl(t,a,n.fill),stroke:o?Cl(t,a,n.fill):Ol(t,l,n.stroke),strokeWidth:1})}(t,e,n,s):Sl(r,"bpmn:TimerEventDefinition")?function(e,t,n={}){var o=f(e,t.width,t.height,.2*t.height,{fill:Cl(t,a,n.fill),stroke:Ol(t,l,n.stroke),strokeWidth:2});y(e,i.getScaledPath("EVENT_TIMER_WH",{xScaleFactor:.75,yScaleFactor:.75,containerWidth:t.width,containerHeight:t.height,position:{mx:.5,my:.5}}),{stroke:Ol(t,l,n.stroke),strokeWidth:2});for(var r=0;r<12;r++){var s=i.getScaledPath("EVENT_TIMER_LINE",{xScaleFactor:.75,yScaleFactor:.75,containerWidth:t.width,containerHeight:t.height,position:{mx:.5,my:.5}}),c=t.width/2,h=t.height/2;y(e,s,{strokeWidth:1,stroke:Ol(t,l,n.stroke),transform:"rotate("+30*r+","+h+","+c+")"})}return o}(t,e,n):Sl(r,"bpmn:ConditionalEventDefinition")?function(e,t,n={}){return y(e,i.getScaledPath("EVENT_CONDITIONAL",{xScaleFactor:1,yScaleFactor:1,containerWidth:t.width,containerHeight:t.height,position:{mx:.5,my:.222}}),{fill:Cl(t,a,n.fill),stroke:Ol(t,l,n.stroke),strokeWidth:1})}(t,e,n):Sl(r,"bpmn:SignalEventDefinition")?function(e,t,n={},o){return y(e,i.getScaledPath("EVENT_SIGNAL",{xScaleFactor:.9,yScaleFactor:.9,containerWidth:t.width,containerHeight:t.height,position:{mx:.5,my:.2}}),{strokeWidth:1,fill:o?Ol(t,l,n.stroke):Cl(t,a,n.fill),stroke:Ol(t,l,n.stroke)})}(t,e,n,s):Sl(r,"bpmn:EscalationEventDefinition")?function(e,t,n={},o){return y(e,i.getScaledPath("EVENT_ESCALATION",{xScaleFactor:1,yScaleFactor:1,containerWidth:t.width,containerHeight:t.height,position:{mx:.5,my:.2}}),{fill:o?Ol(t,l,n.stroke):Cl(t,a,n.fill),stroke:Ol(t,l,n.stroke),strokeWidth:1})}(t,e,n,s):Sl(r,"bpmn:LinkEventDefinition")?function(e,t,n={},o){return y(e,i.getScaledPath("EVENT_LINK",{xScaleFactor:1,yScaleFactor:1,containerWidth:t.width,containerHeight:t.height,position:{mx:.57,my:.263}}),{fill:o?Ol(t,l,n.stroke):Cl(t,a,n.fill),stroke:Ol(t,l,n.stroke),strokeWidth:1})}(t,e,n,s):Sl(r,"bpmn:ErrorEventDefinition")?function(e,t,n={},o){return y(e,i.getScaledPath("EVENT_ERROR",{xScaleFactor:1.1,yScaleFactor:1.1,containerWidth:t.width,containerHeight:t.height,position:{mx:.2,my:.722}}),{fill:o?Ol(t,l,n.stroke):Cl(t,a,n.fill),stroke:Ol(t,l,n.stroke),strokeWidth:1})}(t,e,n,s):Sl(r,"bpmn:CancelEventDefinition")?function(e,t,n={},o){var r=y(e,i.getScaledPath("EVENT_CANCEL_45",{xScaleFactor:1,yScaleFactor:1,containerWidth:t.width,containerHeight:t.height,position:{mx:.638,my:-.055}}),{fill:o?Ol(t,l,n.stroke):"none",stroke:Ol(t,l,n.stroke),strokeWidth:1});return Ss(r,45),r}(t,e,n,s):Sl(r,"bpmn:CompensateEventDefinition")?function(e,t,n={},o){return y(e,i.getScaledPath("EVENT_COMPENSATION",{xScaleFactor:1,yScaleFactor:1,containerWidth:t.width,containerHeight:t.height,position:{mx:.22,my:.5}}),{fill:o?Ol(t,l,n.stroke):Cl(t,a,n.fill),stroke:Ol(t,l,n.stroke),strokeWidth:1})}(t,e,n,s):Sl(r,"bpmn:TerminateEventDefinition")?function(e,t,n={}){return f(e,t.width,t.height,8,{fill:Ol(t,l,n.stroke),stroke:Ol(t,l,n.stroke),strokeWidth:4})}(t,e,n):null}var E={ParticipantMultiplicityMarker:function(e,t,n={}){var o=Al(t,n),r=Tl(t,n);b("participant-multiplicity",e,i.getScaledPath("MARKER_PARALLEL",{xScaleFactor:1,yScaleFactor:1,containerWidth:o,containerHeight:r,position:{mx:(o/2-6)/o,my:(r-15)/r}}),{strokeWidth:2,fill:Cl(t,a,n.fill),stroke:Ol(t,l,n.stroke)})},SubProcessMarker:function(e,t,n={}){ks(m(e,14,14,0,{strokeWidth:1,fill:Cl(t,a,n.fill),stroke:Ol(t,l,n.stroke)}),t.width/2-7.5,t.height-20),b("sub-process",e,i.getScaledPath("MARKER_SUB_PROCESS",{xScaleFactor:1.5,yScaleFactor:1.5,containerWidth:t.width,containerHeight:t.height,position:{mx:(t.width/2-7.5)/t.width,my:(t.height-20)/t.height}}),{fill:Cl(t,a,n.fill),stroke:Ol(t,l,n.stroke)})},ParallelMarker:function(e,t,n){var o=Al(t,n),r=Tl(t,n);b("parallel",e,i.getScaledPath("MARKER_PARALLEL",{xScaleFactor:1,yScaleFactor:1,containerWidth:o,containerHeight:r,position:{mx:(o/2+n.parallel)/o,my:(r-20)/r}}),{fill:Cl(t,a,n.fill),stroke:Ol(t,l,n.stroke)})},SequentialMarker:function(e,t,n){b("sequential",e,i.getScaledPath("MARKER_SEQUENTIAL",{xScaleFactor:1,yScaleFactor:1,containerWidth:t.width,containerHeight:t.height,position:{mx:(t.width/2+n.seq)/t.width,my:(t.height-19)/t.height}}),{fill:Cl(t,a,n.fill),stroke:Ol(t,l,n.stroke)})},CompensationMarker:function(e,t,n){b("compensation",e,i.getScaledPath("MARKER_COMPENSATION",{xScaleFactor:1,yScaleFactor:1,containerWidth:t.width,containerHeight:t.height,position:{mx:(t.width/2+n.compensation)/t.width,my:(t.height-13)/t.height}}),{strokeWidth:1,fill:Cl(t,a,n.fill),stroke:Ol(t,l,n.stroke)})},LoopMarker:function(e,t,n){var o=Al(t,n),r=Tl(t,n);b("loop",e,i.getScaledPath("MARKER_LOOP",{xScaleFactor:1,yScaleFactor:1,containerWidth:o,containerHeight:r,position:{mx:(o/2+n.loop)/o,my:(r-7)/r}}),{strokeWidth:1.5,fill:"none",stroke:Ol(t,l,n.stroke),strokeMiterlimit:.5})},AdhocMarker:function(e,t,n){var o=Al(t,n),r=Tl(t,n);b("adhoc",e,i.getScaledPath("MARKER_ADHOC",{xScaleFactor:1,yScaleFactor:1,containerWidth:o,containerHeight:r,position:{mx:(o/2+n.adhoc)/o,my:(r-15)/r}}),{strokeWidth:1,fill:Ol(t,l,n.stroke),stroke:Ol(t,l,n.stroke)})}};function k(e,t,n,i){E[e](t,n,i)}function S(e,t,n,i={}){i={fill:i.fill,stroke:i.stroke,width:Al(t,i),height:Tl(t,i)};var o=me(t),r=n&&n.includes("SubProcessMarker");i=r?{...i,seq:-21,parallel:-22,compensation:-42,loop:-18,adhoc:10}:{...i,seq:-5,parallel:-6,compensation:-27,loop:0,adhoc:10},V(n,(function(n){k(n,e,t,i)})),o.get("isForCompensation")&&k("CompensationMarker",e,t,i),de(o,"bpmn:AdHocSubProcess")&&k("AdhocMarker",e,t,i);var s=o.get("loopCharacteristics"),a=s&&s.get("isSequential");s&&(void 0===a&&k("LoopMarker",e,t,i),!1===a&&k("ParallelMarker",e,t,i),!0===a&&k("SequentialMarker",e,t,i))}function C(e,t,n={}){n=ce({size:{width:100}},n);var i=r.createText(t||"",n);return hn(i).add("djs-label"),on(e,i),i}function O(e,t,n,i={}){var o=me(t),r=Ml({x:t.x,y:t.y,width:t.width,height:t.height},i);return C(e,o.name,{align:n,box:r,padding:7,style:{fill:Pl(t,c,l,i.stroke)}})}function P(e,t,n,i={}){var o=pl(n),r=C(e,t,{box:{height:30,width:o?Tl(n,i):Al(n,i)},align:"center-middle",style:{fill:Pl(n,c,l,i.stroke)}});o&&Es(r,0,1*Tl(n,i),270)}function M(e,t,n={}){var{width:i,height:o}=Ml(t,n);return m(e,i,o,10,{...n,fill:Cl(t,a,n.fill),fillOpacity:Rl,stroke:Ol(t,l,n.stroke)})}function A(e,t,n={}){var i=me(t),o=Cl(t,a,n.fill),r=Ol(t,l,n.stroke);return"One"!==i.get("associationDirection")&&"Both"!==i.get("associationDirection")||(n.markerEnd=d(e,"association-end",o,r)),"Both"===i.get("associationDirection")&&(n.markerStart=d(e,"association-start",o,r)),n=Ll(n,["markerStart","markerEnd"]),v(e,t.waypoints,{...n,stroke:r,strokeDasharray:"0, 5"})}function T(e,t,n={}){var o=Cl(t,a,n.fill),r=Ol(t,l,n.stroke),s=y(e,i.getScaledPath("DATA_OBJECT_PATH",{xScaleFactor:1,yScaleFactor:1,containerWidth:t.width,containerHeight:t.height,position:{mx:.474,my:.296}}),{fill:o,fillOpacity:Rl,stroke:r});return function(e){var t=e.dataObjectRef;return e.isCollection||t&&t.isCollection}(me(t))&&y(e,i.getScaledPath("DATA_OBJECT_COLLECTION_PATH",{xScaleFactor:1,yScaleFactor:1,containerWidth:t.width,containerHeight:t.height,position:{mx:.33,my:(t.height-18)/t.height}}),{strokeWidth:2,fill:o,stroke:r}),s}function B(e,t,n={}){return f(e,t.width,t.height,{fillOpacity:Rl,...n,fill:Cl(t,a,n.fill),stroke:Ol(t,l,n.stroke)})}function R(e,t,n={}){return function(e,t,n,i){var o=t/2,r=n/2,s=[{x:o,y:0},{x:t,y:r},{x:o,y:n},{x:0,y:r}].map((function(e){return e.x+","+e.y})).join(" ");i=h(i);var a=vn("polygon",{...i,points:s});return on(e,a),a}(e,t.width,t.height,{fill:Cl(t,a,n.fill),fillOpacity:Rl,stroke:Ol(t,l,n.stroke)})}function D(e,t,n={}){var i=m(e,Al(t,n),Tl(t,n),0,{fill:Cl(t,a,n.fill),fillOpacity:n.fillOpacity||Rl,stroke:Ol(t,l,n.stroke),strokeWidth:1.5}),o=me(t);return de(o,"bpmn:Lane")&&P(e,o.get("name"),t,n),i}function L(e,t,n={}){var i=M(e,t,n);fl(t)&&ln(i,{strokeDasharray:"0, 5.5",strokeWidth:2.5});var o=ul(t);return O(e,t,o?"center-top":"center-middle",n),S(e,t,o?void 0:["SubProcessMarker"],n),i}function z(e,t,n={}){var i=M(e,t,n);return O(e,t,"center-middle",n),S(e,t,void 0,n),i}var I=this.handlers={"bpmn:AdHocSubProcess":function(e,t,n={}){return L(e,t,n=ul(t)?Ll(n,["fill","stroke","width","height"]):Ll(n,["fill","stroke"]))},"bpmn:Association":function(e,t,n={}){return A(e,t,n=Ll(n,["fill","stroke"]))},"bpmn:BoundaryEvent":function(e,t,n={}){var{renderIcon:i=!0}=n;n=Ll(n,["fill","stroke"]);var o=me(t).get("cancelActivity");n={strokeWidth:1.5,fill:Cl(t,a,n.fill),fillOpacity:1,stroke:Ol(t,l,n.stroke)},o||(n.strokeDasharray="6");var r=B(e,t,n);return f(e,t.width,t.height,3,{...n,fill:"none"}),i&&_(t,e,n),r},"bpmn:BusinessRuleTask":function(e,t,n={}){var o=z(e,t,n=Ll(n,["fill","stroke"]));return ln(y(e,i.getScaledPath("TASK_TYPE_BUSINESS_RULE_MAIN",{abspos:{x:8,y:8}})),{fill:Cl(t,a,n.fill),stroke:Ol(t,l,n.stroke),strokeWidth:1}),ln(y(e,i.getScaledPath("TASK_TYPE_BUSINESS_RULE_HEADER",{abspos:{x:8,y:8}})),{fill:Ol(t,l,n.stroke),stroke:Ol(t,l,n.stroke),strokeWidth:1}),o},"bpmn:CallActivity":function(e,t,n={}){return n=Ll(n,["fill","stroke"]),L(e,t,{strokeWidth:5,...n})},"bpmn:ComplexGateway":function(e,t,n={}){var o=R(e,t,n=Ll(n,["fill","stroke"]));return y(e,i.getScaledPath("GATEWAY_COMPLEX",{xScaleFactor:.5,yScaleFactor:.5,containerWidth:t.width,containerHeight:t.height,position:{mx:.46,my:.26}}),{fill:Ol(t,l,n.stroke),stroke:Ol(t,l,n.stroke),strokeWidth:1}),o},"bpmn:DataInput":function(e,t,n={}){n=Ll(n,["fill","stroke"]);var o=i.getRawPath("DATA_ARROW"),r=T(e,t,n);return y(e,o,{fill:"none",stroke:Ol(t,l,n.stroke),strokeWidth:1}),r},"bpmn:DataInputAssociation":function(e,t,n={}){return n=Ll(n,["fill","stroke"]),A(e,t,{...n,markerEnd:d(e,"association-end",Cl(t,a,n.fill),Ol(t,l,n.stroke))})},"bpmn:DataObject":function(e,t,n={}){return T(e,t,n=Ll(n,["fill","stroke"]))},"bpmn:DataObjectReference":x("bpmn:DataObject"),"bpmn:DataOutput":function(e,t,n={}){n=Ll(n,["fill","stroke"]);var o=i.getRawPath("DATA_ARROW"),r=T(e,t,n);return y(e,o,{strokeWidth:1,fill:Cl(t,a,n.fill),stroke:Ol(t,l,n.stroke)}),r},"bpmn:DataOutputAssociation":function(e,t,n={}){return n=Ll(n,["fill","stroke"]),A(e,t,{...n,markerEnd:d(e,"association-end",Cl(t,a,n.fill),Ol(t,l,n.stroke))})},"bpmn:DataStoreReference":function(e,t,n={}){return n=Ll(n,["fill","stroke"]),y(e,i.getScaledPath("DATA_STORE",{xScaleFactor:1,yScaleFactor:1,containerWidth:t.width,containerHeight:t.height,position:{mx:0,my:.133}}),{fill:Cl(t,a,n.fill),fillOpacity:Rl,stroke:Ol(t,l,n.stroke),strokeWidth:2})},"bpmn:EndEvent":function(e,t,n={}){var{renderIcon:i=!0}=n;n=Ll(n,["fill","stroke"]);var o=B(e,t,{...n,strokeWidth:4});return i&&_(t,e,n),o},"bpmn:EventBasedGateway":function(e,t,n={}){n=Ll(n,["fill","stroke"]);var o=me(t),r=R(e,t,n);f(e,t.width,t.height,.2*t.height,{fill:Cl(t,"none",n.fill),stroke:Ol(t,l,n.stroke),strokeWidth:1});var s=o.get("eventGatewayType"),a=!!o.get("instantiate");if("Parallel"===s){var c=i.getScaledPath("GATEWAY_PARALLEL",{xScaleFactor:.4,yScaleFactor:.4,containerWidth:t.width,containerHeight:t.height,position:{mx:.474,my:.296}});y(e,c,{fill:"none",stroke:Ol(t,l,n.stroke),strokeWidth:1})}else"Exclusive"===s&&(a||f(e,t.width,t.height,.26*t.height,{fill:"none",stroke:Ol(t,l,n.stroke),strokeWidth:1}),function(){var o=i.getScaledPath("GATEWAY_EVENT_BASED",{xScaleFactor:.18,yScaleFactor:.18,containerWidth:t.width,containerHeight:t.height,position:{mx:.36,my:.44}});y(e,o,{fill:"none",stroke:Ol(t,l,n.stroke),strokeWidth:2})}());return r},"bpmn:ExclusiveGateway":function(e,t,n={}){var o=R(e,t,n=Ll(n,["fill","stroke"])),r=i.getScaledPath("GATEWAY_EXCLUSIVE",{xScaleFactor:.4,yScaleFactor:.4,containerWidth:t.width,containerHeight:t.height,position:{mx:.32,my:.3}});return ge(t).get("isMarkerVisible")&&y(e,r,{fill:Ol(t,l,n.stroke),stroke:Ol(t,l,n.stroke),strokeWidth:1}),o},"bpmn:Gateway":function(e,t,n={}){return R(e,t,n=Ll(n,["fill","stroke"]))},"bpmn:Group":function(e,t,n={}){return n=Ll(n,["fill","stroke","width","height"]),m(e,t.width,t.height,10,{stroke:Ol(t,l,n.stroke),strokeWidth:1.5,strokeDasharray:"10, 6, 0, 6",fill:"none",pointerEvents:"none",width:Al(t,n),height:Tl(t,n)})},"bpmn:InclusiveGateway":function(e,t,n={}){var i=R(e,t,n=Ll(n,["fill","stroke"]));return f(e,t.width,t.height,.24*t.height,{fill:Cl(t,a,n.fill),stroke:Ol(t,l,n.stroke),strokeWidth:2.5}),i},"bpmn:IntermediateEvent":function(e,t,n={}){var{renderIcon:i=!0}=n;n=Ll(n,["fill","stroke"]);var o=B(e,t,{...n,strokeWidth:1.5});return f(e,t.width,t.height,3,{fill:"none",stroke:Ol(t,l,n.stroke),strokeWidth:1.5}),i&&_(t,e,n),o},"bpmn:IntermediateCatchEvent":x("bpmn:IntermediateEvent"),"bpmn:IntermediateThrowEvent":x("bpmn:IntermediateEvent"),"bpmn:Lane":function(e,t,n={}){return n=Ll(n,["fill","stroke","width","height"]),D(e,t,{...n,fillOpacity:.25})},"bpmn:ManualTask":function(e,t,n={}){var o=z(e,t,n=Ll(n,["fill","stroke"]));return y(e,i.getScaledPath("TASK_TYPE_MANUAL",{abspos:{x:17,y:15}}),{fill:Cl(t,a,n.fill),stroke:Ol(t,l,n.stroke),strokeWidth:.5}),o},"bpmn:MessageFlow":function(e,t,n={}){n=Ll(n,["fill","stroke"]);var o=me(t),r=ge(t),s=Cl(t,a,n.fill),c=Ol(t,l,n.stroke),h=v(e,t.waypoints,{markerEnd:d(e,"messageflow-end",s,c),markerStart:d(e,"messageflow-start",s,c),stroke:c,strokeDasharray:"10, 11",strokeWidth:1.5});if(o.get("messageRef")){var u=h.getPointAtLength(h.getTotalLength()/2),p=i.getScaledPath("MESSAGE_FLOW_MARKER",{abspos:{x:u.x,y:u.y}}),f={strokeWidth:1};"initiating"===r.get("messageVisibleKind")?(f.fill=s,f.stroke=c):(f.fill=c,f.stroke=s);var m=y(e,p,f),g=C(e,o.get("messageRef").get("name"),{align:"center-top",fitBox:!0,style:{fill:c}}),b=m.getBBox(),w=g.getBBox();Es(g,u.x-w.width/2,u.y+b.height/2+10,0)}return h},"bpmn:ParallelGateway":function(e,t,n={}){var o=R(e,t,n=Ll(n,["fill","stroke"]));return y(e,i.getScaledPath("GATEWAY_PARALLEL",{xScaleFactor:.6,yScaleFactor:.6,containerWidth:t.width,containerHeight:t.height,position:{mx:.46,my:.2}}),{fill:Ol(t,l,n.stroke),stroke:Ol(t,l,n.stroke),strokeWidth:1}),o},"bpmn:Participant":function(e,t,n={}){var i=D(e,t,n=Ll(n,["fill","stroke","width","height"])),o=ul(t),r=pl(t),s=me(t),a=s.get("name");if(o)g(e,r?[{x:30,y:0},{x:30,y:Tl(t,n)}]:[{x:0,y:30},{x:Al(t,n),y:30}],{stroke:Ol(t,l,n.stroke),strokeWidth:1.5}),P(e,a,t,n);else{var h=Ml(t,n);r||(h.height=Al(t,n),h.width=Tl(t,n));var u=C(e,a,{box:h,align:"center-middle",style:{fill:Pl(t,c,l,n.stroke)}});r||Es(u,0,1*Tl(t,n),270)}return s.get("participantMultiplicity")&&k("ParticipantMultiplicityMarker",e,t,n),i},"bpmn:ReceiveTask":function(e,t,n={}){n=Ll(n,["fill","stroke"]);var o,r=me(t),s=z(e,t,n);return r.get("instantiate")?(f(e,28,28,4.4,{fill:Cl(t,a,n.fill),stroke:Ol(t,l,n.stroke),strokeWidth:1}),o=i.getScaledPath("TASK_TYPE_INSTANTIATING_SEND",{abspos:{x:7.77,y:9.52}})):o=i.getScaledPath("TASK_TYPE_SEND",{xScaleFactor:.9,yScaleFactor:.9,containerWidth:21,containerHeight:14,position:{mx:.3,my:.4}}),y(e,o,{fill:Cl(t,a,n.fill),stroke:Ol(t,l,n.stroke),strokeWidth:1}),s},"bpmn:ScriptTask":function(e,t,n={}){var o=z(e,t,n=Ll(n,["fill","stroke"]));return y(e,i.getScaledPath("TASK_TYPE_SCRIPT",{abspos:{x:15,y:20}}),{fill:Cl(t,a,n.fill),stroke:Ol(t,l,n.stroke),strokeWidth:1}),o},"bpmn:SendTask":function(e,t,n={}){var o=z(e,t,n=Ll(n,["fill","stroke"]));return y(e,i.getScaledPath("TASK_TYPE_SEND",{xScaleFactor:1,yScaleFactor:1,containerWidth:21,containerHeight:14,position:{mx:.285,my:.357}}),{fill:Ol(t,l,n.stroke),stroke:Cl(t,a,n.fill),strokeWidth:1}),o},"bpmn:SequenceFlow":function(e,t,n={}){n=Ll(n,["fill","stroke"]);var i=Cl(t,a,n.fill),o=Ol(t,l,n.stroke),r=v(e,t.waypoints,{markerEnd:d(e,"sequenceflow-end",i,o),stroke:o}),s=me(t),{source:c}=t;if(c){var h=me(c);s.get("conditionExpression")&&de(h,"bpmn:Activity")&&ln(r,{markerStart:d(e,"conditional-flow-marker",i,o)}),h.get("default")&&(de(h,"bpmn:Gateway")||de(h,"bpmn:Activity"))&&h.get("default")===s&&ln(r,{markerStart:d(e,"conditional-default-flow-marker",i,o)})}return r},"bpmn:ServiceTask":function(e,t,n={}){var o=z(e,t,n=Ll(n,["fill","stroke"]));return f(e,10,10,{fill:Cl(t,a,n.fill),stroke:"none",transform:"translate(6, 6)"}),y(e,i.getScaledPath("TASK_TYPE_SERVICE",{abspos:{x:12,y:18}}),{fill:Cl(t,a,n.fill),stroke:Ol(t,l,n.stroke),strokeWidth:1}),f(e,10,10,{fill:Cl(t,a,n.fill),stroke:"none",transform:"translate(11, 10)"}),y(e,i.getScaledPath("TASK_TYPE_SERVICE",{abspos:{x:17,y:22}}),{fill:Cl(t,a,n.fill),stroke:Ol(t,l,n.stroke),strokeWidth:1}),o},"bpmn:StartEvent":function(e,t,n={}){var{renderIcon:i=!0}=n;n=Ll(n,["fill","stroke"]),me(t).get("isInterrupting")||(n={...n,strokeDasharray:"6"});var o=B(e,t,n);return i&&_(t,e,n),o},"bpmn:SubProcess":function(e,t,n={}){return L(e,t,n=ul(t)?Ll(n,["fill","stroke","width","height"]):Ll(n,["fill","stroke"]))},"bpmn:Task":function(e,t,n={}){return z(e,t,n=Ll(n,["fill","stroke"]))},"bpmn:TextAnnotation":function(e,t,n={}){n=Ll(n,["fill","stroke","width","height"]);var{width:o,height:r}=Ml(t,n),s=m(e,o,r,0,0,{fill:"none",stroke:"none"});return y(e,i.getScaledPath("TEXT_ANNOTATION",{xScaleFactor:1,yScaleFactor:1,containerWidth:o,containerHeight:r,position:{mx:0,my:0}}),{stroke:Ol(t,l,n.stroke)}),C(e,me(t).get("text")||"",{align:"left-top",box:Ml(t,n),padding:7,style:{fill:Pl(t,c,l,n.stroke)}}),s},"bpmn:Transaction":function(e,t,i={}){i=ul(t)?Ll(i,["fill","stroke","width","height"]):Ll(i,["fill","stroke"]);var o=L(e,t,{strokeWidth:1.5,...i}),r=n.style(["no-fill","no-events"],{stroke:Ol(t,l,i.stroke),strokeWidth:1.5});return ul(t)||(i={}),m(e,Al(t,i),Tl(t,i),7,3,r),o},"bpmn:UserTask":function(e,t,n={}){var o=z(e,t,n=Ll(n,["fill","stroke"]));return y(e,i.getScaledPath("TASK_TYPE_USER_1",{abspos:{x:15,y:12}}),{fill:Cl(t,a,n.fill),stroke:Ol(t,l,n.stroke),strokeWidth:.5}),y(e,i.getScaledPath("TASK_TYPE_USER_2",{abspos:{x:15,y:12}}),{fill:Cl(t,a,n.fill),stroke:Ol(t,l,n.stroke),strokeWidth:.5}),y(e,i.getScaledPath("TASK_TYPE_USER_3",{abspos:{x:15,y:12}}),{fill:Ol(t,l,n.stroke),stroke:Ol(t,l,n.stroke),strokeWidth:.5}),o},label:function(e,t,n={}){return function(e,t,n={}){var i={width:90,height:30,x:t.width/2+t.x,y:t.height/2+t.y};return C(e,_l(t),{box:i,fitBox:!0,style:ce({},r.getExternalStyle(),{fill:Pl(t,c,l,n.stroke)})})}(e,t,n)}};this._drawPath=y,this._renderer=w}function Ll(e,t=[]){return t.reduce(((t,n)=>(e[n]&&(t[n]=e[n]),t)),{})}lt(Dl,Do),Dl.$inject=["config.bpmnRenderer","eventBus","styles","pathMap","canvas","textRenderer"],Dl.prototype.canRender=function(e){return de(e,"bpmn:BaseElement")},Dl.prototype.drawShape=function(e,t,n={}){var{type:i}=t;return this._renderer(i)(e,t,n)},Dl.prototype.drawConnection=function(e,t,n={}){var{type:i}=t;return this._renderer(i)(e,t,n)},Dl.prototype.getShapePath=function(e){return de(e,"bpmn:Event")?Lo([["M",(t=e).x+t.width/2,t.y+t.height/2],["m",0,-(n=t.width/2)],["a",n,n,0,1,1,0,2*n],["a",n,n,0,1,1,0,-2*n],["z"]]):de(e,"bpmn:Activity")?function(e,t){var n=e.x,i=e.y,o=e.width,r=e.height;return Lo([["M",n+t,i],["l",o-20,0],["a",t,t,0,0,1,t,t],["l",0,r-20],["a",t,t,0,0,1,-10,t],["l",20-o,0],["a",t,t,0,0,1,-10,-10],["l",0,20-r],["a",t,t,0,0,1,t,-10],["z"]])}(e,10):de(e,"bpmn:Gateway")?function(e){var t=e.width/2,n=e.height/2;return Lo([["M",e.x+t,e.y],["l",t,n],["l",-t,n],["l",-t,-n],["z"]])}(e):function(e){var t=e.x,n=e.y,i=e.width;return Lo([["M",t,n],["l",i,0],["l",0,e.height],["l",-i,0],["z"]])}(e);var t,n};var Nl=0,zl={width:150,height:50};function Il(e,t){var n;t.textContent=e;try{var i,o=""===e;return t.textContent=o?"dummy":e,i={width:(n=t.getBBox()).width+2*n.x,height:n.height},o&&(i.width=0),i}catch(e){return{width:0,height:0}}}function Fl(e,t,n){for(var i,o=e.shift(),r=o;;){if((i=Il(r,n)).width=r?i.width:0," "===r||""===r||i.width1)for(;n=i.shift();){if(!(n.length+re?t.width:e}),0),m=s.top;"middle"===r.vertical&&(m+=(i.height-d)/2),m-=(l||h[0].height)/4;var g=vn("text");return ln(g,o),V(h,(function(e){var t;switch(m+=l||e.height,r.horizontal){case"left":t=s.left;break;case"right":t=(a?f:u)-s.right-e.width;break;default:t=Math.max(((a?f:u)-e.width)/2+s.left,0)}var n=vn("tspan");ln(n,{x:t,y:m}),n.textContent=e.text,on(g,n)})),Pn(p),{dimensions:{width:f,height:d},element:g}},Vl.$inject=["config.textRenderer"];var Wl=/\{([^{}]+)\}/g,Gl=/(?:(?:^|\.)(.+?)(?=\[|\.|$|\()|\[('|")(.+?)\2\])(\(\))?/g;const Ql={__init__:["bpmnRenderer"],bpmnRenderer:["type",Dl],textRenderer:["type",Vl],pathMap:["type",function(){this.pathMap={EVENT_MESSAGE:{d:"m {mx},{my} l 0,{e.y1} l {e.x1},0 l 0,-{e.y1} z l {e.x0},{e.y0} l {e.x0},-{e.y0}",height:36,width:36,heightElements:[6,14],widthElements:[10.5,21]},EVENT_SIGNAL:{d:"M {mx},{my} l {e.x0},{e.y0} l -{e.x1},0 Z",height:36,width:36,heightElements:[18],widthElements:[10,20]},EVENT_ESCALATION:{d:"M {mx},{my} l {e.x0},{e.y0} l -{e.x0},-{e.y1} l -{e.x0},{e.y1} Z",height:36,width:36,heightElements:[20,7],widthElements:[8]},EVENT_CONDITIONAL:{d:"M {e.x0},{e.y0} l {e.x1},0 l 0,{e.y2} l -{e.x1},0 Z M {e.x2},{e.y3} l {e.x0},0 M {e.x2},{e.y4} l {e.x0},0 M {e.x2},{e.y5} l {e.x0},0 M {e.x2},{e.y6} l {e.x0},0 M {e.x2},{e.y7} l {e.x0},0 M {e.x2},{e.y8} l {e.x0},0 ",height:36,width:36,heightElements:[8.5,14.5,18,11.5,14.5,17.5,20.5,23.5,26.5],widthElements:[10.5,14.5,12.5]},EVENT_LINK:{d:"m {mx},{my} 0,{e.y0} -{e.x1},0 0,{e.y1} {e.x1},0 0,{e.y0} {e.x0},-{e.y2} -{e.x0},-{e.y2} z",height:36,width:36,heightElements:[4.4375,6.75,7.8125],widthElements:[9.84375,13.5]},EVENT_ERROR:{d:"m {mx},{my} {e.x0},-{e.y0} {e.x1},-{e.y1} {e.x2},{e.y2} {e.x3},-{e.y3} -{e.x4},{e.y4} -{e.x5},-{e.y5} z",height:36,width:36,heightElements:[.023,8.737,8.151,16.564,10.591,8.714],widthElements:[.085,6.672,6.97,4.273,5.337,6.636]},EVENT_CANCEL_45:{d:"m {mx},{my} -{e.x1},0 0,{e.x0} {e.x1},0 0,{e.y1} {e.x0},0 0,-{e.y1} {e.x1},0 0,-{e.y0} -{e.x1},0 0,-{e.y1} -{e.x0},0 z",height:36,width:36,heightElements:[4.75,8.5],widthElements:[4.75,8.5]},EVENT_COMPENSATION:{d:"m {mx},{my} {e.x0},-{e.y0} 0,{e.y1} z m {e.x1},-{e.y2} {e.x2},-{e.y3} 0,{e.y1} -{e.x2},-{e.y3} z",height:36,width:36,heightElements:[6.5,13,.4,6.1],widthElements:[9,9.3,8.7]},EVENT_TIMER_WH:{d:"M {mx},{my} l {e.x0},-{e.y0} m -{e.x0},{e.y0} l {e.x1},{e.y1} ",height:36,width:36,heightElements:[10,2],widthElements:[3,7]},EVENT_TIMER_LINE:{d:"M {mx},{my} m {e.x0},{e.y0} l -{e.x1},{e.y1} ",height:36,width:36,heightElements:[10,3],widthElements:[0,0]},EVENT_MULTIPLE:{d:"m {mx},{my} {e.x1},-{e.y0} {e.x1},{e.y0} -{e.x0},{e.y1} -{e.x2},0 z",height:36,width:36,heightElements:[6.28099,12.56199],widthElements:[3.1405,9.42149,12.56198]},EVENT_PARALLEL_MULTIPLE:{d:"m {mx},{my} {e.x0},0 0,{e.y1} {e.x1},0 0,{e.y0} -{e.x1},0 0,{e.y1} -{e.x0},0 0,-{e.y1} -{e.x1},0 0,-{e.y0} {e.x1},0 z",height:36,width:36,heightElements:[2.56228,7.68683],widthElements:[2.56228,7.68683]},GATEWAY_EXCLUSIVE:{d:"m {mx},{my} {e.x0},{e.y0} {e.x1},{e.y0} {e.x2},0 {e.x4},{e.y2} {e.x4},{e.y1} {e.x2},0 {e.x1},{e.y3} {e.x0},{e.y3} {e.x3},0 {e.x5},{e.y1} {e.x5},{e.y2} {e.x3},0 z",height:17.5,width:17.5,heightElements:[8.5,6.5312,-6.5312,-8.5],widthElements:[6.5,-6.5,3,-3,5,-5]},GATEWAY_PARALLEL:{d:"m {mx},{my} 0,{e.y1} -{e.x1},0 0,{e.y0} {e.x1},0 0,{e.y1} {e.x0},0 0,-{e.y1} {e.x1},0 0,-{e.y0} -{e.x1},0 0,-{e.y1} -{e.x0},0 z",height:30,width:30,heightElements:[5,12.5],widthElements:[5,12.5]},GATEWAY_EVENT_BASED:{d:"m {mx},{my} {e.x0},{e.y0} {e.x0},{e.y1} {e.x1},{e.y2} {e.x2},0 z",height:11,width:11,heightElements:[-6,6,12,-12],widthElements:[9,-3,-12]},GATEWAY_COMPLEX:{d:"m {mx},{my} 0,{e.y0} -{e.x0},-{e.y1} -{e.x1},{e.y2} {e.x0},{e.y1} -{e.x2},0 0,{e.y3} {e.x2},0 -{e.x0},{e.y1} l {e.x1},{e.y2} {e.x0},-{e.y1} 0,{e.y0} {e.x3},0 0,-{e.y0} {e.x0},{e.y1} {e.x1},-{e.y2} -{e.x0},-{e.y1} {e.x2},0 0,-{e.y3} -{e.x2},0 {e.x0},-{e.y1} -{e.x1},-{e.y2} -{e.x0},{e.y1} 0,-{e.y0} -{e.x3},0 z",height:17.125,width:17.125,heightElements:[4.875,3.4375,2.125,3],widthElements:[3.4375,2.125,4.875,3]},DATA_OBJECT_PATH:{d:"m 0,0 {e.x1},0 {e.x0},{e.y0} 0,{e.y1} -{e.x2},0 0,-{e.y2} {e.x1},0 0,{e.y0} {e.x0},0",height:61,width:51,heightElements:[10,50,60],widthElements:[10,40,50,60]},DATA_OBJECT_COLLECTION_PATH:{d:"m{mx},{my} m 3,2 l 0,10 m 3,-10 l 0,10 m 3,-10 l 0,10",height:10,width:10,heightElements:[],widthElements:[]},DATA_ARROW:{d:"m 5,9 9,0 0,-3 5,5 -5,5 0,-3 -9,0 z",height:61,width:51,heightElements:[],widthElements:[]},DATA_STORE:{d:"m {mx},{my} l 0,{e.y2} c {e.x0},{e.y1} {e.x1},{e.y1} {e.x2},0 l 0,-{e.y2} c -{e.x0},-{e.y1} -{e.x1},-{e.y1} -{e.x2},0c {e.x0},{e.y1} {e.x1},{e.y1} {e.x2},0 m -{e.x2},{e.y0}c {e.x0},{e.y1} {e.x1},{e.y1} {e.x2},0m -{e.x2},{e.y0}c {e.x0},{e.y1} {e.x1},{e.y1} {e.x2},0",height:61,width:61,heightElements:[7,10,45],widthElements:[2,58,60]},TEXT_ANNOTATION:{d:"m {mx}, {my} m 10,0 l -10,0 l 0,{e.y0} l 10,0",height:30,width:10,heightElements:[30],widthElements:[10]},MARKER_SUB_PROCESS:{d:"m{mx},{my} m 7,2 l 0,10 m -5,-5 l 10,0",height:10,width:10,heightElements:[],widthElements:[]},MARKER_PARALLEL:{d:"m{mx},{my} m 3,2 l 0,10 m 3,-10 l 0,10 m 3,-10 l 0,10",height:10,width:10,heightElements:[],widthElements:[]},MARKER_SEQUENTIAL:{d:"m{mx},{my} m 0,3 l 10,0 m -10,3 l 10,0 m -10,3 l 10,0",height:10,width:10,heightElements:[],widthElements:[]},MARKER_COMPENSATION:{d:"m {mx},{my} 7,-5 0,10 z m 7.1,-0.3 6.9,-4.7 0,10 -6.9,-4.7 z",height:10,width:21,heightElements:[],widthElements:[]},MARKER_LOOP:{d:"m {mx},{my} c 3.526979,0 6.386161,-2.829858 6.386161,-6.320661 0,-3.490806 -2.859182,-6.320661 -6.386161,-6.320661 -3.526978,0 -6.38616,2.829855 -6.38616,6.320661 0,1.745402 0.714797,3.325567 1.870463,4.469381 0.577834,0.571908 1.265885,1.034728 2.029916,1.35457 l -0.718163,-3.909793 m 0.718163,3.909793 -3.885211,0.802902",height:13.9,width:13.7,heightElements:[],widthElements:[]},MARKER_ADHOC:{d:"m {mx},{my} m 0.84461,2.64411 c 1.05533,-1.23780996 2.64337,-2.07882 4.29653,-1.97997996 2.05163,0.0805 3.85579,1.15803 5.76082,1.79107 1.06385,0.34139996 2.24454,0.1438 3.18759,-0.43767 0.61743,-0.33642 1.2775,-0.64078 1.7542,-1.17511 0,0.56023 0,1.12046 0,1.6807 -0.98706,0.96237996 -2.29792,1.62393996 -3.6918,1.66181996 -1.24459,0.0927 -2.46671,-0.2491 -3.59505,-0.74812 -1.35789,-0.55965 -2.75133,-1.33436996 -4.27027,-1.18121996 -1.37741,0.14601 -2.41842,1.13685996 -3.44288,1.96782996 z",height:4,width:15,heightElements:[],widthElements:[]},TASK_TYPE_SEND:{d:"m {mx},{my} l 0,{e.y1} l {e.x1},0 l 0,-{e.y1} z l {e.x0},{e.y0} l {e.x0},-{e.y0}",height:14,width:21,heightElements:[6,14],widthElements:[10.5,21]},TASK_TYPE_SCRIPT:{d:"m {mx},{my} c 9.966553,-6.27276 -8.000926,-7.91932 2.968968,-14.938 l -8.802728,0 c -10.969894,7.01868 6.997585,8.66524 -2.968967,14.938 z m -7,-12 l 5,0 m -4.5,3 l 4.5,0 m -3,3 l 5,0m -4,3 l 5,0",height:15,width:12.6,heightElements:[6,14],widthElements:[10.5,21]},TASK_TYPE_USER_1:{d:"m {mx},{my} c 0.909,-0.845 1.594,-2.049 1.594,-3.385 0,-2.554 -1.805,-4.62199999 -4.357,-4.62199999 -2.55199998,0 -4.28799998,2.06799999 -4.28799998,4.62199999 0,1.348 0.974,2.562 1.89599998,3.405 -0.52899998,0.187 -5.669,2.097 -5.794,4.7560005 v 6.718 h 17 v -6.718 c 0,-2.2980005 -5.5279996,-4.5950005 -6.0509996,-4.7760005 zm -8,6 l 0,5.5 m 11,0 l 0,-5"},TASK_TYPE_USER_2:{d:"m {mx},{my} m 2.162,1.009 c 0,2.4470005 -2.158,4.4310005 -4.821,4.4310005 -2.66499998,0 -4.822,-1.981 -4.822,-4.4310005 "},TASK_TYPE_USER_3:{d:"m {mx},{my} m -6.9,-3.80 c 0,0 2.25099998,-2.358 4.27399998,-1.177 2.024,1.181 4.221,1.537 4.124,0.965 -0.098,-0.57 -0.117,-3.79099999 -4.191,-4.13599999 -3.57499998,0.001 -4.20799998,3.36699999 -4.20699998,4.34799999 z"},TASK_TYPE_MANUAL:{d:"m {mx},{my} c 0.234,-0.01 5.604,0.008 8.029,0.004 0.808,0 1.271,-0.172 1.417,-0.752 0.227,-0.898 -0.334,-1.314 -1.338,-1.316 -2.467,-0.01 -7.886,-0.004 -8.108,-0.004 -0.014,-0.079 0.016,-0.533 0,-0.61 0.195,-0.042 8.507,0.006 9.616,0.002 0.877,-0.007 1.35,-0.438 1.353,-1.208 0.003,-0.768 -0.479,-1.09 -1.35,-1.091 -2.968,-0.002 -9.619,-0.013 -9.619,-0.013 v -0.591 c 0,0 5.052,-0.016 7.225,-0.016 0.888,-0.002 1.354,-0.416 1.351,-1.193 -0.006,-0.761 -0.492,-1.196 -1.361,-1.196 -3.473,-0.005 -10.86,-0.003 -11.0829995,-0.003 -0.022,-0.047 -0.045,-0.094 -0.069,-0.139 0.3939995,-0.319 2.0409995,-1.626 2.4149995,-2.017 0.469,-0.4870005 0.519,-1.1650005 0.162,-1.6040005 -0.414,-0.511 -0.973,-0.5 -1.48,-0.236 -1.4609995,0.764 -6.5999995,3.6430005 -7.7329995,4.2710005 -0.9,0.499 -1.516,1.253 -1.882,2.19 -0.37000002,0.95 -0.17,2.01 -0.166,2.979 0.004,0.718 -0.27300002,1.345 -0.055,2.063 0.629,2.087 2.425,3.312 4.859,3.318 4.6179995,0.014 9.2379995,-0.139 13.8569995,-0.158 0.755,-0.004 1.171,-0.301 1.182,-1.033 0.012,-0.754 -0.423,-0.969 -1.183,-0.973 -1.778,-0.01 -5.824,-0.004 -6.04,-0.004 10e-4,-0.084 0.003,-0.586 10e-4,-0.67 z"},TASK_TYPE_INSTANTIATING_SEND:{d:"m {mx},{my} l 0,8.4 l 12.6,0 l 0,-8.4 z l 6.3,3.6 l 6.3,-3.6"},TASK_TYPE_SERVICE:{d:"m {mx},{my} v -1.71335 c 0.352326,-0.0705 0.703932,-0.17838 1.047628,-0.32133 0.344416,-0.14465 0.665822,-0.32133 0.966377,-0.52145 l 1.19431,1.18005 1.567487,-1.57688 -1.195028,-1.18014 c 0.403376,-0.61394 0.683079,-1.29908 0.825447,-2.01824 l 1.622133,-0.01 v -2.2196 l -1.636514,0.01 c -0.07333,-0.35153 -0.178319,-0.70024 -0.323564,-1.04372 -0.145244,-0.34406 -0.321407,-0.6644 -0.522735,-0.96217 l 1.131035,-1.13631 -1.583305,-1.56293 -1.129598,1.13589 c -0.614052,-0.40108 -1.302883,-0.68093 -2.022633,-0.82247 l 0.0093,-1.61852 h -2.241173 l 0.0042,1.63124 c -0.353763,0.0736 -0.705369,0.17977 -1.049785,0.32371 -0.344415,0.14437 -0.665102,0.32092 -0.9635006,0.52046 l -1.1698628,-1.15823 -1.5667691,1.5792 1.1684265,1.15669 c -0.4026573,0.61283 -0.68308,1.29797 -0.8247287,2.01713 l -1.6588041,0.003 v 2.22174 l 1.6724648,-0.006 c 0.073327,0.35077 0.1797598,0.70243 0.3242851,1.04472 0.1452428,0.34448 0.3214064,0.6644 0.5227339,0.96066 l -1.1993431,1.19723 1.5840256,1.56011 1.1964668,-1.19348 c 0.6140517,0.40346 1.3028827,0.68232 2.0233517,0.82331 l 7.19e-4,1.69892 h 2.226848 z m 0.221462,-3.9957 c -1.788948,0.7502 -3.8576,-0.0928 -4.6097055,-1.87438 -0.7521065,-1.78321 0.090598,-3.84627 1.8802645,-4.59604 1.78823,-0.74936 3.856881,0.0929 4.608987,1.87437 0.752106,1.78165 -0.0906,3.84612 -1.879546,4.59605 z"},TASK_TYPE_SERVICE_FILL:{d:"m {mx},{my} c -1.788948,0.7502 -3.8576,-0.0928 -4.6097055,-1.87438 -0.7521065,-1.78321 0.090598,-3.84627 1.8802645,-4.59604 1.78823,-0.74936 3.856881,0.0929 4.608987,1.87437 0.752106,1.78165 -0.0906,3.84612 -1.879546,4.59605 z"},TASK_TYPE_BUSINESS_RULE_HEADER:{d:"m {mx},{my} 0,4 20,0 0,-4 z"},TASK_TYPE_BUSINESS_RULE_MAIN:{d:"m {mx},{my} 0,12 20,0 0,-12 zm 0,8 l 20,0 m -13,-4 l 0,8"},MESSAGE_FLOW_MARKER:{d:"m {mx},{my} m -10.5 ,-7 l 0,14 l 21,0 l 0,-14 z l 10.5,6 l 10.5,-6"}},this.getRawPath=function(e){return this.pathMap[e].d},this.getScaledPath=function(e,t){var n,i,o=this.pathMap[e];t.abspos?(n=t.abspos.x,i=t.abspos.y):(n=t.containerWidth*t.position.mx,i=t.containerHeight*t.position.my);var r,s,a={};if(t.position){for(var l=t.containerHeight/o.height*t.yScaleFactor,c=t.containerWidth/o.width*t.xScaleFactor,h=0;h=e.x&&n<=e.x+e.width&&i>=e.y&&i<=e.y+e.height}(n,Qr(c))||(n=this._canvas.findRoot(n))),this._canvas.addShape(i,n,r)}else{if(!de(t,"bpmndi:BPMNEdge"))throw new Error(`unknown di ${Wa(t)} for element ${Wa(e)}`);var h=this._getSource(e),u=this._getTarget(e);o=n&&(n.hidden||n.collapsed),i=this._elementFactory.createConnection(Ul(e,t,{hidden:o,source:h,target:u,waypoints:Yl(t,h,u)})),de(e,"bpmn:DataAssociation")&&(n=this._canvas.findRoot(n)),this._canvas.addConnection(i,n,r)}return yl(e)&&_l(i)&&this.addLabel(e,t,i),this._eventBus.fire("bpmnElement.added",{element:i}),i},Zl.prototype._attachBoundary=function(e,t){var n=e.attachedToRef;if(!n)throw new Error(`missing ${Wa(e)}#attachedToRef`);var i=this._elementRegistry.get(n.id),o=i&&i.attachers;if(!i)throw Kl(e,n,"attachedToRef");t.host=i,o||(i.attachers=o=[]),-1===o.indexOf(t)&&o.push(t)},Zl.prototype.addLabel=function(e,t,n){var i,o,r;return i=function(e,t){var n,i,o,r=e.label;return r&&r.bounds?(o=r.bounds,i={width:Math.max(gl.width,o.width),height:o.height},n={x:o.x+o.width/2,y:o.y+o.height/2}):(n=wl(t),i=gl),ce({x:n.x-i.width/2,y:n.y-i.height/2},i)}(t,n),(o=_l(n))&&(i=this._textRenderer.getExternalLabelBounds(i,o)),r=this._elementFactory.createLabel(Ul(e,t,{id:e.id+"_label",labelTarget:n,type:"label",hidden:n.hidden||!_l(n),x:Math.round(i.x),y:Math.round(i.y),width:Math.round(i.width),height:Math.round(i.height)})),this._canvas.addShape(r,n.parent)},Zl.prototype._getConnectedElement=function(e,t){var n,i,o=e.$type;if(i=e[t+"Ref"],"source"===t&&"bpmn:DataInputAssociation"===o&&(i=i&&i[0]),("source"===t&&"bpmn:DataOutputAssociation"===o||"target"===t&&"bpmn:DataInputAssociation"===o)&&(i=e.$parent),n=i&&this._getElement(i))return n;throw i?Kl(e,i,t+"Ref"):new Error(`${Wa(e)}#${t} Ref not specified`)},Zl.prototype._getSource=function(e){return this._getConnectedElement(e,"source")},Zl.prototype._getTarget=function(e){return this._getConnectedElement(e,"target")},Zl.prototype._getElement=function(e){return this._elementRegistry.get(e.id)};const Jl={__depends__:[Ql,{__depends__:[Xl],bpmnImporter:["type",Zl]}]};function ec(e){this._counter=0,this._prefix=(e?e+"-":"")+Math.floor(1e9*Math.random())+"-"}ec.prototype.next=function(){return this._prefix+ ++this._counter};var tc=new ec("ov");function nc(e,t,n,i){var o,r;this._eventBus=t,this._canvas=n,this._elementRegistry=i,this._ids=tc,this._overlayDefaults=ce({show:null,scale:!0},e&&e.defaults),this._overlays={},this._overlayContainers=[],this._overlayRoot=(o=n.getContainer(),Rt(r=Kt('
'),{position:"absolute",width:0,height:0}),o.insertBefore(r,o.firstChild),r),this._init()}function ic(e,t,n){Rt(e,{left:t+"px",top:n+"px"})}function oc(e,t){e.style.display=!1===t?"none":""}function rc(e,t){e.style["transform-origin"]="top left",["","-ms-","-webkit-"].forEach((function(n){e.style[n+"transform"]=t}))}nc.$inject=["config.overlays","eventBus","canvas","elementRegistry"],nc.prototype.get=function(e){if(F(e)&&(e={id:e}),F(e.element)&&(e.element=this._elementRegistry.get(e.element)),e.element){var t=this._getOverlayContainer(e.element,!0);return t?e.type?H(t.overlays,ne({type:e.type})):t.overlays.slice():[]}return e.type?H(this._overlays,ne({type:e.type})):e.id?this._overlays[e.id]:null},nc.prototype.add=function(e,t,n){if(N(t)&&(n=t,t=null),e.id||(e=this._elementRegistry.get(e)),!n.position)throw new Error("must specifiy overlay position");if(!n.html)throw new Error("must specifiy overlay html");if(!e)throw new Error("invalid element specified");var i=this._ids.next();return n=ce({},this._overlayDefaults,n,{id:i,type:t,element:e,html:n.html}),this._addOverlay(n),i},nc.prototype.remove=function(e){var t=this.get(e)||[];L(t)||(t=[t]);var n=this;V(t,(function(e){var t=n._getOverlayContainer(e.element,!0);if(e&&(tn(e.html),tn(e.htmlContainer),delete e.htmlContainer,delete e.element,delete n._overlays[e.id]),t){var i=t.overlays.indexOf(e);-1!==i&&t.overlays.splice(i,1)}}))},nc.prototype.isShown=function(){return"none"!==this._overlayRoot.style.display},nc.prototype.show=function(){oc(this._overlayRoot)},nc.prototype.hide=function(){oc(this._overlayRoot,!1)},nc.prototype.clear=function(){this._overlays={},this._overlayContainers=[],It(this._overlayRoot)},nc.prototype._updateOverlayContainer=function(e){var t=e.element,n=e.html,i=t.x,o=t.y;if(t.waypoints){var r=Qo(t);i=r.x,o=r.y}ic(n,i,o),Dt(e.html,"data-container-id",t.id)},nc.prototype._updateOverlay=function(e){var t,n,i=e.position,o=e.htmlContainer,r=e.element,s=i.left,a=i.top;void 0!==i.right&&(t=r.waypoints?Qo(r).width:r.width,s=-1*i.right+t),void 0!==i.bottom&&(n=r.waypoints?Qo(r).height:r.height,a=-1*i.bottom+n),ic(o,s||0,a||0),this._updateOverlayVisibilty(e,this._canvas.viewbox())},nc.prototype._createOverlayContainer=function(e){var t=Kt('
');Rt(t,{position:"absolute"}),this._overlayRoot.appendChild(t);var n={html:t,element:e,overlays:[]};return this._updateOverlayContainer(n),this._overlayContainers.push(n),n},nc.prototype._updateRoot=function(e){var t=e.scale||1,n="matrix("+[t,0,0,t,-1*e.x*t,-1*e.y*t].join(",")+")";rc(this._overlayRoot,n)},nc.prototype._getOverlayContainer=function(e,t){var n=j(this._overlayContainers,(function(t){return t.element===e}));return n||t?n:this._createOverlayContainer(e)},nc.prototype._addOverlay=function(e){var t,n,i=e.id,o=e.element,r=e.html;r.get&&r.constructor.prototype.jquery&&(r=r.get(0)),F(r)&&(r=Kt(r)),n=this._getOverlayContainer(o),Rt(t=Kt('
'),{position:"absolute"}),t.appendChild(r),e.type&&Nt(t).add("djs-overlay-"+e.type),oc(t,this._canvas.findRoot(o)===this._canvas.getRootElement()),e.htmlContainer=t,n.overlays.push(e),n.html.appendChild(t),this._overlays[i]=e,this._updateOverlay(e),this._updateOverlayVisibilty(e,this._canvas.viewbox())},nc.prototype._updateOverlayVisibilty=function(e,t){var n=e.show,i=this._canvas.findRoot(e.element),o=n&&n.minZoom,r=n&&n.maxZoom,s=e.htmlContainer,a=!0;(i!==this._canvas.getRootElement()||n&&(R(o)&&o>t.scale||R(r)&&ri&&(o=(1/t.scale||1)*i)),R(o)&&(a="scale("+o+","+o+")"),rc(s,a)},nc.prototype._updateOverlaysVisibilty=function(e){var t=this;V(this._overlays,(function(n){t._updateOverlayVisibilty(n,e)}))},nc.prototype._init=function(){var e=this._eventBus,t=this;e.on("canvas.viewbox.changing",(function(e){t.hide()})),e.on("canvas.viewbox.changed",(function(e){var n;n=e.viewbox,t._updateRoot(n),t._updateOverlaysVisibilty(n),t.show()})),e.on(["shape.remove","connection.remove"],(function(e){var n=e.element;V(t.get({element:n}),(function(e){t.remove(e.id)}));var i=t._getOverlayContainer(n);if(i){tn(i.html);var o=t._overlayContainers.indexOf(i);-1!==o&&t._overlayContainers.splice(o,1)}})),e.on("element.changed",500,(function(e){var n=e.element,i=t._getOverlayContainer(n,!0);i&&(V(i.overlays,(function(e){t._updateOverlay(e)})),t._updateOverlayContainer(i))})),e.on("element.marker.update",(function(e){var n=t._getOverlayContainer(e.element,!0);n&&Nt(n.html)[e.add?"add":"remove"](e.marker)})),e.on("root.set",(function(){t._updateOverlaysVisibilty(t._canvas.viewbox())})),e.on("diagram.clear",this.clear,this)};const sc={__init__:["overlays"],overlays:["type",nc]};function ac(e,t,n,i){e.on("element.changed",(function(i){var o=i.element;(o.parent||o===t.getRootElement())&&(i.gfx=n.getGraphics(o)),i.gfx&&e.fire(Xo(o)+".changed",i)})),e.on("elements.changed",(function(t){var n=t.elements;n.forEach((function(t){e.fire("element.changed",{element:t})})),i.updateContainments(n)})),e.on("shape.changed",(function(e){i.update("shape",e.element,e.gfx)})),e.on("connection.changed",(function(e){i.update("connection",e.element,e.gfx)}))}ac.$inject=["eventBus","canvas","elementRegistry","graphicsFactory"];const lc={__init__:["changeSupport"],changeSupport:["type",ac]};function cc(e){this._eventBus=e}function hc(e){return function(t,n,i,o,r){(I(t)||z(t))&&(r=o,o=i,i=n,n=t,t=null),this.on(t,e,n,i,o,r)}}function uc(e,t){t.invoke(cc,this),this.executed((function(t){var n=t.context;n.rootElement?e.setRootElement(n.rootElement):n.rootElement=e.getRootElement()})),this.revert((function(t){var n=t.context;n.rootElement&&e.setRootElement(n.rootElement)}))}cc.$inject=["eventBus"],cc.prototype.on=function(e,t,n,i,o,r){if((I(t)||z(t))&&(r=o,o=i,i=n,n=t,t=null),I(n)&&(r=o,o=i,i=n,n=1e3),N(o)&&(r=o,o=!1),!I(i))throw new Error("handlerFn must be a function");L(e)||(e=[e]);var s=this._eventBus;V(e,(function(e){var a=["commandStack",e,t].filter((function(e){return e})).join(".");s.on(a,n,o?function(e,t){return function(n){return e.call(t||null,n.context,n.command,n)}}(i,r):i,r)}))},cc.prototype.canExecute=hc("canExecute"),cc.prototype.preExecute=hc("preExecute"),cc.prototype.preExecuted=hc("preExecuted"),cc.prototype.execute=hc("execute"),cc.prototype.executed=hc("executed"),cc.prototype.postExecute=hc("postExecute"),cc.prototype.postExecuted=hc("postExecuted"),cc.prototype.revert=hc("revert"),cc.prototype.reverted=hc("reverted"),lt(uc,cc),uc.$inject=["canvas","injector"];const pc={__init__:["rootElementsBehavior"],rootElementsBehavior:["type",uc]};var dc="_plane";function fc(e){return function(e){return e.replace(new RegExp(dc+"$"),"")}(e.id)}function mc(e){var t=e.id;return de(e,"bpmn:SubProcess")?yc(t):t}function gc(e){return yc(e)}function vc(e){return de(ge(e),"bpmndi:BPMNPlane")}function yc(e){return e+dc}function bc(e,t,n){var i=Kt('
    '),o=n.getContainer(),r=Nt(o);o.appendChild(i);var s=[];function a(e){e&&(s=function(e){for(var t=[],n=me(e);n;n=n.$parent)(de(n,"bpmn:SubProcess")||de(n,"bpmn:Process"))&&t.push(n);return t.reverse()}(e));var o=s.flatMap((function(e){var i=n.findRoot(mc(e))||n.findRoot(e.id);if(!i&&de(e,"bpmn:Process")){var o=t.find((function(t){var n=me(t);return n&&n.get("processRef")===e}));i=o&&n.findRoot(o.id)}if(!i)return[];var r=Ti(e.name||e.id),s=Kt('
  • '+r+"
  • ");return s.addEventListener("click",(function(){n.setRootElement(i)})),s}));i.innerHTML="";var a=o.length>1;r.toggle("bjs-breadcrumbs-shown",a),o.forEach((function(e){i.appendChild(e)}))}e.on("element.changed",(function(e){var t=me(e.element);j(s,(function(e){return e===t}))&&a()})),e.on("root.set",(function(e){a(e.element)}))}function wc(e,t){var n=null,i=new xc;e.on("root.set",(function(e){var o=e.element,r=t.viewbox(),s=i.get(o);if(i.set(n,{x:r.x,y:r.y,zoom:r.scale}),n=o,de(o,"bpmn:SubProcess")||s){s=s||{x:0,y:0,zoom:1};var a=(r.x-s.x)*r.scale,l=(r.y-s.y)*r.scale;0===a&&0===l||t.scroll({dx:a,dy:l}),s.zoom!==r.scale&&t.zoom(s.zoom,{x:0,y:0})}})),e.on("diagram.clear",(function(){i.clear(),n=null}))}function xc(){this._entries=[],this.set=function(e,t){var n=!1;for(var i in this._entries)if(this._entries[i][0]===e){this._entries[i][1]=t,n=!0;break}n||this._entries.push([e,t])},this.get=function(e){for(var t in this._entries)if(this._entries[t][0]===e)return this._entries[t][1];return null},this.clear=function(){this._entries.length=0},this.remove=function(e){var t=-1;for(var n in this._entries)if(this._entries[n][0]===e){t=n;break}-1!==t&&this._entries.splice(t,1)}}bc.$inject=["eventBus","elementRegistry","canvas"],wc.$inject=["eventBus","canvas"];function _c(e,t){this._eventBus=e,this._moddle=t;var n=this;e.on("import.render.start",1500,(function(e,t){n._handleImport(t.definitions)}))}function Ec(e){return de(e,"bpmndi:BPMNDiagram")?e:Ec(e.$parent)}_c.prototype._handleImport=function(e){if(e.diagrams){var t=this;this._definitions=e,this._processToDiagramMap={},e.diagrams.forEach((function(e){e.plane&&e.plane.bpmnElement&&(t._processToDiagramMap[e.plane.bpmnElement.id]=e)})),e.diagrams.filter((e=>e.plane)).flatMap((e=>t._createNewDiagrams(e.plane))).forEach((function(e){t._movePlaneElementsToOrigin(e.plane)}))}},_c.prototype._createNewDiagrams=function(e){var t=this,n=[],i=[];e.get("planeElement").forEach((function(t){var o=t.bpmnElement;if(o){var r=o.$parent;de(o,"bpmn:SubProcess")&&!t.isExpanded&&n.push(o),function(e,t){var n=e.$parent;return!(!de(n,"bpmn:SubProcess")||n===t.bpmnElement)&&!fe(e,["bpmn:DataInputAssociation","bpmn:DataOutputAssociation"])}(o,e)&&i.push({diElement:t,parent:r})}}));var o=[];return n.forEach((function(e){if(!t._processToDiagramMap[e.id]){var n=t._createDiagram(e);t._processToDiagramMap[e.id]=n,o.push(n)}})),i.forEach((function(e){for(var i=e.diElement,o=e.parent;o&&-1===n.indexOf(o);)o=o.$parent;if(o){var r=t._processToDiagramMap[o.id];t._moveToDiPlane(i,r.plane)}})),o},_c.prototype._movePlaneElementsToOrigin=function(e){var t=e.get("planeElement"),n=function(e){var t={top:1/0,right:-1/0,bottom:-1/0,left:1/0};return e.planeElement.forEach((function(e){if(e.bounds){var n=Wr(e.bounds);t.top=Math.min(n.top,t.top),t.left=Math.min(n.left,t.left)}})),Gr(t)}(e),i=n.x-180,o=n.y-160;t.forEach((function(e){e.waypoint?e.waypoint.forEach((function(e){e.x=e.x-i,e.y=e.y-o})):e.bounds&&(e.bounds.x=e.bounds.x-i,e.bounds.y=e.bounds.y-o)}))},_c.prototype._moveToDiPlane=function(e,t){var n=Ec(e).plane.get("planeElement");n.splice(n.indexOf(e),1),t.get("planeElement").push(e)},_c.prototype._createDiagram=function(e){var t=this._moddle.create("bpmndi:BPMNPlane",{bpmnElement:e}),n=this._moddle.create("bpmndi:BPMNDiagram",{plane:t});return t.$parent=n,t.bpmnElement=e,n.$parent=this._definitions,this._definitions.diagrams.push(n),n},_c.$inject=["eventBus","moddle"];var kc=250;function Sc(e,t,n,i,o){cc.call(this,t),this._canvas=e,this._eventBus=t,this._elementRegistry=n,this._overlays=i,this._translate=o;var r=this;this.executed("shape.toggleCollapse",kc,(function(e){var t=e.shape;r._canDrillDown(t)?r._addOverlay(t):r._removeOverlay(t)}),!0),this.reverted("shape.toggleCollapse",kc,(function(e){var t=e.shape;r._canDrillDown(t)?r._addOverlay(t):r._removeOverlay(t)}),!0),this.executed(["shape.create","shape.move","shape.delete"],kc,(function(e){var t=e.oldParent,n=e.newParent||e.parent,i=e.shape;r._canDrillDown(i)&&r._addOverlay(i),r._updateDrilldownOverlay(t),r._updateDrilldownOverlay(n),r._updateDrilldownOverlay(i)}),!0),this.reverted(["shape.create","shape.move","shape.delete"],kc,(function(e){var t=e.oldParent,n=e.newParent||e.parent,i=e.shape;r._canDrillDown(i)&&r._addOverlay(i),r._updateDrilldownOverlay(t),r._updateDrilldownOverlay(n),r._updateDrilldownOverlay(i)}),!0),t.on("import.render.complete",(function(){n.filter((function(e){return r._canDrillDown(e)})).map((function(e){r._addOverlay(e)}))}))}lt(Sc,cc),Sc.prototype._updateDrilldownOverlay=function(e){var t=this._canvas;if(e){var n=t.findRoot(e);n&&this._updateOverlayVisibility(n)}},Sc.prototype._canDrillDown=function(e){var t=this._canvas;return de(e,"bpmn:SubProcess")&&t.findRoot(mc(e))},Sc.prototype._updateOverlayVisibility=function(e){var t=this._overlays,n=me(e),i=t.get({element:n.id,type:"drilldown"})[0];if(i){var o=n&&n.get("flowElements")&&n.get("flowElements").length;Nt(i.html).toggle("bjs-drilldown-empty",!o)}},Sc.prototype._addOverlay=function(e){var t=this._canvas,n=this._overlays,i=me(e);n.get({element:e,type:"drilldown"}).length&&this._removeOverlay(e);var o=Kt(''),r=i.get("name")||i.get("id"),s=this._translate("Open {element}",{element:r});o.setAttribute("title",s),o.addEventListener("click",(function(){t.setRootElement(t.findRoot(mc(e)))})),n.add(e,"drilldown",{position:{bottom:-7,right:-8},html:o}),this._updateOverlayVisibility(e)},Sc.prototype._removeOverlay=function(e){this._overlays.remove({element:e,type:"drilldown"})},Sc.$inject=["canvas","eventBus","elementRegistry","overlays","translate"];const Cc={__depends__:[sc,lc,pc],__init__:["drilldownBreadcrumbs","drilldownOverlayBehavior","drilldownCentering","subprocessCompatibility"],drilldownBreadcrumbs:["type",bc],drilldownCentering:["type",wc],drilldownOverlayBehavior:["type",Sc],subprocessCompatibility:["type",_c]};function Oc(e,t){this._eventBus=e,this.offset=5;var n=t.cls("djs-outline",["no-fill"]),i=this;function o(e){var t=vn("rect");return ln(t,ce({x:0,y:0,rx:4,width:100,height:100},n)),t}e.on(["shape.added","shape.changed"],500,(function(e){var t=e.element,n=e.gfx,r=Jt(".djs-outline",n);r||on(n,r=i.getOutline(t)||o()),i.updateShapeOutline(r,t)})),e.on(["connection.added","connection.changed"],(function(e){var t=e.element,n=e.gfx,r=Jt(".djs-outline",n);r||on(n,r=o()),i.updateConnectionOutline(r,t)}))}Oc.prototype.updateShapeOutline=function(e,t){var n=!1,i=this._getProviders();i.length&&V(i,(function(i){n=n||i.updateOutline(t,e)})),n||ln(e,{x:-this.offset,y:-this.offset,width:t.width+2*this.offset,height:t.height+2*this.offset})},Oc.prototype.updateConnectionOutline=function(e,t){var n=Qo(t);ln(e,{x:n.x-this.offset,y:n.y-this.offset,width:n.width+2*this.offset,height:n.height+2*this.offset})},Oc.prototype.registerProvider=function(e,t){t||(t=e,e=1e3),this._eventBus.on("outline.getProviders",e,(function(e){e.providers.push(t)}))},Oc.prototype._getProviders=function(){var e=this._eventBus.createEvent({type:"outline.getProviders",providers:[]});return this._eventBus.fire(e),e.providers},Oc.prototype.getOutline=function(e){var t;return V(this._getProviders(),(function(n){I(n.getOutline)&&(t=t||n.getOutline(e))})),t},Oc.$inject=["eventBus","styles","elementRegistry"];const Pc={__init__:["outline"],outline:["type",Oc]},Mc={width:36,height:50},Ac={width:50,height:50};function Tc(e,t,n){return vn("path",{d:e,strokeWidth:2,transform:`translate(${t.x}, ${t.y})`,...n})}function Bc(e,t){this._styles=t,e.registerProvider(this)}function Rc(e,t){var n;return"bpmn:DataObjectReference"===t?n=Mc:"bpmn:DataStoreReference"===t&&(n=Ac),e.width===n.width&&e.height===n.height}Bc.$inject=["outline","styles"],Bc.prototype.getOutline=function(e){const t=this._styles.cls("djs-outline",["no-fill"]);var n;if(!qr(e))return de(e,"bpmn:Gateway")?(ce((n=vn("rect")).style,{"transform-box":"fill-box",transform:"rotate(45deg)","transform-origin":"center"}),ln(n,ce({x:2,y:2,rx:4,width:e.width-4,height:e.height-4},t))):fe(e,["bpmn:Task","bpmn:SubProcess","bpmn:Group","bpmn:CallActivity"])?ln(n=vn("rect"),ce({x:-5,y:-5,rx:14,width:e.width+10,height:e.height+10},t)):de(e,"bpmn:EndEvent")?ln(n=vn("circle"),ce({cx:e.width/2,cy:e.height/2,r:e.width/2+5+1},t)):de(e,"bpmn:Event")?ln(n=vn("circle"),ce({cx:e.width/2,cy:e.height/2,r:e.width/2+5},t)):de(e,"bpmn:DataObjectReference")&&Rc(e,"bpmn:DataObjectReference")?n=Tc("M44.7648 11.3263L36.9892 2.64074C36.0451 1.58628 34.5651 0.988708 33.1904 0.988708H5.98667C3.22688 0.988708 0.989624 3.34892 0.989624 6.26039V55.0235C0.989624 57.9349 3.22688 60.2952 5.98667 60.2952H40.966C43.7257 60.2952 45.963 57.9349 45.963 55.0235V14.9459C45.963 13.5998 45.6407 12.3048 44.7648 11.3263Z",{x:-6,y:-6},t):de(e,"bpmn:DataStoreReference")&&Rc(e,"bpmn:DataStoreReference")&&(n=Tc("M1.03845 48.1347C1.03845 49.3511 1.07295 50.758 1.38342 52.064C1.69949 53.3938 2.32428 54.7154 3.56383 55.6428C6.02533 57.4841 10.1161 58.7685 14.8212 59.6067C19.5772 60.4538 25.1388 60.8738 30.6831 60.8738C36.2276 60.8738 41.7891 60.4538 46.545 59.6067C51.2504 58.7687 55.3412 57.4842 57.8028 55.6429C59.0424 54.7156 59.6673 53.3938 59.9834 52.064C60.2938 50.7579 60.3285 49.351 60.3285 48.1344V13.8415C60.3285 12.6249 60.2938 11.218 59.9834 9.91171C59.6673 8.58194 59.0423 7.2602 57.8027 6.33294C55.341 4.49168 51.2503 3.20723 46.545 2.36914C41.7891 1.522 36.2276 1.10204 30.6831 1.10205C25.1388 1.10206 19.5772 1.52206 14.8213 2.36923C10.1162 3.20734 6.02543 4.49183 3.5639 6.33314C2.32433 7.26038 1.69951 8.58206 1.38343 9.91181C1.07295 11.2179 1.03845 12.6247 1.03845 13.8411V48.1347Z",{x:-6,y:-6},t)),n},Bc.prototype.updateOutline=function(e,t){if(!qr(e))return fe(e,["bpmn:SubProcess","bpmn:Group"])?(ln(t,{width:e.width+10,height:e.height+10}),!0):!!fe(e,["bpmn:Event","bpmn:Gateway","bpmn:DataStoreReference","bpmn:DataObjectReference"])};const Dc={__depends__:[Pc],__init__:["outlineProvider"],outlineProvider:["type",Bc]};function Lc(e){e&&"function"==typeof e.stopPropagation&&e.stopPropagation()}function Nc(e){return e.originalEvent||e.srcEvent}function zc(e){Lc(e),Lc(Nc(e))}function Ic(e){return e.pointers&&e.pointers.length&&(e=e.pointers[0]),e.touches&&e.touches.length&&(e=e.touches[0]),e?{x:e.clientX,y:e.clientY}:null}function Fc(){return/mac/i.test(navigator.platform)}function $c(e,t){return(Nc(e)||e).button===t}function jc(e){return $c(e,0)}function qc(e){var t=Nc(e)||e;return!!jc(e)&&(Fc()?t.metaKey:t.ctrlKey)}function Hc(e){var t=Nc(e)||e;return jc(e)&&t.shiftKey}function Vc(e){return!0}function Wc(e){return jc(e)||function(e){return $c(e,1)}(e)}function Gc(e,t,n){var i=this;function o(n,i,o){var r,s;(function(e,t){return!(l[e]||jc)(t)})(n,i)||(o?s=t.getGraphics(o):(r=i.delegateTarget||i.target)&&(s=r,o=t.get(s)),s&&o&&!1===e.fire(n,{element:o,gfx:s,originalEvent:i})&&(i.stopPropagation(),i.preventDefault()))}var r={};function s(e){return r[e]}var a={click:"element.click",contextmenu:"element.contextmenu",dblclick:"element.dblclick",mousedown:"element.mousedown",mousemove:"element.mousemove",mouseover:"element.hover",mouseout:"element.out",mouseup:"element.mouseup"},l={"element.contextmenu":Vc,"element.mousedown":Wc,"element.mouseup":Wc,"element.click":Wc,"element.dblclick":Wc};function c(e,t,n,i){var s=r[n]=function(e){o(n,e)};i&&(l[n]=i),s.$delegate=Xt.bind(e,"svg, .djs-element",t,s)}function h(e,t,n){var i=s(n);i&&Xt.unbind(e,t,i.$delegate)}e.on("canvas.destroy",(function(e){!function(e){V(a,(function(t,n){h(e,n,t)}))}(e.svg)})),e.on("canvas.init",(function(e){!function(e){V(a,(function(t,n){c(e,n,t)}))}(e.svg)})),e.on(["shape.added","connection.added"],(function(t){var n=t.element,i=t.gfx;e.fire("interactionEvents.createHit",{element:n,gfx:i})})),e.on(["shape.changed","connection.changed"],500,(function(t){var n=t.element,i=t.gfx;e.fire("interactionEvents.updateHit",{element:n,gfx:i})})),e.on("interactionEvents.createHit",500,(function(e){var t=e.element,n=e.gfx;i.createDefaultHit(t,n)})),e.on("interactionEvents.updateHit",(function(e){var t=e.element,n=e.gfx;i.updateDefaultHit(t,n)}));var u=f("djs-hit djs-hit-stroke"),p=f("djs-hit djs-hit-click-stroke"),d={all:f("djs-hit djs-hit-all"),"click-stroke":p,stroke:u,"no-move":f("djs-hit djs-hit-no-move")};function f(e,t){return t=ce({stroke:"white",strokeWidth:15},t||{}),n.cls(e,["no-fill","no-border"],t)}function m(e,t){var n=d[t];if(!n)throw new Error("invalid hit type <"+t+">");return ln(e,n),e}function g(e,t){on(e,t)}this.removeHits=function(e){V(en(".djs-hit",e),Pn)},this.createDefaultHit=function(e,t){var n,i=e.waypoints,o=e.isFrame;return i?this.createWaypointsHit(t,i):(n=o?"stroke":"all",this.createBoxHit(t,n,{width:e.width,height:e.height}))},this.createWaypointsHit=function(e,t){var n=$o(t);return m(n,"stroke"),g(e,n),n},this.createBoxHit=function(e,t,n){n=ce({x:0,y:0},n);var i=vn("rect");return m(i,t),ln(i,n),g(e,i),i},this.updateDefaultHit=function(e,t){var n=Jt(".djs-hit",t);if(n)return e.waypoints?jo(n,e.waypoints):ln(n,{width:e.width,height:e.height}),n},this.fire=o,this.triggerMouseEvent=function(e,t,n){var i=a[e];if(!i)throw new Error("unmapped DOM event name <"+e+">");return o(i,t,n)},this.mouseHandler=s,this.registerEvent=c,this.unregisterEvent=h}Gc.$inject=["eventBus","elementRegistry","styles"];const Qc={__init__:["interactionEvents"],interactionEvents:["type",Gc]};function Xc(e,t){this._eventBus=e,this._canvas=t,this._selectedElements=[];var n=this;e.on(["shape.remove","connection.remove"],(function(e){var t=e.element;n.deselect(t)})),e.on(["diagram.clear","root.set"],(function(e){n.select(null)}))}Xc.$inject=["eventBus","canvas"],Xc.prototype.deselect=function(e){var t=this._selectedElements,n=t.indexOf(e);if(-1!==n){var i=t.slice();t.splice(n,1),this._eventBus.fire("selection.changed",{oldSelection:i,newSelection:t})}},Xc.prototype.get=function(){return this._selectedElements},Xc.prototype.isSelected=function(e){return-1!==this._selectedElements.indexOf(e)},Xc.prototype.select=function(e,t){var n=this._selectedElements,i=n.slice();L(e)||(e=e?[e]:[]);var o=this._canvas,r=o.getRootElement();e=e.filter((function(e){var t=o.findRoot(e);return r===t})),t?V(e,(function(e){-1===n.indexOf(e)&&n.push(e)})):this._selectedElements=n=e.slice(),this._eventBus.fire("selection.changed",{oldSelection:i,newSelection:n})};var Uc="hover",Yc="selected";function Kc(e,t,n){this._canvas=e;var i=this;function o(t,n){e.addMarker(t,n)}function r(t,n){e.removeMarker(t,n)}this._multiSelectionBox=null,t.on("element.hover",(function(e){o(e.element,Uc)})),t.on("element.out",(function(e){r(e.element,Uc)})),t.on("selection.changed",(function(e){var t=e.oldSelection,n=e.newSelection;V(t,(function(e){-1===n.indexOf(e)&&function(e){r(e,Yc)}(e)})),V(n,(function(e){-1===t.indexOf(e)&&function(e){o(e,Yc)}(e)})),i._updateSelectionOutline(n)})),t.on("element.changed",(function(e){n.isSelected(e.element)&&i._updateSelectionOutline(n.get())}))}function Zc(e,t,n,i){e.on("create.end",500,(function(e){var n=e.context,i=n.canExecute,o=n.elements,r=(n.hints||{}).autoSelect;if(i){if(!1===r)return;L(r)?t.select(r):t.select(o.filter(Jc))}})),e.on("connect.end",500,(function(e){var n=e.context.connection;n&&t.select(n)})),e.on("shape.move.end",500,(function(e){var n=e.previousSelection||[],o=i.get(e.context.shape.id);j(n,(function(e){return o.id===e.id}))||t.select(o)})),e.on("element.click",(function(e){if(jc(e)){var i=e.element;i===n.getRootElement()&&(i=null);var o=t.isSelected(i),r=t.get().length>1,s=Hc(e);if(o&&r)return s?t.deselect(i):t.select(i);o?t.deselect(i):t.select(i,s)}}))}function Jc(e){return!e.hidden}Kc.$inject=["canvas","eventBus","selection"],Kc.prototype._updateSelectionOutline=function(e){var t=this._canvas.getLayer("selectionOutline");pn(t);var n=e.length>1;if(hn(this._canvas.getContainer())[n?"add":"remove"]("djs-multi-select"),n){var i=function(e){return{x:e.x-6,y:e.y-6,width:e.width+12,height:e.height+12}}(Qo(e)),o=vn("rect");ln(o,ce({rx:3},i)),hn(o).add("djs-selection-outline"),on(t,o)}},Zc.$inject=["eventBus","selection","canvas","elementRegistry"];const eh={__init__:["selectionVisuals","selectionBehavior"],__depends__:[Qc,Pc],selection:["type",Xc],selectionVisuals:["type",Kc],selectionBehavior:["type",Zc]};function th(e){sl.call(this,e)}lt(th,sl),th.prototype._modules=[Jl,Cc,Dc,sc,eh,Xl],th.prototype._moddleExtensions={};var nh=["c","C"],ih=["v","V"],oh=["y","Y"],rh=["z","Z"];function sh(e){return!e.altKey&&(e.ctrlKey||e.metaKey)}function ah(e,t){return-1!==(e=L(e)?e:[e]).indexOf(t.key)||-1!==e.indexOf(t.code)}function lh(e){return e.shiftKey}function ch(e){return sh(e)&&!lh(e)&&ah(rh,e)}function hh(e){return sh(e)&&(ah(oh,e)||ah(rh,e)&&lh(e))}var uh="keyboard.keydown",ph="input-handle-modified-keys";function dh(e,t){var n=this;this._config=e||{},this._eventBus=t,this._keydownHandler=this._keydownHandler.bind(this),this._keyupHandler=this._keyupHandler.bind(this),t.on("diagram.destroy",(function(){n._fire("destroy"),n.unbind()})),t.on("diagram.init",(function(){n._fire("init")})),t.on("attach",(function(){e&&e.bindTo&&n.bind(e.bindTo)})),t.on("detach",(function(){n.unbind()}))}dh.$inject=["config.keyboard","eventBus"],dh.prototype._keydownHandler=function(e){this._keyHandler(e,uh)},dh.prototype._keyupHandler=function(e){this._keyHandler(e,"keyboard.keyup")},dh.prototype._keyHandler=function(e,t){if(!this._isEventIgnored(e)){var n={keyEvent:e};this._eventBus.fire(t||uh,n)&&e.preventDefault()}},dh.prototype._isEventIgnored=function(e){return!!e.defaultPrevented||((t=e.target)&&(Zt(t,"input, textarea")||"true"===t.contentEditable)||function(e){return e&&Zt(e,"button, input[type=submit], input[type=button], a[href], [aria-role=button]")}(e.target)&&ah([" ","Enter"],e))&&this._isModifiedKeyIgnored(e);var t},dh.prototype._isModifiedKeyIgnored=function(e){return!sh(e)||-1===this._getAllowedModifiers(e.target).indexOf(e.key)},dh.prototype._getAllowedModifiers=function(e){var t=Ft(e,"["+ph+"]",!0);return!t||this._node&&!this._node.contains(t)?[]:t.getAttribute(ph).split(",")},dh.prototype.bind=function(e){this.unbind(),this._node=e,Gt.bind(e,"keydown",this._keydownHandler),Gt.bind(e,"keyup",this._keyupHandler),this._fire("bind")},dh.prototype.getBinding=function(){return this._node},dh.prototype.unbind=function(){var e=this._node;e&&(this._fire("unbind"),Gt.unbind(e,"keydown",this._keydownHandler),Gt.unbind(e,"keyup",this._keyupHandler)),this._node=null},dh.prototype._fire=function(e){this._eventBus.fire("keyboard."+e,{node:this._node})},dh.prototype.addListener=function(e,t,n){I(e)&&(n=t,t=e,e=1e3),this._eventBus.on(n||uh,e,t)},dh.prototype.removeListener=function(e,t){this._eventBus.off(t||uh,e)},dh.prototype.hasModifier=function(e){return e.ctrlKey||e.metaKey||e.shiftKey||e.altKey},dh.prototype.isCmd=sh,dh.prototype.isShift=lh,dh.prototype.isKey=ah;var fh=500;function mh(e,t){var n=this;e.on("editorActions.init",fh,(function(e){var i=e.editorActions;n.registerBindings(t,i)}))}mh.$inject=["eventBus","keyboard"],mh.prototype.registerBindings=function(e,t){function n(n,i){t.isRegistered(n)&&e.addListener(i)}n("undo",(function(e){if(ch(e.keyEvent))return t.trigger("undo"),!0})),n("redo",(function(e){if(hh(e.keyEvent))return t.trigger("redo"),!0})),n("copy",(function(e){if(sh(n=e.keyEvent)&&ah(nh,n))return t.trigger("copy"),!0;var n})),n("paste",(function(e){if(sh(n=e.keyEvent)&&ah(ih,n))return t.trigger("paste"),!0;var n})),n("stepZoom",(function(e){var n=e.keyEvent;if(ah(["+","Add","="],n)&&sh(n))return t.trigger("stepZoom",{value:1}),!0})),n("stepZoom",(function(e){var n=e.keyEvent;if(ah(["-","Subtract"],n)&&sh(n))return t.trigger("stepZoom",{value:-1}),!0})),n("zoom",(function(e){var n=e.keyEvent;if(ah("0",n)&&sh(n))return t.trigger("zoom",{value:1}),!0})),n("removeSelection",(function(e){if(ah(["Backspace","Delete","Del"],e.keyEvent))return t.trigger("removeSelection"),!0}))};const gh={__init__:["keyboard","keyboardBindings"],keyboard:["type",dh],keyboardBindings:["type",mh]};var vh={moveSpeed:50,moveSpeedAccelerated:200};function yh(e,t,n){var i=this;this._config=ce({},vh,e||{}),t.addListener((function(e){var n=e.keyEvent,o=i._config;if(t.isCmd(n)&&t.isKey(["ArrowLeft","Left","ArrowUp","Up","ArrowDown","Down","ArrowRight","Right"],n)){var r,s=t.isShift(n)?o.moveSpeedAccelerated:o.moveSpeed;switch(n.key){case"ArrowLeft":case"Left":r="left";break;case"ArrowUp":case"Up":r="up";break;case"ArrowRight":case"Right":r="right";break;case"ArrowDown":case"Down":r="down"}return i.moveCanvas({speed:s,direction:r}),!0}})),this.moveCanvas=function(e){var t=0,i=0,o=e.speed/Math.min(Math.sqrt(n.viewbox().scale),1);switch(e.direction){case"left":t=o;break;case"up":i=o;break;case"right":t=-o;break;case"down":i=-o}n.scroll({dx:t,dy:i})}}yh.$inject=["config.keyboardMove","keyboard","canvas"];const bh={__depends__:[gh],__init__:["keyboardMove"],keyboardMove:["type",yh]};var wh=/^djs-cursor-.*$/;function xh(e){var t=Nt(document.body);t.removeMatching(wh),e&&t.add("djs-cursor-"+e)}function _h(){xh(null)}var Eh=5e3;function kh(e,t){function n(){return!1}return t=t||"element.click",e.once(t,Eh,n),function(){e.off(t,n)}}function Sh(e){return{x:e.x+e.width/2,y:e.y+e.height/2}}function Ch(e,t){return{x:e.x-t.x,y:e.y-t.y}}function Oh(e,t){var n;function i(i){var o,r=n.start,s=n.button,a=Ic(i),l=Ch(a,r);!n.dragging&&(o=l,Math.sqrt(Math.pow(o.x,2)+Math.pow(o.y,2))>15)&&(n.dragging=!0,0===s&&kh(e),xh("grab")),n.dragging&&(l=Ch(a,n.last||n.start),t.scroll({dx:l.x,dy:l.y}),n.last=a),i.preventDefault()}function o(e){Gt.unbind(document,"mousemove",i),Gt.unbind(document,"mouseup",o),n=null,_h()}e.on("element.mousedown",500,(function(e){return function(e){if(!Ft(e.target,".djs-draggable")){var t=e.button;if(!(t>=2||e.ctrlKey||e.shiftKey||e.altKey))return n={button:t,start:Ic(e)},Gt.bind(document,"mousemove",i),Gt.bind(document,"mouseup",o),!0}}(e.originalEvent)})),this.isActive=function(){return!!n}}Oh.$inject=["eventBus","canvas"];const Ph={__init__:["moveCanvas"],moveCanvas:["type",Oh]};function Mh(e){return Math.log(e)/Math.log(10)}function Ah(e,t){var n=Mh(e.min),i=Mh(e.max);return(Math.abs(n)+Math.abs(i))/t}var Th=Math.sign||function(e){return e>=0?1:-1},Bh={min:.2,max:4};function Rh(e,t,n){e=e||{},this._enabled=!1,this._canvas=n,this._container=n._container,this._handleWheel=le(this._handleWheel,this),this._totalDelta=0,this._scale=e.scale||.75;var i=this;t.on("canvas.init",(function(t){i._init(!1!==e.enabled)}))}Rh.$inject=["config.zoomScroll","eventBus","canvas"],Rh.prototype.scroll=function(e){this._canvas.scroll(e)},Rh.prototype.reset=function(){this._canvas.zoom("fit-viewport")},Rh.prototype.zoom=function(e,t){var n=Ah(Bh,20);this._totalDelta+=e,Math.abs(this._totalDelta)>.1&&(this._zoom(e,t,n),this._totalDelta=0)},Rh.prototype._handleWheel=function(e){if(!Ft(e.target,".djs-scrollable",!0)){var t=this._container;e.preventDefault();var n,i=e.ctrlKey||Fc()&&e.metaKey,o=e.shiftKey,r=-1*this._scale;if(r*=i?0===e.deltaMode?.02:.32:0===e.deltaMode?1:16,i){var s=t.getBoundingClientRect(),a={x:e.clientX-s.left,y:e.clientY-s.top};n=Math.sqrt(Math.pow(e.deltaY,2)+Math.pow(e.deltaX,2))*Th(e.deltaY)*r,this.zoom(n,a)}else n=o?{dx:r*e.deltaY,dy:0}:{dx:r*e.deltaX,dy:r*e.deltaY},this.scroll(n)}},Rh.prototype.stepZoom=function(e,t){var n=Ah(Bh,10);this._zoom(e,t,n)},Rh.prototype._zoom=function(e,t,n){var i=this._canvas,o=e>0?1:-1,r=Mh(i.zoom()),s=Math.round(r/n)*n;s+=n*o;var a,l,c=Math.pow(10,s);i.zoom((a=Bh,l=c,Math.max(a.min,Math.min(a.max,l))),t)},Rh.prototype.toggle=function(e){var t=this._container,n=this._handleWheel,i=this._enabled;return void 0===e&&(e=!i),i!==e&&Gt[e?"bind":"unbind"](t,"wheel",n,!1),this._enabled=e,e},Rh.prototype._init=function(e){this.toggle(e)};const Dh={__init__:["zoomScroll"],zoomScroll:["type",Rh]};function Lh(e){th.call(this,e)}function Nh(e){return e&&e[e.length-1]}function zh(e){return e.y}function Ih(e){return e.x}lt(Lh,th),Lh.prototype._navigationModules=[bh,Ph,Dh],Lh.prototype._modules=[].concat(th.prototype._modules,Lh.prototype._navigationModules);var Fh={left:Ih,center:Ih,right:function(e){return e.x+e.width},top:zh,middle:zh,bottom:function(e){return e.y+e.height}};function $h(e,t){this._modeling=e,this._rules=t}$h.$inject=["modeling","rules"],$h.prototype._getOrientationDetails=function(e){var t="x",n="width";return-1!==["top","bottom","middle"].indexOf(e)&&(t="y",n="height"),{axis:t,dimension:n}},$h.prototype._isType=function(e,t){return-1!==t.indexOf(e)},$h.prototype._alignmentPosition=function(e,t){var n,i,o,r,s,a=this._getOrientationDetails(e),l=a.axis,c=a.dimension,h={},u={},p=!1;if(this._isType(e,["left","top"]))h[e]=t[0][l];else if(this._isType(e,["right","bottom"]))o=Nh(t),h[e]=o[l]+o[c];else if(this._isType(e,["center","middle"])){if(V(t,(function(e){var t=e[l]+Math.round(e[c]/2);u[t]?u[t].elements.push(e):u[t]={elements:[e],center:t}})),n=te(u,(function(e){return e.elements.length>1&&(p=!0),e.elements.length})),p)return h[e]=Nh(n).center,h;i=t[0],o=Nh(t=te(t,(function(e){return e[l]+e[c]}))),h[e]=(r=i,s=o,Math.round((r[l]+s[l]+s[c])/2))}return h},$h.prototype.trigger=function(e,t){var n,i=this._modeling,o=H(e,(function(e){return!(e.waypoints||e.host||e.labelTarget)}));if(L(n=this._rules.allowed("elements.align",{elements:o}))&&(o=n),!(o.length<2)&&n){var r=te(o,Fh[t]),s=this._alignmentPosition(t,r);i.alignElements(r,s)}};const jh={__init__:["alignElements"],alignElements:["type",$h]},qh=new ec;function Hh(e){this._scheduled={},e.on("diagram.destroy",(()=>{Object.keys(this._scheduled).forEach((e=>{this.cancel(e)}))}))}Hh.$inject=["eventBus"],Hh.prototype.schedule=function(e,t=qh.next()){this.cancel(t);const n=this._schedule(e,t);return this._scheduled[t]=n,n.promise},Hh.prototype._schedule=function(e,t){const{promise:n,resolve:i,reject:o}=function(){let e,t;return{promise:new Promise(((n,i)=>{e=n,t=i})),resolve:e,reject:t}}(),r=requestAnimationFrame((()=>{try{i(e())}catch(e){o(e)}}));return{executionId:r,promise:n}},Hh.prototype.cancel=function(e){const t=this._scheduled[e];t&&(this._cancel(t),this._scheduled[e]=null)},Hh.prototype._cancel=function(e){cancelAnimationFrame(e.executionId)};const Vh={scheduler:["type",Hh]};var Wh=".entry";function Gh(e,t,n,i){this._canvas=e,this._elementRegistry=t,this._eventBus=n,this._scheduler=i,this._current=null,this._init()}Gh.$inject=["canvas","elementRegistry","eventBus","scheduler"],Gh.prototype._init=function(){var e=this;this._eventBus.on("selection.changed",(function(t){var n=t.newSelection,i=n.length?1===n.length?n[0]:n:null;i?e.open(i,!0):e.close()})),this._eventBus.on("elements.changed",(function(t){var n=t.elements,i=e._current;if(i){var o=i.target,r=L(o)?o:[o];if(r.filter((function(e){return n.includes(e)})).length){e.close();var s=r.filter((function(t){return e._elementRegistry.get(t.id)}));s.length&&e._updateAndOpen(s.length>1?s:s[0])}}})),this._eventBus.on("canvas.viewbox.changed",(function(){e._updatePosition()})),this._eventBus.on("element.marker.update",(function(t){if(e.isOpen()){var n=t.element,i=e._current;(L(i.target)?i.target:[i.target]).includes(n)&&e._updateVisibility()}})),this._container=this._createContainer()},Gh.prototype._createContainer=function(){var e=Kt('
    ');return this._canvas.getContainer().appendChild(e),e},Gh.prototype.registerProvider=function(e,t){t||(t=e,e=1e3),this._eventBus.on("contextPad.getProviders",e,(function(e){e.providers.push(t)}))},Gh.prototype.getEntries=function(e){var t=this._getProviders(),n=L(e)?"getMultiElementContextPadEntries":"getContextPadEntries",i={};return V(t,(function(t){if(I(t[n])){var o=t[n](e);I(o)?i=o(i):V(o,(function(e,t){i[t]=e}))}})),i},Gh.prototype.trigger=function(e,t,n){var i,o,r=this,s=t.delegateTarget||t.target;return s?(i=Dt(s,"data-action"),o=t.originalEvent||t,"mouseover"!==e?"mouseout"===e?(clearTimeout(this._timeout),void(this._mouseout&&(this._mouseout(),this._mouseout=null))):this.triggerEntry(i,e,o,n):void(this._timeout=setTimeout((function(){r._mouseout=r.triggerEntry(i,"hover",o,n)}),300))):t.preventDefault()},Gh.prototype.triggerEntry=function(e,t,n,i){if(this.isShown()){var o=this._current.target,r=this._current.entries[e];if(r){var s=r.action;if(!1!==this._eventBus.fire("contextPad.trigger",{entry:r,event:n})){if(I(s)){if("click"===t)return s(n,o,i)}else if(s[t])return s[t](n,o,i);n.preventDefault()}}}},Gh.prototype.open=function(e,t){!t&&this.isOpen(e)||(this.close(),this._updateAndOpen(e))},Gh.prototype._getProviders=function(){var e=this._eventBus.createEvent({type:"contextPad.getProviders",providers:[]});return this._eventBus.fire(e),e.providers},Gh.prototype._updateAndOpen=function(e){var t,n=this.getEntries(e),i=this._createHtml(e);V(n,(function(e,n){var o,r=e.group||"default",s=Kt(e.html||'
    ');Dt(s,"data-action",n),(o=Jt("[data-group="+Mi(r)+"]",i))||(Dt(o=Kt('
    '),"data-group",r),i.appendChild(o)),o.appendChild(s),e.className&&function(e,t){var n=Nt(e);(t=L(t)?t:t.split(/\s+/g)).forEach((function(e){n.add(e)}))}(s,e.className),e.title&&Dt(s,"title",e.title),e.imageUrl&&(Dt(t=Kt(""),"src",e.imageUrl),t.style.width="100%",t.style.height="100%",s.appendChild(t))})),Nt(i).add("open"),this._current={entries:n,html:i,target:e},this._updatePosition(),this._updateVisibility(),this._eventBus.fire("contextPad.open",{current:this._current})},Gh.prototype._createHtml=function(e){var t=this,n=Kt('
    ');return Xt.bind(n,Wh,"click",(function(e){t.trigger("click",e)})),Xt.bind(n,Wh,"dragstart",(function(e){t.trigger("dragstart",e)})),Xt.bind(n,Wh,"mouseover",(function(e){t.trigger("mouseover",e)})),Xt.bind(n,Wh,"mouseout",(function(e){t.trigger("mouseout",e)})),Gt.bind(n,"mousedown",(function(e){e.stopPropagation()})),this._container.appendChild(n),this._eventBus.fire("contextPad.create",{target:e,pad:n}),n},Gh.prototype.getPad=function(e){let t;return console.warn(new Error("ContextPad#getPad is deprecated and will be removed in future library versions, cf. https://github.com/bpmn-io/diagram-js/pull/888")),t=this.isOpen()&&function(e,t){return e=L(e)?e:[e],t=L(t)?t:[t],e.length===t.length&&Q(e,(function(e){return t.includes(e)}))}(this._current.target,e)?this._current.html:this._createHtml(e),{html:t}},Gh.prototype.close=function(){this.isOpen()&&(clearTimeout(this._timeout),this._container.innerHTML="",this._eventBus.fire("contextPad.close",{current:this._current}),this._current=null)},Gh.prototype.isOpen=function(e){var t=this._current;if(!t)return!1;if(!e)return!0;var n=t.target;return L(e)===L(n)&&(L(e)?e.length===n.length&&Q(e,(function(e){return n.includes(e)})):n===e)},Gh.prototype.isShown=function(){return this.isOpen()&&Nt(this._current.html).has("open")},Gh.prototype.show=function(){this.isOpen()&&(Nt(this._current.html).add("open"),this._updatePosition(),this._eventBus.fire("contextPad.show",{current:this._current}))},Gh.prototype.hide=function(){this.isOpen()&&(Nt(this._current.html).remove("open"),this._eventBus.fire("contextPad.hide",{current:this._current}))},Gh.prototype._getPosition=function(e){if(!L(e)&&jr(e)){var t=this._canvas.viewbox(),n=(r=e).waypoints[r.waypoints.length-1],i=n.x*t.scale-t.x*t.scale,o=n.y*t.scale-t.y*t.scale;return{left:i+8*this._canvas.zoom(),top:o}}var r,s=this._canvas.getContainer().getBoundingClientRect(),a=this._getTargetBounds(e);return{left:a.right-s.left+8*this._canvas.zoom(),top:a.top-s.top}},Gh.prototype._updatePosition=function(){if(this.isOpen()){var e=this._current.html,t=this._getPosition(this._current.target);"x"in t&&"y"in t?(e.style.left=t.x+"px",e.style.top=t.y+"px"):["top","right","bottom","left"].forEach((function(n){n in t&&(e.style[n]=t[n]+"px")}))}},Gh.prototype._updateVisibility=function(){this._scheduler.schedule((()=>{if(this.isOpen()){var e=this,t=this._current.target;(L(t)?t:[t]).some((function(t){return e._canvas.hasMarker(t,"djs-element-hidden")}))?e.hide():e.show()}}),"ContextPad#_updateVisibility")},Gh.prototype._getTargetBounds=function(e){var t=this;return(L(e)?e:[e]).map((function(e){return t._canvas.getGraphics(e)})).reduce((function(e,t){const n=t.getBoundingClientRect();return e.top=Math.min(e.top,n.top),e.right=Math.max(e.right,n.right),e.bottom=Math.max(e.bottom,n.bottom),e.left=Math.min(e.left,n.left),e.x=e.left,e.y=e.top,e.width=e.right-e.left,e.height=e.bottom-e.top,e}),{top:1/0,right:-1/0,bottom:-1/0,left:1/0})};const Qh={__depends__:[Qc,Vh,sc],contextPad:["type",Gh]};var Xh,Uh,Yh,Kh,Zh,Jh,eu,tu={},nu=[],iu=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,ou=Array.isArray;function ru(e,t){for(var n in t)e[n]=t[n];return e}function su(e){var t=e.parentNode;t&&t.removeChild(e)}function au(e,t,n){var i,o,r,s={};for(r in t)"key"==r?i=t[r]:"ref"==r?o=t[r]:s[r]=t[r];if(arguments.length>2&&(s.children=arguments.length>3?Xh.call(arguments,2):n),"function"==typeof e&&null!=e.defaultProps)for(r in e.defaultProps)void 0===s[r]&&(s[r]=e.defaultProps[r]);return lu(e,s,i,o,null)}function lu(e,t,n,i,o){var r={type:e,props:t,key:n,ref:i,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:null==o?++Yh:o,__i:-1,__u:0};return null==o&&null!=Uh.vnode&&Uh.vnode(r),r}function cu(e){return e.children}function hu(e,t){this.props=e,this.context=t}function uu(e,t){if(null==t)return e.__?uu(e.__,e.__i+1):null;for(var n;tt&&Kh.sort(eu));fu.__r=0}function mu(e,t,n,i,o,r,s,a,l,c,h){var u,p,d,f,m,g=i&&i.__k||nu,v=t.length;for(n.__d=l,gu(n,t,g),l=n.__d,u=0;u0?lu(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):o)?(o.__=e,o.__b=e.__b+1,a=yu(o,n,s,h),o.__i=a,r=null,-1!==a&&(h--,(r=n[a])&&(r.__u|=131072)),null==r||null===r.__v?(-1==a&&u--,"function"!=typeof o.type&&(o.__u|=65536)):a!==s&&(a===s+1?u++:a>s?h>l-s?u+=a-s:u--:a(null==l||131072&l.__u?0:1))for(;s>=0||a=0){if((l=t[s])&&!(131072&l.__u)&&o==l.key&&r===l.type)return s;s--}if(a=5&&((o||!e&&5===i)&&(s.push(i,0,o,n),i=6),e&&(s.push(i,e,0,n),i=6)),o=""},l=0;l"===t?(i=1,o=""):o=t+o[0]:r?t===r?r="":o+=t:'"'===t||"'"===t?r=t:">"===t?(a(),i=1):i&&("="===t?(i=5,n=o,o=""):"/"===t&&(i<5||">"===e[l][c+1])?(a(),3===i&&(s=s[0]),i=s,(s=s[0]).push(2,0,i),i=0):" "===t||"\t"===t||"\n"===t||"\r"===t?(a(),i=2):o+=t),3===i&&"!--"===o&&(i=4,s=s[0])}return a(),s}(e)),t),arguments,[])).length>1?t:t[0]}.bind(au),zu=0,Iu=[],Fu=[],$u=Uh,ju=$u.__b,qu=$u.__r,Hu=$u.diffed,Vu=$u.__c,Wu=$u.unmount,Gu=$u.__;function Qu(e,t){$u.__h&&$u.__h(Tu,e,zu||t),zu=0;var n=Tu.__H||(Tu.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({__V:Fu}),n.__[e]}function Xu(e){return zu=1,function(e,t,n){var i=Qu(Au++,2);if(i.t=e,!i.__c&&(i.__=[sp(void 0,t),function(e){var t=i.__N?i.__N[0]:i.__[0],n=i.t(t,e);t!==n&&(i.__N=[n,i.__[1]],i.__c.setState({}))}],i.__c=Tu,!Tu.u)){var o=function(e,t,n){if(!i.__c.__H)return!0;var o=i.__c.__H.__.filter((function(e){return!!e.__c}));if(o.every((function(e){return!e.__N})))return!r||r.call(this,e,t,n);var s=!1;return o.forEach((function(e){if(e.__N){var t=e.__[0];e.__=e.__N,e.__N=void 0,t!==e.__[0]&&(s=!0)}})),!(!s&&i.__c.props===e)&&(!r||r.call(this,e,t,n))};Tu.u=!0;var r=Tu.shouldComponentUpdate,s=Tu.componentWillUpdate;Tu.componentWillUpdate=function(e,t,n){if(this.__e){var i=r;r=void 0,o(e,t,n),r=i}s&&s.call(this,e,t,n)},Tu.shouldComponentUpdate=o}return i.__N||i.__}(sp,e)}function Uu(e,t){var n=Qu(Au++,3);!$u.__s&&rp(n.__H,t)&&(n.__=e,n.i=t,Tu.__H.__h.push(n))}function Yu(e,t){var n=Qu(Au++,4);!$u.__s&&rp(n.__H,t)&&(n.__=e,n.i=t,Tu.__h.push(n))}function Ku(e){return zu=5,Zu((function(){return{current:e}}),[])}function Zu(e,t){var n=Qu(Au++,7);return rp(n.__H,t)?(n.__V=e(),n.i=t,n.__h=e,n.__V):n.__}function Ju(e,t){return zu=8,Zu((function(){return e}),t)}function ep(){for(var e;e=Iu.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(ip),e.__H.__h.forEach(op),e.__H.__h=[]}catch(t){e.__H.__h=[],$u.__e(t,e.__v)}}$u.__b=function(e){Tu=null,ju&&ju(e)},$u.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),Gu&&Gu(e,t)},$u.__r=function(e){qu&&qu(e),Au=0;var t=(Tu=e.__c).__H;t&&(Bu===Tu?(t.__h=[],Tu.__h=[],t.__.forEach((function(e){e.__N&&(e.__=e.__N),e.__V=Fu,e.__N=e.i=void 0}))):(t.__h.forEach(ip),t.__h.forEach(op),t.__h=[],Au=0)),Bu=Tu},$u.diffed=function(e){Hu&&Hu(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(1!==Iu.push(t)&&Ru===$u.requestAnimationFrame||((Ru=$u.requestAnimationFrame)||np)(ep)),t.__H.__.forEach((function(e){e.i&&(e.__H=e.i),e.__V!==Fu&&(e.__=e.__V),e.i=void 0,e.__V=Fu}))),Bu=Tu=null},$u.__c=function(e,t){t.some((function(e){try{e.__h.forEach(ip),e.__h=e.__h.filter((function(e){return!e.__||op(e)}))}catch(n){t.some((function(e){e.__h&&(e.__h=[])})),t=[],$u.__e(n,e.__v)}})),Vu&&Vu(e,t)},$u.unmount=function(e){Wu&&Wu(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.forEach((function(e){try{ip(e)}catch(e){t=e}})),n.__H=void 0,t&&$u.__e(t,n.__v))};var tp="function"==typeof requestAnimationFrame;function np(e){var t,n=function(){clearTimeout(i),tp&&cancelAnimationFrame(t),setTimeout(e)},i=setTimeout(n,100);tp&&(t=requestAnimationFrame(n))}function ip(e){var t=Tu,n=e.__c;"function"==typeof n&&(e.__c=void 0,n()),Tu=t}function op(e){var t=Tu;e.__c=e.__(),Tu=t}function rp(e,t){return!e||e.length!==t.length||t.some((function(t,n){return t!==e[n]}))}function sp(e,t){return"function"==typeof t?t(e):t}function ap(e){var t,n,i="";if("string"==typeof e||"number"==typeof e)i+=e;else if("object"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;tt.reduce(((e,t)=>{const n=t.group||"default",i=e.find((e=>e.id===n));return i?i.entries.push(t):e.push({id:n,entries:[t]}),e}),[])),[t]);return Nu` +
    +

    ${r}

    + ${s.map((e=>Nu` +
      + + ${e.entries.map((e=>Nu` +
    • + <${e.action?"button":"span"} + class=${function(e,t){return lp("entry",e.className,e.active?"active":"",e.disabled?"disabled":"",t?"selected":"")}(e,e===i)} + onClick=${t=>e.action&&n(t,e)} + title=${e.title||e.label} + data-id=${e.id} + onMouseEnter=${()=>e.action&&o(e)} + onMouseLeave=${()=>e.action&&o(null)} + onFocus=${()=>e.action&&o(e)} + onBlur=${()=>e.action&&o(null)} + > + ${e.imageUrl&&Nu``||e.imageHtml&&Nu`
      `} + ${e.label?Nu` + ${e.label} + `:null} + +
    • + `))} +
    + `))} +
    + `}function hp(e){const{entry:t,selected:n,onMouseEnter:i,onMouseLeave:o,onAction:r}=e;return Nu` +
  • r(e,t,"dragstart")} + draggable=${!0} + > +
    + + ${t.imageUrl&&Nu``||t.imageHtml&&Nu`
    `} + + ${t.label?Nu` + + ${t.label} + + `:null} + + ${t.description&&Nu` + + ${t.description} + + `} +
    + ${t.documentationRef&&Nu` +
    + e.stopPropagation()} + title="Open element documentation" + target="_blank" + rel="noopener" + > + + + + +
    + `} +
  • + `}function up(e){const{selectedEntry:t,setSelectedEntry:n,entries:i,...o}=e,r=Ku(),s=Zu((()=>function(e){const t=[],n=e=>t.find((t=>e.id===t.id));return e.forEach((e=>{const i=e.group?(e=>"string"==typeof e?{id:e}:e)(e.group):{id:"default"};(e=>!!n(e))(i)?n(i).entries.push(e):t.push({...i,entries:[e]})})),t}(i)),[i]);return Yu((()=>{const e=r.current;if(!e)return;const t=e.querySelector(".selected");var n;t&&("function"==typeof(n=t).scrollIntoViewIfNeeded?n.scrollIntoViewIfNeeded():n.scrollIntoView({scrollMode:"if-needed",block:"nearest"}))}),[t]),Nu` +
    + ${s.map((e=>Nu` + ${e.name&&Nu` +
    + ${e.name} +
    + `} +
      + ${e.entries.map((e=>Nu` + <${hp} + key=${e.id} + entry=${e} + selected=${e===t} + onMouseEnter=${()=>n(e)} + onMouseLeave=${()=>n(null)} + ...${o} + /> + `))} +
    + `))} +
    + `}function pp(e){const{onClose:t,onSelect:n,className:i,headerEntries:o,position:r,title:s,width:a,scale:l,search:c,emptyPlaceholder:h,entries:u,onOpened:p,onClosed:d}=e,f=Zu((()=>!!R(c)&&u.length>5),[c,u]),[m,g]=Xu(""),v=Ju(((e,t)=>f?e.filter((e=>{if(!t)return(e.rank||0)>=0;if(!1===e.searchable)return!1;const n=[e.description||"",e.label||"",e.search||""].map((e=>e.toLowerCase()));return t.toLowerCase().split(/\s/g).every((e=>n.some((t=>t.includes(e)))))})):e),[f]),[y,b]=Xu(v(u,m)),[w,x]=Xu(y[0]),_=Ju((e=>{w&&e.includes(w)||x(e[0]),b(e)}),[w,b,x]);Uu((()=>{_(v(u,m))}),[m,u]);const E=Ju((e=>{let t=y.indexOf(w)+e;t<0&&(t=y.length-1),t>=y.length&&(t=0),x(y[t])}),[y,w,x]),k=Ju((e=>"Enter"===e.key&&w?n(e,w):"ArrowUp"===e.key?(E(-1),e.preventDefault()):"ArrowDown"===e.key?(E(1),e.preventDefault()):void 0),[n,w,E]),S=Ju((e=>{Zt(e.target,"input")&&g((()=>e.target.value))}),[g]);Uu((()=>(p(),()=>{d()})),[]);const C=Zu((()=>s||o.length>0),[s,o]);return Nu` + <${dp} + onClose=${t} + onKeyup=${S} + onKeydown=${k} + className=${i} + position=${r} + width=${a} + scale=${l} + > + ${C&&Nu` + <${cp} + headerEntries=${o} + onSelect=${n} + selectedEntry=${w} + setSelectedEntry=${x} + title=${s} + /> + `} + ${u.length>0&&Nu` +
    + + ${f&&Nu` + + `} + + <${up} + entries=${y} + selectedEntry=${w} + setSelectedEntry=${x} + onAction=${n} + /> +
    + `} + ${h&&0===y.length&&Nu` +
    ${I(h)?h(m):h}
    + `} + + `}function dp(e){const{onClose:t,onKeydown:n,onKeyup:i,className:o,children:r,position:s}=e,a=Ku();return Yu((()=>{if("function"!=typeof s)return;const e=a.current,t=s(e);e.style.left=`${t.x}px`,e.style.top=`${t.y}px`}),[a.current,s]),Yu((()=>{const e=a.current;e&&(e.querySelector("input")||e).focus()}),[]),Uu((()=>{const e=e=>{if("Escape"===e.key)return e.preventDefault(),t()},n=e=>{if(!Ft(e.target,".djs-popup",!0))return t()};return document.documentElement.addEventListener("keydown",e),document.body.addEventListener("click",n),()=>{document.documentElement.removeEventListener("keydown",e),document.body.removeEventListener("click",n)}}),[]),Nu` +
    + ${r} +
    + `}var fp=["contextPad.close","canvas.viewbox.changing","commandStack.changed"];function mp(e,t,n){this._eventBus=t,this._canvas=n,this._current=null;var i=R(e&&e.scale)?e.scale:{min:1,max:1};this._config={scale:i},t.on("diagram.destroy",(()=>{this.close()})),t.on("element.changed",(e=>{const t=this.isOpen()&&this._current.target;e.element===t&&this.refresh()}))}mp.$inject=["config.popupMenu","eventBus","canvas"],mp.prototype._render=function(){const{position:e,providerId:t,entries:n,headerEntries:i,emptyPlaceholder:o,options:r}=this._current,s=Object.entries(n).map((([e,t])=>({id:e,...t}))),a=Object.entries(i).map((([e,t])=>({id:e,...t}))),l=e&&(t=>this._ensureVisible(t,e)),c=this._updateScale(this._current.container);Mu(Nu` + <${pp} + onClose=${e=>this.close(e)} + onSelect=${(e,t,n)=>this.trigger(e,t,n)} + position=${l} + className=${t} + entries=${s} + headerEntries=${a} + emptyPlaceholder=${o} + scale=${c} + onOpened=${this._onOpened.bind(this)} + onClosed=${this._onClosed.bind(this)} + ...${{...r}} + /> + `,this._current.container)},mp.prototype.open=function(e,t,n,i){if(!e)throw new Error("target is missing");if(!t)throw new Error("providers for <"+t+"> not found");if(!n)throw new Error("position is missing");this.isOpen()&&this.close();const{entries:o,headerEntries:r,emptyPlaceholder:s}=this._getContext(e,t);this._current={position:n,providerId:t,target:e,entries:o,headerEntries:r,emptyPlaceholder:s,container:this._createContainer({provider:t}),options:i},this._emit("open"),this._bindAutoClose(),this._render()},mp.prototype.refresh=function(){if(!this.isOpen())return;const{target:e,providerId:t}=this._current,{entries:n,headerEntries:i,emptyPlaceholder:o}=this._getContext(e,t);this._current={...this._current,entries:n,headerEntries:i,emptyPlaceholder:o},this._emit("refresh"),this._render()},mp.prototype._getContext=function(e,t){const n=this._getProviders(t);if(!n||!n.length)throw new Error("provider for <"+t+"> not found");const i=this._getEntries(e,n),o=this._getHeaderEntries(e,n);return{entries:i,headerEntries:o,emptyPlaceholder:this._getEmptyPlaceholder(n),empty:!(Object.keys(i).length||Object.keys(o).length)}},mp.prototype.close=function(){this.isOpen()&&(this._emit("close"),this.reset(),this._current=null)},mp.prototype.reset=function(){const e=this._current.container;Mu(null,e),tn(e)},mp.prototype._emit=function(e,t){this._eventBus.fire(`popupMenu.${e}`,t)},mp.prototype._onOpened=function(){this._emit("opened")},mp.prototype._onClosed=function(){this._emit("closed")},mp.prototype._createContainer=function(e){var t=this._canvas.getContainer();const n=Kt(`
    `);return t.appendChild(n),n},mp.prototype._bindAutoClose=function(){this._eventBus.once(fp,this.close,this)},mp.prototype._unbindAutoClose=function(){this._eventBus.off(fp,this.close,this)},mp.prototype._updateScale=function(){var e,t,n=this._canvas.zoom(),i=this._config.scale,o=n;return!0!==i&&(!1===i?(e=1,t=1):(e=i.min,t=i.max),R(e)&&nt&&(o=t)),o},mp.prototype._ensureVisible=function(e,t){var n=document.documentElement.getBoundingClientRect(),i=e.getBoundingClientRect(),o={},r=t.x,s=t.y;return t.x+i.width>n.width&&(o.x=!0),t.y+i.height>n.height&&(o.y=!0),o.x&&o.y?(r=t.x-i.width,s=t.y-i.height):o.x?(r=t.x-i.width,s=t.y):o.y&&t.yI(e.getEmptyPlaceholder)));return t&&t.getEmptyPlaceholder()},mp.prototype.isOpen=function(){return!!this._current},mp.prototype.trigger=function(e,t,n="click"){if(e.preventDefault(),!t){let n=Dt(Ft(e.delegateTarget||e.target,".entry",!0),"data-id");t={id:n,...this._getEntry(n)}}const i=t.action;if(!1!==this._emit("trigger",{entry:t,event:e}))if(I(i)){if("click"===n)return i(e,t)}else if(i[n])return i[n](e,t)},mp.prototype._getEntry=function(e){var t=this._current.entries[e]||this._current.headerEntries[e];if(!t)throw new Error("entry not found");return t};const gp={__init__:["popupMenu"],popupMenu:["type",mp]},vp={align:'\n \n \n \n ',bottom:'\n \n \n \n ',center:'\n \n \n \n ',left:'\n \n \n \n ',right:'\n \n \n \n ',top:'\n \n \n \n ',middle:'\n \n \n \n '};function yp(e,t,n,i){e.registerProvider(900,this),this._contextPad=e,this._popupMenu=t,this._translate=n,this._canvas=i}yp.$inject=["contextPad","popupMenu","translate","canvas"],yp.prototype.getMultiElementContextPadEntries=function(e){var t={};return this._isAllowed(e)&&ce(t,this._getEntries(e)),t},yp.prototype._isAllowed=function(e){return!this._popupMenu.isEmpty(e,"align-elements")},yp.prototype._getEntries=function(){var e=this;return{"align-elements":{group:"align-elements",title:e._translate("Align elements"),html:`
    ${vp.align}
    `,action:{click:function(t,n){var i=e._getMenuPosition(n);ce(i,{cursor:{x:t.x,y:t.y}}),e._popupMenu.open(n,"align-elements",i)}}}}},yp.prototype._getMenuPosition=function(e){var t=this._contextPad.getPad(e).html.getBoundingClientRect();return{x:t.left,y:t.bottom+5}};var bp=["left","center","right","top","middle","bottom"];function wp(e,t,n,i){this._alignElements=t,this._translate=n,this._popupMenu=e,this._rules=i,e.registerProvider("align-elements",this)}function xp(e){cc.call(this,e),this.init()}function _p(e){xp.call(this,e)}wp.$inject=["popupMenu","alignElements","translate","rules"],wp.prototype.getPopupMenuEntries=function(e){var t={};return this._isAllowed(e)&&ce(t,this._getEntries(e)),t},wp.prototype._isAllowed=function(e){return this._rules.allowed("elements.align",{elements:e})},wp.prototype._getEntries=function(e){var t=this._alignElements,n=this._translate,i=this._popupMenu,o={};return V(bp,(function(r){o["align-elements-"+r]={group:"align",title:n("Align elements "+r),className:"bjs-align-elements-menu-entry",imageHtml:vp[r],action:function(){t.trigger(e,r),i.close()}}})),o},xp.$inject=["eventBus"],lt(xp,cc),xp.prototype.addRule=function(e,t,n){var i=this;"string"==typeof e&&(e=[e]),e.forEach((function(e){i.canExecute(e,t,(function(e,t,i){return n(e)}),!0)}))},xp.prototype.init=function(){},_p.$inject=["eventBus"],lt(_p,xp),_p.prototype.init=function(){this.addRule("elements.align",(function(e){var t=H(e.elements,(function(e){return!(e.waypoints||e.host||e.labelTarget)}));return!((t=qo(t)).length<2)&&t}))};const Ep={__depends__:[jh,Qh,gp],__init__:["alignElementsContextPadProvider","alignElementsMenuProvider","bpmnAlignElements"],alignElementsContextPadProvider:["type",yp],alignElementsMenuProvider:["type",wp],bpmnAlignElements:["type",_p]};var kp=10,Sp=50,Cp=250;function Op(e,t,n,i){for(var o;o=Mp(e,n,t);)n=i(t,n,o);return n}function Pp(e){return function(t,n,i){var o={x:n.x,y:n.y};return["x","y"].forEach((function(r){var s=e[r];if(s){var a="x"===r?"width":"height",l=s.margin,c=s.minDistance;o[r]=l<0?Math.min(i[r]+l-t[a]/2,n[r]-c+l):Math.max(i[r]+i[a]+l+t[a]/2,n[r]+c+l)}})),o}}function Mp(e,t,n){var i={x:t.x-n.width/2,y:t.y-n.height/2,width:n.width,height:n.height},o=function(e){var t=Ap(e);return e.host&&(t=t.concat(Ap(e.host))),e.attachers&&(t=t.concat(e.attachers.reduce((function(e,t){return e.concat(Ap(t))}),[]))),t}(e);return j(o,(function(e){return e!==n&&"intersect"===Xr(e,i,kp)}))}function Ap(e){return(t=e,t.outgoing.map((function(e){return e.target}))).concat(function(e){return e.incoming.map((function(e){return e.source}))}(e));var t}function Tp(){return!0}function Bp(e,t,n){e.on("autoPlace",100,(function(e){var t=e.shape;return function(e,t,n){n||(n={});var i=n.defaultDistance||Sp,o=Qr(e);return{x:Wr(e).right+i+t.width/2,y:o.y}}(e.source,t)})),e.on("autoPlace.end",(function(e){n.scrollToElement(e.shape)})),this.append=function(n,i,o){e.fire("autoPlace.start",{source:n,shape:i});var r=e.fire("autoPlace",{source:n,shape:i}),s=t.appendShape(n,i,r,n.parent,o);return e.fire("autoPlace.end",{source:n,shape:s}),s}}function Rp(e,t){e.on("autoPlace.end",500,(function(e){t.select(e.shape)}))}Bp.$inject=["eventBus","modeling","canvas"],Rp.$inject=["eventBus","selection"];const Dp={__init__:["autoPlaceSelectionBehavior"],autoPlace:["type",Bp],autoPlaceSelectionBehavior:["type",Rp]};function Lp(e,t){for(F(t)&&(t=[t]);e=e.parent;)if(fe(e,t))return e;return null}function Np(e){var t=["bpmn:Participant","bpmn:Lane"],n=Lp(e,t);return n?pl(n):!fe(e,t)||pl(e)}function zp(e,t){return de(t,"bpmn:TextAnnotation")?function(e,t){var n=Wr(e),i=Np(e),o=i?{x:n.right+t.width/2,y:n.top-50-t.height/2}:{x:n.right+50+t.width/2,y:n.bottom+t.height/2};jr(e)&&(o=Qr(e),i?(o.x+=100,o.y-=50):(o.x+=100,o.y+=50));var r={margin:i?-30:30,minDistance:20};return Op(e,t,o,Pp(i?{y:r}:{x:r}))}(e,t):fe(t,["bpmn:DataObjectReference","bpmn:DataStoreReference"])?function(e,t){var n=Wr(e),i=Np(e),o={margin:30,minDistance:30};return Op(e,t,i?{x:n.right-10+t.width/2,y:n.bottom+40+t.width/2}:{x:n.left-40-t.width/2,y:n.bottom-10+t.height/2},Pp(i?{x:o}:{y:o}))}(e,t):de(t,"bpmn:FlowNode")?function(e,t){var n=Wr(e),i=Qr(e),o=Np(e),r=o?{directionHint:"e",minDistance:80,baseOrientation:"left",boundaryOrientation:"top",start:"top",end:"bottom"}:{directionHint:"s",minDistance:90,baseOrientation:"top",boundaryOrientation:"left",start:"left",end:"right"},s=function(e,t){t||(t={});var n=t.defaultDistance||Sp,i=t.direction||"e",o=t.filter,r=t.getWeight||function(t){return t.source===e?1:-1},s=t.maxDistance||Cp,a=t.reference||"start";function l(e,t){return"n"===i?"start"===a?Wr(e).top-Wr(t).bottom:"center"===a?Wr(e).top-Qr(t).y:Wr(e).top-Wr(t).top:"w"===i?"start"===a?Wr(e).left-Wr(t).right:"center"===a?Wr(e).left-Qr(t).x:Wr(e).left-Wr(t).left:"s"===i?"start"===a?Wr(t).top-Wr(e).bottom:"center"===a?Qr(t).y-Wr(e).bottom:Wr(t).bottom-Wr(e).bottom:"start"===a?Wr(t).left-Wr(e).right:"center"===a?Qr(t).x-Wr(e).right:Wr(t).right-Wr(e).right}o||(o=Tp);var c=e.incoming.filter(o).map((function(t){var n=r(t),i=n<0?l(t.source,e):l(e,t.source);return{id:t.source.id,distance:i,weight:n}})),h=e.outgoing.filter(o).map((function(t){var n=r(t),i=n>0?l(e,t.target):l(t.target,e);return{id:t.target.id,distance:i,weight:n}}));return G(c.concat(h).reduce((function(e,t){return e[t.id+"__weight_"+t.weight]=t,e}),{}),(function(e,t){var n=t.distance,i=t.weight;return n<0||n>s||(e[String(n)]||(e[String(n)]=0),e[String(n)]+=1*i,(!e.distance||e[e.distance]t.top&&(n=n.concat("n")),e.rightt.left&&(n=n.concat("e")),n}(ue(t,["x","y","width","height"]),n);this.resize(t,n,{autoResize:i});var o=t.parent;o&&this._expand([t],o)}}},jp.prototype.getOffset=function(e){return{top:60,bottom:60,left:100,right:100}},jp.prototype.getPadding=function(e){return{top:2,bottom:2,left:15,right:15}},jp.prototype.resize=function(e,t,n){this._modeling.resizeShape(e,t,null,n)},qp.$inject=["injector"],lt(qp,jp),qp.prototype.resize=function(e,t,n){de(e,"bpmn:Participant")?this._modeling.resizeLane(e,t,null,n):this._modeling.resizeShape(e,t,null,n)},Hp.$inject=["eventBus"],lt(Hp,xp),Hp.prototype.canResize=function(e,t){return!1},lt(Vp,Hp),Vp.$inject=["eventBus","modeling"],Vp.prototype.canResize=function(e,t){if(de(t.di,"bpmndi:BPMNPlane"))return!1;if(!de(t,"bpmn:Participant")&&!de(t,"bpmn:Lane")&&!de(t,"bpmn:SubProcess"))return!1;var n=!0;return V(e,(function(e){(de(e,"bpmn:Lane")||qr(e))&&(n=!1)})),n};const Wp={__init__:["bpmnAutoResize","bpmnAutoResizeProvider"],bpmnAutoResize:["type",qp],bpmnAutoResizeProvider:["type",Vp]};function Gp(e,t,n){var i,o,r=this,s=n.get("dragging",!1);s&&t.on("drag.start",(function(n){t.once("drag.move",1500,(function(t){!function(t){if(!t.hover){var n=t.originalEvent,i=r._findTargetGfx(n),o=i&&e.get(i);i&&o&&(t.stopPropagation(),s.hover({element:o,gfx:i}),s.move(n))}}(t)}))})),t.on("element.hover",(function(e){i=e.gfx,o=e.element})),t.on("element.hover",1500,(function(e){o&&t.fire("element.out",{element:o,gfx:i})})),t.on("element.out",(function(){i=null,o=null})),this._findTargetGfx=function(e){var t;if(e instanceof MouseEvent)return t=Ic(e),Ft(document.elementFromPoint(t.x,t.y),"svg, .djs-element",!0)}}Gp.$inject=["elementRegistry","eventBus","injector"];const Qp={__init__:["hoverFix"],hoverFix:["type",Gp]};var Xp=Math.round,Up="djs-drag-active";function Yp(e){e.preventDefault()}function Kp(e,t,n,i){var o,r={threshold:5,trapClick:!0};function s(e){var n=t.viewbox(),i=t._container.getBoundingClientRect();return{x:n.x+(e.x-i.left)/n.scale,y:n.y+(e.y-i.top)/n.scale}}function a(t,n){n=n||o;var i=e.createEvent(ce({},n.payload,n.data,{isTouch:n.isTouch}));return!1!==e.fire("drag."+t,i)&&e.fire(n.prefix+"."+t,i)}function l(e,i){var r,l=o.payload,c=o.displacement,h=o.globalStart,u=Ic(e),p=Ch(u,h),d=o.localStart,f=s(u),g=Ch(f,d);if(!o.active&&(i||(r=p,Math.sqrt(Math.pow(r.x,2)+Math.pow(r.y,2))>o.threshold))){if(ce(l,{x:Xp(d.x+c.x),y:Xp(d.y+c.y),dx:0,dy:0},{originalEvent:e}),!1===a("start"))return m();o.active=!0,o.keepSelection||(l.previousSelection=n.get(),n.select(null)),o.cursor&&xh(o.cursor),t.addMarker(t.getRootElement(),Up)}zc(e),o.active&&(ce(l,{x:Xp(f.x+c.x),y:Xp(f.y+c.y),dx:Xp(g.x),dy:Xp(g.y)},{originalEvent:e}),a("move"))}function c(e){var t=!0;o.active&&(e&&(o.payload.originalEvent=e,zc(e)),t=a("end")),!1===t&&a("rejected"),a("ended",g(!0!==t))}function h(e){ah("Escape",e)&&(Yp(e),m())}function u(t){var n;o.active&&(n=kh(e),setTimeout(n,400),Yp(t)),c(t)}function p(e){l(e)}function d(e){var t=o.payload;t.hoverGfx=e.gfx,t.hover=e.element,a("hover")}function f(e){a("out");var t=o.payload;t.hoverGfx=null,t.hover=null}function m(e){var t;if(o){var n=o.active;n&&a("cancel"),t=g(e),n&&a("canceled",t)}}function g(r){var s,g;a("cleanup"),_h(),g=o.trapClick?u:c,Gt.unbind(document,"mousemove",l),Gt.unbind(document,"dragstart",Yp),Gt.unbind(document,"selectstart",Yp),Gt.unbind(document,"mousedown",g,!0),Gt.unbind(document,"mouseup",g,!0),Gt.unbind(document,"keyup",h),Gt.unbind(document,"touchstart",p,!0),Gt.unbind(document,"touchcancel",m,!0),Gt.unbind(document,"touchmove",l,!0),Gt.unbind(document,"touchend",c,!0),e.off("element.hover",d),e.off("element.out",f),t.removeMarker(t.getRootElement(),Up);var v=o.payload.previousSelection;return!1!==r&&v&&!n.get().length&&function(e){var t=e.filter((function(e){return i.get(e.id)}));t.length&&n.select(t)}(v),s=o,o=null,s}e.on("diagram.destroy",m),this.init=function(t,n,i,g){o&&m(!1),"string"==typeof n&&(g=i,i=n,n=null);var v,y,b,w,x,_=(g=ce({},r,g||{})).data||{};w=g.trapClick?u:c,t?(v=Nc(t)||t,y=Ic(t),zc(t),"dragstart"===v.type&&Yp(v)):(v=null,y={x:0,y:0}),b=s(y),n||(n=b),x=function(e){return"undefined"!=typeof TouchEvent&&e instanceof TouchEvent}(v),o=ce({prefix:i,data:_,payload:{},globalStart:y,displacement:Ch(n,b),localStart:b,isTouch:x},g),g.manual||(x?(Gt.bind(document,"touchstart",p,!0),Gt.bind(document,"touchcancel",m,!0),Gt.bind(document,"touchmove",l,!0),Gt.bind(document,"touchend",c,!0)):(Gt.bind(document,"mousemove",l),Gt.bind(document,"dragstart",Yp),Gt.bind(document,"selectstart",Yp),Gt.bind(document,"mousedown",w,!0),Gt.bind(document,"mouseup",w,!0)),Gt.bind(document,"keyup",h),e.on("element.hover",d),e.on("element.out",f)),a("init"),g.autoActivate&&l(t,!0)},this.move=l,this.hover=d,this.out=f,this.end=c,this.cancel=m,this.context=function(){return o},this.setOptions=function(e){ce(r,e)}}Kp.$inject=["eventBus","canvas","selection","elementRegistry"];const Zp={__depends__:[Qp,eh],dragging:["type",Kp]};function Jp(e,t,n){this._canvas=n,this._opts=ce({scrollThresholdIn:[20,20,20,20],scrollThresholdOut:[0,0,0,0],scrollRepeatTimeout:15,scrollStep:10},e);var i=this;t.on("drag.move",(function(e){var t=i._toBorderPoint(e);i.startScroll(t)})),t.on(["drag.cleanup"],(function(){i.stopScroll()}))}Jp.$inject=["config.autoScroll","eventBus","canvas"],Jp.prototype.startScroll=function(e){var t,n,i,o=this._canvas,r=this._opts,s=this,a=o.getContainer().getBoundingClientRect(),l=[e.x,e.y,a.width-e.x,a.height-e.y];this.stopScroll();for(var c=0,h=0,u=0;u<4;u++)t=l[u],n=r.scrollThresholdOut[u],i=r.scrollThresholdIn[u],nm-3&&(n=Xr(o.target,f),s===m-2?"intersect"===n&&(p.pop(),p[p.length-1]=f):"intersect"!==n&&p.push(h)),i.newWaypoints=o.waypoints=a(o,p),function(e,t,n){var i,o,r,s,a,l,c=e.newWaypoints,h=(i=n,o=c[e.segmentStartIndex+t],r=c[e.segmentEndIndex+t],s=Nd(e.axis),a=Math.max(o[s],r[s]),l=Math.min(o[s],r[s]),Ld(o,s,Math.min(Math.max(l+20,i[s]),a-20)));ks(e.draggerGfx,h.x,h.y)}(i,g,e),i.newSegmentStartIndex=r+g,l(e)})),t.on("connectionSegment.move.hover",(function(e){e.context.hover=e.hover,n.addMarker(e.hover,Bd)})),t.on(["connectionSegment.move.out","connectionSegment.move.cleanup"],(function(e){var t=e.context.hover;t&&n.removeMarker(t,Bd)})),t.on("connectionSegment.move.cleanup",(function(e){var t=e.context,i=t.connection;t.draggerGfx&&Pn(t.draggerGfx),n.removeMarker(i,Rd)})),t.on(["connectionSegment.move.cancel","connectionSegment.move.end"],(function(e){var t=e.context;t.connection.waypoints=t.originalWaypoints,l(e)})),t.on("connectionSegment.move.end",(function(e){var t=e.context,n=t.connection,i=t.newWaypoints,o=t.newSegmentStartIndex;i=i.map((function(e){return{original:e.original,x:Math.round(e.x),y:Math.round(e.y)}}));var s=function(e,t){var n=0;return{waypoints:e.filter((function(i,o){return!ir(e[o-1],e[o+1],i)||(n=o<=t?n-1:n,!1)})),segmentOffset:n}}(i,o),l=a(n,s.waypoints),c=s.segmentOffset,h={segmentMove:{segmentStartIndex:t.segmentStartIndex,newSegmentStartIndex:o+c}};r.updateWaypoints(n,l,h)}))}Id.$inject=["injector","eventBus","canvas","dragging","graphicsFactory","modeling"];var Fd=Math.abs,$d=Math.round;function jd(e){return{x:e.x,y:e.y}}function qd(e){return{x:e.x+e.width,y:e.y+e.height}}function Hd(e,t){return!e||isNaN(e.x)||isNaN(e.y)?t:{x:$d(e.x+e.width/2),y:$d(e.y+e.height/2)}}function Vd(e,t){var n=e.snapped;return!!n&&("string"==typeof t?n[t]:n.x&&n.y)}function Wd(e,t,n){if("string"!=typeof t)throw new Error("axis must be in [x, y]");if("number"!=typeof n&&!1!==n)throw new Error("value must be Number or false");var i,o=e[t],r=e.snapped=e.snapped||{};return!1===n?r[t]=!1:(r[t]=!0,i=n-o,e[t]+=i,e["d"+t]+=i),o}function Gd(e){return e.children||[]}var Qd=Math.abs,Xd=Math.round;function Ud(e){function t(e,t){if(L(e)){for(var n=e.length;n--;)if(Qd(e[n]-t)<=10)return e[n]}else{var i=t%(e=+e);if(i<10)return t-i;if(i>e-10)return t-i+e}return t}function n(e,t){return e.waypoints?(i=function(e,t){for(var n,i=t.waypoints,o=1/0,r=0;rr.length-3&&u.unshift(n(o.target,e)),t.snapPoints=i={horizontal:[],vertical:[]},V(u,(function(e){e&&(e=e.original||e,"y"===h&&i.horizontal.push(e.y),"x"===h&&i.vertical.push(e.x))})),i}(e),s=e.x,a=e.y;if(r){var l=s-(i=t(r.vertical,s)),c=a-(o=t(r.horizontal,a));ce(e,{dx:e.dx-l,dy:e.dy-c,x:i,y:o}),(l||-1!==r.vertical.indexOf(s))&&Wd(e,"x",i),(c||-1!==r.horizontal.indexOf(a))&&Wd(e,"y",o)}})),e.on(["connect.hover","connect.move","connect.end"],1500,(function(e){var t=e.context.hover,i=t&&n(t,e);jr(t)&&i&&i.x&&i.y&&(Wd(e,"x",i.x),Wd(e,"y",i.y))})),e.on(["bendpoint.move.move","bendpoint.move.end"],1500,(function(e){var i,o,r=e.context,s=function(e){var t=e.snapPoints,n=e.connection.waypoints,i=e.bendpointIndex;if(t)return t;var o=[n[i-1],n[i+1]];return e.snapPoints=t={horizontal:[],vertical:[]},V(o,(function(e){e&&(e=e.original||e,t.horizontal.push(e.y),t.vertical.push(e.x))})),t}(r),a=r.hover,l=a&&n(a,e),c=e.x,h=e.y;if(s){var u=c-(i=t(l?s.vertical.concat([l.x]):s.vertical,c)),p=h-(o=t(l?s.horizontal.concat([l.y]):s.horizontal,h));ce(e,{dx:e.dx-u,dy:e.dy-p,x:e.x-u,y:e.y-p}),(u||-1!==s.vertical.indexOf(c))&&Wd(e,"x",i),(p||-1!==s.horizontal.indexOf(h))&&Wd(e,"y",o)}}))}Ud.$inject=["eventBus"];const Yd={__depends__:[Zp,nd],__init__:["bendpoints","bendpointSnapping","bendpointMovePreview"],bendpoints:["type",yd],bendpointMove:["type",Ed],bendpointMovePreview:["type",Td],connectionSegmentMove:["type",Id],bendpointSnapping:["type",Ud]};function Kd(e,t,n,i){function o(e,t){return i.allowed("connection.create",{source:e,target:t})}e.on("connect.hover",(function(e){var t,n=e.context,i=n.start,r=e.hover;if(n.hover=r,!D(t=n.canExecute=o(i,r))){if(!1!==t)return n.source=i,void(n.target=r);D(t=n.canExecute=o(r,i))||!1!==t&&(n.source=r,n.target=i)}})),e.on(["connect.out","connect.cleanup"],(function(e){var t=e.context;t.hover=null,t.source=null,t.target=null,t.canExecute=!1})),e.on("connect.end",(function(e){var t=e.context,i=t.canExecute,o=t.connectionStart,r={x:e.x,y:e.y},s=t.source,a=t.target;if(!i)return!1;var l=null,c={connectionStart:Zd(t)?r:o,connectionEnd:Zd(t)?o:r};N(i)&&(l=i),t.connection=n.connect(s,a,l,c)})),this.start=function(e,n,i,o){N(i)||(o=i,i=Qr(n)),t.init(e,"connect",{autoActivate:o,data:{shape:n,context:{start:n,connectionStart:i}}})}}function Zd(e){var t=e.hover,n=e.source,i=e.target;return t&&n&&t===n&&n!==i}Kd.$inject=["eventBus","dragging","modeling","rules"];var Jd="connect-ok",ef="connect-not-ok";function tf(e,t,n){var i=e.get("connectionPreview",!1);i&&t.on("connect.move",(function(e){var t=e.context,n=t.canExecute,o=t.hover,r=t.source,s=t.start,a=t.startPosition,l=t.target,c=t.connectionStart||a,h=t.connectionEnd||{x:e.x,y:e.y},u=c,p=h;Zd(t)&&(u=h,p=c),i.drawPreview(t,n,{source:r||s,target:l||o,connectionStart:u,connectionEnd:p})})),t.on("connect.hover",900,(function(e){var t=e.context,i=e.hover,o=t.canExecute;null!==o&&n.addMarker(i,o?Jd:ef)})),t.on(["connect.out","connect.cleanup"],1100,(function(e){var t=e.hover;t&&(n.removeMarker(t,Jd),n.removeMarker(t,ef))})),i&&t.on("connect.cleanup",(function(e){i.cleanUp(e.context)}))}tf.$inject=["injector","eventBus","canvas"];const nf={__depends__:[eh,nd,Zp],__init__:["connectPreview"],connect:["type",Kd],connectPreview:["type",tf]};function of(e,t,n,i){this._canvas=t,this._graphicsFactory=n,this._elementFactory=i,this._connectionDocking=e.get("connectionDocking",!1),this._layouter=e.get("layouter",!1)}of.$inject=["injector","canvas","graphicsFactory","elementFactory"],of.prototype.drawPreview=function(e,t,n){n=n||{};var i,o,r,s=e.connectionPreviewGfx,a=e.getConnection,l=n.source,c=n.target,h=n.waypoints,u=n.connectionStart,p=n.connectionEnd,d=n.noLayout,f=n.noCropping,m=n.noNoop,g=this;s||(s=e.connectionPreviewGfx=this.createConnectionPreviewGfx()),pn(s),a||(a=e.getConnection=(o=function(e,t,n){return g.getConnection(e,t,n)},r={},function(e){var t=JSON.stringify(e),n=r[t];return n||(n=r[t]=o.apply(null,arguments)),n})),t&&(i=a(t,l,c)),i?(i.waypoints=h||[],this._layouter&&!d&&(i.waypoints=this._layouter.layoutConnection(i,{source:l,target:c,connectionStart:u,connectionEnd:p,waypoints:n.waypoints||i.waypoints})),i.waypoints&&i.waypoints.length||(i.waypoints=[l?Qr(l):u,c?Qr(c):p]),this._connectionDocking&&(l||c)&&!f&&(i.waypoints=this._connectionDocking.getCroppedWaypoints(i,l,c)),this._graphicsFactory.drawConnection(s,i,{stroke:"var(--element-dragger-color)"})):!m&&this.drawNoopPreview(s,n)},of.prototype.drawNoopPreview=function(e,t){var n=t.source,i=t.target,o=t.connectionStart||Qr(n),r=t.connectionEnd||Qr(i),s=this.cropWaypoints(o,r,n,i);on(e,this.createNoopConnection(s[0],s[1]))},of.prototype.cropWaypoints=function(e,t,n,i){var o=this._graphicsFactory,r=n&&o.getShapePath(n),s=i&&o.getShapePath(i),a=o.getConnectionPath({waypoints:[e,t]});return[e=n&&Ur(r,a,!0)||e,t=i&&Ur(s,a,!1)||t]},of.prototype.cleanUp=function(e){e&&e.connectionPreviewGfx&&Pn(e.connectionPreviewGfx)},of.prototype.getConnection=function(e){var t=function(e){return N(e)?e:{}}(e);return this._elementFactory.createConnection(t)},of.prototype.createConnectionPreviewGfx=function(){var e=vn("g");return ln(e,{pointerEvents:"none"}),hn(e).add("djs-dragger"),on(this._canvas.getActiveLayer(),e),e},of.prototype.createNoopConnection=function(e,t){return $o([e,t],{stroke:"#333",strokeDasharray:[1],strokeWidth:2,"pointer-events":"none"})};const rf={__init__:["connectionPreview"],connectionPreview:["type",of]},sf=new ec("ps");var af=["marker-start","marker-mid","marker-end"],lf=["circle","ellipse","line","path","polygon","polyline","path","rect"];function cf(e,t,n,i){this._elementRegistry=e,this._canvas=n,this._styles=i}cf.$inject=["elementRegistry","eventBus","canvas","styles"],cf.prototype.cleanUp=function(){console.warn("PreviewSupport#cleanUp is deprecated and will be removed in future versions. You do not need to manually clean up previews anymore. cf. https://github.com/bpmn-io/diagram-js/pull/906")},cf.prototype.getGfx=function(e){return this._elementRegistry.getGraphics(e)},cf.prototype.addDragger=function(e,t,n,i="djs-dragger"){var o=dn(n=n||this.getGfx(e)),r=n.getBoundingClientRect();return this._cloneMarkers(_s(o),i),ln(o,this._styles.cls(i,[],{x:r.top,y:r.left})),on(t,o),ln(o,"data-preview-support-element-id",e.id),o},cf.prototype.addFrame=function(e,t){var n=vn("rect",{class:"djs-resize-overlay",width:e.width,height:e.height,x:e.x,y:e.y});return on(t,n),ln(n,"data-preview-support-element-id",e.id),n},cf.prototype._cloneMarkers=function(e,t="djs-dragger",n=e){var i=this;if(e.childNodes)for(var o=0;o defs",e);l||on(e,l=vn("defs")),on(l,a);var c=function(e){return"url(#"+e+")"}(a.id);ln(t,i,c)};const hf={__init__:["previewSupport"],previewSupport:["type",cf]},uf="complex-preview";class pf{constructor(e,t,n){this._canvas=e,this._graphicsFactory=t,this._previewSupport=n,this._markers=[]}create(e){this.cleanUp();const{created:t=[],moved:n=[],removed:i=[],resized:o=[]}=e,r=this._canvas.getLayer(uf);t.filter((e=>!function(e){return e.hidden}(e))).forEach((e=>{let t;jr(e)?(t=this._graphicsFactory._createContainer("connection",vn("g")),this._graphicsFactory.drawConnection(_s(t),e)):(t=this._graphicsFactory._createContainer("shape",vn("g")),this._graphicsFactory.drawShape(_s(t),e),ks(t,e.x,e.y)),this._previewSupport.addDragger(e,r,t)})),n.forEach((({element:e,delta:t})=>{this._previewSupport.addDragger(e,r,void 0,"djs-dragging"),this._canvas.addMarker(e,"djs-element-hidden"),this._markers.push([e,"djs-element-hidden"]);const n=this._previewSupport.addDragger(e,r);jr(e)?ks(n,t.x,t.y):ks(n,e.x+t.x,e.y+t.y)})),i.forEach((e=>{this._previewSupport.addDragger(e,r,void 0,"djs-dragging"),this._canvas.addMarker(e,"djs-element-hidden"),this._markers.push([e,"djs-element-hidden"])})),o.forEach((({shape:e,bounds:t})=>{this._canvas.addMarker(e,"djs-hidden"),this._markers.push([e,"djs-hidden"]),this._previewSupport.addDragger(e,r,void 0,"djs-dragging");const n=this._graphicsFactory._createContainer("shape",vn("g"));this._graphicsFactory.drawShape(_s(n),e,{width:t.width,height:t.height}),ks(n,t.x,t.y),this._previewSupport.addDragger(e,r,n)}))}cleanUp(){pn(this._canvas.getLayer(uf)),this._markers.forEach((([e,t])=>this._canvas.removeMarker(e,t))),this._markers=[]}show(){this._canvas.showLayer(uf)}hide(){this._canvas.hideLayer(uf)}}pf.$inject=["canvas","graphicsFactory","previewSupport"];const df={__depends__:[hf],__init__:["complexPreview"],complexPreview:["type",pf]};var ff=["top","bottom","left","right"];function mf(e,t){function n(e){if(bl(e)){var n=function(e){var t=Qr(e.label),n=gf(Qr(e),t);if(i=n,-1!==ff.indexOf(i)){var i,o=function(e){var t=Qr(e),n=[].concat(e.incoming.map((function(e){return e.waypoints[e.waypoints.length-2]})),e.outgoing.map((function(e){return e.waypoints[1]}))).map((function(e){return gf(t,e)}));return n}(e);if(e.host){var r=function(e){var t,n=e.host,i=Xr(Qr(e),n);return t=i.indexOf("-")>=0?i.split("-"):[i],ff.filter((function(e){return-1===t.indexOf(e)}))}(e);o=o.concat(r)}var s=ff.filter((function(e){return-1===o.indexOf(e)}));if(-1===s.indexOf(n))return s[0]}}(e);n&&function(e,n){var i=Qr(e),o=e.label,r=Qr(o);if(o.parent){var s,a=Wr(e);switch(n){case"top":s={x:i.x,y:a.top-10-o.height/2};break;case"left":s={x:a.left-10-o.width/2,y:i.y};break;case"bottom":s={x:i.x,y:a.bottom+10+o.height/2};break;case"right":s={x:a.right+10+o.width/2,y:i.y}}var l=Ch(s,r);t.moveShape(o,l)}}(e,n)}}cc.call(this,e),this.postExecuted(["connection.create","connection.layout","connection.updateWaypoints"],(function(e){var t=e.context,i=t.connection,o=i.source,r=i.target;!1!==(t.hints||{}).createElementsBehavior&&(n(o),n(r))})),this.postExecuted(["label.create"],(function(e){var t=e.context,i=t.shape;!1!==(t.hints||{}).createElementsBehavior&&n(i.labelTarget)})),this.postExecuted(["elements.create"],(function(e){var t=e.context,i=t.elements;!1!==(t.hints||{}).createElementsBehavior&&i.forEach((function(e){n(e)}))}))}function gf(e,t){return Xr(t,e,5)}function vf(e){cc.call(this,e),this.preExecute("shape.append",(function(e){var t=e.source,n=e.shape;e.position||(de(n,"bpmn:TextAnnotation")?e.position={x:t.x+t.width/2+75,y:t.y-50-n.height/2}:e.position={x:t.x+t.width+80+n.width/2,y:t.y+t.height/2})}),!0)}function yf(e,t){e.invoke(cc,this),this.postExecute("shape.move",(function(e){var n=e.newParent,i=e.shape;V(H(i.incoming.concat(i.outgoing),(function(e){return de(e,"bpmn:Association")})),(function(e){t.moveConnection(e,{x:0,y:0},n)}))}),!0)}function bf(e,t){t.invoke(cc,this),this._bpmnReplace=e;var n=this;this.postExecuted("elements.create",500,(function(e){var t=e.elements;1===(t=t.filter((function(e){return wf(e,e.host)}))).length&&t.map((function(e){return t.indexOf(e)})).forEach((function(i){var o=t[i];e.elements[i]=n._replaceShape(t[i],o)}))}),!0),this.preExecute("elements.move",500,(function(e){var t=e.shapes,i=e.newHost;if(1===t.length){var o=t[0];wf(o,i)&&(e.shapes=[n._replaceShape(o,i)])}}),!0)}function wf(e,t){return!qr(e)&&fe(e,["bpmn:IntermediateThrowEvent","bpmn:IntermediateCatchEvent"])&&!!t}function xf(e,t){function n(e){return H(e.attachers,(function(e){return de(e,"bpmn:BoundaryEvent")}))}cc.call(this,e),this.postExecute("connection.create",(function(e){var i=e.context.source,o=e.context.target,r=n(o);de(i,"bpmn:EventBasedGateway")&&de(o,"bpmn:ReceiveTask")&&r.length>0&&t.removeElements(r)})),this.postExecute("connection.reconnect",(function(e){var i=e.context.oldSource,o=e.context.newSource;de(i,"bpmn:Gateway")&&de(o,"bpmn:EventBasedGateway")&&V(o.outgoing,(function(e){var i=e.target,o=n(i);de(i,"bpmn:ReceiveTask")&&o.length>0&&t.removeElements(o)}))}))}function _f(e,t,n){function i(e){t.updateProperties(e,{isForCompensation:!0})}function o(e){t.updateProperties(e,{isForCompensation:void 0})}cc.call(this,e),this.preExecute("shape.replace",(function(e){const{newData:n,oldShape:i}=e;if(kf(e.oldShape)&&"bpmn:CompensateEventDefinition"!==n.eventDefinitionType||"bpmn:BoundaryEvent"!==n.type){const t=i.outgoing.find((({target:e})=>Ef(e)));t&&t.target&&(e._connectionTarget=t.target)}else if(!kf(e.oldShape)&&"bpmn:CompensateEventDefinition"===n.eventDefinitionType&&"bpmn:BoundaryEvent"===n.type){const n=i.outgoing.find((({target:e})=>Sf(e)));n&&n.target&&(e._connectionTarget=n.target),function(e){const n=e.outgoing.filter((e=>de(e,"bpmn:SequenceFlow")));t.removeElements(n)}(i)}}),!0),this.postExecuted("shape.replace",(function(e){const{_connectionTarget:n,newShape:i}=e;n&&t.connect(i,n)}),!0),this.preExecute("connection.create",(function(e){const n=e.connection,o=e.source,r=e.target;kf(o)&&Sf(r)&&(i(r),function(e,n){const i=e.outgoing.filter((e=>de(e,"bpmn:Association")));i.filter((e=>Ef(e.target)&&!n.includes(e))).forEach((e=>t.removeConnection(e)))}(o,[n]))}),!0),this.postExecuted("connection.delete",(function(e){const t=e.source,n=e.target;kf(t)&&Ef(n)&&o(n)}),!0),this.postExecuted("connection.reconnect",(function(e){const t=e.newTarget,n=e.oldSource,r=e.oldTarget;if(r!==t){const e=n;Ef(r)&&o(r),kf(e)&&Sf(t)&&i(t)}}),!0),this.postExecuted("element.updateProperties",(function(e){const{element:i}=e;Ef(i)?(function(e){for(const i of e.incoming)n.canConnect(i.source,e)||t.removeConnection(i);for(const i of e.outgoing)n.canConnect(e,i.target)||t.removeConnection(i)}(i),function(e){const n=e.attachers.slice();n.length&&t.removeElements(n)}(i)):Sf(i)&&function(e){const n=e.incoming.filter((e=>kf(e.source)));t.removeElements(n)}(i)}),!0)}function Ef(e){const t=me(e);return t&&t.get("isForCompensation")}function kf(e){return e&&de(e,"bpmn:BoundaryEvent")&&ml(e,"bpmn:CompensateEventDefinition")}function Sf(e){return e&&de(e,"bpmn:Activity")&&!fl(e)}function Cf(e){e.invoke(cc,this),this.preExecute("shape.create",1500,(function(e){var t=e.context,n=t.parent,i=t.shape;de(n,"bpmn:Lane")&&!de(i,"bpmn:Lane")&&(t.parent=Lp(n,"bpmn:Participant"))}))}function Of(e,t){cc.call(this,e),this.preExecute("shape.create",(function(e){var n=e.context.shape;if(de(n,"bpmn:DataObjectReference")&&"label"!==n.type){var i=t.create("bpmn:DataObject");n.businessObject.dataObjectRef=i}}))}lt(mf,cc),mf.$inject=["eventBus","modeling"],lt(vf,cc),vf.$inject=["eventBus"],lt(yf,cc),yf.$inject=["injector","modeling"],bf.$inject=["bpmnReplace","injector"],lt(bf,cc),bf.prototype._replaceShape=function(e,t){var n,i=(n=me(e).eventDefinitions)&&n[0],o={type:"bpmn:BoundaryEvent",host:t};return i&&(o.eventDefinitionType=i.$type),this._bpmnReplace.replaceElement(e,o,{layoutConnection:!1})},xf.$inject=["eventBus","modeling"],lt(xf,cc),lt(_f,cc),_f.$inject=["eventBus","modeling","bpmnRules"],Cf.$inject=["injector"],lt(Cf,cc),Of.$inject=["eventBus","bpmnFactory"],lt(Of,cc);var Pf=2e3;function Mf(e,t,n){function i(){var t=e.getRootElement();return de(t,"bpmn:Collaboration")?t:n.makeCollaboration()}cc.call(this,t),t.on(["create.start","shape.move.start"],Pf,(function(t){var n=t.context,i=n.shape,o=e.getRootElement();if(de(i,"bpmn:Participant")&&de(o,"bpmn:Process")&&o.children.length){var r=o.children.filter((function(e){return!de(e,"bpmn:Group")&&!qr(e)&&!jr(e)}));if(r.length){var s=Qo(r),a=function(e,t){t={width:t.width+40+30,height:t.height+40};var n=Math.max(e.width,t.width),i=Math.max(e.height,t.height);return{x:-n/2,y:-i/2,width:n,height:i}}(i,s);ce(i,a),n.createConstraints=function(e,t){return{bottom:(t=Wr(t)).top+e.height/2-20,left:t.right-e.width/2+20,top:t.bottom-e.height/2+20,right:t.left+e.width/2-20-30}}(i,s)}}})),t.on("create.start",Pf,(function(n){var i=n.context.shape,o=e.getRootElement(),r=e.getGraphics(o);function s(e){e.element=o,e.gfx=r}de(i,"bpmn:Participant")&&de(o,"bpmn:Process")&&(t.on("element.hover",Pf,s),t.once("create.cleanup",(function(){t.off("element.hover",s)})))})),this.preExecute("elements.create",Pf,(function(e){var t,n=e.elements,o=e.parent,r=function(e){return j(e,(function(e){return de(e,"bpmn:Participant")}))}(n);r&&de(o,"bpmn:Process")&&(e.parent=i(),(t=e.hints=e.hints||{}).participant=r,t.process=o,t.processRef=me(r).get("processRef"))}),!0),this.preExecute("shape.create",(function(e){var t=e.parent,n=e.shape;de(n,"bpmn:Participant")&&de(t,"bpmn:Process")&&(e.parent=i(),e.process=t,e.processRef=me(n).get("processRef"))}),!0),this.execute("shape.create",(function(e){var t=e.hints||{},n=e.process||t.process,i=e.shape,o=t.participant;!n||o&&i!==o||me(i).set("processRef",me(n))}),!0),this.revert("shape.create",(function(e){var t=e.hints||{},n=e.process||t.process,i=e.processRef||t.processRef,o=e.shape,r=t.participant;!n||r&&o!==r||me(o).set("processRef",i)}),!0),this.postExecute("shape.create",(function(e){var t=e.hints||{},i=e.process||e.hints.process,o=e.shape,r=t.participant;if(i){var s=i.children.slice();r?o===r&&n.moveElements(s,{x:0,y:0},r):n.moveElements(s,{x:0,y:0},o)}}),!0)}Mf.$inject=["canvas","eventBus","modeling"],lt(Mf,cc);var Af="__targetRef_placeholder";function Tf(e,t){function n(e,n){var i=e.get("properties"),o=j(i,(function(e){return e.name===Af}));return!o&&n&&er(i,o=t.create("bpmn:Property",{name:Af})),o}function i(e,t){var i=n(e);i&&(function(e,t,n){return j(e.get("dataInputAssociations"),(function(e){return e!==n&&e.targetRef===t}))}(e,i,t)||Jo(e.get("properties"),i))}function o(e){var t,o=e.context,r=o.connection,s=r.businessObject,a=r.target,l=a&&a.businessObject,c=o.newTarget,h=c&&c.businessObject,u=o.oldTarget||o.target,p=u&&u.businessObject,d=r.businessObject;p&&p!==l&&i(p,s),h&&h!==l&&i(h,s),l?(t=n(l,!0),d.targetRef=t):d.targetRef=null}cc.call(this,e),this.executed(["connection.create","connection.delete","connection.move","connection.reconnect"],Bf(o)),this.reverted(["connection.create","connection.delete","connection.move","connection.reconnect"],Bf(o))}function Bf(e){return function(t){if(de(t.context.connection,"bpmn:DataInputAssociation"))return e(t)}}function Rf(e){this._bpmnUpdater=e}function Df(e,t,n,i){function o(e){return e.children.filter((function(e){return de(e,"bpmn:DataStoreReference")&&!e.labelTarget}))}function r(e,i){var o=e.businessObject||e;if(i=i||n.filter((function(e){return de(e,"bpmn:Participant")&&me(e).processRef}))[0]){var r=i.businessObject||i;t.execute("dataStore.updateContainment",{dataStoreBo:o,dataStoreDi:ge(e),newSemanticParent:r.processRef||r,newDiParent:ge(i)})}}cc.call(this,i),t.registerHandler("dataStore.updateContainment",Rf),this.preExecute("shape.create",(function(e){var t=e.context,n=t.shape;de(n,"bpmn:DataStoreReference")&&"label"!==n.type&&(t.hints||(t.hints={}),t.hints.autoResize=!1)})),this.preExecute("elements.move",(function(e){var t=e.context,n=t.shapes;n.filter((function(e){return de(e,"bpmn:DataStoreReference")})).length&&(t.hints||(t.hints={}),t.hints.autoResize=n.filter((function(e){return!de(e,"bpmn:DataStoreReference")})))})),this.postExecute("shape.create",(function(e){var t=e.context.shape,n=t.parent;de(t,"bpmn:DataStoreReference")&&"label"!==t.type&&de(n,"bpmn:Collaboration")&&r(t)})),this.postExecute("shape.move",(function(e){var t=e.context,n=t.shape,i=t.oldParent,o=n.parent;de(i,"bpmn:Collaboration")||de(n,"bpmn:DataStoreReference")&&"label"!==n.type&&de(o,"bpmn:Collaboration")&&r(n,de(i,"bpmn:Participant")?i:function(e,t){for(;e.parent;){if(de(e.parent,"bpmn:Participant"))return e.parent;e=e.parent}}(i))})),this.postExecute("shape.delete",(function(t){var n=t.context.shape,i=e.getRootElement();fe(n,["bpmn:Participant","bpmn:SubProcess"])&&de(i,"bpmn:Collaboration")&&o(i).filter((function(e){return function(e,t){for(var n=e.businessObject||e,i=t.businessObject||t;n.$parent;){if(n.$parent===i.processRef||i)return!0;n=n.$parent}return!1}(e,n)})).forEach((function(e){r(e)}))})),this.postExecute("canvas.updateRoot",(function(e){var t=e.context,n=t.oldRoot,i=t.newRoot;o(n).forEach((function(e){de(i,"bpmn:Process")&&r(e,i)}))}))}Tf.$inject=["eventBus","bpmnFactory"],lt(Tf,cc),Rf.$inject=["bpmnUpdater"],Rf.prototype.execute=function(e){var t=e.dataStoreBo,n=e.dataStoreDi,i=e.newSemanticParent,o=e.newDiParent;return e.oldSemanticParent=t.$parent,e.oldDiParent=n.$parent,this._bpmnUpdater.updateSemanticParent(t,i),this._bpmnUpdater.updateDiParent(n,o),[]},Rf.prototype.revert=function(e){var t=e.dataStoreBo,n=e.dataStoreDi,i=e.oldSemanticParent,o=e.oldDiParent;return this._bpmnUpdater.updateSemanticParent(t,i),this._bpmnUpdater.updateDiParent(n,o),[]},Df.$inject=["canvas","commandStack","elementRegistry","eventBus"],lt(Df,cc);var Lf=Math.max,Nf=Math.min,zf=20;function If(e,t){return{top:e.top-t.top,right:e.right-t.right,bottom:e.bottom-t.bottom,left:e.left-t.left}}function Ff(e,t){return{x:e.x+(t.left||0),y:e.y+(t.top||0),width:e.width-(t.left||0)+(t.right||0),height:e.height-(t.top||0)+(t.bottom||0)}}function $f(e,t,n){var i=t[e],o=n.min&&n.min[e],r=n.max&&n.max[e];return z(o)&&(i=(/top|left/.test(e)?Nf:Lf)(i,o)),z(r)&&(i=(/top|left/.test(e)?Lf:Nf)(i,r)),i}function jf(e,t){return void 0!==e?e:zf}function qf(e){return!e.waypoints&&"label"!==e.type}function Hf(e,t){var n;if((n=void 0===e.length?H(e.children,qf):e).length)return function(e,t){var n,i,o,r;return"object"==typeof t?(n=jf(t.left),i=jf(t.right),o=jf(t.top),r=jf(t.bottom)):n=i=o=r=jf(t),{x:e.x-n,y:e.y-o,width:e.width+n+i,height:e.height+o+r}}(Qo(n),t)}var Vf=Math.abs,Wf=["bpmn:Participant","bpmn:Process","bpmn:SubProcess"],Gf=30;function Qf(e,t){return t=t||[],e.children.filter((function(e){de(e,"bpmn:Lane")&&(Qf(e,t),t.push(e))})),t}function Xf(e){return e.children.filter((function(e){return de(e,"bpmn:Lane")}))}function Uf(e){return Lp(e,Wf)||e}function Yf(e,t){cc.call(this,e),this.postExecuted("shape.delete",500,(function(e){var n=e.context,i=n.hints,o=n.shape,r=n.oldParent;de(o,"bpmn:Lane")&&(i&&i.nested||function(e,n){var i,o,r,s,a,l=pl(e),c=Xf(n),h=[],u=[],p=[],d=[];Wo(c,(function(t){return l?t.y>e.y?u.push(t):h.push(t):t.x>e.x?d.push(t):p.push(t),t.children})),c.length&&(i=l?u.length&&h.length?e.height/2:e.height:d.length&&p.length?e.width/2:e.width,h.length&&(o=t.calculateAdjustments(h,"y",i,e.y-10),t.makeSpace(o.movingShapes,o.resizingShapes,{x:0,y:i},"s")),u.length&&(r=t.calculateAdjustments(u,"y",-i,e.y+e.height+10),t.makeSpace(r.movingShapes,r.resizingShapes,{x:0,y:-i},"n")),p.length&&(s=t.calculateAdjustments(p,"x",i,e.x-10),t.makeSpace(s.movingShapes,s.resizingShapes,{x:i,y:0},"e")),d.length&&(a=t.calculateAdjustments(d,"x",-i,e.x+e.width+10),t.makeSpace(a.movingShapes,a.resizingShapes,{x:-i,y:0},"w")))}(o,r))}))}function Kf(e,t){t.invoke(cc,this),this._bpmnReplace=e;var n=this;this.postExecuted("elements.create",500,(function(e){var t=e.elements;t.filter((function(e){return Zf(e,e.host)})).map((function(e){return t.indexOf(e)})).forEach((function(i){e.elements[i]=n._replaceShape(t[i])}))}),!0),this.preExecute("elements.move",500,(function(e){var t=e.shapes,i=e.newHost;t.forEach((function(e,o){var r,s=e.host;Zf(e,(r=s,-1!==t.indexOf(r)?s:i))&&(t[o]=n._replaceShape(e))}))}),!0)}function Zf(e,t){return!qr(e)&&de(e,"bpmn:BoundaryEvent")&&!t}function Jf(e,t,n){function i(e,i,o){var r,s,a,l,c,h,u,p,d=i.waypoints,f=e.outgoing.slice(),m=e.incoming.slice(),g=sd(d,p=z(o.width)?Qr(o):o);if(g){if(r=d.slice(0,g.index),s=d.slice(g.index+(g.bendpoint?1:0)),!r.length||!s.length)return;a=g.bendpoint?d[g.index]:p,1!==r.length&&em(e,r[r.length-1])||r.push(tm(a)),1!==s.length&&em(e,s[0])||s.unshift(tm(a))}l=i.source,c=i.target,t.canConnect(l,e,i)&&(n.reconnectEnd(i,e,r||p),h=i),t.canConnect(e,c,i)&&(h?u=n.connect(e,c,{type:i.type,waypoints:s}):(n.reconnectStart(i,e,s||p),u=i));var v=[].concat(h&&H(m,(function(e){return e.source===h.source}))||[],u&&H(f,(function(e){return e.target===u.target}))||[]);v.length&&n.removeElements(v)}cc.call(this,e),this.preExecute("elements.move",(function(e){var n=e.newParent,i=e.shapes,o=e.delta,r=i[0];if(r&&n){n&&n.waypoints&&(e.newParent=n=n.parent);var s=Qr(r),a={x:s.x+o.x,y:s.y+o.y},l=j(n.children,(function(e){return t.canInsert(i,e)&&sd(e.waypoints,a)}));l&&(e.targetFlow=l,e.position=a)}}),!0),this.postExecuted("elements.move",(function(e){var t=e.shapes,n=e.targetFlow,o=e.position;n&&i(t[0],n,o)}),!0),this.preExecute("shape.create",(function(e){var n=e.parent,i=e.shape;t.canInsert(i,n)&&(e.targetFlow=n,e.parent=n.parent)}),!0),this.postExecuted("shape.create",(function(e){var t=e.shape,n=e.targetFlow,o=e.position;n&&i(t,n,o)}),!0)}function em(e,t){var n=t.x,i=t.y;return n>=e.x&&n<=e.x+e.width&&i>=e.y&&i<=e.y+e.height}function tm(e){return ce({},e)}function nm(e,t){cc.call(this,e),this.preExecuted("connection.create",(function(e){var n=e.context,i=n.connection,o=n.source,r=n.target,s=n.hints;s&&!1===s.createElementsBehavior||!im(i)||(de(o,"bpmn:EventBasedGateway")?r.incoming.filter((e=>e!==i&&im(e))):r.incoming.filter((e=>e!==i&&im(e)&&de(e.source,"bpmn:EventBasedGateway")))).forEach((function(e){t.removeConnection(e)}))})),this.preExecuted("shape.replace",(function(e){var n=e.context.newShape;de(n,"bpmn:EventBasedGateway")&&n.outgoing.filter(im).reduce((function(e,t){return e.includes(t.target)?e:e.concat(t.target)}),[]).forEach((function(e){e.incoming.filter(im).forEach((function(i){const o=e.incoming.filter(im).filter((function(e){return e.source===n}));(i.source!==n||o.length>1)&&t.removeConnection(i)}))}))}))}function im(e){return de(e,"bpmn:SequenceFlow")}Yf.$inject=["eventBus","spaceTool"],lt(Yf,cc),Kf.$inject=["bpmnReplace","injector"],lt(Kf,cc),Kf.prototype._replaceShape=function(e){var t,n,i=(n=me(e).eventDefinitions)&&n[0];return t=i?{type:"bpmn:IntermediateCatchEvent",eventDefinitionType:i.$type}:{type:"bpmn:IntermediateThrowEvent"},this._bpmnReplace.replaceElement(e,t,{layoutConnection:!1})},lt(Jf,cc),Jf.$inject=["eventBus","bpmnRules","modeling"],nm.$inject=["eventBus","modeling"],lt(nm,cc);var om=1500;function rm(e,t,n){t.on(["create.hover","create.move","create.out","create.end","shape.move.hover","shape.move.move","shape.move.out","shape.move.end"],om,(function(t){var i=t.context.shape||t.shape,o=t.hover;de(o,"bpmn:Lane")&&!fe(i,["bpmn:Lane","bpmn:Participant"])&&(t.hover=Uf(o),t.hoverGfx=e.getGraphics(t.hover));var r=n.getRootElement();o!==r&&(i.labelTarget||fe(i,["bpmn:Group","bpmn:TextAnnotation"]))&&(t.hover=r,t.hoverGfx=e.getGraphics(t.hover))})),t.on(["connect.hover","connect.out","connect.end","connect.cleanup","global-connect.hover","global-connect.out","global-connect.end","global-connect.cleanup"],om,(function(t){var n=t.hover;de(n,"bpmn:Lane")&&(t.hover=Uf(n)||n,t.hoverGfx=e.getGraphics(t.hover))})),t.on(["bendpoint.move.hover"],om,(function(t){var n=t.context,i=t.hover,o=n.type;de(i,"bpmn:Lane")&&/reconnect/.test(o)&&(t.hover=Uf(i)||i,t.hoverGfx=e.getGraphics(t.hover))})),t.on(["connect.start"],om,(function(e){var t=e.context,n=t.start;de(n,"bpmn:Lane")&&(t.start=Uf(n)||n)})),t.on("shape.move.start",2e3,(function(e){var t=e.shape;de(t,"bpmn:Lane")&&(e.shape=Uf(t)||t)})),t.on("spaceTool.move",2e3,(function(e){var t=e.hover;t&&de(t,"bpmn:Lane")&&(e.hover=Uf(t))}))}function sm(e,t,n,i,o,r){function s(e,t,i){var o=n.filter((function(e){return de(e,"bpmn:Group")})).filter((function(e){return e.businessObject!==i}));t&&!function(e,t){return e.some((function(e){var n=me(e);return(n.categoryValueRef&&n.categoryValueRef.$parent)===t}))}(o,t)&&function(e){var t=e.$parent;t&&(Jo(t.get("rootElements"),e),e.$parent=null)}(t),e&&!function(e,t){return e.some((function(e){return me(e).categoryValueRef===t}))}(o,e)&&function(e){var t=e.$parent;t&&(Jo(t.get("categoryValue"),e),e.$parent=null)}(e)}function a(e,n){return function(e,t,n){return er(t.get("categoryValue"),e),e.$parent=t,er(n.get("rootElements"),t),t.$parent=n,e}(e,n,t.getDefinitions())}function l(n,i){var o=me(n),r=o.categoryValueRef;r||(r=o.categoryValueRef=i.categoryValue=i.categoryValue||function(e){return e.create("bpmn:CategoryValue")}(e));var s=r.$parent;s||(s=r.$parent=i.category=i.category||function(e){return e.create("bpmn:Category")}(e)),a(r,s,t.getDefinitions())}function c(e,t){var n=t.category,i=t.categoryValue,o=me(e);i?(o.categoryValueRef=null,s(i,n,o)):s(null,o.categoryValueRef.$parent,o)}function h(t,n){var i=e.create(t.$type);return r.copyElement(t,i,null,n)}o.invoke(cc,this),this.execute("label.create",(function(e){var t=e.context,n=t.labelTarget;de(n,"bpmn:Group")&&l(n,t)})),this.revert("label.create",(function(e){var t=e.context,n=t.labelTarget;de(n,"bpmn:Group")&&c(n,t)})),this.execute("shape.delete",(function(e){var t=e.context,n=t.shape,i=me(n);if(de(n,"bpmn:Group")&&!n.labelTarget){var o=t.categoryValue=i.categoryValueRef;o&&(s(o,t.category=o.$parent,i),i.categoryValueRef=null)}})),this.reverted("shape.delete",(function(e){var t=e.context,n=t.shape;if(de(n,"bpmn:Group")&&!n.labelTarget){var i=t.category,o=t.categoryValue,r=me(n);o&&(r.categoryValueRef=o,a(o,i))}})),this.execute("shape.create",(function(e){var t=e.context,n=t.shape;de(n,"bpmn:Group")&&!n.labelTarget&&me(n).categoryValueRef&&l(n,t)})),this.reverted("shape.create",(function(e){var t=e.context,n=t.shape;de(n,"bpmn:Group")&&!n.labelTarget&&me(n).categoryValueRef&&c(n,t)})),i.on("copyPaste.copyElement",770,(function(e){var t=e.descriptor,n=e.element;if(de(n,"bpmn:Group")&&!n.labelTarget){var i=me(n);if(i.categoryValueRef){var o=i.categoryValueRef;t.categoryValue=h(o,!0),o.$parent&&(t.category=h(o.$parent,!0))}}})),i.on("copyPaste.pasteElement",770,(function(e){var t=e.descriptor,n=t.businessObject,i=t.categoryValue,o=t.category;i&&(i=n.categoryValueRef=h(i)),o&&(i.$parent=h(o)),delete t.category,delete t.categoryValue}))}function am(e,t,n,i){var o,r,s,a;return 0==(o=(i.y-n.y)*(t.x-e.x)-(i.x-n.x)*(t.y-e.y))?null:(r=e.y-n.y,s=e.x-n.x,a=((i.x-n.x)*r-(i.y-n.y)*s)/o,{x:Math.round(e.x+a*(t.x-e.x)),y:Math.round(e.y+a*(t.y-e.y))})}function lm(e){function t(e,t,n){var i,o={x:n.x,y:n.y-50},r={x:n.x-50,y:n.y},s=am(e,t,n,o),a=am(e,t,n,r);i=s&&a?cm(s,n)>cm(a,n)?a:s:s||a,e.original=i}e.on("bpmnElement.added",(function(e){var n,i,o=e.element;o.waypoints&&(t((i=(n=o).waypoints)[0],i[1],Qr(n.source)),t(i[i.length-1],i[i.length-2],Qr(n.target)))}))}function cm(e,t){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function hm(e){cc.call(this,e);var t=["bpmn:Participant","bpmn:Lane"];this.executed(["shape.move","shape.create","shape.resize"],(function(e){var n=e.context.shape,i=me(n),o=ge(n);if(fe(i,t)){var r=o.get("isHorizontal");void 0===r&&(r=!0),o.set("isHorizontal",r)}}))}rm.$inject=["elementRegistry","eventBus","canvas"],sm.$inject=["bpmnFactory","bpmnjs","elementRegistry","eventBus","injector","moddleCopy"],lt(sm,cc),lm.$inject=["eventBus"],hm.$inject=["eventBus"],lt(hm,cc);var um=Math.sqrt,pm=Math.min,dm=Math.max,fm=Math.abs;function mm(e){return Math.pow(e,2)}function gm(e,t){return um(mm(e.x-t.x)+mm(e.y-t.y))}function vm(e,t,n,i){var o=t.x-e.x,r=t.y-e.y,s=n.x-e.x,a=n.y-e.y,l=o*o+r*r,c=(o*s+r*a)/l,h=c*c-(s*s+a*a-i*i)/l;if(h<0&&h>-1e-6&&(h=0),h<0)return[];var u=um(h),p=-c+u,d=-c-u,f={x:e.x-o*p,y:e.y-r*p};return 0===h?[f]:[f,{x:e.x-o*d,y:e.y-r*d}].filter((function(n){return function(e,t,n){return ym(e.x,t.x,n.x)&&ym(e.y,t.y,n.y)}(n,e,t)}))}function ym(e,t,n){return e>=pm(t,n)-bm&&e<=dm(t,n)+bm}var bm=.1;function wm(e,t){return fm(e.x-t.x)<=bm&&fm(e.y-t.y)<=bm}function xm(e,t,n,i){var o=0,r=0,s={point:e,delta:{x:0,y:0}},a=function(e,t){var n,i,o,r,s,a,l,c,h,u,p,d,f=0;for(f=0;f line intersections");1===a.length&&(l={type:"bendpoint",position:a[0],segmentIndex:f,bendpointIndex:wm(n,a[0])?f:f+1}),2===a.length&&(p=a[0],d=a[1],l={type:"segment",position:s={x:(p.x+d.x)/2,y:(p.y+d.y)/2},segmentIndex:f,relativeLocation:gm(n,s)/gm(n,i)}),c=gm(l.position,e),(!u||h>c)&&(u=l,h=c)}return u}(e,n),l=a.segmentIndex,c=function(e,t,n,i){var o=n.segmentIndex,r=t.length-e.length;if(i.segmentMove){var s=i.segmentMove.segmentStartIndex,a=i.segmentMove.newSegmentStartIndex;return o===s?a:o>=a?o+r=h&&(l=c?o+1:o-1),ot.length-2||null===c)return s;var h,u,p,d,f,m,g=Em(n,l),v=Em(t,c),y=a.position,b=(d=y,f=ud((p=g)[0],p[1]),m=ud(p[0],d),0===f?0:m/f),w=(h=v,u=ld(g),ld(h)-u);if("bendpoint"===a.type){var x=t.length-n.length,_=a.bendpointIndex,E=n[_];if(-1!==t.indexOf(E))return s;if(0===x){var k=t[_];return{delta:{x:o=k.x-a.position.x,y:r=k.y-a.position.y},point:{x:e.x+o,y:e.y+r}}}x<0&&0!==_&&_{me(e.context.element)===e.context.moddleElement&&o(e)})),this.postExecute(["shape.create","connection.create"],(function(e){var n=e.context;if(!1!==(n.hints||{}).createElementsBehavior){var i=n.shape||n.connection;!qr(i)&&yl(i)&&_l(i)&&t.updateLabel(i,_l(i))}})),this.postExecute("shape.delete",(function(e){var n=e.context,i=n.labelTarget,o=n.hints||{};i&&!1!==o.unsetLabel&&t.updateLabel(i,null,null,{removeShape:!1})})),this.postExecute(["connection.layout","connection.updateWaypoints"],(function(e){var n=e.context;if(!1!==(n.hints||{}).labelBehavior){var i,o=n.connection.label;o&&o.parent&&(i=function(e){var t=e.context,n=t.connection,i=n.label,o=ce({},t.hints),r=t.newWaypoints||n.waypoints,s=t.oldWaypoints;return void 0===o.startChanged&&(o.startChanged=!!o.connectionStart),void 0===o.endChanged&&(o.endChanged=!!o.connectionEnd),function(e,t,n,i){return xm(Qr(e),t,n,i).delta}(i,r,s,o)}(e),t.moveShape(o,i))}})),this.postExecute(["shape.replace"],(function(e){var t=e.context,n=t.newShape,i=t.oldShape,o=me(n);o&&yl(o)&&i.label&&n.label&&(n.label.x=i.label.x,n.label.y=i.label.y)})),this.postExecute("shape.resize",(function(e){var n,i=e.context,o=i.shape,r=i.newBounds,s=i.oldBounds;if(bl(o)){var a=o.label,l=function(e,t){if(t.length){var n=function(e,t){var n=t.map((function(t){return{line:t,distance:hd(e,t)}}));return te(n,"distance")[0].line}(e,t);return cd(e,n)}}(Qr(a),[[{x:(n=s).x,y:n.y},{x:n.x+(n.width||0),y:n.y}],[{x:n.x+(n.width||0),y:n.y},{x:n.x+(n.width||0),y:n.y+(n.height||0)}],[{x:n.x,y:n.y+(n.height||0)},{x:n.x+(n.width||0),y:n.y+(n.height||0)}],[{x:n.x,y:n.y},{x:n.x,y:n.y+(n.height||0)}]]),c=function(e,t,n){return Vr(Ch(km(e,t,n),e))}(l,s,r);t.moveShape(a,c)}}))}function Mm(e,t){function n(e,t){var n=e.context,i=n.connection,o=ce({},n.hints),r=n.newWaypoints||i.waypoints,s=n.oldWaypoints;return void 0===o.startChanged&&(o.startChanged=!!o.connectionStart),void 0===o.endChanged&&(o.endChanged=!!o.connectionEnd),function(e,t,n,i){return xm(e,t,n,i).point}(t,r,s,o)}cc.call(this,e),this.postExecute(["connection.layout","connection.updateWaypoints"],(function(e){var i=e.context.connection,o=i.outgoing;i.incoming.forEach((function(i){var o=i.waypoints[i.waypoints.length-1],r=n(e,o),s=[].concat(i.waypoints.slice(0,-1),[r]);t.updateWaypoints(i,s)})),o.forEach((function(i){var o=i.waypoints[0],r=n(e,o),s=[].concat([r],i.waypoints.slice(1));t.updateWaypoints(i,s)}))})),this.postExecute(["connection.move"],(function(e){var n=e.context,i=n.connection,o=i.outgoing,r=i.incoming,s=n.delta;r.forEach((function(e){var n=e.waypoints[e.waypoints.length-1],i={x:n.x+s.x,y:n.y+s.y},o=[].concat(e.waypoints.slice(0,-1),[i]);t.updateWaypoints(e,o)})),o.forEach((function(e){var n=e.waypoints[0],i={x:n.x+s.x,y:n.y+s.y},o=[].concat([i],e.waypoints.slice(1));t.updateWaypoints(e,o)}))}))}function Am(e,t,n){var i=Lm(e),o=Nm(i,t),r=i[0];return o.length?o[o.length-1]:km(r.original||r,n,t)}function Tm(e,t,n){var i=Lm(e),o=Nm(i,t),r=i[i.length-1];return o.length?o[0]:km(r.original||r,n,t)}function Bm(e,t,n){var i=Lm(e),o=Dm(t,n),r=i[0];return km(r.original||r,o,t)}function Rm(e,t,n){var i=Lm(e),o=Dm(t,n),r=i[i.length-1];return km(r.original||r,o,t)}function Dm(e,t){return{x:e.x-t.x,y:e.y-t.y,width:e.width,height:e.height}}function Lm(e){var t=e.waypoints;if(!t.length)throw new Error("connection#"+e.id+": no waypoints");return t}function Nm(e,t){return H(U(e,zm),(function(e){return function(e,t){return"intersect"===Xr(t,e,1)}(e,t)}))}function zm(e){return e.original||e}function Im(e,t){cc.call(this,e),this.postExecute("shape.replace",(function(e){var n=e.oldShape,i=e.newShape;if(function(e,t){return de(e,"bpmn:Participant")&&ul(e)&&de(t,"bpmn:Participant")&&!ul(t)}(n,i)){var o,r,s,a,l=(r=Go([o=n],!1),s=[],a=[],r.forEach((function(e){e!==o&&(e.incoming.forEach((function(e){de(e,"bpmn:MessageFlow")&&s.push(e)})),e.outgoing.forEach((function(e){de(e,"bpmn:MessageFlow")&&a.push(e)})))}),[]),{incoming:s,outgoing:a});l.incoming.forEach((function(e){var o=Tm(e,i,n);t.reconnectEnd(e,i,o)})),l.outgoing.forEach((function(e){var o=Am(e,i,n);t.reconnectStart(e,i,o)}))}}),!0)}lt(Pm,cc),Pm.$inject=["eventBus","modeling","bpmnFactory","textRenderer"],lt(Mm,cc),Mm.$inject=["eventBus","modeling"],Im.$inject=["eventBus","modeling"],lt(Im,cc);const Fm=["bpmn:MessageEventDefinition","bpmn:TimerEventDefinition","bpmn:EscalationEventDefinition","bpmn:ConditionalEventDefinition","bpmn:SignalEventDefinition"];function $m(e){const t=me(e);if(!(de(t,"bpmn:BoundaryEvent")||de(t,"bpmn:StartEvent")&&fl(t.$parent)))return!1;const n=t.get("eventDefinitions");return!(!n||!n.length)&&Fm.some((e=>de(n[0],e)))}function jm(e){return de(e,"bpmn:BoundaryEvent")?"cancelActivity":"isInterrupting"}function qm(e,t){e.invoke(cc,this),this.postExecuted("shape.replace",(function(e){const n=e.context.oldShape,i=e.context.newShape,o=e.context.hints;if(!$m(i))return;const r=jm(i);if(o.targetElement&&void 0!==o.targetElement[r])return;const s=me(n).get(r);s!==me(i).get(r)&&t.updateProperties(i,{[r]:s})}))}function Hm(e,t){cc.call(this,e),this.preExecute("shape.resize",(function(e){var n=e.shape,i=ge(n),o=i&&i.get("label");o&&o.get("bounds")&&t.updateModdleProperties(n,o,{bounds:void 0})}),!0)}function Vm(e,t,n){cc.call(this,e),this.preExecute("shape.delete",(function(e){var i,o,r,s=e.context.shape;if(1===s.incoming.length&&1===s.outgoing.length){var a=s.incoming[0],l=s.outgoing[0];if(de(a,"bpmn:SequenceFlow")&&de(l,"bpmn:SequenceFlow")&&t.canConnect(a.source,l.target,a)){var c=(i=a.waypoints,o=l.waypoints,(r=am(Wm(i[i.length-2]),Wm(i[i.length-1]),Wm(o[1]),Wm(o[0])))?[].concat(i.slice(0,i.length-1),[r],o.slice(1)):[Wm(i[0]),Wm(o[o.length-1])]);n.reconnectEnd(a,l.target,c)}}}))}function Wm(e){return e.original||e}function Gm(e,t){cc.call(this,e),this.preExecute("shape.delete",(function(e){var t=e.shape,n=t.parent;de(t,"bpmn:Participant")&&(e.collaborationRoot=n)}),!0),this.postExecute("shape.delete",(function(e){var n=e.collaborationRoot;if(n&&!n.businessObject.participants.length){var i=t.makeProcess(),o=n.children.slice();t.moveElements(o,{x:0,y:0},i)}}),!0)}function Qm(e,t,n,i){cc.call(this,e);var o=i.get("dragging",!1);function r(e){var i,o,r=e.source,s=e.target;e.parent&&(de(e,"bpmn:SequenceFlow")&&(n.canConnectSequenceFlow(r,s)||(o=!0),n.canConnectMessageFlow(r,s)&&(i="bpmn:MessageFlow")),de(e,"bpmn:MessageFlow")&&(n.canConnectMessageFlow(r,s)||(o=!0),n.canConnectSequenceFlow(r,s)&&(i="bpmn:SequenceFlow")),o&&t.removeConnection(e),i&&t.connect(r,s,{type:i,waypoints:e.waypoints.slice()}))}this.postExecuted("elements.move",(function(e){V(e.closure.allConnections,r)}),!0),this.preExecute("connection.reconnect",(function(e){var i,r,s=e.context,a=s.connection,l=s.newSource||a.source,c=s.newTarget||a.target;(i=n.canConnect(l,c))&&i.type!==a.type&&(r=t.connect(l,c,{type:i.type,associationDirection:i.associationDirection,waypoints:a.waypoints.slice()}),a.parent&&t.removeConnection(a),s.connection=r,o&&function(e,t){var n,i=o.context(),r=i&&i.payload.previousSelection;r&&r.length&&-1!==(n=r.indexOf(e))&&r.splice(n,1,t)}(a,r))})),this.postExecuted("element.updateProperties",(function(e){var n,i=e.context,o=i.properties,r=i.element,s=r.businessObject;o.default&&(n=j(r.outgoing,ne({id:r.businessObject.default.id})))&&t.updateProperties(n,{conditionExpression:void 0}),o.conditionExpression&&s.sourceRef.default===s&&t.updateProperties(r.source,{default:void 0})}))}function Xm(e,t,n,i,o,r){i.invoke(cc,this),this._bpmnReplace=e,this._elementRegistry=n,this._selection=r,this.postExecuted(["elements.create"],500,(function(e){var n=e.context,i=n.parent,o=n.elements,r=G(o,(function(e,n){var o=t.canReplace([n],n.host||n.parent||i);return o?e.concat(o.replacements):e}),[]);r.length&&this._replaceElements(o,r)}),this),this.postExecuted(["elements.move"],500,(function(e){var n=e.context,i=n.newParent,o=n.newHost,r=[];V(n.closure.topLevel,(function(e){r=fl(e)?r.concat(e.children):r.concat(e)})),1===r.length&&o&&(i=o);var s=t.canReplace(r,i);s&&this._replaceElements(r,s.replacements,o)}),this),this.postExecute(["shape.replace"],1500,(function(e){var n,i=e.context,o=i.oldShape,r=i.newShape,s=o.attachers;s&&s.length&&(n=t.canReplace(s,r),this._replaceElements(s,n.replacements))}),this),this.postExecuted(["shape.replace"],1500,(function(e){var t=e.context,n=t.oldShape,i=t.newShape;o.unclaimId(n.businessObject.id,n.businessObject),o.updateProperties(i,{id:n.id})}))}qm.$inject=["injector","modeling"],lt(qm,cc),lt(Hm,cc),Hm.$inject=["eventBus","modeling"],lt(Vm,cc),Vm.$inject=["eventBus","bpmnRules","modeling"],Gm.$inject=["eventBus","modeling"],lt(Gm,cc),lt(Qm,cc),Qm.$inject=["eventBus","modeling","bpmnRules","injector"],lt(Xm,cc),Xm.prototype._replaceElements=function(e,t){var n=this._elementRegistry,i=this._bpmnReplace,o=this._selection;V(t,(function(t){var o={type:t.newElementType},r=n.get(t.oldElementId),s=e.indexOf(r);e[s]=i.replaceElement(r,o,{select:!1})})),t&&o.select(e)},Xm.$inject=["bpmnReplace","bpmnRules","elementRegistry","injector","modeling","selection"];var Um={width:140,height:120},Ym={width:300,height:60},Km={width:60,height:300},Zm={width:300,height:150},Jm={width:150,height:300},eg={width:140,height:120},tg={width:50,height:30};function ng(e){e.on("resize.start",1500,(function(e){var t=e.context,n=t.shape,i=t.direction,o=t.balanced;(de(n,"bpmn:Lane")||de(n,"bpmn:Participant"))&&(t.resizeConstraints=function(e,t,n){var i=Uf(e),o=!0,r=!0,s=Qf(i,[i]),a=Wr(e),l={},c={},h=pl(e),u=h?Ym:Km;/n/.test(t)?c.top=a.bottom-u.height:/e/.test(t)?c.right=a.left+u.width:/s/.test(t)?c.bottom=a.top+u.height:/w/.test(t)&&(c.left=a.right-u.width),s.forEach((function(e){var i=Wr(e);/n/.test(t)&&(h&&i.topa.right+10&&(r=!1),n&&ig(a.right-i.left)<10&&ag(l,"right",i.right-u.width),ig(a.right-i.right)<5&&lg(c,"right",i.left+u.width)),/s/.test(t)&&(h&&i.bottom>a.bottom+10&&(r=!1),n&&ig(a.bottom-i.top)<10&&ag(l,"bottom",i.bottom-u.height),ig(a.bottom-i.bottom)<5&&lg(c,"bottom",i.top+u.height)),/w/.test(t)&&(!h&&i.left=o.y&&t<=o.y+o.height||n&&t>=o.x&&t<=o.x+o.width)return(r=Xf(o)).length?vg(r,t,n):o}fg.$inject=["eventBus"];function yg(e,t,n,i,o,r,s){cc.call(this,t),this._canvas=e,this._eventBus=t,this._modeling=n,this._elementFactory=i,this._bpmnFactory=o,this._bpmnjs=r,this._elementRegistry=s;var a=this;function l(e){return de(e,"bpmn:SubProcess")&&!ul(e)}function c(t){var n=t.shape,i=t.newRootElement,o=me(n);i=a._addDiagram(i||o),t.newRootElement=e.addRootElement(i)}function h(t){var n=me(t.shape);a._removeDiagram(n);var i=t.newRootElement=s.get(mc(n));e.removeRootElement(i)}this.executed("shape.create",(function(e){l(e.shape)&&c(e)}),!0),this.postExecuted("shape.create",(function(e){var t=e.shape,n=e.newRootElement;n&&t.children&&(a._showRecursively(t.children),a._moveChildrenToShape(t,n))}),!0),this.reverted("shape.create",(function(e){l(e.shape)&&h(e)}),!0),this.preExecuted("shape.delete",(function(e){var t=e.shape;if(l(t)){var i=s.get(mc(t));i&&n.removeElements(i.children.slice())}}),!0),this.executed("shape.delete",(function(e){l(e.shape)&&h(e)}),!0),this.reverted("shape.delete",(function(e){l(e.shape)&&c(e)}),!0),this.preExecuted("shape.replace",(function(t){var n=t.oldShape,i=t.newShape;l(n)&&l(i)&&(t.oldRoot=e.removeRootElement(mc(n)))}),!0),this.postExecuted("shape.replace",(function(t){var i=t.newShape,o=t.oldRoot,r=e.findRoot(mc(i));if(o&&r){var s=o.children;n.moveElements(s,{x:0,y:0},r)}}),!0),this.executed("element.updateProperties",(function(e){var t=e.element;if(de(t,"bpmn:SubProcess")){var n=e.properties,i=e.oldProperties.id,o=n.id;if(i!==o){if(vc(t))return s.updateId(t,gc(o)),void s.updateId(i,o);s.get(gc(i))&&s.updateId(gc(i),gc(o))}}}),!0),this.reverted("element.updateProperties",(function(e){var t=e.element;if(de(t,"bpmn:SubProcess")){var n=e.properties,i=e.oldProperties.id,o=n.id;if(i!==o){if(vc(t))return s.updateId(t,gc(i)),void s.updateId(o,i);var r=s.get(gc(o));r&&s.updateId(r,gc(i))}}}),!0),t.on("element.changed",(function(e){var n=e.element;if(vc(n)){var i=n,o=s.get(fc(i));o&&o!==i&&t.fire("element.changed",{element:o})}})),this.executed("shape.toggleCollapse",400,(function(e){var t=e.shape;de(t,"bpmn:SubProcess")&&(ul(t)?h(e):(c(e),a._showRecursively(t.children)))}),!0),this.reverted("shape.toggleCollapse",400,(function(e){var t=e.shape;de(t,"bpmn:SubProcess")&&(ul(t)?h(e):(c(e),a._showRecursively(t.children)))}),!0),this.postExecuted("shape.toggleCollapse",600,(function(e){var t=e.shape;if(de(t,"bpmn:SubProcess")){var n=e.newRootElement;n&&(ul(t)?a._moveChildrenToShape(n,t):a._moveChildrenToShape(t,n))}}),!0),t.on("copyPaste.createTree",(function(e){var t=e.element,n=e.children;if(l(t)){var i=mc(t),o=s.get(i);o&&n.push.apply(n,o.children)}})),t.on("copyPaste.copyElement",(function(e){var t=e.descriptor,n=e.element,i=e.elements,o=n.parent;if(de(ge(o),"bpmndi:BPMNPlane")){var r=fc(o),s=j(i,(function(e){return e.id===r}));s&&(t.parent=s.id)}})),t.on("copyPaste.pasteElement",(function(e){var t=e.descriptor;t.parent&&(l(t.parent)||t.parent.hidden)&&(t.hidden=!0)}))}function bg(e,t){e.invoke(cc,this),this.postExecuted("shape.replace",(function(e){var n=e.context.oldShape,i=e.context.newShape;if(de(i,"bpmn:SubProcess")&&(de(n,"bpmn:Task")||de(n,"bpmn:CallActivity"))&&ul(i)){var o,r={x:(o=i).x+o.width/6,y:o.y+o.height/2};t.createShape({type:"bpmn:StartEvent"},r,i)}}))}function wg(e){cc.call(this,e),this.preExecute("connection.create",(function(e){const{target:t}=e;de(t,"bpmn:TextAnnotation")&&(e.parent=t.parent)}),!0),this.preExecute(["shape.create","shape.resize","elements.move"],(function(e){const t=e.shapes||[e.shape];1===t.length&&de(t[0],"bpmn:TextAnnotation")&&(e.hints=e.hints||{},e.hints.autoResize=!1)}),!0)}function xg(e,t){cc.call(this,e),this.postExecuted("shape.toggleCollapse",1500,(function(e){var n=e.shape;if(!ul(n)){var i=Go(n);i.forEach((function(e){var t=e.incoming.slice(),n=e.outgoing.slice();V(t,(function(e){o(e,!0)})),V(n,(function(e){o(e,!1)}))}))}function o(e,o){-1!==i.indexOf(e.source)&&-1!==i.indexOf(e.target)||(o?t.reconnectEnd(e,n,Qr(n)):t.reconnectStart(e,n,Qr(n)))}}),!0)}function _g(e,t,n){cc.call(this,e),this.executed(["shape.toggleCollapse"],500,(function(e){var t,n=e.context.shape;de(n,"bpmn:SubProcess")&&(n.collapsed?ge(n).isExpanded=!1:((t=n.children).length&&t.forEach((function(e){"label"!==e.type||e.businessObject.name||(e.hidden=!0)})),ge(n).isExpanded=!0))})),this.reverted(["shape.toggleCollapse"],500,(function(e){var t=e.context.shape;t.collapsed?ge(t).isExpanded=!1:ge(t).isExpanded=!0})),this.postExecuted(["shape.toggleCollapse"],500,(function(e){var i,o=e.context.shape,r=t.getDefaultSize(o);i=o.collapsed?function(e,t){return{x:e.x+(e.width-t.width)/2,y:e.y+(e.height-t.height)/2,width:t.width,height:t.height}}(o,r):function(e,t){var n,i,o=t;return(n=Hf((i=e.children,i.filter((function(e){return!e.hidden}))).concat([e])))?(o.width=Math.max(n.width,o.width),o.height=Math.max(n.height,o.height),o.x=n.x+(n.width-o.width)/2,o.y=n.y+(n.height-o.height)/2):(o.x=e.x+(e.width-o.width)/2,o.y=e.y+(e.height-o.height)/2),o}(o,r),n.resizeShape(o,i,null,{autoResize:!o.collapsed&&"nwse"})}))}function Eg(e,t,n,i){t.invoke(cc,this),this.preExecute("shape.delete",(function(e){var t=e.context.shape,o=t.businessObject;qr(t)||(de(t,"bpmn:Participant")&&ul(t)&&n.ids.unclaim(o.processRef.id),i.unclaimId(o.id,o))})),this.preExecute("connection.delete",(function(e){var t=e.context.connection.businessObject;i.unclaimId(t.id,t)})),this.preExecute("canvas.updateRoot",(function(){var t=e.getRootElement(),i=t.businessObject;de(t,"bpmn:Collaboration")&&n.ids.unclaim(i.id)}))}function kg(e,t){cc.call(this,e),this.preExecute("connection.delete",(function(e){var n=e.context.connection,i=n.source;(function(e,t){if(!de(e,"bpmn:SequenceFlow"))return!1;var n=me(t),i=me(e);return n.get("default")===i})(n,i)&&t.updateProperties(i,{default:null})}))}function Sg(e,t){var n;cc.call(this,e);var i=["spaceTool","lane.add","lane.resize","lane.split","elements.create","elements.delete","elements.move","shape.create","shape.delete","shape.move","shape.resize"];this.preExecute(i,5e3,(function(e){(n=n||new Cg).enter()})),this.postExecuted(i,500,(function(e){!function(){if(!n)throw new Error("out of bounds release");n.leave()&&(t.updateLaneRefs(n.flowNodes,n.lanes),n=null)}()})),this.preExecute(["shape.create","shape.move","shape.delete","shape.resize"],(function(e){var t=e.context.shape,i=function(){if(!n)throw new Error("out of bounds release");return n}();t.labelTarget||(de(t,"bpmn:Lane")&&i.addLane(t),de(t,"bpmn:FlowNode")&&i.addFlowNode(t))}))}function Cg(){this.flowNodes=[],this.lanes=[],this.counter=0,this.addLane=function(e){this.lanes.push(e)},this.addFlowNode=function(e){this.flowNodes.push(e)},this.enter=function(){this.counter++},this.leave=function(){return this.counter--,!this.counter}}lt(yg,cc),yg.prototype._moveChildrenToShape=function(e,t){var n,i=this._modeling,o=e.children;if(o){var r=(o=o.concat(o.reduce((function(t,n){return n.label&&n.label.parent!==e?t.concat(n.label):t}),[]))).filter((function(e){return!e.hidden}));if(r.length){var s=Qo(r);if(t.x){var a=Qr(t),l=Qr(s);n={x:a.x-l.x,y:a.y-l.y}}else n={x:180-s.x,y:160-s.y};i.moveElements(o,n,t,{autoResize:!1})}else i.moveElements(o,{x:0,y:0},t,{autoResize:!1})}},yg.prototype._showRecursively=function(e,t){var n=this,i=[];return e.forEach((function(e){e.hidden=!!t,i=i.concat(e),e.children&&(i=i.concat(n._showRecursively(e.children,e.collapsed||t)))})),i},yg.prototype._addDiagram=function(e){var t=this._bpmnjs.getDefinitions().diagrams;return e.businessObject||(e=this._createNewDiagram(e)),t.push(e.di.$parent),e},yg.prototype._createNewDiagram=function(e){var t=this._bpmnFactory,n=this._elementFactory,i=t.create("bpmndi:BPMNPlane",{bpmnElement:e}),o=t.create("bpmndi:BPMNDiagram",{plane:i});return i.$parent=o,n.createRoot({id:mc(e),type:e.$type,di:i,businessObject:e,collapsed:!0})},yg.prototype._removeDiagram=function(e){var t=this._bpmnjs.getDefinitions().diagrams,n=j(t,(function(t){return t.plane.bpmnElement.id===e.id}));return t.splice(t.indexOf(n),1),n},yg.$inject=["canvas","eventBus","modeling","elementFactory","bpmnFactory","bpmnjs","elementRegistry"],bg.$inject=["injector","modeling"],lt(bg,cc),lt(wg,cc),wg.$inject=["eventBus"],lt(xg,cc),xg.$inject=["eventBus","modeling"],lt(_g,cc),_g.$inject=["eventBus","elementFactory","modeling"],lt(Eg,cc),Eg.$inject=["canvas","injector","moddle","modeling"],lt(kg,cc),kg.$inject=["eventBus","modeling"],Sg.$inject=["eventBus","modeling"],lt(Sg,cc);const Og={__init__:["adaptiveLabelPositioningBehavior","appendBehavior","associationBehavior","attachEventBehavior","boundaryEventBehavior","compensateBoundaryEventBehaviour","createBehavior","createDataObjectBehavior","createParticipantBehavior","dataInputAssociationBehavior","dataStoreBehavior","deleteLaneBehavior","detachEventBehavior","dropOnFlowBehavior","eventBasedGatewayBehavior","fixHoverBehavior","groupBehavior","importDockingFix","isHorizontalFix","labelBehavior","layoutConnectionBehavior","messageFlowBehavior","nonInterruptingBehavior","removeElementBehavior","removeEmbeddedLabelBoundsBehavior","removeParticipantBehavior","replaceConnectionBehavior","replaceElementBehaviour","resizeBehavior","resizeLaneBehavior","rootElementReferenceBehavior","spaceToolBehavior","subProcessPlaneBehavior","subProcessStartEventBehavior","textAnnotationBehavior","toggleCollapseConnectionBehaviour","toggleElementCollapseBehaviour","unclaimIdBehavior","updateFlowNodeRefsBehavior","unsetDefaultFlowBehavior"],adaptiveLabelPositioningBehavior:["type",mf],appendBehavior:["type",vf],associationBehavior:["type",yf],attachEventBehavior:["type",bf],boundaryEventBehavior:["type",xf],compensateBoundaryEventBehaviour:["type",_f],createBehavior:["type",Cf],createDataObjectBehavior:["type",Of],createParticipantBehavior:["type",Mf],dataInputAssociationBehavior:["type",Tf],dataStoreBehavior:["type",Df],deleteLaneBehavior:["type",Yf],detachEventBehavior:["type",Kf],dropOnFlowBehavior:["type",Jf],eventBasedGatewayBehavior:["type",nm],fixHoverBehavior:["type",rm],groupBehavior:["type",sm],importDockingFix:["type",lm],isHorizontalFix:["type",hm],labelBehavior:["type",Pm],layoutConnectionBehavior:["type",Mm],messageFlowBehavior:["type",Im],nonInterruptingBehavior:["type",qm],removeElementBehavior:["type",Vm],removeEmbeddedLabelBoundsBehavior:["type",Hm],removeParticipantBehavior:["type",Gm],replaceConnectionBehavior:["type",Qm],replaceElementBehaviour:["type",Xm],resizeBehavior:["type",ng],resizeLaneBehavior:["type",ug],rootElementReferenceBehavior:["type",pg],spaceToolBehavior:["type",fg],subProcessPlaneBehavior:["type",yg],subProcessStartEventBehavior:["type",bg],textAnnotationBehavior:["type",wg],toggleCollapseConnectionBehaviour:["type",xg],toggleElementCollapseBehaviour:["type",_g],unclaimIdBehavior:["type",Eg],unsetDefaultFlowBehavior:["type",kg],updateFlowNodeRefsBehavior:["type",Sg]};function Pg(e,t){var n=Xr(e,t,-15);return"intersect"!==n?n:null}function Mg(e){xp.call(this,e)}function Ag(e){return!e||qr(e)}function Tg(e){do{if(de(e,"bpmn:Process"))return me(e);if(de(e,"bpmn:Participant"))return me(e).processRef||me(e)}while(e=e.parent)}function Bg(e){return de(e,"bpmn:TextAnnotation")}function Rg(e){return de(e,"bpmn:Group")&&!e.labelTarget}function Dg(e){return de(e,"bpmn:BoundaryEvent")&&Ig(e,"bpmn:CompensateEventDefinition")}function Lg(e){return me(e).isForCompensation}function Ng(e){for(var t=e;t=t.parent;){if(de(t,"bpmn:FlowElementsContainer"))return me(t);if(de(t,"bpmn:Participant"))return me(t).processRef}return null}function zg(e,t){return Ng(e)===Ng(t)}function Ig(e,t){return!!j(me(e).eventDefinitions||[],(function(e){return de(e,t)}))}function Fg(e,t){return(me(e).eventDefinitions||[]).every((function(e){return de(e,t)}))}function $g(e,t){var n=function(e){for(var t=[];e;)(e=e.parent)&&t.push(e);return t}(t);return-1!==n.indexOf(e)}function jg(e,t,n){if(Ag(e)||Ag(t))return null;if(!de(n,"bpmn:DataAssociation")){if(ev(e,t))return{type:"bpmn:MessageFlow"};if(tv(e,t))return{type:"bpmn:SequenceFlow"}}return nv(e,t)||(Jg(e,t)?{type:"bpmn:Association",associationDirection:"One"}:!!Zg(e,t)&&{type:"bpmn:Association",associationDirection:"None"})}function qg(e,t){return!(!qr(e)&&!Rg(e))||!(de(t,"bpmn:Participant")&&!ul(t))&&(de(e,"bpmn:Participant")?de(t,"bpmn:Process")||de(t,"bpmn:Collaboration"):fe(e,["bpmn:DataInput","bpmn:DataOutput"])&&e.parent?t===e.parent:de(e,"bpmn:Lane")?de(t,"bpmn:Participant")||de(t,"bpmn:Lane"):!(de(e,"bpmn:BoundaryEvent")&&(n=e,!me(n).cancelActivity||!Vg(n)&&!Wg(n)))&&(de(e,"bpmn:FlowElement")&&!de(e,"bpmn:DataStoreReference")?de(t,"bpmn:FlowElementsContainer")?ul(t):fe(t,["bpmn:Participant","bpmn:Lane"]):de(e,"bpmn:DataStoreReference")&&de(t,"bpmn:Collaboration")?X(me(t).get("participants"),(function(e){return!!e.get("processRef")})):fe(e,["bpmn:Artifact","bpmn:DataAssociation","bpmn:DataStoreReference"])?fe(t,["bpmn:Collaboration","bpmn:Lane","bpmn:Participant","bpmn:Process","bpmn:SubProcess"]):!!de(e,"bpmn:MessageFlow")&&(de(t,"bpmn:Collaboration")||e.source.parent==t||e.target.parent==t)));var n}function Hg(e){return de(e,"bpmn:Lane")}function Vg(e){var t=me(e);return t&&!(t.eventDefinitions&&t.eventDefinitions.length)}function Wg(e){return Gg(e,["bpmn:MessageEventDefinition","bpmn:TimerEventDefinition","bpmn:SignalEventDefinition","bpmn:ConditionalEventDefinition"])}function Gg(e,t){return t.some((function(t){return Ig(e,t)}))}function Qg(e,t,n,i){if(Array.isArray(e)||(e=[e]),1!==e.length)return!1;var o=e[0];return!qr(o)&&!!function(e){return!!function(e){return!qr(e)&&de(e,"bpmn:BoundaryEvent")}(e)||!(!de(e,"bpmn:IntermediateThrowEvent")||!Vg(e))||de(e,"bpmn:IntermediateCatchEvent")&&Wg(e)}(o)&&!fl(t)&&!(!de(t,"bpmn:Activity")||Lg(t))&&!(i&&!Pg(i,t))&&!function(e){return de(e,"bpmn:ReceiveTask")&&j(e.incoming,(function(e){return de(e.source,"bpmn:EventBasedGateway")}))}(t)&&"attach"}function Xg(e,t,n){if(!t)return!1;var i={replacements:[]};return V(e,(function(e){fl(t)||de(e,"bpmn:StartEvent")&&"label"!==e.type&&qg(e,t)&&(dl(e)||i.replacements.push({oldElementId:e.id,newElementType:"bpmn:StartEvent"}),(function(e){return ml(e,"bpmn:ErrorEventDefinition")}(e)||function(e){return ml(e,"bpmn:EscalationEventDefinition")}(e)||function(e){return ml(e,"bpmn:CompensateEventDefinition")}(e))&&i.replacements.push({oldElementId:e.id,newElementType:"bpmn:StartEvent"}),Gg(e,["bpmn:MessageEventDefinition","bpmn:TimerEventDefinition","bpmn:SignalEventDefinition","bpmn:ConditionalEventDefinition"])&&de(t,"bpmn:SubProcess")&&i.replacements.push({oldElementId:e.id,newElementType:"bpmn:StartEvent"})),de(t,"bpmn:Transaction")||Ig(e,"bpmn:CancelEventDefinition")&&"label"!==e.type&&(de(e,"bpmn:EndEvent")&&qg(e,t)&&i.replacements.push({oldElementId:e.id,newElementType:"bpmn:EndEvent"}),de(e,"bpmn:BoundaryEvent")&&Qg(e,t,0,n)&&i.replacements.push({oldElementId:e.id,newElementType:"bpmn:BoundaryEvent"}))})),!!i.replacements.length&&i}function Ug(e,t){return!X(e,Hg)&&(!t||e.every((function(e){return qg(e,t)})))}function Yg(e,t,n,i){return!!t&&(!(!qr(e)&&!Rg(e))||!function(e,t){return e===t}(n,t)&&(!n||!$g(n,t))&&(qg(e,t)||iv(e,t)))}function Kg(e,t){return de(e,"bpmn:SubProcess")?ul(e)&&(!t||t.width>=100&&t.height>=80):!!(de(e,"bpmn:Lane")||de(e,"bpmn:Participant")||Bg(e)||Rg(e))}function Zg(e,t){return!($g(t,e)||$g(e,t)||!function(e,t){var n=Bg(e),i=Bg(t);return(n||i)&&n!==i}(e,t)&&!nv(e,t))}function Jg(e,t){return zg(e,t)&&Dg(e)&&de(t,"bpmn:Activity")&&(n=e,!t.attachers.includes(n))&&!fl(t);var n}function ev(e,t){return!(rv(e)&&!rv(t))&&de(n=e,"bpmn:InteractionNode")&&!de(n,"bpmn:BoundaryEvent")&&(!de(n,"bpmn:Event")||de(n,"bpmn:ThrowEvent")&&Fg(n,"bpmn:MessageEventDefinition"))&&function(e){return de(e,"bpmn:InteractionNode")&&!Lg(e)&&(!de(e,"bpmn:Event")||de(e,"bpmn:CatchEvent")&&Fg(e,"bpmn:MessageEventDefinition"))&&!(de(e,"bpmn:BoundaryEvent")&&!Ig(e,"bpmn:MessageEventDefinition"))}(t)&&!function(e,t){return Tg(e)===Tg(t)}(e,t);var n}function tv(e,t){return de(n=e,"bpmn:FlowNode")&&!de(n,"bpmn:EndEvent")&&!fl(n)&&!(de(n,"bpmn:IntermediateThrowEvent")&&Ig(n,"bpmn:LinkEventDefinition"))&&!Dg(n)&&!Lg(n)&&function(e){return de(e,"bpmn:FlowNode")&&!de(e,"bpmn:StartEvent")&&!de(e,"bpmn:BoundaryEvent")&&!fl(e)&&!(de(e,"bpmn:IntermediateCatchEvent")&&Ig(e,"bpmn:LinkEventDefinition"))&&!Lg(e)}(t)&&zg(e,t)&&!(de(e,"bpmn:EventBasedGateway")&&!function(e){return de(e,"bpmn:ReceiveTask")||de(e,"bpmn:IntermediateCatchEvent")&&(Ig(e,"bpmn:MessageEventDefinition")||Ig(e,"bpmn:TimerEventDefinition")||Ig(e,"bpmn:ConditionalEventDefinition")||Ig(e,"bpmn:SignalEventDefinition"))}(t));var n}function nv(e,t){return fe(e,["bpmn:DataObjectReference","bpmn:DataStoreReference"])&&fe(t,["bpmn:Activity","bpmn:ThrowEvent"])?{type:"bpmn:DataInputAssociation"}:!(!fe(t,["bpmn:DataObjectReference","bpmn:DataStoreReference"])||!fe(e,["bpmn:Activity","bpmn:CatchEvent"]))&&{type:"bpmn:DataOutputAssociation"}}function iv(e,t,n){if(!t)return!1;if(Array.isArray(e)){if(1!==e.length)return!1;e=e[0]}return t.source!==e&&t.target!==e&&fe(t,["bpmn:SequenceFlow","bpmn:MessageFlow"])&&!qr(t)&&de(e,"bpmn:FlowNode")&&!de(e,"bpmn:BoundaryEvent")&&qg(e,t.parent)}function ov(e,t){return!!qr(t)||!(de(t,"bpmn:Lane")&&!function(e,t){return e&&t&&-1!==e.indexOf(t)}(e,t.parent))}function rv(e){return Lp(e,"bpmn:Process")||Lp(e,"bpmn:Collaboration")}lt(Mg,xp),Mg.$inject=["eventBus"],Mg.prototype.init=function(){this.addRule("connection.start",(function(e){return Ag(t=e.source)?null:fe(t,["bpmn:FlowNode","bpmn:InteractionNode","bpmn:DataObjectReference","bpmn:DataStoreReference","bpmn:Group","bpmn:TextAnnotation"]);var t})),this.addRule("connection.create",(function(e){var t=e.source,n=e.target,i=e.hints||{},o=i.targetParent;if(i.targetAttach)return!1;o&&(n.parent=o);try{return jg(t,n)}finally{o&&(n.parent=null)}})),this.addRule("connection.reconnect",(function(e){var t=e.connection;return jg(e.source,e.target,t)})),this.addRule("connection.updateWaypoints",(function(e){return{type:e.connection.type}})),this.addRule("shape.resize",(function(e){return Kg(e.shape,e.newBounds)})),this.addRule("elements.create",(function(e){var t=e.elements,n=e.position,i=e.target;return!(jr(i)&&!iv(t,i))&&Q(t,(function(e){return jr(e)?jg(e.source,e.target,e):e.host?Qg(e,e.host,0,n):Yg(e,i,null)}))})),this.addRule("elements.move",(function(e){var t=e.target,n=e.shapes,i=e.position;return Qg(n,t,0,i)||Xg(n,t,i)||Ug(n,t)||iv(n,t)})),this.addRule("shape.create",(function(e){return Yg(e.shape,e.target,e.source,e.position)})),this.addRule("shape.attach",(function(e){return Qg(e.shape,e.target,0,e.position)})),this.addRule("element.copy",(function(e){var t=e.element;return ov(e.elements,t)}))},Mg.prototype.canConnectMessageFlow=ev,Mg.prototype.canConnectSequenceFlow=tv,Mg.prototype.canConnectDataAssociation=nv,Mg.prototype.canConnectAssociation=Zg,Mg.prototype.canConnectCompensationAssociation=Jg,Mg.prototype.canMove=Ug,Mg.prototype.canAttach=Qg,Mg.prototype.canReplace=Xg,Mg.prototype.canDrop=qg,Mg.prototype.canInsert=iv,Mg.prototype.canCreate=Yg,Mg.prototype.canConnect=jg,Mg.prototype.canResize=Kg,Mg.prototype.canCopy=ov;const sv={__depends__:[nd],__init__:["bpmnRules"],bpmnRules:["type",Mg]};function av(e,t){e.on("saveXML.start",2e3,(function(){V(t.getRootElements(),(function(e){var t,n=ge(e);t=U(H(Go([e],!1),(function(t){return t!==e&&!t.labelTarget})),ge),n.set("planeElement",t)}))}))}av.$inject=["eventBus","canvas"];const lv={__init__:["bpmnDiOrdering"],bpmnDiOrdering:["type",av]};function cv(e){cc.call(this,e);var t=this;this.preExecute(["shape.create","connection.create"],(function(e){var n=e.context,i=n.shape||n.connection,o=n.parent,r=t.getOrdering(i,o);r&&(void 0!==r.parent&&(n.parent=r.parent),n.parentIndex=r.index)})),this.preExecute(["shape.move","connection.move"],(function(e){var n=e.context,i=n.shape||n.connection,o=n.newParent||i.parent,r=t.getOrdering(i,o);r&&(void 0!==r.parent&&(n.newParent=r.parent),n.newParentIndex=r.index)}))}function hv(e,t){cv.call(this,e);var n=[{type:"bpmn:SubProcess",order:{level:6}},{type:"bpmn:SequenceFlow",order:{level:9,containers:["bpmn:Participant","bpmn:FlowElementsContainer"]}},{type:"bpmn:DataAssociation",order:{level:9,containers:["bpmn:Collaboration","bpmn:FlowElementsContainer"]}},{type:"bpmn:TextAnnotation",order:{level:9}},{type:"bpmn:MessageFlow",order:{level:9,containers:["bpmn:Collaboration"]}},{type:"bpmn:Association",order:{level:6,containers:["bpmn:Participant","bpmn:FlowElementsContainer","bpmn:Collaboration"]}},{type:"bpmn:BoundaryEvent",order:{level:8}},{type:"bpmn:Group",order:{level:10,containers:["bpmn:Collaboration","bpmn:FlowElementsContainer"]}},{type:"bpmn:FlowElement",order:{level:5}},{type:"bpmn:Participant",order:{level:-2}},{type:"bpmn:Lane",order:{level:-1}}];function i(e){var t=e.order;if(t||(e.order=t=function(e){if(e.labelTarget)return{level:10};var t=j(n,(function(t){return fe(e,[t.type])}));return t&&t.order||{level:1}}(e)),!t)throw new Error(`no order for <${e.id}>`);return t}this.getOrdering=function(e,n){if(e.labelTarget||de(e,"bpmn:TextAnnotation"))return{parent:t.findRoot(n)||t.getRootElement(),index:-1};var o=i(e);o.containers&&(n=function(e,t,n){for(var i=t;i&&!fe(i,n);)i=i.parent;if(!i)throw new Error(`no parent for <${e.id}> in <${t&&t.id}>`);return i}(e,n,o.containers));var r=n.children.indexOf(e),s=q(n.children,(function(t){return!(!e.labelTarget&&t.labelTarget)&&o.levelXv(e.dy)?"x":"y",i=e["d"+n],o=e[n]-i;if(Xv(i)<5)return!1;i<0&&(i*=-1),qc(e)&&(i*=-1);var r=function(e,t){if("x"===e){if(t>0)return"e";if(t<0)return"w"}if("y"===e){if(t>0)return"s";if(t<0)return"n"}return null}(n,i),s=this._canvas.getRootElement();!Hc(e)&&e.hover&&(s=e.hover);var a=[...Go(s,!0),...s.attachers||[]],l=this.calculateAdjustments(a,n,i,o),c=function(e,t,n,i,o){var r=e.movingShapes,s=e.resizingShapes;if(s.length){var a,l,c={};return V(s,(function(e){var h,u,p,d,f,m,g=e.attachers,v=e.children,y=Wr(e),b=H(v,(function(e){return!(jr(e)||qr(e)||oy(r,e)||oy(s,e))})),w=H(v,(function(e){return!jr(e)&&!qr(e)&&oy(r,e)})),x=[],_=[];b.length&&(u=ny(Wr(Qo(b))),h=i-y[Zv[n]]+u[Zv[n]],"n"===n?c.bottom=l=z(l)?Math.min(l,h):h:"w"===n?c.right=l=z(l)?Math.min(l,h):h:"s"===n?c.top=a=z(a)?Math.max(a,h):h:"e"===n&&(c.left=a=z(a)?Math.max(a,h):h)),w.length&&(p=ny(Wr(Qo(w))),h=i-p[Zv[ey[n]]]+y[Zv[ey[n]]],"n"===n?c.bottom=l=z(l)?Math.min(l,h):h:"w"===n?c.right=l=z(l)?Math.min(l,h):h:"s"===n?c.top=a=z(a)?Math.max(a,h):h:"e"===n&&(c.left=a=z(a)?Math.max(a,h):h)),g&&g.length&&(g.forEach((function(e){oy(r,e)?x.push(e):_.push(e)})),x.length&&(d=Wr(Qo(x.map(Qr))),f=y[Zv[ey[n]]]-(d[Zv[ey[n]]]-i)),_.length&&(m=Wr(Qo(_.map(Qr)))[Zv[n]]-(y[Zv[n]]-i)),"n"===n?(h=Math.min(f||1/0,m||1/0),c.bottom=l=z(l)?Math.min(l,h):h):"w"===n?(h=Math.min(f||1/0,m||1/0),c.right=l=z(l)?Math.min(l,h):h):"s"===n?(h=Math.max(f||-1/0,m||-1/0),c.top=a=z(a)?Math.max(a,h):h):"e"===n&&(h=Math.max(f||-1/0,m||-1/0),c.left=a=z(a)?Math.max(a,h):h));var E=o&&o[e.id];E&&("n"===n?(h=i+e[Yv[t]]-E[Yv[t]],c.bottom=l=z(l)?Math.min(l,h):h):"w"===n?(h=i+e[Yv[t]]-E[Yv[t]],c.right=l=z(l)?Math.min(l,h):h):"s"===n?(h=i-e[Yv[t]]+E[Yv[t]],c.top=a=z(a)?Math.max(a,h):h):"e"===n&&(h=i-e[Yv[t]]+E[Yv[t]],c.left=a=z(a)?Math.max(a,h):h))})),c}}(l,n,r,o,this._eventBus.fire("spaceTool.getMinDimensions",{axis:n,direction:r,shapes:l.resizingShapes,start:o}));return ce(t,l,{axis:n,direction:r,spaceToolConstraints:c,start:o}),xh("resize-"+("x"===n?"ew":"ns")),!0},ty.prototype.calculateAdjustments=function(e,t,n,i){var o=this._rules,r=[],s=[],a=[],l=[];function c(e){r.includes(e)||r.push(e);var t=e.label;t&&!r.includes(t)&&r.push(t)}V(e,(function(e){if(e.parent&&!qr(e))if(jr(e))l.push(e);else{var r=e[t],h=r+e[Yv[t]];if(function(e){return!!e.host}(e)&&(n>0&&Qr(e)[t]>i||n<0&&Qr(e)[t]0&&r>i||n<0&&hi&&o.allowed("shape.resize",{shape:e})?(u=e,void(s.includes(u)||s.push(u))):void 0;c(e)}}})),V(r,(function(e){var t=e.attachers;t&&V(t,(function(e){c(e)}))}));var h=r.concat(s);return V(a,(function(e){var t=e.host;oy(h,t)&&c(e)})),h=r.concat(s),V(l,(function(e){var t=e.source,n=e.target,i=e.label;oy(h,t)&&oy(h,n)&&i&&c(i)})),{movingShapes:r,resizingShapes:s}},ty.prototype.toggle=function(){if(this.isActive())return this._dragging.cancel();var e=this._mouse.getLastMoveEvent();this.activateSelection(e,!!e)},ty.prototype.isActive=function(){var e=this._dragging.context();return!!e&&/^spaceTool/.test(e.prefix)};var ry="djs-dragging",sy="djs-resizing",ay=Math.max;function ly(e,t,n,i,o){function r(e,t){V(e,(function(e){o.addDragger(e,t),n.addMarker(e,ry)}))}e.on("spaceTool.selection.start",(function(e){var t=n.getLayer("space"),o=e.context,r=vn("g");ln(r,i.cls("djs-crosshair-group",["no-events"])),on(t,r);var s=vn("path");ln(s,"d","M 0,-10000 L 0,10000"),hn(s).add("djs-crosshair"),on(r,s);var a=vn("path");ln(a,"d","M -10000,0 L 10000,0"),hn(a).add("djs-crosshair"),on(r,a),o.crosshairGroup=r})),e.on("spaceTool.selection.move",(function(e){ks(e.context.crosshairGroup,e.x,e.y)})),e.on("spaceTool.selection.cleanup",(function(e){var t=e.context.crosshairGroup;t&&Pn(t)})),e.on("spaceTool.move",250,(function(e){var s=e.context,a=s.line,l=s.axis,c=s.movingShapes,h=s.resizingShapes;if(s.initialized){if(!s.dragGroup){var u=n.getLayer("space");ln(a=vn("path"),"d","M0,0 L0,0"),hn(a).add("djs-crosshair"),on(u,a),s.line=a;var p=vn("g");ln(p,i.cls("djs-drag-group",["no-events"])),on(n.getActiveLayer(),p),r(c,p),r(s.movingConnections=t.filter((function(e){var t=!1;V(c,(function(n){V(n.outgoing,(function(n){e===n&&(t=!0)}))}));var n=!1;V(c,(function(t){V(t.incoming,(function(t){e===t&&(n=!0)}))}));var i=!1;V(h,(function(t){V(t.outgoing,(function(t){e===t&&(i=!0)}))}));var o=!1;return V(h,(function(t){V(t.incoming,(function(t){e===t&&(o=!0)}))})),jr(e)&&(t||i)&&(n||o)})),p),s.dragGroup=p}if(!s.frameGroup){var d=vn("g");ln(d,i.cls("djs-frame-group",["no-events"])),on(n.getActiveLayer(),d);var f=[];V(h,(function(e){var t=o.addFrame(e,d),i=t.getBBox();f.push({element:t,initialBounds:i}),n.addMarker(e,sy)})),s.frameGroup=d,s.frames=f}ln(a,{d:{x:"M"+e.x+", -10000 L"+e.x+", 10000",y:"M -10000, "+e.y+" L 10000, "+e.y}[l]});var m={x:e.dx,y:e.dy};m[{x:"y",y:"x"}[s.axis]]=0,ks(s.dragGroup,m.x,m.y),V(s.frames,(function(e){var t,n,i=e.element,o=e.initialBounds;"e"===s.direction?ln(i,{width:ay(o.width+m.x,5)}):ln(i,{width:t=ay(o.width-m.x,5),x:o.x+o.width-t}),"s"===s.direction?ln(i,{height:ay(o.height+m.y,5)}):ln(i,{height:n=ay(o.height-m.y,5),y:o.y+o.height-n})}))}})),e.on("spaceTool.cleanup",(function(e){var t=e.context,i=t.movingShapes,o=t.movingConnections,r=t.resizingShapes,s=t.line,a=t.dragGroup,l=t.frameGroup;V(i,(function(e){n.removeMarker(e,ry)})),V(o,(function(e){n.removeMarker(e,ry)})),a&&(Pn(s),Pn(a)),V(r,(function(e){n.removeMarker(e,sy)})),l&&Pn(l)}))}ly.$inject=["eventBus","elementRegistry","canvas","styles","previewSupport"];const cy={__init__:["spaceToolPreview"],__depends__:[Zp,nd,Gv,hf,Sv],spaceTool:["type",ty],spaceToolPreview:["type",ly]};function hy(e){e.invoke(ty,this)}hy.$inject=["injector"],lt(hy,ty),hy.prototype.calculateAdjustments=function(e,t,n,i){var o=ty.prototype.calculateAdjustments.call(this,e,t,n,i);return o.resizingShapes=o.resizingShapes.filter((function(e){return!(de(e,"bpmn:TextAnnotation")||function(e){return de(e,"bpmn:Participant")&&!me(e).processRef}(e)&&("y"===t&&pl(e)||"x"===t&&!pl(e)))})),o};const uy={__depends__:[cy],spaceTool:["type",hy]};function py(e,t){this._handlerMap={},this._stack=[],this._stackIdx=-1,this._currentExecution={actions:[],dirty:[],trigger:null},this._injector=t,this._eventBus=e,this._uid=1,e.on(["diagram.destroy","diagram.clear"],(function(){this.clear(!1)}),this)}py.$inject=["eventBus","injector"],py.prototype.execute=function(e,t){if(!e)throw new Error("command required");this._currentExecution.trigger="execute";const n={command:e,context:t};this._pushAction(n),this._internalExecute(n),this._popAction()},py.prototype.canExecute=function(e,t){const n={command:e,context:t},i=this._getHandler(e);let o=this._fire(e,"canExecute",n);if(void 0===o){if(!i)return!1;i.canExecute&&(o=i.canExecute(t))}return o},py.prototype.clear=function(e){this._stack.length=0,this._stackIdx=-1,!1!==e&&this._fire("changed",{trigger:"clear"})},py.prototype.undo=function(){let e,t=this._getUndoAction();if(t){for(this._currentExecution.trigger="undo",this._pushAction(t);t&&(this._internalUndo(t),e=this._getUndoAction(),e&&e.id===t.id);)t=e;this._popAction()}},py.prototype.redo=function(){let e,t=this._getRedoAction();if(t){for(this._currentExecution.trigger="redo",this._pushAction(t);t&&(this._internalExecute(t,!0),e=this._getRedoAction(),e&&e.id===t.id);)t=e;this._popAction()}},py.prototype.register=function(e,t){this._setHandler(e,t)},py.prototype.registerHandler=function(e,t){if(!e||!t)throw new Error("command and handlerCls must be defined");const n=this._injector.instantiate(t);this.register(e,n)},py.prototype.canUndo=function(){return!!this._getUndoAction()},py.prototype.canRedo=function(){return!!this._getRedoAction()},py.prototype._getRedoAction=function(){return this._stack[this._stackIdx+1]},py.prototype._getUndoAction=function(){return this._stack[this._stackIdx]},py.prototype._internalUndo=function(e){const t=e.command,n=e.context,i=this._getHandler(t);this._atomicDo((()=>{this._fire(t,"revert",e),i.revert&&this._markDirty(i.revert(n)),this._revertedAction(e),this._fire(t,"reverted",e)}))},py.prototype._fire=function(e,t,n){arguments.length<3&&(n=t,t=null);const i=t?[e+"."+t,t]:[e];let o;n=this._eventBus.createEvent(n);for(const e of i)if(o=this._eventBus.fire("commandStack."+e,n),n.cancelBubble)break;return o},py.prototype._createId=function(){return this._uid++},py.prototype._atomicDo=function(e){const t=this._currentExecution;t.atomic=!0;try{e()}finally{t.atomic=!1}},py.prototype._internalExecute=function(e,t){const n=e.command,i=e.context,o=this._getHandler(n);if(!o)throw new Error("no command handler registered for <"+n+">");this._pushAction(e),t||(this._fire(n,"preExecute",e),o.preExecute&&o.preExecute(i),this._fire(n,"preExecuted",e)),this._atomicDo((()=>{this._fire(n,"execute",e),o.execute&&this._markDirty(o.execute(i)),this._executedAction(e,t),this._fire(n,"executed",e)})),t||(this._fire(n,"postExecute",e),o.postExecute&&o.postExecute(i),this._fire(n,"postExecuted",e)),this._popAction()},py.prototype._pushAction=function(e){const t=this._currentExecution,n=t.actions,i=n[0];if(t.atomic)throw new Error("illegal invocation in or phase (action: "+e.command+")");e.id||(e.id=i&&i.id||this._createId()),n.push(e)},py.prototype._popAction=function(){const e=this._currentExecution,t=e.trigger,n=e.actions,i=e.dirty;n.pop(),n.length||(this._eventBus.fire("elements.changed",{elements:J("id",i.reverse())}),i.length=0,this._fire("changed",{trigger:t}),e.trigger=null)},py.prototype._markDirty=function(e){const t=this._currentExecution;e&&(e=L(e)?e:[e],t.dirty=t.dirty.concat(e))},py.prototype._executedAction=function(e,t){const n=++this._stackIdx;t||this._stack.splice(n,this._stack.length,e)},py.prototype._revertedAction=function(e){this._stackIdx--},py.prototype._getHandler=function(e){return this._handlerMap[e]},py.prototype._setHandler=function(e,t){if(!e||!t)throw new Error("command and handler required");if(this._handlerMap[e])throw new Error("overriding handler for command <"+e+">");this._handlerMap[e]=t};const dy={commandStack:["type",py]};function fy(e,t){if("function"!=typeof t)throw new Error("removeFn iterator must be a function");if(e){for(var n;n=e[0];)t(n);return e}}function my(e,t,n){cc.call(this,t);var i=e.get("movePreview",!1);t.on("shape.move.start",1400,(function(e){var t=e.context,n=t.shapes,i=t.validatedShapes;t.shapes=gy(n),t.validatedShapes=gy(i)})),i&&t.on("shape.move.start",250,(function(e){var t=e.context,n=t.shapes,o=[];V(n,(function(e){V(e.labels,(function(n){n.hidden||-1!==t.shapes.indexOf(n)||o.push(n),e.labelTarget&&o.push(e)}))})),V(o,(function(e){i.makeDraggable(t,e,!0)}))})),this.preExecuted("elements.move",1400,(function(e){var t=e.context.closure,n=t.enclosedElements,i=[];V(n,(function(e){V(e.labels,(function(e){n[e.id]||i.push(e)}))})),t.addAll(i)})),this.preExecute(["connection.delete","shape.delete"],(function(e){var t=e.context;fy((t.connection||t.shape).labels,(function(e){n.removeShape(e,{nested:!0})}))})),this.execute("shape.delete",(function(e){var t=e.context,n=t.shape,i=n.labelTarget;i&&(t.labelTargetIndex=tr(i.labels,n),t.labelTarget=i,n.labelTarget=null)})),this.revert("shape.delete",(function(e){var t=e.context,n=t.shape,i=t.labelTarget,o=t.labelTargetIndex;i&&(er(i.labels,n,o),n.labelTarget=i)}))}function gy(e){return H(e,(function(t){return-1===e.indexOf(t.labelTarget)}))}lt(my,cc),my.$inject=["injector","eventBus","modeling"];const vy={__init__:["labelSupport"],labelSupport:["type",my]};var yy="attach-ok";function by(e,t,n,i,o){cc.call(this,t);var r=e.get("movePreview",!1);t.on("shape.move.start",1401,(function(e){var t,n,i=e.context,o=i.shapes,r=i.validatedShapes;i.shapes=(n=wy(t=o),ee("id",t,n)),i.validatedShapes=function(e){var t=Z(e,"id");return H(e,(function(e){for(;e;){if(e.host&&t[e.host.id])return!1;e=e.parent}return!0}))}(r)})),r&&t.on("shape.move.start",251,(function(e){var t=e.context;V(wy(t.shapes),(function(e){r.makeDraggable(t,e,!0),V(e.labels,(function(e){r.makeDraggable(t,e,!0)}))}))})),r&&t.on("shape.move.start",(function(e){var i=e.context.shapes;if(1===i.length){var o=i[0].host;o&&(n.addMarker(o,yy),t.once(["shape.move.out","shape.move.cleanup"],(function(){n.removeMarker(o,yy)})))}})),this.preExecuted("elements.move",1401,(function(e){var t=e.context,n=t.closure;V(wy(t.shapes),(function(e){n.add(e,n.topLevel[e.host.id])}))})),this.postExecuted("elements.move",(function(e){var t=e.context,n=t.shapes,i=t.newHost;i&&1!==n.length||V(i?n:H(n,(function(e){var t,i=e.host;return function(e){return!!e.host}(e)&&(t=i,!(-1!==n.indexOf(t)))})),(function(e){o.updateAttachment(e,i)}))})),this.postExecuted("elements.move",(function(e){V(e.context.shapes,(function(e){V(e.attachers,(function(e){V(e.outgoing.slice(),(function(e){i.allowed("connection.reconnect",{connection:e,source:e.source,target:e.target})||o.removeConnection(e)})),V(e.incoming.slice(),(function(e){i.allowed("connection.reconnect",{connection:e,source:e.source,target:e.target})||o.removeConnection(e)}))}))}))})),this.postExecute("shape.create",(function(e){var t=e.context,n=t.shape,i=t.host;i&&o.updateAttachment(n,i)})),this.postExecute("shape.replace",(function(e){var t=e.context,n=t.oldShape,r=t.newShape;fy(n.attachers,(function(e){"attach"===i.allowed("elements.move",{target:r,shapes:[e]})?o.updateAttachment(e,r):o.removeShape(e)})),r.attachers.length&&V(r.attachers,(function(e){var t=Sm(e,n,r);o.moveShape(e,t,e.parent)}))})),this.postExecute("shape.resize",(function(e){var t=e.context,n=t.shape,i=t.oldBounds,r=t.newBounds,s=n.attachers;!1!==(t.hints||{}).attachSupport&&V(s,(function(e){var t=Sm(e,i,r);o.moveShape(e,t,e.parent),V(e.labels,(function(e){o.moveShape(e,t,e.parent)}))}))})),this.preExecute("shape.delete",(function(e){var t=e.context.shape;fy(t.attachers,(function(e){o.removeShape(e)})),t.host&&o.updateAttachment(t,null)}))}function wy(e){return M(U(e,(function(e){return e.attachers||[]})))}lt(by,cc),by.$inject=["injector","eventBus","canvas","rules","modeling"];const xy={__depends__:[nd],__init__:["attachSupport"],attachSupport:["type",by]};function _y(e){this._model=e}function Ey(e,t,n){cc.call(this,e),this._bpmnFactory=t;var i=this;function o(e){V(e.context.oldRoot.children,(function(e){de(e,"bpmn:BaseElement")&&i.updateParent(e)}))}function r(e){var t=e.context.shape;de(t,"bpmn:BaseElement")&&i.updateBounds(t)}function s(e){i.updateConnection(e.context)}function a(e){i.updateConnectionWaypoints(e.context.connection)}function l(e){i.updateAttachment(e.context)}function c(e){const{element:n}=e.context,i=_l(n),o=ge(n),r=o&&o.get("label");yl(n)||vc(n)||(i&&!r?o.set("label",t.create("bpmndi:BPMNLabel")):!i&&r&&o.set("label",void 0))}this.executed(["connection.layout","connection.create"],(function(e){var t,i=e.context,o=i.hints||{};i.cropped||!1===o.createElementsBehavior||((t=i.connection).waypoints=n.getCroppedWaypoints(t),i.cropped=!0)})),this.reverted(["connection.layout"],(function(e){delete e.context.cropped})),this.executed(["shape.move","shape.create","shape.delete","connection.create","connection.move","connection.delete"],ky((function(e){var t=e.context;i.updateParent(t.shape||t.connection,t.oldParent)}))),this.reverted(["shape.move","shape.create","shape.delete","connection.create","connection.move","connection.delete"],ky((function(e){var t=e.context,n=t.shape||t.connection,o=t.parent||t.newParent;i.updateParent(n,o)}))),this.executed(["canvas.updateRoot"],o),this.reverted(["canvas.updateRoot"],o),this.executed(["shape.move","shape.create","shape.resize"],ky((function(e){"label"!==e.context.shape.type&&r(e)}))),this.reverted(["shape.move","shape.create","shape.resize"],ky((function(e){"label"!==e.context.shape.type&&r(e)}))),e.on("shape.changed",(function(e){"label"===e.element.type&&r({context:{shape:e.element}})})),this.executed(["connection.create","connection.move","connection.delete","connection.reconnect"],ky(s)),this.reverted(["connection.create","connection.move","connection.delete","connection.reconnect"],ky(s)),this.executed(["connection.layout","connection.move","connection.updateWaypoints"],ky(a)),this.reverted(["connection.layout","connection.move","connection.updateWaypoints"],ky(a)),this.executed("connection.reconnect",ky((function(e){var t=e.context,n=t.connection,i=t.oldSource,o=t.newSource,r=me(n),s=me(i),a=me(o);r.conditionExpression&&!fe(a,["bpmn:Activity","bpmn:ExclusiveGateway","bpmn:InclusiveGateway"])&&(t.oldConditionExpression=r.conditionExpression,delete r.conditionExpression),i!==o&&s.default===r&&(t.oldDefault=s.default,delete s.default)}))),this.reverted("connection.reconnect",ky((function(e){var t=e.context,n=t.connection,i=t.oldSource,o=t.newSource,r=me(n),s=me(i),a=me(o);t.oldConditionExpression&&(r.conditionExpression=t.oldConditionExpression),t.oldDefault&&(s.default=t.oldDefault,delete a.default)}))),this.executed(["element.updateAttachment"],ky(l)),this.reverted(["element.updateAttachment"],ky(l)),this.executed("element.updateLabel",ky(c)),this.reverted("element.updateLabel",ky(c))}function ky(e){return function(t){var n=t.context;de(n.shape||n.connection||n.element,"bpmn:BaseElement")&&e(t)}}function Sy(e,t){vs.call(this),this._bpmnFactory=e,this._moddle=t}function Cy(e,t,n){return void 0===t[n]?t:(e[n]=t[n],pe(t,[n]))}function Oy(e,t){this._modeling=e,this._canvas=t}function Py(e){this._modeling=e}function My(e,t){this._canvas=e,this._layouter=t}_y.$inject=["moddle"],_y.prototype._needsId=function(e){return fe(e,["bpmn:RootElement","bpmn:FlowElement","bpmn:MessageFlow","bpmn:DataAssociation","bpmn:Artifact","bpmn:Participant","bpmn:Lane","bpmn:LaneSet","bpmn:Process","bpmn:Collaboration","bpmndi:BPMNShape","bpmndi:BPMNEdge","bpmndi:BPMNDiagram","bpmndi:BPMNPlane","bpmn:Property","bpmn:CategoryValue"])},_y.prototype._ensureId=function(e){var t;e.id?this._model.ids.claim(e.id,e):(t=de(e,"bpmn:Activity")?"Activity":de(e,"bpmn:Event")?"Event":de(e,"bpmn:Gateway")?"Gateway":fe(e,["bpmn:SequenceFlow","bpmn:MessageFlow"])?"Flow":(e.$type||"").replace(/^[^:]*:/g,""),t+="_",!e.id&&this._needsId(e)&&(e.id=this._model.ids.nextPrefixed(t,e)))},_y.prototype.create=function(e,t){var n=this._model.create(e,t||{});return this._ensureId(n),n},_y.prototype.createDiLabel=function(){return this.create("bpmndi:BPMNLabel",{bounds:this.createDiBounds()})},_y.prototype.createDiShape=function(e,t){return this.create("bpmndi:BPMNShape",ce({bpmnElement:e,bounds:this.createDiBounds()},t))},_y.prototype.createDiBounds=function(e){return this.create("dc:Bounds",e)},_y.prototype.createDiWaypoints=function(e){var t=this;return U(e,(function(e){return t.createDiWaypoint(e)}))},_y.prototype.createDiWaypoint=function(e){return this.create("dc:Point",ue(e,["x","y"]))},_y.prototype.createDiEdge=function(e,t){return this.create("bpmndi:BPMNEdge",ce({bpmnElement:e,waypoint:this.createDiWaypoints([])},t))},_y.prototype.createDiPlane=function(e,t){return this.create("bpmndi:BPMNPlane",ce({bpmnElement:e},t))},lt(Ey,cc),Ey.$inject=["eventBus","bpmnFactory","connectionDocking"],Ey.prototype.updateAttachment=function(e){var t=e.shape,n=t.businessObject,i=t.host;n.attachedToRef=i&&i.businessObject},Ey.prototype.updateParent=function(e,t){if(!(qr(e)||de(e,"bpmn:DataStoreReference")&&e.parent&&de(e.parent,"bpmn:Collaboration"))){var n=e.parent,i=e.businessObject,o=ge(e),r=n&&n.businessObject,s=ge(n);de(e,"bpmn:FlowNode")&&this.updateFlowNodeRefs(i,r,t&&t.businessObject),de(e,"bpmn:DataOutputAssociation")&&(r=e.source?e.source.businessObject:null),de(e,"bpmn:DataInputAssociation")&&(r=e.target?e.target.businessObject:null),this.updateSemanticParent(i,r),de(e,"bpmn:DataObjectReference")&&i.dataObjectRef&&this.updateSemanticParent(i.dataObjectRef,r),this.updateDiParent(o,s)}},Ey.prototype.updateBounds=function(e){var t=ge(e),n=function(e){if(de(e,"bpmn:Activity")){var t=ge(e);if(t){var n=t.get("label");if(n)return n.get("bounds")}}}(e);if(n){var i=Ch(n,t.get("bounds"));ce(n,{x:e.x+i.x,y:e.y+i.y})}var o=qr(e)?this._getLabel(t):t,r=o.bounds;r||(r=this._bpmnFactory.createDiBounds(),o.set("bounds",r)),ce(r,{x:e.x,y:e.y,width:e.width,height:e.height})},Ey.prototype.updateFlowNodeRefs=function(e,t,n){n!==t&&(de(n,"bpmn:Lane")&&Jo(n.get("flowNodeRef"),e),de(t,"bpmn:Lane")&&er(t.get("flowNodeRef"),e))},Ey.prototype.updateDiConnection=function(e,t,n){var i=ge(e),o=ge(t),r=ge(n);i.sourceElement&&i.sourceElement.bpmnElement!==me(t)&&(i.sourceElement=t&&o),i.targetElement&&i.targetElement.bpmnElement!==me(n)&&(i.targetElement=n&&r)},Ey.prototype.updateDiParent=function(e,t){if(t&&!de(t,"bpmndi:BPMNPlane")&&(t=t.$parent),e.$parent!==t){var n=(t||e.$parent).get("planeElement");t?(n.push(e),e.$parent=t):(Jo(n,e),e.$parent=null)}},Ey.prototype.getLaneSet=function(e){var t,n;return de(e,"bpmn:Lane")?((t=e.childLaneSet)||(t=this._bpmnFactory.create("bpmn:LaneSet"),e.childLaneSet=t,t.$parent=e),t):(de(e,"bpmn:Participant")&&(e=e.processRef),(t=(n=e.get("laneSets"))[0])||((t=this._bpmnFactory.create("bpmn:LaneSet")).$parent=e,n.push(t)),t)},Ey.prototype.updateSemanticParent=function(e,t,n){var i;if(e.$parent!==t&&(!de(e,"bpmn:DataInput")&&!de(e,"bpmn:DataOutput")||(de(t,"bpmn:Participant")&&"processRef"in t&&(t=t.processRef),!("ioSpecification"in t)||t.ioSpecification!==e.$parent))){if(de(e,"bpmn:Lane"))t&&(t=this.getLaneSet(t)),i="lanes";else if(de(e,"bpmn:FlowElement")){if(t)if(de(t,"bpmn:Participant"))t=t.processRef;else if(de(t,"bpmn:Lane"))do{t=t.$parent.$parent}while(de(t,"bpmn:Lane"));i="flowElements"}else if(de(e,"bpmn:Artifact")){for(;t&&!de(t,"bpmn:Process")&&!de(t,"bpmn:SubProcess")&&!de(t,"bpmn:Collaboration");){if(de(t,"bpmn:Participant")){t=t.processRef;break}t=t.$parent}i="artifacts"}else if(de(e,"bpmn:MessageFlow"))i="messageFlows";else if(de(e,"bpmn:Participant")){i="participants";var o,r=e.processRef;r&&(o=function(e){for(;e&&!de(e,"bpmn:Definitions");)e=e.$parent;return e}(e.$parent||t),e.$parent&&(Jo(o.get("rootElements"),r),r.$parent=null),t&&(er(o.get("rootElements"),r),r.$parent=o))}else de(e,"bpmn:DataOutputAssociation")?i="dataOutputAssociations":de(e,"bpmn:DataInputAssociation")&&(i="dataInputAssociations");if(!i)throw new Error(`no parent for <${e.id}> in <${t.id}>`);var s;if(e.$parent&&Jo(s=e.$parent.get(i),e),t?((s=t.get(i)).push(e),e.$parent=t):e.$parent=null,n){var a=n.get(i);Jo(s,e),t&&(a||(a=[],t.set(i,a)),a.push(e))}}},Ey.prototype.updateConnectionWaypoints=function(e){ge(e).set("waypoint",this._bpmnFactory.createDiWaypoints(e.waypoints))},Ey.prototype.updateConnection=function(e){var t,n=e.connection,i=me(n),o=n.source,r=me(o),s=n.target,a=me(n.target);if(de(i,"bpmn:DataAssociation"))de(i,"bpmn:DataInputAssociation")?(i.get("sourceRef")[0]=r,t=e.parent||e.newParent||a,this.updateSemanticParent(i,a,t)):de(i,"bpmn:DataOutputAssociation")&&(t=e.parent||e.newParent||r,this.updateSemanticParent(i,r,t),i.targetRef=a);else{var l=de(i,"bpmn:SequenceFlow");i.sourceRef!==r&&(l&&(Jo(i.sourceRef&&i.sourceRef.get("outgoing"),i),r&&r.get("outgoing")&&r.get("outgoing").push(i)),i.sourceRef=r),i.targetRef!==a&&(l&&(Jo(i.targetRef&&i.targetRef.get("incoming"),i),a&&a.get("incoming")&&a.get("incoming").push(i)),i.targetRef=a)}this.updateConnectionWaypoints(n),this.updateDiConnection(n,o,s)},Ey.prototype._getLabel=function(e){return e.label||(e.label=this._bpmnFactory.createDiLabel()),e.label},lt(Sy,vs),Sy.$inject=["bpmnFactory","moddle"],Sy.prototype._baseCreate=vs.prototype.create,Sy.prototype.create=function(e,t){if("label"===e){var n=t.di||this._bpmnFactory.createDiLabel();return this._baseCreate(e,ce({type:"label",di:n},gl,t))}return this.createElement(e,t)},Sy.prototype.createElement=function(e,t){var n,i,o,r=(t=ce({},t||{})).businessObject,s=t.di;if(!r){if(!t.type)throw new Error("no shape type specified");Qa(r=this._bpmnFactory.create(t.type))}if(!fe(s,["bpmndi:BPMNShape","bpmndi:BPMNEdge","bpmndi:BPMNDiagram","bpmndi:BPMNPlane"])){var a=ce({},s||{},{id:r.id+"_di"});s="root"===e?this._bpmnFactory.createDiPlane(r,a):"connection"===e?this._bpmnFactory.createDiEdge(r,a):this._bpmnFactory.createDiShape(r,a)}return de(r,"bpmn:Group")&&(t=ce({isFrame:!0},t)),(t=function(e,t,n){return V(["processRef","isInterrupting","associationDirection","isForCompensation"],(function(n){t=Cy(e,t,n)})),t}(r,t)).isExpanded&&(t=Cy(s,t,"isExpanded")),fe(r,["bpmn:Lane","bpmn:Participant"])&&(t=Cy(s,t,"isHorizontal")),de(r,"bpmn:SubProcess")&&(t.collapsed=!ul(r,s)),de(r,"bpmn:ExclusiveGateway")&&($(s,"isMarkerVisible")?void 0===s.isMarkerVisible&&(s.isMarkerVisible=!1):s.isMarkerVisible=!0),R(t.triggeredByEvent)&&(r.triggeredByEvent=t.triggeredByEvent,delete t.triggeredByEvent),R(t.cancelActivity)&&(r.cancelActivity=t.cancelActivity,delete t.cancelActivity),t.eventDefinitionType&&(i=r.get("eventDefinitions")||[],o=this._bpmnFactory.create(t.eventDefinitionType,t.eventDefinitionAttrs),"bpmn:ConditionalEventDefinition"===t.eventDefinitionType&&(o.condition=this._bpmnFactory.create("bpmn:FormalExpression")),i.push(o),o.$parent=r,r.eventDefinitions=i,delete t.eventDefinitionType),n=this.getDefaultSize(r,s),t=ce({id:r.id},n,t,{businessObject:r,di:s}),this._baseCreate(e,t)},Sy.prototype.getDefaultSize=function(e,t){var n=me(e);if(t=t||ge(e),de(n,"bpmn:SubProcess"))return ul(n,t)?{width:350,height:200}:{width:100,height:80};if(de(n,"bpmn:Task"))return{width:100,height:80};if(de(n,"bpmn:Gateway"))return{width:50,height:50};if(de(n,"bpmn:Event"))return{width:36,height:36};if(de(n,"bpmn:Participant")){var i=void 0===t.isHorizontal||!0===t.isHorizontal;return ul(n,t)?i?{width:600,height:250}:{width:250,height:600}:i?{width:400,height:60}:{width:60,height:400}}return de(n,"bpmn:Lane")?{width:400,height:100}:de(n,"bpmn:DataObjectReference")?{width:36,height:50}:de(n,"bpmn:DataStoreReference")?{width:50,height:50}:de(n,"bpmn:TextAnnotation")?{width:100,height:30}:de(n,"bpmn:Group")?{width:300,height:300}:{width:100,height:80}},Sy.prototype.createParticipantShape=function(e){return N(e)||(e={isExpanded:e}),!1!==(e=ce({type:"bpmn:Participant"},e||{})).isExpanded&&(e.processRef=this._bpmnFactory.create("bpmn:Process")),this.createShape(e)},Oy.$inject=["modeling","canvas"],Oy.prototype.preExecute=function(e){var t=this._modeling,n=e.elements,i=e.alignment;V(n,(function(e){var n={x:0,y:0};R(i.left)?n.x=i.left-e.x:R(i.right)?n.x=i.right-e.width-e.x:R(i.center)?n.x=i.center-Math.round(e.width/2)-e.x:R(i.top)?n.y=i.top-e.y:R(i.bottom)?n.y=i.bottom-e.height-e.y:R(i.middle)&&(n.y=i.middle-Math.round(e.height/2)-e.y),t.moveElements([e],n,e.parent)}))},Oy.prototype.postExecute=function(e){},Py.$inject=["modeling"],Py.prototype.preExecute=function(e){var t=e.source;if(!t)throw new Error("source required");var n=e.target||t.parent,i=e.shape,o=e.hints||{};i=e.shape=this._modeling.createShape(i,e.position,n,{attach:o.attach}),e.shape=i},Py.prototype.postExecute=function(e){var t,n,i=e.hints||{};t=e.source,n=e.shape,X(t.outgoing,(function(e){return e.target===n}))||(i.connectionTarget===e.source?this._modeling.connect(e.shape,e.source,e.connection):this._modeling.connect(e.source,e.shape,e.connection))},My.$inject=["canvas","layouter"],My.prototype.execute=function(e){var t=e.connection,n=e.source,i=e.target,o=e.parent,r=e.parentIndex,s=e.hints;if(!n||!i)throw new Error("source and target required");if(!o)throw new Error("parent required");return t.source=n,t.target=i,t.waypoints||(t.waypoints=this._layouter.layoutConnection(t,s)),this._canvas.addConnection(t,o,r),t},My.prototype.revert=function(e){var t=e.connection;return this._canvas.removeConnection(t),t.source=null,t.target=null,t};var Ay=Math.round;function Ty(e){this._modeling=e}Ty.$inject=["modeling"],Ty.prototype.preExecute=function(e){var t=e.elements,n=e.parent,i=e.parentIndex,o=e.position,r=e.hints,s=this._modeling;V(t,(function(e){z(e.x)||(e.x=0),z(e.y)||(e.y=0)}));var a=Qo(H(t,(function(e){return!e.hidden})));V(t,(function(e){jr(e)&&(e.waypoints=U(e.waypoints,(function(e){return{x:Ay(e.x-a.x-a.width/2+o.x),y:Ay(e.y-a.y-a.height/2+o.y)}}))),ce(e,{x:Ay(e.x-a.x-a.width/2+o.x),y:Ay(e.y-a.y-a.height/2+o.y)})}));var l=qo(t),c={};V(t,(function(e){if(jr(e))c[e.id]=z(i)?s.createConnection(c[e.source.id],c[e.target.id],i,e,e.parent||n,r):s.createConnection(c[e.source.id],c[e.target.id],e,e.parent||n,r);else{var t=ce({},r);-1===l.indexOf(e)&&(t.autoResize=!1),qr(e)&&(t=pe(t,["attach"])),c[e.id]=z(i)?s.createShape(e,ue(e,["x","y","width","height"]),e.parent||n,i,t):s.createShape(e,ue(e,["x","y","width","height"]),e.parent||n,t)}})),e.elements=K(c)};var By=Math.round;function Ry(e){this._canvas=e}function Dy(e){Ry.call(this,e)}Ry.$inject=["canvas"],Ry.prototype.execute=function(e){var t=e.shape,n=e.position,i=e.parent,o=e.parentIndex;if(!i)throw new Error("parent required");if(!n)throw new Error("position required");return void 0!==n.width?ce(t,n):ce(t,{x:n.x-By(t.width/2),y:n.y-By(t.height/2)}),this._canvas.addShape(t,i,o),t},Ry.prototype.revert=function(e){var t=e.shape;return this._canvas.removeShape(t),t},lt(Dy,Ry),Dy.$inject=["canvas"];var Ly=Ry.prototype.execute;Dy.prototype.execute=function(e){var t=e.shape;return function(e){["width","height"].forEach((function(t){void 0===e[t]&&(e[t]=0)}))}(t),t.labelTarget=e.labelTarget,Ly.call(this,e)};var Ny=Ry.prototype.revert;function zy(e,t){this._canvas=e,this._modeling=t}function Iy(e,t){this._modeling=e,this._elementRegistry=t}function Fy(e,t){this._canvas=e,this._modeling=t}function $y(e){this._modeling=e}Dy.prototype.revert=function(e){return e.shape.labelTarget=null,Ny.call(this,e)},zy.$inject=["canvas","modeling"],zy.prototype.preExecute=function(e){var t=this._modeling,n=e.connection;fy(n.incoming,(function(e){t.removeConnection(e,{nested:!0})})),fy(n.outgoing,(function(e){t.removeConnection(e,{nested:!0})}))},zy.prototype.execute=function(e){var t=e.connection,n=t.parent;return e.parent=n,e.parentIndex=tr(n.children,t),e.source=t.source,e.target=t.target,this._canvas.removeConnection(t),t.source=null,t.target=null,t},zy.prototype.revert=function(e){var t=e.connection,n=e.parent,i=e.parentIndex;return t.source=e.source,t.target=e.target,er(n.children,t,i),this._canvas.addConnection(t,n),t},Iy.$inject=["modeling","elementRegistry"],Iy.prototype.postExecute=function(e){var t=this._modeling,n=this._elementRegistry;V(e.elements,(function(e){n.get(e.id)&&(e.waypoints?t.removeConnection(e):t.removeShape(e))}))},Fy.$inject=["canvas","modeling"],Fy.prototype.preExecute=function(e){var t=this._modeling,n=e.shape;fy(n.incoming,(function(e){t.removeConnection(e,{nested:!0})})),fy(n.outgoing,(function(e){t.removeConnection(e,{nested:!0})})),fy(n.children,(function(e){jr(e)?t.removeConnection(e,{nested:!0}):t.removeShape(e,{nested:!0})}))},Fy.prototype.execute=function(e){var t=this._canvas,n=e.shape,i=n.parent;return e.oldParent=i,e.oldParentIndex=tr(i.children,n),t.removeShape(n),n},Fy.prototype.revert=function(e){var t=this._canvas,n=e.shape,i=e.oldParent,o=e.oldParentIndex;return er(i.children,n,o),t.addShape(n,i),n},$y.$inject=["modeling"];var jy={x:"y",y:"x"};function qy(e,t){this._layouter=e,this._canvas=t}function Hy(){}function Vy(){this.allShapes={},this.allConnections={},this.enclosedElements={},this.enclosedConnections={},this.topLevel={}}function Wy(e){this._modeling=e}function Gy(e){this._helper=new Wy(e)}function Qy(e){this._modeling=e,this._helper=new Wy(e)}function Xy(e){this._modeling=e}function Uy(e){return e.original||e}function Yy(e,t){this._modeling=e,this._rules=t}function Ky(e){this._modeling=e}function Zy(e){this._modeling=e}function Jy(e){return ce({},e)}function eb(e){switch(e){case"n":case"s":return"y";case"w":case"e":return"x"}}function tb(e,t,n){var i=eb(n);return/e|s/.test(n)?e[i]>t:/n|w/.test(n)?e[i] required");var o=e.changed||this._getVisualReferences(n).concat(t),r=e.oldProperties||function(e,t){return G(t,(function(t,n){return t[n]=e.get(n),t}),{})}(n,Y(i));return db(n,i),e.oldProperties=r,e.changed=o,o},pb.prototype.revert=function(e){var t=e.oldProperties,n=e.moddleElement,i=e.changed;return db(n,t),i},pb.prototype._getVisualReferences=function(e){var t=this._elementRegistry;return de(e,"bpmn:DataObject")?function(e,t){return t.filter((function(t){return de(t,"bpmn:DataObjectReference")&&me(t).dataObjectRef===e}))}(e,t):[]};var fb="default",mb="id",gb={width:0,height:0};function vb(e,t,n,i){this._elementRegistry=e,this._moddle=t,this._modeling=n,this._textRenderer=i}function yb(e,t){return mb in e&&e[mb]!==t[mb]}function bb(e,t){var n=e.businessObject,i=ge(e);V(t,(function(e,t){"di"!==t?n.set(t,e):i&&function(e,t){V(t,(function(t,n){e.set(n,t)}))}(i,e)}))}vb.$inject=["elementRegistry","moddle","modeling","textRenderer"],vb.prototype.execute=function(e){var t=e.element,n=[t];if(!t)throw new Error("element required");var i=this._elementRegistry,o=this._moddle.ids,r=t.businessObject,s=function(e){var t=ce({},e);return wb.forEach((function(n){n in e&&(t[n]=me(t[n]))})),t}(e.properties),a=e.oldProperties||function(e,t){var n=Y(t),i=e.businessObject,o=ge(e);return G(n,(function(e,n){return e[n]="di"!==n?i.get(n):function(e,t){return G(t,(function(t,n){return t[n]=e&&e.get(n),t}),{})}(o,Y(t.di)),e}),{})}(t,s);return yb(s,r)&&(o.unclaim(r[mb]),i.updateId(t,s[mb]),o.claim(s[mb],r)),fb in s&&(s[fb]&&n.push(i.get(s[fb].id)),r[fb]&&n.push(i.get(r[fb].id))),bb(t,s),e.oldProperties=a,e.changed=n,n},vb.prototype.postExecute=function(e){var t=e.element.label,n=t&&me(t).name;if(n){var i=this._textRenderer.getExternalLabelBounds(t,n);this._modeling.resizeShape(t,i,gb)}},vb.prototype.revert=function(e){var t=e.element,n=e.properties,i=e.oldProperties,o=t.businessObject,r=this._elementRegistry,s=this._moddle.ids;return bb(t,i),yb(n,o)&&(s.unclaim(n[mb]),r.updateId(t,i[mb]),s.claim(i[mb],o)),e.changed};var wb=["default"];function xb(e,t){this._canvas=e,this._modeling=t}function _b(e,t){this._modeling=e,this._spaceTool=t}function Eb(e){this._modeling=e}function kb(e,t){this._modeling=e,this._spaceTool=t}xb.$inject=["canvas","modeling"],xb.prototype.execute=function(e){var t=this._canvas,n=e.newRoot,i=n.businessObject,o=t.getRootElement(),r=o.businessObject,s=r.$parent,a=ge(o);return t.setRootElement(n),t.removeRootElement(o),er(s.rootElements,i),i.$parent=s,Jo(s.rootElements,r),r.$parent=null,o.di=null,a.bpmnElement=i,n.di=a,e.oldRoot=o,[]},xb.prototype.revert=function(e){var t=this._canvas,n=e.newRoot,i=n.businessObject,o=e.oldRoot,r=o.businessObject,s=i.$parent,a=ge(n);return t.setRootElement(o),t.removeRootElement(n),Jo(s.rootElements,i),i.$parent=null,er(s.rootElements,r),r.$parent=s,n.di=null,a.bpmnElement=r,o.di=a,[]},_b.$inject=["modeling","spaceTool"],_b.prototype.preExecute=function(e){var t=this._spaceTool,n=this._modeling,i=e.shape,o=e.location,r=Uf(i),s=r===i,a=s?i:i.parent,l=Xf(a),c=pl(i);if(c?"left"===o?o="top":"right"===o&&(o="bottom"):"top"===o?o="left":"bottom"===o&&(o="right"),!l.length){var h=c?{x:i.x+Gf,y:i.y,width:i.width-Gf,height:i.height}:{x:i.x,y:i.y+Gf,width:i.width,height:i.height-Gf};n.createShape({type:"bpmn:Lane",isHorizontal:c},h,a)}var u,p,d,f,m,g=[];Wo(r,(function(e){return g.push(e),e.label&&g.push(e.label),e===i?[]:H(e.children,(function(e){return e!==i}))})),"top"===o?(u=-120,d=(p=i.y)+10,f="n",m="y"):"left"===o?(u=-120,d=(p=i.x)+10,f="w",m="x"):"bottom"===o?(u=120,d=(p=i.y+i.height)-10,f="s",m="y"):"right"===o&&(u=120,d=(p=i.x+i.width)-10,f="e",m="x");var v=t.calculateAdjustments(g,m,u,d),y=c?{x:0,y:u}:{x:u,y:0};t.makeSpace(v.movingShapes,v.resizingShapes,y,f,d);var b=c?{x:i.x+(s?Gf:0),y:p-("top"===o?120:0),width:i.width-(s?Gf:0),height:120}:{x:p-("left"===o?120:0),y:i.y+(s?Gf:0),width:120,height:i.height-(s?Gf:0)};e.newLane=n.createShape({type:"bpmn:Lane",isHorizontal:c},b,a)},Eb.$inject=["modeling"],Eb.prototype.preExecute=function(e){var t=this._modeling,n=e.shape,i=e.count,o=Xf(n),r=o.length;if(r>i)throw new Error(`more than <${i}> child lanes`);var s,a,l,c,h=pl(n),u=h?n.height:n.width,p=Math.round(u/i);for(c=0;c0||c.bottom<0?-n:n,s=a.calculateAdjustments(u,"y",r,i),a.makeSpace(s.movingShapes,s.resizingShapes,{x:0,y:n},o)),(c.left||c.right)&&(n=c.right||c.left,i=e.x+(c.right?e.width:0)+(c.right?-10:100),o=c.right?"e":"w",r=c.left>0||c.right<0?-n:n,s=a.calculateAdjustments(p,"x",r,i),a.makeSpace(s.movingShapes,s.resizingShapes,{x:n,y:0},o))};var Sb="flowNodeRef",Cb="lanes";function Ob(e){this._elementRegistry=e}function Pb(e){this._moddle=e}Ob.$inject=["elementRegistry"],Ob.prototype._computeUpdates=function(e,t){var n=[],i=[],o={},r=[];function s(e){-1===n.indexOf(e)&&(r.push(e),n.push(e))}return t.forEach((function(e){var t=Uf(e);if(t&&-1===n.indexOf(t)){var i=t.children.filter((function(e){return de(e,"bpmn:FlowNode")}));i.forEach(s),n.push(t)}})),e.forEach(s),r.forEach((function(e){var t=e.businessObject,n=t.get(Cb).slice(),r=function(e){if(!e.parent)return[];var t=function(e){var t=Uf(e);return o[t.id]||(o[t.id]=Qf(t)),o[t.id]}(e);return t.filter((function(t){return n=e,i=Wr(t),o=n.x+n.width/2,r=n.y+n.height/2,o>i.left&&oi.top&&r: must be specified as : with start/end in { h,v,t,r,b,l }");if(Qb(n)){var i=function(e,t,n){return jb(e,t,n)}(e,t,n),o=function(e,t,n){var i=jb(t,e,qb(n));return{waypoints:i.waypoints.slice().reverse(),directions:qb(i.directions),turnNextDirections:i.turnNextDirections}}(e,t,n),r=function(e,t){var n=e.directions.split(":")[1],i=t.directions.split(":")[0];e.turnNextDirections&&(n="h"==n?"v":"h"),t.turnNextDirections&&(i="h"==i?"v":"h");var o=n+":"+i;return{waypoints:Hb(e.waypoints[e.waypoints.length-1],t.waypoints[0],o),directions:o}}(i,o);return[].concat(i.waypoints,r.waypoints,o.waypoints)}return function(e,t,n){var i=Ib((t.x-e.x)/2+e.x),o=Ib((t.y-e.y)/2+e.y);if("h:v"===n)return[{x:t.x,y:e.y}];if("v:h"===n)return[{x:e.x,y:t.y}];if("h:h"===n)return[{x:i,y:e.y},{x:i,y:t.y}];if("v:v"===n)return[{x:e.x,y:o},{x:t.x,y:o}];throw new Error("invalid directions: can only handle varians of [hv]:[hv]")}(e,t,n)}function Vb(e,t,n,i,o,r){var s;return L(n)&&(o=n,r=i,n=Qr(e),i=Qr(t)),o=o||[],s=-1!==(r=ce({preferredLayouts:[]},r)).preferredLayouts.indexOf("straight")&&function(e,t,n,i,o){var r,s,a={};return s=Xr(e,t),/^(top|bottom|left|right)$/.test(s)?(/top|bottom/.test(s)&&(r="x"),/left|right/.test(s)&&(r="y"),"target"===o.preserveDocking?Wb(r,i,e)?(a[r]=i[r],[{x:void 0!==a.x?a.x:n.x,y:void 0!==a.y?a.y:n.y,original:{x:void 0!==a.x?a.x:n.x,y:void 0!==a.y?a.y:n.y}},{x:i.x,y:i.y}]):null:Wb(r,n,t)?(a[r]=n[r],[{x:n.x,y:n.y},{x:void 0!==a.x?a.x:i.x,y:void 0!==a.y?a.y:i.y,original:{x:void 0!==a.x?a.x:i.x,y:void 0!==a.y?a.y:i.y}}]):null):null}(e,t,n,i,r),s||(s=r.connectionEnd&&function(e,t,n,i){var o=i.slice().reverse();return(o=Gb(e,t,n,o))?o.reverse():null}(t,e,i,o),s||(s=r.connectionStart&&Gb(e,t,n,o))||(!r.connectionStart&&!r.connectionEnd&&o&&o.length?o:function(e,t,n,i,o){var r=W(o&&o.preferredLayouts||[],"straight")[0]||"h:h",s=Xr(e,t,$b[r]||0),a=function(e,t){if(Qb(t))return t;switch(e){case"intersect":return"t:t";case"top":case"bottom":return"v:v";case"left":case"right":return"h:h";default:return t}}(s,r);n=n||Qr(e),i=i||Qr(t);var l=a.split(":"),c=Xb(n,e,l[0],function(e){return{top:"bottom",bottom:"top",left:"right",right:"left","top-left":"bottom-right","bottom-right":"top-left","top-right":"bottom-left","bottom-left":"top-right"}[e]}(s));return function(e,t,n){var i=Hb(e,t,n);return i.unshift(e),i.push(t),Ub(i)}(c,Xb(i,t,l[1],s),a)}(e,t,n,i,r)))}function Wb(e,t,n){return function(e,t,n){return e>=t&&e<=n}(t[e],n[e],n[e]+n[{x:"width",y:"height"}[e]])}function Gb(e,t,n,i){if(function(e){return e.length<3||!(e.length>4)&&!!j(e,(function(t,n){var i=e[n-1];return i&&nr(t,i)<3}))}(i))return null;var o,r=i[0],s=i.slice();return s[0]=n,s[1]=function(e,t,n){switch(rr(t,e)){case"v":return{x:n.x,y:e.y};case"h":return{x:e.x,y:n.y}}return{x:e.x,y:e.y}}(s[1],r,n),o=function(e,t,n){var i;for(i=e.length-2;0!==i;i--)if(ar(e[i],t,Fb)||ar(e[i],n,Fb))return e.slice(i);return e}(s,e,t),o!==s&&(s=Gb(e,t,n,o)),s&&rr(s)?null:s}function Qb(e){return e&&/t|r|b|l/.test(e)}function Xb(e,t,n,i){if("h"===n&&(n=/left/.test(i)?"l":"r"),"v"===n&&(n=/top/.test(i)?"t":"b"),"t"===n)return{original:e,x:e.x,y:t.y};if("r"===n)return{original:e,x:t.x+t.width,y:e.y};if("b"===n)return{original:e,x:e.x,y:t.y+t.height};if("l"===n)return{original:e,x:t.x,y:e.y};throw new Error("unexpected dockingDirection: <"+n+">")}function Ub(e){return e.reduce((function(t,n,i){return ir(t[t.length-1],e[i+1],n,0)||t.push(n),t}),[])}var Yb=40,Kb={default:["h:h"],fromGateway:["v:h"],toGateway:["h:v"],loop:{fromTop:["t:r"],fromRight:["r:b"],fromLeft:["l:t"],fromBottom:["b:l"]},boundaryLoop:{alternateHorizontalSide:"b",alternateVerticalSide:"l",default:"v"},messageFlow:["straight","v:v"],subProcess:["straight","h:h"],isHorizontal:!0},Zb={default:["v:v"],fromGateway:["h:v"],toGateway:["v:h"],loop:{fromTop:["t:l"],fromRight:["r:t"],fromLeft:["l:b"],fromBottom:["b:r"]},boundaryLoop:{alternateHorizontalSide:"t",alternateVerticalSide:"r",default:"h"},messageFlow:["straight","h:h"],subProcess:["straight","v:v"],isHorizontal:!1},Jb={top:"bottom","top-right":"bottom-left","top-left":"bottom-right",right:"left",bottom:"top","bottom-right":"top-left","bottom-left":"top-right",left:"right"},ew={top:"t",right:"r",bottom:"b",left:"l"};function tw(){}function nw(e,t){return de(t,"bpmn:Participant")?"source":de(e,"bpmn:Participant")?"target":sw(t)?"source":sw(e)||de(t,"bpmn:Event")?"target":de(e,"bpmn:Event")?"source":null}function iw(e){return sw(e)?"target":"source"}function ow(e,t){return e?e.original||e:Qr(t)}function rw(e,t){return de(t,"bpmn:Activity")&&de(e,"bpmn:BoundaryEvent")&&t.businessObject.isForCompensation}function sw(e){return de(e,"bpmn:SubProcess")&&ul(e)}function aw(e,t){return e===t}function lw(e){var t=/right|left/.exec(e);return t&&t[0]}function cw(e){var t=/top|bottom/.exec(e);return t&&t[0]}function hw(e,t){return Jb[e]===t}function uw(e){return"right"===e||"left"===e}function pw(e,t,n){var i=t.waypoints,o=i&&i.length&&Xr(i[0],e);return"top"===o?n.loop.fromTop:"right"===o?n.loop.fromRight:"left"===o?n.loop.fromLeft:n.loop.fromBottom}function dw(e,t,n,i){var o,r,s,a,l=Qr(e),c=Qr(t),h=(a=(s=e).host,Xr(Qr(s),a,-10)),u=aw(e.host,t),p=-1!==["top","right","bottom","left"].indexOf(h),d=Xr(c,l,{x:e.width/2+t.width/2,y:e.height/2+t.height/2});return u?function(e,t,n,i,o,r){var s=t?e:r.isHorizontal?cw(e):lw(e);return[ew[s]+":"+(t?uw(e)?fw("y",n,i,o)?"h":r.boundaryLoop.alternateHorizontalSide:fw("x",n,i,o)?"v":r.boundaryLoop.alternateVerticalSide:r.boundaryLoop.default)]}(h,p,e,t,n,i):(o=function(e,t,n,i){if(n)return ew[e];var o=cw(e),r=lw(e),s=cw(t),a=lw(t);if(i){if(aw(o,s)||hw(r,a))return ew[o]}else if(aw(r,a)||hw(o,s))return ew[r];return ew[i?r:o]}(h,d,p,i.isHorizontal),r=function(e,t,n,i){return n?uw(e)?function(e,t){var n=lw(e),i=Jb[n];return-1!==t.indexOf(i)}(e,t)||aw(e,t)?"h":"v":function(e,t){var n=cw(e),i=Jb[n];return-1!==t.indexOf(i)}(e,t)||aw(e,t)?"v":"h":i?aw(cw(e),cw(t))?"h":"v":aw(lw(e),lw(t))?"v":"h"}(h,d,p,i.isHorizontal),[o+":"+r])}function fw(e,t,n,i){var o=Yb;return!(mw(e,i,n,o)||mw(e,i,{x:n.x+n.width,y:n.y+n.height},o)||mw(e,i,Qr(t),o))}function mw(e,t,n,i){return Math.abs(t[e]-n[e])!D(e)))})},ww.prototype.cleanUp=function(){this._complexPreview.cleanUp()},ww.$inject=["complexPreview","connectionDocking","elementFactory","eventBus","layouter","rules"];const xw={__depends__:[$p,df,yw],__init__:["appendPreview"],appendPreview:["type",ww]};var _w=Math.min,Ew=Math.max;function kw(e){e.preventDefault()}function Sw(e){e.stopPropagation()}function Cw(e){this.container=e.container,this.parent=Kt('
    '),this.content=Jt("[contenteditable]",this.parent),this.keyHandler=e.keyHandler||function(){},this.resizeHandler=e.resizeHandler||function(){},this.autoResize=le(this.autoResize,this),this.handlePaste=le(this.handlePaste,this)}function Ow(e,t){this._eventBus=e,this._providers=[],this._textbox=new Cw({container:t.getContainer(),keyHandler:le(this._handleKey,this),resizeHandler:le(this._handleResize,this)})}Cw.prototype.create=function(e,t,n,i){var o=this.parent,r=this.content,s=this.container;i=this.options=i||{};var a=ue(t=this.style=t||{},["width","height","maxWidth","maxHeight","minWidth","minHeight","left","top","backgroundColor","position","overflow","border","wordWrap","textAlign","outline","transform"]);ce(o.style,{width:e.width+"px",height:e.height+"px",maxWidth:e.maxWidth+"px",maxHeight:e.maxHeight+"px",minWidth:e.minWidth+"px",minHeight:e.minHeight+"px",left:e.x+"px",top:e.y+"px",backgroundColor:"#ffffff",position:"absolute",overflow:"visible",border:"1px solid #ccc",boxSizing:"border-box",wordWrap:"normal",textAlign:"center",outline:"none"},a);var l=ue(t,["fontFamily","fontSize","fontWeight","lineHeight","padding","paddingTop","paddingRight","paddingBottom","paddingLeft"]);return ce(r.style,{boxSizing:"border-box",width:"100%",outline:"none",wordWrap:"break-word"},l),i.centerVertically&&ce(r.style,{position:"absolute",top:"50%",transform:"translate(0, -50%)"},l),r.innerText=n,Gt.bind(r,"keydown",this.keyHandler),Gt.bind(r,"mousedown",Sw),Gt.bind(r,"paste",this.handlePaste),i.autoResize&&Gt.bind(r,"input",this.autoResize),i.resizable&&this.resizable(t),s.appendChild(o),this.setSelection(r.lastChild,r.lastChild&&r.lastChild.length),o},Cw.prototype.handlePaste=function(e){var t,n=this.options,i=this.style;if(e.preventDefault(),t=e.clipboardData?e.clipboardData.getData("text/plain"):window.clipboardData.getData("Text"),this.insertText(t),n.autoResize){var o=this.autoResize(i);o&&this.resizeHandler(o)}},Cw.prototype.insertText=function(e){e=function(e){return e.replace(/\r\n|\r|\n/g,"\n")}(e),document.execCommand("insertText",!1,e)||this._insertTextIE(e)},Cw.prototype._insertTextIE=function(e){var t,n,i,o=this.getSelection(),r=o.startContainer,s=o.endContainer,a=o.startOffset,l=o.endOffset,c=o.commonAncestorContainer,h=(t=c.childNodes,[].slice.call(t));if(function(e){return e.nodeType===Node.TEXT_NODE}(c)){var u=r.textContent;r.textContent=u.substring(0,a)+e+u.substring(l),n=r,i=a+e.length}else if(r===this.content&&s===this.content){var p=document.createTextNode(e);this.content.insertBefore(p,h[a]),n=p,i=p.textContent.length}else{var d=h.indexOf(r),f=h.indexOf(s);h.forEach((function(t,n){n===d?t.textContent=r.textContent.substring(0,a)+e+s.textContent.substring(l):n>d&&n<=f&&tn(t)})),n=r,i=a+e.length}n&&void 0!==i&&setTimeout((function(){self.setSelection(n,i)}))},Cw.prototype.autoResize=function(){var e=this.parent,t=this.content,n=parseInt(this.style.fontSize)||12;if(t.scrollHeight>e.offsetHeight||t.scrollHeight
    ');var u=function(n){kw(n),Sw(n);var u=_w(Ew(c+n.clientX-a,i),r),p=_w(Ew(h+n.clientY-l,o),s);t.style.width=u+"px",t.style.height=p+"px",e.resizeHandler({width:c,height:h,dx:n.clientX-a,dy:n.clientY-l})},p=function(e){kw(e),Sw(e),Gt.unbind(document,"mousemove",u,!1),Gt.unbind(document,"mouseup",p,!1)};Gt.bind(n,"mousedown",(function(e){kw(e),Sw(e),a=e.clientX,l=e.clientY;var n=t.getBoundingClientRect();c=n.width,h=n.height,Gt.bind(document,"mousemove",u),Gt.bind(document,"mouseup",p)}))}ce(n.style,{position:"absolute",bottom:"0px",right:"0px",cursor:"nwse-resize",width:"0",height:"0",borderTop:(parseInt(this.style.fontSize)/4||3)+"px solid transparent",borderRight:(parseInt(this.style.fontSize)/4||3)+"px solid #ccc",borderBottom:(parseInt(this.style.fontSize)/4||3)+"px solid #ccc",borderLeft:(parseInt(this.style.fontSize)/4||3)+"px solid transparent"}),t.appendChild(n)},Cw.prototype.destroy=function(){var e=this.parent,t=this.content,n=this.resizeHandle;t.innerText="",e.removeAttribute("style"),t.removeAttribute("style"),Gt.unbind(t,"keydown",this.keyHandler),Gt.unbind(t,"mousedown",Sw),Gt.unbind(t,"input",this.autoResize),Gt.unbind(t,"paste",this.handlePaste),n&&(n.removeAttribute("style"),tn(n)),tn(e)},Cw.prototype.getValue=function(){return this.content.innerText.trim()},Cw.prototype.getSelection=function(){return window.getSelection().getRangeAt(0)},Cw.prototype.setSelection=function(e,t){var n=document.createRange();null===e?n.selectNodeContents(this.content):(n.setStart(e,t),n.setEnd(e,t));var i=window.getSelection();i.removeAllRanges(),i.addRange(n)},Ow.$inject=["eventBus","canvas"],Ow.prototype.registerProvider=function(e){this._providers.push(e)},Ow.prototype.isActive=function(e){return!(!this._active||e&&this._active.element!==e)},Ow.prototype.cancel=function(){this._active&&(this._fire("cancel"),this.close())},Ow.prototype._fire=function(e,t){this._eventBus.fire("directEditing."+e,t||{active:this._active})},Ow.prototype.close=function(){this._textbox.destroy(),this._fire("deactivate"),this._active=null,this.resizable=void 0},Ow.prototype.complete=function(){var e=this._active;if(e){var t,n=e.context.bounds,i=this.$textbox.getBoundingClientRect(),o=this.getValue();o===e.context.text&&i.height===n.height&&i.width===n.width||(t=this._textbox.container.getBoundingClientRect(),e.provider.update(e.element,o,e.context.text,{x:i.left-t.left,y:i.top-t.top,width:i.width,height:i.height})),this._fire("complete"),this.close()}},Ow.prototype.getValue=function(){return this._textbox.getValue()},Ow.prototype._handleKey=function(e){e.stopPropagation();var t=e.keyCode||e.charCode;return 27===t?(e.preventDefault(),this.cancel()):13!==t||e.shiftKey?void 0:(e.preventDefault(),this.complete())},Ow.prototype._handleResize=function(e){this._fire("resize",e)},Ow.prototype.activate=function(e){var t;this.isActive()&&this.cancel();var n=j(this._providers,(function(n){return(t=n.activate(e))?n:null}));return t&&(this.$textbox=this._textbox.create(t.bounds,t.style,t.text,t.options),this._active={element:e,context:t,provider:n},t.options&&t.options.resizable&&(this.resizable=!0),this._fire("activate")),!!t};const Pw={__depends__:[Qc],__init__:["directEditing"],directEditing:["type",Ow]};function Mw(e){return function(t){var n=t.target,i=me(e),o=i.eventDefinitions&&i.eventDefinitions[0],r=i.$type===n.type,s=(o&&o.$type)===n.eventDefinitionType,a=!!n.triggeredByEvent==!!i.triggeredByEvent,l=void 0===n.isExpanded||n.isExpanded===ul(e);return!(r&&s&&a&&l)}}var Aw=[{label:"Start event",actionName:"replace-with-none-start",className:"bpmn-icon-start-event-none",target:{type:"bpmn:StartEvent"}},{label:"Intermediate throw event",actionName:"replace-with-none-intermediate-throwing",className:"bpmn-icon-intermediate-event-none",target:{type:"bpmn:IntermediateThrowEvent"}},{label:"End event",actionName:"replace-with-none-end",className:"bpmn-icon-end-event-none",target:{type:"bpmn:EndEvent"}},{label:"Message start event",actionName:"replace-with-message-start",className:"bpmn-icon-start-event-message",target:{type:"bpmn:StartEvent",eventDefinitionType:"bpmn:MessageEventDefinition"}},{label:"Timer start event",actionName:"replace-with-timer-start",className:"bpmn-icon-start-event-timer",target:{type:"bpmn:StartEvent",eventDefinitionType:"bpmn:TimerEventDefinition"}},{label:"Conditional start event",actionName:"replace-with-conditional-start",className:"bpmn-icon-start-event-condition",target:{type:"bpmn:StartEvent",eventDefinitionType:"bpmn:ConditionalEventDefinition"}},{label:"Signal start event",actionName:"replace-with-signal-start",className:"bpmn-icon-start-event-signal",target:{type:"bpmn:StartEvent",eventDefinitionType:"bpmn:SignalEventDefinition"}}],Tw=[{label:"Start event",actionName:"replace-with-none-start",className:"bpmn-icon-start-event-none",target:{type:"bpmn:StartEvent"}},{label:"Intermediate throw event",actionName:"replace-with-none-intermediate-throwing",className:"bpmn-icon-intermediate-event-none",target:{type:"bpmn:IntermediateThrowEvent"}},{label:"End event",actionName:"replace-with-none-end",className:"bpmn-icon-end-event-none",target:{type:"bpmn:EndEvent"}}],Bw=[{label:"Start event",actionName:"replace-with-none-start",className:"bpmn-icon-start-event-none",target:{type:"bpmn:StartEvent"}},{label:"Intermediate throw event",actionName:"replace-with-none-intermediate-throw",className:"bpmn-icon-intermediate-event-none",target:{type:"bpmn:IntermediateThrowEvent"}},{label:"End event",actionName:"replace-with-none-end",className:"bpmn-icon-end-event-none",target:{type:"bpmn:EndEvent"}},{label:"Message intermediate catch event",actionName:"replace-with-message-intermediate-catch",className:"bpmn-icon-intermediate-event-catch-message",target:{type:"bpmn:IntermediateCatchEvent",eventDefinitionType:"bpmn:MessageEventDefinition"}},{label:"Message intermediate throw event",actionName:"replace-with-message-intermediate-throw",className:"bpmn-icon-intermediate-event-throw-message",target:{type:"bpmn:IntermediateThrowEvent",eventDefinitionType:"bpmn:MessageEventDefinition"}},{label:"Timer intermediate catch event",actionName:"replace-with-timer-intermediate-catch",className:"bpmn-icon-intermediate-event-catch-timer",target:{type:"bpmn:IntermediateCatchEvent",eventDefinitionType:"bpmn:TimerEventDefinition"}},{label:"Escalation intermediate throw event",actionName:"replace-with-escalation-intermediate-throw",className:"bpmn-icon-intermediate-event-throw-escalation",target:{type:"bpmn:IntermediateThrowEvent",eventDefinitionType:"bpmn:EscalationEventDefinition"}},{label:"Conditional intermediate catch event",actionName:"replace-with-conditional-intermediate-catch",className:"bpmn-icon-intermediate-event-catch-condition",target:{type:"bpmn:IntermediateCatchEvent",eventDefinitionType:"bpmn:ConditionalEventDefinition"}},{label:"Link intermediate catch event",actionName:"replace-with-link-intermediate-catch",className:"bpmn-icon-intermediate-event-catch-link",target:{type:"bpmn:IntermediateCatchEvent",eventDefinitionType:"bpmn:LinkEventDefinition",eventDefinitionAttrs:{name:""}}},{label:"Link intermediate throw event",actionName:"replace-with-link-intermediate-throw",className:"bpmn-icon-intermediate-event-throw-link",target:{type:"bpmn:IntermediateThrowEvent",eventDefinitionType:"bpmn:LinkEventDefinition",eventDefinitionAttrs:{name:""}}},{label:"Compensation intermediate throw event",actionName:"replace-with-compensation-intermediate-throw",className:"bpmn-icon-intermediate-event-throw-compensation",target:{type:"bpmn:IntermediateThrowEvent",eventDefinitionType:"bpmn:CompensateEventDefinition"}},{label:"Signal intermediate catch event",actionName:"replace-with-signal-intermediate-catch",className:"bpmn-icon-intermediate-event-catch-signal",target:{type:"bpmn:IntermediateCatchEvent",eventDefinitionType:"bpmn:SignalEventDefinition"}},{label:"Signal intermediate throw event",actionName:"replace-with-signal-intermediate-throw",className:"bpmn-icon-intermediate-event-throw-signal",target:{type:"bpmn:IntermediateThrowEvent",eventDefinitionType:"bpmn:SignalEventDefinition"}}],Rw=[{label:"Start event",actionName:"replace-with-none-start",className:"bpmn-icon-start-event-none",target:{type:"bpmn:StartEvent"}},{label:"Intermediate throw event",actionName:"replace-with-none-intermediate-throw",className:"bpmn-icon-intermediate-event-none",target:{type:"bpmn:IntermediateThrowEvent"}},{label:"End event",actionName:"replace-with-none-end",className:"bpmn-icon-end-event-none",target:{type:"bpmn:EndEvent"}},{label:"Message end event",actionName:"replace-with-message-end",className:"bpmn-icon-end-event-message",target:{type:"bpmn:EndEvent",eventDefinitionType:"bpmn:MessageEventDefinition"}},{label:"Escalation end event",actionName:"replace-with-escalation-end",className:"bpmn-icon-end-event-escalation",target:{type:"bpmn:EndEvent",eventDefinitionType:"bpmn:EscalationEventDefinition"}},{label:"Error end event",actionName:"replace-with-error-end",className:"bpmn-icon-end-event-error",target:{type:"bpmn:EndEvent",eventDefinitionType:"bpmn:ErrorEventDefinition"}},{label:"Cancel end event",actionName:"replace-with-cancel-end",className:"bpmn-icon-end-event-cancel",target:{type:"bpmn:EndEvent",eventDefinitionType:"bpmn:CancelEventDefinition"}},{label:"Compensation end event",actionName:"replace-with-compensation-end",className:"bpmn-icon-end-event-compensation",target:{type:"bpmn:EndEvent",eventDefinitionType:"bpmn:CompensateEventDefinition"}},{label:"Signal end event",actionName:"replace-with-signal-end",className:"bpmn-icon-end-event-signal",target:{type:"bpmn:EndEvent",eventDefinitionType:"bpmn:SignalEventDefinition"}},{label:"Terminate end event",actionName:"replace-with-terminate-end",className:"bpmn-icon-end-event-terminate",target:{type:"bpmn:EndEvent",eventDefinitionType:"bpmn:TerminateEventDefinition"}}],Dw=[{label:"Exclusive gateway",actionName:"replace-with-exclusive-gateway",className:"bpmn-icon-gateway-xor",target:{type:"bpmn:ExclusiveGateway"}},{label:"Parallel gateway",actionName:"replace-with-parallel-gateway",className:"bpmn-icon-gateway-parallel",target:{type:"bpmn:ParallelGateway"}},{label:"Inclusive gateway",actionName:"replace-with-inclusive-gateway",className:"bpmn-icon-gateway-or",target:{type:"bpmn:InclusiveGateway"}},{label:"Complex gateway",actionName:"replace-with-complex-gateway",className:"bpmn-icon-gateway-complex",target:{type:"bpmn:ComplexGateway"}},{label:"Event-based gateway",actionName:"replace-with-event-based-gateway",className:"bpmn-icon-gateway-eventbased",target:{type:"bpmn:EventBasedGateway",instantiate:!1,eventGatewayType:"Exclusive"}}],Lw=[{label:"Transaction",actionName:"replace-with-transaction",className:"bpmn-icon-transaction",target:{type:"bpmn:Transaction",isExpanded:!0}},{label:"Event sub-process",actionName:"replace-with-event-subprocess",className:"bpmn-icon-event-subprocess-expanded",target:{type:"bpmn:SubProcess",triggeredByEvent:!0,isExpanded:!0}},{label:"Sub-process (collapsed)",actionName:"replace-with-collapsed-subprocess",className:"bpmn-icon-subprocess-collapsed",target:{type:"bpmn:SubProcess",isExpanded:!1}}],Nw=[{label:"Transaction",actionName:"replace-with-transaction",className:"bpmn-icon-transaction",target:{type:"bpmn:Transaction",isExpanded:!0}},{label:"Sub-process",actionName:"replace-with-subprocess",className:"bpmn-icon-subprocess-expanded",target:{type:"bpmn:SubProcess",isExpanded:!0}},{label:"Event sub-process",actionName:"replace-with-event-subprocess",className:"bpmn-icon-event-subprocess-expanded",target:{type:"bpmn:SubProcess",triggeredByEvent:!0,isExpanded:!0}}],zw=Nw,Iw=[{label:"Task",actionName:"replace-with-task",className:"bpmn-icon-task",target:{type:"bpmn:Task"}},{label:"User task",actionName:"replace-with-user-task",className:"bpmn-icon-user",target:{type:"bpmn:UserTask"}},{label:"Service task",actionName:"replace-with-service-task",className:"bpmn-icon-service",target:{type:"bpmn:ServiceTask"}},{label:"Send task",actionName:"replace-with-send-task",className:"bpmn-icon-send",target:{type:"bpmn:SendTask"}},{label:"Receive task",actionName:"replace-with-receive-task",className:"bpmn-icon-receive",target:{type:"bpmn:ReceiveTask"}},{label:"Manual task",actionName:"replace-with-manual-task",className:"bpmn-icon-manual",target:{type:"bpmn:ManualTask"}},{label:"Business rule task",actionName:"replace-with-rule-task",className:"bpmn-icon-business-rule",target:{type:"bpmn:BusinessRuleTask"}},{label:"Script task",actionName:"replace-with-script-task",className:"bpmn-icon-script",target:{type:"bpmn:ScriptTask"}},{label:"Call activity",actionName:"replace-with-call-activity",className:"bpmn-icon-call-activity",target:{type:"bpmn:CallActivity"}},{label:"Sub-process (collapsed)",actionName:"replace-with-collapsed-subprocess",className:"bpmn-icon-subprocess-collapsed",target:{type:"bpmn:SubProcess",isExpanded:!1}},{label:"Sub-process (expanded)",actionName:"replace-with-expanded-subprocess",className:"bpmn-icon-subprocess-expanded",target:{type:"bpmn:SubProcess",isExpanded:!0}}],Fw=[{label:"Data store reference",actionName:"replace-with-data-store-reference",className:"bpmn-icon-data-store",target:{type:"bpmn:DataStoreReference"}}],$w=[{label:"Data object reference",actionName:"replace-with-data-object-reference",className:"bpmn-icon-data-object",target:{type:"bpmn:DataObjectReference"}}],jw=[{label:"Message boundary event",actionName:"replace-with-message-boundary",className:"bpmn-icon-intermediate-event-catch-message",target:{type:"bpmn:BoundaryEvent",eventDefinitionType:"bpmn:MessageEventDefinition",cancelActivity:!0}},{label:"Timer boundary event",actionName:"replace-with-timer-boundary",className:"bpmn-icon-intermediate-event-catch-timer",target:{type:"bpmn:BoundaryEvent",eventDefinitionType:"bpmn:TimerEventDefinition",cancelActivity:!0}},{label:"Escalation boundary event",actionName:"replace-with-escalation-boundary",className:"bpmn-icon-intermediate-event-catch-escalation",target:{type:"bpmn:BoundaryEvent",eventDefinitionType:"bpmn:EscalationEventDefinition",cancelActivity:!0}},{label:"Conditional boundary event",actionName:"replace-with-conditional-boundary",className:"bpmn-icon-intermediate-event-catch-condition",target:{type:"bpmn:BoundaryEvent",eventDefinitionType:"bpmn:ConditionalEventDefinition",cancelActivity:!0}},{label:"Error boundary event",actionName:"replace-with-error-boundary",className:"bpmn-icon-intermediate-event-catch-error",target:{type:"bpmn:BoundaryEvent",eventDefinitionType:"bpmn:ErrorEventDefinition",cancelActivity:!0}},{label:"Cancel boundary event",actionName:"replace-with-cancel-boundary",className:"bpmn-icon-intermediate-event-catch-cancel",target:{type:"bpmn:BoundaryEvent",eventDefinitionType:"bpmn:CancelEventDefinition",cancelActivity:!0}},{label:"Signal boundary event",actionName:"replace-with-signal-boundary",className:"bpmn-icon-intermediate-event-catch-signal",target:{type:"bpmn:BoundaryEvent",eventDefinitionType:"bpmn:SignalEventDefinition",cancelActivity:!0}},{label:"Compensation boundary event",actionName:"replace-with-compensation-boundary",className:"bpmn-icon-intermediate-event-catch-compensation",target:{type:"bpmn:BoundaryEvent",eventDefinitionType:"bpmn:CompensateEventDefinition",cancelActivity:!0}},{label:"Message boundary event (non-interrupting)",actionName:"replace-with-non-interrupting-message-boundary",className:"bpmn-icon-intermediate-event-catch-non-interrupting-message",target:{type:"bpmn:BoundaryEvent",eventDefinitionType:"bpmn:MessageEventDefinition",cancelActivity:!1}},{label:"Timer boundary event (non-interrupting)",actionName:"replace-with-non-interrupting-timer-boundary",className:"bpmn-icon-intermediate-event-catch-non-interrupting-timer",target:{type:"bpmn:BoundaryEvent",eventDefinitionType:"bpmn:TimerEventDefinition",cancelActivity:!1}},{label:"Escalation boundary event (non-interrupting)",actionName:"replace-with-non-interrupting-escalation-boundary",className:"bpmn-icon-intermediate-event-catch-non-interrupting-escalation",target:{type:"bpmn:BoundaryEvent",eventDefinitionType:"bpmn:EscalationEventDefinition",cancelActivity:!1}},{label:"Conditional boundary event (non-interrupting)",actionName:"replace-with-non-interrupting-conditional-boundary",className:"bpmn-icon-intermediate-event-catch-non-interrupting-condition",target:{type:"bpmn:BoundaryEvent",eventDefinitionType:"bpmn:ConditionalEventDefinition",cancelActivity:!1}},{label:"Signal boundary event (non-interrupting)",actionName:"replace-with-non-interrupting-signal-boundary",className:"bpmn-icon-intermediate-event-catch-non-interrupting-signal",target:{type:"bpmn:BoundaryEvent",eventDefinitionType:"bpmn:SignalEventDefinition",cancelActivity:!1}}],qw=[{label:"Message start event",actionName:"replace-with-message-start",className:"bpmn-icon-start-event-message",target:{type:"bpmn:StartEvent",eventDefinitionType:"bpmn:MessageEventDefinition",isInterrupting:!0}},{label:"Timer start event",actionName:"replace-with-timer-start",className:"bpmn-icon-start-event-timer",target:{type:"bpmn:StartEvent",eventDefinitionType:"bpmn:TimerEventDefinition",isInterrupting:!0}},{label:"Conditional start event",actionName:"replace-with-conditional-start",className:"bpmn-icon-start-event-condition",target:{type:"bpmn:StartEvent",eventDefinitionType:"bpmn:ConditionalEventDefinition",isInterrupting:!0}},{label:"Signal start event",actionName:"replace-with-signal-start",className:"bpmn-icon-start-event-signal",target:{type:"bpmn:StartEvent",eventDefinitionType:"bpmn:SignalEventDefinition",isInterrupting:!0}},{label:"Error start event",actionName:"replace-with-error-start",className:"bpmn-icon-start-event-error",target:{type:"bpmn:StartEvent",eventDefinitionType:"bpmn:ErrorEventDefinition",isInterrupting:!0}},{label:"Escalation start event",actionName:"replace-with-escalation-start",className:"bpmn-icon-start-event-escalation",target:{type:"bpmn:StartEvent",eventDefinitionType:"bpmn:EscalationEventDefinition",isInterrupting:!0}},{label:"Compensation start event",actionName:"replace-with-compensation-start",className:"bpmn-icon-start-event-compensation",target:{type:"bpmn:StartEvent",eventDefinitionType:"bpmn:CompensateEventDefinition",isInterrupting:!0}},{label:"Message start event (non-interrupting)",actionName:"replace-with-non-interrupting-message-start",className:"bpmn-icon-start-event-non-interrupting-message",target:{type:"bpmn:StartEvent",eventDefinitionType:"bpmn:MessageEventDefinition",isInterrupting:!1}},{label:"Timer start event (non-interrupting)",actionName:"replace-with-non-interrupting-timer-start",className:"bpmn-icon-start-event-non-interrupting-timer",target:{type:"bpmn:StartEvent",eventDefinitionType:"bpmn:TimerEventDefinition",isInterrupting:!1}},{label:"Conditional start event (non-interrupting)",actionName:"replace-with-non-interrupting-conditional-start",className:"bpmn-icon-start-event-non-interrupting-condition",target:{type:"bpmn:StartEvent",eventDefinitionType:"bpmn:ConditionalEventDefinition",isInterrupting:!1}},{label:"Signal start event (non-interrupting)",actionName:"replace-with-non-interrupting-signal-start",className:"bpmn-icon-start-event-non-interrupting-signal",target:{type:"bpmn:StartEvent",eventDefinitionType:"bpmn:SignalEventDefinition",isInterrupting:!1}},{label:"Escalation start event (non-interrupting)",actionName:"replace-with-non-interrupting-escalation-start",className:"bpmn-icon-start-event-non-interrupting-escalation",target:{type:"bpmn:StartEvent",eventDefinitionType:"bpmn:EscalationEventDefinition",isInterrupting:!1}}],Hw=[{label:"Sequence flow",actionName:"replace-with-sequence-flow",className:"bpmn-icon-connection"},{label:"Default flow",actionName:"replace-with-default-flow",className:"bpmn-icon-default-flow"},{label:"Conditional flow",actionName:"replace-with-conditional-flow",className:"bpmn-icon-conditional-flow"}],Vw=[{label:"Expanded pool/participant",actionName:"replace-with-expanded-pool",className:"bpmn-icon-participant",target:{type:"bpmn:Participant",isExpanded:!0}},{label:function(e){var t="Empty pool/participant";return e.children&&e.children.length&&(t+=" (removes content)"),t},actionName:"replace-with-collapsed-pool",className:"bpmn-icon-lane",target:{type:"bpmn:Participant",isExpanded:!1}}];const Ww='\n \n \n \n \n ',Gw='\n \n \n \n \n \n ';function Qw(e,t,n,i,o,r,s,a){this._bpmnFactory=e,this._popupMenu=t,this._modeling=n,this._moddle=i,this._bpmnReplace=o,this._rules=r,this._translate=s,this._moddleCopy=a,this._register()}Qw.$inject=["bpmnFactory","popupMenu","modeling","moddle","bpmnReplace","rules","translate","moddleCopy"],Qw.prototype._register=function(){this._popupMenu.registerProvider("bpmn-replace",this)},Qw.prototype.getPopupMenuEntries=function(e){var t=e.businessObject,n=this._rules,i=[];if(L(e)||!n.allowed("shape.replace",{element:e}))return{};var o=Mw(e);return de(t,"bpmn:DataObjectReference")?this._createEntries(e,Fw):de(t,"bpmn:DataStoreReference")&&!de(e.parent,"bpmn:Collaboration")?this._createEntries(e,$w):de(t,"bpmn:StartEvent")&&!de(t.$parent,"bpmn:SubProcess")?(i=H(Aw,o),this._createEntries(e,i)):de(t,"bpmn:Participant")?(i=H(Vw,(function(t){return ul(e)!==t.target.isExpanded})),this._createEntries(e,i)):de(t,"bpmn:StartEvent")&&fl(t.$parent)?(i=H(qw,(function(e){var n=!1!==e.target.isInterrupting,i=t.isInterrupting===n;return o(e)||!o(e)&&!i})),this._createEntries(e,i)):de(t,"bpmn:StartEvent")&&!fl(t.$parent)&&de(t.$parent,"bpmn:SubProcess")?(i=H(Tw,o),this._createEntries(e,i)):de(t,"bpmn:EndEvent")?(i=H(Rw,(function(e){return!("bpmn:CancelEventDefinition"==e.target.eventDefinitionType&&!de(t.$parent,"bpmn:Transaction"))&&o(e)})),this._createEntries(e,i)):de(t,"bpmn:BoundaryEvent")?(i=H(jw,(function(e){var n=e.target;if("bpmn:CancelEventDefinition"==n.eventDefinitionType&&!de(t.attachedToRef,"bpmn:Transaction"))return!1;var i=!1!==n.cancelActivity,r=t.cancelActivity==i;return o(e)||!o(e)&&!r})),this._createEntries(e,i)):de(t,"bpmn:IntermediateCatchEvent")||de(t,"bpmn:IntermediateThrowEvent")?(i=H(Bw,o),this._createEntries(e,i)):de(t,"bpmn:Gateway")?(i=H(Dw,o),this._createEntries(e,i)):de(t,"bpmn:Transaction")?(i=H(Nw,o),this._createEntries(e,i)):fl(t)&&ul(e)?(i=H(zw,o),this._createEntries(e,i)):de(t,"bpmn:SubProcess")&&ul(e)?(i=H(Lw,o),this._createEntries(e,i)):de(t,"bpmn:AdHocSubProcess")&&!ul(e)?(i=H(Iw,(function(e){var t=e.target,n="bpmn:SubProcess"===t.type,i=!0===t.isExpanded;return Mw(t)&&(!n||i)})),this._createEntries(e,i)):de(t,"bpmn:SequenceFlow")?this._createSequenceFlowEntries(e,Hw):de(t,"bpmn:FlowNode")?(i=H(Iw,o),de(t,"bpmn:SubProcess")&&!ul(e)&&(i=H(i,(function(e){return"Sub-process (collapsed)"!==e.label}))),this._createEntries(e,i)):{}},Qw.prototype.getPopupMenuHeaderEntries=function(e){var t={};return de(e,"bpmn:Activity")&&!fl(e)&&(t={...t,...this._getLoopCharacteristicsHeaderEntries(e)}),de(e,"bpmn:DataObjectReference")&&(t={...t,...this._getCollectionHeaderEntries(e)}),de(e,"bpmn:Participant")&&(t={...t,...this._getParticipantMultiplicityHeaderEntries(e)}),!de(e,"bpmn:SubProcess")||de(e,"bpmn:Transaction")||fl(e)||(t={...t,...this._getAdHocHeaderEntries(e)}),$m(e)&&(t={...t,...this._getNonInterruptingHeaderEntries(e)}),t},Qw.prototype._createEntries=function(e,t){var n={},i=this;return V(t,(function(t){n[t.actionName]=i._createEntry(t,e)})),n},Qw.prototype._createSequenceFlowEntries=function(e,t){var n=me(e),i={},o=this._modeling,r=this._moddle,s=this;return V(t,(function(t){switch(t.actionName){case"replace-with-default-flow":n.sourceRef.default!==n&&(de(n.sourceRef,"bpmn:ExclusiveGateway")||de(n.sourceRef,"bpmn:InclusiveGateway")||de(n.sourceRef,"bpmn:ComplexGateway")||de(n.sourceRef,"bpmn:Activity"))&&(i={...i,[t.actionName]:s._createEntry(t,e,(function(){o.updateProperties(e.source,{default:n})}))});break;case"replace-with-conditional-flow":!n.conditionExpression&&de(n.sourceRef,"bpmn:Activity")&&(i={...i,[t.actionName]:s._createEntry(t,e,(function(){var t=r.create("bpmn:FormalExpression",{body:""});o.updateProperties(e,{conditionExpression:t})}))});break;default:de(n.sourceRef,"bpmn:Activity")&&n.conditionExpression&&(i={...i,[t.actionName]:s._createEntry(t,e,(function(){o.updateProperties(e,{conditionExpression:void 0})}))}),(de(n.sourceRef,"bpmn:ExclusiveGateway")||de(n.sourceRef,"bpmn:InclusiveGateway")||de(n.sourceRef,"bpmn:ComplexGateway")||de(n.sourceRef,"bpmn:Activity"))&&n.sourceRef.default===n&&(i={...i,[t.actionName]:s._createEntry(t,e,(function(){o.updateProperties(e.source,{default:void 0})}))})}})),i},Qw.prototype._createEntry=function(e,t,n){var i=this._translate,o=this._bpmnReplace.replaceElement,r=e.label;return r&&"function"==typeof r&&(r=r(t)),n=n||function(){return o(t,e.target)},{label:i(r),className:e.className,action:n}},Qw.prototype._getLoopCharacteristicsHeaderEntries=function(e){var t=this,n=this._translate;function i(n,i){if(i.active)return void t._modeling.updateProperties(e,{loopCharacteristics:void 0});const o=e.businessObject.get("loopCharacteristics"),r=t._moddle.create(i.options.loopCharacteristics);o&&t._moddleCopy.copyElement(o,r),r.set("isSequential",i.options.isSequential),t._modeling.updateProperties(e,{loopCharacteristics:r})}var o,r,s,a=me(e).loopCharacteristics;return a&&(o=a.isSequential,r=void 0===a.isSequential,s=void 0!==a.isSequential&&!a.isSequential),{"toggle-parallel-mi":{className:"bpmn-icon-parallel-mi-marker",title:n("Parallel multi-instance"),active:s,action:i,options:{loopCharacteristics:"bpmn:MultiInstanceLoopCharacteristics",isSequential:!1}},"toggle-sequential-mi":{className:"bpmn-icon-sequential-mi-marker",title:n("Sequential multi-instance"),active:o,action:i,options:{loopCharacteristics:"bpmn:MultiInstanceLoopCharacteristics",isSequential:!0}},"toggle-loop":{className:"bpmn-icon-loop-marker",title:n("Loop"),active:r,action:i,options:{loopCharacteristics:"bpmn:StandardLoopCharacteristics"}}}},Qw.prototype._getCollectionHeaderEntries=function(e){var t=this,n=this._translate,i=e.businessObject.dataObjectRef;if(!i)return{};var o=i.isCollection;return{"toggle-is-collection":{className:"bpmn-icon-parallel-mi-marker",title:n("Collection"),active:o,action:function(n,o){t._modeling.updateModdleProperties(e,i,{isCollection:!o.active})}}}},Qw.prototype._getParticipantMultiplicityHeaderEntries=function(e){var t=this,n=this._bpmnFactory,i=this._translate,o=e.businessObject.participantMultiplicity;return{"toggle-participant-multiplicity":{className:"bpmn-icon-parallel-mi-marker",title:i("Participant multiplicity"),active:!!o,action:function(i,o){var r;o.active||(r=n.create("bpmn:ParticipantMultiplicity")),t._modeling.updateProperties(e,{participantMultiplicity:r})}}}},Qw.prototype._getAdHocHeaderEntries=function(e){var t=this._translate,n=de(me(e),"bpmn:AdHocSubProcess"),i=this._bpmnReplace.replaceElement;return{"toggle-adhoc":{className:"bpmn-icon-ad-hoc-marker",title:t("Ad-hoc"),active:n,action:function(t,o){return i(e,n?{type:"bpmn:SubProcess"}:{type:"bpmn:AdHocSubProcess"},{autoResize:!1,layoutConnection:!1})}}}},Qw.prototype._getNonInterruptingHeaderEntries=function(e){const t=this._translate,n=me(e),i=this,o=jm(e),r=de(e,"bpmn:BoundaryEvent")?Gw:Ww,s=!n[o];return{"toggle-non-interrupting":{imageHtml:r,title:t("Toggle non-interrupting"),active:s,action:function(){i._modeling.updateProperties(e,{[o]:!!s})}}}};const Xw={__depends__:[gp,Vv,$p],__init__:["replaceMenuProvider"],replaceMenuProvider:["type",Qw]};function Uw(e,t,n,i,o,r,s,a,l,c,h,u,p){e=e||{},i.registerProvider(this),this._contextPad=i,this._modeling=o,this._elementFactory=r,this._connect=s,this._create=a,this._popupMenu=l,this._canvas=c,this._rules=h,this._translate=u,this._eventBus=n,this._appendPreview=p,!1!==e.autoPlace&&(this._autoPlace=t.get("autoPlace",!1)),n.on("create.end",250,(function(e){var t=e.context.shape;if(qc(e)&&i.isOpen(t)){var n=i.getEntries(t);n.replace&&n.replace.action.click(e,t)}})),n.on("contextPad.close",(function(){p.cleanUp()}))}function Yw(e,t,n){var i=e.$instanceOf(t),o=!1;return V(e.eventDefinitions||[],(function(e){e.$type===n&&(o=!0)})),i&&o}Uw.$inject=["config.contextPad","injector","eventBus","contextPad","modeling","elementFactory","connect","create","popupMenu","canvas","rules","translate","appendPreview"],Uw.prototype.getMultiElementContextPadEntries=function(e){var t=this._modeling,n={};return this._isDeleteAllowed(e)&&ce(n,{delete:{group:"edit",className:"bpmn-icon-trash",title:this._translate("Delete"),action:{click:function(e,n){t.removeElements(n.slice())}}}}),n},Uw.prototype._isDeleteAllowed=function(e){var t=this._rules.allowed("elements.delete",{elements:e});return L(t)?Q(e,(e=>t.includes(e))):t},Uw.prototype.getContextPadEntries=function(e){var t=this._contextPad,n=this._modeling,i=this._elementFactory,o=this._connect,r=this._create,s=this._popupMenu,a=this._autoPlace,l=this._translate,c=this._appendPreview,h={};if("label"===e.type)return this._isDeleteAllowed([e])&&ce(h,f()),h;var u=e.businessObject;function p(e,t){o.start(e,t)}function d(e,t){n.removeElements([t])}function f(){return{delete:{group:"edit",className:"bpmn-icon-trash",title:l("Delete"),action:{click:d}}}}function m(e,t,n,o){function s(t,n){var s=i.createShape(ce({type:e},o));r.start(t,s,{source:n})}var l=a?function(t,n){var r=i.createShape(ce({type:e},o));a.append(n,r)}:s,h=a?function(t,n){return c.create(n,e,o),()=>{c.cleanUp()}}:null;return{group:"model",className:t,title:n,action:{dragstart:s,click:l,hover:h}}}function g(e){return function(i,o){n.splitLane(o,e),t.open(o,!0)}}if(fe(u,["bpmn:Lane","bpmn:Participant"])&&ul(e)){var v=Xf(e);ce(h,{"lane-insert-above":{group:"lane-insert-above",className:"bpmn-icon-lane-insert-above",title:l("Add lane above"),action:{click:function(e,t){n.addLane(t,"top")}}}}),v.length<2&&((pl(e)?e.height>=120:e.width>=120)&&ce(h,{"lane-divide-two":{group:"lane-divide",className:"bpmn-icon-lane-divide-two",title:l("Divide into two lanes"),action:{click:g(2)}}}),(pl(e)?e.height>=180:e.width>=180)&&ce(h,{"lane-divide-three":{group:"lane-divide",className:"bpmn-icon-lane-divide-three",title:l("Divide into three lanes"),action:{click:g(3)}}})),ce(h,{"lane-insert-below":{group:"lane-insert-below",className:"bpmn-icon-lane-insert-below",title:l("Add lane below"),action:{click:function(e,t){n.addLane(t,"bottom")}}}})}return de(u,"bpmn:FlowNode")&&(de(u,"bpmn:EventBasedGateway")?ce(h,{"append.receive-task":m("bpmn:ReceiveTask","bpmn-icon-receive-task",l("Append receive task")),"append.message-intermediate-event":m("bpmn:IntermediateCatchEvent","bpmn-icon-intermediate-event-catch-message",l("Append message intermediate catch event"),{eventDefinitionType:"bpmn:MessageEventDefinition"}),"append.timer-intermediate-event":m("bpmn:IntermediateCatchEvent","bpmn-icon-intermediate-event-catch-timer",l("Append timer intermediate catch event"),{eventDefinitionType:"bpmn:TimerEventDefinition"}),"append.condition-intermediate-event":m("bpmn:IntermediateCatchEvent","bpmn-icon-intermediate-event-catch-condition",l("Append conditional intermediate catch event"),{eventDefinitionType:"bpmn:ConditionalEventDefinition"}),"append.signal-intermediate-event":m("bpmn:IntermediateCatchEvent","bpmn-icon-intermediate-event-catch-signal",l("Append signal intermediate catch event"),{eventDefinitionType:"bpmn:SignalEventDefinition"})}):Yw(u,"bpmn:BoundaryEvent","bpmn:CompensateEventDefinition")?ce(h,{"append.compensation-activity":m("bpmn:Task","bpmn-icon-task",l("Append compensation activity"),{isForCompensation:!0})}):de(u,"bpmn:EndEvent")||u.isForCompensation||Yw(u,"bpmn:IntermediateThrowEvent","bpmn:LinkEventDefinition")||fl(u)||ce(h,{"append.end-event":m("bpmn:EndEvent","bpmn-icon-end-event-none",l("Append end event")),"append.gateway":m("bpmn:ExclusiveGateway","bpmn-icon-gateway-none",l("Append gateway")),"append.append-task":m("bpmn:Task","bpmn-icon-task",l("Append task")),"append.intermediate-event":m("bpmn:IntermediateThrowEvent","bpmn-icon-intermediate-event-none",l("Append intermediate/boundary event"))})),s.isEmpty(e,"bpmn-replace")||ce(h,{replace:{group:"edit",className:"bpmn-icon-screw-wrench",title:l("Change element"),action:{click:function(e,n){var i=ce(function(e){var n=t.getPad(e).html.getBoundingClientRect();return{x:n.left,y:n.bottom+5}}(n),{cursor:{x:e.x,y:e.y}});s.open(n,"bpmn-replace",i,{title:l("Change element"),width:300,search:!0})}}}}),de(u,"bpmn:SequenceFlow")&&ce(h,{"append.text-annotation":m("bpmn:TextAnnotation","bpmn-icon-text-annotation",l("Add text annotation"))}),fe(u,["bpmn:FlowNode","bpmn:InteractionNode","bpmn:DataObjectReference","bpmn:DataStoreReference"])&&ce(h,{"append.text-annotation":m("bpmn:TextAnnotation","bpmn-icon-text-annotation",l("Add text annotation")),connect:{group:"connect",className:"bpmn-icon-connection-multi",title:l("Connect to other element"),action:{click:p,dragstart:p}}}),de(u,"bpmn:TextAnnotation")&&ce(h,{connect:{group:"connect",className:"bpmn-icon-connection-multi",title:l("Connect using association"),action:{click:p,dragstart:p}}}),fe(u,["bpmn:DataObjectReference","bpmn:DataStoreReference"])&&ce(h,{connect:{group:"connect",className:"bpmn-icon-connection-multi",title:l("Connect using data input association"),action:{click:p,dragstart:p}}}),de(u,"bpmn:Group")&&ce(h,{"append.text-annotation":m("bpmn:TextAnnotation","bpmn-icon-text-annotation",l("Add text annotation"))}),this._isDeleteAllowed([e])&&ce(h,f()),h};const Kw={__depends__:[xw,Pw,Qh,eh,nf,Ev,Xw],__init__:["contextPadProvider"],contextPadProvider:["type",Uw]};var Zw={horizontal:["x","width"],vertical:["y","height"]};function Jw(e,t){this._modeling=e,this._filters=[],this.registerFilter((function(e){var n=t.allowed("elements.distribute",{elements:e});return L(n)?n:n?e:[]}))}Jw.$inject=["modeling","rules"],Jw.prototype.registerFilter=function(e){if("function"!=typeof e)throw new Error("the filter has to be a function");this._filters.push(e)},Jw.prototype.trigger=function(e,t){var n,i,o=this._modeling;if(!(e.length<3||(this._setOrientation(t),i=this._filterElements(e),(n=this._createGroups(i)).length<=2)))return o.distributeElements(n,this._axis,this._dimension),n},Jw.prototype._filterElements=function(e){var t=this._filters,n=this._axis,i=this._dimension,o=[].concat(e);return t.length?(V(t,(function(e){o=e(o,n,i)})),o):e},Jw.prototype._createGroups=function(e){var t=[],n=this,i=this._axis,o=this._dimension;if(!i)throw new Error('must have a defined "axis" and "dimension"');return V(te(e,i),(function(e,r){var s,a=n._findRange(e,i,o),l=t[t.length-1];l&&n._hasIntersection(l.range,a)?t[t.length-1].elements.push(e):(s={range:a,elements:[e]},t.push(s))})),t},Jw.prototype._setOrientation=function(e){var t=Zw[e];this._axis=t[0],this._dimension=t[1]},Jw.prototype._hasIntersection=function(e,t){return Math.max(e.min,e.max)>=Math.min(t.min,t.max)&&Math.min(e.min,e.max)<=Math.max(t.min,t.max)},Jw.prototype._findRange=function(e){var t=e[this._axis];return{min:t+5,max:t+e[this._dimension]-5}};const ex={__init__:["distributeElements"],distributeElements:["type",Jw]};function tx(e){xp.call(this,e)}tx.$inject=["eventBus"],lt(tx,xp),tx.prototype.init=function(){this.addRule("elements.distribute",(function(e){var t=e.elements;return!((t=qo(t=H(t,(function(e){var t=fe(e,["bpmn:Association","bpmn:BoundaryEvent","bpmn:DataInputAssociation","bpmn:DataOutputAssociation","bpmn:Lane","bpmn:MessageFlow","bpmn:SequenceFlow","bpmn:TextAnnotation"]);return!(e.labelTarget||t)})))).length<3)&&t}))};const nx='\n \n \n \n ',ix='\n \n \n \n ';function ox(e,t,n,i){this._distributeElements=t,this._translate=n,this._popupMenu=e,this._rules=i,e.registerProvider("align-elements",900,this)}ox.$inject=["popupMenu","distributeElements","translate","rules"],ox.prototype.getPopupMenuEntries=function(e){var t={};return this._isAllowed(e)&&ce(t,this._getEntries(e)),t},ox.prototype._isAllowed=function(e){return this._rules.allowed("elements.distribute",{elements:e})},ox.prototype._getEntries=function(e){var t=this._distributeElements,n=this._translate,i=this._popupMenu;return{"distribute-elements-horizontal":{group:"distribute",title:n("Distribute elements horizontally"),className:"bjs-align-elements-menu-entry",imageHtml:nx,action:function(n,o){t.trigger(e,"horizontal"),i.close()}},"distribute-elements-vertical":{group:"distribute",title:n("Distribute elements vertically"),imageHtml:ix,action:function(n,o){t.trigger(e,"vertical"),i.close()}}}};const rx={__depends__:[gp,ex],__init__:["bpmnDistributeElements","distributeElementsMenuProvider"],bpmnDistributeElements:["type",tx],distributeElementsMenuProvider:["type",ox]};var sx="is not a registered action";function ax(e,t){this._actions={};var n=this;e.on("diagram.init",(function(){n._registerDefaultActions(t),e.fire("editorActions.init",{editorActions:n})}))}function lx(e,t){return new Error(e+" "+t)}ax.$inject=["eventBus","injector"],ax.prototype._registerDefaultActions=function(e){var t=e.get("commandStack",!1),n=e.get("modeling",!1),i=e.get("selection",!1),o=e.get("zoomScroll",!1),r=e.get("copyPaste",!1),s=e.get("canvas",!1),a=e.get("rules",!1),l=e.get("keyboardMove",!1),c=e.get("keyboardMoveSelection",!1);t&&(this.register("undo",(function(){t.undo()})),this.register("redo",(function(){t.redo()}))),r&&i&&this.register("copy",(function(){var e=i.get();if(e.length)return r.copy(e)})),r&&this.register("paste",(function(){r.paste()})),o&&this.register("stepZoom",(function(e){o.stepZoom(e.value)})),s&&this.register("zoom",(function(e){s.zoom(e.value)})),n&&i&&a&&this.register("removeSelection",(function(){var e=i.get();if(e.length){var t,o=a.allowed("elements.delete",{elements:e});!1!==o&&(t=L(o)?o:e).length&&n.removeElements(t.slice())}})),l&&this.register("moveCanvas",(function(e){l.moveCanvas(e)})),c&&this.register("moveSelection",(function(e){c.moveSelection(e.direction,e.accelerated)}))},ax.prototype.trigger=function(e,t){if(!this._actions[e])throw lx(e,sx);return this._actions[e](t)},ax.prototype.register=function(e,t){var n=this;if("string"==typeof e)return this._registerAction(e,t);V(e,(function(e,t){n._registerAction(t,e)}))},ax.prototype._registerAction=function(e,t){if(this.isRegistered(e))throw lx(e,"is already registered");this._actions[e]=t},ax.prototype.unregister=function(e){if(!this.isRegistered(e))throw lx(e,sx);this._actions[e]=void 0},ax.prototype.getActions=function(){return Object.keys(this._actions)},ax.prototype.isRegistered=function(e){return!!this._actions[e]};const cx={__init__:["editorActions"],editorActions:["type",ax]};function hx(e){e.invoke(ax,this)}lt(hx,ax),hx.$inject=["injector"],hx.prototype._registerDefaultActions=function(e){ax.prototype._registerDefaultActions.call(this,e);var t=e.get("canvas",!1),n=e.get("elementRegistry",!1),i=e.get("selection",!1),o=e.get("spaceTool",!1),r=e.get("lassoTool",!1),s=e.get("handTool",!1),a=e.get("globalConnect",!1),l=e.get("distributeElements",!1),c=e.get("alignElements",!1),h=e.get("directEditing",!1),u=e.get("searchPad",!1),p=e.get("modeling",!1),d=e.get("contextPad",!1);t&&n&&i&&this._registerAction("selectElements",(function(){var e=t.getRootElement(),o=n.filter((function(t){return t!==e}));return i.select(o),o})),o&&this._registerAction("spaceTool",(function(){o.toggle()})),r&&this._registerAction("lassoTool",(function(){r.toggle()})),s&&this._registerAction("handTool",(function(){s.toggle()})),a&&this._registerAction("globalConnectTool",(function(){a.toggle()})),i&&l&&this._registerAction("distributeElements",(function(e){var t=i.get(),n=e.type;t.length&&l.trigger(t,n)})),i&&c&&this._registerAction("alignElements",(function(e){var t=i.get(),n=[],o=e.type;t.length&&(n=H(t,(function(e){return!de(e,"bpmn:Lane")})),c.trigger(n,o))})),i&&p&&this._registerAction("setColor",(function(e){var t=i.get();t.length&&p.setColor(t,e)})),i&&h&&this._registerAction("directEditing",(function(){var e=i.get();e.length&&h.activate(e[0])})),u&&this._registerAction("find",(function(){u.toggle()})),t&&p&&this._registerAction("moveToOrigin",(function(){var e,i,o=t.getRootElement();e=Qo(i=de(o,"bpmn:Collaboration")?n.filter((function(e){return de(e.parent,"bpmn:Collaboration")})):n.filter((function(e){return e!==o&&!de(e.parent,"bpmn:SubProcess")}))),p.moveElements(i,{x:-e.x,y:-e.y},o)})),i&&d&&this._registerAction("replaceElement",(function(e){d.triggerEntry("replace","click",e)}))};const ux={__depends__:[cx],editorActions:["type",hx]};function px(e){e.on(["create.init","shape.move.init"],(function(e){var t=e.context;fe(e.shape,["bpmn:Participant","bpmn:SubProcess","bpmn:TextAnnotation"])&&(t.gridSnappingContext||(t.gridSnappingContext={}),t.gridSnappingContext.snapLocation="top-left")}))}function dx(e,t,n){return n||(n="round"),Math[n](e/t)*t}function fx(e,t,n){var i=!n||!1!==n.active;this._eventBus=t;var o=this;t.on("diagram.init",800,(function(){o.setActive(i)})),t.on(["create.move","create.end","bendpoint.move.move","bendpoint.move.end","connect.move","connect.end","connectionSegment.move.move","connectionSegment.move.end","resize.move","resize.end","shape.move.move","shape.move.end"],1200,(function(t){var n=t.originalEvent;if(!(!o.active||n&&sh(n))){var i=t.context,r=i.gridSnappingContext;r||(r=i.gridSnappingContext={}),["x","y"].forEach((function(n){var i={},r=function(e,t,n){var i=e.context,o=e.shape,r=i.gridSnappingContext,s=r.snapLocation,a=r.snapOffset;return a&&z(a[t])?a[t]:(a||(a=r.snapOffset={}),z(a[t])||(a[t]=0),o?(n.get(o.id)||(mx(t)?a[t]+=o[t]+o.width/2:a[t]+=o[t]+o.height/2),s?("x"===t?/left/.test(s)?a[t]-=o.width/2:/right/.test(s)&&(a[t]+=o.width/2):/top/.test(s)?a[t]-=o.height/2:/bottom/.test(s)&&(a[t]+=o.height/2),a[t]):a[t]):a[t])}(t,n,e);r&&(i.offset=r);var s=function(e,t){var n=e.context,i=n.createConstraints,o=n.resizeConstraints||{},r=n.gridSnappingContext,s=r.snapConstraints;if(s&&s[t])return s[t];s||(s=r.snapConstraints={}),s[t]||(s[t]={});var a=n.direction;i&&(mx(t)?(s.x.min=i.left,s.x.max=i.right):(s.y.min=i.top,s.y.max=i.bottom));var l=o.min,c=o.max;return l&&(mx(t)?vx(a)?s.x.max=l.left:s.x.min=l.right:gx(a)?s.y.max=l.top:s.y.min=l.bottom),c&&(mx(t)?vx(a)?s.x.min=c.left:s.x.max=c.right:gx(a)?s.y.min=c.top:s.y.max=c.bottom),s[t]}(t,n);s&&ce(i,s),Vd(t,n)||o.snapEvent(t,n,i)}))}}))}function mx(e){return"x"===e}function gx(e){return-1!==e.indexOf("n")}function vx(e){return-1!==e.indexOf("w")}function yx(e,t){cc.call(this,e),this._gridSnapping=t;var n=this;this.preExecute("shape.resize",(function(e){var t=e.context,i=(t.hints||{}).autoResize;if(i){var o=t.shape,r=t.newBounds;F(i)?t.newBounds=n.snapComplex(r,i):t.newBounds=n.snapSimple(o,r)}}))}function bx(e,t){e.on(["spaceTool.move","spaceTool.end"],2e3,(function(e){var n,i=e.context;i.initialized&&("x"===i.axis?(n=t.snapValue(e.dx),e.x=e.x+n-e.dx,e.dx=n):(n=t.snapValue(e.dy),e.y=e.y+n-e.dy,e.dy=n))}))}px.$inject=["eventBus"],fx.prototype.snapEvent=function(e,t,n){Wd(e,t,this.snapValue(e[t],n))},fx.prototype.getGridSpacing=function(){return 10},fx.prototype.snapValue=function(e,t){var n,i,o=0;return t&&t.offset&&(o=t.offset),e=dx(e+=o,10),t&&t.min&&z(n=t.min)&&(n=dx(n+o,10,"ceil"),e=Math.max(e,n)),t&&t.max&&z(i=t.max)&&(i=dx(i+o,10,"floor"),e=Math.min(e,i)),e-o},fx.prototype.isActive=function(){return this.active},fx.prototype.setActive=function(e){this.active=e,this._eventBus.fire("gridSnapping.toggle",{active:e})},fx.prototype.toggleActive=function(){this.setActive(!this.active)},fx.$inject=["elementRegistry","eventBus","config.gridSnapping"],yx.$inject=["eventBus","gridSnapping","modeling"],lt(yx,cc),yx.prototype.snapSimple=function(e,t){var n=this._gridSnapping;return t.width=n.snapValue(t.width,{min:t.width}),t.height=n.snapValue(t.height,{min:t.height}),t.x=e.x+e.width/2-t.width/2,t.y=e.y+e.height/2-t.height/2,t},yx.prototype.snapComplex=function(e,t){return/w|e/.test(t)&&(e=this.snapHorizontally(e,t)),/n|s/.test(t)&&(e=this.snapVertically(e,t)),e},yx.prototype.snapHorizontally=function(e,t){var n=this._gridSnapping,i=/w/.test(t),o=/e/.test(t),r={};return r.width=n.snapValue(e.width,{min:e.width}),o&&(i?(r.x=n.snapValue(e.x,{max:e.x}),r.width+=n.snapValue(e.x-r.x,{min:e.x-r.x})):e.x=e.x+e.width-r.width),ce(e,r),e},yx.prototype.snapVertically=function(e,t){var n=this._gridSnapping,i=/n/.test(t),o=/s/.test(t),r={};return r.height=n.snapValue(e.height,{min:e.height}),i&&(o?(r.y=n.snapValue(e.y,{max:e.y}),r.height+=n.snapValue(e.y-r.y,{min:e.y-r.y})):e.y=e.y+e.height-r.height),ce(e,r),e},bx.$inject=["eventBus","gridSnapping"];const wx={__depends__:[{__init__:["gridSnappingResizeBehavior","gridSnappingSpaceToolBehavior"],gridSnappingResizeBehavior:["type",yx],gridSnappingSpaceToolBehavior:["type",bx]}],__init__:["gridSnapping"],gridSnapping:["type",fx]};function xx(e,t){e.on("autoPlace",2e3,(function(e){var n=e.source,i=Qr(n),o=e.shape,r=zp(n,o);return["x","y"].forEach((function(e){var n={};r[e]!==i[e]&&(r[e]>i[e]?n.min=r[e]:n.max=r[e],de(o,"bpmn:TextAnnotation")&&(function(e){return"x"===e}(e)?n.offset=-o.width/2:n.offset=-o.height/2),r[e]=t.snapValue(r[e],n))})),r}))}function _x(e,t,n){t.on(["create.start","shape.move.start"],1750,(function(t){var i=t.context,o=i.shape,r=e.getRootElement();de(o,"bpmn:Participant")&&de(r,"bpmn:Process")&&r.children.length&&i.createConstraints&&(o.width=n.snapValue(o.width,{min:o.width}),o.height=n.snapValue(o.height,{min:o.height}))}))}function Ex(e,t,n){cc.call(this,e),this._gridSnapping=t;var i=this;this.postExecuted(["connection.create","connection.layout"],3e3,(function(e){var t=e.context,o=t.connection,r=t.hints||{},s=o.waypoints;r.connectionStart||r.connectionEnd||!1===r.createElementsBehavior||function(e){return e.length>3}(s)&&n.updateWaypoints(o,i.snapMiddleSegments(s))}))}function kx(e,t,n){var i=rr(t,n),o={};return function(e){return"h"===e}(i)&&(o.y=e.snapValue(t.y)),function(e){return"v"===e}(i)&&(o.x=e.snapValue(t.x)),("x"in o||"y"in o)&&(t=ce({},t,o),n=ce({},n,o)),[t,n]}xx.$inject=["eventBus","gridSnapping"],_x.$inject=["canvas","eventBus","gridSnapping"],Ex.$inject=["eventBus","gridSnapping","modeling"],lt(Ex,cc),Ex.prototype.snapMiddleSegments=function(e){var t,n=this._gridSnapping;e=e.slice();for(var i=1;i5&&ln(s,{x:r.x,width:r.width}),r.height>5&&ln(s,{y:r.y,height:r.height}),i.canExecute?hn(s).remove(qx):hn(s).add(qx)})),e.on("resize.cleanup",(function(e){var n,i;i=(n=e.context).shape,n.frame&&Pn(n.frame),t.removeMarker(i,jx)}))}Hx.$inject=["eventBus","canvas","previewSupport"];var Vx="djs-resizer",Wx=["n","w","s","e","nw","ne","se","sw"];function Gx(e,t,n,i){this._resize=i,this._canvas=t;var o=this;e.on("selection.changed",(function(e){var t=e.newSelection;o.removeResizers(),1===t.length&&V(t,le(o.addResizer,o))})),e.on("shape.changed",(function(e){var t=e.element;n.isSelected(t)&&(o.removeResizers(),o.addResizer(t))}))}Gx.prototype.makeDraggable=function(e,t,n){var i=this._resize;function o(t){jc(t)&&i.activate(t,e,n)}Gt.bind(t,"mousedown",o),Gt.bind(t,"touchstart",o)},Gx.prototype._createResizer=function(e,t,n,i){var o=this._getResizersParent(),r=function(e){var t={x:0,y:0};return-1!==e.indexOf("e")?t.x=6:-1!==e.indexOf("w")&&(t.x=-6),-1!==e.indexOf("s")?t.y=6:-1!==e.indexOf("n")&&(t.y=-6),t}(i),s=vn("g");hn(s).add(Vx),hn(s).add(Vx+"-"+e.id),hn(s).add(Vx+"-"+i),on(o,s);var a=vn("rect");ln(a,{x:-4+r.x,y:-4+r.y,width:8,height:8}),hn(a).add(Vx+"-visual"),on(s,a);var l=vn("rect");return ln(l,{x:-10+r.x,y:-10+r.y,width:20,height:20}),hn(l).add(Vx+"-hit"),on(s,l),Es(s,t,n),s},Gx.prototype.createResizer=function(e,t){var n=Fx(e,t),i=this._createResizer(e,n.x,n.y,t);this.makeDraggable(e,i,t)},Gx.prototype.addResizer=function(e){var t=this;!jr(e)&&this._resize.canResize({shape:e})&&V(Wx,(function(n){t.createResizer(e,n)}))},Gx.prototype.removeResizers=function(){pn(this._getResizersParent())},Gx.prototype._getResizersParent=function(){return this._canvas.getLayer("resizers")},Gx.$inject=["eventBus","canvas","selection","resize"];const Qx={__depends__:[nd,Zp,hf],__init__:["resize","resizePreview","resizeHandles"],resize:["type",Ix],resizePreview:["type",Hx],resizeHandles:["type",Gx]};function Xx(e,t,n,i,o,r,s){function a(e,t){(t||fe(e,["bpmn:Task","bpmn:TextAnnotation","bpmn:Participant"])||Ux(e))&&i.activate(e)}this._bpmnFactory=t,this._canvas=n,this._modeling=o,this._textRenderer=s,i.registerProvider(this),e.on("element.dblclick",(function(e){a(e.element,!0)})),e.on(["autoPlace.start","canvas.viewbox.changing","drag.init","element.mousedown","popupMenu.open","root.set","selection.changed"],(function(){i.isActive()&&i.complete()})),e.on(["shape.remove","connection.remove"],2e3,(function(e){i.isActive(e.element)&&i.cancel()})),e.on(["commandStack.changed"],(function(e){i.isActive()&&i.cancel()})),e.on("directEditing.activate",(function(e){r.removeResizers()})),e.on("create.end",500,(function(e){var t=e.context,n=t.shape,i=e.context.canExecute;e.isTouch||i&&(t.hints&&!1===t.hints.createElementsBehavior||a(n))})),e.on("autoPlace.end",500,(function(e){a(e.shape)}))}function Ux(e){return de(e,"bpmn:SubProcess")&&!ul(e)}Xx.$inject=["eventBus","bpmnFactory","canvas","directEditing","modeling","resizeHandles","textRenderer"],Xx.prototype.activate=function(e){var t=_l(e);if(void 0!==t){var n={text:t};ce(n,this.getEditingBBox(e));var i={},o=n.style||{};return ce(o,{backgroundColor:null,border:null}),(fe(e,["bpmn:Task","bpmn:Participant","bpmn:Lane","bpmn:CallActivity"])||Ux(e))&&ce(i,{centerVertically:!0}),yl(e)&&(ce(i,{autoResize:!0}),ce(o,{backgroundColor:"#ffffff",border:"1px solid #ccc"})),de(e,"bpmn:TextAnnotation")&&(ce(i,{resizable:!0,autoResize:!0}),ce(o,{backgroundColor:"#ffffff",border:"1px solid #ccc"})),ce(n,{options:i,style:o}),n}},Xx.prototype.getEditingBBox=function(e){var t=this._canvas,n=e.label||e,i=t.getAbsoluteBBox(n),o=i.x+i.width/2,r=i.y+i.height/2,s={x:i.x,y:i.y},a=t.zoom(),l=this._textRenderer.getDefaultStyle(),c=this._textRenderer.getExternalStyle(),h=c.fontSize*a,u=c.lineHeight,p=l.fontSize*a,d=l.lineHeight,f={fontFamily:this._textRenderer.getDefaultStyle().fontFamily,fontWeight:this._textRenderer.getDefaultStyle().fontWeight};if(de(e,"bpmn:Lane")||function(e){return de(e,"bpmn:Participant")&&ul(e)}(e)){var m=pl(e);ce(s,m?{width:i.height,height:30*a,x:i.x-i.height/2+15*a,y:r-30*a/2}:{width:i.width,height:30*a}),ce(f,{fontSize:p+"px",lineHeight:d,paddingTop:7*a+"px",paddingBottom:7*a+"px",paddingLeft:5*a+"px",paddingRight:5*a+"px",transform:m?"rotate(-90deg)":null})}if(function(e){return de(e,"bpmn:Participant")&&!ul(e)}(e)){var g=pl(e);ce(s,g?{width:i.width,height:i.height}:{width:i.height,height:i.width,x:o-i.height/2,y:r-i.width/2}),ce(f,{fontSize:p+"px",lineHeight:d,paddingTop:7*a+"px",paddingBottom:7*a+"px",paddingLeft:5*a+"px",paddingRight:5*a+"px",transform:g?null:"rotate(-90deg)"})}(fe(e,["bpmn:Task","bpmn:CallActivity"])||Ux(e))&&(ce(s,{width:i.width,height:i.height}),ce(f,{fontSize:p+"px",lineHeight:d,paddingTop:7*a+"px",paddingBottom:7*a+"px",paddingLeft:5*a+"px",paddingRight:5*a+"px"})),function(e){return de(e,"bpmn:SubProcess")&&ul(e)}(e)&&(ce(s,{width:i.width,x:i.x}),ce(f,{fontSize:p+"px",lineHeight:d,paddingTop:7*a+"px",paddingBottom:7*a+"px",paddingLeft:5*a+"px",paddingRight:5*a+"px"}));var v=90*a,y=7*a,b=4*a;if(n.labelTarget&&(ce(s,{width:v,height:i.height+y+b,x:o-v/2,y:i.y-y}),ce(f,{fontSize:h+"px",lineHeight:u,paddingTop:y+"px",paddingBottom:b+"px"})),yl(n)&&!bl(n)&&!qr(n)){var w=wl(e),x=t.getAbsoluteBBox({x:w.x,y:w.y,width:0,height:0}),_=h+y+b;ce(s,{width:v,height:_,x:x.x-v/2,y:x.y-_/2}),ce(f,{fontSize:h+"px",lineHeight:u,paddingTop:y+"px",paddingBottom:b+"px"})}return de(e,"bpmn:TextAnnotation")&&(ce(s,{width:i.width,height:i.height,minWidth:30*a,minHeight:10*a}),ce(f,{textAlign:"left",paddingTop:5*a+"px",paddingBottom:7*a+"px",paddingLeft:7*a+"px",paddingRight:5*a+"px",fontSize:p+"px",lineHeight:d})),{bounds:s,style:f}},Xx.prototype.update=function(e,t,n,i){var o,r,s;de(e,"bpmn:TextAnnotation")&&(r=this._canvas.getAbsoluteBBox(e),o={x:e.x,y:e.y,width:e.width/r.width*i.width,height:e.height/r.height*i.height}),(s=t)&&s.trim()||(t=null),this._modeling.updateLabel(e,t,o)};var Yx="djs-element-hidden",Kx="djs-label-hidden";function Zx(e,t,n){var i,o,r,s=this,a=t.getDefaultLayer();e.on("directEditing.activate",(function(e){var l=e.active;if(de(i=l.element.label||l.element,"bpmn:TextAnnotation")){o=t.getAbsoluteBBox(i),r=vn("g");var c=n.getScaledPath("TEXT_ANNOTATION",{xScaleFactor:1,yScaleFactor:1,containerWidth:i.width,containerHeight:i.height,position:{mx:0,my:0}}),h=s.path=vn("path");ln(h,{d:c,strokeWidth:2,stroke:Jx(i)}),on(r,h),on(a,r),ks(r,i.x,i.y)}de(i,"bpmn:TextAnnotation")||i.labelTarget?t.addMarker(i,Yx):(de(i,"bpmn:Task")||de(i,"bpmn:CallActivity")||de(i,"bpmn:SubProcess")||de(i,"bpmn:Participant"))&&t.addMarker(i,Kx)})),e.on("directEditing.resize",(function(e){if(de(i,"bpmn:TextAnnotation")){var t=e.height,r=e.dy,a=Math.max(i.height/o.height*(t+r),0),l=n.getScaledPath("TEXT_ANNOTATION",{xScaleFactor:1,yScaleFactor:1,containerWidth:i.width,containerHeight:a,position:{mx:0,my:0}});ln(s.path,{d:l})}})),e.on(["directEditing.complete","directEditing.cancel"],(function(e){var n=e.active;n&&(t.removeMarker(n.element.label||n.element,Yx),t.removeMarker(i,Kx)),i=void 0,o=void 0,r&&(Pn(r),r=void 0)}))}function Jx(e,t){return ge(e).get("stroke")||t||"black"}Zx.$inject=["eventBus","canvas","pathMap"];const e_={__depends__:[lc,Qx,Pw],__init__:["labelEditingProvider","labelEditingPreview"],labelEditingProvider:["type",Xx],labelEditingPreview:["type",Zx]};var t_=new ec("tt");function n_(e,t){e.style.display=!1===t?"none":""}var i_="djs-tooltip",o_="."+i_;function r_(e,t){var n,i;this._eventBus=e,this._canvas=t,this._ids=t_,this._tooltipDefaults={show:{minZoom:.7,maxZoom:5}},this._tooltips={},this._tooltipRoot=(n=t.getContainer(),Rt(i=Kt('
    '),{position:"absolute",width:"0",height:"0"}),n.insertBefore(i,n.firstChild),i);var o=this;Xt.bind(this._tooltipRoot,o_,"mousedown",(function(e){e.stopPropagation()})),Xt.bind(this._tooltipRoot,o_,"mouseover",(function(e){o.trigger("mouseover",e)})),Xt.bind(this._tooltipRoot,o_,"mouseout",(function(e){o.trigger("mouseout",e)})),this._init()}r_.$inject=["eventBus","canvas"],r_.prototype.add=function(e){if(!e.position)throw new Error("must specifiy tooltip position");if(!e.html)throw new Error("must specifiy tooltip html");var t=this._ids.next();return e=ce({},this._tooltipDefaults,e,{id:t}),this._addTooltip(e),e.timeout&&this.setTimeout(e),t},r_.prototype.trigger=function(e,t){var n=t.delegateTarget||t.target,i=this.get(Dt(n,"data-tooltip-id"));i&&("mouseover"===e&&i.timeout&&this.clearTimeout(i),"mouseout"===e&&i.timeout&&(i.timeout=1e3,this.setTimeout(i)))},r_.prototype.get=function(e){return"string"!=typeof e&&(e=e.id),this._tooltips[e]},r_.prototype.clearTimeout=function(e){if(e=this.get(e)){var t=e.removeTimer;t&&(clearTimeout(t),e.removeTimer=null)}},r_.prototype.setTimeout=function(e){if(e=this.get(e)){this.clearTimeout(e);var t=this;e.removeTimer=setTimeout((function(){t.remove(e)}),e.timeout)}},r_.prototype.remove=function(e){var t=this.get(e);t&&(tn(t.html),tn(t.htmlContainer),delete t.htmlContainer,delete this._tooltips[t.id])},r_.prototype.show=function(){n_(this._tooltipRoot)},r_.prototype.hide=function(){n_(this._tooltipRoot,!1)},r_.prototype._updateRoot=function(e){var t=e.scale||1,n=e.scale||1,i="matrix("+t+",0,0,"+n+","+-1*e.x*t+","+-1*e.y*n+")";this._tooltipRoot.style.transform=i,this._tooltipRoot.style["-ms-transform"]=i},r_.prototype._addTooltip=function(e){var t,n=e.id,i=e.html,o=this._tooltipRoot;i.get&&i.constructor.prototype.jquery&&(i=i.get(0)),F(i)&&(i=Kt(i)),Rt(t=Kt('
    '),{position:"absolute"}),t.appendChild(i),e.type&&Nt(t).add("djs-tooltip-"+e.type),e.className&&Nt(t).add(e.className),e.htmlContainer=t,o.appendChild(t),this._tooltips[n]=e,this._updateTooltip(e)},r_.prototype._updateTooltip=function(e){var t=e.position;!function(e,t,n){Rt(e,{left:t+"px",top:n+"px"})}(e.htmlContainer,t.x,t.y)},r_.prototype._updateTooltipVisibilty=function(e){V(this._tooltips,(function(t){var n=t.show,i=t.htmlContainer,o=!0;n&&((n.minZoom>e.scale||n.maxZoom"+o+"
    "}))}))}a_.$inject=["eventBus","tooltips","translate"];const l_={__depends__:[s_],__init__:["modelingFeedback"],modelingFeedback:["type",a_]};var c_=Math.round;function h_(e,t,n,i,o){function r(e,t,n,i){return o.allowed("elements.move",{shapes:e,delta:t,position:n,target:i})}function s(e,n,i,o){if(N(i)&&(o=i,i=!1),!n.waypoints&&n.parent&&!hn(e.target).has("djs-hit-no-move")){var r=function(e){return{x:e.x+c_(e.width/2),y:e.y+c_(e.height/2)}}(n);return t.init(e,r,"shape.move",{cursor:"grabbing",autoActivate:i,data:{shape:n,context:o||{}}}),!0}}e.on("shape.move.start",1500,(function(e){var t=e.context,n=e.shape,o=i.get().slice();-1===o.indexOf(n)&&(o=[n]),o=function(e){var t=Z(e,"id");return H(e,(function(e){for(;e=e.parent;)if(t[e.id])return!1;return!0}))}(o),ce(t,{shapes:o,validatedShapes:o,shape:n})})),e.on("shape.move.start",1250,(function(e){var t=e.context,n=t.validatedShapes;if(!(t.canExecute=r(n)))return!1})),e.on("shape.move.move",500,(function(e){var t,n=e.context,i=n.validatedShapes,o=e.hover,s={x:e.dx,y:e.dy};t=r(i,s,{x:e.x,y:e.y},o),n.delta=s,n.canExecute=t,n.target=null!==t?o:null})),e.on("shape.move.end",(function(e){var t=e.context,i=t.delta,o=t.canExecute,r="attach"===o,s=t.shapes;if(!1===o)return!1;i.x=c_(i.x),i.y=c_(i.y),0===i.x&&0===i.y||n.moveElements(s,i,t.target,{primaryShape:t.shape,attach:r})})),e.on("element.mousedown",(function(e){if(jc(e)){var t=Nc(e);if(!t)throw new Error("must supply DOM mousedown event");return s(t,e.element)}})),this.start=s}h_.$inject=["eventBus","dragging","modeling","selection","rules"];var u_="djs-dragging",p_="drop-ok",d_="drop-not-ok",f_="new-parent",m_="attach-ok";function g_(e,t,n,i){function o(e){var t=Go(e,!0),n=t.flatMap((e=>(e.incoming||[]).concat(e.outgoing||[]))),i=t.concat(n);return[...new Set(i)]}function r(e,n){[m_,p_,d_,f_].forEach((function(i){i===n?t.addMarker(e,i):t.removeMarker(e,i)}))}e.on("shape.move.start",499,(function(e){var r,s=e.context,a=s.shapes,l=s.allDraggedElements,c=H(r=o(a),(function(e){return!jr(e)||j(r,ne({id:e.source.id}))&&j(r,ne({id:e.target.id}))}));if(!s.dragGroup){var h=vn("g");ln(h,n.cls("djs-drag-group",["no-events"])),on(t.getActiveLayer(),h),s.dragGroup=h}c.forEach((function(e){i.addDragger(e,s.dragGroup)})),V(l=l?M([l,o(a)]):o(a),(function(e){t.addMarker(e,u_)})),s.allDraggedElements=l,s.differentParents=1!==Y(Z(a,(function(e){return e.parent&&e.parent.id}))).length})),e.on("shape.move.move",499,(function(e){var t=e.context,n=t.dragGroup,i=t.target,o=t.shape.parent,s=t.canExecute;i&&("attach"===s?r(i,m_):t.canExecute&&o&&i.id!==o.id?r(i,f_):r(i,t.canExecute?p_:d_)),ks(n,e.dx,e.dy)})),e.on(["shape.move.out","shape.move.cleanup"],(function(e){var t=e.context.target;t&&r(t,null)})),e.on("shape.move.cleanup",(function(e){var n=e.context,i=n.allDraggedElements,o=n.dragGroup;V(i,(function(e){t.removeMarker(e,u_)})),o&&Pn(o)})),this.makeDraggable=function(e,n,o){i.addDragger(n,e.dragGroup),o&&t.addMarker(n,u_),e.allDraggedElements?e.allDraggedElements.push(n):e.allDraggedElements=[n]}}g_.$inject=["eventBus","canvas","styles","previewSupport"];const v_={__depends__:[Qc,eh,Pc,nd,Zp,hf],__init__:["move","movePreview"],move:["type",h_],movePreview:["type",g_]};var y_=".djs-palette-toggle",b_=".entry",w_=y_+", "+b_,x_="djs-palette-",__="open",E_="two-column";function k_(e,t){this._eventBus=e,this._canvas=t;var n=this;e.on("tool-manager.update",(function(e){var t=e.tool;n.updateToolHighlight(t)})),e.on("i18n.changed",(function(){n._update()})),e.on("diagram.init",(function(){n._diagramInitialized=!0,n._rebuild()}))}function S_(e,t){var n=t.getPaletteEntries();return I(n)?n(e):(V(n,(function(t,n){e[n]=t})),e)}k_.$inject=["eventBus","canvas"],k_.prototype.registerProvider=function(e,t){t||(t=e,e=1e3),this._eventBus.on("palette.getProviders",e,(function(e){e.providers.push(t)})),this._rebuild()},k_.prototype.getEntries=function(){return this._getProviders().reduce(S_,{})},k_.prototype._rebuild=function(){this._diagramInitialized&&this._getProviders().length&&(this._container||this._init(),this._update())},k_.prototype._init=function(){var e=this,t=this._eventBus,n=this._getParentContainer(),i=this._container=Kt(k_.HTML_MARKUP);n.appendChild(i),Nt(n).add(x_+"shown"),Xt.bind(i,w_,"click",(function(t){if(Zt(t.delegateTarget,y_))return e.toggle();e.trigger("click",t)})),Gt.bind(i,"mousedown",(function(e){e.stopPropagation()})),Xt.bind(i,b_,"dragstart",(function(t){e.trigger("dragstart",t)})),t.on("canvas.resized",this._layoutChanged,this),t.fire("palette.create",{container:i})},k_.prototype._getProviders=function(e){var t=this._eventBus.createEvent({type:"palette.getProviders",providers:[]});return this._eventBus.fire(t),t.providers},k_.prototype._toggleState=function(e){e=e||{};var t,n=this._getParentContainer(),i=this._container,o=this._eventBus,r=Nt(i),s=Nt(n);t="twoColumn"in e?e.twoColumn:this._needsCollapse(n.clientHeight,this._entries||{}),r.toggle(E_,t),s.toggle(x_+E_,t),"open"in e&&(r.toggle(__,e.open),s.toggle(x_+__,e.open)),o.fire("palette.changed",{twoColumn:t,open:this.isOpen()})},k_.prototype._update=function(){var e=Jt(".djs-palette-entries",this._container),t=this._entries=this.getEntries();It(e),V(t,(function(t,n){var i=t.group||"default",o=Jt("[data-group="+Mi(i)+"]",e);o||(Dt(o=Kt('
    '),"data-group",i),e.appendChild(o));var r=t.html||(t.separator?'
    ':'
    '),s=Kt(r);if(o.appendChild(s),!t.separator&&(Dt(s,"data-action",n),t.title&&Dt(s,"title",t.title),t.className&&function(e,t){var n=Nt(e);(L(t)?t:t.split(/\s+/g)).forEach((function(e){n.add(e)}))}(s,t.className),t.imageUrl)){var a=Kt("");Dt(a,"src",t.imageUrl),s.appendChild(a)}})),this.open()},k_.prototype.trigger=function(e,t,n){var i,o,r=t.delegateTarget||t.target;return r?(i=Dt(r,"data-action"),o=t.originalEvent||t,this.triggerEntry(i,e,o,n)):t.preventDefault()},k_.prototype.triggerEntry=function(e,t,n,i){var o,r;if((o=this._entries[e])&&(r=o.action,!1!==this._eventBus.fire("palette.trigger",{entry:o,event:n}))){if(I(r)){if("click"===t)return r(n,i)}else if(r[t])return r[t](n,i);n.preventDefault()}},k_.prototype._layoutChanged=function(){this._toggleState({})},k_.prototype._needsCollapse=function(e,t){return e<46*Object.keys(t).length+50},k_.prototype.close=function(){this._toggleState({open:!1,twoColumn:!1})},k_.prototype.open=function(){this._toggleState({open:!0})},k_.prototype.toggle=function(){this.isOpen()?this.close():this.open()},k_.prototype.isActiveTool=function(e){return e&&this._activeTool===e},k_.prototype.updateToolHighlight=function(e){var t;this._toolsContainer||(t=Jt(".djs-palette-entries",this._container),this._toolsContainer=Jt("[data-group=tools]",t)),V(this._toolsContainer.children,(function(t){var n=t.getAttribute("data-action");if(n){var i=Nt(t);n=n.replace("-tool",""),i.contains("entry")&&n===e?i.add("highlighted-entry"):i.remove("highlighted-entry")}}))},k_.prototype.isOpen=function(){return Nt(this._container).has(__)},k_.prototype._getParentContainer=function(){return this._canvas.getContainer()},k_.HTML_MARKUP='
    ';const C_={__init__:["palette"],palette:["type",k_]};var O_="crosshair";function P_(e,t,n,i,o,r,s){this._selection=o,this._dragging=n,this._mouse=s;var a=this;r.registerTool("lasso",{tool:"lasso.selection",dragging:"lasso"}),e.on("lasso.selection.end",(function(t){var n=t.originalEvent.target;(t.hover||n instanceof SVGElement)&&e.once("lasso.selection.ended",(function(){a.activateLasso(t.originalEvent,!0)}))})),e.on("lasso.end",0,(function(e){var t=e.context,n=M_(e),o=i.filter((function(e){return e})),r=Hc(e);a.select(o,n,r?t.selection:[])})),e.on("lasso.start",(function(e){var n=e.context;n.bbox=M_(e),function(e){var n,i=t.getActiveLayer();ln(n=e.frame=vn("rect"),{class:"djs-lasso-overlay",width:1,height:1,x:0,y:0}),on(i,n)}(n),n.selection=o.get()})),e.on("lasso.move",(function(e){var t=e.context;t.bbox=M_(e),function(e){var t=e.frame,n=e.bbox;ln(t,{x:n.x,y:n.y,width:n.width,height:n.height})}(t)})),e.on("lasso.cleanup",(function(e){!function(e){e.frame&&Pn(e.frame)}(e.context)})),e.on("element.mousedown",1500,(function(e){if(Hc(e))return a.activateLasso(e.originalEvent),!0}))}function M_(e){var t={x:e.x-e.dx,y:e.y-e.dy},n={x:e.x,y:e.y};return t.x<=n.x&&t.y=n.x&&t.yn.x&&t.y<=n.y?{x:n.x,y:t.y,width:t.x-n.x,height:n.y-t.y}:t.x<=n.x&&t.y>n.y||t.x=n.y?{x:t.x,y:n.y,width:n.x-t.x,height:t.y-n.y}:t.x>=n.x&&t.y>n.y||t.x>n.x&&t.y>=n.y?{x:n.x,y:n.y,width:t.x-n.x,height:t.y-n.y}:{x:n.x,y:n.y,width:0,height:0}}P_.$inject=["eventBus","canvas","dragging","elementRegistry","selection","toolManager","mouse"],P_.prototype.activateLasso=function(e,t){this._dragging.init(e,"lasso",{autoActivate:t,cursor:O_,data:{context:{}}})},P_.prototype.activateSelection=function(e,t){this._dragging.init(e,"lasso.selection",{trapClick:!1,autoActivate:t,cursor:O_,data:{context:{}},keepSelection:!0})},P_.prototype.select=function(e,t,n=[]){var i=function(e,t){var n={};return V(e,(function(e){var i=e;i.waypoints&&(i=Qo(i)),!z(t.y)&&i.x>t.x&&(n[e.id]=e),!z(t.x)&&i.y>t.y&&(n[e.id]=e),i.x>t.x&&i.y>t.y&&(z(t.width)&&z(t.height)&&i.width+i.xt[i]+o-n&&Wd(e,i,t[i]+o-n)}))}(e,r,function(e){return de(e,"bpmn:Task")?10:20}(r)),r&&(t=i,X(["bpmn:Association","bpmn:DataInputAssociation","bpmn:DataOutputAssociation","bpmn:SequenceFlow"],(function(e){return X_(t,e)})))?(n.connectionStart=Hd(o),fe(r,["bpmn:Event","bpmn:Gateway"])&&Q_(e,Hd(r)),fe(r,["bpmn:Task","bpmn:SubProcess"])&&function(e,t){var n=Hd(t);V_.forEach((function(i){(function(e,t,n){return e[n]>t[n]+20&&e[n]o[t]?o[t]+40:o[t]-40,Wd(e,t,n))}))}}(e)):X_(i,"bpmn:MessageFlow")?(de(o,"bpmn:Event")&&(n.connectionStart=Hd(o)),de(r,"bpmn:Event")&&Q_(e,Hd(r))):n.connectionStart=n.initialConnectionStart)}))}function Q_(e,t){Wd(e,"x",t.x),Wd(e,"y",t.y)}function X_(e,t){return e&&e.type===t}function U_(e,t){return"x"===e?t.width:t.height}function Y_(){this._targets={},this._snapOrigins={},this._snapLocations=[],this._defaultSnaps={}}function K_(){this._snapValues={}}G_.$inject=["eventBus"],Y_.prototype.getSnapOrigin=function(e){return this._snapOrigins[e]},Y_.prototype.setSnapOrigin=function(e,t){this._snapOrigins[e]=t,-1===this._snapLocations.indexOf(e)&&this._snapLocations.push(e)},Y_.prototype.addDefaultSnap=function(e,t){var n=this._defaultSnaps[e];n||(n=this._defaultSnaps[e]=[]),n.push(t)},Y_.prototype.getSnapLocations=function(){return this._snapLocations},Y_.prototype.setSnapLocations=function(e){this._snapLocations=e},Y_.prototype.pointsForTarget=function(e){var t=e.id||e,n=this._targets[t];return n||(n=this._targets[t]=new K_).initDefaults(this._defaultSnaps),n},K_.prototype.add=function(e,t){var n=this._snapValues[e];n||(n=this._snapValues[e]={x:[],y:[]}),-1===n.x.indexOf(t.x)&&n.x.push(t.x),-1===n.y.indexOf(t.y)&&n.y.push(t.y)},K_.prototype.snap=function(e,t,n,i){var o=this._snapValues[t];return o&&function(e,t,n){var i,o;for(n=void 0===n?10:n,i=0;i=e.x||i&&i<=e.x)&&Wd(e,"x",e.x),(n&&n>=e.y||o&&o<=e.y)&&Wd(e,"y",e.y)}}function nE(e,t){return-1!==e.indexOf(t)}function iE(e,t,n){return t?{x:e.x-n.x,y:e.y-n.y}:{x:e.x,y:e.y}}function oE(e,t){var n=this;e.on(["resize.start"],(function(e){n.initSnap(e)})),e.on(["resize.move","resize.end"],1250,(function(e){var i=e.context,o=i.shape,r=o.parent,s=i.direction,a=i.snapContext;if(!(e.originalEvent&&sh(e.originalEvent)||Vd(e))){var l=a.pointsForTarget(r);l.initialized||((l=n.addSnapTargetPoints(l,o,r,s)).initialized=!0),function(e){return"n"===e||"s"===e}(s)&&Wd(e,"x",e.x),function(e){return"e"===e||"w"===e}(s)&&Wd(e,"y",e.y),t.snap(e,l)}})),e.on(["resize.cleanup"],(function(){t.hide()}))}function rE(e,t){var n=Qr(e),i=Wr(e),o={x:n.x,y:n.y};return-1!==t.indexOf("n")?o.y=i.top:-1!==t.indexOf("s")&&(o.y=i.bottom),-1!==t.indexOf("e")?o.x=i.right:-1!==t.indexOf("w")&&(o.x=i.left),o}function sE(e){this._canvas=e,this._asyncHide=ae(le(this.hide,this),1e3)}J_.$inject=["elementRegistry","eventBus","snapping"],J_.prototype.initSnap=function(e){var t,n=this._elementRegistry,i=e.context,o=i.shape,r=i.snapContext;r||(r=i.snapContext=new Y_);var s=(t=n.get(o.id)?Hd(o,e):{x:e.x+Hd(o).x,y:e.y+Hd(o).y}).x-o.width/2,a=t.y-o.height/2,l=t.x+o.width/2,c=t.y+o.height/2;return r.setSnapOrigin("mid",{x:t.x-e.x,y:t.y-e.y}),qr(o)||(r.setSnapOrigin("top-left",{x:s-e.x,y:a-e.y}),r.setSnapOrigin("bottom-right",{x:l-e.x,y:c-e.y})),r},J_.prototype.addSnapTargetPoints=function(e,t,n){return V(this.getSnapTargets(t,n),(function(n){if(qr(n))qr(t)&&e.add("mid",Hd(n));else if(jr(n)){if(n.waypoints.length<3)return;V(n.waypoints.slice(1,-1),(function(t){e.add("mid",t)}))}else e.add("mid",Hd(n))})),z(t.x)&&z(t.y)?(this._elementRegistry.get(t.id)&&e.add("mid",Hd(t)),e):e},J_.prototype.getSnapTargets=function(e,t){return Gd(t).filter((function(e){return!e.hidden}))},lt(eE,J_),eE.$inject=["eventBus","injector"],eE.prototype.initSnap=function(e){var t=J_.prototype.initSnap.call(this,e),n=e.shape,i=!!this._elementRegistry.get(n.id);return V(n.outgoing,(function(n){var o=n.waypoints[0];o=o.original||o,t.setSnapOrigin(n.id+"-docking",iE(o,i,e))})),V(n.incoming,(function(n){var o=n.waypoints[n.waypoints.length-1];o=o.original||o,t.setSnapOrigin(n.id+"-docking",iE(o,i,e))})),de(n,"bpmn:Participant")&&t.setSnapLocations(["top-left","bottom-right","mid"]),t},eE.prototype.addSnapTargetPoints=function(e,t,n){J_.prototype.addSnapTargetPoints.call(this,e,t,n);var i=this.getSnapTargets(t,n);V(i,(function(n){var i;(de(i=n,"bpmn:SubProcess")&&ul(i)||de(i,"bpmn:Participant")||("bpmn:TextAnnotation",[t,n].every((function(e){return de(e,"bpmn:TextAnnotation")}))))&&(e.add("top-left",jd(n)),e.add("bottom-right",qd(n)))}));var o=this._elementRegistry;return V(t.incoming,(function(n){if(o.get(t.id)){nE(i,n.source)||e.add("mid",Qr(n.source));var r=n.waypoints[0];e.add(n.id+"-docking",r.original||r)}})),V(t.outgoing,(function(n){if(o.get(t.id)){nE(i,n.target)||e.add("mid",Qr(n.target));var r=n.waypoints[n.waypoints.length-1];e.add(n.id+"-docking",r.original||r)}})),de(n,"bpmn:SequenceFlow")&&(e=this.addSnapTargetPoints(e,t,n.parent)),e},eE.prototype.getSnapTargets=function(e,t){return J_.prototype.getSnapTargets.call(this,e,t).filter((function(e){return!de(e,"bpmn:Lane")}))},oE.prototype.initSnap=function(e){var t=e.context,n=t.shape,i=t.direction,o=t.snapContext;o||(o=t.snapContext=new Y_);var r=rE(n,i);return o.setSnapOrigin("corner",{x:r.x-e.x,y:r.y-e.y}),o},oE.prototype.addSnapTargetPoints=function(e,t,n,i){return V(this.getSnapTargets(t,n),(function(t){e.add("corner",qd(t)),e.add("corner",jd(t))})),e.add("corner",rE(t,i)),e},oE.$inject=["eventBus","snapping"],oE.prototype.getSnapTargets=function(e,t){return Gd(t).filter((function(t){return n=e,!(t.host===n||jr(t)||function(e){return!!e.hidden}(t)||qr(t));var n}))},sE.$inject=["canvas"],sE.prototype.snap=function(e,t){var n=e.context.snapContext,i=n.getSnapLocations(),o={x:Vd(e,"x"),y:Vd(e,"y")};V(i,(function(i){var r=n.getSnapOrigin(i),s={x:e.x+r.x,y:e.y+r.y};if(V(["x","y"],(function(e){var n;o[e]||void 0!==(n=t.snap(s,i,e,7))&&(o[e]={value:n,originValue:n-r[e]})})),o.x&&o.y)return!1})),this.showSnapLine("vertical",o.x&&o.x.value),this.showSnapLine("horizontal",o.y&&o.y.value),V(["x","y"],(function(t){var n=o[t];N(n)&&Wd(e,t,n.originValue)}))},sE.prototype._createLine=function(e){var t=this._canvas.getLayer("snap"),n=vn("path");return ln(n,{d:"M0,0 L0,0"}),hn(n).add("djs-snap-line"),on(t,n),{update:function(t){z(t)?ln(n,"horizontal"===e?{d:"M-100000,"+t+" L+100000,"+t,display:""}:{d:"M "+t+",-100000 L "+t+", +100000",display:""}):ln(n,{display:"none"})}}},sE.prototype._createSnapLines=function(){this._snapLines={horizontal:this._createLine("horizontal"),vertical:this._createLine("vertical")}},sE.prototype.showSnapLine=function(e,t){var n=this.getSnapLine(e);n&&n.update(t),this._asyncHide()},sE.prototype.getSnapLine=function(e){return this._snapLines||this._createSnapLines(),this._snapLines[e]},sE.prototype.hide=function(){V(this._snapLines,(function(e){e.update()}))};const aE={__depends__:[{__init__:["createMoveSnapping","resizeSnapping","snapping"],createMoveSnapping:["type",J_],resizeSnapping:["type",oE],snapping:["type",sE]}],__init__:["connectSnapping","createMoveSnapping"],connectSnapping:["type",G_],createMoveSnapping:["type",eE]};function lE(e,t,n,i,o){this._open=!1,this._results=[],this._eventMaps=[],this._canvas=e,this._eventBus=t,this._overlays=n,this._selection=i,this._translate=o,this._container=this._getBoxHtml(),this._searchInput=Jt(lE.INPUT_SELECTOR,this._container),this._resultsContainer=Jt(lE.RESULTS_CONTAINER_SELECTOR,this._container),this._canvas.getContainer().appendChild(this._container),t.on(["canvas.destroy","diagram.destroy"],this.close,this)}function cE(e,t,n){var i=function(e){var t="";return e.forEach((function(e){e.matched?t+=''+Ti(e.matched)+"":t+=Ti(e.normal)})),""!==t?t:null}(t),o=Kt(n);o.innerHTML=i,e.appendChild(o)}lE.$inject=["canvas","eventBus","overlays","selection","translate"],lE.prototype._bindEvents=function(){var e=this;function t(t,n,i,o){e._eventMaps.push({el:t,type:i,listener:Xt.bind(t,n,i,o)})}t(document,"html","click",(function(t){e.close()})),t(this._container,lE.INPUT_SELECTOR,"click",(function(e){e.stopPropagation(),e.delegateTarget.focus()})),t(this._container,lE.RESULT_SELECTOR,"mouseover",(function(t){t.stopPropagation(),e._scrollToNode(t.delegateTarget),e._preselect(t.delegateTarget)})),t(this._container,lE.RESULT_SELECTOR,"click",(function(t){t.stopPropagation(),e._select(t.delegateTarget)})),t(this._container,lE.INPUT_SELECTOR,"keydown",(function(e){ah("ArrowUp",e)&&e.preventDefault(),ah("ArrowDown",e)&&e.preventDefault()})),t(this._container,lE.INPUT_SELECTOR,"keyup",(function(t){if(ah("Escape",t))return e.close();if(ah("Enter",t)){var n=e._getCurrentResult();return n?e._select(n):e.close()}return ah("ArrowUp",t)?e._scrollToDirection(!0):ah("ArrowDown",t)?e._scrollToDirection():void(ah(["ArrowLeft","ArrowRight"],t)||e._search(t.delegateTarget.value))}))},lE.prototype._unbindEvents=function(){this._eventMaps.forEach((function(e){Xt.unbind(e.el,e.type,e.listener)}))},lE.prototype._search=function(e){var t=this;if(this._clearResults(),e&&""!==e){var n=this._searchProvider.find(e);if(n.length){n.forEach((function(e){var n=e.element.id,i=t._createResultNode(e,n);t._results[n]={element:e.element,node:i}}));var i=Jt(lE.RESULT_SELECTOR,this._resultsContainer);this._scrollToNode(i),this._preselect(i)}}},lE.prototype._scrollToDirection=function(e){var t=this._getCurrentResult();if(t){var n=e?t.previousElementSibling:t.nextElementSibling;n&&(this._scrollToNode(n),this._preselect(n))}},lE.prototype._scrollToNode=function(e){if(e&&e!==this._getCurrentResult()){var t=e.offsetTop,n=this._resultsContainer.scrollTop,i=t-this._resultsContainer.clientHeight+e.clientHeight;t0&&cE(n,e.primaryTokens,lE.RESULT_PRIMARY_HTML),cE(n,e.secondaryTokens,lE.RESULT_SECONDARY_HTML),Dt(n,lE.RESULT_ID_ATTRIBUTE,t),this._resultsContainer.appendChild(n),n},lE.prototype.registerProvider=function(e){this._searchProvider=e},lE.prototype.open=function(){if(!this._searchProvider)throw new Error("no search provider registered");this.isOpen()||(this._bindEvents(),this._open=!0,Nt(this._container).add("open"),this._searchInput.focus(),this._eventBus.fire("searchPad.opened"))},lE.prototype.close=function(){this.isOpen()&&(this._unbindEvents(),this._open=!1,Nt(this._container).remove("open"),this._clearResults(),this._searchInput.value="",this._searchInput.blur(),this._resetOverlay(),this._eventBus.fire("searchPad.closed"))},lE.prototype.toggle=function(){this.isOpen()?this.close():this.open()},lE.prototype.isOpen=function(){return this._open},lE.prototype._preselect=function(e){var t=this._getCurrentResult();if(e!==t){t&&Nt(t).remove(lE.RESULT_SELECTED_CLASS);var n=Dt(e,lE.RESULT_ID_ATTRIBUTE),i=this._results[n].element;Nt(e).add(lE.RESULT_SELECTED_CLASS),this._resetOverlay(i),this._canvas.scrollToElement(i,{top:400}),this._selection.select(i),this._eventBus.fire("searchPad.preselected",i)}},lE.prototype._select=function(e){var t=Dt(e,lE.RESULT_ID_ATTRIBUTE),n=this._results[t].element;this.close(),this._resetOverlay(),this._canvas.scrollToElement(n,{top:400}),this._selection.select(n),this._eventBus.fire("searchPad.selected",n)},lE.prototype._resetOverlay=function(e){if(this._overlayId&&this._overlays.remove(this._overlayId),e){var t=function(e){var t=e.width+12,n=e.height+12,i={width:t+"px",height:n+"px"},o=Kt('
    ');return Rt(o,i),{position:{bottom:n-6,right:t-6},show:!0,html:o}}(Qo(e));this._overlayId=this._overlays.add(e,t)}},lE.prototype._getBoxHtml=function(){const e=Kt(lE.BOX_HTML),t=Jt(lE.INPUT_SELECTOR,e);return t&&t.setAttribute("aria-label",this._translate("Search in diagram")),e},lE.CONTAINER_SELECTOR=".djs-search-container",lE.INPUT_SELECTOR=".djs-search-input input",lE.RESULTS_CONTAINER_SELECTOR=".djs-search-results",lE.RESULT_SELECTOR=".djs-search-result",lE.RESULT_SELECTED_CLASS="djs-search-result-selected",lE.RESULT_SELECTED_SELECTOR="."+lE.RESULT_SELECTED_CLASS,lE.RESULT_ID_ATTRIBUTE="data-result-id",lE.RESULT_HIGHLIGHT_CLASS="djs-search-highlight",lE.OVERLAY_CLASS="djs-search-overlay",lE.BOX_HTML='
    ',lE.RESULT_HTML='
    ',lE.RESULT_PRIMARY_HTML='
    ',lE.RESULT_SECONDARY_HTML='

    ';const hE={__depends__:[Xl,sc,eh],searchPad:["type",lE]};function uE(e,t,n){this._elementRegistry=e,this._canvas=n,t.registerProvider(this)}function pE(e){return H(e,(function(e){return!!e.matched})).length>0}function dE(e,t){var n=[],i=e;if(!e)return n;e=e.toLowerCase(),t=t.toLowerCase();var o=e.indexOf(t);return o>-1?(0!==o&&n.push({normal:i.substr(0,o)}),n.push({matched:i.substr(o,t.length)}),t.length+o')},mE.prototype._interactionModules=[bh,Ph,Dh],mE.prototype._modelingModules=[Ep,$p,ed,Wp,Yd,nf,rf,Kw,Lv,Ev,rx,ux,Sx,Ox,Mx,zx,e_,yw,l_,v_,j_,H_,Qx,aE,fE],mE.prototype._modules=[].concat(th.prototype._modules,mE.prototype._interactionModules,mE.prototype._modelingModules),gE.$inject=["config.exporter","eventBus"];const vE={__init__:[gE]};var yE,bE,wE,xE,_E,EE,kE,SE,CE={},OE=[],PE=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,ME=Array.isArray;function AE(e,t){for(var n in t)e[n]=t[n];return e}function TE(e){var t=e.parentNode;t&&t.removeChild(e)}function BE(e,t,n){var i,o,r,s={};for(r in t)"key"==r?i=t[r]:"ref"==r?o=t[r]:s[r]=t[r];if(arguments.length>2&&(s.children=arguments.length>3?yE.call(arguments,2):n),"function"==typeof e&&null!=e.defaultProps)for(r in e.defaultProps)void 0===s[r]&&(s[r]=e.defaultProps[r]);return RE(e,s,i,o,null)}function RE(e,t,n,i,o){var r={type:e,props:t,key:n,ref:i,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:null==o?++wE:o,__i:-1,__u:0};return null==o&&null!=bE.vnode&&bE.vnode(r),r}function DE(e){return e.children}function LE(e,t){this.props=e,this.context=t}function NE(e,t){if(null==t)return e.__?NE(e.__,e.__i+1):null;for(var n;tt&&xE.sort(kE));FE.__r=0}function $E(e,t,n,i,o,r,s,a,l,c,h){var u,p,d,f,m,g=i&&i.__k||OE,v=t.length;for(n.__d=l,function(e,t,n){var i,o,r,s,a,l=t.length,c=n.length,h=c,u=0;for(e.__k=[],i=0;i0?RE(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):o)?(o.__=e,o.__b=e.__b+1,a=HE(o,n,s=i+u,h),o.__i=a,r=null,-1!==a&&(h--,(r=n[a])&&(r.__u|=131072)),null==r||null===r.__v?(-1==a&&u--,"function"!=typeof o.type&&(o.__u|=65536)):a!==s&&(a===s+1?u++:a>s?h>l-s?u+=a-s:u--:u=a(null==l||131072&l.__u?0:1))for(;s>=0||a=0){if((l=t[s])&&!(131072&l.__u)&&o==l.key&&r===l.type)return s;s--}if(a=n.__.length&&n.__.push({__V:ak}),n.__[e]}function fk(e){return rk=1,function(e,t,n){var i=dk(tk++,2);if(i.t=e,!i.__c&&(i.__=[n?n(t):Ok(void 0,t),function(e){var t=i.__N?i.__N[0]:i.__[0],n=i.t(t,e);t!==n&&(i.__N=[n,i.__[1]],i.__c.setState({}))}],i.__c=nk,!nk.u)){var o=function(e,t,n){if(!i.__c.__H)return!0;var o=i.__c.__H.__.filter((function(e){return e.__c}));if(o.every((function(e){return!e.__N})))return!r||r.call(this,e,t,n);var s=!1;return o.forEach((function(e){if(e.__N){var t=e.__[0];e.__=e.__N,e.__N=void 0,t!==e.__[0]&&(s=!0)}})),!(!s&&i.__c.props===e)&&(!r||r.call(this,e,t,n))};nk.u=!0;var r=nk.shouldComponentUpdate,s=nk.componentWillUpdate;nk.componentWillUpdate=function(e,t,n){if(this.__e){var i=r;r=void 0,o(e,t,n),r=i}s&&s.call(this,e,t,n)},nk.shouldComponentUpdate=o}return i.__N||i.__}(Ok,e)}function mk(e,t){var n=dk(tk++,3);!bE.__s&&Ck(n.__H,t)&&(n.__=e,n.i=t,nk.__H.__h.push(n))}function gk(e,t){var n=dk(tk++,4);!bE.__s&&Ck(n.__H,t)&&(n.__=e,n.i=t,nk.__h.push(n))}function vk(e){return rk=5,yk((function(){return{current:e}}),[])}function yk(e,t){var n=dk(tk++,7);return Ck(n.__H,t)?(n.__V=e(),n.i=t,n.__h=e,n.__V):n.__}function bk(e,t){return rk=8,yk((function(){return e}),t)}function wk(e){var t=nk.context[e.__c],n=dk(tk++,9);return n.c=e,t?(null==n.__&&(n.__=!0,t.sub(nk)),t.props.value):e.__}function xk(){for(var e;e=sk.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(kk),e.__H.__h.forEach(Sk),e.__H.__h=[]}catch(t){e.__H.__h=[],bE.__e(t,e.__v)}}bE.__b=function(e){nk=null,lk&&lk(e)},bE.__r=function(e){ck&&ck(e),tk=0;var t=(nk=e.__c).__H;t&&(ik===nk?(t.__h=[],nk.__h=[],t.__.forEach((function(e){e.__N&&(e.__=e.__N),e.__V=ak,e.__N=e.i=void 0}))):(t.__h.forEach(kk),t.__h.forEach(Sk),t.__h=[],tk=0)),ik=nk},bE.diffed=function(e){hk&&hk(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(1!==sk.push(t)&&ok===bE.requestAnimationFrame||((ok=bE.requestAnimationFrame)||Ek)(xk)),t.__H.__.forEach((function(e){e.i&&(e.__H=e.i),e.__V!==ak&&(e.__=e.__V),e.i=void 0,e.__V=ak}))),ik=nk=null},bE.__c=function(e,t){t.some((function(e){try{e.__h.forEach(kk),e.__h=e.__h.filter((function(e){return!e.__||Sk(e)}))}catch(n){t.some((function(e){e.__h&&(e.__h=[])})),t=[],bE.__e(n,e.__v)}})),uk&&uk(e,t)},bE.unmount=function(e){pk&&pk(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.forEach((function(e){try{kk(e)}catch(e){t=e}})),n.__H=void 0,t&&bE.__e(t,n.__v))};var _k="function"==typeof requestAnimationFrame;function Ek(e){var t,n=function(){clearTimeout(i),_k&&cancelAnimationFrame(t),setTimeout(e)},i=setTimeout(n,100);_k&&(t=requestAnimationFrame(n))}function kk(e){var t=nk,n=e.__c;"function"==typeof n&&(e.__c=void 0,n()),nk=t}function Sk(e){var t=nk;e.__c=e.__(),nk=t}function Ck(e,t){return!e||e.length!==t.length||t.some((function(t,n){return t!==e[n]}))}function Ok(e,t){return"function"==typeof t?t(e):t}function Pk(e,t){for(var n in t)e[n]=t[n];return e}function Mk(e,t){for(var n in e)if("__source"!==n&&!(n in t))return!0;for(var i in t)if("__source"!==i&&e[i]!==t[i])return!0;return!1}function Ak(e){this.props=e}(Ak.prototype=new LE).isPureReactComponent=!0,Ak.prototype.shouldComponentUpdate=function(e,t){return Mk(this.props,e)||Mk(this.state,t)};var Tk=bE.__b;bE.__b=function(e){e.type&&e.type.__f&&e.ref&&(e.props.ref=e.ref,e.ref=null),Tk&&Tk(e)};var Bk="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.forward_ref")||3911;function Rk(e){function t(t){var n=Pk({},t);return delete n.ref,e(n,t.ref||null)}return t.$$typeof=Bk,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName="ForwardRef("+(e.displayName||e.name)+")",t}var Dk=bE.__e;bE.__e=function(e,t,n,i){if(e.then)for(var o,r=t;r=r.__;)if((o=r.__c)&&o.__c)return null==t.__e&&(t.__e=n.__e,t.__k=n.__k),o.__c(e,t);Dk(e,t,n,i)};var Lk=bE.unmount;function Nk(e,t,n){return e&&(e.__c&&e.__c.__H&&(e.__c.__H.__.forEach((function(e){"function"==typeof e.__c&&e.__c()})),e.__c.__H=null),null!=(e=Pk({},e)).__c&&(e.__c.__P===n&&(e.__c.__P=t),e.__c=null),e.__k=e.__k&&e.__k.map((function(e){return Nk(e,t,n)}))),e}function zk(e,t,n){return e&&n&&(e.__v=null,e.__k=e.__k&&e.__k.map((function(e){return zk(e,t,n)})),e.__c&&e.__c.__P===t&&(e.__e&&n.appendChild(e.__e),e.__c.__e=!0,e.__c.__P=n)),e}function Ik(){this.__u=0,this.t=null,this.__b=null}function Fk(e){var t=e.__.__c;return t&&t.__a&&t.__a(e)}function $k(){this.u=null,this.o=null}bE.unmount=function(e){var t=e.__c;t&&t.__R&&t.__R(),t&&32&e.__u&&(e.type=null),Lk&&Lk(e)},(Ik.prototype=new LE).__c=function(e,t){var n=t.__c,i=this;null==i.t&&(i.t=[]),i.t.push(n);var o=Fk(i.__v),r=!1,s=function(){r||(r=!0,n.__R=null,o?o(a):a())};n.__R=s;var a=function(){if(! --i.__u){if(i.state.__a){var e=i.state.__a;i.__v.__k[0]=zk(e,e.__c.__P,e.__c.__O)}var t;for(i.setState({__a:i.__b=null});t=i.t.pop();)t.forceUpdate()}};i.__u++||32&t.__u||i.setState({__a:i.__b=i.__v.__k[0]}),e.then(s,s)},Ik.prototype.componentWillUnmount=function(){this.t=[]},Ik.prototype.render=function(e,t){if(this.__b){if(this.__v.__k){var n=document.createElement("div"),i=this.__v.__k[0].__c;this.__v.__k[0]=Nk(this.__b,n,i.__O=i.__P)}this.__b=null}var o=t.__a&&BE(DE,null,e.fallback);return o&&(o.__u&=-33),[BE(DE,null,t.__a?null:e.children),o]};var jk=function(e,t,n){if(++n[1]===n[0]&&e.o.delete(t),e.props.revealOrder&&("t"!==e.props.revealOrder[0]||!e.o.size))for(n=e.u;n;){for(;n.length>3;)n.pop()();if(n[1]>>1,1),t.i.removeChild(e)}}),JE(BE(qk,{context:t.context},e.__v),t.l)}function Vk(e,t){var n=BE(Hk,{__v:e,i:t});return n.containerInfo=t,n}($k.prototype=new LE).__a=function(e){var t=this,n=Fk(t.__v),i=t.o.get(e);return i[0]++,function(o){var r=function(){t.props.revealOrder?(i.push(o),jk(t,e,i)):o()};n?n(r):r()}},$k.prototype.render=function(e){this.u=null,this.o=new Map;var t=qE(e.children);e.revealOrder&&"b"===e.revealOrder[0]&&t.reverse();for(var n=t.length;n--;)this.o.set(t[n],this.u=[1,0,this.u]);return e.children},$k.prototype.componentDidUpdate=$k.prototype.componentDidMount=function(){var e=this;this.o.forEach((function(t,n){jk(e,n,t)}))};var Wk="undefined"!=typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103,Gk=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image(!S)|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,Qk=/^on(Ani|Tra|Tou|BeforeInp|Compo)/,Xk=/[A-Z0-9]/g,Uk="undefined"!=typeof document,Yk=function(e){return("undefined"!=typeof Symbol&&"symbol"==typeof Symbol()?/fil|che|rad/:/fil|che|ra/).test(e)};LE.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach((function(e){Object.defineProperty(LE.prototype,e,{configurable:!0,get:function(){return this["UNSAFE_"+e]},set:function(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,value:t})}})}));var Kk=bE.event;function Zk(){}function Jk(){return this.cancelBubble}function eS(){return this.defaultPrevented}bE.event=function(e){return Kk&&(e=Kk(e)),e.persist=Zk,e.isPropagationStopped=Jk,e.isDefaultPrevented=eS,e.nativeEvent=e};var tS={enumerable:!1,configurable:!0,get:function(){return this.class}},nS=bE.vnode;bE.vnode=function(e){"string"==typeof e.type&&function(e){var t=e.props,n=e.type,i={};for(var o in t){var r=t[o];if(!("value"===o&&"defaultValue"in t&&null==r||Uk&&"children"===o&&"noscript"===n||"class"===o||"className"===o)){var s=o.toLowerCase();"defaultValue"===o&&"value"in t&&null==t.value?o="value":"download"===o&&!0===r?r="":"ondoubleclick"===s?o="ondblclick":"onchange"!==s||"input"!==n&&"textarea"!==n||Yk(t.type)?"onfocus"===s?o="onfocusin":"onblur"===s?o="onfocusout":Qk.test(o)?o=s:-1===n.indexOf("-")&&Gk.test(o)?o=o.replace(Xk,"-$&").toLowerCase():null===r&&(r=void 0):s=o="oninput","oninput"===s&&i[o=s]&&(o="oninputCapture"),i[o]=r}}"select"==n&&i.multiple&&Array.isArray(i.value)&&(i.value=qE(t.children).forEach((function(e){e.props.selected=-1!=i.value.indexOf(e.props.value)}))),"select"==n&&null!=i.defaultValue&&(i.value=qE(t.children).forEach((function(e){e.props.selected=i.multiple?-1!=i.defaultValue.indexOf(e.props.value):i.defaultValue==e.props.value}))),t.class&&!t.className?(i.class=t.class,Object.defineProperty(i,"className",tS)):(t.className&&!t.class||t.class&&t.className)&&(i.class=i.className=t.className),e.props=i}(e),e.$$typeof=Wk,nS&&nS(e)};var iS=bE.__r;bE.__r=function(e){iS&&iS(e),e.__c};var oS=bE.diffed;bE.diffed=function(e){oS&&oS(e);var t=e.props,n=e.__e;null!=n&&"textarea"===e.type&&"value"in t&&t.value!==n.value&&(n.value=null==t.value?"":t.value)};var rS=BE,sS=0;function aS(e,t,n,i,o,r){var s,a,l={};for(a in t)"ref"==a?s=t[a]:l[a]=t[a];var c={type:e,props:l,key:n,ref:s,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:--sS,__i:-1,__u:0,__source:o,__self:r};if("function"==typeof e&&(s=e.defaultProps))for(a in s)void 0===l[a]&&(l[a]=s[a]);return bE.vnode&&bE.vnode(c),c}Array.isArray;var lS=n(485),cS=n.n(lS);const hS=1024;let uS=0;class pS{constructor(e,t){this.from=e,this.to=t}}class dS{constructor(e={}){this.id=uS++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")})}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return"function"!=typeof e&&(e=gS.match(e)),t=>{let n=e(t);return void 0===n?null:[this,n]}}}dS.closedBy=new dS({deserialize:e=>e.split(" ")}),dS.openedBy=new dS({deserialize:e=>e.split(" ")}),dS.group=new dS({deserialize:e=>e.split(" ")}),dS.isolate=new dS({deserialize:e=>{if(e&&"rtl"!=e&&"ltr"!=e&&"auto"!=e)throw new RangeError("Invalid value for isolate: "+e);return e||"auto"}}),dS.contextHash=new dS({perNode:!0}),dS.lookAhead=new dS({perNode:!0}),dS.mounted=new dS({perNode:!0});class fS{constructor(e,t,n){this.tree=e,this.overlay=t,this.parser=n}static get(e){return e&&e.props&&e.props[dS.mounted.id]}}const mS=Object.create(null);class gS{constructor(e,t,n,i=0){this.name=e,this.props=t,this.id=n,this.flags=i}static define(e){let t=e.props&&e.props.length?Object.create(null):mS,n=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(null==e.name?8:0),i=new gS(e.name||"",t,e.id,n);if(e.props)for(let n of e.props)if(Array.isArray(n)||(n=n(i)),n){if(n[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");t[n[0].id]=n[1]}return i}prop(e){return this.props[e.id]}get isTop(){return(1&this.flags)>0}get isSkipped(){return(2&this.flags)>0}get isError(){return(4&this.flags)>0}get isAnonymous(){return(8&this.flags)>0}is(e){if("string"==typeof e){if(this.name==e)return!0;let t=this.prop(dS.group);return!!t&&t.indexOf(e)>-1}return this.id==e}static match(e){let t=Object.create(null);for(let n in e)for(let i of n.split(" "))t[i]=e[n];return e=>{for(let n=e.prop(dS.group),i=-1;i<(n?n.length:0);i++){let o=t[i<0?e.name:n[i]];if(o)return o}}}}gS.none=new gS("",Object.create(null),0,8);class vS{constructor(e){this.types=e;for(let t=0;t=t){let s=new OS(r.tree,r.overlay[0].from+e.from,-1,e);(o||(o=[i])).push(SS(s,t,n,!1))}}return o?BS(o):i}(this,e,t)}iterate(e){let{enter:t,leave:n,from:i=0,to:o=this.length}=e,r=e.mode||0,s=(r&wS.IncludeAnonymous)>0;for(let e=this.cursor(r|wS.IncludeAnonymous);;){let r=!1;if(e.from<=o&&e.to>=i&&(!s&&e.type.isAnonymous||!1!==t(e))){if(e.firstChild())continue;r=!0}for(;r&&n&&(s||!e.type.isAnonymous)&&n(e),!e.nextSibling();){if(!e.parent())return;r=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let t in this.props)e.push([+t,this.props[t]]);return e}balance(e={}){return this.children.length<=8?this:IS(gS.none,this.children,this.positions,0,this.children.length,0,this.length,((e,t,n)=>new xS(this.type,e,t,n,this.propValues)),e.makeTree||((e,t,n)=>new xS(gS.none,e,t,n)))}static build(e){return function(e){var t;let{buffer:n,nodeSet:i,maxBufferLength:o=hS,reused:r=[],minRepeatType:s=i.types.length}=e,a=Array.isArray(n)?new _S(n,n.length):n,l=i.types,c=0,h=0;function u(e,t,n,g,v,y){let{id:b,start:w,end:x,size:_}=a,E=h;for(;_<0;){if(a.next(),-1==_){let t=r[b];return n.push(t),void g.push(w-e)}if(-3==_)return void(c=b);if(-4==_)return void(h=b);throw new RangeError(`Unrecognized record size: ${_}`)}let k,S,C=l[b],O=w-e;if(x-w<=o&&(S=function(e,t){let n=a.fork(),i=0,r=0,l=0,c=n.end-o,h={size:0,start:0,skip:0};e:for(let o=n.pos-e;n.pos>o;){let e=n.size;if(n.id==t&&e>=0){h.size=i,h.start=r,h.skip=l,l+=4,i+=4,n.next();continue}let a=n.pos-e;if(e<0||a=s?4:0,p=n.start;for(n.next();n.pos>a;){if(n.size<0){if(-3!=n.size)break e;u+=4}else n.id>=s&&(u+=4);n.next()}r=p,i+=e,l+=u}return(t<0||i==e)&&(h.size=i,h.start=r,h.skip=l),h.size>4?h:void 0}(a.pos-t,v))){let t=new Uint16Array(S.size-S.skip),n=a.pos-S.size,o=t.length;for(;a.pos>n;)o=m(S.start,t,o);k=new ES(t,x-S.start,i),O=S.start-e}else{let e=a.pos-_;a.next();let t=[],n=[],i=b>=s?b:-1,r=0,l=x;for(;a.pos>e;)i>=0&&a.id==i&&a.size>=0?(a.end<=l-o&&(d(t,n,w,r,a.end,l,i,E),r=t.length,l=a.end),a.next()):y>2500?p(w,e,t,n):u(w,e,t,n,i,y+1);if(i>=0&&r>0&&r-1&&r>0){let e=function(e){return(t,n,i)=>{let o,r,s=0,a=t.length-1;if(a>=0&&(o=t[a])instanceof xS){if(!a&&o.type==e&&o.length==i)return o;(r=o.prop(dS.lookAhead))&&(s=n[a]+o.length+r)}return f(e,t,n,i,s)}}(C);k=IS(C,t,n,0,t.length,0,x-w,e,e)}else k=f(C,t,n,x-w,E-x)}n.push(k),g.push(O)}function p(e,t,n,r){let s=[],l=0,c=-1;for(;a.pos>t;){let{id:e,start:t,end:n,size:i}=a;if(i>4)a.next();else{if(c>-1&&t=0;e-=3)t[n++]=s[e],t[n++]=s[e+1]-o,t[n++]=s[e+2]-o,t[n++]=n;n.push(new ES(t,s[2]-o,i)),r.push(o-e)}}function d(e,t,n,o,r,s,a,l){let c=[],h=[];for(;e.length>o;)c.push(e.pop()),h.push(t.pop()+n-r);e.push(f(i.types[a],c,h,s-r,l-s)),t.push(r-n)}function f(e,t,n,i,o=0,r){if(c){let e=[dS.contextHash,c];r=r?[e].concat(r):[e]}if(o>25){let e=[dS.lookAhead,o];r=r?[e].concat(r):[e]}return new xS(e,t,n,i,r)}function m(e,t,n){let{id:i,start:o,end:r,size:l}=a;if(a.next(),l>=0&&i4){let i=a.pos-(l-4);for(;a.pos>i;)n=m(e,t,n)}t[--n]=s,t[--n]=r-e,t[--n]=o-e,t[--n]=i}else-3==l?c=i:-4==l&&(h=i);return n}let g=[],v=[];for(;a.pos>0;)u(e.start||0,e.bufferStart||0,g,v,-1,0);let y=null!==(t=e.length)&&void 0!==t?t:g.length?v[0]+g[0].length:0;return new xS(l[e.topID],g.reverse(),v.reverse(),y)}(e)}}xS.empty=new xS(gS.none,[],[],0);class _S{constructor(e,t){this.buffer=e,this.index=t}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new _S(this.buffer,this.index)}}class ES{constructor(e,t,n){this.buffer=e,this.length=t,this.set=n}get type(){return gS.none}toString(){let e=[];for(let t=0;t0));a=r[a+3]);return s}slice(e,t,n){let i=this.buffer,o=new Uint16Array(t-e),r=0;for(let s=e,a=0;s=t&&nt;case 1:return n<=t&&i>t;case 2:return i>t;case 4:return!0}}function SS(e,t,n,i){for(var o;e.from==e.to||(n<1?e.from>=t:e.from>t)||(n>-1?e.to<=t:e.to0?s.length:-1;e!=l;e+=t){let l=s[e],c=a[e]+r.from;if(kS(i,n,c,c+l.length))if(l instanceof ES){if(o&wS.ExcludeBuffers)continue;let s=l.findChild(0,l.buffer.length,t,n-c,i);if(s>-1)return new TS(new AS(r,l,e,c),null,s)}else if(o&wS.IncludeAnonymous||!l.type.isAnonymous||LS(l)){let s;if(!(o&wS.IgnoreMounts)&&(s=fS.get(l))&&!s.overlay)return new OS(s.tree,c,e,r);let a=new OS(l,c,e,r);return o&wS.IncludeAnonymous||!a.type.isAnonymous?a:a.nextChild(t<0?l.children.length-1:0,t,n,i)}}if(o&wS.IncludeAnonymous||!r.type.isAnonymous)return null;if(e=r.index>=0?r.index+t:t<0?-1:r._parent._tree.children.length,r=r._parent,!r)return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}enter(e,t,n=0){let i;if(!(n&wS.IgnoreOverlays)&&(i=fS.get(this._tree))&&i.overlay){let n=e-this.from;for(let{from:e,to:o}of i.overlay)if((t>0?e<=n:e=n:o>n))return new OS(i.tree,i.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,t,n)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}}function PS(e,t,n,i){let o=e.cursor(),r=[];if(!o.firstChild())return r;if(null!=n)for(let e=!1;!e;)if(e=o.type.is(n),!o.nextSibling())return r;for(;;){if(null!=i&&o.type.is(i))return r;if(o.type.is(t)&&r.push(o.node),!o.nextSibling())return null==i?r:[]}}function MS(e,t,n=t.length-1){for(let i=e.parent;n>=0;i=i.parent){if(!i)return!1;if(!i.type.isAnonymous){if(t[n]&&t[n]!=i.name)return!1;n--}}return!0}class AS{constructor(e,t,n,i){this.parent=e,this.buffer=t,this.index=n,this.start=i}}class TS extends CS{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,t,n){super(),this.context=e,this._parent=t,this.index=n,this.type=e.buffer.set.types[e.buffer.buffer[n]]}child(e,t,n){let{buffer:i}=this.context,o=i.findChild(this.index+4,i.buffer[this.index+3],e,t-this.context.start,n);return o<0?null:new TS(this.context,this,o)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}enter(e,t,n=0){if(n&wS.ExcludeBuffers)return null;let{buffer:i}=this.context,o=i.findChild(this.index+4,i.buffer[this.index+3],t>0?1:-1,e-this.context.start,t);return o<0?null:new TS(this.context,this,o)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,t=e.buffer[this.index+3];return t<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new TS(this.context,this._parent,t):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,t=this._parent?this._parent.index+4:0;return this.index==t?this.externalSibling(-1):new TS(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}get tree(){return null}toTree(){let e=[],t=[],{buffer:n}=this.context,i=this.index+4,o=n.buffer[this.index+3];if(o>i){let r=n.buffer[this.index+1];e.push(n.slice(i,o,r)),t.push(0)}return new xS(this.type,e,t,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}}function BS(e){if(!e.length)return null;let t=0,n=e[0];for(let i=1;in.from||o.to0){if(this.index-1)for(let i=t+e,o=e<0?-1:n._tree.children.length;i!=o;i+=e){let e=n._tree.children[i];if(this.mode&wS.IncludeAnonymous||e instanceof ES||!e.type.isAnonymous||LS(e))return!1}return!0}move(e,t){if(t&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,t=0){for(;(this.from==this.to||(t<1?this.from>=e:this.from>e)||(t>-1?this.to<=e:this.to=0;){for(let r=e;r;r=r._parent)if(r.index==i){if(i==this.index)return r;t=r,n=o+1;break e}i=this.stack[--o]}for(let e=n;e=0;o--){if(o<0)return MS(this.node,e,i);let r=n[t.buffer[this.stack[o]]];if(!r.isAnonymous){if(e[i]&&e[i]!=r.name)return!1;i--}}return!0}}function LS(e){return e.children.some((e=>e instanceof ES||!e.type.isAnonymous||LS(e)))}const NS=new WeakMap;function zS(e,t){if(!e.isAnonymous||t instanceof ES||t.type!=e)return 1;let n=NS.get(t);if(null==n){n=1;for(let i of t.children){if(i.type!=e||!(i instanceof xS)){n=1;break}n+=zS(e,i)}NS.set(t,n)}return n}function IS(e,t,n,i,o,r,s,a,l){let c=0;for(let n=i;n=h)break;f+=t}if(c==o+1){if(f>h){let e=n[o];t(e.children,e.positions,0,e.children.length,i[o]+a);continue}u.push(n[o])}else{let t=i[c-1]+n[c-1].length-d;u.push(IS(e,n,i,o,c,d,t,null,l))}p.push(d+a-r)}}(t,n,i,o,0),(a||l)(u,p,s)}class FS{constructor(e,t,n,i,o=!1,r=!1){this.from=e,this.to=t,this.tree=n,this.offset=i,this.open=(o?1:0)|(r?2:0)}get openStart(){return(1&this.open)>0}get openEnd(){return(2&this.open)>0}static addTree(e,t=[],n=!1){let i=[new FS(0,e.length,e,0,!1,n)];for(let n of t)n.to>e.length&&i.push(n);return i}static applyChanges(e,t,n=128){if(!t.length)return e;let i=[],o=1,r=e.length?e[0]:null;for(let s=0,a=0,l=0;;s++){let c=s=n)for(;r&&r.from=t.from||h<=t.to||l){let e=Math.max(t.from,a)-l,n=Math.min(t.to,h)-l;t=e>=n?null:new FS(e,n,t.tree,t.offset+l,s>0,!!c)}if(t&&i.push(t),r.to>h)break;r=onew pS(e.from,e.to))):[new pS(0,0)]:[new pS(0,e.length)],this.createParse(e,t||[],n)}parse(e,t,n){let i=this.startParse(e,t,n);for(;;){let e=i.advance();if(e)return e}}}class jS{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,t){return this.string.slice(e,t)}}class qS{constructor(e,t,n,i,o){this.parser=e,this.parse=t,this.overlay=n,this.target=i,this.from=o}}function HS(e){if(!e.length||e.some((e=>e.from>=e.to)))throw new RangeError("Invalid inner parse ranges given: "+JSON.stringify(e))}class VS{constructor(e,t,n,i,o,r,s){this.parser=e,this.predicate=t,this.mounts=n,this.index=i,this.start=o,this.target=r,this.prev=s,this.depth=0,this.ranges=[]}}const WS=new dS({perNode:!0});class GS{constructor(e,t,n,i,o){this.nest=t,this.input=n,this.fragments=i,this.ranges=o,this.inner=[],this.innerDone=0,this.baseTree=null,this.stoppedAt=null,this.baseParse=e}advance(){if(this.baseParse){let e=this.baseParse.advance();if(!e)return null;if(this.baseParse=null,this.baseTree=e,this.startInner(),null!=this.stoppedAt)for(let e of this.inner)e.parse.stopAt(this.stoppedAt)}if(this.innerDone==this.inner.length){let e=this.baseTree;return null!=this.stoppedAt&&(e=new xS(e.type,e.children,e.positions,e.length,e.propValues.concat([[WS,this.stoppedAt]]))),e}let e=this.inner[this.innerDone],t=e.parse.advance();if(t){this.innerDone++;let n=Object.assign(Object.create(null),e.target.props);n[dS.mounted.id]=new fS(t,e.overlay,e.parser),e.target.props=n}return null}get parsedPos(){if(this.baseParse)return 0;let e=this.input.length;for(let t=this.innerDone;t=this.stoppedAt)a=!1;else if(e.hasNode(i)){if(t){let e=t.mounts.find((e=>e.frag.from<=i.from&&e.frag.to>=i.to&&e.mount.overlay));if(e)for(let n of e.mount.overlay){let o=n.from+e.pos,r=n.to+e.pos;o>=i.from&&r<=i.to&&!t.ranges.some((e=>e.fromo))&&t.ranges.push({from:o,to:r})}}a=!1}else if(n&&(r=QS(n.ranges,i.from,i.to)))a=2!=r;else if(!i.type.isAnonymous&&(o=this.nest(i,this.input))&&(i.fromnew pS(e.from-i.from,e.to-i.from))):null,i.tree,e.length?e[0].from:i.from)),o.overlay?e.length&&(n={ranges:e,depth:0,prev:n}):a=!1}}else t&&(s=t.predicate(i))&&(!0===s&&(s=new pS(i.from,i.to)),s.fromnew pS(e.from-t.start,e.to-t.start))),t.target,e[0].from))),t=t.prev}n&&! --n.depth&&(n=n.prev)}}}}function QS(e,t,n){for(let i of e){if(i.from>=n)break;if(i.to>t)return i.from<=t&&i.to>=n?2:1}return 0}function XS(e,t,n,i,o,r){if(t=e&&t.enter(n,1,wS.IgnoreOverlays|wS.ExcludeBuffers)||t.next(!1)||(this.done=!0)}hasNode(e){if(this.moveTo(e.from),!this.done&&this.cursor.from+this.offset==e.from&&this.cursor.tree)for(let t=this.cursor.tree;;){if(t==e.tree)return!0;if(!(t.children.length&&0==t.positions[0]&&t.children[0]instanceof xS))break;t=t.children[0]}return!1}}class KS{constructor(e){var t;if(this.fragments=e,this.curTo=0,this.fragI=0,e.length){let n=this.curFrag=e[0];this.curTo=null!==(t=n.tree.prop(WS))&&void 0!==t?t:n.to,this.inner=new YS(n.tree,-n.offset)}else this.curFrag=this.inner=null}hasNode(e){for(;this.curFrag&&e.from>=this.curTo;)this.nextFrag();return this.curFrag&&this.curFrag.from<=e.from&&this.curTo>=e.to&&this.inner.hasNode(e)}nextFrag(){var e;if(this.fragI++,this.fragI==this.fragments.length)this.curFrag=this.inner=null;else{let t=this.curFrag=this.fragments[this.fragI];this.curTo=null!==(e=t.tree.prop(WS))&&void 0!==e?e:t.to,this.inner=new YS(t.tree,-t.offset)}}findMounts(e,t){var n;let i=[];if(this.inner){this.inner.cursor.moveTo(e,1);for(let e=this.inner.cursor.node;e;e=e.parent){let o=null===(n=e.tree)||void 0===n?void 0:n.prop(dS.mounted);if(o&&o.parser==t)for(let t=this.fragI;t=e.to)break;n.tree==this.curFrag.tree&&i.push({frag:n,pos:e.from-n.offset,mount:o})}}}return i}}function ZS(e,t){let n=null,i=t;for(let o=1,r=0;o=a)break;e.to<=s||(n||(i=n=t.slice()),e.froma&&n.splice(r+1,0,new pS(a,e.to))):e.to>a?n[r--]=new pS(a,e.to):n.splice(r--,1))}}return i}function JS(e,t,n,i){let o=0,r=0,s=!1,a=!1,l=-1e9,c=[];for(;;){let h=o==e.length?1e9:s?e[o].to:e[o].from,u=r==t.length?1e9:a?t[r].to:t[r].from;if(s!=a){let e=Math.max(l,n),t=Math.min(h,u,i);enew pS(e.from+i,e.to+i))),a,l);for(let t=0,i=a;;t++){let a=t==s.length,c=a?l:s[t].from;if(c>i&&n.push(new FS(i,c,o.tree,-e,r.from>=i||r.openStart,r.to<=c||r.openEnd)),a)break;i=s[t].to}}else n.push(new FS(a,l,o.tree,-e,r.from>=e||r.openStart,r.to<=s||r.openEnd))}return n}class tC{constructor(e,t,n,i,o,r,s,a,l,c=0,h){this.p=e,this.stack=t,this.state=n,this.reducePos=i,this.pos=o,this.score=r,this.buffer=s,this.bufferBase=a,this.curContext=l,this.lookAhead=c,this.parent=h}toString(){return`[${this.stack.filter(((e,t)=>t%3==0)).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,t,n=0){let i=e.parser.context;return new tC(e,[],t,n,n,0,[],0,i?new nC(i,i.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,t){this.stack.push(this.state,t,this.bufferBase+this.buffer.length),this.state=e}reduce(e){var t;let n=e>>19,i=65535&e,{parser:o}=this.p,r=this.reducePos=2e3&&!(null===(t=this.p.parser.nodeSet.types[i])||void 0===t?void 0:t.isAnonymous)&&(l==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=c):this.p.lastBigReductionSizea;)this.stack.pop();this.reduceContext(i,l)}storeNode(e,t,n,i=4,o=!1){if(0==e&&(!this.stack.length||this.stack[this.stack.length-1]0&&0==e.buffer[i-4]&&e.buffer[i-1]>-1){if(t==n)return;if(e.buffer[i-2]>=t)return void(e.buffer[i-2]=n)}}if(o&&this.pos!=n){let o=this.buffer.length;if(o>0&&0!=this.buffer[o-4]){let e=!1;for(let t=o;t>0&&this.buffer[t-2]>n;t-=4)if(this.buffer[t-1]>=0){e=!0;break}if(e)for(;o>0&&this.buffer[o-2]>n;)this.buffer[o]=this.buffer[o-4],this.buffer[o+1]=this.buffer[o-3],this.buffer[o+2]=this.buffer[o-2],this.buffer[o+3]=this.buffer[o-1],o-=4,i>4&&(i-=4)}this.buffer[o]=e,this.buffer[o+1]=t,this.buffer[o+2]=n,this.buffer[o+3]=i}else this.buffer.push(e,t,n,i)}shift(e,t,n,i){if(131072&e)this.pushState(65535&e,this.pos);else if(262144&e)this.pos=i,this.shiftContext(t,n),t<=this.p.parser.maxNode&&this.buffer.push(t,n,i,4);else{let o=e,{parser:r}=this.p;(i>this.pos||t<=r.maxNode)&&(this.pos=i,r.stateFlag(o,1)||(this.reducePos=i)),this.pushState(o,n),this.shiftContext(t,n),t<=r.maxNode&&this.buffer.push(t,n,i,4)}}apply(e,t,n,i){65536&e?this.reduce(e):this.shift(e,t,n,i)}useNode(e,t){let n=this.p.reused.length-1;(n<0||this.p.reused[n]!=e)&&(this.p.reused.push(e),n++);let i=this.pos;this.reducePos=this.pos=i+e.length,this.pushState(t,i),this.buffer.push(n,i,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this,this.p.stream.reset(this.pos-e.length)))}split(){let e=this,t=e.buffer.length;for(;t>0&&e.buffer[t-2]>e.reducePos;)t-=4;let n=e.buffer.slice(t),i=e.bufferBase+t;for(;e&&i==e.bufferBase;)e=e.parent;return new tC(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,n,i,this.curContext,this.lookAhead,e)}recoverByDelete(e,t){let n=e<=this.p.parser.maxNode;n&&this.storeNode(e,this.pos,t,4),this.storeNode(0,this.pos,t,n?8:4),this.pos=this.reducePos=t,this.score-=190}canShift(e){for(let t=new iC(this);;){let n=this.p.parser.stateSlot(t.state,4)||this.p.parser.hasAction(t.state,e);if(0==n)return!1;if(!(65536&n))return!0;t.reduce(n)}}recoverByInsert(e){if(this.stack.length>=300)return[];let t=this.p.parser.nextStates(this.state);if(t.length>8||this.stack.length>=120){let n=[];for(let i,o=0;o1&t&&e==i))||n.push(t[e],i)}t=n}let n=[];for(let e=0;e>19,i=65535&t,o=this.stack.length-3*n;if(o<0||e.getGoto(this.stack[o],i,!1)<0){let e=this.findForcedReduction();if(null==e)return!1;t=e}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(t),!0}findForcedReduction(){let{parser:e}=this.p,t=[],n=(i,o)=>{if(!t.includes(i))return t.push(i),e.allActions(i,(t=>{if(393216&t);else if(65536&t){let n=(t>>19)-o;if(n>1){let i=65535&t,o=this.stack.length-3*n;if(o>=0&&e.getGoto(this.stack[o],i,!1)>=0)return n<<19|65536|i}}else{let e=n(t,o+1);if(null!=e)return e}}))};return n(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(3!=this.stack.length)return!1;let{parser:e}=this.p;return 65535==e.data[e.stateSlot(this.state,1)]&&!e.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let t=0;tthis.lookAhead&&(this.emitLookAhead(),this.lookAhead=e)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}}class nC{constructor(e,t){this.tracker=e,this.context=t,this.hash=e.strict?e.hash(t):0}}class iC{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let t=65535&e,n=e>>19;0==n?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=3*(n-1);let i=this.start.p.parser.getGoto(this.stack[this.base-3],t,!0);this.state=i}}class oC{constructor(e,t,n){this.stack=e,this.pos=t,this.index=n,this.buffer=e.buffer,0==this.index&&this.maybeNext()}static create(e,t=e.bufferBase+e.buffer.length){return new oC(e,t,t-e.bufferBase)}maybeNext(){let e=this.stack.parent;null!=e&&(this.index=this.stack.bufferBase-e.bufferBase,this.stack=e,this.buffer=e.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,0==this.index&&this.maybeNext()}fork(){return new oC(this.stack,this.pos,this.index)}}function rC(e,t=Uint16Array){if("string"!=typeof e)return e;let n=null;for(let i=0,o=0;i=92&&t--,t>=34&&t--;let o=t-32;if(o>=46&&(o-=46,n=!0),r+=o,n)break;r*=46}n?n[o++]=r:n=new t(r)}return n}class sC{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}}const aC=new sC;class lC{constructor(e,t){this.input=e,this.ranges=t,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=aC,this.rangeIndex=0,this.pos=this.chunkPos=t[0].from,this.range=t[0],this.end=t[t.length-1].to,this.readNext()}resolveOffset(e,t){let n=this.range,i=this.rangeIndex,o=this.pos+e;for(;on.to:o>=n.to;){if(i==this.ranges.length-1)return null;let e=this.ranges[++i];o+=e.from-n.to,n=e}return o}clipPos(e){if(e>=this.range.from&&ee)return Math.max(e,t.from);return this.end}peek(e){let t,n,i=this.chunkOff+e;if(i>=0&&i=this.chunk2Pos&&ti.to&&(this.chunk2=this.chunk2.slice(0,i.to-t)),n=this.chunk2.charCodeAt(0)}}return t>=this.token.lookAhead&&(this.token.lookAhead=t+1),n}acceptToken(e,t=0){let n=t?this.resolveOffset(t,-1):this.pos;if(null==n||n=this.chunk2Pos&&this.posthis.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(e,t){if(t?(this.token=t,t.start=e,t.lookAhead=e+1,t.value=t.extended=-1):this.token=aC,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e=this.chunkPos&&t<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,t-this.chunkPos);if(e>=this.chunk2Pos&&t<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,t-this.chunk2Pos);if(e>=this.range.from&&t<=this.range.to)return this.input.read(e,t);let n="";for(let i of this.ranges){if(i.from>=t)break;i.to>e&&(n+=this.input.read(Math.max(i.from,e),Math.min(i.to,t)))}return n}}class cC{constructor(e,t){this.data=e,this.id=t}token(e,t){let{parser:n}=t.p;!function(e,t,n,i,o,r){let s=0,a=1<0){let n=e[i];if(l.allows(n)&&(-1==t.token.value||t.token.value==n||pC(n,t.token.value,o,r))){t.acceptToken(n);break}}let i=t.next,c=0,h=e[s+2];if(!(t.next<0&&h>c&&65535==e[n+3*h-3])){for(;c>1,r=n+o+(o<<1),a=e[r],l=e[r+1]||65536;if(i=l)){s=e[r+2],t.advance();continue e}c=o+1}}break}s=e[n+3*h-1]}}(this.data,e,t,this.id,n.data,n.tokenPrecTable)}}cC.prototype.contextual=cC.prototype.fallback=cC.prototype.extend=!1,cC.prototype.fallback=cC.prototype.extend=!1;class hC{constructor(e,t={}){this.token=e,this.contextual=!!t.contextual,this.fallback=!!t.fallback,this.extend=!!t.extend}}function uC(e,t,n){for(let i,o=t;65535!=(i=e[o]);o++)if(i==n)return o-t;return-1}function pC(e,t,n,i){let o=uC(n,i,t);return o<0||uC(n,i,e)t)&&!i.type.isError)return n<0?Math.max(0,Math.min(i.to-1,t-25)):Math.min(e.length,Math.max(i.from+1,t+25));if(n<0?i.prevSibling():i.nextSibling())break;if(!i.parent())return n<0?0:e.length}}class gC{constructor(e,t){this.fragments=e,this.nodeSet=t,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let e=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(e){for(this.safeFrom=e.openStart?mC(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?mC(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(ee)return this.nextStart=r,null;if(o instanceof xS){if(r==e){if(r=Math.max(this.safeFrom,e)&&(this.trees.push(o),this.start.push(r),this.index.push(0))}else this.index[t]++,this.nextStart=r+o.length}}}class vC{constructor(e,t){this.stream=t,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map((e=>new sC))}getActions(e){let t=0,n=null,{parser:i}=e.p,{tokenizers:o}=i,r=i.stateSlot(e.state,3),s=e.curContext?e.curContext.hash:0,a=0;for(let i=0;ic.end+25&&(a=Math.max(c.lookAhead,a)),0!=c.value)){let i=t;if(c.extended>-1&&(t=this.addActions(e,c.extended,c.end,t)),t=this.addActions(e,c.value,c.end,t),!l.extend&&(n=c,t>i))break}}for(;this.actions.length>t;)this.actions.pop();return a&&e.setLookAhead(a),n||e.pos!=this.stream.end||(n=new sC,n.value=e.p.parser.eofTerm,n.start=n.end=e.pos,t=this.addActions(e,n.value,n.end,t)),this.mainToken=n,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let t=new sC,{pos:n,p:i}=e;return t.start=n,t.end=Math.min(n+1,i.stream.end),t.value=n==i.stream.end?i.parser.eofTerm:0,t}updateCachedToken(e,t,n){let i=this.stream.clipPos(n.pos);if(t.token(this.stream.reset(i,e),n),e.value>-1){let{parser:t}=n.p;for(let i=0;i=0&&n.p.parser.dialect.allows(o>>1)){1&o?e.extended=o>>1:e.value=o>>1;break}}}else e.value=0,e.end=this.stream.clipPos(i+1)}putAction(e,t,n,i){for(let t=0;t4*e.bufferLength?new gC(n,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e,t,n=this.stacks,i=this.minStackPos,o=this.stacks=[];if(this.bigReductionCount>300&&1==n.length){let[e]=n;for(;e.forceReduce()&&e.stack.length&&e.stack[e.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let r=0;ri)o.push(s);else{if(this.advanceStack(s,o,n))continue;{e||(e=[],t=[]),e.push(s);let n=this.tokens.getMainToken(s);t.push(n.value,n.end)}}break}}if(!o.length){let t=e&&function(e){let t=null;for(let n of e){let e=n.p.stoppedAt;(n.pos==n.p.stream.end||null!=e&&n.pos>e)&&n.p.parser.stateFlag(n.state,2)&&(!t||t.scorethis.stoppedAt?e[0]:this.runRecovery(e,t,o);if(n)return dC&&console.log("Force-finish "+this.stackID(n)),this.stackToTree(n.forceAll())}if(this.recovering){let e=1==this.recovering?1:3*this.recovering;if(o.length>e)for(o.sort(((e,t)=>t.score-e.score));o.length>e;)o.pop();o.some((e=>e.reducePos>i))&&this.recovering--}else if(o.length>1){e:for(let e=0;e500&&i.buffer.length>500){if(!((t.score-i.score||t.buffer.length-i.buffer.length)>0)){o.splice(e--,1);continue e}o.splice(n--,1)}}}o.length>12&&o.splice(12,o.length-12)}this.minStackPos=o[0].pos;for(let e=1;e ":"";if(null!=this.stoppedAt&&i>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let t=e.curContext&&e.curContext.tracker.strict,n=t?e.curContext.hash:0;for(let s=this.fragments.nodeAt(i);s;){let i=this.parser.nodeSet.types[s.type.id]==s.type?o.getGoto(e.state,s.type.id):-1;if(i>-1&&s.length&&(!t||(s.prop(dS.contextHash)||0)==n))return e.useNode(s,i),dC&&console.log(r+this.stackID(e)+` (via reuse of ${o.getName(s.type.id)})`),!0;if(!(s instanceof xS)||0==s.children.length||s.positions[0]>0)break;let a=s.children[0];if(!(a instanceof xS&&0==s.positions[0]))break;s=a}}let s=o.stateSlot(e.state,4);if(s>0)return e.reduce(s),dC&&console.log(r+this.stackID(e)+` (via always-reduce ${o.getName(65535&s)})`),!0;if(e.stack.length>=8400)for(;e.stack.length>6e3&&e.forceReduce(););let a=this.tokens.getActions(e);for(let s=0;si?t.push(p):n.push(p)}return!1}advanceFully(e,t){let n=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>n)return bC(e,t),!0}}runRecovery(e,t,n){let i=null,o=!1;for(let r=0;r ":"";if(s.deadEnd){if(o)continue;if(o=!0,s.restart(),dC&&console.log(c+this.stackID(s)+" (restarted)"),this.advanceFully(s,n))continue}let h=s.split(),u=c;for(let e=0;h.forceReduce()&&e<10&&(dC&&console.log(u+this.stackID(h)+" (via force-reduce)"),!this.advanceFully(h,n));e++)dC&&(u=this.stackID(h)+" -> ");for(let e of s.recoverByInsert(a))dC&&console.log(c+this.stackID(e)+" (via recover-insert)"),this.advanceFully(e,n);this.stream.end>s.pos?(l==s.pos&&(l++,a=0),s.recoverByDelete(a,l),dC&&console.log(c+this.stackID(s)+` (via recover-delete ${this.parser.getName(a)})`),bC(s,n)):(!i||i.scoree;class _C{constructor(e){this.start=e.start,this.shift=e.shift||xC,this.reduce=e.reduce||xC,this.reuse=e.reuse||xC,this.hash=e.hash||(()=>0),this.strict=!1!==e.strict}}class EC extends $S{constructor(e){if(super(),this.wrappers=[],14!=e.version)throw new RangeError(`Parser version (${e.version}) doesn't match runtime version (14)`);let t=e.nodeNames.split(" ");this.minRepeatTerm=t.length;for(let n=0;ne.topRules[t][1])),i=[];for(let e=0;e=0)o(i,e,t[n++]);else{let r=t[n+-i];for(let s=-i;s>0;s--)o(t[n++],e,r);n++}}}this.nodeSet=new vS(t.map(((t,o)=>gS.define({name:o>=this.minRepeatTerm?void 0:t,id:o,props:i[o],top:n.indexOf(o)>-1,error:0==o,skipped:e.skippedNodes&&e.skippedNodes.indexOf(o)>-1})))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=hS;let r=rC(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let e=0;e"number"==typeof e?new cC(r,e):e)),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,t,n){let i=new yC(this,e,t,n);for(let o of this.wrappers)i=o(i,e,t,n);return i}getGoto(e,t,n=!1){let i=this.goto;if(t>=i[0])return-1;for(let o=i[t+1];;){let t=i[o++],r=1&t,s=i[o++];if(r&&n)return s;for(let n=o+(t>>1);o0}validAction(e,t){return!!this.allActions(e,(e=>e==t||null))}allActions(e,t){let n=this.stateSlot(e,4),i=n?t(n):void 0;for(let n=this.stateSlot(e,1);null==i;n+=3){if(65535==this.data[n]){if(1!=this.data[n+1])break;n=kC(this.data,n+2)}i=t(kC(this.data,n+1))}return i}nextStates(e){let t=[];for(let n=this.stateSlot(e,1);;n+=3){if(65535==this.data[n]){if(1!=this.data[n+1])break;n=kC(this.data,n+2)}if(!(1&this.data[n+2])){let e=this.data[n+1];t.some(((t,n)=>1&n&&t==e))||t.push(this.data[n],e)}}return t}configure(e){let t=Object.assign(Object.create(EC.prototype),this);if(e.props&&(t.nodeSet=this.nodeSet.extend(...e.props)),e.top){let n=this.topRules[e.top];if(!n)throw new RangeError(`Invalid top rule name ${e.top}`);t.top=n}return e.tokenizers&&(t.tokenizers=this.tokenizers.map((t=>{let n=e.tokenizers.find((e=>e.from==t));return n?n.to:t}))),e.specializers&&(t.specializers=this.specializers.slice(),t.specializerSpecs=this.specializerSpecs.map(((n,i)=>{let o=e.specializers.find((e=>e.from==n.external));if(!o)return n;let r=Object.assign(Object.assign({},n),{external:o.to});return t.specializers[i]=SC(r),r}))),e.contextTracker&&(t.context=e.contextTracker),e.dialect&&(t.dialect=this.parseDialect(e.dialect)),null!=e.strict&&(t.strict=e.strict),e.wrap&&(t.wrappers=t.wrappers.concat(e.wrap)),null!=e.bufferLength&&(t.bufferLength=e.bufferLength),t}hasWrappers(){return this.wrappers.length>0}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(e){let t=this.dynamicPrecedences;return null==t?0:t[e]||0}parseDialect(e){let t=Object.keys(this.dialects),n=t.map((()=>!1));if(e)for(let i of e.split(" ")){let e=t.indexOf(i);e>=0&&(n[e]=!0)}let i=null;for(let e=0;ee.external(n,i)<<1|t}return e.get}let CC=0;class OC{constructor(e,t,n,i){this.name=e,this.set=t,this.base=n,this.modified=i,this.id=CC++}toString(){let{name:e}=this;for(let t of this.modified)t.name&&(e=`${t.name}(${e})`);return e}static define(e,t){let n="string"==typeof e?e:"?";if(e instanceof OC&&(t=e),null==t?void 0:t.base)throw new Error("Can not derive from a modified tag");let i=new OC(n,[],null,[]);if(i.set.push(i),t)for(let e of t.set)i.set.push(e);return i}static defineModifier(e){let t=new MC(e);return e=>e.modified.indexOf(t)>-1?e:MC.get(e.base||e,e.modified.concat(t).sort(((e,t)=>e.id-t.id)))}}let PC=0;class MC{constructor(e){this.name=e,this.instances=[],this.id=PC++}static get(e,t){if(!t.length)return e;let n=t[0].instances.find((n=>n.base==e&&function(e,t){return e.length==t.length&&e.every(((e,n)=>e==t[n]))}(t,n.modified)));if(n)return n;let i=[],o=new OC(e.name,i,e,t);for(let e of t)e.instances.push(o);let r=function(e){let t=[[]];for(let n=0;nt.length-e.length))}(t);for(let t of e.set)if(!t.modified.length)for(let e of r)i.push(MC.get(t,e));return o}}function AC(e){let t=Object.create(null);for(let n in e){let i=e[n];Array.isArray(i)||(i=[i]);for(let e of n.split(" "))if(e){let n=[],o=2,r=e;for(let t=0;;){if("..."==r&&t>0&&t+3==e.length){o=1;break}let i=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(r);if(!i)throw new RangeError("Invalid path: "+e);if(n.push("*"==i[0]?"":'"'==i[0][0]?JSON.parse(i[0]):i[0]),t+=i[0].length,t==e.length)break;let s=e[t++];if(t==e.length&&"!"==s){o=0;break}if("/"!=s)throw new RangeError("Invalid path: "+e);r=e.slice(t)}let s=n.length-1,a=n[s];if(!a)throw new RangeError("Invalid path: "+e);let l=new BC(i,o,s>0?n.slice(0,s):null);t[a]=l.sort(t[a])}}return TC.add(t)}const TC=new dS;class BC{constructor(e,t,n,i){this.tags=e,this.mode=t,this.context=n,this.next=i}get opaque(){return 0==this.mode}get inherit(){return 1==this.mode}sort(e){return!e||e.depth{let t=o;for(let i of e)for(let e of i.set){let i=n[e.id];if(i){t=t?t+" "+i:i;break}}return t},scope:i}}function DC(e,t,n,i=0,o=e.length){let r=new LC(i,Array.isArray(t)?t:[t],n);r.highlightRange(e.cursor(),i,o,"",r.highlighters),r.flush(o)}BC.empty=new BC([],2,null);class LC{constructor(e,t,n){this.at=e,this.highlighters=t,this.span=n,this.class=""}startSpan(e,t){t!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=t)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,t,n,i,o){let{type:r,from:s,to:a}=e;if(s>=n||a<=t)return;r.isTop&&(o=this.highlighters.filter((e=>!e.scope||e.scope(r))));let l=i,c=function(e){let t=e.type.prop(TC);for(;t&&t.context&&!e.matchContext(t.context);)t=t.next;return t||null}(e)||BC.empty,h=function(e,t){let n=null;for(let i of e){let e=i.style(t);e&&(n=n?n+" "+e:e)}return n}(o,c.tags);if(h&&(l&&(l+=" "),l+=h,1==c.mode&&(i+=(i?" ":"")+h)),this.startSpan(Math.max(t,s),l),c.opaque)return;let u=e.tree&&e.tree.prop(dS.mounted);if(u&&u.overlay){let r=e.node.enter(u.overlay[0].from+s,1),c=this.highlighters.filter((e=>!e.scope||e.scope(u.tree.type))),h=e.firstChild();for(let p=0,d=s;;p++){let f=p=m)&&e.nextSibling()););if(!f||m>n)break;d=f.to+s,d>t&&(this.highlightRange(r.cursor(),Math.max(t,f.from+s),Math.min(n,d),"",c),this.startSpan(Math.min(n,d),l))}h&&e.parent()}else if(e.firstChild()){u&&(i="");do{if(!(e.to<=t)){if(e.from>=n)break;this.highlightRange(e,t,n,i,o),this.startSpan(Math.min(n,e.to),l)}}while(e.nextSibling());e.parent()}}}const NC=OC.define,zC=NC(),IC=NC(),FC=NC(IC),$C=NC(IC),jC=NC(),qC=NC(jC),HC=NC(jC),VC=NC(),WC=NC(VC),GC=NC(),QC=NC(),XC=NC(),UC=NC(XC),YC=NC(),KC={comment:zC,lineComment:NC(zC),blockComment:NC(zC),docComment:NC(zC),name:IC,variableName:NC(IC),typeName:FC,tagName:NC(FC),propertyName:$C,attributeName:NC($C),className:NC(IC),labelName:NC(IC),namespace:NC(IC),macroName:NC(IC),literal:jC,string:qC,docString:NC(qC),character:NC(qC),attributeValue:NC(qC),number:HC,integer:NC(HC),float:NC(HC),bool:NC(jC),regexp:NC(jC),escape:NC(jC),color:NC(jC),url:NC(jC),keyword:GC,self:NC(GC),null:NC(GC),atom:NC(GC),unit:NC(GC),modifier:NC(GC),operatorKeyword:NC(GC),controlKeyword:NC(GC),definitionKeyword:NC(GC),moduleKeyword:NC(GC),operator:QC,derefOperator:NC(QC),arithmeticOperator:NC(QC),logicOperator:NC(QC),bitwiseOperator:NC(QC),compareOperator:NC(QC),updateOperator:NC(QC),definitionOperator:NC(QC),typeOperator:NC(QC),controlOperator:NC(QC),punctuation:XC,separator:NC(XC),bracket:UC,angleBracket:NC(UC),squareBracket:NC(UC),paren:NC(UC),brace:NC(UC),content:VC,heading:WC,heading1:NC(WC),heading2:NC(WC),heading3:NC(WC),heading4:NC(WC),heading5:NC(WC),heading6:NC(WC),contentSeparator:NC(VC),list:NC(VC),quote:NC(VC),emphasis:NC(VC),strong:NC(VC),link:NC(VC),monospace:NC(VC),strikethrough:NC(VC),inserted:NC(),deleted:NC(),changed:NC(),invalid:NC(),meta:YC,documentMeta:NC(YC),annotation:NC(YC),processingInstruction:NC(YC),definition:OC.defineModifier("definition"),constant:OC.defineModifier("constant"),function:OC.defineModifier("function"),standard:OC.defineModifier("standard"),local:OC.defineModifier("local"),special:OC.defineModifier("special")};for(let e in KC){let t=KC[e];t instanceof OC&&(t.name=e)}RC([{tag:KC.link,class:"tok-link"},{tag:KC.heading,class:"tok-heading"},{tag:KC.emphasis,class:"tok-emphasis"},{tag:KC.strong,class:"tok-strong"},{tag:KC.keyword,class:"tok-keyword"},{tag:KC.atom,class:"tok-atom"},{tag:KC.bool,class:"tok-bool"},{tag:KC.url,class:"tok-url"},{tag:KC.labelName,class:"tok-labelName"},{tag:KC.inserted,class:"tok-inserted"},{tag:KC.deleted,class:"tok-deleted"},{tag:KC.literal,class:"tok-literal"},{tag:KC.string,class:"tok-string"},{tag:KC.number,class:"tok-number"},{tag:[KC.regexp,KC.escape,KC.special(KC.string)],class:"tok-string2"},{tag:KC.variableName,class:"tok-variableName"},{tag:KC.local(KC.variableName),class:"tok-variableName tok-local"},{tag:KC.definition(KC.variableName),class:"tok-variableName tok-definition"},{tag:KC.special(KC.variableName),class:"tok-variableName2"},{tag:KC.definition(KC.propertyName),class:"tok-propertyName tok-definition"},{tag:KC.typeName,class:"tok-typeName"},{tag:KC.namespace,class:"tok-namespace"},{tag:KC.className,class:"tok-className"},{tag:KC.macroName,class:"tok-macroName"},{tag:KC.propertyName,class:"tok-propertyName"},{tag:KC.operator,class:"tok-operator"},{tag:KC.comment,class:"tok-comment"},{tag:KC.meta,class:"tok-meta"},{tag:KC.invalid,class:"tok-invalid"},{tag:KC.punctuation,class:"tok-punctuation"}]);class ZC{lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,n){[e,t]=aO(this,e,t);let i=[];return this.decompose(0,e,i,2),n.length&&n.decompose(0,n.length,i,3),this.decompose(t,this.length,i,1),eO.from(i,this.length-(t-e)+n.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){[e,t]=aO(this,e,t);let n=[];return this.decompose(e,t,n,0),eO.from(n,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=this.scanIdentical(e,1),n=this.length-this.scanIdentical(e,-1),i=new iO(this),o=new iO(e);for(let e=t,r=t;;){if(i.next(e),o.next(e),e=0,i.lineBreak!=o.lineBreak||i.done!=o.done||i.value!=o.value)return!1;if(r+=i.value.length,i.done||r>=n)return!0}}iter(e=1){return new iO(this,e)}iterRange(e,t=this.length){return new oO(this,e,t)}iterLines(e,t){let n;if(null==e)n=this.iter();else{null==t&&(t=this.lines+1);let i=this.line(e).from;n=this.iterRange(i,Math.max(i,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new rO(n)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(0==e.length)throw new RangeError("A document must have at least one line");return 1!=e.length||e[0]?e.length<=32?new JC(e):eO.from(JC.split(e,[])):ZC.empty}}class JC extends ZC{constructor(e,t=function(e){let t=-1;for(let n of e)t+=n.length+1;return t}(e)){super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,n,i){for(let o=0;;o++){let r=this.text[o],s=i+r.length;if((t?n:s)>=e)return new sO(i,s,n,r);i=s+1,n++}}decompose(e,t,n,i){let o=e<=0&&t>=this.length?this:new JC(nO(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(1&i){let e=n.pop(),t=tO(o.text,e.text.slice(),0,o.length);if(t.length<=32)n.push(new JC(t,e.length+o.length));else{let e=t.length>>1;n.push(new JC(t.slice(0,e)),new JC(t.slice(e)))}}else n.push(o)}replace(e,t,n){if(!(n instanceof JC))return super.replace(e,t,n);[e,t]=aO(this,e,t);let i=tO(this.text,tO(n.text,nO(this.text,0,e)),t),o=this.length+n.length-(t-e);return i.length<=32?new JC(i,o):eO.from(JC.split(i,[]),o)}sliceString(e,t=this.length,n="\n"){[e,t]=aO(this,e,t);let i="";for(let o=0,r=0;o<=t&&re&&r&&(i+=n),eo&&(i+=s.slice(Math.max(0,e-o),t-o)),o=a+1}return i}flatten(e){for(let t of this.text)e.push(t)}scanIdentical(){return 0}static split(e,t){let n=[],i=-1;for(let o of e)n.push(o),i+=o.length+1,32==n.length&&(t.push(new JC(n,i)),n=[],i=-1);return i>-1&&t.push(new JC(n,i)),t}}class eO extends ZC{constructor(e,t){super(),this.children=e,this.length=t,this.lines=0;for(let t of e)this.lines+=t.lines}lineInner(e,t,n,i){for(let o=0;;o++){let r=this.children[o],s=i+r.length,a=n+r.lines-1;if((t?a:s)>=e)return r.lineInner(e,t,n,i);i=s+1,n=a+1}}decompose(e,t,n,i){for(let o=0,r=0;r<=t&&o=r){let o=i&((r<=e?1:0)|(a>=t?2:0));r>=e&&a<=t&&!o?n.push(s):s.decompose(e-r,t-r,n,o)}r=a+1}}replace(e,t,n){if([e,t]=aO(this,e,t),n.lines=o&&t<=s){let a=r.replace(e-o,t-o,n),l=this.lines-r.lines+a.lines;if(a.lines>4&&a.lines>l>>6){let o=this.children.slice();return o[i]=a,new eO(o,this.length-(t-e)+n.length)}return super.replace(o,s,a)}o=s+1}return super.replace(e,t,n)}sliceString(e,t=this.length,n="\n"){[e,t]=aO(this,e,t);let i="";for(let o=0,r=0;oe&&o&&(i+=n),er&&(i+=s.sliceString(e-r,t-r,n)),r=a+1}return i}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(e,t){if(!(e instanceof eO))return 0;let n=0,[i,o,r,s]=t>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;i+=t,o+=t){if(i==r||o==s)return n;let a=this.children[i],l=e.children[o];if(a!=l)return n+a.scanIdentical(l,t);n+=a.length+1}}static from(e,t=e.reduce(((e,t)=>e+t.length+1),-1)){let n=0;for(let t of e)n+=t.lines;if(n<32){let n=[];for(let t of e)t.flatten(n);return new JC(n,t)}let i=Math.max(32,n>>5),o=i<<1,r=i>>1,s=[],a=0,l=-1,c=[];function h(e){let t;if(e.lines>o&&e instanceof eO)for(let t of e.children)h(t);else e.lines>r&&(a>r||!a)?(u(),s.push(e)):e instanceof JC&&a&&(t=c[c.length-1])instanceof JC&&e.lines+t.lines<=32?(a+=e.lines,l+=e.length+1,c[c.length-1]=new JC(t.text.concat(e.text),t.length+1+e.length)):(a+e.lines>i&&u(),a+=e.lines,l+=e.length+1,c.push(e))}function u(){0!=a&&(s.push(1==c.length?c[0]:eO.from(c,l)),l=-1,a=c.length=0)}for(let t of e)h(t);return u(),1==s.length?s[0]:new eO(s,t)}}function tO(e,t,n=0,i=1e9){for(let o=0,r=0,s=!0;r=n&&(l>i&&(a=a.slice(0,i-o)),o0?1:(e instanceof JC?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let n=this.nodes.length-1,i=this.nodes[n],o=this.offsets[n],r=o>>1,s=i instanceof JC?i.text.length:i.children.length;if(r==(t>0?s:0)){if(0==n)return this.done=!0,this.value="",this;t>0&&this.offsets[n-1]++,this.nodes.pop(),this.offsets.pop()}else if((1&o)==(t>0?0:1)){if(this.offsets[n]+=t,0==e)return this.lineBreak=!0,this.value="\n",this;e--}else if(i instanceof JC){let o=i.text[r+(t<0?-1:0)];if(this.offsets[n]+=t,o.length>Math.max(0,e))return this.value=0==e?o:t>0?o.slice(e):o.slice(0,o.length-e),this;e-=o.length}else{let o=i.children[r+(t<0?-1:0)];e>o.length?(e-=o.length,this.offsets[n]+=t):(t<0&&this.offsets[n]--,this.nodes.push(o),this.offsets.push(t>0?1:(o instanceof JC?o.text.length:o.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}}class oO{constructor(e,t,n){this.value="",this.done=!1,this.cursor=new iO(e,t>n?-1:1),this.pos=t>n?e.length:0,this.from=Math.min(t,n),this.to=Math.max(t,n)}nextInner(e,t){if(t<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,t<0?this.pos-this.to:this.from-this.pos);let n=t<0?this.pos-this.from:this.to-this.pos;e>n&&(e=n),n-=e;let{value:i}=this.cursor.next(e);return this.pos+=(i.length+e)*t,this.value=i.length<=n?i:t<0?i.slice(i.length-n):i.slice(0,n),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&""!=this.value}}class rO{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:t,lineBreak:n,value:i}=this.inner.next(e);return t&&this.afterBreak?(this.value="",this.afterBreak=!1):t?(this.done=!0,this.value=""):n?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=i,this.afterBreak=!1),this}get lineBreak(){return!1}}"undefined"!=typeof Symbol&&(ZC.prototype[Symbol.iterator]=function(){return this.iter()},iO.prototype[Symbol.iterator]=oO.prototype[Symbol.iterator]=rO.prototype[Symbol.iterator]=function(){return this});class sO{constructor(e,t,n,i){this.from=e,this.to=t,this.number=n,this.text=i}get length(){return this.to-this.from}}function aO(e,t,n){return[t=Math.max(0,Math.min(e.length,t)),Math.max(t,Math.min(e.length,n))]}let lO="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map((e=>e?parseInt(e,36):1));for(let e=1;ee)return lO[t-1]<=e;return!1}function hO(e){return e>=127462&&e<=127487}const uO=8205;function pO(e,t,n=!0,i=!0){return(n?dO:fO)(e,t,i)}function dO(e,t,n){if(t==e.length)return t;t&&mO(e.charCodeAt(t))&&gO(e.charCodeAt(t-1))&&t--;let i=vO(e,t);for(t+=bO(i);t=0&&hO(vO(e,i));)n++,i-=2;if(n%2==0)break;t+=2}}}return t}function fO(e,t,n){for(;t>0;){let i=dO(e,t-2,n);if(i=56320&&e<57344}function gO(e){return e>=55296&&e<56320}function vO(e,t){let n=e.charCodeAt(t);if(!gO(n)||t+1==e.length)return n;let i=e.charCodeAt(t+1);return mO(i)?i-56320+(n-55296<<10)+65536:n}function yO(e){return e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10),56320+(1023&e)))}function bO(e){return e<65536?1:2}const wO=/\r\n?|\n/;var xO=function(e){return e[e.Simple=0]="Simple",e[e.TrackDel=1]="TrackDel",e[e.TrackBefore=2]="TrackBefore",e[e.TrackAfter=3]="TrackAfter",e}(xO||(xO={}));class _O{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;te)return o+(e-i);o+=s}else{if(n!=xO.Simple&&l>=e&&(n==xO.TrackDel&&ie||n==xO.TrackBefore&&ie))return null;if(l>e||l==e&&t<0&&!s)return e==i||t<0?o:o+a;o+=a}i=l}if(e>i)throw new RangeError(`Position ${e} is out of range for changeset of length ${i}`);return o}touchesRange(e,t=e){for(let n=0,i=0;n=0&&i<=t&&o>=e)return!(it)||"cover";i=o}return!1}toString(){let e="";for(let t=0;t=0?":"+i:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some((e=>"number"!=typeof e)))throw new RangeError("Invalid JSON representation of ChangeDesc");return new _O(e)}static create(e){return new _O(e)}}class EO extends _O{constructor(e,t){super(e),this.inserted=t}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return CO(this,((t,n,i,o,r)=>e=e.replace(i,i+(n-t),r)),!1),e}mapDesc(e,t=!1){return OO(this,e,t,!0)}invert(e){let t=this.sections.slice(),n=[];for(let i=0,o=0;i=0){t[i]=s,t[i+1]=r;let a=i>>1;for(;n.length0&&SO(n,t,o.text),o.forward(e),s+=e}let l=e[r++];for(;s>1].toJSON()))}return e}static of(e,t,n){let i=[],o=[],r=0,s=null;function a(e=!1){if(!e&&!i.length)return;rs||e<0||s>t)throw new RangeError(`Invalid change range ${e} to ${s} (in doc of length ${t})`);let h=c?"string"==typeof c?ZC.of(c.split(n||wO)):c:ZC.empty,u=h.length;if(e==s&&0==u)return;er&&kO(i,e-r,-1),kO(i,s-e,u),SO(o,i,h),r=s}}(e),a(!s),s}static empty(e){return new EO(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let t=[],n=[];for(let i=0;it&&"string"!=typeof e)))throw new RangeError("Invalid JSON representation of ChangeSet");if(1==o.length)t.push(o[0],0);else{for(;n.length=0&&n<=0&&n==e[o+1]?e[o]+=t:0==t&&0==e[o]?e[o+1]+=n:i?(e[o]+=t,e[o+1]+=n):e.push(t,n)}function SO(e,t,n){if(0==n.length)return;let i=t.length-2>>1;if(i>1])),!(n||s==e.sections.length||e.sections[s+1]<0);)a=e.sections[s++],l=e.sections[s++];t(o,c,r,h,u),o=c,r=h}}}function OO(e,t,n,i=!1){let o=[],r=i?[]:null,s=new MO(e),a=new MO(t);for(let e=-1;;)if(-1==s.ins&&-1==a.ins){let e=Math.min(s.len,a.len);kO(o,e,-1),s.forward(e),a.forward(e)}else if(a.ins>=0&&(s.ins<0||e==s.i||0==s.off&&(a.len=0&&e=0)){if(s.done&&a.done)return r?EO.createSet(o,r):_O.create(o);throw new Error("Mismatched change set lengths")}{let t=0,n=s.len;for(;n;)if(-1==a.ins){let e=Math.min(n,a.len);t+=e,n-=e,a.forward(e)}else{if(!(0==a.ins&&a.lent||s.ins>=0&&s.len>t)&&(e||i.length>n),r.forward2(t),s.forward(t)}}else kO(i,0,s.ins,e),o&&SO(o,i,s.text),s.next()}}class MO{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i>1;return t>=e.length?ZC.empty:e[t]}textBit(e){let{inserted:t}=this.set,n=this.i-2>>1;return n>=t.length&&!e?ZC.empty:t[n].slice(this.off,null==e?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){-1==this.ins?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}}class AO{constructor(e,t,n){this.from=e,this.to=t,this.flags=n}get anchor(){return 32&this.flags?this.to:this.from}get head(){return 32&this.flags?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return 8&this.flags?-1:16&this.flags?1:0}get bidiLevel(){let e=7&this.flags;return 7==e?null:e}get goalColumn(){let e=this.flags>>6;return 16777215==e?void 0:e}map(e,t=-1){let n,i;return this.empty?n=i=e.mapPos(this.from,t):(n=e.mapPos(this.from,1),i=e.mapPos(this.to,-1)),n==this.from&&i==this.to?this:new AO(n,i,this.flags)}extend(e,t=e){if(e<=this.anchor&&t>=this.anchor)return TO.range(e,t);let n=Math.abs(e-this.anchor)>Math.abs(t-this.anchor)?e:t;return TO.range(this.anchor,n)}eq(e,t=!1){return!(this.anchor!=e.anchor||this.head!=e.head||t&&this.empty&&this.assoc!=e.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||"number"!=typeof e.anchor||"number"!=typeof e.head)throw new RangeError("Invalid JSON representation for SelectionRange");return TO.range(e.anchor,e.head)}static create(e,t,n){return new AO(e,t,n)}}class TO{constructor(e,t){this.ranges=e,this.mainIndex=t}map(e,t=-1){return e.empty?this:TO.create(this.ranges.map((n=>n.map(e,t))),this.mainIndex)}eq(e,t=!1){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let n=0;ne.toJSON())),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||"number"!=typeof e.main||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new TO(e.ranges.map((e=>AO.fromJSON(e))),e.main)}static single(e,t=e){return new TO([TO.range(e,t)],0)}static create(e,t=0){if(0==e.length)throw new RangeError("A selection needs at least one range");for(let n=0,i=0;ie?8:0)|o)}static normalized(e,t=0){let n=e[t];e.sort(((e,t)=>e.from-t.from)),t=e.indexOf(n);for(let n=1;ni.head?TO.range(s,r):TO.range(r,s))}}return new TO(e,t)}}function BO(e,t){for(let n of e.ranges)if(n.to>t)throw new RangeError("Selection points outside of document")}let RO=0;class DO{constructor(e,t,n,i,o){this.combine=e,this.compareInput=t,this.compare=n,this.isStatic=i,this.id=RO++,this.default=e([]),this.extensions="function"==typeof o?o(this):o}get reader(){return this}static define(e={}){return new DO(e.combine||(e=>e),e.compareInput||((e,t)=>e===t),e.compare||(e.combine?(e,t)=>e===t:LO),!!e.static,e.enables)}of(e){return new NO([],this,0,e)}compute(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new NO(e,this,1,t)}computeN(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new NO(e,this,2,t)}from(e,t){return t||(t=e=>e),this.compute([e],(n=>t(n.field(e))))}}function LO(e,t){return e==t||e.length==t.length&&e.every(((e,n)=>e===t[n]))}class NO{constructor(e,t,n,i){this.dependencies=e,this.facet=t,this.type=n,this.value=i,this.id=RO++}dynamicSlot(e){var t;let n=this.value,i=this.facet.compareInput,o=this.id,r=e[o]>>1,s=2==this.type,a=!1,l=!1,c=[];for(let n of this.dependencies)"doc"==n?a=!0:"selection"==n?l=!0:1&(null!==(t=e[n.id])&&void 0!==t?t:1)||c.push(e[n.id]);return{create:e=>(e.values[r]=n(e),1),update(e,t){if(a&&t.docChanged||l&&(t.docChanged||t.selection)||IO(e,c)){let t=n(e);if(s?!zO(t,e.values[r],i):!i(t,e.values[r]))return e.values[r]=t,1}return 0},reconfigure:(e,t)=>{let a,l=t.config.address[o];if(null!=l){let o=UO(t,l);if(this.dependencies.every((n=>n instanceof DO?t.facet(n)===e.facet(n):!(n instanceof jO)||t.field(n,!1)==e.field(n,!1)))||(s?zO(a=n(e),o,i):i(a=n(e),o)))return e.values[r]=o,0}else a=n(e);return e.values[r]=a,1}}}}function zO(e,t,n){if(e.length!=t.length)return!1;for(let i=0;ie[t.id])),o=n.map((e=>e.type)),r=i.filter((e=>!(1&e))),s=e[t.id]>>1;function a(e){let n=[];for(let t=0;te===t),e);return e.provide&&(t.provides=e.provide(t)),t}create(e){let t=e.facet($O).find((e=>e.field==this));return((null==t?void 0:t.create)||this.createF)(e)}slot(e){let t=e[this.id]>>1;return{create:e=>(e.values[t]=this.create(e),1),update:(e,n)=>{let i=e.values[t],o=this.updateF(i,n);return this.compareF(i,o)?0:(e.values[t]=o,1)},reconfigure:(e,n)=>null!=n.config.address[this.id]?(e.values[t]=n.field(this),0):(e.values[t]=this.create(e),1)}}init(e){return[this,$O.of({field:this,create:e})]}get extension(){return this}}function qO(e){return t=>new VO(t,e)}const HO={highest:qO(0),high:qO(1),default:qO(2),low:qO(3),lowest:qO(4)};class VO{constructor(e,t){this.inner=e,this.prec=t}}class WO{of(e){return new GO(this,e)}reconfigure(e){return WO.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}}class GO{constructor(e,t){this.compartment=e,this.inner=t}}class QO{constructor(e,t,n,i,o,r){for(this.base=e,this.compartments=t,this.dynamicSlots=n,this.address=i,this.staticValues=o,this.facets=r,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(e,t,n){let i=[],o=Object.create(null),r=new Map;for(let n of function(e,t,n){let i=[[],[],[],[],[]],o=new Map;return function e(r,s){let a=o.get(r);if(null!=a){if(a<=s)return;let e=i[a].indexOf(r);e>-1&&i[a].splice(e,1),r instanceof GO&&n.delete(r.compartment)}if(o.set(r,s),Array.isArray(r))for(let t of r)e(t,s);else if(r instanceof GO){if(n.has(r.compartment))throw new RangeError("Duplicate use of compartment in extensions");let i=t.get(r.compartment)||r.inner;n.set(r.compartment,i),e(i,s)}else if(r instanceof VO)e(r.inner,r.prec);else if(r instanceof jO)i[s].push(r),r.provides&&e(r.provides,s);else if(r instanceof NO)i[s].push(r),r.facet.extensions&&e(r.facet.extensions,2);else{let t=r.extension;if(!t)throw new Error(`Unrecognized extension value in extension set (${r}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);e(t,s)}}(e,2),i.reduce(((e,t)=>e.concat(t)))}(e,t,r))n instanceof jO?i.push(n):(o[n.facet.id]||(o[n.facet.id]=[])).push(n);let s=Object.create(null),a=[],l=[];for(let e of i)s[e.id]=l.length<<1,l.push((t=>e.slot(t)));let c=null==n?void 0:n.config.facets;for(let e in o){let t=o[e],i=t[0].facet,r=c&&c[e]||[];if(t.every((e=>0==e.type)))if(s[i.id]=a.length<<1|1,LO(r,t))a.push(n.facet(i));else{let e=i.combine(t.map((e=>e.value)));a.push(n&&i.compare(e,n.facet(i))?n.facet(i):e)}else{for(let e of t)0==e.type?(s[e.id]=a.length<<1|1,a.push(e.value)):(s[e.id]=l.length<<1,l.push((t=>e.dynamicSlot(t))));s[i.id]=l.length<<1,l.push((e=>FO(e,i,t)))}}let h=l.map((e=>e(s)));return new QO(e,r,h,s,a,o)}}function XO(e,t){if(1&t)return 2;let n=t>>1,i=e.status[n];if(4==i)throw new Error("Cyclic dependency between fields and/or facets");if(2&i)return i;e.status[n]=4;let o=e.computeSlot(e,e.config.dynamicSlots[n]);return e.status[n]=2|o}function UO(e,t){return 1&t?e.config.staticValues[t>>1]:e.values[t>>1]}const YO=DO.define(),KO=DO.define({combine:e=>e.some((e=>e)),static:!0}),ZO=DO.define({combine:e=>e.length?e[0]:void 0,static:!0}),JO=DO.define(),eP=DO.define(),tP=DO.define(),nP=DO.define({combine:e=>!!e.length&&e[0]});class iP{constructor(e,t){this.type=e,this.value=t}static define(){return new oP}}class oP{of(e){return new iP(this,e)}}class rP{constructor(e){this.map=e}of(e){return new sP(this,e)}}class sP{constructor(e,t){this.type=e,this.value=t}map(e){let t=this.type.map(this.value,e);return void 0===t?void 0:t==this.value?this:new sP(this.type,t)}is(e){return this.type==e}static define(e={}){return new rP(e.map||(e=>e))}static mapEffects(e,t){if(!e.length)return e;let n=[];for(let i of e){let e=i.map(t);e&&n.push(e)}return n}}sP.reconfigure=sP.define(),sP.appendConfig=sP.define();class aP{constructor(e,t,n,i,o,r){this.startState=e,this.changes=t,this.selection=n,this.effects=i,this.annotations=o,this.scrollIntoView=r,this._doc=null,this._state=null,n&&BO(n,t.newLength),o.some((e=>e.type==aP.time))||(this.annotations=o.concat(aP.time.of(Date.now())))}static create(e,t,n,i,o,r){return new aP(e,t,n,i,o,r)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let t of this.annotations)if(t.type==e)return t.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let t=this.annotation(aP.userEvent);return!(!t||!(t==e||t.length>e.length&&t.slice(0,e.length)==e&&"."==t[e.length]))}}function lP(e,t){let n=[];for(let i=0,o=0;;){let r,s;if(i=e[i]))r=e[i++],s=e[i++];else{if(!(o=0;o--){let r=n[o](e);r&&Object.keys(r).length&&(i=cP(i,hP(t,r,e.changes.newLength),!0))}return i==e?e:aP.create(t,e.changes,e.selection,i.effects,i.annotations,i.scrollIntoView)}(n?function(e){let t=e.startState,n=!0;for(let i of t.facet(JO)){let t=i(e);if(!1===t){n=!1;break}Array.isArray(t)&&(n=!0===n?t:lP(n,t))}if(!0!==n){let i,o;if(!1===n)o=e.changes.invertedDesc,i=EO.empty(t.doc.length);else{let t=e.changes.filter(n);i=t.changes,o=t.filtered.mapDesc(t.changes).invertedDesc}e=aP.create(t,i,e.selection&&e.selection.map(o),sP.mapEffects(e.effects,o),e.annotations,e.scrollIntoView)}let i=t.facet(eP);for(let n=i.length-1;n>=0;n--){let o=i[n](e);e=o instanceof aP?o:Array.isArray(o)&&1==o.length&&o[0]instanceof aP?o[0]:uP(t,dP(o),!1)}return e}(o):o)}aP.time=iP.define(),aP.userEvent=iP.define(),aP.addToHistory=iP.define(),aP.remote=iP.define();const pP=[];function dP(e){return null==e?pP:Array.isArray(e)?e:[e]}var fP=function(e){return e[e.Word=0]="Word",e[e.Space=1]="Space",e[e.Other=2]="Other",e}(fP||(fP={}));const mP=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let gP;try{gP=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch(e){}class vP{constructor(e,t,n,i,o,r){this.config=e,this.doc=t,this.selection=n,this.values=i,this.status=e.statusTemplate.slice(),this.computeSlot=o,r&&(r._state=this);for(let e=0;eo.set(t,e))),n=null),o.set(t.value.compartment,t.value.extension)):t.is(sP.reconfigure)?(n=null,i=t.value):t.is(sP.appendConfig)&&(n=null,i=dP(i).concat(t.value));n?t=e.startState.values.slice():(n=QO.resolve(i,o,this),t=new vP(n,this.doc,this.selection,n.dynamicSlots.map((()=>null)),((e,t)=>t.reconfigure(e,this)),null).values);let r=e.startState.facet(KO)?e.newSelection:e.newSelection.asSingle();new vP(n,e.newDoc,r,t,((t,n)=>n.update(t,e)),e)}replaceSelection(e){return"string"==typeof e&&(e=this.toText(e)),this.changeByRange((t=>({changes:{from:t.from,to:t.to,insert:e},range:TO.cursor(t.from+e.length)})))}changeByRange(e){let t=this.selection,n=e(t.ranges[0]),i=this.changes(n.changes),o=[n.range],r=dP(n.effects);for(let n=1;no.spec.fromJSON(r,e))))}return vP.create({doc:e.doc,selection:TO.fromJSON(e.selection),extensions:t.extensions?i.concat([t.extensions]):i})}static create(e={}){let t=QO.resolve(e.extensions||[],new Map),n=e.doc instanceof ZC?e.doc:ZC.of((e.doc||"").split(t.staticFacet(vP.lineSeparator)||wO)),i=e.selection?e.selection instanceof TO?e.selection:TO.single(e.selection.anchor,e.selection.head):TO.single(0);return BO(i,n.length),t.staticFacet(KO)||(i=i.asSingle()),new vP(t,n,i,t.dynamicSlots.map((()=>null)),((e,t)=>t.create(e)),null)}get tabSize(){return this.facet(vP.tabSize)}get lineBreak(){return this.facet(vP.lineSeparator)||"\n"}get readOnly(){return this.facet(nP)}phrase(e,...t){for(let t of this.facet(vP.phrases))if(Object.prototype.hasOwnProperty.call(t,e)){e=t[e];break}return t.length&&(e=e.replace(/\$(\$|\d*)/g,((e,n)=>{if("$"==n)return"$";let i=+(n||1);return!i||i>t.length?e:t[i-1]}))),e}languageDataAt(e,t,n=-1){let i=[];for(let o of this.facet(YO))for(let r of o(this,t,n))Object.prototype.hasOwnProperty.call(r,e)&&i.push(r[e]);return i}charCategorizer(e){return t=this.languageDataAt("wordChars",e).join(""),e=>{if(!/\S/.test(e))return fP.Space;if(function(e){if(gP)return gP.test(e);for(let t=0;t"€"&&(n.toUpperCase()!=n.toLowerCase()||mP.test(n)))return!0}return!1}(e))return fP.Word;for(let n=0;n-1)return fP.Word;return fP.Other};var t}wordAt(e){let{text:t,from:n,length:i}=this.doc.lineAt(e),o=this.charCategorizer(e),r=e-n,s=e-n;for(;r>0;){let e=pO(t,r,!1);if(o(t.slice(e,r))!=fP.Word)break;r=e}for(;se.length?e[0]:4}),vP.lineSeparator=ZO,vP.readOnly=nP,vP.phrases=DO.define({compare(e,t){let n=Object.keys(e),i=Object.keys(t);return n.length==i.length&&n.every((n=>e[n]==t[n]))}}),vP.languageData=YO,vP.changeFilter=JO,vP.transactionFilter=eP,vP.transactionExtender=tP,WO.reconfigure=sP.define();class bP{eq(e){return this==e}range(e,t=e){return wP.create(e,t,this)}}bP.prototype.startSide=bP.prototype.endSide=0,bP.prototype.point=!1,bP.prototype.mapMode=xO.TrackDel;class wP{constructor(e,t,n){this.from=e,this.to=t,this.value=n}static create(e,t,n){return new wP(e,t,n)}}function xP(e,t){return e.from-t.from||e.value.startSide-t.value.startSide}class _P{constructor(e,t,n,i){this.from=e,this.to=t,this.value=n,this.maxPoint=i}get length(){return this.to[this.to.length-1]}findIndex(e,t,n,i=0){let o=n?this.to:this.from;for(let r=i,s=o.length;;){if(r==s)return r;let i=r+s>>1,a=o[i]-e||(n?this.value[i].endSide:this.value[i].startSide)-t;if(i==r)return a>=0?r:s;a>=0?s=i:r=i+1}}between(e,t,n,i){for(let o=this.findIndex(t,-1e9,!0),r=this.findIndex(n,1e9,!1,o);oc||l==c&&h.startSide>0&&h.endSide<=0)continue;(c-l||h.endSide-h.startSide)<0||(r<0&&(r=l),h.point&&(s=Math.max(s,c-l)),n.push(h),i.push(l-r),o.push(c-r))}return{mapped:n.length?new _P(i,o,n,s):null,pos:r}}}class EP{constructor(e,t,n,i){this.chunkPos=e,this.chunk=t,this.nextLayer=n,this.maxPoint=i}static create(e,t,n,i){return new EP(e,t,n,i)}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let t of this.chunk)e+=t.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:t=[],sort:n=!1,filterFrom:i=0,filterTo:o=this.length}=e,r=e.filter;if(0==t.length&&!r)return this;if(n&&(t=t.slice().sort(xP)),this.isEmpty)return t.length?EP.of(t):this;let s=new CP(this,null,-1).goto(0),a=0,l=[],c=new kP;for(;s.value||a=0){let e=t[a++];c.addInner(e.from,e.to,e.value)||l.push(e)}else 1==s.rangeIndex&&s.chunkIndexthis.chunkEnd(s.chunkIndex)||os.to||o=o&&e<=o+r.length&&!1===r.between(o,e-o,t-o,n))return}this.nextLayer.between(e,t,n)}}iter(e=0){return OP.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,t=0){return OP.from(e).goto(t)}static compare(e,t,n,i,o=-1){let r=e.filter((e=>e.maxPoint>0||!e.isEmpty&&e.maxPoint>=o)),s=t.filter((e=>e.maxPoint>0||!e.isEmpty&&e.maxPoint>=o)),a=SP(r,s,n),l=new MP(r,a,o),c=new MP(s,a,o);n.iterGaps(((e,t,n)=>AP(l,e,c,t,n,i))),n.empty&&0==n.length&&AP(l,0,c,0,0,i)}static eq(e,t,n=0,i){null==i&&(i=999999999);let o=e.filter((e=>!e.isEmpty&&t.indexOf(e)<0)),r=t.filter((t=>!t.isEmpty&&e.indexOf(t)<0));if(o.length!=r.length)return!1;if(!o.length)return!0;let s=SP(o,r),a=new MP(o,s,0).goto(n),l=new MP(r,s,0).goto(n);for(;;){if(a.to!=l.to||!TP(a.active,l.active)||a.point&&(!l.point||!a.point.eq(l.point)))return!1;if(a.to>i)return!0;a.next(),l.next()}}static spans(e,t,n,i,o=-1){let r=new MP(e,null,o).goto(t),s=t,a=r.openStart;for(;;){let e=Math.min(r.to,n);if(r.point){let n=r.activeForPoint(r.to),o=r.pointFroms&&(i.span(s,e,r.active,a),a=r.openEnd(e));if(r.to>n)return a+(r.point&&r.to>n?1:0);s=r.to,r.next()}}static of(e,t=!1){let n=new kP;for(let i of e instanceof wP?[e]:t?function(e){if(e.length>1)for(let t=e[0],n=1;n0)return e.slice().sort(xP);t=i}return e}(e):e)n.add(i.from,i.to,i.value);return n.finish()}static join(e){if(!e.length)return EP.empty;let t=e[e.length-1];for(let n=e.length-2;n>=0;n--)for(let i=e[n];i!=EP.empty;i=i.nextLayer)t=new EP(i.chunkPos,i.chunk,t,Math.max(i.maxPoint,t.maxPoint));return t}}EP.empty=new EP([],[],null,-1),EP.empty.nextLayer=EP.empty;class kP{finishChunk(e){this.chunks.push(new _P(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(e,t,n){this.addInner(e,t,n)||(this.nextLayer||(this.nextLayer=new kP)).add(e,t,n)}addInner(e,t,n){let i=e-this.lastTo||n.startSide-this.last.endSide;if(i<=0&&(e-this.lastFrom||n.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return!(i<0||(250==this.from.length&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(t-this.chunkStart),this.last=n,this.lastFrom=e,this.lastTo=t,this.value.push(n),n.point&&(this.maxPoint=Math.max(this.maxPoint,t-e)),0))}addChunk(e,t){if((e-this.lastTo||t.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,t.maxPoint),this.chunks.push(t),this.chunkPos.push(e);let n=t.value.length-1;return this.last=t.value[n],this.lastFrom=t.from[n]+e,this.lastTo=t.to[n]+e,!0}finish(){return this.finishInner(EP.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),0==this.chunks.length)return e;let t=EP.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,t}}function SP(e,t,n){let i=new Map;for(let t of e)for(let e=0;e=this.minPoint)break}}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex=n&&i.push(new CP(r,t,n,o));return 1==i.length?i[0]:new OP(i)}get startSide(){return this.value?this.value.startSide:0}goto(e,t=-1e9){for(let n of this.heap)n.goto(e,t);for(let e=this.heap.length>>1;e>=0;e--)PP(this.heap,e);return this.next(),this}forward(e,t){for(let n of this.heap)n.forward(e,t);for(let e=this.heap.length>>1;e>=0;e--)PP(this.heap,e);(this.to-e||this.value.endSide-t)<0&&this.next()}next(){if(0==this.heap.length)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),PP(this.heap,0)}}}function PP(e,t){for(let n=e[t];;){let i=1+(t<<1);if(i>=e.length)break;let o=e[i];if(i+1=0&&(o=e[i+1],i++),n.compare(o)<0)break;e[i]=n,e[t]=o,t=i}}class MP{constructor(e,t,n){this.minPoint=n,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=OP.from(e,t,n)}goto(e,t=-1e9){return this.cursor.goto(e,t),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=t,this.openStart=-1,this.next(),this}forward(e,t){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-t)<0;)this.removeActive(this.minActive);this.cursor.forward(e,t)}removeActive(e){BP(this.active,e),BP(this.activeTo,e),BP(this.activeRank,e),this.minActive=DP(this.active,this.activeTo)}addActive(e){let t=0,{value:n,to:i,rank:o}=this.cursor;for(;t0;)t++;RP(this.active,t,n),RP(this.activeTo,t,i),RP(this.activeRank,t,o),e&&RP(e,t,this.cursor.from),this.minActive=DP(this.active,this.activeTo)}next(){let e=this.to,t=this.point;this.point=null;let n=this.openStart<0?[]:null;for(;;){let i=this.minActive;if(i>-1&&(this.activeTo[i]-this.cursor.from||this.active[i].endSide-this.cursor.startSide)<0){if(this.activeTo[i]>e){this.to=this.activeTo[i],this.endSide=this.active[i].endSide;break}this.removeActive(i),n&&BP(n,i)}else{if(!this.cursor.value){this.to=this.endSide=1e9;break}if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}{let e=this.cursor.value;if(e.point){if(!(t&&this.cursor.to==this.to&&this.cursor.from=0&&n[t]=0&&!(this.activeRank[n]e||this.activeTo[n]==e&&this.active[n].endSide>=this.point.endSide)&&t.push(this.active[n]);return t.reverse()}openEnd(e){let t=0;for(let n=this.activeTo.length-1;n>=0&&this.activeTo[n]>e;n--)t++;return t}}function AP(e,t,n,i,o,r){e.goto(t),n.goto(i);let s=i+o,a=i,l=i-t;for(;;){let t=e.to+l-n.to||e.endSide-n.endSide,i=t<0?e.to+l:n.to,o=Math.min(i,s);if(e.point||n.point?e.point&&n.point&&(e.point==n.point||e.point.eq(n.point))&&TP(e.activeForPoint(e.to),n.activeForPoint(n.to))||r.comparePoint(a,o,e.point,n.point):o>a&&!TP(e.active,n.active)&&r.compareRange(a,o,e.active,n.active),i>s)break;a=i,t<=0&&e.next(),t>=0&&n.next()}}function TP(e,t){if(e.length!=t.length)return!1;for(let n=0;n=t;n--)e[n+1]=e[n];e[t]=n}function DP(e,t){let n=-1,i=1e9;for(let o=0;oe.map((e=>t.replace(/&/,e))))).reduce(((e,t)=>e.concat(t))),s,r);else if(s&&"object"==typeof s){if(!l)throw new RangeError("The value of a property ("+n+") should be a primitive value.");o(i(n),s,a,c)}else null!=s&&a.push(n.replace(/_.*/,"").replace(/[A-Z]/g,(e=>"-"+e.toLowerCase()))+": "+s+";")}(a.length||c)&&r.push((!n||l||s?e:e.map(n)).join(", ")+" {"+a.join(" ")+"}")}for(let t in e)o(i(t),e[t],this.rules)}getRules(){return this.rules.join("\n")}static newName(){let e=IP[NP]||1;return IP[NP]=e+1,"ͼ"+e.toString(36)}static mount(e,t,n){let i=e[zP],o=n&&n.nonce;i?o&&i.setNonce(o):i=new jP(e,o),i.mount(Array.isArray(t)?t:[t],e)}}let $P=new Map;class jP{constructor(e,t){let n=e.ownerDocument||e,i=n.defaultView;if(!e.head&&e.adoptedStyleSheets&&i.CSSStyleSheet){let t=$P.get(n);if(t)return e[zP]=t;this.sheet=new i.CSSStyleSheet,$P.set(n,this)}else this.styleTag=n.createElement("style"),t&&this.styleTag.setAttribute("nonce",t);this.modules=[],e[zP]=this}mount(e,t){let n=this.sheet,i=0,o=0;for(let t=0;t-1&&(this.modules.splice(s,1),o--,s=-1),-1==s){if(this.modules.splice(o++,0,r),n)for(let e=0;e",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},VP="undefined"!=typeof navigator&&/Mac/.test(navigator.platform),WP="undefined"!=typeof navigator&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent),GP=0;GP<10;GP++)qP[48+GP]=qP[96+GP]=String(GP);for(GP=1;GP<=24;GP++)qP[GP+111]="F"+GP;for(GP=65;GP<=90;GP++)qP[GP]=String.fromCharCode(GP+32),HP[GP]=String.fromCharCode(GP);for(var QP in qP)HP.hasOwnProperty(QP)||(HP[QP]=qP[QP]);function XP(e){let t;return t=11==e.nodeType?e.getSelection?e:e.ownerDocument:e,t.getSelection()}function UP(e,t){return!!t&&(e==t||e.contains(1!=t.nodeType?t.parentNode:t))}function YP(e,t){if(!t.anchorNode)return!1;try{return UP(e,t.anchorNode)}catch(e){return!1}}function KP(e){return 3==e.nodeType?hM(e,0,e.nodeValue.length).getClientRects():1==e.nodeType?e.getClientRects():[]}function ZP(e,t,n,i){return!!n&&(tM(e,t,n,i,-1)||tM(e,t,n,i,1))}function JP(e){for(var t=0;;t++)if(!(e=e.previousSibling))return t}function eM(e){return 1==e.nodeType&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(e.nodeName)}function tM(e,t,n,i,o){for(;;){if(e==n&&t==i)return!0;if(t==(o<0?0:nM(e))){if("DIV"==e.nodeName)return!1;let n=e.parentNode;if(!n||1!=n.nodeType)return!1;t=JP(e)+(o<0?0:1),e=n}else{if(1!=e.nodeType)return!1;if(1==(e=e.childNodes[t+(o<0?-1:0)]).nodeType&&"false"==e.contentEditable)return!1;t=o<0?nM(e):0}}}function nM(e){return 3==e.nodeType?e.nodeValue.length:e.childNodes.length}function iM(e,t){let n=t?e.left:e.right;return{left:n,right:n,top:e.top,bottom:e.bottom}}function oM(e){let t=e.visualViewport;return t?{left:0,right:t.width,top:0,bottom:t.height}:{left:0,right:e.innerWidth,top:0,bottom:e.innerHeight}}function rM(e,t){let n=t.width/e.offsetWidth,i=t.height/e.offsetHeight;return(n>.995&&n<1.005||!isFinite(n)||Math.abs(t.width-e.offsetWidth)<1)&&(n=1),(i>.995&&i<1.005||!isFinite(i)||Math.abs(t.height-e.offsetHeight)<1)&&(i=1),{scaleX:n,scaleY:i}}class sM{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}setRange(e){let{anchorNode:t,focusNode:n}=e;this.set(t,Math.min(e.anchorOffset,t?nM(t):0),n,Math.min(e.focusOffset,n?nM(n):0))}set(e,t,n,i){this.anchorNode=e,this.anchorOffset=t,this.focusNode=n,this.focusOffset=i}}let aM,lM=null;function cM(e){if(e.setActive)return e.setActive();if(lM)return e.focus(lM);let t=[];for(let n=e;n&&(t.push(n,n.scrollTop,n.scrollLeft),n!=n.ownerDocument);n=n.parentNode);if(e.focus(null==lM?{get preventScroll(){return lM={preventScroll:!0},!0}}:void 0),!lM){lM=!1;for(let e=0;eMath.max(1,e.scrollHeight-e.clientHeight-4)}function fM(e,t){for(let n=e,i=t;;){if(3==n.nodeType&&i>0)return{node:n,offset:i};if(1==n.nodeType&&i>0){if("false"==n.contentEditable)return null;n=n.childNodes[i-1],i=nM(n)}else{if(!n.parentNode||eM(n))return null;i=JP(n),n=n.parentNode}}}function mM(e,t){for(let n=e,i=t;;){if(3==n.nodeType&&it)return n.domBoundsAround(e,t,l);if(h>=e&&-1==i&&(i=a,o=l),l>t&&n.dom.parentNode==this.dom){r=a,s=c;break}c=h,l=h+n.breakAfter}return{from:o,to:s<0?n+this.length:s,startDOM:(i?this.children[i-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:r=0?this.children[r].dom:null}}markDirty(e=!1){this.flags|=2,this.markParentsDirty(e)}markParentsDirty(e){for(let t=this.parent;t;t=t.parent){if(e&&(t.flags|=2),1&t.flags)return;t.flags|=1,e=!1}}setParent(e){this.parent!=e&&(this.parent=e,7&this.flags&&this.markParentsDirty(!0))}setDOM(e){this.dom!=e&&(this.dom&&(this.dom.cmView=null),this.dom=e,e.cmView=this)}get rootView(){for(let e=this;;){let t=e.parent;if(!t)return e;e=t}}replaceChildren(e,t,n=vM){this.markDirty();for(let i=e;ithis.pos||e==this.pos&&(t>0||0==this.i||this.children[this.i-1].breakAfter))return this.off=e-this.pos,this;let n=this.children[--this.i];this.pos-=n.length+n.breakAfter}}}function xM(e,t,n,i,o,r,s,a,l){let{children:c}=e,h=c.length?c[t]:null,u=r.length?r[r.length-1]:null,p=u?u.breakAfter:s;if(!(t==i&&h&&!s&&!p&&r.length<2&&h.merge(n,o,r.length?u:null,0==n,a,l))){if(i0&&(!s&&r.length&&h.merge(n,h.length,r[0],!1,a,0)?h.breakAfter=r.shift().breakAfter:(n2);var DM={mac:RM||/Mac/.test(EM.platform),windows:/Win/.test(EM.platform),linux:/Linux|X11/.test(EM.platform),ie:PM,ie_version:CM?kM.documentMode||6:OM?+OM[1]:SM?+SM[1]:0,gecko:MM,gecko_version:MM?+(/Firefox\/(\d+)/.exec(EM.userAgent)||[0,0])[1]:0,chrome:!!AM,chrome_version:AM?+AM[1]:0,ios:RM,android:/Android\b/.test(EM.userAgent),webkit:TM,safari:BM,webkit_version:TM?+(/\bAppleWebKit\/(\d+)/.exec(EM.userAgent)||[0,0])[1]:0,tabSize:null!=kM.documentElement.style.tabSize?"tab-size":"-moz-tab-size"};class LM extends yM{constructor(e){super(),this.text=e}get length(){return this.text.length}createDOM(e){this.setDOM(e||document.createTextNode(this.text))}sync(e,t){this.dom||this.createDOM(),this.dom.nodeValue!=this.text&&(t&&t.node==this.dom&&(t.written=!0),this.dom.nodeValue=this.text)}reuseDOM(e){3==e.nodeType&&this.createDOM(e)}merge(e,t,n){return!(8&this.flags||n&&(!(n instanceof LM)||this.length-(t-e)+n.length>256||8&n.flags)||(this.text=this.text.slice(0,e)+(n?n.text:"")+this.text.slice(t),this.markDirty(),0))}split(e){let t=new LM(this.text.slice(e));return this.text=this.text.slice(0,e),this.markDirty(),t.flags|=8&this.flags,t}localPosFromDOM(e,t){return e==this.dom?t:t?this.text.length:0}domAtPos(e){return new gM(this.dom,e)}domBoundsAround(e,t,n){return{from:n,to:n+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}coordsAt(e,t){return function(e,t,n){let i=e.nodeValue.length;t>i&&(t=i);let o=t,r=t,s=0;0==t&&n<0||t==i&&n>=0?DM.chrome||DM.gecko||(t?(o--,s=1):r=0)?0:a.length-1];return DM.safari&&!s&&0==l.width&&(l=Array.prototype.find.call(a,(e=>e.width))||l),s?iM(l,s<0):l||null}(this.dom,e,t)}}class NM extends yM{constructor(e,t=[],n=0){super(),this.mark=e,this.children=t,this.length=n;for(let e of t)e.setParent(this)}setAttrs(e){if(pM(e),this.mark.class&&(e.className=this.mark.class),this.mark.attrs)for(let t in this.mark.attrs)e.setAttribute(t,this.mark.attrs[t]);return e}canReuseDOM(e){return super.canReuseDOM(e)&&!(8&(this.flags|e.flags))}reuseDOM(e){e.nodeName==this.mark.tagName.toUpperCase()&&(this.setDOM(e),this.flags|=6)}sync(e,t){this.dom?4&this.flags&&this.setAttrs(this.dom):this.setDOM(this.setAttrs(document.createElement(this.mark.tagName))),super.sync(e,t)}merge(e,t,n,i,o,r){return!(n&&(!(n instanceof NM&&n.mark.eq(this.mark))||e&&o<=0||te&&t.push(n=e&&(i=o),n=s,o++}let r=this.length-e;return this.length=e,i>-1&&(this.children.length=i,this.markDirty()),new NM(this.mark,t,r)}domAtPos(e){return FM(this,e)}coordsAt(e,t){return jM(this,e,t)}}class zM extends yM{static create(e,t,n){return new zM(e,t,n)}constructor(e,t,n){super(),this.widget=e,this.length=t,this.side=n,this.prevWidget=null}split(e){let t=zM.create(this.widget,this.length-e,this.side);return this.length-=e,t}sync(e){this.dom&&this.widget.updateDOM(this.dom,e)||(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(e)),this.widget.editable||(this.dom.contentEditable="false"))}getSide(){return this.side}merge(e,t,n,i,o,r){return!(n&&(!(n instanceof zM&&this.widget.compare(n.widget))||e>0&&o<=0||t0)?gM.before(this.dom):gM.after(this.dom,e==this.length)}domBoundsAround(){return null}coordsAt(e,t){let n=this.widget.coordsAt(this.dom,e,t);if(n)return n;let i=this.dom.getClientRects(),o=null;if(!i.length)return null;let r=this.side?this.side<0:e>0;for(let t=r?i.length-1:0;o=i[t],!(e>0?0==t:t==i.length-1||o.top0?gM.before(this.dom):gM.after(this.dom)}localPosFromDOM(){return 0}domBoundsAround(){return null}coordsAt(e){return this.dom.getBoundingClientRect()}get overrideDOMText(){return ZC.empty}get isHidden(){return!0}}function FM(e,t){let n=e.dom,{children:i}=e,o=0;for(let e=0;oe&&t0;e--){let t=i[e-1];if(t.dom.parentNode==n)return t.domAtPos(t.length)}for(let e=o;e0&&t instanceof NM&&o.length&&(i=o[o.length-1])instanceof NM&&i.mark.eq(t.mark)?$M(i,t.children[0],n-1):(o.push(t),t.setParent(e)),e.length+=t.length}function jM(e,t,n){let i=null,o=-1,r=null,s=-1;!function e(t,a){for(let l=0,c=0;l=a&&(h.children.length?e(h,a-c):(!r||r.isHidden&&n>0)&&(u>a||c==u&&h.getSide()>0)?(r=h,s=a-c):(c-1?1:0)!=o.length-(n&&o.indexOf(n)>-1?1:0))return!1;for(let r of i)if(r!=n&&(-1==o.indexOf(r)||e[r]!==t[r]))return!1;return!0}function WM(e,t,n){let i=!1;if(t)for(let o in t)n&&o in n||(i=!0,"style"==o?e.style.cssText="":e.removeAttribute(o));if(n)for(let o in n)t&&t[o]==n[o]||(i=!0,"style"==o?e.style.cssText=n[o]:e.setAttribute(o,n[o]));return i}function GM(e){let t=Object.create(null);for(let n=0;n0?3e8:-4e8:t>0?1e8:-1e8,new ZM(e,t,t,n,e.widget||null,!1)}static replace(e){let t,n,i=!!e.block;if(e.isBlockGap)t=-5e8,n=4e8;else{let{start:o,end:r}=JM(e,i);t=(o?i?-3e8:-1:5e8)-1,n=1+(r?i?2e8:1:-6e8)}return new ZM(e,t,n,i,e.widget||null,!0)}static line(e){return new KM(e)}static set(e,t=!1){return EP.of(e,t)}hasHeight(){return!!this.widget&&this.widget.estimatedHeight>-1}}UM.none=EP.empty;class YM extends UM{constructor(e){let{start:t,end:n}=JM(e);super(t?-1:5e8,n?1:-6e8,null,e),this.tagName=e.tagName||"span",this.class=e.class||"",this.attrs=e.attributes||null}eq(e){var t,n;return this==e||e instanceof YM&&this.tagName==e.tagName&&(this.class||(null===(t=this.attrs)||void 0===t?void 0:t.class))==(e.class||(null===(n=e.attrs)||void 0===n?void 0:n.class))&&VM(this.attrs,e.attrs,"class")}range(e,t=e){if(e>=t)throw new RangeError("Mark decorations may not be empty");return super.range(e,t)}}YM.prototype.point=!1;class KM extends UM{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof KM&&this.spec.class==e.spec.class&&VM(this.spec.attributes,e.spec.attributes)}range(e,t=e){if(t!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,t)}}KM.prototype.mapMode=xO.TrackBefore,KM.prototype.point=!0;class ZM extends UM{constructor(e,t,n,i,o,r){super(t,n,o,e),this.block=i,this.isReplace=r,this.mapMode=i?t<=0?xO.TrackBefore:xO.TrackAfter:xO.TrackDel}get type(){return this.startSide!=this.endSide?XM.WidgetRange:this.startSide<=0?XM.WidgetBefore:XM.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(e){return e instanceof ZM&&function(e,t){return e==t||!!(e&&t&&e.compare(t))}(this.widget,e.widget)&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide}range(e,t=e){if(this.isReplace&&(e>t||e==t&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&t!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,t)}}function JM(e,t=!1){let{inclusiveStart:n,inclusiveEnd:i}=e;return null==n&&(n=e.inclusive),null==i&&(i=e.inclusive),{start:null!=n?n:t,end:null!=i?i:t}}function eA(e,t,n,i=0){let o=n.length-1;o>=0&&n[o]+i>=e?n[o]=Math.max(n[o],t):n.push(e,t)}ZM.prototype.point=!0;class tA extends yM{constructor(){super(...arguments),this.children=[],this.length=0,this.prevAttrs=void 0,this.attrs=null,this.breakAfter=0}merge(e,t,n,i,o,r){if(n){if(!(n instanceof tA))return!1;this.dom||n.transferDOM(this)}return i&&this.setDeco(n?n.attrs:null),_M(this,e,t,n?n.children.slice():[],o,r),!0}split(e){let t=new tA;if(t.breakAfter=this.breakAfter,0==this.length)return t;let{i:n,off:i}=this.childPos(e);i&&(t.append(this.children[n].split(i),0),this.children[n].merge(i,this.children[n].length,null,!1,0,0),n++);for(let e=n;e0&&0==this.children[n-1].length;)this.children[--n].destroy();return this.children.length=n,this.markDirty(),this.length=e,t}transferDOM(e){this.dom&&(this.markDirty(),e.setDOM(this.dom),e.prevAttrs=void 0===this.prevAttrs?this.attrs:this.prevAttrs,this.prevAttrs=void 0,this.dom=null)}setDeco(e){VM(this.attrs,e)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=e)}append(e,t){$M(this,e,t)}addLineDeco(e){let t=e.spec.attributes,n=e.spec.class;t&&(this.attrs=qM(t,this.attrs||{})),n&&(this.attrs=qM({class:n},this.attrs||{}))}domAtPos(e){return FM(this,e)}reuseDOM(e){"DIV"==e.nodeName&&(this.setDOM(e),this.flags|=6)}sync(e,t){var n;this.dom?4&this.flags&&(pM(this.dom),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0):(this.setDOM(document.createElement("div")),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0),void 0!==this.prevAttrs&&(WM(this.dom,this.prevAttrs,this.attrs),this.dom.classList.add("cm-line"),this.prevAttrs=void 0),super.sync(e,t);let i=this.dom.lastChild;for(;i&&yM.get(i)instanceof NM;)i=i.lastChild;if(!(i&&this.length&&("BR"==i.nodeName||0!=(null===(n=yM.get(i))||void 0===n?void 0:n.isEditable)||DM.ios&&this.children.some((e=>e instanceof LM))))){let e=document.createElement("BR");e.cmIgnore=!0,this.dom.appendChild(e)}}measureTextSize(){if(0==this.children.length||this.length>20)return null;let e,t=0;for(let n of this.children){if(!(n instanceof LM)||/[^ -~]/.test(n.text))return null;let i=KP(n.dom);if(1!=i.length)return null;t+=i[0].width,e=i[0].height}return t?{lineHeight:this.dom.getBoundingClientRect().height,charWidth:t/this.length,textHeight:e}:null}coordsAt(e,t){let n=jM(this,e,t);if(!this.children.length&&n&&this.parent){let{heightOracle:e}=this.parent.view.viewState,t=n.bottom-n.top;if(Math.abs(t-e.lineHeight)<2&&e.textHeight=t){if(o instanceof tA)return o;if(r>t)break}i=r+o.breakAfter}return null}}class nA extends yM{constructor(e,t,n){super(),this.widget=e,this.length=t,this.deco=n,this.breakAfter=0,this.prevWidget=null}merge(e,t,n,i,o,r){return!(n&&(!(n instanceof nA&&this.widget.compare(n.widget))||e>0&&o<=0||t0)}}class iA extends QM{constructor(e){super(),this.height=e}toDOM(){let e=document.createElement("div");return e.className="cm-gap",this.updateDOM(e),e}eq(e){return e.height==this.height}updateDOM(e){return e.style.height=this.height+"px",!0}get editable(){return!0}get estimatedHeight(){return this.height}ignoreEvent(){return!1}}class oA{constructor(e,t,n,i){this.doc=e,this.pos=t,this.end=n,this.disallowBlockEffectsFor=i,this.content=[],this.curLine=null,this.breakAtStart=0,this.pendingBuffer=0,this.bufferMarks=[],this.atCursorPos=!0,this.openStart=-1,this.openEnd=-1,this.text="",this.textOff=0,this.cursor=e.iter(),this.skip=t}posCovered(){if(0==this.content.length)return!this.breakAtStart&&this.doc.lineAt(this.pos).from!=this.pos;let e=this.content[this.content.length-1];return!(e.breakAfter||e instanceof nA&&e.deco.endSide<0)}getLine(){return this.curLine||(this.content.push(this.curLine=new tA),this.atCursorPos=!0),this.curLine}flushBuffer(e=this.bufferMarks){this.pendingBuffer&&(this.curLine.append(rA(new IM(-1),e),e.length),this.pendingBuffer=0)}addBlockWidget(e){this.flushBuffer(),this.curLine=null,this.content.push(e)}finish(e){this.pendingBuffer&&e<=this.bufferMarks.length?this.flushBuffer():this.pendingBuffer=0,this.posCovered()||e&&this.content.length&&this.content[this.content.length-1]instanceof nA||this.getLine()}buildText(e,t,n){for(;e>0;){if(this.textOff==this.text.length){let{value:t,lineBreak:n,done:i}=this.cursor.next(this.skip);if(this.skip=0,i)throw new Error("Ran out of text content when drawing inline views");if(n){this.posCovered()||this.getLine(),this.content.length?this.content[this.content.length-1].breakAfter=1:this.breakAtStart=1,this.flushBuffer(),this.curLine=null,this.atCursorPos=!0,e--;continue}this.text=t,this.textOff=0}let i=Math.min(this.text.length-this.textOff,e,512);this.flushBuffer(t.slice(t.length-n)),this.getLine().append(rA(new LM(this.text.slice(this.textOff,this.textOff+i)),t),n),this.atCursorPos=!0,this.textOff+=i,e-=i,n=0}}span(e,t,n,i){this.buildText(t-e,n,i),this.pos=t,this.openStart<0&&(this.openStart=i)}point(e,t,n,i,o,r){if(this.disallowBlockEffectsFor[r]&&n instanceof ZM){if(n.block)throw new RangeError("Block decorations may not be specified via plugins");if(t>this.doc.lineAt(this.pos).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}let s=t-e;if(n instanceof ZM)if(n.block)n.startSide>0&&!this.posCovered()&&this.getLine(),this.addBlockWidget(new nA(n.widget||sA.block,s,n));else{let r=zM.create(n.widget||sA.inline,s,s?0:n.startSide),a=this.atCursorPos&&!r.isEditable&&o<=i.length&&(e0),l=!r.isEditable&&(ei.length||n.startSide<=0),c=this.getLine();2!=this.pendingBuffer||a||r.isEditable||(this.pendingBuffer=0),this.flushBuffer(i),a&&(c.append(rA(new IM(1),i),o),o=i.length+Math.max(0,o-i.length)),c.append(rA(r,i),o),this.atCursorPos=l,this.pendingBuffer=l?ei.length?1:2:0,this.pendingBuffer&&(this.bufferMarks=i.slice())}else this.doc.lineAt(this.pos).from==this.pos&&this.getLine().addLineDeco(n);s&&(this.textOff+s<=this.text.length?this.textOff+=s:(this.skip+=s-(this.text.length-this.textOff),this.text="",this.textOff=0),this.pos=t),this.openStart<0&&(this.openStart=o)}static build(e,t,n,i,o){let r=new oA(e,t,n,o);return r.openEnd=EP.spans(i,t,n,r),r.openStart<0&&(r.openStart=r.openEnd),r.finish(r.openEnd),r}}function rA(e,t){for(let n of t)e=new NM(n,[e],e.length);return e}class sA extends QM{constructor(e){super(),this.tag=e}eq(e){return e.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(e){return e.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}}sA.inline=new sA("span"),sA.block=new sA("div");var aA=function(e){return e[e.LTR=0]="LTR",e[e.RTL=1]="RTL",e}(aA||(aA={}));const lA=aA.LTR,cA=aA.RTL;function hA(e){let t=[];for(let n=0;n=t){if(s.level==n)return r;(o<0||(0!=i?i<0?s.fromt:e[o].level>s.level))&&(o=r)}}if(o<0)throw new RangeError("Index out of range");return o}}function yA(e,t){if(e.length!=t.length)return!1;for(let n=0;nl&&s.push(new vA(l,f.from,p)),xA(e,f.direction==lA!=!(p%2)?i+1:i,o,f.inner,f.from,f.to,s),l=f.to),d=f.to}else{if(d==n||(t?bA[d]!=a:bA[d]==a))break;d++}u?wA(e,l,d,i+1,o,u,s):lt;){let n=!0,h=!1;if(!c||l>r[c-1].to){let e=bA[l-1];e!=a&&(n=!1,h=16==e)}let u=n||1!=a?null:[],p=n?i:i+1,d=l;e:for(;;)if(c&&d==r[c-1].to){if(h)break e;let f=r[--c];if(!n)for(let e=f.from,n=c;;){if(e==t)break e;if(!n||r[n-1].to!=e){if(bA[e-1]==a)break e;break}e=r[--n].from}u?u.push(f):(f.to=0;e-=3)if(fA[e+1]==-n){let t=fA[e+2],n=2&t?o:4&t?1&t?r:o:0;n&&(bA[s]=bA[fA[e]]=n),a=e;break}}else{if(189==fA.length)break;fA[a++]=s,fA[a++]=t,fA[a++]=l}else if(2==(i=bA[s])||1==i){let e=i==o;l=e?0:1;for(let t=a-3;t>=0;t-=3){let n=fA[t+2];if(2&n)break;if(e)fA[t+2]|=2;else{if(4&n)break;fA[t+2]|=4}}}}}(e,o,r,i,a),function(e,t,n,i){for(let o=0,r=i;o<=n.length;o++){let s=o?n[o-1].to:e,a=ol;)t==r&&(t=n[--i].from,r=i?n[i-1].to:e),bA[--t]=h;l=s}else r=s,l++}}}(o,r,i,a),wA(e,o,r,t,n,i,s)}function _A(e){return[new vA(0,e,0)]}let EA="";function kA(e,t,n,i,o){var r;let s=i.head-e.from,a=vA.find(t,s,null!==(r=i.bidiLevel)&&void 0!==r?r:-1,i.assoc),l=t[a],c=l.side(o,n);if(s==c){let e=a+=o?1:-1;if(e<0||e>=t.length)return null;l=t[a=e],s=l.side(!o,n),c=l.side(o,n)}let h=pO(e.text,s,l.forward(o,n));(hl.to)&&(h=c),EA=e.text.slice(Math.min(s,h),Math.max(s,h));let u=a==(o?t.length-1:0)?null:t[a+(o?1:-1)];return u&&h==c&&u.level+(o?0:1)e.some((e=>e))}),DA=DO.define({combine:e=>e.some((e=>e))}),LA=DO.define();class NA{constructor(e,t="nearest",n="nearest",i=5,o=5,r=!1){this.range=e,this.y=t,this.x=n,this.yMargin=i,this.xMargin=o,this.isSnapshot=r}map(e){return e.empty?this:new NA(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(e){return this.range.to<=e.doc.length?this:new NA(TO.cursor(e.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}}const zA=sP.define({map:(e,t)=>e.map(t)}),IA=sP.define();function FA(e,t,n){let i=e.facet(MA);i.length?i[0](t):window.onerror?window.onerror(String(t),n,void 0,void 0,t):n?console.error(n+":",t):console.error(t)}const $A=DO.define({combine:e=>!e.length||e[0]});let jA=0;const qA=DO.define();class HA{constructor(e,t,n,i,o){this.id=e,this.create=t,this.domEventHandlers=n,this.domEventObservers=i,this.extension=o(this)}static define(e,t){const{eventHandlers:n,eventObservers:i,provide:o,decorations:r}=t||{};return new HA(jA++,e,n,i,(e=>{let t=[qA.of(e)];return r&&t.push(QA.of((t=>{let n=t.plugin(e);return n?r(n):UM.none}))),o&&t.push(o(e)),t}))}static fromClass(e,t){return HA.define((t=>new e(t)),t)}}class VA{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}update(e){if(this.value){if(this.mustUpdate){let e=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(e)}catch(t){if(FA(e.state,t,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch(e){}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.create(e)}catch(t){FA(e.state,t,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(e){var t;if(null===(t=this.value)||void 0===t?void 0:t.destroy)try{this.value.destroy()}catch(t){FA(e.state,t,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}}const WA=DO.define(),GA=DO.define(),QA=DO.define(),XA=DO.define(),UA=DO.define(),YA=DO.define();function KA(e,t){let n=e.state.facet(YA);if(!n.length)return n;let i=n.map((t=>t instanceof Function?t(e):t)),o=[];return EP.spans(i,t.from,t.to,{point(){},span(e,n,i,r){let s=e-t.from,a=n-t.from,l=o;for(let e=i.length-1;e>=0;e--,r--){let n,o=i[e].spec.bidiIsolate;if(null==o&&(o=SA(t.text,s,a)),r>0&&l.length&&(n=l[l.length-1]).to==s&&n.direction==o)n.to=a,l=n.inner;else{let e={from:s,to:a,direction:o,inner:[]};l.push(e),l=e.inner}}}}),o}const ZA=DO.define();function JA(e){let t=0,n=0,i=0,o=0;for(let r of e.state.facet(ZA)){let s=r(e);s&&(null!=s.left&&(t=Math.max(t,s.left)),null!=s.right&&(n=Math.max(n,s.right)),null!=s.top&&(i=Math.max(i,s.top)),null!=s.bottom&&(o=Math.max(o,s.bottom)))}return{left:t,right:n,top:i,bottom:o}}const eT=DO.define();class tT{constructor(e,t,n,i){this.fromA=e,this.toA=t,this.fromB=n,this.toB=i}join(e){return new tT(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}addToSet(e){let t=e.length,n=this;for(;t>0;t--){let i=e[t-1];if(!(i.fromA>n.toA)){if(i.toAc)break;o+=2}if(!a)return n;new tT(a.fromA,a.toA,a.fromB,a.toB).addToSet(n),r=a.toA,s=a.toB}}}class nT{constructor(e,t,n){this.view=e,this.state=t,this.transactions=n,this.flags=0,this.startState=e.state,this.changes=EO.empty(this.startState.doc.length);for(let e of n)this.changes=this.changes.compose(e.changes);let i=[];this.changes.iterChangedRanges(((e,t,n,o)=>i.push(new tT(e,t,n,o)))),this.changedRanges=i}static create(e,t,n){return new nT(e,t,n)}get viewportChanged(){return(4&this.flags)>0}get heightChanged(){return(2&this.flags)>0}get geometryChanged(){return this.docChanged||(10&this.flags)>0}get focusChanged(){return(1&this.flags)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some((e=>e.selection))}get empty(){return 0==this.flags&&0==this.transactions.length}}class iT extends yM{get length(){return this.view.state.doc.length}constructor(e){super(),this.view=e,this.decorations=[],this.dynamicDecorationMap=[!1],this.domChanged=null,this.hasComposition=null,this.markedForComposition=new Set,this.editContextFormatting=UM.none,this.lastCompositionAfterCursor=!1,this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.setDOM(e.contentDOM),this.children=[new tA],this.children[0].setParent(this),this.updateDeco(),this.updateInner([new tT(0,0,0,e.state.doc.length)],0,null)}update(e){var t;let n=e.changedRanges;this.minWidth>0&&n.length&&(n.every((({fromA:e,toA:t})=>tthis.minWidthTo))?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0),this.updateEditContextFormatting(e);let i=-1;this.view.inputState.composing>=0&&!this.view.observer.editContext&&((null===(t=this.domChanged)||void 0===t?void 0:t.newSel)?i=this.domChanged.newSel.head:function(e,t){let n=!1;return t&&e.iterChangedRanges(((e,i)=>{et.from&&(n=!0)})),n}(e.changes,this.hasComposition)||e.selectionSet||(i=e.state.selection.main.head));let o=i>-1?function(e,t,n){let i=oT(e,n);if(!i)return null;let{node:o,from:r,to:s}=i,a=o.nodeValue;if(/[\n\r]/.test(a))return null;if(e.state.doc.sliceString(i.from,i.to)!=a)return null;let l=t.invertedDesc,c=new tT(l.mapPos(r),l.mapPos(s),r,s),h=[];for(let t=o.parentNode;;t=t.parentNode){let n=yM.get(t);if(n instanceof NM)h.push({node:t,deco:n.mark});else{if(n instanceof tA||"DIV"==t.nodeName&&t.parentNode==e.contentDOM)return{range:c,text:o,marks:h,line:t};if(t==e.contentDOM)return null;h.push({node:t,deco:new YM({inclusive:!0,attributes:GM(t),tagName:t.tagName.toLowerCase()})})}}}(this.view,e.changes,i):null;if(this.domChanged=null,this.hasComposition){this.markedForComposition.clear();let{from:t,to:i}=this.hasComposition;n=new tT(t,i,e.changes.mapPos(t,-1),e.changes.mapPos(i,1)).addToSet(n.slice())}this.hasComposition=o?{from:o.range.fromB,to:o.range.toB}:null,(DM.ie||DM.chrome)&&!o&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let r=function(e,t,n){let i=new rT;return EP.compare(e,t,n,i),i.changes}(this.decorations,this.updateDeco(),e.changes);return n=tT.extendWithRanges(n,r),!!(7&this.flags||0!=n.length)&&(this.updateInner(n,e.startState.doc.length,o),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,t,n){this.view.viewState.mustMeasureContent=!0,this.updateChildren(e,t,n);let{observer:i}=this.view;i.ignore((()=>{this.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let e=DM.chrome||DM.ios?{node:i.selectionRange.focusNode,written:!1}:void 0;this.sync(this.view,e),this.flags&=-8,e&&(e.written||i.selectionRange.focusNode!=e.node)&&(this.forceSelection=!0),this.dom.style.height=""})),this.markedForComposition.forEach((e=>e.flags&=-9));let o=[];if(this.view.viewport.from||this.view.viewport.to=0?i[e]:null;if(!t)break;let r,s,a,l,{fromA:c,toA:h,fromB:u,toB:p}=t;if(n&&n.range.fromBu){let e=oA.build(this.view.state.doc,u,n.range.fromB,this.decorations,this.dynamicDecorationMap),t=oA.build(this.view.state.doc,n.range.toB,p,this.decorations,this.dynamicDecorationMap);s=e.breakAtStart,a=e.openStart,l=t.openEnd;let i=this.compositionView(n);t.breakAtStart?i.breakAfter=1:t.content.length&&i.merge(i.length,i.length,t.content[0],!1,t.openStart,0)&&(i.breakAfter=t.content[0].breakAfter,t.content.shift()),e.content.length&&i.merge(0,0,e.content[e.content.length-1],!0,0,e.openEnd)&&e.content.pop(),r=e.content.concat(i).concat(t.content)}else({content:r,breakAtStart:s,openStart:a,openEnd:l}=oA.build(this.view.state.doc,u,p,this.decorations,this.dynamicDecorationMap));let{i:d,off:f}=o.findPos(h,1),{i:m,off:g}=o.findPos(c,-1);xM(this,m,g,d,f,r,s,a,l)}n&&this.fixCompositionDOM(n)}updateEditContextFormatting(e){this.editContextFormatting=this.editContextFormatting.map(e.changes);for(let t of e.transactions)for(let e of t.effects)e.is(IA)&&(this.editContextFormatting=e.value)}compositionView(e){let t=new LM(e.text.nodeValue);t.flags|=8;for(let{deco:n}of e.marks)t=new NM(n,[t],t.length);let n=new tA;return n.append(t,0),n}fixCompositionDOM(e){let t=(e,t)=>{t.flags|=8|(t.children.some((e=>7&e.flags))?1:0),this.markedForComposition.add(t);let n=yM.get(e);n&&n!=t&&(n.dom=null),t.setDOM(e)},n=this.childPos(e.range.fromB,1),i=this.children[n.i];t(e.line,i);for(let o=e.marks.length-1;o>=-1;o--)n=i.childPos(n.off,1),i=i.children[n.i],t(o>=0?e.marks[o].node:e.text,i)}updateSelection(e=!1,t=!1){!e&&this.view.observer.selectionRange.focusNode||this.view.observer.readSelectionRange();let n=this.view.root.activeElement,i=n==this.dom,o=!i&&YP(this.dom,this.view.observer.selectionRange)&&!(n&&this.dom.contains(n));if(!(i||t||o))return;let r=this.forceSelection;this.forceSelection=!1;let s=this.view.state.selection.main,a=this.moveToLine(this.domAtPos(s.anchor)),l=s.empty?a:this.moveToLine(this.domAtPos(s.head));if(DM.gecko&&s.empty&&!this.hasComposition&&1==(c=a).node.nodeType&&c.node.firstChild&&(0==c.offset||"false"==c.node.childNodes[c.offset-1].contentEditable)&&(c.offset==c.node.childNodes.length||"false"==c.node.childNodes[c.offset].contentEditable)){let e=document.createTextNode("");this.view.observer.ignore((()=>a.node.insertBefore(e,a.node.childNodes[a.offset]||null))),a=l=new gM(e,0),r=!0}var c;let h=this.view.observer.selectionRange;!r&&h.focusNode&&(ZP(a.node,a.offset,h.anchorNode,h.anchorOffset)&&ZP(l.node,l.offset,h.focusNode,h.focusOffset)||this.suppressWidgetCursorChange(h,s))||(this.view.observer.ignore((()=>{DM.android&&DM.chrome&&this.dom.contains(h.focusNode)&&function(e,t){for(let n=e;n&&n!=t;n=n.assignedSlot||n.parentNode)if(1==n.nodeType&&"false"==n.contentEditable)return!0;return!1}(h.focusNode,this.dom)&&(this.dom.blur(),this.dom.focus({preventScroll:!0}));let e=XP(this.view.root);if(e)if(s.empty){if(DM.gecko){let e=function(e,t){return 1!=e.nodeType?0:(t&&"false"==e.childNodes[t-1].contentEditable?1:0)|(ts.head&&([a,l]=[l,a]),t.setEnd(l.node,l.offset),t.setStart(a.node,a.offset),e.removeAllRanges(),e.addRange(t)}o&&this.view.root.activeElement==this.dom&&(this.dom.blur(),n&&n.focus())})),this.view.observer.setSelectionRange(a,l)),this.impreciseAnchor=a.precise?null:new gM(h.anchorNode,h.anchorOffset),this.impreciseHead=l.precise?null:new gM(h.focusNode,h.focusOffset)}suppressWidgetCursorChange(e,t){return this.hasComposition&&t.empty&&ZP(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset)&&this.posFromDOM(e.focusNode,e.focusOffset)==t.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:e}=this,t=e.state.selection.main,n=XP(e.root),{anchorNode:i,anchorOffset:o}=e.observer.selectionRange;if(!(n&&t.empty&&t.assoc&&n.modify))return;let r=tA.find(this,t.head);if(!r)return;let s=r.posAtStart;if(t.head==s||t.head==s+r.length)return;let a=this.coordsAt(t.head,-1),l=this.coordsAt(t.head,1);if(!a||!l||a.bottom>l.top)return;let c=this.domAtPos(t.head+t.assoc);n.collapse(c.node,c.offset),n.modify("move",t.assoc<0?"forward":"backward","lineboundary"),e.observer.readSelectionRange();let h=e.observer.selectionRange;e.docView.posFromDOM(h.anchorNode,h.anchorOffset)!=t.from&&n.collapse(i,o)}moveToLine(e){let t,n=this.dom;if(e.node!=n)return e;for(let i=e.offset;!t&&i=0;i--){let e=yM.get(n.childNodes[i]);e instanceof tA&&(t=e.domAtPos(e.length))}return t?new gM(t.node,t.offset,!0):e}nearest(e){for(let t=e;t;){let e=yM.get(t);if(e&&e.rootView==this)return e;t=t.parentNode}return null}posFromDOM(e,t){let n=this.nearest(e);if(!n)throw new RangeError("Trying to find position for a DOM position outside of the document");return n.localPosFromDOM(e,t)+n.posAtStart}domAtPos(e){let{i:t,off:n}=this.childCursor().findPos(e,-1);for(;t=0;r--){let s=this.children[r],a=o-s.breakAfter,l=a-s.length;if(ae||s.covers(1))&&(!n||s instanceof tA&&!(n instanceof tA&&t>=0)))n=s,i=l;else if(n&&l==e&&a==e&&s instanceof nA&&Math.abs(t)<2){if(s.deco.startSide<0)break;r&&(n=null)}o=l}return n?n.coordsAt(e-i,t):null}coordsForChar(e){let{i:t,off:n}=this.childPos(e,1),i=this.children[t];if(!(i instanceof tA))return null;for(;i.children.length;){let{i:e,off:t}=i.childPos(n,1);for(;;e++){if(e==i.children.length)return null;if((i=i.children[e]).length)break}n=t}if(!(i instanceof LM))return null;let o=pO(i.text,n);if(o==n)return null;let r=hM(i.dom,n,o).getClientRects();for(let e=0;eMath.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,s=-1,a=this.view.textDirection==aA.LTR;for(let e=0,l=0;li)break;if(e>=n){let n=c.dom.getBoundingClientRect();if(t.push(n.height),r){let t=c.dom.lastChild,i=t?KP(t):[];if(i.length){let t=i[i.length-1],r=a?t.right-n.left:n.right-t.left;r>s&&(s=r,this.minWidth=o,this.minWidthFrom=e,this.minWidthTo=h)}}}e=h+c.breakAfter}return t}textDirectionAt(e){let{i:t}=this.childPos(e,1);return"rtl"==getComputedStyle(this.children[t].dom).direction?aA.RTL:aA.LTR}measureTextSize(){for(let e of this.children)if(e instanceof tA){let t=e.measureTextSize();if(t)return t}let e,t,n,i=document.createElement("div");return i.className="cm-line",i.style.width="99999px",i.style.position="absolute",i.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore((()=>{this.dom.appendChild(i);let o=KP(i.firstChild)[0];e=i.getBoundingClientRect().height,t=o?o.width/27:7,n=o?o.height:e,i.remove()})),{lineHeight:e,charWidth:t,textHeight:n}}childCursor(e=this.length){let t=this.children.length;return t&&(e-=this.children[--t].length),new wM(this.children,e,t)}computeBlockGapDeco(){let e=[],t=this.view.viewState;for(let n=0,i=0;;i++){let o=i==t.viewports.length?null:t.viewports[i],r=o?o.from-1:this.length;if(r>n){let i=(t.lineBlockAt(r).bottom-t.lineBlockAt(n).top)/this.view.scaleY;e.push(UM.replace({widget:new iA(i),block:!0,inclusive:!0,isBlockGap:!0}).range(n,r))}if(!o)break;n=o.to+1}return UM.set(e)}updateDeco(){let e=1,t=this.view.state.facet(QA).map((t=>(this.dynamicDecorationMap[e++]="function"==typeof t)?t(this.view):t)),n=!1,i=this.view.state.facet(XA).map(((e,t)=>{let i="function"==typeof e;return i&&(n=!0),i?e(this.view):e}));for(i.length&&(this.dynamicDecorationMap[e++]=n,t.push(EP.join(i))),this.decorations=[this.editContextFormatting,...t,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];en.anchor?-1:1);if(!i)return;!n.empty&&(t=this.coordsAt(n.anchor,n.anchor>n.head?-1:1))&&(i={left:Math.min(i.left,t.left),top:Math.min(i.top,t.top),right:Math.max(i.right,t.right),bottom:Math.max(i.bottom,t.bottom)});let o=JA(this.view),r={left:i.left-o.left,top:i.top-o.top,right:i.right+o.right,bottom:i.bottom+o.bottom},{offsetWidth:s,offsetHeight:a}=this.view.scrollDOM;!function(e,t,n,i,o,r,s,a){let l=e.ownerDocument,c=l.defaultView||window;for(let h=e,u=!1;h&&!u;)if(1==h.nodeType){let e,p=h==l.body,d=1,f=1;if(p)e=oM(c);else{if(/^(fixed|sticky)$/.test(getComputedStyle(h).position)&&(u=!0),h.scrollHeight<=h.clientHeight&&h.scrollWidth<=h.clientWidth){h=h.assignedSlot||h.parentNode;continue}let t=h.getBoundingClientRect();({scaleX:d,scaleY:f}=rM(h,t)),e={left:t.left,right:t.left+h.clientWidth*d,top:t.top,bottom:t.top+h.clientHeight*f}}let m=0,g=0;if("nearest"==o)t.top0&&t.bottom>e.bottom+g&&(g=t.bottom-e.bottom+g+s)):t.bottom>e.bottom&&(g=t.bottom-e.bottom+s,n<0&&t.top-g0&&t.right>e.right+m&&(m=t.right-e.right+m+r)):t.right>e.right&&(m=t.right-e.right+r,n<0&&t.lefte?t.left-e:Math.max(0,e-t.right)}function aT(e,t){return t.top>e?t.top-e:Math.max(0,e-t.bottom)}function lT(e,t){return e.topt.top+1}function cT(e,t){return te.bottom?{top:e.top,left:e.left,right:e.right,bottom:t}:e}function uT(e,t,n){let i,o,r,s,a,l,c,h,u=!1;for(let p=e.firstChild;p;p=p.nextSibling){let e=KP(p);for(let d=0;dg||s==g&&r>m){i=p,o=f,r=m,s=g;let a=g?n0?d0)}0==m?n>f.bottom&&(!c||c.bottomf.top)&&(l=p,h=f):c&&lT(c,f)?c=hT(c,f.bottom):h&&lT(h,f)&&(h=cT(h,f.top))}}if(c&&c.bottom>=n?(i=a,o=c):h&&h.top<=n&&(i=l,o=h),!i)return{node:e,offset:0};let p=Math.max(o.left,Math.min(o.right,t));return 3==i.nodeType?pT(i,p,n):u&&"false"!=i.contentEditable?uT(i,p,n):{node:e,offset:Array.prototype.indexOf.call(e.childNodes,i)+(t>=(o.left+o.right)/2?1:0)}}function pT(e,t,n){let i=e.nodeValue.length,o=-1,r=1e9,s=0;for(let a=0;an?c.top-n:n-c.bottom)-1;if(c.left-1<=t&&c.right+1>=t&&h=(c.left+c.right)/2,i=n;if((DM.chrome||DM.gecko)&&hM(e,a).getBoundingClientRect().left==c.right&&(i=!n),h<=0)return{node:e,offset:a+(i?1:0)};o=a+(i?1:0),r=h}}}return{node:e,offset:o>-1?o:s>0?e.nodeValue.length:0}}function dT(e,t,n,i=-1){var o,r;let s,a=e.contentDOM.getBoundingClientRect(),l=a.top+e.viewState.paddingTop,{docHeight:c}=e.viewState,{x:h,y:u}=t,p=u-l;if(p<0)return 0;if(p>c)return e.state.doc.length;for(let t=e.viewState.heightOracle.textHeight/2,o=!1;s=e.elementAtHeight(p),s.type!=XM.Text;)for(;p=i>0?s.bottom+t:s.top-t,!(p>=0&&p<=c);){if(o)return n?null:0;o=!0,i=-i}u=l+p;let d=s.from;if(de.viewport.to)return e.viewport.to==e.state.doc.length?e.state.doc.length:n?null:fT(e,a,s,h,u);let f=e.dom.ownerDocument,m=e.root.elementFromPoint?e.root:f,g=m.elementFromPoint(h,u);g&&!e.contentDOM.contains(g)&&(g=null),g||(h=Math.max(a.left+1,Math.min(a.right-1,h)),g=m.elementFromPoint(h,u),g&&!e.contentDOM.contains(g)&&(g=null));let v,y=-1;if(g&&0!=(null===(o=e.docView.nearest(g))||void 0===o?void 0:o.isEditable))if(f.caretPositionFromPoint){let e=f.caretPositionFromPoint(h,u);e&&({offsetNode:v,offset:y}=e)}else if(f.caretRangeFromPoint){let t=f.caretRangeFromPoint(h,u);t&&(({startContainer:v,startOffset:y}=t),(!e.contentDOM.contains(v)||DM.safari&&function(e,t,n){let i;if(3!=e.nodeType||t!=(i=e.nodeValue.length))return!1;for(let t=e.nextSibling;t;t=t.nextSibling)if(1!=t.nodeType||"BR"!=t.nodeName)return!1;return hM(e,i-1,i).getBoundingClientRect().left>n}(v,y,h)||DM.chrome&&function(e,t,n){if(0!=t)return!1;for(let t=e;;){let e=t.parentNode;if(!e||1!=e.nodeType||e.firstChild!=t)return!1;if(e.classList.contains("cm-line"))break;t=e}return n-(1==e.nodeType?e.getBoundingClientRect():hM(e,0,Math.max(e.nodeValue.length,1)).getBoundingClientRect()).left>5}(v,y,h))&&(v=void 0))}if(!v||!e.docView.dom.contains(v)){let t=tA.find(e.docView,d);if(!t)return p>s.top+s.height/2?s.to:s.from;({node:v,offset:y}=uT(t.dom,h,u))}let b=e.docView.nearest(v);if(!b)return null;if(b.isWidget&&1==(null===(r=b.dom)||void 0===r?void 0:r.nodeType)){let e=b.dom.getBoundingClientRect();return t.y1.5*e.defaultLineHeight){let t=e.viewState.heightOracle.textHeight;r+=Math.floor((o-n.top-.5*(e.defaultLineHeight-t))/t)*e.viewState.heightOracle.lineLength}let s=e.state.sliceDoc(n.from,n.to);return n.from+function(e,t,n,i){for(let i=0,o=0;;){if(o>=t)return i;if(i==e.length)break;o+=9==e.charCodeAt(i)?n-o%n:1,i=pO(e,i)}return e.length}(s,r,e.state.tabSize)}function mT(e,t,n,i){let o=e.state.doc.lineAt(t.head),r=e.bidiSpans(o),s=e.textDirectionAt(o.from);for(let a=t,l=null;;){let t=kA(o,r,s,a,n),c=EA;if(!t){if(o.number==(n?e.state.doc.lines:1))return a;c="\n",o=e.state.doc.line(o.number+(n?1:-1)),r=e.bidiSpans(o),t=e.visualLineSide(o,!n)}if(l){if(!l(c))return a}else{if(!i)return t;l=i(c)}a=t}}function gT(e,t,n){for(;;){let i=0;for(let o of e)o.between(t-1,t+1,((e,o,r)=>{if(t>e&&tt(e))),n.from,t.head>n.from?-1:1);return i==n.from?n:TO.cursor(i,ie)&&this.lineBreak(),i=o}return this.findPointBefore(n,t),this}readTextNode(e){let t=e.nodeValue;for(let n of this.points)n.node==e&&(n.pos=this.text.length+Math.min(n.offset,t.length));for(let n=0,i=this.lineSeparator?null:/\r\n?|\n/g;;){let o,r=-1,s=1;if(this.lineSeparator?(r=t.indexOf(this.lineSeparator,n),s=this.lineSeparator.length):(o=i.exec(t))&&(r=o.index,s=o[0].length),this.append(t.slice(n,r<0?t.length:r)),r<0)break;if(this.lineBreak(),s>1)for(let t of this.points)t.node==e&&t.pos>this.text.length&&(t.pos-=s-1);n=r+s}}readNode(e){if(e.cmIgnore)return;let t=yM.get(e),n=t&&t.overrideDOMText;if(null!=n){this.findPointInside(e,n.length);for(let e=n.iter();!e.next().done;)e.lineBreak?this.lineBreak():this.append(e.value)}else 3==e.nodeType?this.readTextNode(e):"BR"==e.nodeName?e.nextSibling&&this.lineBreak():1==e.nodeType&&this.readRange(e.firstChild,null)}findPointBefore(e,t){for(let n of this.points)n.node==e&&e.childNodes[n.offset]==t&&(n.pos=this.text.length)}findPointInside(e,t){for(let n of this.points)(3==e.nodeType?n.node==e:e.contains(n.node))&&(n.pos=this.text.length+(wT(e,n.node,n.offset)?t:0))}}function wT(e,t,n){for(;;){if(!t||n-1;let{impreciseHead:o,impreciseAnchor:r}=e.docView;if(e.state.readOnly&&t>-1)this.newSel=null;else if(t>-1&&(this.bounds=e.docView.domBoundsAround(t,n,0))){let t=o||r?[]:function(e){let t=[];if(e.root.activeElement!=e.contentDOM)return t;let{anchorNode:n,anchorOffset:i,focusNode:o,focusOffset:r}=e.observer.selectionRange;return n&&(t.push(new xT(n,i)),o==n&&r==i||t.push(new xT(o,r))),t}(e),n=new bT(t,e.state);n.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=n.text,this.newSel=function(e,t){if(0==e.length)return null;let n=e[0].pos,i=2==e.length?e[1].pos:n;return n>-1&&i>-1?TO.single(n+t,i+t):null}(t,this.bounds.from)}else{let t=e.observer.selectionRange,n=o&&o.node==t.focusNode&&o.offset==t.focusOffset||!UP(e.contentDOM,t.focusNode)?e.state.selection.main.head:e.docView.posFromDOM(t.focusNode,t.focusOffset),i=r&&r.node==t.anchorNode&&r.offset==t.anchorOffset||!UP(e.contentDOM,t.anchorNode)?e.state.selection.main.anchor:e.docView.posFromDOM(t.anchorNode,t.anchorOffset),s=e.viewport;if((DM.ios||DM.chrome)&&e.state.selection.main.empty&&n!=i&&(s.from>0||s.toDate.now()-100?e.inputState.lastKeyCode:-1;if(t.bounds){let{from:i,to:s}=t.bounds,a=o.from,l=null;(8===r||DM.android&&t.text.length0&&a>0&&e.charCodeAt(s-1)==t.charCodeAt(a-1);)s--,a--;return"end"==i&&(n-=s+Math.max(0,r-Math.min(s,a))-r),s=s?r-n:0,a=r+(a-s),s=r):a=a?r-n:0,s=r+(s-a),a=r),{from:r,toA:s,toB:a}}(e.state.doc.sliceString(i,s,yT),t.text,a-i,l);c&&(DM.chrome&&13==r&&c.toB==c.from+2&&t.text.slice(c.from,c.toB)==yT+yT&&c.toB--,n={from:i+c.from,to:i+c.toA,insert:ZC.of(t.text.slice(c.from,c.toB).split(yT))})}else i&&(!e.hasFocus&&e.state.facet($A)||i.main.eq(o))&&(i=null);if(!n&&!i)return!1;if(!n&&t.typeOver&&!o.empty&&i&&i.main.empty?n={from:o.from,to:o.to,insert:e.state.doc.slice(o.from,o.to)}:n&&n.from>=o.from&&n.to<=o.to&&(n.from!=o.from||n.to!=o.to)&&o.to-o.from-(n.to-n.from)<=4?n={from:o.from,to:o.to,insert:e.state.doc.slice(o.from,n.from).append(n.insert).append(e.state.doc.slice(n.to,o.to))}:(DM.mac||DM.android)&&n&&n.from==n.to&&n.from==o.head-1&&/^\. ?$/.test(n.insert.toString())&&"off"==e.contentDOM.getAttribute("autocorrect")?(i&&2==n.insert.length&&(i=TO.single(i.main.anchor-1,i.main.head-1)),n={from:o.from,to:o.to,insert:ZC.of([" "])}):DM.chrome&&n&&n.from==n.to&&n.from==o.head&&"\n "==n.insert.toString()&&e.lineWrapping&&(i&&(i=TO.single(i.main.anchor-1,i.main.head-1)),n={from:o.from,to:o.to,insert:ZC.of([" "])}),n)return kT(e,n,i,r);if(i&&!i.main.eq(o)){let t=!1,n="select";return e.inputState.lastSelectionTime>Date.now()-50&&("select"==e.inputState.lastSelectionOrigin&&(t=!0),n=e.inputState.lastSelectionOrigin),e.dispatch({selection:i,scrollIntoView:t,userEvent:n}),!0}return!1}function kT(e,t,n,i=-1){if(DM.ios&&e.inputState.flushIOSKey(t))return!0;let o=e.state.selection.main;if(DM.android&&(t.to==o.to&&(t.from==o.from||t.from==o.from-1&&" "==e.state.sliceDoc(t.from,o.from))&&1==t.insert.length&&2==t.insert.lines&&uM(e.contentDOM,"Enter",13)||(t.from==o.from-1&&t.to==o.to&&0==t.insert.length||8==i&&t.insert.lengtho.head)&&uM(e.contentDOM,"Backspace",8)||t.from==o.from&&t.to==o.to+1&&0==t.insert.length&&uM(e.contentDOM,"Delete",46)))return!0;let r,s=t.insert.toString();e.inputState.composing>=0&&e.inputState.composing++;let a=()=>r||(r=function(e,t,n){let i,o=e.state,r=o.selection.main;if(t.from>=r.from&&t.to<=r.to&&t.to-t.from>=(r.to-r.from)/3&&(!n||n.main.empty&&n.main.from==t.from+t.insert.length)&&e.inputState.composing<0){let n=r.fromt.to?o.sliceDoc(t.to,r.to):"";i=o.replaceSelection(e.state.toText(n+t.insert.sliceString(0,void 0,e.state.lineBreak)+s))}else{let s=o.changes(t),a=n&&n.main.to<=s.newLength?n.main:void 0;if(o.selection.ranges.length>1&&e.inputState.composing>=0&&t.to<=r.to&&t.to>=r.to-10){let l,c=e.state.sliceDoc(t.from,t.to),h=n&&oT(e,n.main.head);if(h){let e=t.insert.length-(t.to-t.from);l={from:h.from,to:h.to-e}}else l=e.state.doc.lineAt(r.head);let u=r.to-t.to,p=r.to-r.from;i=o.changeByRange((n=>{if(n.from==r.from&&n.to==r.to)return{changes:s,range:a||n.map(s)};let i=n.to-u,h=i-c.length;if(n.to-n.from!=p||e.state.sliceDoc(h,i)!=c||n.to>=l.from&&n.from<=l.to)return{range:n};let d=o.changes({from:h,to:i,insert:t.insert}),f=n.to-r.to;return{changes:d,range:a?TO.range(Math.max(0,a.anchor+f),Math.max(0,a.head+f)):n.map(d)}}))}else i={changes:s,selection:a&&o.selection.replaceRange(a)}}let s="input.type";return(e.composing||e.inputState.compositionPendingChange&&e.inputState.compositionEndedAt>Date.now()-50)&&(e.inputState.compositionPendingChange=!1,s+=".compose",e.inputState.compositionFirstChange&&(s+=".start",e.inputState.compositionFirstChange=!1)),o.update(i,{userEvent:s,scrollIntoView:!0})}(e,t,n));return e.state.facet(TA).some((n=>n(e,t.from,t.to,s,a)))||e.dispatch(a()),!0}class ST{setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}constructor(e){this.view=e,this.lastKeyCode=0,this.lastKeyTime=0,this.lastTouchTime=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.pendingIOSKey=void 0,this.tabFocusMode=-1,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastContextMenu=0,this.scrollHandlers=[],this.handlers=Object.create(null),this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.mouseSelection=null,this.draggedContent=null,this.handleEvent=this.handleEvent.bind(this),this.notifiedFocused=e.hasFocus,DM.safari&&e.contentDOM.addEventListener("input",(()=>null)),DM.gecko&&function(e){KT.has(e)||(KT.add(e),e.addEventListener("copy",(()=>{})),e.addEventListener("cut",(()=>{})))}(e.contentDOM.ownerDocument)}handleEvent(e){(function(e,t){if(!t.bubbles)return!0;if(t.defaultPrevented)return!1;for(let n,i=t.target;i!=e.contentDOM;i=i.parentNode)if(!i||11==i.nodeType||(n=yM.get(i))&&n.ignoreEvent(t))return!1;return!0})(this.view,e)&&!this.ignoreDuringComposition(e)&&("keydown"==e.type&&this.keydown(e)||this.runHandlers(e.type,e))}runHandlers(e,t){let n=this.handlers[e];if(n){for(let e of n.observers)e(this.view,t);for(let e of n.handlers){if(t.defaultPrevented)break;if(e(this.view,t)){t.preventDefault();break}}}}ensureHandlers(e){let t=OT(e),n=this.handlers,i=this.view.contentDOM;for(let e in t)if("scroll"!=e){let o=!t[e].handlers.length,r=n[e];r&&o!=!r.handlers.length&&(i.removeEventListener(e,this.handleEvent),r=null),r||i.addEventListener(e,this.handleEvent,{passive:o})}for(let e in n)"scroll"==e||t[e]||i.removeEventListener(e,this.handleEvent);this.handlers=t}keydown(e){if(this.lastKeyCode=e.keyCode,this.lastKeyTime=Date.now(),9==e.keyCode&&this.tabFocusMode>-1&&(!this.tabFocusMode||Date.now()<=this.tabFocusMode))return!0;if(this.tabFocusMode>0&&27!=e.keyCode&&AT.indexOf(e.keyCode)<0&&(this.tabFocusMode=-1),DM.android&&DM.chrome&&!e.synthetic&&(13==e.keyCode||8==e.keyCode))return this.view.observer.delayAndroidKey(e.key,e.keyCode),!0;let t;return!DM.ios||e.synthetic||e.altKey||e.metaKey||!((t=PT.find((t=>t.keyCode==e.keyCode)))&&!e.ctrlKey||MT.indexOf(e.key)>-1&&e.ctrlKey&&!e.shiftKey)?(229!=e.keyCode&&this.view.observer.forceFlush(),!1):(this.pendingIOSKey=t||e,setTimeout((()=>this.flushIOSKey()),250),!0)}flushIOSKey(e){let t=this.pendingIOSKey;return!!t&&!("Enter"==t.key&&e&&e.from0||!!(DM.safari&&!DM.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100)&&(this.compositionPendingKey=!1,!0))}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.view.observer.update(e),this.mouseSelection&&this.mouseSelection.update(e),this.draggedContent&&e.docChanged&&(this.draggedContent=this.draggedContent.map(e.changes)),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}}function CT(e,t){return(n,i)=>{try{return t.call(e,i,n)}catch(e){FA(n.state,e)}}}function OT(e){let t=Object.create(null);function n(e){return t[e]||(t[e]={observers:[],handlers:[]})}for(let t of e){let e=t.spec;if(e&&e.domEventHandlers)for(let i in e.domEventHandlers){let o=e.domEventHandlers[i];o&&n(i).handlers.push(CT(t.value,o))}if(e&&e.domEventObservers)for(let i in e.domEventObservers){let o=e.domEventObservers[i];o&&n(i).observers.push(CT(t.value,o))}}for(let e in RT)n(e).handlers.push(RT[e]);for(let e in DT)n(e).observers.push(DT[e]);return t}const PT=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],MT="dthko",AT=[16,17,18,20,91,92,224,225];function TT(e){return.7*Math.max(0,e)+8}class BT{constructor(e,t,n,i){this.view=e,this.startEvent=t,this.style=n,this.mustSelect=i,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=t,this.scrollParents=function(e){let t,n,i=e.ownerDocument;for(let o=e.parentNode;o&&!(o==i.body||t&&n);)if(1==o.nodeType)!n&&o.scrollHeight>o.clientHeight&&(n=o),!t&&o.scrollWidth>o.clientWidth&&(t=o),o=o.assignedSlot||o.parentNode;else{if(11!=o.nodeType)break;o=o.host}return{x:t,y:n}}(e.contentDOM),this.atoms=e.state.facet(UA).map((t=>t(e)));let o=e.contentDOM.ownerDocument;o.addEventListener("mousemove",this.move=this.move.bind(this)),o.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=t.shiftKey,this.multiple=e.state.facet(vP.allowMultipleSelections)&&function(e,t){let n=e.state.facet(CA);return n.length?n[0](t):DM.mac?t.metaKey:t.ctrlKey}(e,t),this.dragging=!(!function(e,t){let{main:n}=e.state.selection;if(n.empty)return!1;let i=XP(e.root);if(!i||0==i.rangeCount)return!0;let o=i.getRangeAt(0).getClientRects();for(let e=0;e=t.clientX&&n.top<=t.clientY&&n.bottom>=t.clientY)return!0}return!1}(e,t)||1!=WT(t))&&null}start(e){!1===this.dragging&&this.select(e)}move(e){if(0==e.buttons)return this.destroy();if(this.dragging||null==this.dragging&&function(e,t){return Math.max(Math.abs(e.clientX-t.clientX),Math.abs(e.clientY-t.clientY))}(this.startEvent,e)<10)return;this.select(this.lastEvent=e);let t=0,n=0,i=0,o=0,r=this.view.win.innerWidth,s=this.view.win.innerHeight;this.scrollParents.x&&({left:i,right:r}=this.scrollParents.x.getBoundingClientRect()),this.scrollParents.y&&({top:o,bottom:s}=this.scrollParents.y.getBoundingClientRect());let a=JA(this.view);e.clientX-a.left<=i+6?t=-TT(i-e.clientX):e.clientX+a.right>=r-6&&(t=TT(e.clientX-r)),e.clientY-a.top<=o+6?n=-TT(o-e.clientY):e.clientY+a.bottom>=s-6&&(n=TT(e.clientY-s)),this.setScrollSpeed(t,n)}up(e){null==this.dragging&&this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let e=this.view.contentDOM.ownerDocument;e.removeEventListener("mousemove",this.move),e.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=this.view.inputState.draggedContent=null}setScrollSpeed(e,t){this.scrollSpeed={x:e,y:t},e||t?this.scrolling<0&&(this.scrolling=setInterval((()=>this.scroll()),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){let{x:e,y:t}=this.scrollSpeed;e&&this.scrollParents.x&&(this.scrollParents.x.scrollLeft+=e,e=0),t&&this.scrollParents.y&&(this.scrollParents.y.scrollTop+=t,t=0),(e||t)&&this.view.win.scrollBy(e,t),!1===this.dragging&&this.select(this.lastEvent)}skipAtoms(e){let t=null;for(let n=0;ne.isUserEvent("input.type")))?this.destroy():this.style.update(e)&&setTimeout((()=>this.select(this.lastEvent)),20)}}const RT=Object.create(null),DT=Object.create(null),LT=DM.ie&&DM.ie_version<15||DM.ios&&DM.webkit_version<604;function NT(e,t){let n,{state:i}=e,o=1,r=i.toText(t),s=r.lines==i.selection.ranges.length;if(null!=QT&&i.selection.ranges.every((e=>e.empty))&&QT==r.toString()){let e=-1;n=i.changeByRange((n=>{let a=i.doc.lineAt(n.from);if(a.from==e)return{range:n};e=a.from;let l=i.toText((s?r.line(o++).text:t)+i.lineBreak);return{changes:{from:a.from,insert:l},range:TO.cursor(n.from+l.length)}}))}else n=s?i.changeByRange((e=>{let t=r.line(o++);return{changes:{from:e.from,to:e.to,insert:t.text},range:TO.cursor(e.from+t.length)}})):i.replaceSelection(r);e.dispatch(n,{userEvent:"input.paste",scrollIntoView:!0})}function zT(e,t,n,i){if(1==i)return TO.cursor(t,n);if(2==i)return function(e,t,n=1){let i=e.charCategorizer(t),o=e.doc.lineAt(t),r=t-o.from;if(0==o.length)return TO.cursor(t);0==r?n=1:r==o.length&&(n=-1);let s=r,a=r;n<0?s=pO(o.text,r,!1):a=pO(o.text,r);let l=i(o.text.slice(s,a));for(;s>0;){let e=pO(o.text,s,!1);if(i(o.text.slice(e,s))!=l)break;s=e}for(;a{e.inputState.lastScrollTop=e.scrollDOM.scrollTop,e.inputState.lastScrollLeft=e.scrollDOM.scrollLeft},RT.keydown=(e,t)=>(e.inputState.setSelectionOrigin("select"),27==t.keyCode&&0!=e.inputState.tabFocusMode&&(e.inputState.tabFocusMode=Date.now()+2e3),!1),DT.touchstart=(e,t)=>{e.inputState.lastTouchTime=Date.now(),e.inputState.setSelectionOrigin("select.pointer")},DT.touchmove=e=>{e.inputState.setSelectionOrigin("select.pointer")},RT.mousedown=(e,t)=>{if(e.observer.flush(),e.inputState.lastTouchTime>Date.now()-2e3)return!1;let n=null;for(let i of e.state.facet(PA))if(n=i(e,t),n)break;if(n||0!=t.button||(n=function(e,t){let n=$T(e,t),i=WT(t),o=e.state.selection;return{update(e){e.docChanged&&(n.pos=e.changes.mapPos(n.pos),o=o.map(e.changes))},get(t,r,s){let a,l=$T(e,t),c=zT(e,l.pos,l.bias,i);if(n.pos!=l.pos&&!r){let t=zT(e,n.pos,n.bias,i),o=Math.min(t.from,c.from),r=Math.max(t.to,c.to);c=o1&&(a=function(e,t){for(let n=0;n=t)return TO.create(e.ranges.slice(0,n).concat(e.ranges.slice(n+1)),e.mainIndex==n?0:e.mainIndex-(e.mainIndex>n?1:0))}return null}(o,l.pos))?a:s?o.addRange(c):TO.create([c])}}}(e,t)),n){let i=!e.hasFocus;e.inputState.startMouseSelection(new BT(e,t,n,i)),i&&e.observer.ignore((()=>{cM(e.contentDOM);let t=e.root.activeElement;t&&!t.contains(e.contentDOM)&&t.blur()}));let o=e.inputState.mouseSelection;if(o)return o.start(t),!1===o.dragging}return!1};let IT=(e,t,n)=>t>=n.top&&t<=n.bottom&&e>=n.left&&e<=n.right;function FT(e,t,n,i){let o=tA.find(e.docView,t);if(!o)return 1;let r=t-o.posAtStart;if(0==r)return 1;if(r==o.length)return-1;let s=o.coordsAt(r,-1);if(s&&IT(n,i,s))return-1;let a=o.coordsAt(r,1);return a&&IT(n,i,a)?1:s&&s.bottom>=i?-1:1}function $T(e,t){let n=e.posAtCoords({x:t.clientX,y:t.clientY},!1);return{pos:n,bias:FT(e,n,t.clientX,t.clientY)}}const jT=DM.ie&&DM.ie_version<=11;let qT=null,HT=0,VT=0;function WT(e){if(!jT)return e.detail;let t=qT,n=VT;return qT=e,VT=Date.now(),HT=!t||n>Date.now()-400&&Math.abs(t.clientX-e.clientX)<2&&Math.abs(t.clientY-e.clientY)<2?(HT+1)%3:1}function GT(e,t,n,i){if(!n)return;let o=e.posAtCoords({x:t.clientX,y:t.clientY},!1),{draggedContent:r}=e.inputState,s=i&&r&&function(e,t){let n=e.state.facet(OA);return n.length?n[0](t):DM.mac?!t.altKey:!t.ctrlKey}(e,t)?{from:r.from,to:r.to}:null,a={from:o,insert:n},l=e.state.changes(s?[s,a]:a);e.focus(),e.dispatch({changes:l,selection:{anchor:l.mapPos(o,-1),head:l.mapPos(o,1)},userEvent:s?"move.drop":"input.drop"}),e.inputState.draggedContent=null}RT.dragstart=(e,t)=>{let{selection:{main:n}}=e.state;if(t.target.draggable){let i=e.docView.nearest(t.target);if(i&&i.isWidget){let e=i.posAtStart,t=e+i.length;(e>=n.to||t<=n.from)&&(n=TO.range(e,t))}}let{inputState:i}=e;return i.mouseSelection&&(i.mouseSelection.dragging=!0),i.draggedContent=n,t.dataTransfer&&(t.dataTransfer.setData("Text",e.state.sliceDoc(n.from,n.to)),t.dataTransfer.effectAllowed="copyMove"),!1},RT.dragend=e=>(e.inputState.draggedContent=null,!1),RT.drop=(e,t)=>{if(!t.dataTransfer)return!1;if(e.state.readOnly)return!0;let n=t.dataTransfer.files;if(n&&n.length){let i=Array(n.length),o=0,r=()=>{++o==n.length&>(e,t,i.filter((e=>null!=e)).join(e.state.lineBreak),!1)};for(let e=0;e{/[\x00-\x08\x0e-\x1f]{2}/.test(t.result)||(i[e]=t.result),r()},t.readAsText(n[e])}return!0}{let n=t.dataTransfer.getData("Text");if(n)return GT(e,t,n,!0),!0}return!1},RT.paste=(e,t)=>{if(e.state.readOnly)return!0;e.observer.flush();let n=LT?null:t.clipboardData;return n?(NT(e,n.getData("text/plain")||n.getData("text/uri-list")),!0):(function(e){let t=e.dom.parentNode;if(!t)return;let n=t.appendChild(document.createElement("textarea"));n.style.cssText="position: fixed; left: -10000px; top: 10px",n.focus(),setTimeout((()=>{e.focus(),n.remove(),NT(e,n.value)}),50)}(e),!1)};let QT=null;RT.copy=RT.cut=(e,t)=>{let{text:n,ranges:i,linewise:o}=function(e){let t=[],n=[],i=!1;for(let i of e.selection.ranges)i.empty||(t.push(e.sliceDoc(i.from,i.to)),n.push(i));if(!t.length){let o=-1;for(let{from:i}of e.selection.ranges){let r=e.doc.lineAt(i);r.number>o&&(t.push(r.text),n.push({from:r.from,to:Math.min(e.doc.length,r.to+1)})),o=r.number}i=!0}return{text:t.join(e.lineBreak),ranges:n,linewise:i}}(e.state);if(!n&&!o)return!1;QT=o?n:null,"cut"!=t.type||e.state.readOnly||e.dispatch({changes:i,scrollIntoView:!0,userEvent:"delete.cut"});let r=LT?null:t.clipboardData;return r?(r.clearData(),r.setData("text/plain",n),!0):(function(e,t){let n=e.dom.parentNode;if(!n)return;let i=n.appendChild(document.createElement("textarea"));i.style.cssText="position: fixed; left: -10000px; top: 10px",i.value=t,i.focus(),i.selectionEnd=t.length,i.selectionStart=0,setTimeout((()=>{i.remove(),e.focus()}),50)}(e,n),!1)};const XT=iP.define();function UT(e,t){let n=[];for(let i of e.facet(BA)){let o=i(e,t);o&&n.push(o)}return n?e.update({effects:n,annotations:XT.of(!0)}):null}function YT(e){setTimeout((()=>{let t=e.hasFocus;if(t!=e.inputState.notifiedFocused){let n=UT(e.state,t);n?e.dispatch(n):e.update([])}}),10)}DT.focus=e=>{e.inputState.lastFocusTime=Date.now(),e.scrollDOM.scrollTop||!e.inputState.lastScrollTop&&!e.inputState.lastScrollLeft||(e.scrollDOM.scrollTop=e.inputState.lastScrollTop,e.scrollDOM.scrollLeft=e.inputState.lastScrollLeft),YT(e)},DT.blur=e=>{e.observer.clearSelectionRange(),YT(e)},DT.compositionstart=DT.compositionupdate=e=>{e.observer.editContext||(null==e.inputState.compositionFirstChange&&(e.inputState.compositionFirstChange=!0),e.inputState.composing<0&&(e.inputState.composing=0))},DT.compositionend=e=>{e.observer.editContext||(e.inputState.composing=-1,e.inputState.compositionEndedAt=Date.now(),e.inputState.compositionPendingKey=!0,e.inputState.compositionPendingChange=e.observer.pendingRecords().length>0,e.inputState.compositionFirstChange=null,DM.chrome&&DM.android?e.observer.flushSoon():e.inputState.compositionPendingChange?Promise.resolve().then((()=>e.observer.flush())):setTimeout((()=>{e.inputState.composing<0&&e.docView.hasComposition&&e.update([])}),50))},DT.contextmenu=e=>{e.inputState.lastContextMenu=Date.now()},RT.beforeinput=(e,t)=>{var n,i;if("insertReplacementText"==t.inputType&&e.observer.editContext){let i=null===(n=t.dataTransfer)||void 0===n?void 0:n.getData("text/plain"),o=t.getTargetRanges();if(i&&o.length){let t=o[0],n=e.posAtDOM(t.startContainer,t.startOffset),r=e.posAtDOM(t.endContainer,t.endOffset);return kT(e,{from:n,to:r,insert:e.state.toText(i)},null),!0}}let o;if(DM.chrome&&DM.android&&(o=PT.find((e=>e.inputType==t.inputType)))&&(e.observer.delayAndroidKey(o.key,o.keyCode),"Backspace"==o.key||"Delete"==o.key)){let t=(null===(i=window.visualViewport)||void 0===i?void 0:i.height)||0;setTimeout((()=>{var n;((null===(n=window.visualViewport)||void 0===n?void 0:n.height)||0)>t+10&&e.hasFocus&&(e.contentDOM.blur(),e.focus())}),100)}return DM.ios&&"deleteContentForward"==t.inputType&&e.observer.flushSoon(),DM.safari&&"insertText"==t.inputType&&e.inputState.composing>=0&&setTimeout((()=>DT.compositionend(e,t)),20),!1};const KT=new Set,ZT=["pre-wrap","normal","pre-line","break-spaces"];let JT=!1;function eB(){JT=!1}class tB{constructor(e){this.lineWrapping=e,this.doc=ZC.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30}heightForGap(e,t){let n=this.doc.lineAt(t).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(n+=Math.max(0,Math.ceil((t-e-n*this.lineLength*.5)/this.lineLength))),this.lineHeight*n}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/(this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForWrapping(e){return ZT.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let t=!1;for(let n=0;n-1,a=Math.round(t)!=Math.round(this.lineHeight)||this.lineWrapping!=s;if(this.lineWrapping=s,this.lineHeight=t,this.charWidth=n,this.textHeight=i,this.lineLength=o,a){this.heightSamples={};for(let e=0;e0}set outdated(e){this.flags=(e?2:0)|-3&this.flags}setHeight(e){this.height!=e&&(Math.abs(this.height-e)>rB&&(JT=!0),this.height=e)}replace(e,t,n){return sB.of(n)}decomposeLeft(e,t){t.push(this)}decomposeRight(e,t){t.push(this)}applyChanges(e,t,n,i){let o=this,r=n.doc;for(let s=i.length-1;s>=0;s--){let{fromA:a,toA:l,fromB:c,toB:h}=i[s],u=o.lineAt(a,oB.ByPosNoHeight,n.setDoc(t),0,0),p=u.to>=l?u:o.lineAt(l,oB.ByPosNoHeight,n,0,0);for(h+=p.to-l,l=p.to;s>0&&u.from<=i[s-1].toA;)a=i[s-1].fromA,c=i[s-1].fromB,s--,a2*o){let o=e[t-1];o.break?e.splice(--t,1,o.left,null,o.right):e.splice(--t,1,o.left,o.right),n+=1+o.break,i-=o.size}else{if(!(o>2*i))break;{let t=e[n];t.break?e.splice(n,1,t.left,null,t.right):e.splice(n,1,t.left,t.right),n+=2+t.break,o-=t.size}}else if(i=o&&r(this.blockAt(0,n,i,o))}updateHeight(e,t=0,n=!1,i){return i&&i.from<=t&&i.more&&this.setHeight(i.heights[i.index++]),this.outdated=!1,this}toString(){return`block(${this.length})`}}class cB extends lB{constructor(e,t){super(e,t,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0}blockAt(e,t,n,i){return new iB(i,this.length,n,this.height,this.breaks)}replace(e,t,n){let i=n[0];return 1==n.length&&(i instanceof cB||i instanceof hB&&4&i.flags)&&Math.abs(this.length-i.length)<10?(i instanceof hB?i=new cB(i.length,this.height):i.height=this.height,this.outdated||(i.outdated=!1),i):sB.of(n)}updateHeight(e,t=0,n=!1,i){return i&&i.from<=t&&i.more?this.setHeight(i.heights[i.index++]):(n||this.outdated)&&this.setHeight(Math.max(this.widgetHeight,e.heightForLine(this.length-this.collapsed))+this.breaks*e.lineHeight),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}}class hB extends sB{constructor(e){super(e,0)}heightMetrics(e,t){let n,i=e.doc.lineAt(t).number,o=e.doc.lineAt(t+this.length).number,r=o-i+1,s=0;if(e.lineWrapping){let t=Math.min(this.height,e.lineHeight*r);n=t/r,this.length>r+1&&(s=(this.height-t)/(this.length-r-1))}else n=this.height/r;return{firstLine:i,lastLine:o,perLine:n,perChar:s}}blockAt(e,t,n,i){let{firstLine:o,lastLine:r,perLine:s,perChar:a}=this.heightMetrics(t,i);if(t.lineWrapping){let o=i+(e0){let e=n[n.length-1];e instanceof hB?n[n.length-1]=new hB(e.length+i):n.push(null,new hB(i-1))}if(e>0){let t=n[0];t instanceof hB?n[0]=new hB(e+t.length):n.unshift(new hB(e-1),null)}return sB.of(n)}decomposeLeft(e,t){t.push(new hB(e-1),null)}decomposeRight(e,t){t.push(null,new hB(this.length-e-1))}updateHeight(e,t=0,n=!1,i){let o=t+this.length;if(i&&i.from<=t+this.length&&i.more){let n=[],r=Math.max(t,i.from),s=-1;for(i.from>t&&n.push(new hB(i.from-t-1).updateHeight(e,t));r<=o&&i.more;){let t=e.doc.lineAt(r).length;n.length&&n.push(null);let o=i.heights[i.index++];-1==s?s=o:Math.abs(o-s)>=rB&&(s=-2);let a=new cB(t,o);a.outdated=!1,n.push(a),r+=t+1}r<=o&&n.push(null,new hB(o-r).updateHeight(e,r));let a=sB.of(n);return(s<0||Math.abs(a.height-this.height)>=rB||Math.abs(s-this.heightMetrics(e,t).perLine)>=rB)&&(JT=!0),aB(this,a)}return(n||this.outdated)&&(this.setHeight(e.heightForGap(t,t+this.length)),this.outdated=!1),this}toString(){return`gap(${this.length})`}}class uB extends sB{constructor(e,t,n){super(e.length+t+n.length,e.height+n.height,t|(e.outdated||n.outdated?2:0)),this.left=e,this.right=n,this.size=e.size+n.size}get break(){return 1&this.flags}blockAt(e,t,n,i){let o=n+this.left.height;return es))return l;let c=t==oB.ByPosNoHeight?oB.ByPosNoHeight:oB.ByPos;return a?l.join(this.right.lineAt(s,c,n,r,s)):this.left.lineAt(s,c,n,i,o).join(l)}forEachLine(e,t,n,i,o,r){let s=i+this.left.height,a=o+this.left.length+this.break;if(this.break)e=a&&this.right.forEachLine(e,t,n,s,a,r);else{let l=this.lineAt(a,oB.ByPos,n,i,o);e=e&&l.from<=t&&r(l),t>l.to&&this.right.forEachLine(l.to+1,t,n,s,a,r)}}replace(e,t,n){let i=this.left.length+this.break;if(tthis.left.length)return this.balanced(this.left,this.right.replace(e-i,t-i,n));let o=[];e>0&&this.decomposeLeft(e,o);let r=o.length;for(let e of n)o.push(e);if(e>0&&pB(o,r-1),t=n&&t.push(null)),e>n&&this.right.decomposeLeft(e-n,t)}decomposeRight(e,t){let n=this.left.length,i=n+this.break;if(e>=i)return this.right.decomposeRight(e-i,t);e2*t.size||t.size>2*e.size?sB.of(this.break?[e,null,t]:[e,t]):(this.left=aB(this.left,e),this.right=aB(this.right,t),this.setHeight(e.height+t.height),this.outdated=e.outdated||t.outdated,this.size=e.size+t.size,this.length=e.length+this.break+t.length,this)}updateHeight(e,t=0,n=!1,i){let{left:o,right:r}=this,s=t+o.length+this.break,a=null;return i&&i.from<=t+o.length&&i.more?a=o=o.updateHeight(e,t,n,i):o.updateHeight(e,t,n),i&&i.from<=s+r.length&&i.more?a=r=r.updateHeight(e,s,n,i):r.updateHeight(e,s,n),a?this.balanced(o,r):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}}function pB(e,t){let n,i;null==e[t]&&(n=e[t-1])instanceof hB&&(i=e[t+1])instanceof hB&&e.splice(t-1,3,new hB(n.length+1+i.length))}class dB{constructor(e,t){this.pos=e,this.oracle=t,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(e,t){if(this.lineStart>-1){let e=Math.min(t,this.lineEnd),n=this.nodes[this.nodes.length-1];n instanceof cB?n.length+=e-this.pos:(e>this.pos||!this.isCovered)&&this.nodes.push(new cB(e-this.pos,-1)),this.writtenTo=e,t>e&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=t}point(e,t,n){if(e=5)&&this.addLineDeco(i,o,r)}else t>e&&this.span(e,t);this.lineEnd>-1&&this.lineEnd-1)return;let{from:e,to:t}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=t,this.writtenToe&&this.nodes.push(new cB(this.pos-e,-1)),this.writtenTo=this.pos}blankContent(e,t){let n=new hB(t-e);return this.oracle.doc.lineAt(e).to==t&&(n.flags|=4),n}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof cB)return e;let t=new cB(0,-1);return this.nodes.push(t),t}addBlock(e){this.enterLine();let t=e.deco;t&&t.startSide>0&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,t&&t.endSide>0&&(this.covering=e)}addLineDeco(e,t,n){let i=this.ensureLine();i.length+=n,i.collapsed+=n,i.widgetHeight=Math.max(i.widgetHeight,e),i.breaks+=t,this.writtenTo=this.pos=this.pos+n}finish(e){let t=0==this.nodes.length?null:this.nodes[this.nodes.length-1];!(this.lineStart>-1)||t instanceof cB||this.isCovered?(this.writtenTon.clientHeight||n.scrollWidth>n.clientWidth)&&"visible"!=i.overflow){let i=n.getBoundingClientRect();r=Math.max(r,i.left),s=Math.min(s,i.right),a=Math.max(a,i.top),l=Math.min(t==e.parentNode?o.innerHeight:l,i.bottom)}t="absolute"==i.position||"fixed"==i.position?n.offsetParent:n.parentNode}else{if(11!=t.nodeType)break;t=t.host}return{left:r-n.left,right:Math.max(r,s)-n.left,top:a-(n.top+t),bottom:Math.max(a,l)-(n.top+t)}}function gB(e,t){let n=e.getBoundingClientRect();return{left:0,right:n.right-n.left,top:t,bottom:n.bottom-(n.top+t)}}class vB{constructor(e,t,n){this.from=e,this.to=t,this.size=n}static same(e,t){if(e.length!=t.length)return!1;for(let n=0;n"function"!=typeof e&&"cm-lineWrapping"==e.class));this.heightOracle=new tB(t),this.stateDeco=e.facet(QA).filter((e=>"function"!=typeof e)),this.heightMap=sB.empty().applyChanges(this.stateDeco,ZC.empty,this.heightOracle.setDoc(e.doc),[new tT(0,0,0,e.doc.length)]);for(let e=0;e<2&&(this.viewport=this.getViewport(0,null),this.updateForViewport());e++);this.updateViewportLines(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=UM.set(this.lineGaps.map((e=>e.draw(this,!1)))),this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:t}=this.state.selection;for(let n=0;n<=1;n++){let i=n?t.head:t.anchor;if(!e.some((({from:e,to:t})=>i>=e&&i<=t))){let{from:t,to:n}=this.lineBlockAt(i);e.push(new wB(t,n))}}return this.viewports=e.sort(((e,t)=>e.from-t.from)),this.updateScaler()}updateScaler(){let e=this.scaler;return this.scaler=this.heightMap.height<=7e6?EB:new kB(this.heightOracle,this.heightMap,this.viewports),e.eq(this.scaler)?0:2}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,(e=>{this.viewportLines.push(SB(e,this.scaler))}))}update(e,t=null){this.state=e.state;let n=this.stateDeco;this.stateDeco=this.state.facet(QA).filter((e=>"function"!=typeof e));let i=e.changedRanges,o=tT.extendWithRanges(i,function(e,t,n){let i=new fB;return EP.compare(e,t,n,i,0),i.changes}(n,this.stateDeco,e?e.changes:EO.empty(this.state.doc.length))),r=this.heightMap.height,s=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollTop);eB(),this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),o),(this.heightMap.height!=r||JT)&&(e.flags|=2),s?(this.scrollAnchorPos=e.changes.mapPos(s.from,-1),this.scrollAnchorHeight=s.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=this.heightMap.height);let a=o.length?this.mapViewport(this.viewport,e.changes):this.viewport;(t&&(t.range.heada.to)||!this.viewportIsAppropriate(a))&&(a=this.getViewport(0,t));let l=a.from!=this.viewport.from||a.to!=this.viewport.to;this.viewport=a,e.flags|=this.updateForViewport(),(l||!e.changes.empty||2&e.flags)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(),t&&(this.scrollTarget=t),!this.mustEnforceCursorAssoc&&e.selectionSet&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&!e.state.facet(DA)&&(this.mustEnforceCursorAssoc=!0)}measure(e){let t=e.contentDOM,n=window.getComputedStyle(t),i=this.heightOracle,o=n.whiteSpace;this.defaultTextDirection="rtl"==n.direction?aA.RTL:aA.LTR;let r=this.heightOracle.mustRefreshForWrapping(o),s=t.getBoundingClientRect(),a=r||this.mustMeasureContent||this.contentDOMHeight!=s.height;this.contentDOMHeight=s.height,this.mustMeasureContent=!1;let l=0,c=0;if(s.width&&s.height){let{scaleX:e,scaleY:n}=rM(t,s);(e>.005&&Math.abs(this.scaleX-e)>.005||n>.005&&Math.abs(this.scaleY-n)>.005)&&(this.scaleX=e,this.scaleY=n,l|=8,r=a=!0)}let h=(parseInt(n.paddingTop)||0)*this.scaleY,u=(parseInt(n.paddingBottom)||0)*this.scaleY;this.paddingTop==h&&this.paddingBottom==u||(this.paddingTop=h,this.paddingBottom=u,l|=10),this.editorWidth!=e.scrollDOM.clientWidth&&(i.lineWrapping&&(a=!0),this.editorWidth=e.scrollDOM.clientWidth,l|=8);let p=e.scrollDOM.scrollTop*this.scaleY;this.scrollTop!=p&&(this.scrollAnchorHeight=-1,this.scrollTop=p),this.scrolledToBottom=dM(e.scrollDOM);let d=(this.printing?gB:mB)(t,this.paddingTop),f=d.top-this.pixelViewport.top,m=d.bottom-this.pixelViewport.bottom;this.pixelViewport=d;let g=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(g!=this.inView&&(this.inView=g,g&&(a=!0)),!this.inView&&!this.scrollTarget)return 0;let v=s.width;if(this.contentDOMWidth==v&&this.editorHeight==e.scrollDOM.clientHeight||(this.contentDOMWidth=s.width,this.editorHeight=e.scrollDOM.clientHeight,l|=8),a){let t=e.docView.measureVisibleLineHeights(this.viewport);if(i.mustRefreshForHeights(t)&&(r=!0),r||i.lineWrapping&&Math.abs(v-this.contentDOMWidth)>i.charWidth){let{lineHeight:n,charWidth:s,textHeight:a}=e.docView.measureTextSize();r=n>0&&i.refresh(o,n,s,a,v/s,t),r&&(e.docView.minWidth=0,l|=8)}f>0&&m>0?c=Math.max(f,m):f<0&&m<0&&(c=Math.min(f,m)),eB();for(let n of this.viewports){let o=n.from==this.viewport.from?t:e.docView.measureVisibleLineHeights(n);this.heightMap=(r?sB.empty().applyChanges(this.stateDeco,ZC.empty,this.heightOracle,[new tT(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(i,0,r,new nB(n.from,o))}JT&&(l|=2)}let y=!this.viewportIsAppropriate(this.viewport,c)||this.scrollTarget&&(this.scrollTarget.range.headthis.viewport.to);return y&&(2&l&&(l|=this.updateScaler()),this.viewport=this.getViewport(c,this.scrollTarget),l|=this.updateForViewport()),(2&l||y)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(r?[]:this.lineGaps,e)),l|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),l}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,t){let n=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),i=this.heightMap,o=this.heightOracle,{visibleTop:r,visibleBottom:s}=this,a=new wB(i.lineAt(r-1e3*n,oB.ByHeight,o,0,0).from,i.lineAt(s+1e3*(1-n),oB.ByHeight,o,0,0).to);if(t){let{head:e}=t.range;if(ea.to){let n,r=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),s=i.lineAt(e,oB.ByPos,o,0,0);n="center"==t.y?(s.top+s.bottom)/2-r/2:"start"==t.y||"nearest"==t.y&&e=s+Math.max(10,Math.min(n,250)))&&i>r-2e3&&o>1,r=i<<1;if(this.defaultTextDirection!=aA.LTR&&!n)return[];let s=[],a=(i,r,l,c)=>{if(r-ii&&ee.from>=l.from&&e.to<=l.to&&Math.abs(e.from-i)e.fromt))));if(!p){if(re.from<=r&&e.to>=r))){let e=t.moveToLineBoundary(TO.cursor(r),!1,!0).head;e>i&&(r=e)}p=new vB(i,r,this.gapSize(l,i,r,c))}s.push(p)},l=e=>{if(e.lengtho&&(i.push({from:o,to:e}),r+=e-o),o=t}},20),oe.from&&a(e.from,o,e,t),se.draw(this,this.heightOracle.lineWrapping)))))}computeVisibleRanges(){let e=this.stateDeco;this.lineGaps.length&&(e=e.concat(this.lineGapDeco));let t=[];EP.spans(e,this.viewport.from,this.viewport.to,{span(e,n){t.push({from:e,to:n})},point(){}},20);let n=t.length!=this.visibleRanges.length||this.visibleRanges.some(((e,n)=>e.from!=t[n].from||e.to!=t[n].to));return this.visibleRanges=t,n?4:0}lineBlockAt(e){return e>=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find((t=>t.from<=e&&t.to>=e))||SB(this.heightMap.lineAt(e,oB.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(e){return e>=this.viewportLines[0].top&&e<=this.viewportLines[this.viewportLines.length-1].bottom&&this.viewportLines.find((t=>t.top<=e&&t.bottom>=e))||SB(this.heightMap.lineAt(this.scaler.fromDOM(e),oB.ByHeight,this.heightOracle,0,0),this.scaler)}scrollAnchorAt(e){let t=this.lineBlockAtHeight(e+8);return t.from>=this.viewport.from||this.viewportLines[0].top-e>200?t:this.viewportLines[0]}elementAtHeight(e){return SB(this.heightMap.blockAt(this.scaler.fromDOM(e),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}}class wB{constructor(e,t){this.from=e,this.to=t}}function xB({total:e,ranges:t},n){if(n<=0)return t[0].from;if(n>=1)return t[t.length-1].to;let i=Math.floor(e*n);for(let e=0;;e++){let{from:n,to:o}=t[e],r=o-n;if(i<=r)return n+i;i-=r}}function _B(e,t){let n=0;for(let{from:i,to:o}of e.ranges){if(t<=o){n+=t-i;break}n+=o-i}return n/e.total}const EB={toDOM:e=>e,fromDOM:e=>e,scale:1,eq(e){return e==this}};class kB{constructor(e,t,n){let i=0,o=0,r=0;this.viewports=n.map((({from:n,to:o})=>{let r=t.lineAt(n,oB.ByPos,e,0,0).top,s=t.lineAt(o,oB.ByPos,e,0,0).bottom;return i+=s-r,{from:n,to:o,top:r,bottom:s,domTop:0,domBottom:0}})),this.scale=(7e6-i)/(t.height-i);for(let e of this.viewports)e.domTop=r+(e.top-o)*this.scale,r=e.domBottom=e.domTop+(e.bottom-e.top),o=e.bottom}toDOM(e){for(let t=0,n=0,i=0;;t++){let o=tt.from==e.viewports[n].from&&t.to==e.viewports[n].to))}}function SB(e,t){if(1==t.scale)return e;let n=t.toDOM(e.top),i=t.toDOM(e.bottom);return new iB(e.from,e.length,n,i-n,Array.isArray(e._content)?e._content.map((e=>SB(e,t))):e._content)}const CB=DO.define({combine:e=>e.join(" ")}),OB=DO.define({combine:e=>e.indexOf(!0)>-1}),PB=FP.newName(),MB=FP.newName(),AB=FP.newName(),TB={"&light":"."+MB,"&dark":"."+AB};function BB(e,t,n){return new FP(t,{finish:t=>/&/.test(t)?t.replace(/&\w*/,(t=>{if("&"==t)return e;if(!n||!n[t])throw new RangeError(`Unsupported selector: ${t}`);return n[t]})):e+" "+t})}const RB=BB("."+PB,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0,overflowAnchor:"none"},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",minHeight:"100%",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#444"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},".cm-iso":{unicodeBidi:"isolate"},".cm-announced":{position:"fixed",top:"-10000px"},"@media print":{".cm-announced":{display:"none"}},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",insetInlineStart:0,zIndex:200},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",borderRight:"1px solid #ddd"},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0,zIndex:300},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top"},".cm-highlightSpace:before":{content:"attr(data-display)",position:"absolute",pointerEvents:"none",color:"#888"},".cm-highlightTab":{backgroundImage:'url(\'data:image/svg+xml,\')',backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},TB),DB={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},LB=DM.ie&&DM.ie_version<=11;class NB{constructor(e){this.view=e,this.active=!1,this.editContext=null,this.selectionRange=new sM,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.printQuery=null,this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver((t=>{for(let e of t)this.queue.push(e);(DM.ie&&DM.ie_version<=11||DM.ios&&e.composing)&&t.some((e=>"childList"==e.type&&e.removedNodes.length||"characterData"==e.type&&e.oldValue.length>e.target.nodeValue.length))?this.flushSoon():this.flush()})),!window.EditContext||!1===e.constructor.EDIT_CONTEXT||DM.chrome&&DM.chrome_version<126||(this.editContext=new FB(e),e.state.facet($A)&&(e.contentDOM.editContext=this.editContext.editContext)),LB&&(this.onCharData=e=>{this.queue.push({target:e.target,type:"characterData",oldValue:e.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),window.matchMedia&&(this.printQuery=window.matchMedia("print")),"function"==typeof ResizeObserver&&(this.resizeScroll=new ResizeObserver((()=>{var e;(null===(e=this.view.docView)||void 0===e?void 0:e.lastUpdate){this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),e.length>0&&e[e.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))}),{threshold:[0,.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver((e=>{e.length>0&&e[e.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))}),{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(e){this.view.inputState.runHandlers("scroll",e),this.intersecting&&this.view.measure()}onScroll(e){this.intersecting&&this.flush(!1),this.editContext&&this.view.requestMeasure(this.editContext.measureReq),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout((()=>{this.resizeTimeout=-1,this.view.requestMeasure()}),50))}onPrint(e){("change"!=e.type&&e.type||e.matches)&&(this.view.viewState.printing=!0,this.view.measure(),setTimeout((()=>{this.view.viewState.printing=!1,this.view.requestMeasure()}),500))}updateGaps(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some(((t,n)=>t!=e[n])))){this.gapIntersection.disconnect();for(let t of e)this.gapIntersection.observe(t);this.gaps=e}}onSelectionChange(e){let t=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:n}=this,i=this.selectionRange;if(n.state.facet($A)?n.root.activeElement!=this.dom:!YP(n.dom,i))return;let o=i.anchorNode&&n.docView.nearest(i.anchorNode);o&&o.ignoreEvent(e)?t||(this.selectionChanged=!1):(DM.ie&&DM.ie_version<=11||DM.android&&DM.chrome)&&!n.state.selection.main.empty&&i.focusNode&&ZP(i.focusNode,i.focusOffset,i.anchorNode,i.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,t=XP(e.root);if(!t)return!1;let n=DM.safari&&11==e.root.nodeType&&function(e){let t=e.activeElement;for(;t&&t.shadowRoot;)t=t.shadowRoot.activeElement;return t}(this.dom.ownerDocument)==this.dom&&function(e,t){if(t.getComposedRanges){let n=t.getComposedRanges(e.root)[0];if(n)return IB(e,n)}let n=null;function i(e){e.preventDefault(),e.stopImmediatePropagation(),n=e.getTargetRanges()[0]}return e.contentDOM.addEventListener("beforeinput",i,!0),e.dom.ownerDocument.execCommand("indent"),e.contentDOM.removeEventListener("beforeinput",i,!0),n?IB(e,n):null}(this.view,t)||t;if(!n||this.selectionRange.eq(n))return!1;let i=YP(this.dom,n);return i&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime{let e=this.delayedAndroidKey;e&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=e.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&e.force&&uM(this.dom,e.key,e.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(e)}this.delayedAndroidKey&&"Enter"!=e||(this.delayedAndroidKey={key:e,keyCode:t,force:this.lastChange{this.delayedFlush=-1,this.flush()})))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}processRecords(){let e=this.pendingRecords();e.length&&(this.queue=[]);let t=-1,n=-1,i=!1;for(let o of e){let e=this.readMutation(o);e&&(e.typeOver&&(i=!0),-1==t?({from:t,to:n}=e):(t=Math.min(e.from,t),n=Math.max(e.to,n)))}return{from:t,to:n,typeOver:i}}readChange(){let{from:e,to:t,typeOver:n}=this.processRecords(),i=this.selectionChanged&&YP(this.dom,this.selectionRange);if(e<0&&!i)return null;e>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let o=new _T(this.view,e,t,n);return this.view.docView.domChanged={newSel:o.newSel?o.newSel.main:null},o}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;e&&this.readSelectionRange();let t=this.readChange();if(!t)return this.view.requestMeasure(),!1;let n=this.view.state,i=ET(this.view,t);return this.view.state==n&&(t.domChanged||t.newSel&&!t.newSel.main.eq(this.view.state.selection.main))&&this.view.update([]),i}readMutation(e){let t=this.view.docView.nearest(e.target);if(!t||t.ignoreMutation(e))return null;if(t.markDirty("attributes"==e.type),"attributes"==e.type&&(t.flags|=4),"childList"==e.type){let n=zB(t,e.previousSibling||e.target.previousSibling,-1),i=zB(t,e.nextSibling||e.target.nextSibling,1);return{from:n?t.posAfter(n):t.posAtStart,to:i?t.posBefore(i):t.posAtEnd,typeOver:!1}}return"characterData"==e.type?{from:t.posAtStart,to:t.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}:null}setWindow(e){e!=this.win&&(this.removeWindowListeners(this.win),this.win=e,this.addWindowListeners(this.win))}addWindowListeners(e){e.addEventListener("resize",this.onResize),this.printQuery?this.printQuery.addEventListener?this.printQuery.addEventListener("change",this.onPrint):this.printQuery.addListener(this.onPrint):e.addEventListener("beforeprint",this.onPrint),e.addEventListener("scroll",this.onScroll),e.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(e){e.removeEventListener("scroll",this.onScroll),e.removeEventListener("resize",this.onResize),this.printQuery?this.printQuery.removeEventListener?this.printQuery.removeEventListener("change",this.onPrint):this.printQuery.removeListener(this.onPrint):e.removeEventListener("beforeprint",this.onPrint),e.document.removeEventListener("selectionchange",this.onSelectionChange)}update(e){this.editContext&&(this.editContext.update(e),e.startState.facet($A)!=e.state.facet($A)&&(e.view.contentDOM.editContext=e.state.facet($A)?this.editContext.editContext:null))}destroy(){var e,t,n;this.stop(),null===(e=this.intersection)||void 0===e||e.disconnect(),null===(t=this.gapIntersection)||void 0===t||t.disconnect(),null===(n=this.resizeScroll)||void 0===n||n.disconnect();for(let e of this.scrollTargets)e.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey),this.editContext&&(this.view.contentDOM.editContext=null,this.editContext.destroy())}}function zB(e,t,n){for(;t;){let i=yM.get(t);if(i&&i.parent==e)return i;let o=t.parentNode;t=o!=e.dom?o:n>0?t.nextSibling:t.previousSibling}return null}function IB(e,t){let n=t.startContainer,i=t.startOffset,o=t.endContainer,r=t.endOffset,s=e.docView.domAtPos(e.state.selection.main.anchor);return ZP(s.node,s.offset,o,r)&&([n,i,o,r]=[o,r,n,i]),{anchorNode:n,anchorOffset:i,focusNode:o,focusOffset:r}}class FB{constructor(e){this.from=0,this.to=0,this.pendingContextChange=null,this.handlers=Object.create(null),this.resetRange(e.state);let t=this.editContext=new window.EditContext({text:e.state.doc.sliceString(this.from,this.to),selectionStart:this.toContextPos(Math.max(this.from,Math.min(this.to,e.state.selection.main.anchor))),selectionEnd:this.toContextPos(e.state.selection.main.head)});this.handlers.textupdate=t=>{let{anchor:n}=e.state.selection.main,i={from:this.toEditorPos(t.updateRangeStart),to:this.toEditorPos(t.updateRangeEnd),insert:ZC.of(t.text.split("\n"))};i.from==this.from&&nthis.to&&(i.to=n),(i.from!=i.to||i.insert.length)&&(this.pendingContextChange=i,e.state.readOnly||kT(e,i,TO.single(this.toEditorPos(t.selectionStart),this.toEditorPos(t.selectionEnd))),this.pendingContextChange&&(this.revertPending(e.state),this.setSelection(e.state)))},this.handlers.characterboundsupdate=n=>{let i=[],o=null;for(let t=this.toEditorPos(n.rangeStart),r=this.toEditorPos(n.rangeEnd);t{let n=[];for(let e of t.getTextFormats()){let t=e.underlineStyle,i=e.underlineThickness;if("None"!=t&&"None"!=i){let o=`text-decoration: underline ${"Dashed"==t?"dashed ":"Squiggle"==t?"wavy ":""}${"Thin"==i?1:2}px`;n.push(UM.mark({attributes:{style:o}}).range(this.toEditorPos(e.rangeStart),this.toEditorPos(e.rangeEnd)))}}e.dispatch({effects:IA.of(UM.set(n))})},this.handlers.compositionstart=()=>{e.inputState.composing<0&&(e.inputState.composing=0,e.inputState.compositionFirstChange=!0)},this.handlers.compositionend=()=>{e.inputState.composing=-1,e.inputState.compositionFirstChange=null};for(let e in this.handlers)t.addEventListener(e,this.handlers[e]);this.measureReq={read:e=>{this.editContext.updateControlBounds(e.contentDOM.getBoundingClientRect());let t=XP(e.root);t&&t.rangeCount&&this.editContext.updateSelectionBounds(t.getRangeAt(0).getBoundingClientRect())}}}applyEdits(e){let t=0,n=!1,i=this.pendingContextChange;return e.changes.iterChanges(((o,r,s,a,l)=>{if(n)return;let c=l.length-(r-o);if(i&&r>=i.to){if(i.from==o&&i.to==r&&i.insert.eq(l))return i=this.pendingContextChange=null,t+=c,void(this.to+=c);i=null,this.revertPending(e.state)}if(o+=t,(r+=t)<=this.from)this.from+=c,this.to+=c;else if(othis.to||this.to-this.from+l.length>3e4)return void(n=!0);this.editContext.updateText(this.toContextPos(o),this.toContextPos(r),l.toString()),this.to+=c}t+=c})),i&&!n&&this.revertPending(e.state),!n}update(e){let t=this.pendingContextChange;this.applyEdits(e)&&this.rangeIsValid(e.state)?(e.docChanged||e.selectionSet||t)&&this.setSelection(e.state):(this.pendingContextChange=null,this.resetRange(e.state),this.editContext.updateText(0,this.editContext.text.length,e.state.doc.sliceString(this.from,this.to)),this.setSelection(e.state)),(e.geometryChanged||e.docChanged||e.selectionSet)&&e.view.requestMeasure(this.measureReq)}resetRange(e){let{head:t}=e.selection.main;this.from=Math.max(0,t-1e4),this.to=Math.min(e.doc.length,t+1e4)}revertPending(e){let t=this.pendingContextChange;this.pendingContextChange=null,this.editContext.updateText(this.toContextPos(t.from),this.toContextPos(t.from+t.insert.length),e.doc.sliceString(t.from,t.to))}setSelection(e){let{main:t}=e.selection,n=this.toContextPos(Math.max(this.from,Math.min(this.to,t.anchor))),i=this.toContextPos(t.head);this.editContext.selectionStart==n&&this.editContext.selectionEnd==i||this.editContext.updateSelection(n,i)}rangeIsValid(e){let{head:t}=e.selection.main;return!(this.from>0&&t-this.from<500||this.to3e4)}toEditorPos(e){return e+this.from}toContextPos(e){return e-this.from}destroy(){for(let e in this.handlers)this.editContext.removeEventListener(e,this.handlers[e])}}class $B{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return this.inputState.composing>0}get compositionStarted(){return this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(e={}){var t;this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.className="cm-announced",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),e.parent&&e.parent.appendChild(this.dom);let{dispatch:n}=e;this.dispatchTransactions=e.dispatchTransactions||n&&(e=>e.forEach((e=>n(e,this))))||(e=>this.update(e)),this.dispatch=this.dispatch.bind(this),this._root=e.root||function(e){for(;e;){if(e&&(9==e.nodeType||11==e.nodeType&&e.host))return e;e=e.assignedSlot||e.parentNode}return null}(e.parent)||document,this.viewState=new bB(e.state||vP.create(e)),e.scrollTo&&e.scrollTo.is(zA)&&(this.viewState.scrollTarget=e.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(qA).map((e=>new VA(e)));for(let e of this.plugins)e.update(this);this.observer=new NB(this),this.inputState=new ST(this),this.inputState.ensureHandlers(this.plugins),this.docView=new iT(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),(null===(t=document.fonts)||void 0===t?void 0:t.ready)&&document.fonts.ready.then((()=>this.requestMeasure()))}dispatch(...e){let t=1==e.length&&e[0]instanceof aP?e:1==e.length&&Array.isArray(e[0])?e[0]:[this.state.update(...e)];this.dispatchTransactions(t,this)}update(e){if(0!=this.updateState)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let t,n=!1,i=!1,o=this.state;for(let t of e){if(t.startState!=o)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");o=t.state}if(this.destroyed)return void(this.viewState.state=o);let r=this.hasFocus,s=0,a=null;e.some((e=>e.annotation(XT)))?(this.inputState.notifiedFocused=r,s=1):r!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=r,a=UT(o,r),a||(s=1));let l=this.observer.delayedAndroidKey,c=null;if(l?(this.observer.clearDelayedAndroidKey(),c=this.observer.readChange(),(c&&!this.state.doc.eq(o.doc)||!this.state.selection.eq(o.selection))&&(c=null)):this.observer.clear(),o.facet(vP.phrases)!=this.state.facet(vP.phrases))return this.setState(o);t=nT.create(this,o,e),t.flags|=s;let h=this.viewState.scrollTarget;try{this.updateState=2;for(let t of e){if(h&&(h=h.map(t.changes)),t.scrollIntoView){let{main:e}=t.state.selection;h=new NA(e.empty?e:TO.cursor(e.head,e.head>e.anchor?-1:1))}for(let e of t.effects)e.is(zA)&&(h=e.value.clip(this.state))}this.viewState.update(t,h),this.bidiCache=HB.update(this.bidiCache,t.changes),t.empty||(this.updatePlugins(t),this.inputState.update(t)),n=this.docView.update(t),this.state.facet(eT)!=this.styleModules&&this.mountStyles(),i=this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(n,e.some((e=>e.isUserEvent("select.pointer"))))}finally{this.updateState=0}if(t.startState.facet(CB)!=t.state.facet(CB)&&(this.viewState.mustMeasureContent=!0),(n||i||h||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),n&&this.docViewUpdate(),!t.empty)for(let e of this.state.facet(AA))try{e(t)}catch(e){FA(this.state,e,"update listener")}(a||c)&&Promise.resolve().then((()=>{a&&this.state==a.startState&&this.dispatch(a),c&&!ET(this,c)&&l.force&&uM(this.contentDOM,l.key,l.keyCode)}))}setState(e){if(0!=this.updateState)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed)return void(this.viewState.state=e);this.updateState=2;let t=this.hasFocus;try{for(let e of this.plugins)e.destroy(this);this.viewState=new bB(e),this.plugins=e.facet(qA).map((e=>new VA(e))),this.pluginMap.clear();for(let e of this.plugins)e.update(this);this.docView.destroy(),this.docView=new iT(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}t&&this.focus(),this.requestMeasure()}updatePlugins(e){let t=e.startState.facet(qA),n=e.state.facet(qA);if(t!=n){let i=[];for(let o of n){let n=t.indexOf(o);if(n<0)i.push(new VA(o));else{let t=this.plugins[n];t.mustUpdate=e,i.push(t)}}for(let t of this.plugins)t.mustUpdate!=e&&t.destroy(this);this.plugins=i,this.pluginMap.clear()}else for(let t of this.plugins)t.mustUpdate=e;for(let e=0;e-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey)return this.measureScheduled=-1,void this.requestMeasure();this.measureScheduled=0,e&&this.observer.forceFlush();let t=null,n=this.scrollDOM,i=n.scrollTop*this.scaleY,{scrollAnchorPos:o,scrollAnchorHeight:r}=this.viewState;Math.abs(i-this.viewState.scrollTop)>1&&(r=-1),this.viewState.scrollAnchorHeight=-1;try{for(let e=0;;e++){if(r<0)if(dM(n))o=-1,r=this.viewState.heightMap.height;else{let e=this.viewState.scrollAnchorAt(i);o=e.from,r=e.top}this.updateState=1;let s=this.viewState.measure(this);if(!s&&!this.measureRequests.length&&null==this.viewState.scrollTarget)break;if(e>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let a=[];4&s||([this.measureRequests,a]=[a,this.measureRequests]);let l=a.map((e=>{try{return e.read(this)}catch(e){return FA(this.state,e),qB}})),c=nT.create(this,this.state,[]),h=!1;c.flags|=s,t?t.flags|=s:t=c,this.updateState=2,c.empty||(this.updatePlugins(c),this.inputState.update(c),this.updateAttrs(),h=this.docView.update(c),h&&this.docViewUpdate());for(let e=0;e1||e<-1){i+=e,n.scrollTop=i/this.scaleY,r=-1;continue}}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(t&&!t.empty)for(let e of this.state.facet(AA))e(t)}get themeClasses(){return PB+" "+(this.state.facet(OB)?AB:MB)+" "+this.state.facet(CB)}updateAttrs(){let e=VB(this,WA,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),t={spellcheck:"false",autocorrect:"off",autocapitalize:"off",translate:"no",contenteditable:this.state.facet($A)?"true":"false",class:"cm-content",style:`${DM.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(t["aria-readonly"]="true"),VB(this,GA,t);let n=this.observer.ignore((()=>{let n=WM(this.contentDOM,this.contentAttrs,t),i=WM(this.dom,this.editorAttrs,e);return n||i}));return this.editorAttrs=e,this.contentAttrs=t,n}showAnnouncements(e){let t=!0;for(let n of e)for(let e of n.effects)e.is($B.announce)&&(t&&(this.announceDOM.textContent=""),t=!1,this.announceDOM.appendChild(document.createElement("div")).textContent=e.value)}mountStyles(){this.styleModules=this.state.facet(eT);let e=this.state.facet($B.cspNonce);FP.mount(this.root,this.styleModules.concat(RB).reverse(),e?{nonce:e}:void 0)}readMeasured(){if(2==this.updateState)throw new Error("Reading the editor layout isn't allowed during an update");0==this.updateState&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(e){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame((()=>this.measure()))),e){if(this.measureRequests.indexOf(e)>-1)return;if(null!=e.key)for(let t=0;tt.spec==e))||null),t&&t.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(e){return this.readMeasured(),this.viewState.elementAtHeight(e)}lineBlockAtHeight(e){return this.readMeasured(),this.viewState.lineBlockAtHeight(e)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(e){return this.viewState.lineBlockAt(e)}get contentHeight(){return this.viewState.contentHeight}moveByChar(e,t,n){return vT(this,e,mT(this,e,t,n))}moveByGroup(e,t){return vT(this,e,mT(this,e,t,(t=>function(e,t,n){let i=e.state.charCategorizer(t),o=i(n);return e=>{let t=i(e);return o==fP.Space&&(o=t),o==t}}(this,e.head,t))))}visualLineSide(e,t){let n=this.bidiSpans(e),i=this.textDirectionAt(e.from),o=n[t?n.length-1:0];return TO.cursor(o.side(t,i)+e.from,o.forward(!t,i)?1:-1)}moveToLineBoundary(e,t,n=!0){return function(e,t,n,i){let o=function(e,t){let n=e.lineBlockAt(t);if(Array.isArray(n.type))for(let e of n.type)if(e.to>t||e.to==t&&(e.to==n.to||e.type==XM.Text))return e;return n}(e,t.head),r=i&&o.type==XM.Text&&(e.lineWrapping||o.widgetLineBreaks)?e.coordsAtPos(t.assoc<0&&t.head>o.from?t.head-1:t.head):null;if(r){let t=e.dom.getBoundingClientRect(),i=e.textDirectionAt(o.from),s=e.posAtCoords({x:n==(i==aA.LTR)?t.right-1:t.left+1,y:(r.top+r.bottom)/2});if(null!=s)return TO.cursor(s,n?-1:1)}return TO.cursor(n?o.to:o.from,n?-1:1)}(this,e,t,n)}moveVertically(e,t,n){return vT(this,e,function(e,t,n,i){let o=t.head,r=n?1:-1;if(o==(n?e.state.doc.length:0))return TO.cursor(o,t.assoc);let s,a=t.goalColumn,l=e.contentDOM.getBoundingClientRect(),c=e.coordsAtPos(o,t.assoc||-1),h=e.documentTop;if(c)null==a&&(a=c.left-l.left),s=r<0?c.top:c.bottom;else{let t=e.viewState.lineBlockAt(o);null==a&&(a=Math.min(l.right-l.left,e.defaultCharacterWidth*(o-t.from))),s=(r<0?t.top:t.bottom)+h}let u=l.left+a,p=null!=i?i:e.viewState.heightOracle.textHeight>>1;for(let t=0;;t+=10){let n=s+(p+t)*r,i=dT(e,{x:u,y:n},!1,r);if(nl.bottom||(r<0?io)){let t=e.docView.coordsForChar(i),o=!t||n0)}coordsForChar(e){return this.readMeasured(),this.docView.coordsForChar(e)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(e){return!this.state.facet(RA)||ethis.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(e))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>jB)return _A(e.length);let t,n=this.textDirectionAt(e.from);for(let i of this.bidiCache)if(i.from==e.from&&i.dir==n&&(i.fresh||yA(i.isolates,t=KA(this,e))))return i.order;t||(t=KA(this,e));let i=function(e,t,n){if(!e)return[new vA(0,0,t==cA?1:0)];if(t==lA&&!n.length&&!gA.test(e))return _A(e.length);if(n.length)for(;e.length>bA.length;)bA[bA.length]=256;let i=[],o=t==lA?0:1;return xA(e,o,o,n,0,e.length,i),i}(e.text,n,t);return this.bidiCache.push(new HB(e.from,e.to,n,t,!0,i)),i}get hasFocus(){var e;return(this.dom.ownerDocument.hasFocus()||DM.safari&&(null===(e=this.inputState)||void 0===e?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore((()=>{cM(this.contentDOM),this.docView.updateSelection()}))}setRoot(e){this._root!=e&&(this._root=e,this.observer.setWindow((9==e.nodeType?e:e.ownerDocument).defaultView||window),this.mountStyles())}destroy(){this.root.activeElement==this.contentDOM&&this.contentDOM.blur();for(let e of this.plugins)e.destroy(this);this.plugins=[],this.inputState.destroy(),this.docView.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(e,t={}){return zA.of(new NA("number"==typeof e?TO.cursor(e):e,t.y,t.x,t.yMargin,t.xMargin))}scrollSnapshot(){let{scrollTop:e,scrollLeft:t}=this.scrollDOM,n=this.viewState.scrollAnchorAt(e);return zA.of(new NA(TO.cursor(n.from),"start","start",n.top-e,t,!0))}setTabFocusMode(e){null==e?this.inputState.tabFocusMode=this.inputState.tabFocusMode<0?0:-1:"boolean"==typeof e?this.inputState.tabFocusMode=e?0:-1:0!=this.inputState.tabFocusMode&&(this.inputState.tabFocusMode=Date.now()+e)}static domEventHandlers(e){return HA.define((()=>({})),{eventHandlers:e})}static domEventObservers(e){return HA.define((()=>({})),{eventObservers:e})}static theme(e,t){let n=FP.newName(),i=[CB.of(n),eT.of(BB(`.${n}`,e))];return t&&t.dark&&i.push(OB.of(!0)),i}static baseTheme(e){return HO.lowest(eT.of(BB("."+PB,e,TB)))}static findFromDOM(e){var t;let n=e.querySelector(".cm-content"),i=n&&yM.get(n)||yM.get(e);return(null===(t=null==i?void 0:i.rootView)||void 0===t?void 0:t.view)||null}}$B.styleModule=eT,$B.inputHandler=TA,$B.scrollHandler=LA,$B.focusChangeEffect=BA,$B.perLineTextDirection=RA,$B.exceptionSink=MA,$B.updateListener=AA,$B.editable=$A,$B.mouseSelectionStyle=PA,$B.dragMovesSelection=OA,$B.clickAddsSelectionRange=CA,$B.decorations=QA,$B.outerDecorations=XA,$B.atomicRanges=UA,$B.bidiIsolatedRanges=YA,$B.scrollMargins=ZA,$B.darkTheme=OB,$B.cspNonce=DO.define({combine:e=>e.length?e[0]:""}),$B.contentAttributes=GA,$B.editorAttributes=WA,$B.lineWrapping=$B.contentAttributes.of({class:"cm-lineWrapping"}),$B.announce=sP.define();const jB=4096,qB={};class HB{constructor(e,t,n,i,o,r){this.from=e,this.to=t,this.dir=n,this.isolates=i,this.fresh=o,this.order=r}static update(e,t){if(t.empty&&!e.some((e=>e.fresh)))return e;let n=[],i=e.length?e[e.length-1].dir:aA.LTR;for(let o=Math.max(0,e.length-10);o=0;o--){let t=i[o],r="function"==typeof t?t(e):t;r&&qM(r,n)}return n}const WB=DM.mac?"mac":DM.windows?"win":DM.linux?"linux":"key";function GB(e,t,n){return t.altKey&&(e="Alt-"+e),t.ctrlKey&&(e="Ctrl-"+e),t.metaKey&&(e="Meta-"+e),!1!==n&&t.shiftKey&&(e="Shift-"+e),e}const QB=HO.default($B.domEventHandlers({keydown:(e,t)=>function(e,t,n,i){ZB=t;let o=function(e){var t=!(VP&&e.metaKey&&e.shiftKey&&!e.ctrlKey&&!e.altKey||WP&&e.shiftKey&&e.key&&1==e.key.length||"Unidentified"==e.key)&&e.key||(e.shiftKey?HP:qP)[e.keyCode]||e.key||"Unidentified";return"Esc"==t&&(t="Escape"),"Del"==t&&(t="Delete"),"Left"==t&&(t="ArrowLeft"),"Up"==t&&(t="ArrowUp"),"Right"==t&&(t="ArrowRight"),"Down"==t&&(t="ArrowDown"),t}(t),r=bO(vO(o,0))==o.length&&" "!=o,s="",a=!1,l=!1,c=!1;YB&&YB.view==n&&YB.scope==i&&(s=YB.prefix+" ",AT.indexOf(t.keyCode)<0&&(l=!0,YB=null));let h,u,p=new Set,d=e=>{if(e){for(let t of e.run)if(!p.has(t)&&(p.add(t),t(n)))return e.stopPropagation&&(c=!0),!0;e.preventDefault&&(e.stopPropagation&&(c=!0),l=!0)}return!1},f=e[i];return f&&(d(f[s+GB(o,t,!r)])?a=!0:r&&(t.altKey||t.metaKey||t.ctrlKey)&&!(DM.windows&&t.ctrlKey&&t.altKey)&&(h=qP[t.keyCode])&&h!=o?(d(f[s+GB(h,t,!0)])||t.shiftKey&&(u=HP[t.keyCode])!=o&&u!=h&&d(f[s+GB(u,t,!1)]))&&(a=!0):r&&t.shiftKey&&d(f[s+GB(o,t,!0)])&&(a=!0),!a&&d(f._any)&&(a=!0)),l&&(a=!0),a&&c&&t.stopPropagation(),ZB=null,a}(function(e){let t=e.facet(XB),n=UB.get(t);return n||UB.set(t,n=function(e,t=WB){let n=Object.create(null),i=Object.create(null),o=(e,t)=>{let n=i[e];if(null==n)i[e]=t;else if(n!=t)throw new Error("Key binding "+e+" is used both as a regular binding and as a multi-stroke prefix")},r=(e,i,r,s,a)=>{var l,c;let h=n[e]||(n[e]=Object.create(null)),u=i.split(/ (?!$)/).map((e=>function(e,t){const n=e.split(/-(?!$)/);let i,o,r,s,a=n[n.length-1];"Space"==a&&(a=" ");for(let e=0;e{let i=YB={view:t,prefix:n,scope:e};return setTimeout((()=>{YB==i&&(YB=null)}),KB),!0}]})}let p=u.join(" ");o(p,!1);let d=h[p]||(h[p]={preventDefault:!1,stopPropagation:!1,run:(null===(c=null===(l=h._any)||void 0===l?void 0:l.run)||void 0===c?void 0:c.slice())||[]});r&&d.run.push(r),s&&(d.preventDefault=!0),a&&(d.stopPropagation=!0)};for(let i of e){let e=i.scope?i.scope.split(" "):["editor"];if(i.any)for(let t of e){let e=n[t]||(n[t]=Object.create(null));e._any||(e._any={preventDefault:!1,stopPropagation:!1,run:[]});let{any:o}=i;for(let t in e)e[t].run.push((e=>o(e,ZB)))}let o=i[t]||i.key;if(o)for(let t of e)r(t,o,i.run,i.preventDefault,i.stopPropagation),i.shift&&r(t,"Shift-"+o,i.shift,i.preventDefault,i.stopPropagation)}return n}(t.reduce(((e,t)=>e.concat(t)),[]))),n}(t.state),e,t,"editor")})),XB=DO.define({enables:QB}),UB=new WeakMap;let YB=null;const KB=4e3;let ZB=null;const JB={".cm-line":{"& ::selection, &::selection":{backgroundColor:"transparent !important"}},".cm-content":{"& :focus":{caretColor:"initial !important","&::selection, & ::selection":{backgroundColor:"Highlight !important"}}}};!DM.ios&&(JB[".cm-line"].caretColor=JB[".cm-content"].caretColor="transparent !important");class eR extends QM{constructor(e){super(),this.content=e}toDOM(){let e=document.createElement("span");return e.className="cm-placeholder",e.style.pointerEvents="none",e.appendChild("string"==typeof this.content?document.createTextNode(this.content):this.content),"string"==typeof this.content?e.setAttribute("aria-label","placeholder "+this.content):e.setAttribute("aria-hidden","true"),e}coordsAt(e){let t=e.firstChild?KP(e.firstChild):[];if(!t.length)return null;let n=window.getComputedStyle(e.parentNode),i=iM(t[0],"rtl"!=n.direction),o=parseInt(n.lineHeight);return i.bottom-i.top>1.5*o?{left:i.left,right:i.right,top:i.top,bottom:i.top+o}:i}ignoreEvent(){return!1}}function tR(e){return HA.fromClass(class{constructor(t){this.view=t,this.placeholder=e?UM.set([UM.widget({widget:new eR(e),side:1}).range(0)]):UM.none}get decorations(){return this.view.state.doc.length?UM.none:this.placeholder}},{decorations:e=>e.decorations})}const nR="-10000px";class iR{constructor(e,t,n,i){this.facet=t,this.createTooltipView=n,this.removeTooltipView=i,this.input=e.state.facet(t),this.tooltips=this.input.filter((e=>e));let o=null;this.tooltipViews=this.tooltips.map((e=>o=n(e,o)))}update(e,t){var n;let i=e.state.facet(this.facet),o=i.filter((e=>e));if(i===this.input){for(let t of this.tooltipViews)t.update&&t.update(e);return!1}let r=[],s=t?[]:null;for(let n=0;nt[n]=e)),t.length=s.length),this.input=i,this.tooltips=o,this.tooltipViews=r,!0}}function oR(e={}){return sR.of(e)}function rR(e){let{win:t}=e;return{top:0,left:0,bottom:t.innerHeight,right:t.innerWidth}}const sR=DO.define({combine:e=>{var t,n,i;return{position:DM.ios?"absolute":(null===(t=e.find((e=>e.position)))||void 0===t?void 0:t.position)||"fixed",parent:(null===(n=e.find((e=>e.parent)))||void 0===n?void 0:n.parent)||null,tooltipSpace:(null===(i=e.find((e=>e.tooltipSpace)))||void 0===i?void 0:i.tooltipSpace)||rR}}}),aR=new WeakMap,lR=HA.fromClass(class{constructor(e){this.view=e,this.above=[],this.inView=!0,this.madeAbsolute=!1,this.lastTransaction=0,this.measureTimeout=-1;let t=e.state.facet(sR);this.position=t.position,this.parent=t.parent,this.classes=e.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.resizeObserver="function"==typeof ResizeObserver?new ResizeObserver((()=>this.measureSoon())):null,this.manager=new iR(e,uR,((e,t)=>this.createTooltip(e,t)),(e=>{this.resizeObserver&&this.resizeObserver.unobserve(e.dom),e.dom.remove()})),this.above=this.manager.tooltips.map((e=>!!e.above)),this.intersectionObserver="function"==typeof IntersectionObserver?new IntersectionObserver((e=>{Date.now()>this.lastTransaction-50&&e.length>0&&e[e.length-1].intersectionRatio<1&&this.measureSoon()}),{threshold:[1]}):null,this.observeIntersection(),e.win.addEventListener("resize",this.measureSoon=this.measureSoon.bind(this)),this.maybeMeasure()}createContainer(){this.parent?(this.container=document.createElement("div"),this.container.style.position="relative",this.container.className=this.view.themeClasses,this.parent.appendChild(this.container)):this.container=this.view.dom}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let e of this.manager.tooltipViews)this.intersectionObserver.observe(e.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout((()=>{this.measureTimeout=-1,this.maybeMeasure()}),50))}update(e){e.transactions.length&&(this.lastTransaction=Date.now());let t=this.manager.update(e,this.above);t&&this.observeIntersection();let n=t||e.geometryChanged,i=e.state.facet(sR);if(i.position!=this.position&&!this.madeAbsolute){this.position=i.position;for(let e of this.manager.tooltipViews)e.dom.style.position=this.position;n=!0}if(i.parent!=this.parent){this.parent&&this.container.remove(),this.parent=i.parent,this.createContainer();for(let e of this.manager.tooltipViews)this.container.appendChild(e.dom);n=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);n&&this.maybeMeasure()}createTooltip(e,t){let n=e.create(this.view),i=t?t.dom:null;if(n.dom.classList.add("cm-tooltip"),e.arrow&&!n.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let e=document.createElement("div");e.className="cm-tooltip-arrow",n.dom.appendChild(e)}return n.dom.style.position=this.position,n.dom.style.top=nR,n.dom.style.left="0px",this.container.insertBefore(n.dom,i),n.mount&&n.mount(this.view),this.resizeObserver&&this.resizeObserver.observe(n.dom),n}destroy(){var e,t,n;this.view.win.removeEventListener("resize",this.measureSoon);for(let t of this.manager.tooltipViews)t.dom.remove(),null===(e=t.destroy)||void 0===e||e.call(t);this.parent&&this.container.remove(),null===(t=this.resizeObserver)||void 0===t||t.disconnect(),null===(n=this.intersectionObserver)||void 0===n||n.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let e=this.view.dom.getBoundingClientRect(),t=1,n=1,i=!1;if("fixed"==this.position&&this.manager.tooltipViews.length){let{dom:e}=this.manager.tooltipViews[0];if(DM.gecko)i=e.offsetParent!=this.container.ownerDocument.body;else if(e.style.top==nR&&"0px"==e.style.left){let t=e.getBoundingClientRect();i=Math.abs(t.top+1e4)>1||Math.abs(t.left)>1}}if(i||"absolute"==this.position)if(this.parent){let e=this.parent.getBoundingClientRect();e.width&&e.height&&(t=e.width/this.parent.offsetWidth,n=e.height/this.parent.offsetHeight)}else({scaleX:t,scaleY:n}=this.view.viewState);return{editor:e,parent:this.parent?this.container.getBoundingClientRect():e,pos:this.manager.tooltips.map(((e,t)=>{let n=this.manager.tooltipViews[t];return n.getCoords?n.getCoords(e.pos):this.view.coordsAtPos(e.pos)})),size:this.manager.tooltipViews.map((({dom:e})=>e.getBoundingClientRect())),space:this.view.state.facet(sR).tooltipSpace(this.view),scaleX:t,scaleY:n,makeAbsolute:i}}writeMeasure(e){var t;if(e.makeAbsolute){this.madeAbsolute=!0,this.position="absolute";for(let e of this.manager.tooltipViews)e.dom.style.position="absolute"}let{editor:n,space:i,scaleX:o,scaleY:r}=e,s=[];for(let a=0;a=Math.min(n.bottom,i.bottom)||u.rightMath.min(n.right,i.right)+.1){h.style.top=nR;continue}let d=l.arrow?c.dom.querySelector(".cm-tooltip-arrow"):null,f=d?7:0,m=p.right-p.left,g=null!==(t=aR.get(c))&&void 0!==t?t:p.bottom-p.top,v=c.offset||hR,y=this.view.textDirection==aA.LTR,b=p.width>i.right-i.left?y?i.left:i.right-p.width:y?Math.max(i.left,Math.min(u.left-(d?14:0)+v.x,i.right-m)):Math.min(Math.max(i.left,u.left-m+(d?14:0)-v.x),i.right-m),w=this.above[a];!l.strictSide&&(w?u.top-(p.bottom-p.top)-v.yi.bottom)&&w==i.bottom-u.bottom>u.top-i.top&&(w=this.above[a]=!w);let x=(w?u.top-i.top:i.bottom-u.bottom)-f;if(xb&&e.top<_+g&&e.bottom>_&&(_=w?e.top-g-2-f:e.bottom+f+2);if("absolute"==this.position?(h.style.top=(_-e.parent.top)/r+"px",h.style.left=(b-e.parent.left)/o+"px"):(h.style.top=_/r+"px",h.style.left=b/o+"px"),d){let e=u.left+(y?v.x:-v.x)-(b+14-7);d.style.left=e/o+"px"}!0!==c.overlap&&s.push({left:b,top:_,right:E,bottom:_+g}),h.classList.toggle("cm-tooltip-above",w),h.classList.toggle("cm-tooltip-below",!w),c.positioned&&c.positioned(e.space)}}maybeMeasure(){if(this.manager.tooltips.length&&(this.view.inView&&this.view.requestMeasure(this.measureReq),this.inView!=this.view.inView&&(this.inView=this.view.inView,!this.inView)))for(let e of this.manager.tooltipViews)e.dom.style.top=nR}},{eventObservers:{scroll(){this.maybeMeasure()}}}),cR=$B.baseTheme({".cm-tooltip":{zIndex:100,boxSizing:"border-box"},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:"7px",width:"14px",position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:"7px solid transparent",borderRight:"7px solid transparent"},".cm-tooltip-above &":{bottom:"-7px","&:before":{borderTop:"7px solid #bbb"},"&:after":{borderTop:"7px solid #f5f5f5",bottom:"1px"}},".cm-tooltip-below &":{top:"-7px","&:before":{borderBottom:"7px solid #bbb"},"&:after":{borderBottom:"7px solid #f5f5f5",top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),hR={x:0,y:0},uR=DO.define({enables:[lR,cR]}),pR=DO.define({combine:e=>e.reduce(((e,t)=>e.concat(t)),[])});class dR{static create(e){return new dR(e)}constructor(e){this.view=e,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new iR(e,pR,((e,t)=>this.createHostedView(e,t)),(e=>e.dom.remove()))}createHostedView(e,t){let n=e.create(this.view);return n.dom.classList.add("cm-tooltip-section"),this.dom.insertBefore(n.dom,t?t.dom.nextSibling:this.dom.firstChild),this.mounted&&n.mount&&n.mount(this.view),n}mount(e){for(let t of this.manager.tooltipViews)t.mount&&t.mount(e);this.mounted=!0}positioned(e){for(let t of this.manager.tooltipViews)t.positioned&&t.positioned(e)}update(e){this.manager.update(e)}destroy(){var e;for(let t of this.manager.tooltipViews)null===(e=t.destroy)||void 0===e||e.call(t)}passProp(e){let t;for(let n of this.manager.tooltipViews){let i=n[e];if(void 0!==i)if(void 0===t)t=i;else if(t!==i)return}return t}get offset(){return this.passProp("offset")}get getCoords(){return this.passProp("getCoords")}get overlap(){return this.passProp("overlap")}get resize(){return this.passProp("resize")}}const fR=uR.compute([pR],(e=>{let t=e.facet(pR);return 0===t.length?null:{pos:Math.min(...t.map((e=>e.pos))),end:Math.max(...t.map((e=>{var t;return null!==(t=e.end)&&void 0!==t?t:e.pos}))),create:dR.create,above:t[0].above,arrow:t.some((e=>e.arrow))}}));class mR{constructor(e,t,n,i,o){this.view=e,this.source=t,this.field=n,this.setHover=i,this.hoverTime=o,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:e.dom,time:0},this.checkHover=this.checkHover.bind(this),e.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),e.dom.addEventListener("mousemove",this.mousemove=this.mousemove.bind(this))}update(){this.pending&&(this.pending=null,clearTimeout(this.restartTimeout),this.restartTimeout=setTimeout((()=>this.startHover()),20))}get active(){return this.view.state.field(this.field)}checkHover(){if(this.hoverTimeout=-1,this.active.length)return;let e=Date.now()-this.lastMove.time;en.bottom||t.xn.right+e.defaultCharacterWidth)return;let r=e.bidiSpans(e.state.doc.lineAt(i)).find((e=>e.from<=i&&e.to>=i)),s=r&&r.dir==aA.RTL?-1:1;o=t.x{this.pending==t&&(this.pending=null,!n||Array.isArray(n)&&!n.length||e.dispatch({effects:this.setHover.of(Array.isArray(n)?n:[n])}))}),(t=>FA(e.state,t,"hover tooltip")))}else!r||Array.isArray(r)&&!r.length||e.dispatch({effects:this.setHover.of(Array.isArray(r)?r:[r])})}get tooltip(){let e=this.view.plugin(lR),t=e?e.manager.tooltips.findIndex((e=>e.create==dR.create)):-1;return t>-1?e.manager.tooltipViews[t]:null}mousemove(e){var t,n;this.lastMove={x:e.clientX,y:e.clientY,target:e.target,time:Date.now()},this.hoverTimeout<0&&(this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime));let{active:i,tooltip:o}=this;if(i.length&&o&&!function(e,t){let n=e.getBoundingClientRect();return t.clientX>=n.left-gR&&t.clientX<=n.right+gR&&t.clientY>=n.top-gR&&t.clientY<=n.bottom+gR}(o.dom,e)||this.pending){let{pos:o}=i[0]||this.pending,r=null!==(n=null===(t=i[0])||void 0===t?void 0:t.end)&&void 0!==n?n:o;(o==r?this.view.posAtCoords(this.lastMove)==o:function(e,t,n,i,o,r){let s=e.scrollDOM.getBoundingClientRect(),a=e.documentTop+e.documentPadding.top+e.contentHeight;if(s.left>i||s.righto||Math.min(s.bottom,a)=t&&l<=n}(this.view,o,r,e.clientX,e.clientY))||(this.view.dispatch({effects:this.setHover.of([])}),this.pending=null)}}mouseleave(e){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1;let{active:t}=this;if(t.length){let{tooltip:t}=this;t&&t.dom.contains(e.relatedTarget)?this.watchTooltipLeave(t.dom):this.view.dispatch({effects:this.setHover.of([])})}}watchTooltipLeave(e){let t=n=>{e.removeEventListener("mouseleave",t),this.active.length&&!this.view.dom.contains(n.relatedTarget)&&this.view.dispatch({effects:this.setHover.of([])})};e.addEventListener("mouseleave",t)}destroy(){clearTimeout(this.hoverTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}}const gR=4;function vR(e,t={}){let n=sP.define(),i=jO.define({create:()=>[],update(e,i){if(e.length&&(t.hideOnChange&&(i.docChanged||i.selection)?e=[]:t.hideOn&&(e=e.filter((e=>!t.hideOn(i,e)))),i.docChanged)){let t=[];for(let n of e){let e=i.changes.mapPos(n.pos,-1,xO.TrackDel);if(null!=e){let o=Object.assign(Object.create(null),n);o.pos=e,null!=o.end&&(o.end=i.changes.mapPos(o.end)),t.push(o)}}e=t}for(let t of i.effects)t.is(n)&&(e=t.value),t.is(bR)&&(e=[]);return e},provide:e=>pR.from(e)});return{active:i,extension:[i,HA.define((o=>new mR(o,e,i,n,t.hoverTime||300))),fR]}}function yR(e,t){let n=e.plugin(lR);if(!n)return null;let i=n.manager.tooltips.indexOf(t);return i<0?null:n.manager.tooltipViews[i]}const bR=sP.define(),wR=DO.define({combine(e){let t,n;for(let i of e)t=t||i.topContainer,n=n||i.bottomContainer;return{topContainer:t,bottomContainer:n}}}),xR=HA.fromClass(class{constructor(e){this.input=e.state.facet(kR),this.specs=this.input.filter((e=>e)),this.panels=this.specs.map((t=>t(e)));let t=e.state.facet(wR);this.top=new _R(e,!0,t.topContainer),this.bottom=new _R(e,!1,t.bottomContainer),this.top.sync(this.panels.filter((e=>e.top))),this.bottom.sync(this.panels.filter((e=>!e.top)));for(let e of this.panels)e.dom.classList.add("cm-panel"),e.mount&&e.mount()}update(e){let t=e.state.facet(wR);this.top.container!=t.topContainer&&(this.top.sync([]),this.top=new _R(e.view,!0,t.topContainer)),this.bottom.container!=t.bottomContainer&&(this.bottom.sync([]),this.bottom=new _R(e.view,!1,t.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let n=e.state.facet(kR);if(n!=this.input){let t=n.filter((e=>e)),i=[],o=[],r=[],s=[];for(let n of t){let t,a=this.specs.indexOf(n);a<0?(t=n(e.view),s.push(t)):(t=this.panels[a],t.update&&t.update(e)),i.push(t),(t.top?o:r).push(t)}this.specs=t,this.panels=i,this.top.sync(o),this.bottom.sync(r);for(let e of s)e.dom.classList.add("cm-panel"),e.mount&&e.mount()}else for(let t of this.panels)t.update&&t.update(e)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:e=>$B.scrollMargins.of((t=>{let n=t.plugin(e);return n&&{top:n.top.scrollMargin(),bottom:n.bottom.scrollMargin()}}))});class _R{constructor(e,t,n){this.view=e,this.top=t,this.container=n,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(e){for(let t of this.panels)t.destroy&&e.indexOf(t)<0&&t.destroy();this.panels=e,this.syncDOM()}syncDOM(){if(0==this.panels.length)return void(this.dom&&(this.dom.remove(),this.dom=void 0));if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom",this.dom.style[this.top?"top":"bottom"]="0";let e=this.container||this.view.dom;e.insertBefore(this.dom,this.top?e.firstChild:null)}let e=this.dom.firstChild;for(let t of this.panels)if(t.dom.parentNode==this.dom){for(;e!=t.dom;)e=ER(e);e=e.nextSibling}else this.dom.insertBefore(t.dom,e);for(;e;)e=ER(e)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(this.container&&this.classes!=this.view.themeClasses){for(let e of this.classes.split(" "))e&&this.container.classList.remove(e);for(let e of(this.classes=this.view.themeClasses).split(" "))e&&this.container.classList.add(e)}}}function ER(e){let t=e.nextSibling;return e.remove(),t}const kR=DO.define({enables:xR});class SR extends bP{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}}SR.prototype.elementClass="",SR.prototype.toDOM=void 0,SR.prototype.mapMode=xO.TrackBefore,SR.prototype.startSide=SR.prototype.endSide=-1,SR.prototype.point=!0;const CR=DO.define(),OR=DO.define(),PR=DO.define(),MR=DO.define({combine:e=>e.some((e=>e))});function AR(e){let t=[TR];return e&&!1===e.fixed&&t.push(MR.of(!0)),t}const TR=HA.fromClass(class{constructor(e){this.view=e,this.prevViewport=e.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.gutters=e.state.facet(PR).map((t=>new LR(e,t)));for(let e of this.gutters)this.dom.appendChild(e.dom);this.fixed=!e.state.facet(MR),this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),e.scrollDOM.insertBefore(this.dom,e.contentDOM)}update(e){if(this.updateGutters(e)){let t=this.prevViewport,n=e.view.viewport,i=Math.min(t.to,n.to)-Math.max(t.from,n.from);this.syncGutters(i<.8*(n.to-n.from))}e.geometryChanged&&(this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px"),this.view.state.facet(MR)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":""),this.prevViewport=e.view.viewport}syncGutters(e){let t=this.dom.nextSibling;e&&this.dom.remove();let n=EP.iter(this.view.state.facet(CR),this.view.viewport.from),i=[],o=this.gutters.map((e=>new DR(e,this.view.viewport,-this.view.documentPadding.top)));for(let e of this.view.viewportLineBlocks)if(i.length&&(i=[]),Array.isArray(e.type)){let t=!0;for(let r of e.type)if(r.type==XM.Text&&t){RR(n,i,r.from);for(let e of o)e.line(this.view,r,i);t=!1}else if(r.widget)for(let e of o)e.widget(this.view,r)}else if(e.type==XM.Text){RR(n,i,e.from);for(let t of o)t.line(this.view,e,i)}else if(e.widget)for(let t of o)t.widget(this.view,e);for(let e of o)e.finish();e&&this.view.scrollDOM.insertBefore(this.dom,t)}updateGutters(e){let t=e.startState.facet(PR),n=e.state.facet(PR),i=e.docChanged||e.heightChanged||e.viewportChanged||!EP.eq(e.startState.facet(CR),e.state.facet(CR),e.view.viewport.from,e.view.viewport.to);if(t==n)for(let t of this.gutters)t.update(e)&&(i=!0);else{i=!0;let o=[];for(let i of n){let n=t.indexOf(i);n<0?o.push(new LR(this.view,i)):(this.gutters[n].update(e),o.push(this.gutters[n]))}for(let e of this.gutters)e.dom.remove(),o.indexOf(e)<0&&e.destroy();for(let e of o)this.dom.appendChild(e.dom);this.gutters=o}return i}destroy(){for(let e of this.gutters)e.destroy();this.dom.remove()}},{provide:e=>$B.scrollMargins.of((t=>{let n=t.plugin(e);return n&&0!=n.gutters.length&&n.fixed?t.textDirection==aA.LTR?{left:n.dom.offsetWidth*t.scaleX}:{right:n.dom.offsetWidth*t.scaleX}:null}))});function BR(e){return Array.isArray(e)?e:[e]}function RR(e,t,n){for(;e.value&&e.from<=n;)e.from==n&&t.push(e.value),e.next()}class DR{constructor(e,t,n){this.gutter=e,this.height=n,this.i=0,this.cursor=EP.iter(e.markers,t.from)}addElement(e,t,n){let{gutter:i}=this,o=(t.top-this.height)/e.scaleY,r=t.height/e.scaleY;if(this.i==i.elements.length){let t=new NR(e,r,o,n);i.elements.push(t),i.dom.appendChild(t.dom)}else i.elements[this.i].update(e,r,o,n);this.height=t.bottom,this.i++}line(e,t,n){let i=[];RR(this.cursor,i,t.from),n.length&&(i=i.concat(n));let o=this.gutter.config.lineMarker(e,t,i);o&&i.unshift(o);let r=this.gutter;(0!=i.length||r.config.renderEmptyElements)&&this.addElement(e,t,i)}widget(e,t){let n=this.gutter.config.widgetMarker(e,t.widget,t),i=n?[n]:null;for(let n of e.state.facet(OR)){let o=n(e,t.widget,t);o&&(i||(i=[])).push(o)}i&&this.addElement(e,t,i)}finish(){let e=this.gutter;for(;e.elements.length>this.i;){let t=e.elements.pop();e.dom.removeChild(t.dom),t.destroy()}}}class LR{constructor(e,t){this.view=e,this.config=t,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let n in t.domEventHandlers)this.dom.addEventListener(n,(i=>{let o,r=i.target;if(r!=this.dom&&this.dom.contains(r)){for(;r.parentNode!=this.dom;)r=r.parentNode;let e=r.getBoundingClientRect();o=(e.top+e.bottom)/2}else o=i.clientY;let s=e.lineBlockAtHeight(o-e.documentTop);t.domEventHandlers[n](e,s,i)&&i.preventDefault()}));this.markers=BR(t.markers(e)),t.initialSpacer&&(this.spacer=new NR(e,0,0,[t.initialSpacer(e)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(e){let t=this.markers;if(this.markers=BR(this.config.markers(e.view)),this.spacer&&this.config.updateSpacer){let t=this.config.updateSpacer(this.spacer.markers[0],e);t!=this.spacer.markers[0]&&this.spacer.update(e.view,0,0,[t])}let n=e.view.viewport;return!EP.eq(this.markers,t,n.from,n.to)||!!this.config.lineMarkerChange&&this.config.lineMarkerChange(e)}destroy(){for(let e of this.elements)e.destroy()}}class NR{constructor(e,t,n,i){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(e,t,n,i)}update(e,t,n,i){this.height!=t&&(this.height=t,this.dom.style.height=t+"px"),this.above!=n&&(this.dom.style.marginTop=(this.above=n)?n+"px":""),function(e,t){if(e.length!=t.length)return!1;for(let n=0;nyP(e,{formatNumber:String,domEventHandlers:{}},{domEventHandlers(e,t){let n=Object.assign({},e);for(let e in t){let i=n[e],o=t[e];n[e]=i?(e,t,n)=>i(e,t,n)||o(e,t,n):o}return n}})});class $R extends SR{constructor(e){super(),this.number=e}eq(e){return this.number==e.number}toDOM(){return document.createTextNode(this.number)}}function jR(e,t){return e.state.facet(FR).formatNumber(t,e.state)}const qR=PR.compute([FR],(e=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers:e=>e.state.facet(zR),lineMarker:(e,t,n)=>n.some((e=>e.toDOM))?null:new $R(jR(e,e.state.doc.lineAt(t.from).number)),widgetMarker:(e,t,n)=>{for(let i of e.state.facet(IR)){let o=i(e,t,n);if(o)return o}return null},lineMarkerChange:e=>e.startState.facet(FR)!=e.state.facet(FR),initialSpacer:e=>new $R(jR(e,VR(e.state.doc.lines))),updateSpacer(e,t){let n=jR(t.view,VR(t.view.state.doc.lines));return n==e.number?e:new $R(n)},domEventHandlers:e.facet(FR).domEventHandlers})));function HR(e={}){return[FR.of(e),AR(),qR]}function VR(e){let t=9;for(;t{let i=UR(e,t,n),o=i.type.prop(GR);if(!o)return[];let r=e.facet(o),s=i.type.prop(QR);if(s){let o=i.resolve(t-i.from,n);for(let t of s)if(t.test(o,e)){let n=e.facet(t.facet);return"replace"==t.type?n:n.concat(r)}}return r}))].concat(n)}isActiveAt(e,t,n=-1){return UR(e,t,n).type.prop(GR)==this.data}findRegions(e){let t=e.facet(sD);if((null==t?void 0:t.data)==this.data)return[{from:0,to:e.doc.length}];if(!t||!t.allowsNesting)return[];let n=[],i=(e,t)=>{if(e.prop(GR)==this.data)return void n.push({from:t,to:t+e.length});let o=e.prop(dS.mounted);if(o){if(o.tree.prop(GR)==this.data){if(o.overlay)for(let e of o.overlay)n.push({from:e.from+t,to:e.to+t});else n.push({from:t,to:t+e.length});return}if(o.overlay){let e=n.length;if(i(o.tree,o.overlay[0].from+t),n.length>e)return}}for(let n=0;ne.concat(n):void 0}));var n;return new YR(t,e.parser.configure({props:[GR.add((e=>e.isTop?t:void 0))]}),e.name)}configure(e,t){return new YR(this.data,this.parser.configure(e),t||this.name)}get allowsNesting(){return this.parser.hasWrappers()}}function KR(e){let t=e.field(XR.state,!1);return t?t.tree:xS.empty}class ZR{constructor(e){this.doc=e,this.cursorPos=0,this.string="",this.cursor=e.iter()}get length(){return this.doc.length}syncTo(e){return this.string=this.cursor.next(e-this.cursorPos).value,this.cursorPos=e+this.string.length,this.cursorPos-this.string.length}chunk(e){return this.syncTo(e),this.string}get lineChunks(){return!0}read(e,t){let n=this.cursorPos-this.string.length;return e=this.cursorPos?this.doc.sliceString(e,t):this.string.slice(e-n,t-n)}}let JR=null;class eD{constructor(e,t,n=[],i,o,r,s,a){this.parser=e,this.state=t,this.fragments=n,this.tree=i,this.treeLen=o,this.viewport=r,this.skipped=s,this.scheduleOn=a,this.parse=null,this.tempSkipped=[]}static create(e,t,n){return new eD(e,t,[],xS.empty,0,n,[],null)}startParse(){return this.parser.startParse(new ZR(this.state.doc),this.fragments)}work(e,t){return null!=t&&t>=this.state.doc.length&&(t=void 0),this.tree!=xS.empty&&this.isDone(null!=t?t:this.state.doc.length)?(this.takeTree(),!0):this.withContext((()=>{var n;if("number"==typeof e){let t=Date.now()+e;e=()=>Date.now()>t}for(this.parse||(this.parse=this.startParse()),null!=t&&(null==this.parse.stoppedAt||this.parse.stoppedAt>t)&&t=this.treeLen&&((null==this.parse.stoppedAt||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext((()=>{for(;!(t=this.parse.advance()););})),this.treeLen=e,this.tree=t,this.fragments=this.withoutTempSkipped(FS.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let t=JR;JR=this;try{return e()}finally{JR=t}}withoutTempSkipped(e){for(let t;t=this.tempSkipped.pop();)e=tD(e,t.from,t.to);return e}changes(e,t){let{fragments:n,tree:i,treeLen:o,viewport:r,skipped:s}=this;if(this.takeTree(),!e.empty){let t=[];if(e.iterChangedRanges(((e,n,i,o)=>t.push({fromA:e,toA:n,fromB:i,toB:o}))),n=FS.applyChanges(n,t),i=xS.empty,o=0,r={from:e.mapPos(r.from,-1),to:e.mapPos(r.to,1)},this.skipped.length){s=[];for(let t of this.skipped){let n=e.mapPos(t.from,1),i=e.mapPos(t.to,-1);ne.from&&(this.fragments=tD(this.fragments,n,i),this.skipped.splice(t--,1))}return!(this.skipped.length>=t||(this.reset(),0))}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,t){this.skipped.push({from:e,to:t})}static getSkippingParser(e){return new class extends $S{createParse(t,n,i){let o=i[0].from,r=i[i.length-1].to;return{parsedPos:o,advance(){let t=JR;if(t){for(let e of i)t.tempSkipped.push(e);e&&(t.scheduleOn=t.scheduleOn?Promise.all([t.scheduleOn,e]):e)}return this.parsedPos=r,new xS(gS.none,[],[],r-o)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let t=this.fragments;return this.treeLen>=e&&t.length&&0==t[0].from&&t[0].to>=e}static get(){return JR}}function tD(e,t,n){return FS.applyChanges(e,[{fromA:t,toA:n,fromB:t,toB:n}])}class nD{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let t=this.context.changes(e.changes,e.state),n=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),t.viewport.to);return t.work(20,n)||t.takeTree(),new nD(t)}static init(e){let t=Math.min(3e3,e.doc.length),n=eD.create(e.facet(sD).parser,e,{from:0,to:t});return n.work(20,t)||n.takeTree(),new nD(n)}}XR.state=jO.define({create:nD.init,update(e,t){for(let e of t.effects)if(e.is(XR.setState))return e.value;return t.startState.facet(sD)!=t.state.facet(sD)?nD.init(t.state):e.apply(t)}});let iD=e=>{let t=setTimeout((()=>e()),500);return()=>clearTimeout(t)};"undefined"!=typeof requestIdleCallback&&(iD=e=>{let t=-1,n=setTimeout((()=>{t=requestIdleCallback(e,{timeout:400})}),100);return()=>t<0?clearTimeout(n):cancelIdleCallback(t)});const oD="undefined"!=typeof navigator&&(null===(WR=navigator.scheduling)||void 0===WR?void 0:WR.isInputPending)?()=>navigator.scheduling.isInputPending():null,rD=HA.fromClass(class{constructor(e){this.view=e,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let t=this.view.state.field(XR.state).context;(t.updateViewport(e.view.viewport)||this.view.viewport.to>t.treeLen)&&this.scheduleWork(),(e.docChanged||e.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(t)}scheduleWork(){if(this.working)return;let{state:e}=this.view,t=e.field(XR.state);t.tree==t.context.tree&&t.context.isDone(e.doc.length)||(this.working=iD(this.work))}work(e){this.working=null;let t=Date.now();if(this.chunkEndi+1e3,a=o.context.work((()=>oD&&oD()||Date.now()>r),i+(s?0:1e5));this.chunkBudget-=Date.now()-t,(a||this.chunkBudget<=0)&&(o.context.takeTree(),this.view.dispatch({effects:XR.setState.of(new nD(o.context))})),this.chunkBudget>0&&(!a||s)&&this.scheduleWork(),this.checkAsyncSchedule(o.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then((()=>this.scheduleWork())).catch((e=>FA(this.view.state,e))).then((()=>this.workScheduled--)),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),sD=DO.define({combine:e=>e.length?e[0]:null,enables:e=>[XR.state,rD,$B.contentAttributes.compute([e],(t=>{let n=t.facet(e);return n&&n.name?{"data-language":n.name}:{}}))]});class aD{constructor(e,t=[]){this.language=e,this.support=t,this.extension=[e,t]}}const lD=DO.define(),cD=DO.define({combine:e=>{if(!e.length)return" ";let t=e[0];if(!t||/\S/.test(t)||Array.from(t).some((e=>e!=t[0])))throw new Error("Invalid indent unit: "+JSON.stringify(e[0]));return t}});function hD(e){let t=e.facet(cD);return 9==t.charCodeAt(0)?e.tabSize*t.length:t.length}function uD(e,t){let n="",i=e.tabSize,o=e.facet(cD)[0];if("\t"==o){for(;t>=i;)n+="\t",t-=i;o=" "}for(let e=0;e=t?function(e,t,n){let i=t.resolveStack(n),o=i.node.enterUnfinishedNodesBefore(n);if(o!=i.node){let e=[];for(let t=o;t!=i.node;t=t.parent)e.push(t);for(let t=e.length-1;t>=0;t--)i={node:e[t],next:i}}return mD(i,e,n)}(e,n,t):null}class dD{constructor(e,t={}){this.state=e,this.options=t,this.unit=hD(e)}lineAt(e,t=1){let n=this.state.doc.lineAt(e),{simulateBreak:i,simulateDoubleBreak:o}=this.options;return null!=i&&i>=n.from&&i<=n.to?o&&i==e?{text:"",from:e}:(t<0?i-1&&(o+=r-this.countColumn(n,n.search(/\S|$/))),o}countColumn(e,t=e.length){return LP(e,this.state.tabSize,t)}lineIndent(e,t=1){let{text:n,from:i}=this.lineAt(e,t),o=this.options.overrideIndentation;if(o){let e=o(i);if(e>-1)return e}return this.countColumn(n,n.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}const fD=new dS;function mD(e,t,n){for(let i=e;i;i=i.next){let e=gD(i.node);if(e)return e(yD.create(t,n,i))}return 0}function gD(e){let t=e.type.prop(fD);if(t)return t;let n,i=e.firstChild;if(i&&(n=i.type.prop(dS.closedBy))){let t=e.lastChild,i=t&&n.indexOf(t.name)>-1;return e=>xD(e,!0,1,void 0,i&&!function(e){return e.pos==e.options.simulateBreak&&e.options.simulateDoubleBreak}(e)?t.from:void 0)}return null==e.parent?vD:null}function vD(){return 0}class yD extends dD{constructor(e,t,n){super(e.state,e.options),this.base=e,this.pos=t,this.context=n}get node(){return this.context.node}static create(e,t,n){return new yD(e,t,n)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(e){let t=this.state.doc.lineAt(e.from);for(;;){let n=e.resolve(t.from);for(;n.parent&&n.parent.from==n.from;)n=n.parent;if(bD(n,e))break;t=this.state.doc.lineAt(n.from)}return this.lineIndent(t.from)}continue(){return mD(this.context.next,this.base,this.pos)}}function bD(e,t){for(let n=t;n;n=n.parent)if(e==n)return!0;return!1}function wD({closing:e,align:t=!0,units:n=1}){return i=>xD(i,t,n,e)}function xD(e,t,n,i,o){let r=e.textAfter,s=r.match(/^\s*/)[0].length,a=i&&r.slice(s,s+i.length)==i||o==e.pos+s,l=t?function(e){let t=e.node,n=t.childAfter(t.from),i=t.lastChild;if(!n)return null;let o=e.options.simulateBreak,r=e.state.doc.lineAt(n.from),s=null==o||o<=r.from?r.to:Math.min(r.to,o);for(let e=n.to;;){let o=t.childAfter(e);if(!o||o==i)return null;if(!o.type.isSkipped)return o.from{let i=e&&e.test(n.textAfter);return n.baseIndent+(i?0:t*n.unit)}}const ED=200;function kD(){return vP.transactionFilter.of((e=>{if(!e.docChanged||!e.isUserEvent("input.type")&&!e.isUserEvent("input.complete"))return e;let t=e.startState.languageDataAt("indentOnInput",e.startState.selection.main.head);if(!t.length)return e;let n=e.newDoc,{head:i}=e.newSelection.main,o=n.lineAt(i);if(i>o.from+ED)return e;let r=n.sliceString(o.from,i);if(!t.some((e=>e.test(r))))return e;let{state:s}=e,a=-1,l=[];for(let{head:e}of s.selection.ranges){let t=s.doc.lineAt(e);if(t.from==a)continue;a=t.from;let n=pD(s,t.from);if(null==n)continue;let i=/^\s*/.exec(t.text)[0],o=uD(s,n);i!=o&&l.push({from:t.from,to:t.from+i.length,insert:o})}return l.length?[e,{changes:l,sequential:!0}]:e}))}const SD=new dS;function CD(e){let t=e.firstChild,n=e.lastChild;return t&&t.toe.prop(GR)==r.data:r?e=>e==r:void 0,this.style=RC(e.map((e=>({tag:e.tag,class:e.class||i(Object.assign({},e,{tag:null}))}))),{all:o}).style,this.module=n?new FP(n):null,this.themeType=t.themeType}static define(e,t){return new OD(e,t||{})}}const PD=DO.define(),MD=DO.define({combine:e=>e.length?[e[0]]:null});function AD(e){let t=e.facet(PD);return t.length?t:e.facet(MD)}function TD(e,t){let n,i=[RD];return e instanceof OD&&(e.module&&i.push($B.styleModule.of(e.module)),n=e.themeType),(null==t?void 0:t.fallback)?i.push(MD.of(e)):n?i.push(PD.computeN([$B.darkTheme],(t=>t.facet($B.darkTheme)==("dark"==n)?[e]:[]))):i.push(PD.of(e)),i}class BD{constructor(e){this.markCache=Object.create(null),this.tree=KR(e.state),this.decorations=this.buildDeco(e,AD(e.state)),this.decoratedTo=e.viewport.to}update(e){let t=KR(e.state),n=AD(e.state),i=n!=AD(e.startState),{viewport:o}=e.view,r=e.changes.mapPos(this.decoratedTo,1);t.length=o.to?(this.decorations=this.decorations.map(e.changes),this.decoratedTo=r):(t!=this.tree||e.viewportChanged||i)&&(this.tree=t,this.decorations=this.buildDeco(e.view,n),this.decoratedTo=o.to)}buildDeco(e,t){if(!t||!this.tree.length)return UM.none;let n=new kP;for(let{from:i,to:o}of e.visibleRanges)DC(this.tree,t,((e,t,i)=>{n.add(e,t,this.markCache[i]||(this.markCache[i]=UM.mark({class:i})))}),i,o);return n.finish()}}const RD=HO.high(HA.fromClass(BD,{decorations:e=>e.decorations})),DD=(KC.meta,KC.link,KC.heading,KC.emphasis,KC.strong,KC.strikethrough,KC.keyword,KC.atom,KC.bool,KC.url,KC.contentSeparator,KC.labelName,KC.literal,KC.inserted,KC.string,KC.deleted,KC.regexp,KC.escape,KC.string,KC.variableName,KC.variableName,KC.typeName,KC.namespace,KC.className,KC.variableName,KC.macroName,KC.propertyName,KC.comment,KC.invalid,$B.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}})),LD=1e4,ND="()[]{}",zD=DO.define({combine:e=>yP(e,{afterCursor:!0,brackets:ND,maxScanDistance:LD,renderMatch:$D})}),ID=UM.mark({class:"cm-matchingBracket"}),FD=UM.mark({class:"cm-nonmatchingBracket"});function $D(e){let t=[],n=e.matched?ID:FD;return t.push(n.range(e.start.from,e.start.to)),e.end&&t.push(n.range(e.end.from,e.end.to)),t}const jD=jO.define({create:()=>UM.none,update(e,t){if(!t.docChanged&&!t.selection)return e;let n=[],i=t.state.facet(zD);for(let e of t.state.selection.ranges){if(!e.empty)continue;let o=QD(t.state,e.head,-1,i)||e.head>0&&QD(t.state,e.head-1,1,i)||i.afterCursor&&(QD(t.state,e.head,1,i)||e.head$B.decorations.from(e)}),qD=[jD,DD];function HD(e={}){return[zD.of(e),qD]}const VD=new dS;function WD(e,t,n){let i=e.prop(t<0?dS.openedBy:dS.closedBy);if(i)return i;if(1==e.name.length){let i=n.indexOf(e.name);if(i>-1&&i%2==(t<0?1:0))return[n[i+t]]}return null}function GD(e){let t=e.type.prop(VD);return t?t(e.node):e}function QD(e,t,n,i={}){let o=i.maxScanDistance||LD,r=i.brackets||ND,s=KR(e),a=s.resolveInner(t,n);for(let e=a;e;e=e.parent){let i=WD(e.type,n,r);if(i&&e.from0?t>=o.from&&to.from&&t<=o.to))return XD(0,0,n,e,o,i,r)}}return function(e,t,n,i,o,r,s){let a=n<0?e.sliceDoc(t-1,t):e.sliceDoc(t,t+1),l=s.indexOf(a);if(l<0||l%2==0!=n>0)return null;let c={from:n<0?t-1:t,to:n>0?t+1:t},h=e.doc.iterRange(t,n>0?e.doc.length:0),u=0;for(let e=0;!h.next().done&&e<=r;){let r=h.value;n<0&&(e+=r.length);let a=t+e*n;for(let e=n>0?0:r.length-1,t=n>0?r.length:-1;e!=t;e+=n){let t=s.indexOf(r[e]);if(!(t<0||i.resolveInner(a+e,1).type!=o))if(t%2==0==n>0)u++;else{if(1==u)return{start:c,end:{from:a+e,to:a+e+1},matched:t>>1==l>>1};u--}}n>0&&(e+=r.length)}return h.done?{start:c,matched:!1}:null}(e,t,n,s,a.type,o,r)}function XD(e,t,n,i,o,r,s){let a=i.parent,l={from:o.from,to:o.to},c=0,h=null==a?void 0:a.cursor();if(h&&(n<0?h.childBefore(i.from):h.childAfter(i.to)))do{if(n<0?h.to<=i.from:h.from>=i.to){if(0==c&&r.indexOf(h.type.name)>-1&&h.from-1||(KD.push(e),console.warn(t))}function tL(e,t){let n=[];for(let i of t.split(" ")){let t=[];for(let n of i.split(".")){let i=e[n]||KC[n];i?"function"==typeof i?t.length?t=t.map(i):eL(n,`Modifier ${n} used at start of tag`):t.length?eL(n,`Tag ${n} used as modifier`):t=Array.isArray(i)?i:[i]:eL(n,`Unknown highlighting tag ${n}`)}for(let e of t)n.push(e)}if(!n.length)return 0;let i=t.replace(/ /g,"_"),o=i+" "+n.map((e=>e.id)),r=ZD[o];if(r)return r.id;let s=ZD[o]=gS.define({id:YD.length,name:i,props:[AC({[i]:n})]});return YD.push(s),s.id}aA.RTL,aA.LTR;class nL{constructor(e,t,n,i){this.state=e,this.pos=t,this.explicit=n,this.view=i,this.abortListeners=[],this.abortOnDocChange=!1}tokenBefore(e){let t=KR(this.state).resolveInner(this.pos,-1);for(;t&&e.indexOf(t.name)<0;)t=t.parent;return t?{from:t.from,to:this.pos,text:this.state.sliceDoc(t.from,this.pos),type:t.type}:null}matchBefore(e){let t=this.state.doc.lineAt(this.pos),n=Math.max(t.from,this.pos-250),i=t.text.slice(n-t.from,this.pos-t.from),o=i.search(aL(e,!1));return o<0?null:{from:n+o,to:this.pos,text:i.slice(o)}}get aborted(){return null==this.abortListeners}addEventListener(e,t,n){"abort"==e&&this.abortListeners&&(this.abortListeners.push(t),n&&n.onDocChange&&(this.abortOnDocChange=!0))}}function iL(e){let t=Object.keys(e).join(""),n=/\w/.test(t);return n&&(t=t.replace(/\w/g,"")),`[${n?"\\w":""}${t.replace(/[^\w\s]/g,"\\$&")}]`}function oL(e){let t=e.map((e=>"string"==typeof e?{label:e}:e)),[n,i]=t.every((e=>/^\w+$/.test(e.label)))?[/\w*$/,/\w+$/]:function(e){let t=Object.create(null),n=Object.create(null);for(let{label:i}of e){t[i[0]]=!0;for(let e=1;e{let o=e.matchBefore(i);return o||e.explicit?{from:o?o.from:e.pos,options:t,validFor:n}:null}}class rL{constructor(e,t,n,i){this.completion=e,this.source=t,this.match=n,this.score=i}}function sL(e){return e.selection.main.from}function aL(e,t){var n;let{source:i}=e,o=t&&"^"!=i[0],r="$"!=i[i.length-1];return o||r?new RegExp(`${o?"^":""}(?:${i})${r?"$":""}`,null!==(n=e.flags)&&void 0!==n?n:e.ignoreCase?"i":""):e}const lL=iP.define(),cL=new WeakMap;function hL(e){if(!Array.isArray(e))return e;let t=cL.get(e);return t||cL.set(e,t=oL(e)),t}const uL=sP.define(),pL=sP.define();class dL{constructor(e){this.pattern=e,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[],this.score=0,this.matched=[];for(let t=0;t=48&&l<=57||l>=97&&l<=122?2:l>=65&&l<=90?1:0:(y=yO(l))!=y.toLowerCase()?1:y!=y.toUpperCase()?2:0;(!i||1==b&&m||0==v&&0!=b)&&(t[h]==l||n[h]==l&&(u=!0)?r[h++]=i:r.length&&(g=!1)),v=b,i+=bO(l)}return h==a&&0==r[0]&&g?this.result((u?-200:0)-100,r,e):p==a&&0==d?this.ret(-200-e.length+(f==e.length?0:-100),[0,f]):s>-1?this.ret(-700-e.length,[s,s+this.pattern.length]):p==a?this.ret(-900-e.length,[d,f]):h==a?this.result((u?-200:0)-100-700+(g?0:-1100),r,e):2==t.length?null:this.result((i[0]?-700:0)-200-1100,i,e)}result(e,t,n){let i=[],o=0;for(let e of t){let t=e+(this.astral?bO(vO(n,e)):1);o&&i[o-1]==e?i[o-1]=t:(i[o++]=e,i[o++]=t)}return this.ret(e-n.length,i)}}class fL{constructor(e){this.pattern=e,this.matched=[],this.score=0,this.folded=e.toLowerCase()}match(e){if(e.lengthyP(e,{activateOnTyping:!0,activateOnCompletion:()=>!1,activateOnTypingDelay:100,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],positionInfo:vL,filterStrict:!1,compareCompletions:(e,t)=>e.label.localeCompare(t.label),interactionDelay:75,updateSyncTime:100},{defaultKeymap:(e,t)=>e&&t,closeOnBlur:(e,t)=>e&&t,icons:(e,t)=>e&&t,tooltipClass:(e,t)=>n=>gL(e(n),t(n)),optionClass:(e,t)=>n=>gL(e(n),t(n)),addToOptions:(e,t)=>e.concat(t),filterStrict:(e,t)=>e||t})});function gL(e,t){return e?t?e+" "+t:e:t}function vL(e,t,n,i,o,r){let s,a,l=e.textDirection==aA.RTL,c=l,h=!1,u="top",p=t.left-o.left,d=o.right-t.right,f=i.right-i.left,m=i.bottom-i.top;if(c&&p=m||e>t.top?s=n.bottom-t.top:(u="bottom",s=t.bottom-n.top)}return{style:`${u}: ${s/((t.bottom-t.top)/r.offsetHeight)}px; max-width: ${a/((t.right-t.left)/r.offsetWidth)}px`,class:"cm-completionInfo-"+(h?l?"left-narrow":"right-narrow":c?"left":"right")}}function yL(e,t,n){if(e<=n)return{from:0,to:e};if(t<0&&(t=0),t<=e>>1){let e=Math.floor(t/n);return{from:e*n,to:(e+1)*n}}let i=Math.floor((e-t)/n);return{from:e-(i+1)*n,to:e-i*n}}class bL{constructor(e,t,n){this.view=e,this.stateField=t,this.applyCompletion=n,this.info=null,this.infoDestroy=null,this.placeInfoReq={read:()=>this.measureInfo(),write:e=>this.placeInfo(e),key:this},this.space=null,this.currentClass="";let i=e.state.field(t),{options:o,selected:r}=i.open,s=e.state.facet(mL);this.optionContent=function(e){let t=e.addToOptions.slice();return e.icons&&t.push({render(e){let t=document.createElement("div");return t.classList.add("cm-completionIcon"),e.type&&t.classList.add(...e.type.split(/\s+/g).map((e=>"cm-completionIcon-"+e))),t.setAttribute("aria-hidden","true"),t},position:20}),t.push({render(e,t,n,i){let o=document.createElement("span");o.className="cm-completionLabel";let r=e.displayLabel||e.label,s=0;for(let e=0;es&&o.appendChild(document.createTextNode(r.slice(s,t)));let a=o.appendChild(document.createElement("span"));a.appendChild(document.createTextNode(r.slice(t,n))),a.className="cm-completionMatchedText",s=n}return se.position-t.position)).map((e=>e.render))}(s),this.optionClass=s.optionClass,this.tooltipClass=s.tooltipClass,this.range=yL(o.length,r,s.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.updateTooltipClass(e.state),this.dom.addEventListener("mousedown",(n=>{let{options:i}=e.state.field(t).open;for(let t,o=n.target;o&&o!=this.dom;o=o.parentNode)if("LI"==o.nodeName&&(t=/-(\d+)$/.exec(o.id))&&+t[1]{let n=e.state.field(this.stateField,!1);n&&n.tooltip&&e.state.facet(mL).closeOnBlur&&t.relatedTarget!=e.contentDOM&&e.dispatch({effects:pL.of(null)})})),this.showOptions(o,i.id)}mount(){this.updateSel()}showOptions(e,t){this.list&&this.list.remove(),this.list=this.dom.appendChild(this.createListBox(e,t,this.range)),this.list.addEventListener("scroll",(()=>{this.info&&this.view.requestMeasure(this.placeInfoReq)}))}update(e){var t;let n=e.state.field(this.stateField),i=e.startState.field(this.stateField);if(this.updateTooltipClass(e.state),n!=i){let{options:o,selected:r,disabled:s}=n.open;i.open&&i.open.options==o||(this.range=yL(o.length,r,e.state.facet(mL).maxRenderedOptions),this.showOptions(o,n.id)),this.updateSel(),s!=(null===(t=i.open)||void 0===t?void 0:t.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!s)}}updateTooltipClass(e){let t=this.tooltipClass(e);if(t!=this.currentClass){for(let e of this.currentClass.split(" "))e&&this.dom.classList.remove(e);for(let e of t.split(" "))e&&this.dom.classList.add(e);this.currentClass=t}}positioned(e){this.space=e,this.info&&this.view.requestMeasure(this.placeInfoReq)}updateSel(){let e=this.view.state.field(this.stateField),t=e.open;if((t.selected>-1&&t.selected=this.range.to)&&(this.range=yL(t.options.length,t.selected,this.view.state.facet(mL).maxRenderedOptions),this.showOptions(t.options,e.id)),this.updateSelectedOption(t.selected)){this.destroyInfo();let{completion:n}=t.options[t.selected],{info:i}=n;if(!i)return;let o="string"==typeof i?document.createTextNode(i):i(n);if(!o)return;"then"in o?o.then((t=>{t&&this.view.state.field(this.stateField,!1)==e&&this.addInfoPane(t,n)})).catch((e=>FA(this.view.state,e,"completion info"))):this.addInfoPane(o,n)}}addInfoPane(e,t){this.destroyInfo();let n=this.info=document.createElement("div");if(n.className="cm-tooltip cm-completionInfo",null!=e.nodeType)n.appendChild(e),this.infoDestroy=null;else{let{dom:t,destroy:i}=e;n.appendChild(t),this.infoDestroy=i||null}this.dom.appendChild(n),this.view.requestMeasure(this.placeInfoReq)}updateSelectedOption(e){let t=null;for(let n=this.list.firstChild,i=this.range.from;n;n=n.nextSibling,i++)"LI"==n.nodeName&&n.id?i==e?n.hasAttribute("aria-selected")||(n.setAttribute("aria-selected","true"),t=n):n.hasAttribute("aria-selected")&&n.removeAttribute("aria-selected"):i--;return t&&function(e,t){let n=e.getBoundingClientRect(),i=t.getBoundingClientRect(),o=n.height/e.offsetHeight;i.topn.bottom&&(e.scrollTop+=(i.bottom-n.bottom)/o)}(this.list,t),t}measureInfo(){let e=this.dom.querySelector("[aria-selected]");if(!e||!this.info)return null;let t=this.dom.getBoundingClientRect(),n=this.info.getBoundingClientRect(),i=e.getBoundingClientRect(),o=this.space;if(!o){let e=this.dom.ownerDocument.defaultView||window;o={left:0,top:0,right:e.innerWidth,bottom:e.innerHeight}}return i.top>Math.min(o.bottom,t.bottom)-10||i.bottomn.from||0==n.from)&&(o=e,"string"!=typeof l&&l.header?i.appendChild(l.header(l)):i.appendChild(document.createElement("completion-section")).textContent=e)}const c=i.appendChild(document.createElement("li"));c.id=t+"-"+r,c.setAttribute("role","option");let h=this.optionClass(s);h&&(c.className=h);for(let e of this.optionContent){let t=e(s,this.view.state,this.view,a);t&&c.appendChild(t)}}return n.from&&i.classList.add("cm-completionListIncompleteTop"),n.tonew bL(n,e,t)}function xL(e){return 100*(e.boost||0)+(e.apply?10:0)+(e.info?5:0)+(e.type?1:0)}class _L{constructor(e,t,n,i,o,r){this.options=e,this.attrs=t,this.tooltip=n,this.timestamp=i,this.selected=o,this.disabled=r}setSelected(e,t){return e==this.selected||e>=this.options.length?this:new _L(this.options,CL(t,e),this.tooltip,this.timestamp,e,this.disabled)}static build(e,t,n,i,o){let r=function(e,t){let n=[],i=null,o=e=>{n.push(e);let{section:t}=e.completion;if(t){i||(i=[]);let e="string"==typeof t?t:t.name;i.some((t=>t.name==e))||i.push("string"==typeof t?{name:e}:t)}},r=t.facet(mL);for(let i of e)if(i.hasResult()){let e=i.result.getMatch;if(!1===i.result.filter)for(let t of i.result.options)o(new rL(t,i.source,e?e(t):[],1e9-n.length));else{let n,s=t.sliceDoc(i.from,i.to),a=r.filterStrict?new fL(s):new dL(s);for(let t of i.result.options)if(n=a.match(t.label)){let r=t.displayLabel?e?e(t,n.matched):[]:n.matched;o(new rL(t,i.source,r,n.score+(t.boost||0)))}}}if(i){let e=Object.create(null),t=0,o=(e,t)=>{var n,i;return(null!==(n=e.rank)&&void 0!==n?n:1e9)-(null!==(i=t.rank)&&void 0!==i?i:1e9)||(e.namet.score-e.score||l(e.completion,t.completion)))){let t=e.completion;!a||a.label!=t.label||a.detail!=t.detail||null!=a.type&&null!=t.type&&a.type!=t.type||a.apply!=t.apply||a.boost!=t.boost?s.push(e):xL(e.completion)>xL(a)&&(s[s.length-1]=e),a=e.completion}return s}(e,t);if(!r.length)return i&&e.some((e=>1==e.state))?new _L(i.options,i.attrs,i.tooltip,i.timestamp,i.selected,!0):null;let s=t.facet(mL).selectOnOpen?0:-1;if(i&&i.selected!=s&&-1!=i.selected){let e=i.options[i.selected].completion;for(let t=0;tt.hasResult()?Math.min(e,t.from):e),1e8),create:LL,above:o.aboveCursor},i?i.timestamp:Date.now(),s,!1)}map(e){return new _L(this.options,this.attrs,Object.assign(Object.assign({},this.tooltip),{pos:e.mapPos(this.tooltip.pos)}),this.timestamp,this.selected,this.disabled)}}class EL{constructor(e,t,n){this.active=e,this.id=t,this.open=n}static start(){return new EL(OL,"cm-ac-"+Math.floor(2e6*Math.random()).toString(36),null)}update(e){let{state:t}=e,n=t.facet(mL),i=(n.override||t.languageDataAt("autocomplete",sL(t)).map(hL)).map((t=>{let i=this.active.find((e=>e.source==t))||new ML(t,this.active.some((e=>0!=e.state))?1:0);return i.update(e,n)}));i.length==this.active.length&&i.every(((e,t)=>e==this.active[t]))&&(i=this.active);let o=this.open;o&&e.docChanged&&(o=o.map(e.changes)),e.selection||i.some((t=>t.hasResult()&&e.changes.touchesRange(t.from,t.to)))||!function(e,t){if(e==t)return!0;for(let n=0,i=0;;){for(;n1==e.state))&&(o=null),!o&&i.every((e=>1!=e.state))&&i.some((e=>e.hasResult()))&&(i=i.map((e=>e.hasResult()?new ML(e.source,0):e)));for(let t of e.effects)t.is(BL)&&(o=o&&o.setSelected(t.value,this.id));return i==this.active&&o==this.open?this:new EL(i,this.id,o)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:this.active.length?kL:SL}}const kL={"aria-autocomplete":"list"},SL={};function CL(e,t){let n={"aria-autocomplete":"list","aria-haspopup":"listbox","aria-controls":e};return t>-1&&(n["aria-activedescendant"]=e+"-"+t),n}const OL=[];function PL(e,t){if(e.isUserEvent("input.complete")){let n=e.annotation(lL);if(n&&t.activateOnCompletion(n))return 12}let n=e.isUserEvent("input.type");return n&&t.activateOnTyping?5:n?1:e.isUserEvent("delete.backward")?2:e.selection?8:e.docChanged?16:0}class ML{constructor(e,t,n=-1){this.source=e,this.state=t,this.explicitPos=n}hasResult(){return!1}update(e,t){let n=PL(e,t),i=this;(8&n||16&n&&this.touches(e))&&(i=new ML(i.source,0)),4&n&&0==i.state&&(i=new ML(this.source,1)),i=i.updateFor(e,n);for(let t of e.effects)if(t.is(uL))i=new ML(i.source,1,t.value?sL(e.state):-1);else if(t.is(pL))i=new ML(i.source,0);else if(t.is(TL))for(let e of t.value)e.source==i.source&&(i=e);return i}updateFor(e,t){return this.map(e.changes)}map(e){return e.empty||this.explicitPos<0?this:new ML(this.source,this.state,e.mapPos(this.explicitPos))}touches(e){return e.changes.touchesRange(sL(e.state))}}class AL extends ML{constructor(e,t,n,i,o){super(e,2,t),this.result=n,this.from=i,this.to=o}hasResult(){return!0}updateFor(e,t){var n;if(!(3&t))return this.map(e.changes);let i=this.result;i.map&&!e.changes.empty&&(i=i.map(i,e.changes));let o=e.changes.mapPos(this.from),r=e.changes.mapPos(this.to,1),s=sL(e.state);if((this.explicitPos<0?s<=o:sr||!i||2&t&&sL(e.startState)==this.from)return new ML(this.source,4&t?1:0);let a=this.explicitPos<0?-1:e.changes.mapPos(this.explicitPos);return function(e,t,n,i){if(!e)return!1;let o=t.sliceDoc(n,i);return"function"==typeof e?e(o,n,i,t):aL(e,!0).test(o)}(i.validFor,e.state,o,r)?new AL(this.source,a,i,o,r):i.update&&(i=i.update(i,o,r,new nL(e.state,s,a>=0)))?new AL(this.source,a,i,i.from,null!==(n=i.to)&&void 0!==n?n:sL(e.state)):new ML(this.source,1,a)}map(e){return e.empty?this:(this.result.map?this.result.map(this.result,e):this.result)?new AL(this.source,this.explicitPos<0?-1:e.mapPos(this.explicitPos),this.result,e.mapPos(this.from),e.mapPos(this.to,1)):new ML(this.source,0)}touches(e){return e.changes.touchesRange(this.from,this.to)}}const TL=sP.define({map:(e,t)=>e.map((e=>e.map(t)))}),BL=sP.define(),RL=jO.define({create:()=>EL.start(),update:(e,t)=>e.update(t),provide:e=>[uR.from(e,(e=>e.tooltip)),$B.contentAttributes.from(e,(e=>e.attrs))]});function DL(e,t){const n=t.completion.apply||t.completion.label;let i=e.state.field(RL).active.find((e=>e.source==t.source));return i instanceof AL&&("string"==typeof n?e.dispatch(Object.assign(Object.assign({},function(e,t,n,i){let{main:o}=e.selection,r=n-o.from,s=i-o.from;return Object.assign(Object.assign({},e.changeByRange((a=>a!=o&&n!=i&&e.sliceDoc(a.from+r,a.from+s)!=e.sliceDoc(n,i)?{range:a}:{changes:{from:a.from+r,to:i==o.from?a.to:a.from+s,insert:t},range:TO.cursor(a.from+r+t.length)}))),{scrollIntoView:!0,userEvent:"input.complete"})}(e.state,n,i.from,i.to)),{annotations:lL.of(t.completion)})):n(e,t.completion,i.from,i.to),!0)}const LL=wL(RL,DL);function NL(e,t="option"){return n=>{let i=n.state.field(RL,!1);if(!i||!i.open||i.open.disabled||Date.now()-i.open.timestamp-1?i.open.selected+r*(e?1:-1):e?0:s-1;return a<0?a="page"==t?0:s-1:a>=s&&(a="page"==t?s-1:0),n.dispatch({effects:BL.of(a)}),!0}}class zL{constructor(e,t){this.active=e,this.context=t,this.time=Date.now(),this.updates=[],this.done=void 0}}const IL=HA.fromClass(class{constructor(e){this.view=e,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.pendingStart=!1,this.composing=0;for(let t of e.state.field(RL).active)1==t.state&&this.startQuery(t)}update(e){let t=e.state.field(RL),n=e.state.facet(mL);if(!e.selectionSet&&!e.docChanged&&e.startState.field(RL)==t)return;let i=e.transactions.some((e=>{let t=PL(e,n);return 8&t||(e.selection||e.docChanged)&&!(3&t)}));for(let t=0;t50&&Date.now()-n.time>1e3){for(let e of n.context.abortListeners)try{e()}catch(e){FA(this.view.state,e)}n.context.abortListeners=null,this.running.splice(t--,1)}else n.updates.push(...e.transactions)}this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),e.transactions.some((e=>e.effects.some((e=>e.is(uL)))))&&(this.pendingStart=!0);let o=this.pendingStart?50:n.activateOnTypingDelay;if(this.debounceUpdate=t.active.some((e=>1==e.state&&!this.running.some((t=>t.active.source==e.source))))?setTimeout((()=>this.startUpdate()),o):-1,0!=this.composing)for(let t of e.transactions)t.isUserEvent("input.type")?this.composing=2:2==this.composing&&t.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1,this.pendingStart=!1;let{state:e}=this.view,t=e.field(RL);for(let e of t.active)1!=e.state||this.running.some((t=>t.active.source==e.source))||this.startQuery(e)}startQuery(e){let{state:t}=this.view,n=sL(t),i=new nL(t,n,e.explicitPos==n,this.view),o=new zL(e,i);this.running.push(o),Promise.resolve(e.source(i)).then((e=>{o.context.aborted||(o.done=e||null,this.scheduleAccept())}),(e=>{this.view.dispatch({effects:pL.of(null)}),FA(this.view.state,e)}))}scheduleAccept(){this.running.every((e=>void 0!==e.done))?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout((()=>this.accept()),this.view.state.facet(mL).updateSyncTime))}accept(){var e;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let t=[],n=this.view.state.facet(mL);for(let i=0;ie.source==o.active.source));if(r&&1==r.state)if(null==o.done){let e=new ML(o.active.source,0);for(let t of o.updates)e=e.update(t,n);1!=e.state&&t.push(e)}else this.startQuery(r)}t.length&&this.view.dispatch({effects:TL.of(t)})}},{eventHandlers:{blur(e){let t=this.view.state.field(RL,!1);if(t&&t.tooltip&&this.view.state.facet(mL).closeOnBlur){let n=t.open&&yR(this.view,t.open.tooltip);n&&n.dom.contains(e.relatedTarget)||setTimeout((()=>this.view.dispatch({effects:pL.of(null)})),10)}},compositionstart(){this.composing=1},compositionend(){3==this.composing&&setTimeout((()=>this.view.dispatch({effects:uL.of(!1)})),20),this.composing=0}}}),FL="object"==typeof navigator&&/Win/.test(navigator.platform),$L=HO.highest($B.domEventHandlers({keydown(e,t){let n=t.state.field(RL,!1);if(!n||!n.open||n.open.disabled||n.open.selected<0||e.key.length>1||e.ctrlKey&&(!FL||!e.altKey)||e.metaKey)return!1;let i=n.open.options[n.open.selected],o=n.active.find((e=>e.source==i.source)),r=i.completion.commitCharacters||o.result.commitCharacters;return r&&r.indexOf(e.key)>-1&&DL(t,i),!1}})),jL=$B.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li, & > completion-section":{padding:"1px 3px",lineHeight:1.2},"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer"},"& > completion-section":{display:"list-item",borderBottom:"1px solid silver",paddingLeft:"0.5em",opacity:.7}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"···"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box",whiteSpace:"pre-line"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:"30px"},".cm-completionInfo.cm-completionInfo-right-narrow":{left:"30px"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'ƒ'"}},".cm-completionIcon-class":{"&:after":{content:"'○'"}},".cm-completionIcon-interface":{"&:after":{content:"'◌'"}},".cm-completionIcon-variable":{"&:after":{content:"'𝑥'"}},".cm-completionIcon-constant":{"&:after":{content:"'𝐶'"}},".cm-completionIcon-type":{"&:after":{content:"'𝑡'"}},".cm-completionIcon-enum":{"&:after":{content:"'∪'"}},".cm-completionIcon-property":{"&:after":{content:"'□'"}},".cm-completionIcon-keyword":{"&:after":{content:"'🔑︎'"}},".cm-completionIcon-namespace":{"&:after":{content:"'▢'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}});class qL{constructor(e,t,n,i){this.field=e,this.line=t,this.from=n,this.to=i}}class HL{constructor(e,t,n){this.field=e,this.from=t,this.to=n}map(e){let t=e.mapPos(this.from,-1,xO.TrackDel),n=e.mapPos(this.to,1,xO.TrackDel);return null==t||null==n?null:new HL(this.field,t,n)}}class VL{constructor(e,t){this.lines=e,this.fieldPositions=t}instantiate(e,t){let n=[],i=[t],o=e.doc.lineAt(t),r=/^\s*/.exec(o.text)[0];for(let o of this.lines){if(n.length){let n=r,s=/^\t*/.exec(o)[0].length;for(let t=0;tnew HL(e.field,i[e.line]+e.from,i[e.line]+e.to)));return{text:n,ranges:s}}static parse(e){let t,n=[],i=[],o=[];for(let r of e.split(/\r\n?|\n/)){for(;t=/[#$]\{(?:(\d+)(?::([^}]*))?|((?:\\[{}]|[^}])*))\}/.exec(r);){let e=t[1]?+t[1]:null,s=t[2]||t[3]||"",a=-1,l=s.replace(/\\[{}]/g,(e=>e[1]));for(let t=0;t=a&&e.field++}o.push(new qL(a,i.length,t.index,t.index+l.length)),r=r.slice(0,t.index)+s+r.slice(t.index+t[0].length)}r=r.replace(/\\([{}])/g,((e,t,n)=>{for(let e of o)e.line==i.length&&e.from>n&&(e.from--,e.to--);return t})),i.push(r)}return new VL(i,o)}}let WL=UM.widget({widget:new class extends QM{toDOM(){let e=document.createElement("span");return e.className="cm-snippetFieldPosition",e}ignoreEvent(){return!1}}}),GL=UM.mark({class:"cm-snippetField"});class QL{constructor(e,t){this.ranges=e,this.active=t,this.deco=UM.set(e.map((e=>(e.from==e.to?WL:GL).range(e.from,e.to))))}map(e){let t=[];for(let n of this.ranges){let i=n.map(e);if(!i)return null;t.push(i)}return new QL(t,this.active)}selectionInsideField(e){return e.ranges.every((e=>this.ranges.some((t=>t.field==this.active&&t.from<=e.from&&t.to>=e.to))))}}const XL=sP.define({map:(e,t)=>e&&e.map(t)}),UL=sP.define(),YL=jO.define({create:()=>null,update(e,t){for(let n of t.effects){if(n.is(XL))return n.value;if(n.is(UL)&&e)return new QL(e.ranges,n.value)}return e&&t.docChanged&&(e=e.map(t.changes)),e&&t.selection&&!e.selectionInsideField(t.selection)&&(e=null),e},provide:e=>$B.decorations.from(e,(e=>e?e.deco:UM.none))});function KL(e,t){return TO.create(e.filter((e=>e.field==t)).map((e=>TO.range(e.from,e.to))))}function ZL(e){let t=VL.parse(e);return(e,n,i,o)=>{let{text:r,ranges:s}=t.instantiate(e.state,i),a={changes:{from:i,to:o,insert:ZC.of(r)},scrollIntoView:!0,annotations:n?[lL.of(n),aP.userEvent.of("input.complete")]:void 0};if(s.length&&(a.selection=KL(s,0)),s.some((e=>e.field>0))){let t=new QL(s,0),n=a.effects=[XL.of(t)];void 0===e.state.field(YL,!1)&&n.push(sP.appendConfig.of([YL,nN,oN,jL]))}e.dispatch(e.state.update(a))}}function JL(e){return({state:t,dispatch:n})=>{let i=t.field(YL,!1);if(!i||e<0&&0==i.active)return!1;let o=i.active+e,r=e>0&&!i.ranges.some((t=>t.field==o+e));return n(t.update({selection:KL(i.ranges,o),effects:XL.of(r?null:new QL(i.ranges,o)),scrollIntoView:!0})),!0}}const eN=[{key:"Tab",run:JL(1),shift:JL(-1)},{key:"Escape",run:({state:e,dispatch:t})=>!!e.field(YL,!1)&&(t(e.update({effects:XL.of(null)})),!0)}],tN=DO.define({combine:e=>e.length?e[0]:eN}),nN=HO.highest(XB.compute([tN],(e=>e.facet(tN))));function iN(e,t){return Object.assign(Object.assign({},t),{apply:ZL(e)})}const oN=$B.domEventHandlers({mousedown(e,t){let n,i=t.state.field(YL,!1);if(!i||null==(n=t.posAtCoords({x:e.clientX,y:e.clientY})))return!1;let o=i.ranges.find((e=>e.from<=n&&e.to>=n));return!(!o||o.field==i.active||(t.dispatch({selection:KL(i.ranges,o.field),effects:XL.of(i.ranges.some((e=>e.field>o.field))?new QL(i.ranges,o.field):null),scrollIntoView:!0}),0))}}),rN={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},sN=sP.define({map(e,t){let n=t.mapPos(e,-1,xO.TrackAfter);return null==n?void 0:n}}),aN=new class extends bP{};aN.startSide=1,aN.endSide=-1;const lN=jO.define({create:()=>EP.empty,update(e,t){if(e=e.map(t.changes),t.selection){let n=t.state.doc.lineAt(t.selection.main.head);e=e.update({filter:e=>e>=n.from&&e<=n.to})}for(let n of t.effects)n.is(sN)&&(e=e.update({add:[aN.range(n.value,n.value+1)]}));return e}});function cN(){return[dN,lN]}const hN="()[]{}<>";function uN(e){for(let t=0;t<8;t+=2)if(hN.charCodeAt(t)==e)return hN.charAt(t+1);return yO(e<128?e:e+1)}const pN="object"==typeof navigator&&/Android\b/.test(navigator.userAgent),dN=$B.inputHandler.of(((e,t,n,i)=>{if((pN?e.composing:e.compositionStarted)||e.state.readOnly)return!1;let o=e.state.selection.main;if(i.length>2||2==i.length&&1==bO(vO(i,0))||t!=o.from||n!=o.to)return!1;let r=function(e,t){let n=function(e,t){return e.languageDataAt("closeBrackets",t)[0]||rN}(e,e.selection.main.head),i=n.brackets||rN.brackets;for(let o of i){let r=uN(vO(o,0));if(t==o)return r==o?yN(e,o,i.indexOf(o+o+o)>-1,n):gN(e,o,r,n.before||rN.before);if(t==r&&fN(e,e.selection.main.from))return vN(e,0,r)}return null}(e.state,i);return!!r&&(e.dispatch(r),!0)}));function fN(e,t){let n=!1;return e.field(lN).between(0,e.doc.length,(e=>{e==t&&(n=!0)})),n}function mN(e,t){let n=e.sliceString(t,t+2);return n.slice(0,bO(vO(n,0)))}function gN(e,t,n,i){let o=null,r=e.changeByRange((r=>{if(!r.empty)return{changes:[{insert:t,from:r.from},{insert:n,from:r.to}],effects:sN.of(r.to+t.length),range:TO.range(r.anchor+t.length,r.head+t.length)};let s=mN(e.doc,r.head);return!s||/\s/.test(s)||i.indexOf(s)>-1?{changes:{insert:t+n,from:r.head},effects:sN.of(r.head+t.length),range:TO.cursor(r.head+t.length)}:{range:o=r}}));return o?null:e.update(r,{scrollIntoView:!0,userEvent:"input.type"})}function vN(e,t,n){let i=null,o=e.changeByRange((t=>t.empty&&mN(e.doc,t.head)==n?{changes:{from:t.head,to:t.head+n.length,insert:n},range:TO.cursor(t.head+n.length)}:i={range:t}));return i?null:e.update(o,{scrollIntoView:!0,userEvent:"input.type"})}function yN(e,t,n,i){let o=i.stringPrefixes||rN.stringPrefixes,r=null,s=e.changeByRange((i=>{if(!i.empty)return{changes:[{insert:t,from:i.from},{insert:t,from:i.to}],effects:sN.of(i.to+t.length),range:TO.range(i.anchor+t.length,i.head+t.length)};let s,a=i.head,l=mN(e.doc,a);if(l==t){if(bN(e,a))return{changes:{insert:t+t,from:a},effects:sN.of(a+t.length),range:TO.cursor(a+t.length)};if(fN(e,a)){let i=n&&e.sliceDoc(a,a+3*t.length)==t+t+t?t+t+t:t;return{changes:{from:a,to:a+i.length,insert:i},range:TO.cursor(a+i.length)}}}else{if(n&&e.sliceDoc(a-2*t.length,a)==t+t&&(s=wN(e,a-2*t.length,o))>-1&&bN(e,s))return{changes:{insert:t+t+t+t,from:a},effects:sN.of(a+t.length),range:TO.cursor(a+t.length)};if(e.charCategorizer(a)(l)!=fP.Word&&wN(e,a,o)>-1&&!function(e,t,n,i){let o=KR(e).resolveInner(t,-1),r=i.reduce(((e,t)=>Math.max(e,t.length)),0);for(let s=0;s<5;s++){let s=e.sliceDoc(o.from,Math.min(o.to,o.from+n.length+r)),a=s.indexOf(n);if(!a||a>-1&&i.indexOf(s.slice(0,a))>-1){let t=o.firstChild;for(;t&&t.from==o.from&&t.to-t.from>n.length+a;){if(e.sliceDoc(t.to-n.length,t.to)==n)return!1;t=t.firstChild}return!0}let l=o.to==t&&o.parent;if(!l)break;o=l}return!1}(e,a,t,o))return{changes:{insert:t+t,from:a},effects:sN.of(a+t.length),range:TO.cursor(a+t.length)}}return{range:r=i}}));return r?null:e.update(s,{scrollIntoView:!0,userEvent:"input.type"})}function bN(e,t){let n=KR(e).resolveInner(t+1);return n.parent&&n.from==t}function wN(e,t,n){let i=e.charCategorizer(t);if(i(e.sliceDoc(t-1,t))!=fP.Word)return t;for(let o of n){let n=t-o.length;if(e.sliceDoc(n,t)==o&&i(e.sliceDoc(n-1,n))!=fP.Word)return n}return-1}function xN(e={}){return[$L,RL,mL.of(e),IL,EN,jL]}const _N=[{key:"Ctrl-Space",run:e=>!!e.state.field(RL,!1)&&(e.dispatch({effects:uL.of(!0)}),!0)},{key:"Escape",run:e=>{let t=e.state.field(RL,!1);return!(!t||!t.active.some((e=>0!=e.state))||(e.dispatch({effects:pL.of(null)}),0))}},{key:"ArrowDown",run:NL(!0)},{key:"ArrowUp",run:NL(!1)},{key:"PageDown",run:NL(!0,"page")},{key:"PageUp",run:NL(!1,"page")},{key:"Enter",run:e=>{let t=e.state.field(RL,!1);return!(e.state.readOnly||!t||!t.open||t.open.selected<0||t.open.disabled||Date.now()-t.open.timestampe.facet(mL).defaultKeymap?[_N]:[])));function kN(e,t){return({state:n,dispatch:i})=>{if(n.readOnly)return!1;let o=e(t,n);return!!o&&(i(n.update(o)),!0)}}const SN=kN(TN,0),CN=kN(AN,0),ON=kN(((e,t)=>AN(e,t,function(e){let t=[];for(let n of e.selection.ranges){let i=e.doc.lineAt(n.from),o=n.to<=i.to?i:e.doc.lineAt(n.to),r=t.length-1;r>=0&&t[r].to>i.from?t[r].to=o.to:t.push({from:i.from+/^\s*/.exec(i.text)[0].length,to:o.to})}return t}(t))),0);function PN(e,t){let n=e.languageDataAt("commentTokens",t);return n.length?n[0]:{}}const MN=50;function AN(e,t,n=t.selection.ranges){let i=n.map((e=>PN(t,e.from).block));if(!i.every((e=>e)))return null;let o=n.map(((e,n)=>function(e,{open:t,close:n},i,o){let r,s,a=e.sliceDoc(i-MN,i),l=e.sliceDoc(o,o+MN),c=/\s*$/.exec(a)[0].length,h=/^\s*/.exec(l)[0].length,u=a.length-c;if(a.slice(u-t.length,u)==t&&l.slice(h,h+n.length)==n)return{open:{pos:i-c,margin:c&&1},close:{pos:o+h,margin:h&&1}};o-i<=2*MN?r=s=e.sliceDoc(i,o):(r=e.sliceDoc(i,i+MN),s=e.sliceDoc(o-MN,o));let p=/^\s*/.exec(r)[0].length,d=/\s*$/.exec(s)[0].length,f=s.length-d-n.length;return r.slice(p,p+t.length)==t&&s.slice(f,f+n.length)==n?{open:{pos:i+p+t.length,margin:/\s/.test(r.charAt(p+t.length))?1:0},close:{pos:o-d-n.length,margin:/\s/.test(s.charAt(f-1))?1:0}}:null}(t,i[n],e.from,e.to)));if(2!=e&&!o.every((e=>e)))return{changes:t.changes(n.map(((e,t)=>o[t]?[]:[{from:e.from,insert:i[t].open+" "},{from:e.to,insert:" "+i[t].close}])))};if(1!=e&&o.some((e=>e))){let e=[];for(let t,n=0;no&&(e==r||r>l.from)){o=l.from;let e=/^\s*/.exec(l.text)[0].length,t=e==l.length,n=l.text.slice(e,e+a.length)==a?e:-1;ee.comment<0&&(!e.empty||e.single)))){let e=[];for(let{line:t,token:n,indent:o,empty:r,single:s}of i)!s&&r||e.push({from:t.from+o,insert:n+" "});let n=t.changes(e);return{changes:n,selection:t.selection.map(n,1)}}if(1!=e&&i.some((e=>e.comment>=0))){let e=[];for(let{line:t,comment:n,token:o}of i)if(n>=0){let i=t.from+n,r=i+o.length;" "==t.text[r-t.from]&&r++,e.push({from:i,to:r})}return{changes:e}}return null}const BN=iP.define(),RN=DO.define();class DN{constructor(e,t,n,i,o){this.changes=e,this.effects=t,this.mapped=n,this.startSelection=i,this.selectionsAfter=o}setSelAfter(e){return new DN(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,t,n;return{changes:null===(e=this.changes)||void 0===e?void 0:e.toJSON(),mapped:null===(t=this.mapped)||void 0===t?void 0:t.toJSON(),startSelection:null===(n=this.startSelection)||void 0===n?void 0:n.toJSON(),selectionsAfter:this.selectionsAfter.map((e=>e.toJSON()))}}static fromJSON(e){return new DN(e.changes&&EO.fromJSON(e.changes),[],e.mapped&&_O.fromJSON(e.mapped),e.startSelection&&TO.fromJSON(e.startSelection),e.selectionsAfter.map(TO.fromJSON))}static fromTransaction(e,t){let n=zN;for(let t of e.startState.facet(RN)){let i=t(e);i.length&&(n=n.concat(i))}return!n.length&&e.changes.empty?null:new DN(e.changes.invert(e.startState.doc),n,void 0,t||e.startState.selection,zN)}static selection(e){return new DN(void 0,zN,void 0,void 0,e)}}function LN(e,t,n,i){let o=t+1>n+20?t-n-1:0,r=e.slice(o,t);return r.push(i),r}function NN(e,t){return e.length?t.length?e.concat(t):e:t}const zN=[];function IN(e){let t=e[e.length-1],n=e.slice();return n[e.length-1]=t.setSelAfter(t.selectionsAfter.slice(0,t.selectionsAfter.length-1)),n}function FN(e,t){if(!e.length)return e;let n=e.length,i=zN;for(;n;){let o=$N(e[n-1],t,i);if(o.changes&&!o.changes.empty||o.effects.length){let t=e.slice(0,n);return t[n-1]=o,t}t=o.mapped,n--,i=o.selectionsAfter}return i.length?[DN.selection(i)]:zN}function $N(e,t,n){let i=NN(e.selectionsAfter.length?e.selectionsAfter.map((e=>e.map(t))):zN,n);if(!e.changes)return DN.selection(i);let o=e.changes.map(t),r=t.mapDesc(e.changes,!0),s=e.mapped?e.mapped.composeDesc(r):r;return new DN(o,sP.mapEffects(e.effects,t),s,e.startSelection.map(r),i)}const jN=/^(input\.type|delete)($|\.)/;class qN{constructor(e,t,n=0,i=void 0){this.done=e,this.undone=t,this.prevTime=n,this.prevUserEvent=i}isolate(){return this.prevTime?new qN(this.done,this.undone):this}addChanges(e,t,n,i,o){let r=this.done,s=r[r.length-1];return r=s&&s.changes&&!s.changes.empty&&e.changes&&(!n||jN.test(n))&&(!s.selectionsAfter.length&&t-this.prevTimen.push(e,t))),t.iterChangedRanges(((e,t,o,r)=>{for(let e=0;e=t&&o<=s&&(i=!0)}})),i}(s.changes,e.changes))||"input.type.compose"==n)?LN(r,r.length-1,i.minDepth,new DN(e.changes.compose(s.changes),NN(e.effects,s.effects),s.mapped,s.startSelection,zN)):LN(r,r.length,i.minDepth,e),new qN(r,zN,t,n)}addSelection(e,t,n,i){let o=this.done.length?this.done[this.done.length-1].selectionsAfter:zN;return o.length>0&&t-this.prevTimee.empty!=t.ranges[n].empty)).length}(o[o.length-1],e)?this:new qN(function(e,t){if(e.length){let n=e[e.length-1],i=n.selectionsAfter.slice(Math.max(0,n.selectionsAfter.length-200));return i.length&&i[i.length-1].eq(t)?e:(i.push(t),LN(e,e.length-1,1e9,n.setSelAfter(i)))}return[DN.selection([t])]}(this.done,e),this.undone,t,n)}addMapping(e){return new qN(FN(this.done,e),FN(this.undone,e),this.prevTime,this.prevUserEvent)}pop(e,t,n){let i=0==e?this.done:this.undone;if(0==i.length)return null;let o=i[i.length-1],r=o.selectionsAfter[0]||t.selection;if(n&&o.selectionsAfter.length)return t.update({selection:o.selectionsAfter[o.selectionsAfter.length-1],annotations:BN.of({side:e,rest:IN(i),selection:r}),userEvent:0==e?"select.undo":"select.redo",scrollIntoView:!0});if(o.changes){let n=1==i.length?zN:i.slice(0,i.length-1);return o.mapped&&(n=FN(n,o.mapped)),t.update({changes:o.changes,selection:o.startSelection,effects:o.effects,annotations:BN.of({side:e,rest:n,selection:r}),filter:!1,userEvent:0==e?"undo":"redo",scrollIntoView:!0})}return null}}function HN(e,t){return TO.create(e.ranges.map(t),e.mainIndex)}function VN(e,t){return e.update({selection:t,scrollIntoView:!0,userEvent:"select"})}function WN({state:e,dispatch:t},n){let i=HN(e.selection,n);return!i.eq(e.selection,!0)&&(t(VN(e,i)),!0)}function GN(e,t){return TO.cursor(t?e.to:e.from)}function QN(e,t){return WN(e,(n=>n.empty?e.moveByChar(n,t):GN(n,t)))}function XN(e){return e.textDirectionAt(e.state.selection.main.head)==aA.LTR}qN.empty=new qN(zN,zN);const UN=e=>QN(e,!XN(e)),YN=e=>QN(e,XN(e));function KN(e,t){return WN(e,(n=>n.empty?e.moveByGroup(n,t):GN(n,t)))}function ZN(e,t,n){if(t.type.prop(n))return!0;let i=t.to-t.from;return i&&(i>2||/[^\s,.;:]/.test(e.sliceDoc(t.from,t.to)))||t.firstChild}function JN(e,t,n){let i,o,r=KR(e).resolveInner(t.head),s=n?dS.closedBy:dS.openedBy;for(let i=t.head;;){let t=n?r.childAfter(i):r.childBefore(i);if(!t)break;ZN(e,t,s)?r=t:i=n?t.to:t.from}return o=r.type.prop(s)&&(i=n?QD(e,r.from,1):QD(e,r.to,-1))&&i.matched?n?i.end.to:i.end.from:n?r.to:r.from,TO.cursor(o,n?-1:1)}function ez(e,t){return WN(e,(n=>{if(!n.empty)return GN(n,t);let i=e.moveVertically(n,t);return i.head!=n.head?i:e.moveToLineBoundary(n,t)}))}"undefined"!=typeof Intl&&Intl.Segmenter;const tz=e=>ez(e,!1),nz=e=>ez(e,!0);function iz(e){let t,n=e.scrollDOM.clientHeightn.empty?e.moveVertically(n,t,i.height):GN(n,t)));if(r.eq(o.selection))return!1;if(i.selfScroll){let t=e.coordsAtPos(o.selection.main.head),s=e.scrollDOM.getBoundingClientRect(),a=s.top+i.marginTop,l=s.bottom-i.marginBottom;t&&t.top>a&&t.bottomoz(e,!1),sz=e=>oz(e,!0);function az(e,t,n){let i=e.lineBlockAt(t.head),o=e.moveToLineBoundary(t,n);if(o.head==t.head&&o.head!=(n?i.to:i.from)&&(o=e.moveToLineBoundary(t,n,!1)),!n&&o.head==i.from&&i.length){let n=/^\s*/.exec(e.state.sliceDoc(i.from,Math.min(i.from+100,i.to)))[0].length;n&&t.head!=i.from+n&&(o=TO.cursor(i.from+n))}return o}function lz(e,t){let n=HN(e.state.selection,(e=>{let n=t(e);return TO.range(e.anchor,n.head,n.goalColumn,n.bidiLevel||void 0)}));return!n.eq(e.state.selection)&&(e.dispatch(VN(e.state,n)),!0)}function cz(e,t){return lz(e,(n=>e.moveByChar(n,t)))}const hz=e=>cz(e,!XN(e)),uz=e=>cz(e,XN(e));function pz(e,t){return lz(e,(n=>e.moveByGroup(n,t)))}function dz(e,t){return lz(e,(n=>e.moveVertically(n,t)))}const fz=e=>dz(e,!1),mz=e=>dz(e,!0);function gz(e,t){return lz(e,(n=>e.moveVertically(n,t,iz(e).height)))}const vz=e=>gz(e,!1),yz=e=>gz(e,!0),bz=({state:e,dispatch:t})=>(t(VN(e,{anchor:0})),!0),wz=({state:e,dispatch:t})=>(t(VN(e,{anchor:e.doc.length})),!0),xz=({state:e,dispatch:t})=>(t(VN(e,{anchor:e.selection.main.anchor,head:0})),!0),_z=({state:e,dispatch:t})=>(t(VN(e,{anchor:e.selection.main.anchor,head:e.doc.length})),!0);function Ez(e,t){if(e.state.readOnly)return!1;let n="delete.selection",{state:i}=e,o=i.changeByRange((i=>{let{from:o,to:r}=i;if(o==r){let s=t(i);so&&(n="delete.forward",s=kz(e,s,!0)),o=Math.min(o,s),r=Math.max(r,s)}else o=kz(e,o,!1),r=kz(e,r,!0);return o==r?{range:i}:{changes:{from:o,to:r},range:TO.cursor(o,ot(e))))i.between(t,t,((e,i)=>{et&&(t=n?i:e)}));return t}const Sz=(e,t,n)=>Ez(e,(i=>{let o,r,s=i.from,{state:a}=e,l=a.doc.lineAt(s);if(n&&!t&&s>l.from&&sSz(e,!1,!0),Oz=e=>Sz(e,!0,!1),Pz=(e,t)=>Ez(e,(n=>{let i=n.head,{state:o}=e,r=o.doc.lineAt(i),s=o.charCategorizer(i);for(let e=null;;){if(i==(t?r.to:r.from)){i==n.head&&r.number!=(t?o.doc.lines:1)&&(i+=t?1:-1);break}let a=pO(r.text,i-r.from,t)+r.from,l=r.text.slice(Math.min(i,a)-r.from,Math.max(i,a)-r.from),c=s(l);if(null!=e&&c!=e)break;" "==l&&i==n.head||(e=c),i=a}return i})),Mz=e=>Pz(e,!1);function Az(e){let t=[],n=-1;for(let i of e.selection.ranges){let o=e.doc.lineAt(i.from),r=e.doc.lineAt(i.to);if(i.empty||i.to!=r.from||(r=e.doc.lineAt(i.to-1)),n>=o.number){let e=t[t.length-1];e.to=r.to,e.ranges.push(i)}else t.push({from:o.from,to:r.to,ranges:[i]});n=r.number+1}return t}function Tz(e,t,n){if(e.readOnly)return!1;let i=[],o=[];for(let t of Az(e)){if(n?t.to==e.doc.length:0==t.from)continue;let r=e.doc.lineAt(n?t.to+1:t.from-1),s=r.length+1;if(n){i.push({from:t.to,to:r.to},{from:t.from,insert:r.text+e.lineBreak});for(let n of t.ranges)o.push(TO.range(Math.min(e.doc.length,n.anchor+s),Math.min(e.doc.length,n.head+s)))}else{i.push({from:r.from,to:t.from},{from:t.to,insert:e.lineBreak+r.text});for(let e of t.ranges)o.push(TO.range(e.anchor-s,e.head-s))}}return!!i.length&&(t(e.update({changes:i,scrollIntoView:!0,selection:TO.create(o,e.selection.mainIndex),userEvent:"move.line"})),!0)}function Bz(e,t,n){if(e.readOnly)return!1;let i=[];for(let t of Az(e))n?i.push({from:t.from,insert:e.doc.slice(t.from,t.to)+e.lineBreak}):i.push({from:t.to,insert:e.lineBreak+e.doc.slice(t.from,t.to)});return t(e.update({changes:i,scrollIntoView:!0,userEvent:"input.copyline"})),!0}const Rz=Lz(!1),Dz=Lz(!0);function Lz(e){return({state:t,dispatch:n})=>{if(t.readOnly)return!1;let i=t.changeByRange((n=>{let{from:i,to:o}=n,r=t.doc.lineAt(i),s=!e&&i==o&&function(e,t){if(/\(\)|\[\]|\{\}/.test(e.sliceDoc(t-1,t+1)))return{from:t,to:t};let n,i=KR(e).resolveInner(t),o=i.childBefore(t),r=i.childAfter(t);return o&&r&&o.to<=t&&r.from>=t&&(n=o.type.prop(dS.closedBy))&&n.indexOf(r.name)>-1&&e.doc.lineAt(o.to).from==e.doc.lineAt(r.from).from&&!/\S/.test(e.sliceDoc(o.to,r.from))?{from:o.to,to:r.from}:null}(t,i);e&&(i=o=(o<=r.to?r:t.doc.lineAt(o)).to);let a=new dD(t,{simulateBreak:i,simulateDoubleBreak:!!s}),l=pD(a,i);for(null==l&&(l=LP(/^\s*/.exec(t.doc.lineAt(i).text)[0],t.tabSize));or.from&&i{let o=[];for(let r=i.from;r<=i.to;){let s=e.doc.lineAt(r);s.number>n&&(i.empty||i.to>s.from)&&(t(s,o,i),n=s.number),r=s.to+1}let r=e.changes(o);return{changes:o,range:TO.range(r.mapPos(i.anchor,1),r.mapPos(i.head,1))}}))}const zz=[{key:"Ctrl-b",run:UN,shift:hz,preventDefault:!0},{key:"Ctrl-f",run:YN,shift:uz},{key:"Ctrl-p",run:tz,shift:fz},{key:"Ctrl-n",run:nz,shift:mz},{key:"Ctrl-a",run:e=>WN(e,(t=>TO.cursor(e.lineBlockAt(t.head).from,1))),shift:e=>lz(e,(t=>TO.cursor(e.lineBlockAt(t.head).from)))},{key:"Ctrl-e",run:e=>WN(e,(t=>TO.cursor(e.lineBlockAt(t.head).to,-1))),shift:e=>lz(e,(t=>TO.cursor(e.lineBlockAt(t.head).to)))},{key:"Ctrl-d",run:Oz},{key:"Ctrl-h",run:Cz},{key:"Ctrl-k",run:e=>Ez(e,(t=>{let n=e.lineBlockAt(t.head).to;return t.head{if(e.readOnly)return!1;let n=e.changeByRange((e=>({changes:{from:e.from,to:e.to,insert:ZC.of(["",""])},range:TO.cursor(e.from)})));return t(e.update(n,{scrollIntoView:!0,userEvent:"input"})),!0}},{key:"Ctrl-t",run:({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=e.changeByRange((t=>{if(!t.empty||0==t.from||t.from==e.doc.length)return{range:t};let n=t.from,i=e.doc.lineAt(n),o=n==i.from?n-1:pO(i.text,n-i.from,!1)+i.from,r=n==i.to?n+1:pO(i.text,n-i.from,!0)+i.from;return{changes:{from:o,to:r,insert:e.doc.slice(n,r).append(e.doc.slice(o,n))},range:TO.cursor(r)}}));return!n.changes.empty&&(t(e.update(n,{scrollIntoView:!0,userEvent:"move.character"})),!0)}},{key:"Ctrl-v",run:sz}],Iz=[{key:"ArrowLeft",run:UN,shift:hz,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:e=>KN(e,!XN(e)),shift:e=>pz(e,!XN(e)),preventDefault:!0},{mac:"Cmd-ArrowLeft",run:e=>WN(e,(t=>az(e,t,!XN(e)))),shift:e=>lz(e,(t=>az(e,t,!XN(e)))),preventDefault:!0},{key:"ArrowRight",run:YN,shift:uz,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:e=>KN(e,XN(e)),shift:e=>pz(e,XN(e)),preventDefault:!0},{mac:"Cmd-ArrowRight",run:e=>WN(e,(t=>az(e,t,XN(e)))),shift:e=>lz(e,(t=>az(e,t,XN(e)))),preventDefault:!0},{key:"ArrowUp",run:tz,shift:fz,preventDefault:!0},{mac:"Cmd-ArrowUp",run:bz,shift:xz},{mac:"Ctrl-ArrowUp",run:rz,shift:vz},{key:"ArrowDown",run:nz,shift:mz,preventDefault:!0},{mac:"Cmd-ArrowDown",run:wz,shift:_z},{mac:"Ctrl-ArrowDown",run:sz,shift:yz},{key:"PageUp",run:rz,shift:vz},{key:"PageDown",run:sz,shift:yz},{key:"Home",run:e=>WN(e,(t=>az(e,t,!1))),shift:e=>lz(e,(t=>az(e,t,!1))),preventDefault:!0},{key:"Mod-Home",run:bz,shift:xz},{key:"End",run:e=>WN(e,(t=>az(e,t,!0))),shift:e=>lz(e,(t=>az(e,t,!0))),preventDefault:!0},{key:"Mod-End",run:wz,shift:_z},{key:"Enter",run:Rz},{key:"Mod-a",run:({state:e,dispatch:t})=>(t(e.update({selection:{anchor:0,head:e.doc.length},userEvent:"select"})),!0)},{key:"Backspace",run:Cz,shift:Cz},{key:"Delete",run:Oz},{key:"Mod-Backspace",mac:"Alt-Backspace",run:Mz},{key:"Mod-Delete",mac:"Alt-Delete",run:e=>Pz(e,!0)},{mac:"Mod-Backspace",run:e=>Ez(e,(t=>{let n=e.moveToLineBoundary(t,!1).head;return t.head>n?n:Math.max(0,t.head-1)}))},{mac:"Mod-Delete",run:e=>Ez(e,(t=>{let n=e.moveToLineBoundary(t,!0).head;return t.head({mac:e.key,run:e.run,shift:e.shift})))),Fz=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:e=>WN(e,(t=>JN(e.state,t,!XN(e)))),shift:e=>lz(e,(t=>JN(e.state,t,!XN(e))))},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:e=>WN(e,(t=>JN(e.state,t,XN(e)))),shift:e=>lz(e,(t=>JN(e.state,t,XN(e))))},{key:"Alt-ArrowUp",run:({state:e,dispatch:t})=>Tz(e,t,!1)},{key:"Shift-Alt-ArrowUp",run:({state:e,dispatch:t})=>Bz(e,t,!1)},{key:"Alt-ArrowDown",run:({state:e,dispatch:t})=>Tz(e,t,!0)},{key:"Shift-Alt-ArrowDown",run:({state:e,dispatch:t})=>Bz(e,t,!0)},{key:"Escape",run:({state:e,dispatch:t})=>{let n=e.selection,i=null;return n.ranges.length>1?i=TO.create([n.main]):n.main.empty||(i=TO.create([TO.cursor(n.main.head)])),!!i&&(t(VN(e,i)),!0)}},{key:"Mod-Enter",run:Dz},{key:"Alt-l",mac:"Ctrl-l",run:({state:e,dispatch:t})=>{let n=Az(e).map((({from:t,to:n})=>TO.range(t,Math.min(n+1,e.doc.length))));return t(e.update({selection:TO.create(n),userEvent:"select"})),!0}},{key:"Mod-i",run:({state:e,dispatch:t})=>{let n=HN(e.selection,(t=>{var n;for(let i=KR(e).resolveStack(t.from,1);i;i=i.next){let{node:e}=i;if((e.from=t.to||e.to>t.to&&e.from<=t.from)&&(null===(n=e.parent)||void 0===n?void 0:n.parent))return TO.range(e.to,e.from)}return t}));return t(VN(e,n)),!0},preventDefault:!0},{key:"Mod-[",run:({state:e,dispatch:t})=>!e.readOnly&&(t(e.update(Nz(e,((t,n)=>{let i=/^\s*/.exec(t.text)[0];if(!i)return;let o=LP(i,e.tabSize),r=0,s=uD(e,Math.max(0,o-hD(e)));for(;r!e.readOnly&&(t(e.update(Nz(e,((t,n)=>{n.push({from:t.from,insert:e.facet(cD)})})),{userEvent:"input.indent"})),!0)},{key:"Mod-Alt-\\",run:({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=Object.create(null),i=new dD(e,{overrideIndentation:e=>{let t=n[e];return null==t?-1:t}}),o=Nz(e,((t,o,r)=>{let s=pD(i,t.from);if(null==s)return;/\S/.test(t.text)||(s=0);let a=/^\s*/.exec(t.text)[0],l=uD(e,s);(a!=l||r.from{if(e.state.readOnly)return!1;let{state:t}=e,n=t.changes(Az(t).map((({from:e,to:n})=>(e>0?e--:n{let n;if(e.lineWrapping){let i=e.lineBlockAt(t.head),o=e.coordsAtPos(t.head,t.assoc||1);o&&(n=i.bottom+e.documentTop-o.bottom+e.defaultLineHeight/2)}return e.moveVertically(t,!0,n)})).map(n);return e.dispatch({changes:n,selection:i,scrollIntoView:!0,userEvent:"delete.line"}),!0}},{key:"Shift-Mod-\\",run:({state:e,dispatch:t})=>function(e,t,n){let i=!1,o=HN(e.selection,(t=>{let o=QD(e,t.head,-1)||QD(e,t.head,1)||t.head>0&&QD(e,t.head-1,1)||t.head{let{state:t}=e,n=t.doc.lineAt(t.selection.main.from),i=PN(e.state,n.from);return i.line?SN(e):!!i.block&&ON(e)}},{key:"Alt-A",run:CN},{key:"Ctrl-m",mac:"Shift-Alt-m",run:e=>(e.setTabFocusMode(),!0)}].concat(Iz);function $z(){var e=arguments[0];"string"==typeof e&&(e=document.createElement(e));var t=1,n=arguments[1];if(n&&"object"==typeof n&&null==n.nodeType&&!Array.isArray(n)){for(var i in n)if(Object.prototype.hasOwnProperty.call(n,i)){var o=n[i];"string"==typeof o?e.setAttribute(i,o):null!=o&&(e[i]=o)}t++}for(;te.from==e.to||e.from==e.to-1&&n.doc.lineAt(e.from).to==e.from?UM.widget({widget:new rI(e),diagnostic:e}).range(e.from):UM.mark({attributes:{class:"cm-lintRange cm-lintRange-"+e.severity+(e.markClass?" "+e.markClass:"")},diagnostic:e}).range(e.from,e.to))),!0);return new Hz(r,t,Vz(r))}}function Vz(e,t=null,n=0){let i=null;return e.between(n,1e9,((e,n,{spec:o})=>{if(!t||o.diagnostic==t)return i=new qz(e,n,o.diagnostic),!1})),i}function Wz(e,t){return e.field(Uz,!1)?t:t.concat(sP.appendConfig.of(hI))}const Gz=sP.define(),Qz=sP.define(),Xz=sP.define(),Uz=jO.define({create:()=>new Hz(UM.none,null,null),update(e,t){if(t.docChanged&&e.diagnostics.size){let n=e.diagnostics.map(t.changes),i=null,o=e.panel;if(e.selected){let o=t.changes.mapPos(e.selected.from,1);i=Vz(n,e.selected.diagnostic,o)||Vz(n,null,o)}!n.size&&o&&t.state.facet(tI).autoPanel&&(o=null),e=new Hz(n,o,i)}for(let n of t.effects)if(n.is(Gz)){let i=t.state.facet(tI).autoPanel?n.value.length?aI.open:null:e.panel;e=Hz.init(n.value,i,t.state)}else n.is(Qz)?e=new Hz(e.diagnostics,n.value?aI.open:null,e.selected):n.is(Xz)&&(e=new Hz(e.diagnostics,e.panel,n.value));return e},provide:e=>[kR.from(e,(e=>e.panel)),$B.decorations.from(e,(e=>e.diagnostics))]}),Yz=UM.mark({class:"cm-lintRange cm-lintRange-active"});function Kz(e,t,n){let{diagnostics:i}=e.state.field(Uz),o=[],r=2e8,s=0;i.between(t-(n<0?1:0),t+(n>0?1:0),((e,i,{spec:a})=>{t>=e&&t<=i&&(e==i||(t>e||n>0)&&(t({dom:Zz(e,o)})}:null}function Zz(e,t){return $z("ul",{class:"cm-tooltip-lint"},t.map((t=>oI(e,t,!1))))}const Jz=e=>{let t=e.state.field(Uz,!1);return!(!t||!t.panel||(e.dispatch({effects:Qz.of(!1)}),0))},eI=HA.fromClass(class{constructor(e){this.view=e,this.timeout=-1,this.set=!0;let{delay:t}=e.state.facet(tI);this.lintTime=Date.now()+t,this.run=this.run.bind(this),this.timeout=setTimeout(this.run,t)}run(){clearTimeout(this.timeout);let e=Date.now();if(ePromise.resolve(e(this.view))))).then((t=>{let n=t.reduce(((e,t)=>e.concat(t)));this.view.state.doc==e.doc&&this.view.dispatch(function(e,t){return{effects:Wz(e,[Gz.of(t)])}}(this.view.state,n))}),(e=>{FA(this.view.state,e)}))}}update(e){let t=e.state.facet(tI);(e.docChanged||t!=e.startState.facet(tI)||t.needsRefresh&&t.needsRefresh(e))&&(this.lintTime=Date.now()+t.delay,this.set||(this.set=!0,this.timeout=setTimeout(this.run,t.delay)))}force(){this.set&&(this.lintTime=Date.now(),this.run())}destroy(){clearTimeout(this.timeout)}}),tI=DO.define({combine:e=>Object.assign({sources:e.map((e=>e.source)).filter((e=>null!=e))},yP(e.map((e=>e.config)),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:()=>null},{needsRefresh:(e,t)=>e?t?n=>e(n)||t(n):e:t}))});function nI(e,t={}){return[tI.of({source:e,config:t}),eI,hI]}function iI(e){let t=[];if(e)e:for(let{name:n}of e){for(let e=0;ee.toLowerCase()==i.toLowerCase()))){t.push(i);continue e}}t.push("")}return t}function oI(e,t,n){var i;let o=n?iI(t.actions):[];return $z("li",{class:"cm-diagnostic cm-diagnostic-"+t.severity},$z("span",{class:"cm-diagnosticText"},t.renderMessage?t.renderMessage(e):t.message),null===(i=t.actions)||void 0===i?void 0:i.map(((n,i)=>{let r=!1,s=i=>{if(i.preventDefault(),r)return;r=!0;let o=Vz(e.state.field(Uz).diagnostics,t);o&&n.apply(e,o.from,o.to)},{name:a}=n,l=o[i]?a.indexOf(o[i]):-1,c=l<0?a:[a.slice(0,l),$z("u",a.slice(l,l+1)),a.slice(l+1)];return $z("button",{type:"button",class:"cm-diagnosticAction",onclick:s,onmousedown:s,"aria-label":` Action: ${a}${l<0?"":` (access key "${o[i]})"`}.`},c)})),t.source&&$z("div",{class:"cm-diagnosticSource"},t.source))}class rI extends QM{constructor(e){super(),this.diagnostic=e}eq(e){return e.diagnostic==this.diagnostic}toDOM(){return $z("span",{class:"cm-lintPoint cm-lintPoint-"+this.diagnostic.severity})}}class sI{constructor(e,t){this.diagnostic=t,this.id="item_"+Math.floor(4294967295*Math.random()).toString(16),this.dom=oI(e,t,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class aI{constructor(e){this.view=e,this.items=[],this.list=$z("ul",{tabIndex:0,role:"listbox","aria-label":this.view.state.phrase("Diagnostics"),onkeydown:t=>{if(27==t.keyCode)Jz(this.view),this.view.focus();else if(38==t.keyCode||33==t.keyCode)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(40==t.keyCode||34==t.keyCode)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(36==t.keyCode)this.moveSelection(0);else if(35==t.keyCode)this.moveSelection(this.items.length-1);else if(13==t.keyCode)this.view.focus();else{if(!(t.keyCode>=65&&t.keyCode<=90&&this.selectedIndex>=0))return;{let{diagnostic:n}=this.items[this.selectedIndex],i=iI(n.actions);for(let o=0;o{for(let t=0;tJz(this.view)},"×")),this.update()}get selectedIndex(){let e=this.view.state.field(Uz).selected;if(!e)return-1;for(let t=0;t{let a,l=-1;for(let e=n;en&&(this.items.splice(n,l-n),i=!0)),t&&a.diagnostic==t.diagnostic?a.dom.hasAttribute("aria-selected")||(a.dom.setAttribute("aria-selected","true"),o=a):a.dom.hasAttribute("aria-selected")&&a.dom.removeAttribute("aria-selected"),n++}));n({sel:o.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:e,panel:t})=>{let n=t.height/this.list.offsetHeight;e.topt.bottom&&(this.list.scrollTop+=(e.bottom-t.bottom)/n)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),i&&this.sync()}sync(){let e=this.list.firstChild;function t(){let t=e;e=t.nextSibling,t.remove()}for(let n of this.items)if(n.dom.parentNode==this.list){for(;e!=n.dom;)t();e=n.dom.nextSibling}else this.list.insertBefore(n.dom,e);for(;e;)t()}moveSelection(e){if(this.selectedIndex<0)return;let t=Vz(this.view.state.field(Uz).diagnostics,this.items[e].diagnostic);t&&this.view.dispatch({selection:{anchor:t.from,head:t.to},scrollIntoView:!0,effects:Xz.of(t)})}static open(e){return new aI(e)}}function lI(e){return function(e,t='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,${encodeURIComponent(e)}')`}(``,'width="6" height="3"')}const cI=$B.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnostic-hint":{borderLeft:"5px solid #66d"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px",cursor:"pointer"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:lI("#d11")},".cm-lintRange-warning":{backgroundImage:lI("orange")},".cm-lintRange-info":{backgroundImage:lI("#999")},".cm-lintRange-hint":{backgroundImage:lI("#66d")},".cm-lintRange-active":{backgroundColor:"#ffdd9980"},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:"relative","&:after":{content:'""',position:"absolute",bottom:0,left:"-2px",borderLeft:"3px solid transparent",borderRight:"3px solid transparent",borderBottom:"4px solid #d11"}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:"orange"}},".cm-lintPoint-info":{"&:after":{borderBottomColor:"#999"}},".cm-lintPoint-hint":{"&:after":{borderBottomColor:"#66d"}},".cm-panel.cm-panel-lint":{position:"relative","& ul":{maxHeight:"100px",overflowY:"auto","& [aria-selected]":{backgroundColor:"#ddd","& u":{textDecoration:"underline"}},"&:focus [aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"},"& u":{textDecoration:"none"},padding:0,margin:0},"& [name=close]":{position:"absolute",top:"0",right:"2px",background:"inherit",border:"none",font:"inherit",padding:0,margin:0}}}),hI=[Uz,$B.decorations.compute([Uz],(e=>{let{selected:t,panel:n}=e.field(Uz);return t&&n&&t.from!=t.to?UM.set([Yz.range(t.from,t.to)]):UM.none})),vR(Kz,{hideOn:function(e,t){let n=t.pos,i=t.end||n,o=e.state.facet(tI).hideOn(e,n,i);if(null!=o)return o;let r=e.startState.doc.lineAt(t.pos);return!(!e.effects.some((e=>e.is(Gz)))&&!e.changes.touchesRange(r.from,Math.max(r.to,i)))}}),cI];class uI{static create(e,t,n,i,o){return new uI(e,t,n,i+(i<<8)+e+(t<<4)|0,o,[],[])}constructor(e,t,n,i,o,r,s){this.type=e,this.value=t,this.from=n,this.hash=i,this.end=o,this.children=r,this.positions=s,this.hashProp=[[dS.contextHash,i]]}addChild(e,t){e.prop(dS.contextHash)!=this.hash&&(e=new xS(e.type,e.children,e.positions,e.length,this.hashProp)),this.children.push(e),this.positions.push(t)}toTree(e,t=this.end){let n=this.children.length-1;return n>=0&&(t=Math.max(t,this.positions[n]+this.children[n].length+this.from)),new xS(e.types[this.type],this.children,this.positions,t-this.from).balance({makeTree:(e,t,n)=>new xS(gS.none,e,t,n,this.hashProp)})}}var pI;!function(e){e[e.Document=1]="Document",e[e.CodeBlock=2]="CodeBlock",e[e.FencedCode=3]="FencedCode",e[e.Blockquote=4]="Blockquote",e[e.HorizontalRule=5]="HorizontalRule",e[e.BulletList=6]="BulletList",e[e.OrderedList=7]="OrderedList",e[e.ListItem=8]="ListItem",e[e.ATXHeading1=9]="ATXHeading1",e[e.ATXHeading2=10]="ATXHeading2",e[e.ATXHeading3=11]="ATXHeading3",e[e.ATXHeading4=12]="ATXHeading4",e[e.ATXHeading5=13]="ATXHeading5",e[e.ATXHeading6=14]="ATXHeading6",e[e.SetextHeading1=15]="SetextHeading1",e[e.SetextHeading2=16]="SetextHeading2",e[e.HTMLBlock=17]="HTMLBlock",e[e.LinkReference=18]="LinkReference",e[e.Paragraph=19]="Paragraph",e[e.CommentBlock=20]="CommentBlock",e[e.ProcessingInstructionBlock=21]="ProcessingInstructionBlock",e[e.Escape=22]="Escape",e[e.Entity=23]="Entity",e[e.HardBreak=24]="HardBreak",e[e.Emphasis=25]="Emphasis",e[e.StrongEmphasis=26]="StrongEmphasis",e[e.Link=27]="Link",e[e.Image=28]="Image",e[e.InlineCode=29]="InlineCode",e[e.HTMLTag=30]="HTMLTag",e[e.Comment=31]="Comment",e[e.ProcessingInstruction=32]="ProcessingInstruction",e[e.Autolink=33]="Autolink",e[e.HeaderMark=34]="HeaderMark",e[e.QuoteMark=35]="QuoteMark",e[e.ListMark=36]="ListMark",e[e.LinkMark=37]="LinkMark",e[e.EmphasisMark=38]="EmphasisMark",e[e.CodeMark=39]="CodeMark",e[e.CodeText=40]="CodeText",e[e.CodeInfo=41]="CodeInfo",e[e.LinkTitle=42]="LinkTitle",e[e.LinkLabel=43]="LinkLabel",e[e.URL=44]="URL"}(pI||(pI={}));class dI{constructor(e,t){this.start=e,this.content=t,this.marks=[],this.parsers=[]}}class fI{constructor(){this.text="",this.baseIndent=0,this.basePos=0,this.depth=0,this.markers=[],this.pos=0,this.indent=0,this.next=-1}forward(){this.basePos>this.pos&&this.forwardInner()}forwardInner(){let e=this.skipSpace(this.basePos);this.indent=this.countIndent(e,this.pos,this.indent),this.pos=e,this.next=e==this.text.length?-1:this.text.charCodeAt(e)}skipSpace(e){return yI(this.text,e)}reset(e){for(this.text=e,this.baseIndent=this.basePos=this.pos=this.indent=0,this.forwardInner(),this.depth=1;this.markers.length;)this.markers.pop()}moveBase(e){this.basePos=e,this.baseIndent=this.countIndent(e,this.pos,this.indent)}moveBaseColumn(e){this.baseIndent=e,this.basePos=this.findColumn(e)}addMarker(e){this.markers.push(e)}countIndent(e,t=0,n=0){for(let i=t;i=t.stack[n.depth+1].value+n.baseIndent)return!0;if(n.indent>=n.baseIndent+4)return!1;let i=(e.type==pI.OrderedList?SI:kI)(n,t,!1);return i>0&&(e.type!=pI.BulletList||_I(n,t,!1)<0)&&n.text.charCodeAt(n.pos+i-1)==e.value}const gI={[pI.Blockquote]:(e,t,n)=>62==n.next&&(n.markers.push(JI(pI.QuoteMark,t.lineStart+n.pos,t.lineStart+n.pos+1)),n.moveBase(n.pos+(vI(n.text.charCodeAt(n.pos+1))?2:1)),e.end=t.lineStart+n.text.length,!0),[pI.ListItem]:(e,t,n)=>!(n.indent-1||(n.moveBaseColumn(n.baseIndent+e.value),0)),[pI.OrderedList]:mI,[pI.BulletList]:mI,[pI.Document]:()=>!0};function vI(e){return 32==e||9==e||10==e||13==e}function yI(e,t=0){for(;tn&&vI(e.charCodeAt(t-1));)t--;return t}function wI(e){if(96!=e.next&&126!=e.next)return-1;let t=e.pos+1;for(;t-1&&e.depth==t.stack.length||i<3?-1:1}function EI(e,t){for(let n=e.stack.length-1;n>=0;n--)if(e.stack[n].type==t)return!0;return!1}function kI(e,t,n){return 45!=e.next&&43!=e.next&&42!=e.next||e.pos!=e.text.length-1&&!vI(e.text.charCodeAt(e.pos+1))||!(!n||EI(t,pI.BulletList)||e.skipSpace(e.pos+2)=48&&o<=57;){if(i++,i==e.text.length)return-1;o=e.text.charCodeAt(i)}return i==e.pos||i>e.pos+9||46!=o&&41!=o||ie.pos+1||49!=e.next)?-1:i+1-e.pos}function CI(e){if(35!=e.next)return-1;let t=e.pos+1;for(;t6?-1:n}function OI(e){if(45!=e.next&&61!=e.next||e.indent>=e.baseIndent+4)return-1;let t=e.pos+1;for(;t/,AI=/\?>/,TI=[[/^<(?:script|pre|style)(?:\s|>|$)/i,/<\/(?:script|pre|style)>/i],[/^\s*/i.exec(i);if(r)return e.append(JI(pI.Comment,n,n+1+r[0].length));let s=/^\?[^]*?\?>/.exec(i);if(s)return e.append(JI(pI.ProcessingInstruction,n,n+1+s[0].length));let a=/^(?:![A-Z][^]*?>|!\[CDATA\[[^]*?\]\]>|\/\s*[a-zA-Z][\w-]*\s*>|\s*[a-zA-Z][\w-]*(\s+[a-zA-Z:_][\w-.:]*(?:\s*=\s*(?:[^\s"'=<>`]+|'[^']*'|"[^"]*"))?)*\s*(\/\s*)?>)/.exec(i);return a?e.append(JI(pI.HTMLTag,n,n+1+a[0].length)):-1},Emphasis(e,t,n){if(95!=t&&42!=t)return-1;let i=n+1;for(;e.char(i)==t;)i++;let o=e.slice(n-1,n),r=e.slice(i,i+1),s=rF.test(o),a=rF.test(r),l=/\s|^$/.test(o),c=/\s|^$/.test(r),h=!c&&(!a||l||s),u=!l&&(!s||c||a),p=h&&(42==t||!u||s),d=u&&(42==t||!h||a);return e.append(new oF(95==t?eF:tF,n,i,(p?1:0)|(d?2:0)))},HardBreak(e,t,n){if(92==t&&10==e.char(n+1))return e.append(JI(pI.HardBreak,n,n+2));if(32==t){let t=n+1;for(;32==e.char(t);)t++;if(10==e.char(t)&&t>=n+2)return e.append(JI(pI.HardBreak,n,t+1))}return-1},Link:(e,t,n)=>91==t?e.append(new oF(nF,n,n+1,1)):-1,Image:(e,t,n)=>33==t&&91==e.char(n+1)?e.append(new oF(iF,n,n+2,1)):-1,LinkEnd(e,t,n){if(93!=t)return-1;for(let t=e.parts.length-1;t>=0;t--){let i=e.parts[t];if(i instanceof oF&&(i.type==nF||i.type==iF)){if(!i.side||e.skipSpace(i.to)==n&&!/[(\[]/.test(e.slice(n+1,n+2)))return e.parts[t]=null,-1;let o=e.takeContent(t),r=e.parts[t]=aF(e,o,i.type==nF?pI.Link:pI.Image,i.from,n+1);if(i.type==nF)for(let n=0;nt?JI(pI.URL,t+n,o+n):o==e.length&&null}}function cF(e,t,n){let i=e.charCodeAt(t);if(39!=i&&34!=i&&40!=i)return!1;let o=40==i?41:i;for(let i=t+1,r=!1;i=this.end?-1:this.text.charCodeAt(e-this.offset)}get end(){return this.offset+this.text.length}slice(e,t){return this.text.slice(e-this.offset,t-this.offset)}append(e){return this.parts.push(e),e.to}addDelimiter(e,t,n,i,o){return this.append(new oF(e,t,n,(i?1:0)|(o?2:0)))}get hasOpenLink(){for(let e=this.parts.length-1;e>=0;e--){let t=this.parts[e];if(t instanceof oF&&(t.type==nF||t.type==iF))return!0}return!1}addElement(e){return this.append(e)}resolveMarkers(e){for(let t=e;t=e;s--){let e=this.parts[s];if(e instanceof oF&&1&e.side&&e.type==n.type&&!(o&&(1&n.side||2&e.side)&&(e.to-e.from+r)%3==0&&((e.to-e.from)%3||r%3))){i=e;break}}if(!i)continue;let a=n.type.resolve,l=[],c=i.from,h=n.to;if(o){let e=Math.min(2,i.to-i.from,r);c=i.to-e,h=n.from+e,a=1==e?"Emphasis":"StrongEmphasis"}i.type.mark&&l.push(this.elt(i.type.mark,c,i.to));for(let e=s+1;e=0;t--){let n=this.parts[t];if(n instanceof oF&&n.type==e)return t}return null}takeContent(e){let t=this.resolveMarkers(e);return this.parts.length=e,t}skipSpace(e){return yI(this.text,e-this.offset)+this.offset}elt(e,t,n,i){return"string"==typeof e?JI(this.parser.getNodeType(e),t,n,i):new ZI(e,t)}}function pF(e,t){if(!t.length)return e;if(!e.length)return t;let n=e.slice(),i=0;for(let e of t){for(;i(e?e-1:0))return!1;if(this.fragmentEnd<0){let e=this.fragment.to;for(;e>0&&"\n"!=this.input.read(e-1,e);)e--;this.fragmentEnd=e?e-1:0}let n=this.cursor;n||(n=this.cursor=this.fragment.tree.cursor(),n.firstChild());let i=e+this.fragment.offset;for(;n.to<=i;)if(!n.parent())return!1;for(;;){if(n.from>=i)return this.fragment.from<=t;if(!n.childAfter(i))return!1}}matches(e){let t=this.cursor.tree;return t&&t.prop(dS.contextHash)==e}takeNodes(e){let t=this.cursor,n=this.fragment.offset,i=this.fragmentEnd-(this.fragment.openEnd?1:0),o=e.absoluteLineStart,r=o,s=e.block.children.length,a=r,l=s;for(;;){if(t.to-n>i){if(t.type.isAnonymous&&t.firstChild())continue;break}let o=mF(t.from-n,e.ranges);if(t.to-n<=e.ranges[e.rangeI].to)e.addNode(t.tree,o);else{let n=new xS(e.parser.nodeSet.types[pI.Paragraph],[],[],0,e.block.hashProp);e.reusePlaceholders.set(n,t.tree),e.addNode(n,o)}if(t.type.is("Block")&&(dF.indexOf(t.type.id)<0?(r=t.to-n,s=e.block.children.length):(r=a,s=l,a=t.to-n,l=e.block.children.length)),!t.nextSibling())break}for(;e.block.children.length>s;)e.block.children.pop(),e.block.positions.pop();return r-o}}function mF(e,t){let n=e;for(let i=1;iLI[e])),Object.keys(LI).map((e=>FI[e])),Object.keys(LI),$I,gI,Object.keys(sF).map((e=>sF[e])),Object.keys(sF),[]);KC.strikethrough,KC.processingInstruction;KC.heading,KC.content,KC.processingInstruction;function yF(e,t,n){return(i,o,r)=>{if(o!=e||i.char(r+1)==e)return-1;let s=[i.elt(n,r,r+1)];for(let o=r+1;oe.charCodeAt(0)))}function e$(e){return e>=48&&e<=57||183===e||e>=768&&e<=879||e>=8255&&e<=8256}function t$(e,t){return t.concat(e.split(/\n/g).join("\n"+t))}function n$(e,t=0){const n=e.peek(t);return n===KF&&e.peek(t+1)===KF?{offset:2,token:"**"}:(i=n,ZF.includes(i)?{offset:1,token:String.fromCharCode(n)}:null);var i}function i$(e,t=0,n=!1){for(let o=!1,r=[],s=0;;s++){const a=e.peek(t+s);if(!(63===(i=a)||i>=65&&i<=90||95===i||i>=97&&i<=122||i>=192&&i<=214||i>=216&&i<=246||i>=248&&i<=767||i>=880&&i<=893||i>=895&&i<=8191||i>=8204&&i<=8205||i>=8304&&i<=8591||i>=11264&&i<=12271||i>=12289&&i<=55295||i>=63744&&i<=64975||i>=65008&&i<=65533||i>=55296&&i<=56319||i>=56320&&i<=57343||(o||n)&&e$(a)))return r.length?{token:String.fromCharCode(...r),offset:s}:null;o||(o=!0),r.push(a)}var i}function o$(e,t){for(let i=!1,o=0;;o++){if(n=e.peek(t+o),!UF.includes(n))return i?{token:" ",offset:o}:null;i||(i=!0)}var n}const r$={121:"identifier",122:"nameIdentifier"},s$=new hC(((e,t)=>{QF&&console.log("%s: T ",e.pos);const n=function(e,t){const n=t.contextKeys(),i=t.tokens;for(let t=0,o=[],r=null;;){const s=i.length+o.length>0,a=o.length>0,l=i$(e,t,s)||s&&n$(e,t)||a&&o$(e,t);if(!l)return r;const{token:c,offset:h}=l;if(t+=h," "===c)continue;o=[...o,c];const u=[...i,...o].join(" ");if(n.some((e=>e===u))){const e=o[0];r={token:e,offset:e.length,term:122}}if(!n.some((e=>e.startsWith(u)))){if(d$.some((e=>e===u))){const e=o[0];r={token:e,offset:e.length,term:121}}if(!d$.some((e=>e.startsWith(u))))return r}}}(e,t.context),i=t.context.tokens,o=n||i$(e,0,i.length>0);o&&(e.advance(o.offset),e.acceptToken(n?n.term:121),GF&&console.log("%s: MATCH <%s> <%s>",e.pos,n?r$[n.term]:"identifier",o.token))}),{contextual:!0}),a$=new hC(((e,t)=>{QF&&console.log("%s: T ",e.pos);const n=i$(e,0,t.context.tokens.length>0);n&&(e.advance(n.offset),e.acceptToken(120),GF&&console.log("%s: MATCH <%s>",e.pos,n.token))})),l$=new hC(((e,t)=>{let n;QF&&console.log("%s: T ",e.pos);let i=!1;for(n=0;;n++){const t=e.peek(n);if(!UF.includes(t)){YF.includes(t)&&(i=!0);break}}if(i){const t=i$(e,n+1);if(o$(e,n+1)||t&&/^(then|else|return|satisfies)$/.test(t.token))return;GF&&console.log("%s: MATCH ",e.pos),e.acceptToken(123)}})),c$={154:"FunctionInvocation",[LF]:"FilterExpression",[RF]:"PathExpression"},h$={169:"Context",167:"FunctionDefinition",130:"ForExpression",165:"List",139:"IfExpression",140:"QuantifiedExpression"},u$={96:"Context",89:"FunctionDefinition",4:"ForExpression",[qF]:"List",[SF]:"IfExpression",23:"QuantifiedExpression",67:"PathExpression",[NF]:"FunctionInvocation",[DF]:"FilterExpression",41:"ArithmeticExpression"};class p${constructor(e){this.fn=e}get(e){return this.fn(e)}static of(e){return new p$(e)}}const d$=Object.keys({"date and time":1,date:1,time:1,duration:1});class f${constructor(e={}){this.value=e}getKeys(){return Object.keys(this.value)}get(e){const t=this.value[e],n=this.constructor;return n.isAtomic(t)?t:n.of(t)}set(e,t){return this.constructor.of({...this.value,[e]:t})}static isAtomic(e){return!e||e instanceof this||e instanceof p$||"object"!=typeof e}static of(...e){const t=e=>e&&"object"==typeof e?e instanceof this?e.value:{...e}:{};return new this(e.reduce(((e,n)=>({...e,...t(n)})),{}))}}class m${constructor({name:e="Expressions",tokens:t=[],children:n=[],parent:i=null,context:o=null,value:r=null,raw:s=null}={}){this.name=e,this.tokens=t,this.children=n,this.parent=i,this.context=o,this.value=r,this.raw=s}enterScope(e){const t=this.of({name:e,parent:this});return XF&&console.log("[%s] enter",t.path,t.context),t}exitScope(e){return this.parent?(XF&&console.log("[%s] exit %o\n%s",this.path,this.context,t$(e," ")),this.parent.pushChild(this)):(XF&&console.log("[%s] NO exit %o\n%s",this.path,this.context,t$(e," ")),this)}token(e){return XF&&console.log("[%s] token <%s> + <%s>",this.path,this.tokens.join(" "),e),this.assign({tokens:[...this.tokens,e]})}literal(e){return XF&&console.log("[%s] literal %o",this.path,e),this.pushChild(this.of({name:"Literal",value:e}))}computedValue(){for(let e=this;;e=w$(e.children)){if(!e)return null;if(e.value)return e.value}}contextKeys(){return this.context.getKeys().map(g$)}get path(){return this.parent?.path?.concat(" > ",this.name)||this.name}get(e){const t=[e,e&&g$(e)],n=this.context.getKeys().find((e=>t.includes(g$(e))));if(void 0===n)return;const i=this.context.get(n);return i instanceof p$?i.get(this):i}resolveName(){const e=this.tokens.join(" "),t=this.assign({tokens:[]}),n=this.of({name:"VariableName",parent:t,value:this.get(e),raw:e});return XF&&console.log("[%s] resolve name <%s=%s>",n.path,e,this.get(e)),t.pushChild(n)}pushChild(e){if(!e)return this;const t=this.assign({children:[...this.children,e]});return e.parent=t,t}pushChildren(e){let t=this;for(const n of e)t=t.pushChild(n);return t}declareName(){if(0===this.tokens.length)throw Error("no tokens to declare name");const e=this.tokens.join(" ");return XF&&console.log("[%s] declareName <%s>",this.path,e),this.assign({tokens:[]}).pushChild(this.of({name:"Name",value:e}))}define(e,t){if("string"!=typeof e)return XF&&console.log("[%s] no define <%s=%s>",this.path,e,t),this;XF&&console.log("[%s] define <%s=%s>",this.path,e,t);const n=this.context.set(e,t);return this.assign({context:n})}assign(e={}){return m$.of({...this,...e})}of(e={}){const t={context:this.context,parent:this.parent};return m$.of({...t,...e})}static of(e){const{name:t,tokens:n=[],children:i=[],parent:o=null,context:r,value:s,raw:a}=e;if(!r)throw new Error("must provide ");return new m$({name:t,tokens:[...n],children:[...i],context:r,parent:o,value:s,raw:a})}}function g$(e){return e.replace(/\s*([./\-'+]|\*\*?)\s*/g," $1 ").replace(/\s{2,}/g," ").trim()}function v$(e,t,n){const i=e.children.filter((e=>e.name!==t)),o=e.children.filter((e=>e.name===t)),r=i[0],s=i[Math.max(1,i.length-1)],a=r?.computedValue(),l=s?.computedValue()||null;return e.assign({children:o}).enterScope(t).pushChildren(i).exitScope(n).define(a,l)}function y$(e={},t=f$){const n=m$.of({context:t.of(e)});return new _C({start:n,reduce(e,n,i,o){if(n===SF){const[n,i]=e.children.slice(-2);e=e.assign({value:t.of(n?.computedValue(),i?.computedValue())})}if(n===qF&&(e=e.assign({value:t.of(...e.children.map((e=>e?.computedValue())))})),n===DF){const[t,n]=e.children.slice(-2);e=e.assign({value:t?.computedValue()})}if(n===NF){const[t,...n]=e.children;"get value"===t?.raw&&(e=function(e,t){if(!t.length)return e.assign({value:null});if("Name"===t[0].name&&(t=function(e,t){const n={};for(let t=0;tn[e]))}(t)),2!==t.length)return e.assign({value:null});const[n,i]=t,o=i?.computedValue(),r=n?.computedValue();return r&&"object"==typeof r&&"string"==typeof o?e.assign({value:[g$(o),o].reduce(((e,t)=>r.get(t)||e),null)}):e.assign({value:null})}(e,n))}const r=h$[n];if(r)return e.enterScope(r);const s=c$[n];if(s){const{children:i,context:o}=e,r=i.slice(0,-1),a=w$(i);let l=null;return n===RF&&(l=t.of(a?.computedValue())),n===LF&&(l=t.of(o,a?.computedValue()).set("item",a?.computedValue())),e.assign({children:r}).enterScope(s).pushChild(a).assign({context:l||o})}const a=o.read(o.pos,i.pos);if(u$[n])return e.exitScope(a);if(n===HF){const n=e.children.filter((e=>"ContextEntry"!==e.name)),i=n[0],o=w$(n);return v$(e,"ContextEntry",a).assign({value:t.of(e.value).set(i?.computedValue(),o?.computedValue())})}if(n===wF||n===CF)return v$(e,"InExpression",a);if(n===kF)return e.define("partial",p$.of((e=>w$(e.children)?.computedValue())));if(n===zF){const t=w$(e.children).computedValue();return e.define(t,1)}if(n===PF||n===MF||n===AF){const t=e.children.slice(0,-1),n=w$(e.children);return e.assign({children:t}).enterScope("ArithmeticExpression").pushChild(n)}if(n===TF)return e.enterScope("ArithmeticExpression");if(n===_F||n===EF||n===WF)return e.token(a);if(n===$F)return e.literal(a.replace(/^"|"$/g,""));if(n===jF)return e.literal("true"===a);if(n===FF)return e.literal(parseFloat(a));if(n===IF)return e.literal(null);if(n===BF)return e.resolveName();if(n===xF||n===VF)return e.declareName();if((n===bF||n===OF)&&e.tokens.length>0)throw new Error("uncleared name");if(n===bF){let t=e;for(;t.parent;)t=t.exitScope(a);return t}return e}})}const b$=y$({});function w$(e){return e[e.length-1]}const x$=AC({StringLiteral:KC.string,NumericLiteral:KC.number,BooleanLiteral:KC.bool,"AtLiteral!":KC.special(KC.string),CompareOp:KC.compareOperator,ArithOp:KC.arithmeticOperator,"for if then else some every satisfies between return":KC.controlKeyword,"in instance of and or":KC.operatorKeyword,function:KC.definitionKeyword,as:KC.keyword,"Type/...":KC.typeName,Wildcard:KC.special(KC.variableName),null:KC.null,LineComment:KC.lineComment,BlockComment:KC.blockComment,'VariableName! "?"':KC.variableName,"DateTimeConstructor! SpecialFunctionName!":KC.function(KC.special(KC.variableName)),"List Interval":KC.list,Context:KC.definition(KC.literal),"Name!":KC.definition(KC.variableName),"Key/Name! ContextEntryType/Name!":KC.definition(KC.propertyName),"PathExpression/VariableName!":KC.function(KC.propertyName),"FormalParameter/ParameterName!":KC.function(KC.definition(KC.variableName)),"( )":KC.paren,"[ ]":KC.squareBracket,"{ }":KC.brace,".":KC.derefOperator,", ;":KC.separator,"..":KC.punctuation}),_$={__proto__:null,for:10,in:32,return:36,if:40,then:42,else:44,some:48,every:50,satisfies:56,or:60,and:64,between:72,instance:86,of:89,days:99,time:101,duration:103,years:105,months:107,date:109,list:115,context:121,function:128,null:154,true:326,false:326,"?":168,external:184,not:209},E$=EC.deserialize({version:14,states:"CpO`QYOOO`QYOOO$gQYOOOOQU'#Ce'#CeO$qQYO'#C`O%zQYO'#FPOOQQ'#Fe'#FeO&UQYO'#FeO`QYO'#DVOOQU'#Em'#EmO'rQ^O'#D]OOQO'#Fl'#FlO)oQWO'#DuOOQQ'#D|'#D|OOQQ'#D}'#D}OOQQ'#EO'#EOO)tOWO'#ERO)oQWO'#EPOOQQ'#EP'#EPOOQQ'#Fr'#FrOOQQ'#Fp'#FpOOQQ'#Fw'#FwOOQQ'#ET'#ETO`QYO'#EVOOQQ'#FR'#FRO)yQ^O'#FRO+pQYO'#EWO+wQWO'#EXOOQP'#F{'#F{O+|QXO'#E`OOQQ'#Fx'#FxOOQQ'#FQ'#FQQOQWOOOOQQ'#FS'#FSOOQQ'#F]'#F]O`QYO'#CoOOQQ'#F^'#F^O$qQYO'#CsO,XQYO'#DvOOQQ'#Fq'#FqO,^QYO'#EQOOQO'#EQ'#EQO`QYO'#EUO`QYO'#ETOOQO'#Fy'#FyQ,fQWOOO,kQYO'#DRO-bQWO'#FaOOQO'#DT'#DTO-mQYO'#FeO-tQWOOO.kQYO'#CdO.xQYO'#FUOOQQ'#Cc'#CcO.}QYO'#FTOOQQ'#Cb'#CbO/VQYO,58zO`QYO,59iOOQQ'#Fb'#FbOOQQ'#Fc'#FcOOQQ'#Fd'#FdO`QYO,59qO`QYO,59qO`QYO,59qOOQQ'#Fj'#FjO$qQYO,5:]OOQQ'#Fk'#FkO`QYO,5:_O`QYO,59eO`QYO,59gO`QYO,59iO0uQYO,59iO0|QYO,59rOOQQ,5:h,5:hO1RQYO,59qOOQU-E8k-E8kO2uQYO'#FmOOQQ,5:a,5:aOOQQ,5:m,5:mOOQQ,5:k,5:kO2|QYO,5:qOOQQ,5;m,5;mO3WQYO,5:pO3eQWO,5:rO3jQYO,5:sOOQP'#Ed'#EdO4aQXO'#EcOOQO'#Eb'#EbO4hQWO'#EaO4mQWO'#F|O4uQWO,5:zO4zQYO,59ZO.xQYO'#F`OOQQ'#Cw'#CwO5RQYO'#F_OOQQ'#Cv'#CvO5ZQYO,59_O5`QYO,5:bO5eQYO,5:lO3PQYO,5:pO5jQYO,5:oO`QYO'#EvQ,fQWOOO`QYO'#ElO6aQWO,5;{O`QYOOOOQR'#Cf'#CfOOQQ'#Ei'#EiO7ZQYO,59OO`QYO,5;pOOQQ'#FX'#FXO$qQYO'#EjO7kQYO,5;oO`QYO1G.fOOQQ'#F['#F[O8bQYO1G/TO;XQYO1G/]O;cQYO1G/]O;mQYO1G/]OOQQ1G/w1G/wO=aQYO1G/yO=hQYO1G/PO>qQYO1G/RO?zQYO1G/TO`QYO1G/TOOQQ1G/T1G/TO@bQYO1G/^O@|Q^O'#CdOB`QYO'#FoOOQO'#Dy'#DyOBjQWO'#DxOBoQWO'#FnOOQO'#Dw'#DwOOQO'#Dz'#DzOBwQWO,5eAN>eO$qQYO'#EnO! VQYO<hP>kP>o?b@T@|ASAV$rA]A]PPPPBU7qB}CvCyDr!mhOPQWgjsz{!Z!_!`!a!e!f!g!h!i!n#X#Z#]#a#e#p#|#}$W$[$]$`$o${%V%b%w%xR!YSQ!WSR$k#cS!US#cS#Ou$^W#u!n!v$|%TT&R%k&a#WXOPQWYgjsz{!Z!_!`!a!c!e!f!g!h!i#X#Z#]#a#e#p#r#|#}$W$[$]$`$o${%S%V%b%e%j%l%w%x&O&`&d&l&n&o&rb!TSu!v#c$^$|%T%k&aU#_!T#`#sR#s!nU#_!T#`#sT$U!x$VR$j#aR#SuQ#QuR%^$^U!PQ#]#pQ#q!iR$e#ZQpQQ$g#]R$q#pQ$z#rQ%r%SQ&Q%jU&V%l&d&rQ&g&`T&m&l&oc$s#r%S%j%l&`&d&l&o&r!liOPQWgjsz{!Z!_!`!a!e!f!g!h!i!n#X#Z#]#a#e#p#|#}$W$[$]$`$o${%V%b%w%xQ#k!cU$r#r%S&lS%z%e&n]&P%j%l&`&d&o&rR&U%kQ&S%kR&h&aQ&Y%lR&q&rS&W%l&rR&j&d!mZOPQWgjsz{!Z!_!`!a!e!f!g!h!i!n#X#Z#]#a#e#p#|#}$W$[$]$`$o${%V%b%w%xR#z!nQ#w!nR%n$|S#v!n$|T$Q!v%T!mcOPQWgjsz{!Z!_!`!a!e!f!g!h!i!n#X#Z#]#a#e#p#|#}$W$[$]$`$o${%V%b%w%x!lcOPQWgjsz{!Z!_!`!a!e!f!g!h!i!n#X#Z#]#a#e#p#|#}$W$[$]$`$o${%V%b%w%xQ!p`T!ym$X!maOPQWgjsz{!Z!_!`!a!e!f!g!h!i!n#X#Z#]#a#e#p#|#}$W$[$]$`$o${%V%b%w%x!mbOPQWgjsz{!Z!_!`!a!e!f!g!h!i!n#X#Z#]#a#e#p#|#}$W$[$]$`$o${%V%b%w%x!mfOPQWgjsz{!Z!_!`!a!e!f!g!h!i!n#X#Z#]#a#e#p#|#}$W$[$]$`$o${%V%b%w%x!mnOPQWgjsz{!Z!_!`!a!e!f!g!h!i!n#X#Z#]#a#e#p#|#}$W$[$]$`$o${%V%b%w%xR$T!vQ$R!vR%s%TQ%v%VR&Z%wQ!{mR%Y$XT!zm$XS!xm$XT$U!x$VRpQS#`!T#sR$h#`Q#d!WR$l#dQ$_#QR%_$_Q#[!PR$f#[!vYOPQWgjsz{!Z!_!`!a!c!e!f!g!h!i!n#X#Z#]#a#e#p#r#|#}$W$[$]$`$o${%S%V%b%e%w%x&lS!mY&O_&O%j%l&`&d&n&o&rQ%f$rS%{%f&^R&^&PQ&b&SR&i&bQ&e&WR&k&eQ$}#wR%o$}S$O!t#tR%R$OQ%U$RR%t%UQ$V!xR%W$VQ$Y!{R%Z$YQ#Y}R$d#YQpOQ}PR$c#XUTOP#XW!OQ!i#Z#]Q!lWQ!rgQ!tjQ!}sQ#VzQ#W{Q#g!ZQ#h!_Q#i!`Q#j!aQ#l!eQ#m!fQ#n!gQ#o!hQ#t!nQ$i#aQ$m#eQ$p#pQ%P#|Q%Q#}Q%X$WQ%[$[Q%]$]Q%`$`Q%c$oQ%m${S%u%V%wQ%y%bR&[%x!moOPQWgjsz{!Z!_!`!a!e!f!g!h!i!n#X#Z#]#a#e#p#|#}$W$[$]$`$o${%V%b%w%x!mSOPQWgjsz{!Z!_!`!a!e!f!g!h!i!n#X#Z#]#a#e#p#|#}$W$[$]$`$o${%V%b%w%xR!XST!VS#cQ#a!UR$]#OR#e!Y!msOPQWgjsz{!Z!_!`!a!e!f!g!h!i!n#X#Z#]#a#e#p#|#}$W$[$]$`$o${%V%b%w%x!muOPQWgjsz{!Z!_!`!a!e!f!g!h!i!n#X#Z#]#a#e#p#|#}$W$[$]$`$o${%V%b%w%xR#RuT#Pu$^V!QQ#]#p!X!_T!O!r!t!}#V#W#g#l#m#n#o#t$i$m$p%P%Q%X%[%]%`%c%m%u%y&[!Z!`T!O!r!t!}#V#W#g#h#l#m#n#o#t$i$m$p%P%Q%X%[%]%`%c%m%u%y&[!]!aT!O!r!t!}#V#W#g#h#i#l#m#n#o#t$i$m$p%P%Q%X%[%]%`%c%m%u%y&[!mWOPQWgjsz{!Z!_!`!a!e!f!g!h!i!n#X#Z#]#a#e#p#|#}$W$[$]$`$o${%V%b%w%xR&T%kT&X%l&r!a!cT!O!l!r!t!}#V#W#g#h#i#j#l#m#n#o#t$i$m$p%P%Q%X%[%]%`%c%m%u%y&[!a!eT!O!l!r!t!}#V#W#g#h#i#j#l#m#n#o#t$i$m$p%P%Q%X%[%]%`%c%m%u%y&[!m[OPQWgjsz{!Z!_!`!a!e!f!g!h!i!n#X#Z#]#a#e#p#|#}$W$[$]$`$o${%V%b%w%xQ!o[R!qaR#x!nQ!ujR#y!n!mdOPQWgjsz{!Z!_!`!a!e!f!g!h!i!n#X#Z#]#a#e#p#|#}$W$[$]$`$o${%V%b%w%x!mjOPQWgjsz{!Z!_!`!a!e!f!g!h!i!n#X#Z#]#a#e#p#|#}$W$[$]$`$o${%V%b%w%x!mkOPQWgjsz{!Z!_!`!a!e!f!g!h!i!n#X#Z#]#a#e#p#|#}$W$[$]$`$o${%V%b%w%xR$S!v!mmOPQWgjsz{!Z!_!`!a!e!f!g!h!i!n#X#Z#]#a#e#p#|#}$W$[$]$`$o${%V%b%w%xR!|m",nodeNames:"⚠ LineComment BlockComment Expression ForExpression for InExpressions InExpression Name Identifier Identifier ArithOp ArithOp ArithOp ArithOp ArithOp in IterationContext return IfExpression if then else QuantifiedExpression some every InExpressions InExpression satisfies Disjunction or Conjunction and Comparison CompareOp CompareOp between PositiveUnaryTest ( PositiveUnaryTests ) ArithmeticExpression InstanceOfExpression instance of Type QualifiedName VariableName SpecialType days time duration years months date > ListType list < ContextType context ContextEntryTypes ContextEntryType FunctionType function ArgumentTypes ArgumentType PathExpression ] FilterExpression [ FunctionInvocation SpecialFunctionName NamedParameters NamedParameter ParameterName PositionalParameters null NumericLiteral StringLiteral BooleanLiteral DateTimeLiteral DateTimeConstructor AtLiteral ? SimplePositiveUnaryTest Interval ParenthesizedExpression List FunctionDefinition FormalParameters FormalParameter external FunctionBody } { Context ContextEntry Key Name Identifier Expressions UnaryTests Wildcard not",maxTerm:171,context:b$,nodeProps:[["closedBy",38,")",70,"]",95,"}"],["openedBy",40,"(",68,"[",94,"{"],["group",-5,77,78,79,80,81,"Literal"]],propSources:[x$],skippedNodes:[0,1,2],repeatNodeCount:14,tokenData:"+l~RuXY#fYZ$ZZ[#f]^$Zpq#fqr$`rs$kwx&cxy&hyz&mz{&r{|'P|}'U}!O'Z!O!P'h!P!Q(Q!Q![){![!]*^!]!^*c!^!_*h!_!`$f!`!a*w!b!c+R!}#O+W#P#Q+]#Q#R&z#o#p+b#q#r+g$f$g#f#BY#BZ#f$IS$I_#f$I|$I}$Z$I}$JO$Z$JT$JU#f$KV$KW#f&FU&FV#f?HT?HU#f~#kY#q~XY#fZ[#fpq#f$f$g#f#BY#BZ#f$IS$I_#f$JT$JU#f$KV$KW#f&FU&FV#f?HT?HU#f~$`O#r~~$cP!_!`$f~$kOr~~$pW$h~OY$kZr$krs%Ys#O$k#O#P%_#P;'S$k;'S;=`&]<%lO$k~%_O$h~~%bRO;'S$k;'S;=`%k;=`O$k~%pX$h~OY$kZr$krs%Ys#O$k#O#P%_#P;'S$k;'S;=`&];=`<%l$k<%lO$k~&`P;=`<%l$k~&hO#z~~&mOv~~&rOx~~&wP^~z{&z~'PO_~~'UO[~~'ZO#}~R'`PZP!`!a'cQ'hO$]Q~'mQ#y~!O!P's!Q!['x~'xO#|~~'}P$g~!Q!['x~(VQ]~z{(]!P!Q)d~(`TOz(]z{(o{;'S(];'S;=`)^<%lO(]~(rVOz(]z{(o{!P(]!P!Q)X!Q;'S(];'S;=`)^<%lO(]~)^OQ~~)aP;=`<%l(]~)iSP~OY)dZ;'S)d;'S;=`)u<%lO)d~)xP;=`<%l)d~*QQ$g~!O!P*W!Q![){~*ZP!Q!['x~*cO$Z~~*hO$q~R*oP![QsP!_!`*rP*wOsPR+OP!XQsP!_!`*r~+WO$j~~+]O!h~~+bO!f~~+gO#R~~+lO#Q~",tokenizers:[a$,s$,l$,0,1],topRules:{Expression:[0,3],Expressions:[1,101],UnaryTests:[2,102]},dynamicPrecedences:{31:-1,67:1,71:-1,73:-1},specialized:[{term:121,get:e=>_$[e]||-1}],tokenPrec:2500});function k$(e){const t=[];return e.iterate({enter:e=>{const n=e.node;if(!n.type.isError)return;const i=n.parent,o=S$(n),r={from:n.from,to:n.to,severity:"error",type:"Syntax Error"};if(n.from!==n.to)r.message=`Unrecognized token in <${i.name}>`;else if(o)r.message=`Unrecognized token <${o.name}> in <${i.name}>`,r.to=o.to;else{const e=i.enterUnfinishedNodesBefore(n.to);r.message=`Incomplete <${(e||i).name}>`}t.push(r)}}),t}function S$(e){return e?e.nextSibling||S$(e.parent):null}const C$=()=>e=>{return 0===e.state.doc.length?[]:(t=KR(e.state),[...k$(t)]).map((e=>({...e,source:e.type})));var t},O$=TD(OD.define([{tag:KC.strong,fontWeight:"bold"},{tag:KC.emphasis,fontStyle:"italic"}]));var P$=[$B.theme({"& .cm-lintRange":{position:"relative"},"& .cm-lintRange::after":{content:'""',width:"100%",position:"absolute",left:"0px",bottom:"-2px",height:"3px",backgroundRepeat:"repeat-x"},"& .cm-lintRange.cm-lintRange-warning, & .cm-lintRange.cm-lintRange-error":{backgroundImage:"none"},"& .cm-lintPoint::after":{bottom:"-2px"}}),O$];const M$=e=>`%23${e.slice(1)}`,A$={black:"#1f2b36",darkGrey:"#2f3d58",grey:"#404a5c",midGrey:"#576071",lightGrey:"#c5d1e5",offWhite:"#d9e0f5",snowWhite:"#eaf1ff",white:"#ffffff",mossGreen:"#7ab6aa",iceBlue:"#6cbfd8",waterBlue:"#065aaa",brightBlue:"#0a56b9",deepBlue:"#355472",red:"#9f1c15",orangeBrown:"#b4502f",yellow:"#debd71",lila:"#9a4890",purple:"#5b2c83"},T$={lightBackground:A$.white,darkBackground:A$.snowWhite,selection:A$.snowWhite,tooltipBackground:A$.offWhite,error:A$.red,warning:A$.yellow,invalid:"#b40000"};var B$=[$B.theme({"&":{color:A$.black,backgroundColor:T$.lightBackground},".cm-content":{caretColor:A$.darkGrey},".cm-cursor, .cm-dropCursor":{borderLeftColor:A$.darkGrey},"&.cm-focused .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:T$.selection},".cm-panels":{backgroundColor:T$.darkBackground,color:A$.grey},".cm-panels.cm-panels-top":{borderBottom:`2px solid ${A$.black}`},".cm-panels.cm-panels-bottom":{borderTop:`2px solid ${A$.black}`},".cm-searchMatch":{backgroundColor:"#72a1ff59",outline:`1px solid ${A$.midGrey}`},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:A$.offWhite},".cm-activeLine":{backgroundColor:T$.selection},".cm-selectionMatch":{backgroundColor:A$.offWhite},"&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket":{outline:`1px solid ${A$.grey}`},"&.cm-focused .cm-matchingBracket":{backgroundColor:A$.snowWhite},".cm-gutters":{backgroundColor:"#f3f7fe",color:"#52668d",border:"none",padding:"0 5px"},".cm-activeLineGutter":{backgroundColor:T$.selection},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:T$.tooltipBackground},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:T$.tooltipBackground,borderBottomColor:T$.tooltipBackground},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:T$.darkBackground,color:A$.midGrey}},"& .cm-lintRange.cm-lintRange-warning::after":{backgroundImage:`url("data:image/svg+xml,")`},"& .cm-lintRange.cm-lintRange-error::after":{backgroundImage:`url("data:image/svg+xml,")`},"& .cm-diagnostic-warning":{border:`1px solid ${T$.warning}`,borderLeft:`5px solid ${T$.warning}`,background:T$.lightBackground},"& .cm-diagnostic-error":{border:`1px solid ${T$.error}`,borderLeft:`5px solid ${T$.error}`,background:T$.lightBackground},"& .cm-diagnostic":{padding:"3px 8px"}},{dark:!1}),TD(OD.define([{tag:[KC.macroName,KC.variableName],color:A$.waterBlue},{tag:[KC.special(KC.bracket)],color:A$.waterBlue,fontWeight:"bold"},{tag:[KC.color,KC.name,KC.definition(KC.name),KC.constant(KC.name),KC.standard(KC.name),KC.propertyName],color:A$.deepBlue},{tag:[KC.definition(KC.variableName),KC.function(KC.variableName),KC.function(KC.propertyName)],color:A$.brightBlue},{tag:[KC.labelName],color:A$.orangeBrown},{tag:[KC.annotation],color:T$.invalid},{tag:[KC.number,KC.changed,KC.annotation,KC.modifier,KC.self,KC.namespace,KC.atom,KC.bool,KC.special(KC.variableName)],color:A$.red},{tag:[KC.typeName,KC.className,KC.attributeName],color:A$.lila},{tag:[KC.operator,KC.operatorKeyword,KC.tagName,KC.keyword],color:A$.purple},{tag:[KC.angleBracket,KC.squareBracket,KC.brace,KC.separator,KC.punctuation],color:A$.midGrey},{tag:[KC.regexp],color:A$.deepBlue},{tag:[KC.quote],color:A$.darkGrey},{tag:[KC.string,KC.character,KC.deleted],color:A$.orangeBrown},{tag:KC.link,color:A$.mossGreen,textDecoration:"underline",textUnderlinePosition:"under"},{tag:[KC.url,KC.escape,KC.special(KC.string)],color:A$.red},{tag:[KC.meta],color:A$.iceBlue},{tag:[KC.comment],color:A$.midGrey,fontStyle:"italic"},{tag:KC.strong,fontWeight:"bold",color:A$.deepBlue},{tag:KC.emphasis,fontStyle:"italic",color:A$.deepBlue},{tag:KC.strikethrough,textDecoration:"line-through"},{tag:KC.heading,fontWeight:"bold",color:A$.midGray},{tag:KC.special(KC.heading1),fontWeight:"bold",color:A$.darkGrey},{tag:[KC.heading1,KC.heading2,KC.heading3,KC.heading4],fontWeight:"bold",color:A$.midGrey},{tag:[KC.heading5,KC.heading6,KC.processingInstruction,KC.inserted],color:A$.grey},{tag:[KC.contentSeparator],color:A$.yellow},{tag:KC.invalid,color:A$.midGrey,borderBottom:`1px dotted ${T$.invalid}`}]))];const R$="#f07178",D$="#fffce1",L$="#ec9e6f",N$="rgba(0, 0, 0, 0.5)",z$="#353a42",I$="#ffcc00",F$="fff890";var $$=[$B.theme({"&":{color:"#ffffff",backgroundColor:"#292d3e"},".cm-content":{caretColor:I$},"&.cm-focused .cm-cursor":{borderLeftColor:I$},"&.cm-focused .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:"rgba(128, 203, 196, 0.2)"},".cm-panels":{backgroundColor:"#21252b",color:"#ffffff"},".cm-panels.cm-panels-top":{borderBottom:"2px solid black"},".cm-panels.cm-panels-bottom":{borderTop:"2px solid black"},".cm-searchMatch":{backgroundColor:"#72a1ff59",outline:"1px solid #457dff"},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:"#6199ff2f"},".cm-activeLine":{backgroundColor:N$},".cm-selectionMatch":{backgroundColor:"#aafe661a"},"&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bad0f847",outline:"1px solid #515a6b"},".cm-gutters":{background:"#292d3e",color:"#676e95",border:"none",padding:"0 5px"},".cm-activeLineGutter":{backgroundColor:N$},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:z$},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:z$,borderBottomColor:z$},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:N$,color:"#abb2bf"}},"& .cm-lintRange.cm-lintRange-warning::after":{backgroundImage:`url("data:image/svg+xml,")`},"& .cm-lintRange.cm-lintRange-error::after":{backgroundImage:"url(\"data:image/svg+xml,\")"},"& .cm-diagnostic-warning":{borderLeft:`5px solid #${F$}`,background:"#281e16"},"& .cm-diagnostic-error":{borderLeft:"5px solid red",background:"#281616"},"& .cm-diagnostic":{borderRadius:"2px",padding:"3px 8px"}},{dark:!0}),TD(OD.define([{tag:KC.heading1,color:D$},{tag:KC.heading2,color:D$},{tag:KC.heading3,color:D$},{tag:KC.heading4,color:D$},{tag:KC.heading5,color:D$},{tag:KC.heading6,color:D$},{tag:KC.special(KC.bracket),color:L$,fontWeight:"bold"},{tag:KC.keyword,color:"#c792ea"},{tag:KC.operator,color:"#89ddff"},{tag:KC.special(KC.variableName),color:"#eeffff"},{tag:KC.typeName,color:"#f07178"},{tag:KC.atom,color:"#f78c6c"},{tag:KC.number,color:"#ff5370"},{tag:KC.bool,color:"#ff5370"},{tag:KC.definition(KC.variableName),color:"#82aaff"},{tag:KC.string,color:"#c3e88d"},{tag:KC.comment,color:"#7d8799"},{tag:KC.tagName,color:"#ff5370"},{tag:KC.bracket,color:"#a2a1a4"},{tag:KC.meta,color:"#ffcb6b"},{tag:KC.special(KC.string),color:R$},{tag:KC.propertyName,color:L$},{tag:KC.variableName,color:L$},{tag:KC.attributeName,color:R$},{tag:KC.className,color:R$},{tag:KC.invalid,color:"#ffffff"}]))];const j$=[...P$,...B$],q$=[...P$,...$$],H$=(e,t=0)=>{const n=125===e.peek(t),i=125===e.peek(t+1);return n&&i||-1===e.peek(t)},V$=new hC(((e,t)=>{let n=0;for(;!H$(e,n);)n++;n>0&&(e.advance(n),e.acceptToken(2))})),W$=(e,t=0)=>{const n=123===e.peek(t),i=123===e.peek(t+1);return n&&i||-1===e.peek(t)},G$=new hC(((e,t)=>{let n=0;for(;!W$(e,n);)n++;n>0&&(e.advance(n),e.acceptToken(3))})),Q$=new hC(((e,t)=>{let n=0;for(;-1!==e.peek(n);)n++;n>0&&(e.advance(n),e.acceptToken(1))})),X$=AC({ConditionalSpanner:KC.special(KC.bracket),ConditionalSpannerClose:KC.special(KC.bracket),ConditionalSpannerCloseNl:KC.special(KC.bracket),LoopSpanner:KC.special(KC.bracket),LoopSpannerClose:KC.special(KC.bracket),LoopSpannerCloseNl:KC.special(KC.bracket),EmptyInsert:KC.special(KC.bracket),Insert:KC.special(KC.bracket)}),U$=EC.deserialize({version:14,states:"$bOQOaOOOfOXO'#CbOOO`'#Cm'#CmOqOWO'#CcOvOWO'#CfOOO`'#Cp'#CpOOO`'#Ci'#CiO{OaO'#ClO!jOSOOQOOOOOO!oOPO,58{O!tOXO,58|OOO`,58|,58|O!|OQO,58}O#ROQO,59QOOO`-E6g-E6gOOO`1G.g1G.gO#WOPO1G.gOOO`1G.h1G.hO#]OaO1G.iO#qOaO1G.lOOO`7+$R7+$RO$VOPO7+$TO$_OPO7+$WOOO`<{"EmptyInsert"===e.type.name&&t.push({from:e.from,to:e.to,severity:"warning",message:"this insert is empty and will be ignored",type:"emptyInsert"})}}),t}var Z$=nI(function(){const e=C$();return t=>{const n=e(t);return 0===t.state.doc.length?[]:[...n,...(i=KR(t.state),[...K$(i)]).map((e=>({...e,source:"feelers linter"})))];var i}}());function J$({container:e,tooltipContainer:t,hostLanguage:n,hostLanguageParser:i,onChange:o=(()=>{}),onKeyDown:r=(()=>{}),onLint:s=(()=>{}),contentAttributes:a={},readOnly:l=!1,value:c="",enableGutters:h=!1,singleLine:u=!1,lineWrap:p=!1,darkMode:d=!1}){const f=$B.updateListener.of((e=>{e.docChanged&&o(e.state.doc.toString())})),m=$B.updateListener.of((e=>{const t=e.transactions.flatMap((e=>e.effects)).filter((e=>e.is(Gz)));if(!t.length)return;const n=t.flatMap((e=>e.value));s(n)})),g=$B.contentAttributes.of(a),v=$B.domEventHandlers({keydown:r});"string"==typeof t&&(t=document.querySelector(t));const y=t?oR({tooltipSpace:function(){return t.getBoundingClientRect()}}):[],b=(e=>new aD(function(e=null){const t=U$.configure({wrap:(n=t=>"Feel"==t.name||"FeelBlock"==t.name?{parser:E$}:e&&"SimpleTextBlock"==t.name?{parser:e}:null,(e,t,i,o)=>new GS(e,n,t,i,o)),props:[SD.add(Y$)]});var n;return YR.define({parser:t})}(e),[]))(i||n&&(e=>"markdown"===e?vF:null)(n)),w=[HD(),f,g,cN(),kD(),v,XB.of([...Fz]),b,Z$,m,y,d?q$:j$,...h?[HR()]:[],...u?[vP.transactionFilter.of((e=>e.newDoc.lines>1?[]:e))]:[],...p?[$B.lineWrapping]:[]];return l&&w.push($B.editable.of(!1)),u&&c&&(c=c.toString().split("\n")[0]),this._cmEditor=new $B({state:vP.create({doc:c,extensions:w}),parent:e}),this}J$.prototype.setValue=function(e){this._cmEditor.dispatch({changes:{from:0,to:this._cmEditor.state.doc.length,insert:e}})},J$.prototype.focus=function(e){const t=this._cmEditor;if(t.contentDOM.focus(),t.focus(),"number"==typeof e){const n=t.state.doc.length;t.dispatch({selection:{anchor:e<=n?e:n}})}},J$.prototype.getSelection=function(){return this._cmEditor.state.selection};const ej=[iN("function(${params}) ${body}",{label:"function",detail:"definition",type:"keyword"}),iN("for ${var} in ${collection} return ${value}",{label:"for",detail:"expression",type:"keyword"}),iN("every ${var} in ${collection} satisfies ${condition}",{label:"every",detail:"quantified expression",type:"keyword"}),iN("some ${var} in ${collection} satisfies ${condition}",{label:"some",detail:"quantified expression",type:"keyword"}),iN("if ${condition} then ${value} else ${other value}",{label:"if",detail:"block",type:"keyword"}),iN("{ ${key}: ${value} }",{label:"context",detail:"block",type:"keyword"})];function tj(){return tj=Object.assign?Object.assign.bind():function(e){for(var t=1;t{const{state:s,pos:a}=e,l=function(e,t){for(Array.isArray(t)||(t=[t]);e;e=e.parent){if(t.includes(e.name))return e;if(e.type.isTop)break}return null}(KR(s).resolveInner(a,-1),n);return l?sj(l,a,[r,i])||function(e,t,n){return aj(e,t,n,1)}(l,a,[r,o])||o&&!sj(l,a,[o])?null:t(e):null}}({nodes:t,before:i,after:n,keyword:o},oL([{label:o,type:"keyword",boost:10}]))}const ij=[nj({context:"InExpression",keyword:"in"}),nj({context:"IfExpression",keyword:"then",after:"if",before:"else"}),nj({context:"IfExpression",keyword:"else",after:"then"}),nj({context:"QuantifiedExpression",keyword:"satisfies"}),nj({context:"ForExpression",after:"InExpressions",keyword:"return"})],oj=["StringLiteral","Identifier","LineComment","BlockComment","PathExpression"];function rj(e){return t=oj,n=oL(e.map((e=>tj({},e,{type:"text"})))),e=>{for(let n=KR(e.state).resolveInner(e.pos,-1);n;n=n.parent){if(t.indexOf(n.name)>-1)return null;if(n.type.isTop)break}return n(e)};var t,n}function sj(e,t,n){return aj(e,t,n,-1)}function aj(e,t,n,i){let o=e[i>0?"childAfter":"childBefore"](t);for(;o;){if(n.includes(o.name))return o;if(o.type.isError&&o.firstChild&&n.includes(o.firstChild.name))return o.firstChild;o=o[i>0?"nextSibling":"prevSibling"]}return null}const lj=YR.define({parser:E$.configure({props:[fD.add({Context:wD({closing:"}"}),"List FilterExpression":wD({closing:"]"}),"ParenthesizedExpression FunctionInvocation":_D({except:/^\s*\)/}),"ForExpression QuantifiedExpression IfExpression":_D({except:/^\s*(then|else|return|satisfies)\b/}),FunctionDefinition:_D({except:/^\s*(\(|\))/})}),SD.add({Context:CD,List:CD,ParenthesizedExpression:CD,FunctionDefinition(e){const t=e.getChild(")");return t?{from:t.to,to:e.to}:null}})]}),languageData:{indentOnInput:/^\s*(\)|\}|\]|then|else|return|satisfies)$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}}}}),cj=lj.configure({top:"UnaryTests"},"FEEL unary tests"),hj=lj.configure({top:"Expression"},"FEEL expression");var uj=[nI(C$())],pj=[$B.theme({"& .cm-content":{padding:"0px"},"& .cm-line":{padding:"0px"},"&.cm-editor.cm-focused":{outline:"none"},"& .cm-completionInfo":{whiteSpace:"pre-wrap",overflow:"hidden",textOverflow:"ellipsis"},"& .cm-completionInfo > *":{whiteSpace:"normal"},"& .cm-completionInfo ul":{margin:0,paddingLeft:"15px"},"& .cm-completionInfo pre":{marginBottom:0,whiteSpace:"pre-wrap"},"& .cm-completionInfo p":{marginTop:0},"& .cm-completionInfo p:not(:last-of-type)":{marginBottom:0}}),$B.baseTheme({"& .variableName":{color:"#10f"},"& .number":{color:"#164"},"& .string":{color:"#a11"},"& .bool":{color:"#219"},"& .function":{color:"#aa3731",fontWeight:"bold"},"& .control":{color:"#708"}}),TD(OD.define([{tag:KC.variableName,class:"variableName"},{tag:KC.name,class:"variableName"},{tag:KC.number,class:"number"},{tag:KC.string,class:"string"},{tag:KC.bool,class:"bool"},{tag:KC.function(KC.variableName),class:"function"},{tag:KC.function(KC.special(KC.variableName)),class:"function"},{tag:KC.controlKeyword,class:"control"},{tag:KC.operatorKeyword,class:"control"}]))];function dj(e){return e&&e.from===e.to}function fj(e){return!!e&&("PathExpression"===e.name||fj(e.parent))}function mj({variables:e}){return t=>{const n=KR(t.state).resolve(t.pos,-1);if(!fj(n))return;const i=function(e){for(;e;){if("PathExpression"===e.name)return e;e=e.parent}}(n),o=n===i?t.pos:n.from,r=gj(i,t);let s=e;for(var a=0;ae.name===r[a].name));if(!l)return null;if("optional"!==l.isList&&!!l.isList!==r[a].isList)return;s=l.entries}return s?(s=s.map((e=>({label:e.name,type:"variable",info:e.info,detail:e.detail}))),{from:o,options:s}):void 0}}function gj(e,t){let n=[];for(let i=e.firstChild;i;i=i.nextSibling)"PathExpression"===i.name?n.push(...gj(i,t)):"FilterExpression"===i.name?n.push(...vj(i,t)):n.push({name:yj(i,t),isList:!1});return n}function vj(e,t){const n=e.firstChild;if("PathExpression"===n.name){const e=gj(n,t);return e[e.length-1].isList=!0,e}return[{name:yj(n,t),isList:!0}]}function yj(e,t){return t.state.sliceDoc(e.from,e.to)}function bj({variables:e=[],builtins:t=[]}){const n=function(e,t){return[].concat(e.map((e=>wj(e))),t.map((e=>wj(e))))}(e,t);return n.length?e=>{const{pos:t,state:i}=e,o=KR(i).resolve(t,-1);return function(e,t){const n=e.nextSibling;return dj(e)||n&&n.from===t&&dj(n)}(o,t)?e.explicit?{from:t,options:n}:null:!function(e){return e&&e.parent&&"VariableName"===e.parent.name}(o)||fj(o)?null:{from:o.from,options:n}}:e=>null}function wj(e,t){return"function"===e.type?function(e,t){const{name:n,info:i,detail:o,params:r=[]}=e,s=r.map((({name:e,type:t},n)=>({name:e||`param ${n+1}`,type:t}))),a=`${n}(${s.map((e=>"${"+e.name+"}")).join(", ")})`,l=s.map((({name:e,type:t})=>t?`${e}: ${t}`:e)).join(", ");return iN(a,{label:`${n}(${l})`,type:"function",info:i,detail:o,boost:t})}(e,t):{label:e.name,type:"variable",info:e.info,detail:e.detail,boost:t}}function xj({variables:e=[],builtins:t=[]}){return[mj({variables:e}),bj({variables:e,builtins:t}),rj(ej.map((e=>({...e,boost:-1})))),...ij]}const _j=DO.define(),Ej=DO.define(),kj=DO.define();function Sj({dialect:e="expression",variables:t=[],builtins:n=[],completions:i=xj({builtins:n,variables:t})}){const o=function(e,t){return e.slice().reverse().reduce(((e,t)=>(e[t.name]=()=>{},e)),{})}([...t,...n]);return[kj.of(e),_j.of(n),Ej.of(t),(r={dialect:e,context:o,completions:i},function(e={}){const t=("unaryTests"===e.dialect?cj:hj).configure({contextTracker:y$(e.context)}),n=e.completions||[rj(ej),ij].flat();return new aD(t,[...n.map((e=>t.data.of({autocomplete:e})))])}(r))];var r}const Cj=[{name:"not(negand)",description:'

    Returns the logical negation of the given value.

    \n

    Function signature

    \n
    not(negand: boolean): boolean\n
    \n

    Examples

    \n
    not(true)\n// false\n\nnot(null)\n// null\n
    \n'},{name:"is defined(value)",description:'

    Camunda Extension

    \n

    Checks if a given value is not null. If the value is null then the function returns false.\nOtherwise, the function returns true.

    \n

    Function signature

    \n
    is defined(value: Any): boolean\n
    \n

    Examples

    \n
    is defined(1)\n// true\n\nis defined(null)\n// false\n\nis defined(x)\n// false - if no variable "x" exists\n\nis defined(x.y)\n// false - if no variable "x" exists or it doesn't have a property "y"\n
    \n

    :::caution Breaking change

    \n

    This function worked differently in previous versions. It returned true if the value was null.\nSince this version, the function returns false if the value is null.

    \n

    :::

    \n'},{name:"get or else(value, default)",description:'

    Camunda Extension

    \n

    Return the provided value parameter if not null, otherwise return the default parameter

    \n

    Function signature

    \n
    get or else(value: Any, default: Any): Any\n
    \n

    Examples

    \n
    get or else("this", "default")\n// "this"\n\nget or else(null, "default")\n// "default"\n\nget or else(null, null)\n// null\n
    \n'},{name:"assert(value, condition)",description:'

    Camunda Extension

    \n

    Verify that the given condition is met. If the condition is true, the function returns the value.\nOtherwise, the evaluation fails with an error.

    \n

    Function signature

    \n
    assert(value: Any, condition: Any)\n
    \n

    Examples

    \n
    assert(x, x != null)\n// "value" - if x is "value"\n// error - if x is null or doesn't exist\n\nassert(x, x >= 0)\n// 4 - if x is 4\n// error - if x is less than zero\n
    \n'},{name:"assert(value, condition, cause)",description:'

    Camunda Extension

    \n

    Verify that the given condition is met. If the condition is true, the function returns the value.\nOtherwise, the evaluation fails with an error containing the given message.

    \n

    Function signature

    \n
    assert(value: Any, condition: Any, cause: String)\n
    \n

    Examples

    \n
    assert(x, x != null, "'x' should not be null")\n// "value" - if x is "value"\n// error('x' should not be null) - if x is null or doesn't exist\n\nassert(x, x >= 0, "'x' should be positive")\n// 4 - if x is 4\n// error('x' should be positive) - if x is less than zero\n
    \n'},{name:"get value(context, key)",description:'

    Returns the value of the context entry with the given key.

    \n

    Function signature

    \n
    get value(context: context, key: string): Any\n
    \n

    Examples

    \n
    get value({foo: 123}, "foo")\n// 123\n\nget value({a: 1}, "b")\n// null\n
    \n'},{name:"get value(context, keys)",description:'

    Camunda Extension

    \n

    Returns the value of the context entry for a context path defined by the given keys.

    \n

    If keys contains the keys [k1, k2] then it returns the value at the nested entry k1.k2 of the context.

    \n

    If keys are empty or the nested entry defined by the keys doesn't exist in the context, it returns null.

    \n

    Function signature

    \n
    get value(context: context, keys: list<string>): Any\n
    \n

    Examples

    \n
    get value({x:1, y: {z:0}}, ["y", "z"])\n// 0\n\nget value({x: {y: {z:0}}}, ["x", "y"])\n// {z:0}\n\nget value({a: {b: 3}}, ["b"])\n// null\n
    \n'},{name:"get entries(context)",description:'

    Returns the entries of the context as a list of key-value-pairs.

    \n

    Function signature

    \n
    get entries(context: context): list<context>\n
    \n

    The return value is a list of contexts. Each context contains two entries for "key" and "value".

    \n

    Examples

    \n
    get entries({foo: 123})\n// [{key: "foo", value: 123}]\n
    \n'},{name:"context put(context, key, value)",description:'

    Adds a new entry with the given key and value to the context. Returns a new context that includes the entry.

    \n

    If an entry for the same key already exists in the context, it overrides the value.

    \n

    Function signature

    \n
    context put(context: context, key: string, value: Any): context\n
    \n

    Examples

    \n
    context put({x:1}, "y", 2)\n// {x:1, y:2}\n
    \n

    :::info\nThe function context put() replaced the previous function put() (Camunda Extension). The\nprevious function is deprecated and should not be used anymore.\n:::

    \n'},{name:"context put(context, keys, value)",description:'

    Adds a new entry with the given value to the context. The path of the entry is defined by the keys. Returns a new context that includes the entry.

    \n

    If keys contains the keys [k1, k2] then it adds the nested entry k1.k2 = value to the context.

    \n

    If an entry for the same keys already exists in the context, it overrides the value.

    \n

    If keys are empty, it returns null.

    \n

    Function signature

    \n
    context put(context: context, keys: list<string>, value: Any): context\n
    \n

    Examples

    \n
    context put({x:1}, ["y"], 2)\n// {x:1, y:2}\n\ncontext put({x:1, y: {z:0}}, ["y", "z"], 2)\n// {x:1, y: {z:2}}\n\ncontext put({x:1}, ["y", "z"], 2)\n// {x:1, y: {z:2}}\n
    \n'},{name:"context merge(contexts)",description:'

    Union the given contexts. Returns a new context that includes all entries of the given contexts.

    \n

    If an entry for the same key already exists in a context, it overrides the value. The entries are overridden in the same order as in the list of contexts.

    \n

    Function signature

    \n
    context merge(contexts: list<context>): context\n
    \n

    Examples

    \n
    context merge([{x:1}, {y:2}])\n// {x:1, y:2}\n\ncontext merge([{x:1, y: 0}, {y:2}])\n// {x:1, y:2}\n
    \n

    :::info\nThe function context merge() replaced the previous function put all() (Camunda Extension). The\nprevious function is deprecated and should not be used anymore.\n:::

    \n'},{name:"string(from)",description:'

    Returns the given value as a string representation.

    \n

    Function signature

    \n
    string(from: Any): string\n
    \n

    Examples

    \n
    string(1.1)\n// "1.1"\n\nstring(date("2012-12-25"))\n// "2012-12-25"\n
    \n'},{name:"number(from)",description:'

    Parses the given string to a number.

    \n

    Function signature

    \n
    number(from: string): number\n
    \n

    Examples

    \n
    number("1500.5")\n// 1500.5\n
    \n'},{name:"context(entries)",description:'

    Constructs a context of the given list of key-value pairs. It is the reverse function to get entries().

    \n

    Each key-value pair must be a context with two entries: key and value. The entry with name key must have a value of the type string.

    \n

    It might override context entries if the keys are equal. The entries are overridden in the same order as the contexts in the given list.

    \n

    Returns null if one of the entries is not a context or if a context doesn't contain the required entries.

    \n

    Function signature

    \n
    context(entries: list<context>): context\n
    \n

    Examples

    \n
    context([{"key":"a", "value":1}, {"key":"b", "value":2}])\n// {a:1, b:2}\n
    \n'},{name:"date(from)",description:'

    Returns a date from the given value.

    \n

    Function signature

    \n
    date(from: string): date\n
    \n

    Parses the given string into a date.

    \n
    date(from: date and time): date\n
    \n

    Extracts the date component from the given date and time.

    \n

    Examples

    \n
    date("2018-04-29")\n// date("2018-04-29")\n\ndate(date and time("2012-12-25T11:00:00"))\n// date("2012-12-25")\n
    \n'},{name:"date(year, month, day)",description:'

    Returns a date from the given components.

    \n

    Function signature

    \n
    date(year: number, month: number, day: number): date\n
    \n

    Examples

    \n
    date(2012, 12, 25)\n// date("2012-12-25")\n
    \n'},{name:"time(from)",description:'

    Returns a time from the given value.

    \n

    Function signature

    \n
    time(from: string): time\n
    \n

    Parses the given string into a time.

    \n
    time(from: date and time): time\n
    \n

    Extracts the time component from the given date and time.

    \n

    Examples

    \n
    time("12:00:00")\n// time("12:00:00")\n\ntime(date and time("2012-12-25T11:00:00"))\n// time("11:00:00")\n
    \n'},{name:"time(hour, minute, second)",description:'

    Returns a time from the given components.

    \n

    Function signature

    \n
    time(hour: number, minute: number, second: number): time\n
    \n

    Examples

    \n
    time(23, 59, 0)\n// time("23:59:00")\n
    \n'},{name:"time(hour, minute, second, offset)",description:'

    Returns a time from the given components, including a timezone offset.

    \n

    Function signature

    \n
    time(hour: number, minute: number, second: number, offset: days and time duration): time\n
    \n

    Examples

    \n
    time(14, 30, 0, duration("PT1H"))\n// time("14:30:00+01:00")\n
    \n'},{name:"date and time(from)",description:'

    Parses the given string into a date and time.

    \n

    Function signature

    \n
    date and time(from: string): date and time\n
    \n

    Examples

    \n
    date and time("2018-04-29T09:30:00")\n// date and time("2018-04-29T09:30:00")\n
    \n'},{name:"date and time(date, time)",description:'

    Returns a date and time from the given components.

    \n

    Function signature

    \n
    date and time(date: date, time: time): date and time\n
    \n
    date and time(date: date and time, time: time): date and time\n
    \n

    Returns a date and time value that consists of the date component of date combined with time.

    \n

    Examples

    \n
    date and time(date("2012-12-24"),time("T23:59:00"))\n// date and time("2012-12-24T23:59:00")\n\ndate and time(date and time("2012-12-25T11:00:00"),time("T23:59:00"))\n// date and time("2012-12-25T23:59:00")\n
    \n'},{name:"date and time(date, timezone)",description:'

    Camunda Extension

    \n

    Returns the given date and time value at the given timezone.

    \n

    If date has a different timezone than timezone then it adjusts the time to match the local time of timezone.

    \n

    Function signature

    \n
    date and time(date: date and time, timezone: string): date and time\n
    \n

    Examples

    \n
    date and time(@"2020-07-31T14:27:30@Europe/Berlin", "America/Los_Angeles")\n// date and time("2020-07-31T05:27:30@America/Los_Angeles")\n\ndate and time(@"2020-07-31T14:27:30", "Z")\n// date and time("2020-07-31T12:27:30Z")\n
    \n'},{name:"duration(from)",description:'

    Parses the given string into a duration. The duration is either a days and time duration or a years and months duration.

    \n

    Function signature

    \n
    duration(from: string): days and time duration\n
    \n
    duration(from: string): years and months duration\n
    \n

    Examples

    \n
    duration("P5D")\n// duration("P5D")\n\nduration("P32Y")\n// duration("P32Y")\n
    \n'},{name:"years and months duration(from, to)",description:'

    Returns the years and months duration between from and to.

    \n

    Function signature

    \n
    years and months duration(from: date, to: date): years and months duration\n
    \n

    Examples

    \n
    years and months duration(date("2011-12-22"), date("2013-08-24"))\n// duration("P1Y8M")\n
    \n'},{name:"list contains(list, element)",description:'

    Returns true if the given list contains the element. Otherwise, returns false.

    \n

    Function signature

    \n
    list contains(list: list, element: Any): boolean\n
    \n

    Examples

    \n
    list contains([1,2,3], 2)\n// true\n
    \n'},{name:"count(list)",description:'

    Returns the number of elements of the given list.

    \n

    Function signature

    \n
    count(list: list): number\n
    \n

    Examples

    \n
    count([1,2,3])\n// 3\n
    \n'},{name:"min(list)",description:'

    Returns the minimum of the given list.

    \n

    Function signature

    \n
    min(list: list): Any\n
    \n

    All elements in list should have the same type and be comparable.

    \n

    The parameter list can be passed as a list or as a sequence of elements.

    \n

    Examples

    \n
    min([1,2,3])\n// 1\n\nmin(1,2,3)\n// 1\n
    \n'},{name:"max(list)",description:'

    Returns the maximum of the given list.

    \n

    Function signature

    \n
    max(list: list): Any\n
    \n

    All elements in list should have the same type and be comparable.

    \n

    The parameter list can be passed as a list or as a sequence of elements.

    \n

    Examples

    \n
    max([1,2,3])\n// 3\n\nmax(1,2,3)\n// 3\n
    \n'},{name:"sum(list)",description:'

    Returns the sum of the given list of numbers.

    \n

    Function signature

    \n
    sum(list: list<number>): number\n
    \n

    The parameter list can be passed as a list or as a sequence of elements.

    \n

    Examples

    \n
    sum([1,2,3])\n// 6\n\nsum(1,2,3)\n// 6\n
    \n'},{name:"product(list)",description:'

    Returns the product of the given list of numbers.

    \n

    Function signature

    \n
    product(list: list<number>): number\n
    \n

    The parameter list can be passed as a list or as a sequence of elements.

    \n

    Examples

    \n
    product([2, 3, 4])\n// 24\n\nproduct(2, 3, 4)\n// 24\n
    \n'},{name:"mean(list)",description:'

    Returns the arithmetic mean (i.e. average) of the given list of numbers.

    \n

    Function signature

    \n
    mean(list: list<number>): number\n
    \n

    The parameter list can be passed as a list or as a sequence of elements.

    \n

    Examples

    \n
    mean([1,2,3])\n// 2\n\nmean(1,2,3)\n// 2\n
    \n'},{name:"median(list)",description:'

    Returns the median element of the given list of numbers.

    \n

    Function signature

    \n
    median(list: list<number>): number\n
    \n

    The parameter list can be passed as a list or as a sequence of elements.

    \n

    Examples

    \n
    median(8, 2, 5, 3, 4)\n// 4\n\nmedian([6, 1, 2, 3])\n// 2.5\n
    \n'},{name:"stddev(list)",description:'

    Returns the standard deviation of the given list of numbers.

    \n

    Function signature

    \n
    stddev(list: list<number>): number\n
    \n

    The parameter list can be passed as a list or as a sequence of elements.

    \n

    Examples

    \n
    stddev(2, 4, 7, 5)\n// 2.0816659994661326\n\nstddev([2, 4, 7, 5])\n// 2.0816659994661326\n
    \n'},{name:"mode(list)",description:'

    Returns the mode of the given list of numbers.

    \n

    Function signature

    \n
    mode(list: list<number>): number\n
    \n

    The parameter list can be passed as a list or as a sequence of elements.

    \n

    Examples

    \n
    mode(6, 3, 9, 6, 6)\n// [6]\n\nmode([6, 1, 9, 6, 1])\n// [1, 6]\n
    \n'},{name:"all(list)",description:'

    Returns false if any element of the given list is false. Otherwise, returns true.

    \n

    If the given list is empty, it returns true.

    \n

    Function signature

    \n
    all(list: list<boolean>): boolean\n
    \n

    The parameter list can be passed as a list or as a sequence of elements.

    \n

    Examples

    \n
    all([true,false])\n// false\n\nall(false,null,true)\n// false\n
    \n

    :::info\nThe function all() replaced the previous function and(). The previous function is deprecated and\nshould not be used anymore.\n:::

    \n'},{name:"any(list)",description:'

    Returns true if any element of the given list is true. Otherwise, returns false.

    \n

    If the given list is empty, it returns false.

    \n

    Function signature

    \n
    any(list: list<boolean>): boolean\n
    \n

    The parameter list can be passed as a list or as a sequence of elements.

    \n

    Examples

    \n
    any([false,true])\n// true\n\nany(false,null,true)\n// true\n
    \n

    :::info\nThe function any() replaced the previous function or(). The previous function is deprecated and\nshould not be used anymore.\n:::

    \n'},{name:"sublist(list, start position)",description:'

    Returns a partial list of the given value starting at start position.

    \n

    Function signature

    \n
    sublist(list: list, start position: number): list\n
    \n

    The start position starts at the index 1. The last position is -1.

    \n

    Examples

    \n
    sublist([1,2,3], 2)\n// [2,3]\n
    \n'},{name:"sublist(list, start position, length)",description:'

    Returns a partial list of the given value starting at start position.

    \n

    Function signature

    \n
    sublist(list: list, start position: number, length: number): list\n
    \n

    The start position starts at the index 1. The last position is -1.

    \n

    Examples

    \n
    sublist([1,2,3], 1, 2)\n// [1,2]\n
    \n'},{name:"append(list, items)",description:'

    Returns the given list with all items appended.

    \n

    Function signature

    \n
    append(list: list, items: Any): list\n
    \n

    The parameter items can be a single element or a sequence of elements.

    \n

    Examples

    \n
    append([1], 2, 3)\n// [1,2,3]\n
    \n'},{name:"concatenate(lists)",description:'

    Returns a list that includes all elements of the given lists.

    \n

    Function signature

    \n
    concatenate(lists: list): list\n
    \n

    The parameter lists is a sequence of lists.

    \n

    Examples

    \n
    concatenate([1,2],[3])\n// [1,2,3]\n\nconcatenate([1],[2],[3])\n// [1,2,3]\n
    \n'},{name:"insert before(list, position, newItem)",description:'

    Returns the given list with newItem inserted at position.

    \n

    Function signature

    \n
    insert before(list: list, position: number, newItem: Any): list\n
    \n

    The position starts at the index 1. The last position is -1.

    \n

    Examples

    \n
    insert before([1,3],1,2)\n// [2,1,3]\n
    \n'},{name:"remove(list, position)",description:'

    Returns the given list without the element at position.

    \n

    Function signature

    \n
    remove(list: list, position: number): list\n
    \n

    The position starts at the index 1. The last position is -1.

    \n

    Examples

    \n
    remove([1,2,3], 2)\n// [1,3]\n
    \n'},{name:"reverse(list)",description:'

    Returns the given list in revered order.

    \n

    Function signature

    \n
    reverse(list: list): list\n
    \n

    Examples

    \n
    reverse([1,2,3])\n// [3,2,1]\n
    \n'},{name:"index of(list, match)",description:'

    Returns an ascending list of positions containing match.

    \n

    Function signature

    \n
    index of(list: list, match: Any): list<number>\n
    \n

    Examples

    \n
    index of([1,2,3,2],2)\n// [2,4]\n
    \n'},{name:"union(list)",description:'

    Returns a list that includes all elements of the given lists without duplicates.

    \n

    Function signature

    \n
    union(list: list): list\n
    \n

    The parameter list is a sequence of lists.

    \n

    Examples

    \n
    union([1,2],[2,3])\n// [1,2,3]\n
    \n'},{name:"distinct values(list)",description:'

    Returns the given list without duplicates.

    \n

    Function signature

    \n
    distinct values(list: list): list\n
    \n

    Examples

    \n
    distinct values([1,2,3,2,1])\n// [1,2,3]\n
    \n'},{name:"duplicate values(list)",description:'

    Camunda Extension

    \n

    Returns all duplicate values of the given list.

    \n

    Function signature

    \n
    duplicate values(list: list): list\n
    \n

    Examples

    \n
    duplicate values([1,2,3,2,1])\n// [1,2]\n
    \n'},{name:"flatten(list)",description:'

    Returns a list that includes all elements of the given list without nested lists.

    \n

    Function signature

    \n
    flatten(list: list): list\n
    \n

    Examples

    \n
    flatten([[1,2],[[3]], 4])\n// [1,2,3,4]\n
    \n'},{name:"sort(list, precedes)",description:'

    Returns the given list sorted by the precedes function.

    \n

    Function signature

    \n
    sort(list: list, precedes: function<(Any, Any) -> boolean>): list\n
    \n

    Examples

    \n
    sort(list: [3,1,4,5,2], precedes: function(x,y) x < y)\n// [1,2,3,4,5]\n
    \n'},{name:"string join(list)",description:'

    Joins a list of strings into a single string. This is similar to\nJava's joining\nfunction.

    \n

    If an item of the list is null, the item is ignored for the result string. If an item is\nneither a string nor null, the function returns null instead of a string.

    \n

    Function signature

    \n
    string join(list: list<string>): string\n
    \n

    Examples

    \n
    string join(["a","b","c"])\n// "abc"\n\nstring join(["a",null,"c"])\n// "ac"\n\nstring join([])\n// ""\n
    \n'},{name:"string join(list, delimiter)",description:'

    Joins a list of strings into a single string. This is similar to\nJava's joining\nfunction.

    \n

    If an item of the list is null, the item is ignored for the result string. If an item is\nneither a string nor null, the function returns null instead of a string.

    \n

    The resulting string contains a delimiter between each element.

    \n

    Function signature

    \n
    string join(list: list<string>, delimiter: string): string\n
    \n

    Examples

    \n
    string join(["a"], "X")\n// "a"\n\nstring join(["a","b","c"], ", ")\n// "a, b, c"\n
    \n'},{name:"string join(list, delimiter, prefix, suffix)",description:'

    Camunda Extension

    \n

    Joins a list of strings into a single string. This is similar to\nJava's joining\nfunction.

    \n

    If an item of the list is null, the item is ignored for the result string. If an item is\nneither a string nor null, the function returns null instead of a string.

    \n

    The resulting string starts with prefix, contains a delimiter between each element, and ends\nwith suffix.

    \n

    Function signature

    \n
    string join(list: list<string>, delimiter: string, prefix: string, suffix: string): string\n
    \n

    Examples

    \n
    string join(["a","b","c"], ", ", "[", "]")\n// "[a, b, c]"\n
    \n'},{name:"decimal(n, scale)",description:'

    Rounds the given value at the given scale.

    \n

    Function signature

    \n
    decimal(n: number, scale: number): number\n
    \n

    Examples

    \n
    decimal(1/3, 2)\n// .33\n\ndecimal(1.5, 0)\n// 2\n
    \n'},{name:"floor(n)",description:'

    Rounds the given value with rounding mode flooring.

    \n

    Function signature

    \n
    floor(n: number): number\n
    \n

    Examples

    \n
    floor(1.5)\n// 1\n\nfloor(-1.5)\n// -2\n
    \n'},{name:"floor(n, scale)",description:'

    Rounds the given value with rounding mode flooring at the given scale.

    \n

    Function signature

    \n
    floor(n: number, scale: number): number\n
    \n

    Examples

    \n
    floor(-1.56, 1)\n// -1.6\n
    \n'},{name:"ceiling(n)",description:'

    Rounds the given value with rounding mode ceiling.

    \n

    Function signature

    \n
    ceiling(n: number): number\n
    \n

    Examples

    \n
    ceiling(1.5)\n// 2\n\nceiling(-1.5)\n// -1\n
    \n'},{name:"ceiling(n, scale)",description:'

    Rounds the given value with rounding mode ceiling at the given scale.

    \n

    Function signature

    \n
    ceiling(n: number, scale: number): number\n
    \n

    Examples

    \n
    ceiling(-1.56, 1)\n// -1.5\n
    \n'},{name:"round up(n, scale)",description:'

    Rounds the given value with the rounding mode round-up at the given scale.

    \n

    Function signature

    \n
    round up(n: number, scale: number): number\n
    \n

    Examples

    \n
    round up(5.5)\n// 6\n\nround up(-5.5)\n// -6\n\nround up(1.121, 2)\n// 1.13\n\nround up(-1.126, 2)\n// -1.13\n
    \n'},{name:"round down(n, scale)",description:'

    Rounds the given value with the rounding mode round-down at the given scale.

    \n

    Function signature

    \n
    round down(n: number, scale: number): number\n
    \n

    Examples

    \n
    round down(5.5, 0)\n// 5\n\nround down (-5.5, 0)\n// -5\n\nround down (1.121, 2)\n// 1.12\n\nround down (-1.126, 2)\n// -1.12\n
    \n'},{name:"round half up(n, scale)",description:'

    Rounds the given value with the rounding mode round-half-up at the given scale.

    \n

    Function signature

    \n
    round half up(n: number, scale: number): number\n
    \n

    Examples

    \n
    round half up(5.5, 0)\n// 6\n\nround half up(-5.5, 0)\n// -6\n\nround half up(1.121, 2)\n// 1.12\n\nround half up(-1.126, 2)\n// -1.13\n
    \n'},{name:"round half down(n, scale)",description:'

    Rounds the given value with the rounding mode round-half-down at the given scale.

    \n

    Function signature

    \n
    round half down(n: number, scale: number): number\n
    \n

    Examples

    \n
    round half down (5.5, 0)\n// 5\n\nround half down (-5.5, 0)\n// -5\n\nround half down (1.121, 2)\n// 1.12\n\nround half down (-1.126, 2)\n// -1.13\n
    \n'},{name:"abs(number)",description:'

    Returns the absolute value of the given numeric value.

    \n

    Function signature

    \n
    abs(number: number): number\n
    \n

    Examples

    \n
    abs(10)\n// 10\n\nabs(-10)\n// 10\n
    \n'},{name:"modulo(dividend, divisor)",description:'

    Returns the remainder of the division of dividend by divisor.

    \n

    Function signature

    \n
    modulo(dividend: number, divisor: number): number\n
    \n

    Examples

    \n
    modulo(12, 5)\n// 2\n
    \n'},{name:"sqrt(number)",description:'

    Returns the square root of the given value.

    \n

    Function signature

    \n
    sqrt(number: number): number\n
    \n

    Examples

    \n
    sqrt(16)\n// 4\n
    \n'},{name:"log(number)",description:'

    Returns the natural logarithm (base e) of the given value.

    \n

    Function signature

    \n
    log(number: number): number\n
    \n

    Examples

    \n
    log(10)\n// 2.302585092994046\n
    \n'},{name:"exp(number)",description:'

    Returns the Euler’s number e raised to the power of the given number .

    \n

    Function signature

    \n
    exp(number: number): number\n
    \n

    Examples

    \n
    exp(5)\n// 148.4131591025766\n
    \n'},{name:"odd(number)",description:'

    Returns true if the given value is odd. Otherwise, returns false.

    \n

    Function signature

    \n
    odd(number: number): boolean\n
    \n

    Examples

    \n
    odd(5)\n// true\n\nodd(2)\n// false\n
    \n'},{name:"even(number)",description:'

    Returns true if the given is even. Otherwise, returns false.

    \n

    Function signature

    \n
    even(number: number): boolean\n
    \n

    Examples

    \n
    even(5)\n// false\n\neven(2)\n// true\n
    \n'},{name:"random number()",description:'

    Camunda Extension

    \n

    Returns a random number between 0 and 1.

    \n

    Function signature

    \n
    random number(): number\n
    \n

    Examples

    \n
    random number()\n// 0.9701618132579795\n
    \n'},{name:"before(point1, point2)",description:'

    Function signature

    \n
    before(point1: Any, point2: Any): boolean\n
    \n

    Examples

    \n
    before(1, 10)\n// true\n\nbefore(10, 1)\n// false\n
    \n'},{name:"before(range, point)",description:'

    Function signature

    \n
    before(range: range, point: Any): boolean\n
    \n

    Examples

    \n
    before([1..5], 10)\n// true\n
    \n'},{name:"before(point, range)",description:'

    Function signature

    \n
    before(point: Any, range: range): boolean\n
    \n

    Examples

    \n
    before(1, [2..5])\n// true\n
    \n'},{name:"before(range1, range2)",description:'

    Function signature

    \n
    before(range1: range, range2: range): boolean\n
    \n

    Examples

    \n
    before([1..5], [6..10])\n// true\n\nbefore([1..5),[5..10])\n// true\n
    \n'},{name:"after(point1, point2)",description:'

    Function signature

    \n
    after(point1: Any, point2: Any): boolean\n
    \n

    Examples

    \n
    after(10, 1)\n// true\n\nafter(1, 10)\n// false\n
    \n'},{name:"after(range, point)",description:'

    Function signature

    \n
    after(range: range, point: Any): boolean\n
    \n

    Examples

    \n
    after([1..5], 10)\n// false\n
    \n'},{name:"after(point, range)",description:'

    Function signature

    \n
    after(point: Any, range: range): boolean\n
    \n

    Examples

    \n
    after(12, [2..5])\n// true\n
    \n'},{name:"after(range1, range2)",description:'

    Function signature

    \n
    after(range1: range, range2: range): boolean\n
    \n

    Examples

    \n
    after([6..10], [1..5])\n// true\n\nafter([5..10], [1..5))\n// true\n
    \n'},{name:"meets(range1, range2)",description:'

    Function signature

    \n
    meets(range1: range, range2: range): boolean\n
    \n

    Examples

    \n
    meets([1..5], [5..10])\n// true\n\nmeets([1..3], [4..6])\n// false\n\nmeets([1..3], [3..5])\n// true\n\nmeets([1..5], (5..8])\n// false\n
    \n'},{name:"met by(range1, range2)",description:'

    Function signature

    \n
    met by(range1: range, range2: range): boolean\n
    \n

    Examples

    \n
    met by([5..10], [1..5])\n// true\n\nmet by([3..4], [1..2])\n// false\n\nmet by([3..5], [1..3])\n// true\n\nmet by((5..8], [1..5))\n// false\n\nmet by([5..10], [1..5))\n// false\n
    \n'},{name:"overlaps(range1, range2)",description:'

    Function signature

    \n
    overlaps(range1: range, range2: range): boolean\n
    \n

    Examples

    \n
    overlaps([5..10], [1..6])\n// true\n\noverlaps((3..7], [1..4])\n// true\n\noverlaps([1..3], (3..6])\n// false\n\noverlaps((5..8], [1..5))\n// false\n\noverlaps([4..10], [1..5))\n// true\n
    \n'},{name:"overlaps before(range1, range2)",description:'

    Function signature

    \n
    overlaps before(range1: range, range2: range): boolean\n
    \n

    Examples

    \n
    overlaps before([1..5], [4..10])\n// true\n\noverlaps before([3..4], [1..2])\n// false\n\noverlaps before([1..3], (3..5])\n// false\n\noverlaps before([1..5), (3..8])\n// true\n\noverlaps before([1..5), [5..10])\n// false\n
    \n'},{name:"overlaps after(range1, range2)",description:'

    Function signature

    \n
    overlaps after(range1: range, range2: range): boolean\n
    \n

    Examples

    \n
    overlaps after([4..10], [1..5])\n// true\n\noverlaps after([3..4], [1..2])\n// false\n\noverlaps after([3..5], [1..3))\n// false\n\noverlaps after((5..8], [1..5))\n// false\n\noverlaps after([4..10], [1..5))\n// true\n
    \n'},{name:"finishes(point, range)",description:'

    Function signature

    \n
    finishes(point: Any, range: range): boolean\n
    \n

    Examples

    \n
    finishes(5, [1..5])\n// true\n\nfinishes(10, [1..7])\n// false\n
    \n'},{name:"finishes(range1, range2)",description:'

    Function signature

    \n
    finishes(range1: range, range2: range): boolean\n
    \n

    Examples

    \n
    finishes([3..5], [1..5])\n// true\n\nfinishes((1..5], [1..5))\n// false\n\nfinishes([5..10], [1..10))\n// false\n
    \n'},{name:"finished by(range, point)",description:'

    Function signature

    \n
    finished by(range: range, point: Any): boolean\n
    \n

    Examples

    \n
    finished by([5..10], 10)\n// true\n\nfinished by([3..4], 2)\n// false\n
    \n'},{name:"finished by(range1, range2)",description:'

    Function signature

    \n
    finished by(range1: range, range2: range): boolean\n
    \n

    Examples

    \n
    finished by([1..5], [3..5])\n// true\n\nfinished by((5..8], [1..5))\n// false\n\nfinished by([5..10], (1..10))\n// false\n
    \n'},{name:"includes(range, point)",description:'

    Function signature

    \n
    includes(range: range, point: Any): boolean\n
    \n

    Examples

    \n
    includes([5..10], 6)\n// true\n\nincludes([3..4], 5)\n// false\n
    \n'},{name:"includes(range1, range2)",description:'

    Function signature

    \n
    includes(range1: range, range2: range): boolean\n
    \n

    Examples

    \n
    includes([1..10], [4..6])\n// true\n\nincludes((5..8], [1..5))\n// false\n\nincludes([1..10], [1..5))\n// true\n
    \n'},{name:"during(point, range)",description:'

    Function signature

    \n
    during(point: Any, range: range): boolean\n
    \n

    Examples

    \n
    during(5, [1..10])\n// true\n\nduring(12, [1..10])\n// false\n\nduring(1, (1..10])\n// false\n
    \n'},{name:"during(range1, range2)",description:'

    Function signature

    \n
    during(range1: range, range2: range): boolean\n
    \n

    Examples

    \n
    during([4..6], [1..10))\n// true\n\nduring((1..5], (1..10])\n// true\n
    \n'},{name:"starts(point, range)",description:'

    Function signature

    \n
    starts(point: Any, range: range): boolean\n
    \n

    Examples

    \n
    starts(1, [1..5])\n// true\n\nstarts(1, (1..8])\n// false\n
    \n'},{name:"starts(range1, range2)",description:'

    Function signature

    \n
    starts(range1: range, range2: range): boolean\n
    \n

    Examples

    \n
    starts((1..5], [1..5])\n// false\n\nstarts([1..10], [1..5])\n// false\n\nstarts((1..5), (1..10))\n// true\n
    \n'},{name:"started by(range, point)",description:'

    Function signature

    \n
    started by(range: range, point: Any): boolean\n
    \n

    Examples

    \n
    started by([1..10], 1)\n// true\n\nstarted by((1..10], 1)\n// false\n
    \n'},{name:"started by(range1, range2)",description:'

    Function signature

    \n
    started by(range1: range, range2: range): boolean\n
    \n

    Examples

    \n
    started by([1..10], [1..5])\n// true\n\nstarted by((1..10], [1..5))\n// false\n\nstarted by([1..10], [1..10))\n// true\n
    \n'},{name:"coincides(point1, point2)",description:'

    Function signature

    \n
    coincides(point1: Any, point2: Any): boolean\n
    \n

    Examples

    \n
    coincides(5, 5)\n// true\n\ncoincides(3, 4)\n// false\n
    \n'},{name:"coincides(range1, range2)",description:'

    Function signature

    \n
    coincides(range1: range, range2: range): boolean\n
    \n

    Examples

    \n
    coincides([1..5], [1..5])\n// true\n\ncoincides((1..5], [1..5))\n// false\n\ncoincides([1..5], [2..6])\n// false\n
    \n'},{name:"substring(string, start position)",description:'

    Returns a substring of the given value starting at start position.

    \n

    Function signature

    \n
    substring(string: string, start position: number): string\n
    \n

    The start position starts at the index 1. The last position is -1.

    \n

    Examples

    \n
    substring("foobar", 3)\n// "obar"\n
    \n'},{name:"substring(string, start position, length)",description:'

    Returns a substring of the given value starting at start position.

    \n

    Function signature

    \n
    substring(string: string, start position: number, length: number): string\n
    \n

    The start position starts at the index 1. The last position is -1.

    \n

    Examples

    \n
    substring("foobar", 3, 3)\n// "oba"\n
    \n'},{name:"string length(string)",description:'

    Returns the number of characters in the given value.

    \n

    Function signature

    \n
    string length(string: string): number\n
    \n

    Examples

    \n
    string length("foo")\n// 3\n
    \n'},{name:"upper case(string)",description:'

    Returns the given value with all characters are uppercase.

    \n

    Function signature

    \n
    upper case(string: string): string\n
    \n

    Examples

    \n
    upper case("aBc4")\n// "ABC4"\n
    \n'},{name:"lower case(string)",description:'

    Returns the given value with all characters are lowercase.

    \n

    Function signature

    \n
    lower case(string: string): string\n
    \n

    Examples

    \n
    lower case("aBc4")\n// "abc4"\n
    \n'},{name:"substring before(string, match)",description:'

    Returns a substring of the given value that contains all characters before match.

    \n

    Function signature

    \n
    substring before(string: string, match: string): string\n
    \n

    Examples

    \n
    substring before("foobar", "bar")\n// "foo"\n
    \n'},{name:"substring after(string, match)",description:'

    Returns a substring of the given value that contains all characters after match.

    \n

    Function signature

    \n
    substring after(string: string, match: string): string\n
    \n

    Examples

    \n
    substring after("foobar", "ob")\n// "ar"\n
    \n'},{name:"contains(string, match)",description:'

    Returns true if the given value contains the substring match. Otherwise, returns false.

    \n

    Function signature

    \n
    contains(string: string, match: string): boolean\n
    \n

    Examples

    \n
    contains("foobar", "of")\n// false\n
    \n'},{name:"starts with(string, match)",description:'

    Returns true if the given value starts with the substring match. Otherwise, returns false.

    \n

    Function signature

    \n
    starts with(string: string, match: string): boolean\n
    \n

    Examples

    \n
    starts with("foobar", "fo")\n// true\n
    \n'},{name:"ends with(string, match)",description:'

    Returns true if the given value ends with the substring match. Otherwise, returns false.

    \n

    Function signature

    \n
    ends with(string: string, match: string): boolean\n
    \n

    Examples

    \n
    ends with("foobar", "r")\n// true\n
    \n'},{name:"matches(input, pattern)",description:'

    Returns true if the given value matches the pattern. Otherwise, returns false.

    \n

    Function signature

    \n
    matches(input: string, pattern: string): boolean\n
    \n

    The pattern is a string that contains a regular expression.

    \n

    Examples

    \n
    matches("foobar", "^fo*bar")\n// true\n
    \n'},{name:"matches(input, pattern, flags)",description:'

    Returns true if the given value matches the pattern. Otherwise, returns false.

    \n

    Function signature

    \n
    matches(input: string, pattern: string, flags: string): boolean\n
    \n

    The pattern is a string that contains a regular expression.

    \n

    The flags can contain one or more of the following characters:

    \n
      \n
    • s (dot-all)
    • \n
    • m (multi-line)
    • \n
    • i (case insensitive)
    • \n
    • x (comments)
    • \n
    \n

    Examples

    \n
    matches("FooBar", "foo", "i")\n// true\n
    \n'},{name:"replace(input, pattern, replacement)",description:'

    Returns the resulting string after replacing all occurrences of pattern with replacement.

    \n

    Function signature

    \n
    replace(input: string, pattern: string, replacement: string): string\n
    \n

    The pattern is a string that contains a regular expression.

    \n

    The replacement can access the match groups by using $ and the number of the group, for example,\n$1 to access the first group.

    \n

    Examples

    \n
    replace("abcd", "(ab)|(a)", "[1=$1][2=$2]")\n// "[1=ab][2=]cd"\n\nreplace("0123456789", "(\\d{3})(\\d{3})(\\d{4})", "($1) $2-$3")\n// "(012) 345-6789"\n
    \n'},{name:"replace(input, pattern, replacement, flags)",description:'

    Returns the resulting string after replacing all occurrences of pattern with replacement.

    \n

    Function signature

    \n
    replace(input: string, pattern: string, replacement: string, flags: string): string\n
    \n

    The pattern is a string that contains a regular expression.

    \n

    The replacement can access the match groups by using $ and the number of the group, for example,\n$1 to access the first group.

    \n

    The flags can contain one or more of the following characters:

    \n
      \n
    • s (dot-all)
    • \n
    • m (multi-line)
    • \n
    • i (case insensitive)
    • \n
    • x (comments)
    • \n
    \n

    Examples

    \n
    replace("How do you feel?", "Feel", "FEEL", "i")\n// "How do you FEEL?"\n
    \n'},{name:"split(string, delimiter)",description:'

    Splits the given value into a list of substrings, breaking at each occurrence of the delimiter pattern.

    \n

    Function signature

    \n
    split(string: string, delimiter: string): list<string>\n
    \n

    The delimiter is a string that contains a regular expression.

    \n

    Examples

    \n
    split("John Doe", "\\s" )\n// ["John", "Doe"]\n\nsplit("a;b;c;;", ";")\n// ["a", "b", "c", "", ""]\n
    \n'},{name:"extract(string, pattern)",description:'

    Camunda Extension

    \n

    Returns all matches of the pattern in the given string. Returns an empty list if the pattern doesn't\nmatch.

    \n

    Function signature

    \n
    extract(string: string, pattern: string): list<string>\n
    \n

    The pattern is a string that contains a regular expression.

    \n

    Examples

    \n
    extract("references are 1234, 1256, 1378", "12[0-9]*")\n// ["1234","1256"]\n
    \n'},{name:"now()",description:'

    Returns the current date and time including the timezone.

    \n

    Function signature

    \n
    now(): date and time\n
    \n

    Examples

    \n
    now()\n// date and time("2020-07-31T14:27:30@Europe/Berlin")\n
    \n'},{name:"today()",description:'

    Returns the current date.

    \n

    Function signature

    \n
    today(): date\n
    \n

    Examples

    \n
    today()\n// date("2020-07-31")\n
    \n'},{name:"day of week(date)",description:'

    Returns the day of the week according to the Gregorian calendar. Note that it always returns the English name of the day.

    \n

    Function signature

    \n
    day of week(date: date): string\n
    \n
    day of week(date: date and time): string\n
    \n

    Examples

    \n
    day of week(date("2019-09-17"))\n// "Tuesday"\n\nday of week(date and time("2019-09-17T12:00:00"))\n// "Tuesday"\n
    \n'},{name:"day of year(date)",description:'

    Returns the Gregorian number of the day within the year.

    \n

    Function signature

    \n
    day of year(date: date): number\n
    \n
    day of year(date: date and time): number\n
    \n

    Examples

    \n
    day of year(date("2019-09-17"))\n// 260\n\nday of year(date and time("2019-09-17T12:00:00"))\n// 260\n
    \n'},{name:"week of year(date)",description:'

    Returns the Gregorian number of the week within the year, according to ISO 8601.

    \n

    Function signature

    \n
    week of year(date: date): number\n
    \n
    week of year(date: date and time): number\n
    \n

    Examples

    \n
    week of year(date("2019-09-17"))\n// 38\n\nweek of year(date and time("2019-09-17T12:00:00"))\n// 38\n
    \n'},{name:"month of year(date)",description:'

    Returns the month of the year according to the Gregorian calendar. Note that it always returns the English name of the month.

    \n

    Function signature

    \n
    month of year(date: date): string\n
    \n
    month of year(date: date and time): string\n
    \n

    Examples

    \n
    month of year(date("2019-09-17"))\n// "September"\n\nmonth of year(date and time("2019-09-17T12:00:00"))\n// "September"\n
    \n'},{name:"abs(n)",description:'

    Returns the absolute value of a given duration.

    \n

    Function signature

    \n
    abs(n: days and time duration): days and time duration\n
    \n
    abs(n: years and months duration): years and months duration\n
    \n

    Examples

    \n
    abs(duration("-PT5H"))\n// "duration("PT5H")"\n\nabs(duration("PT5H"))\n// "duration("PT5H")"\n\nabs(duration("-P2M"))\n// duration("P2M")\n
    \n'},{name:"last day of month(date)",description:'

    Camunda Extension

    \n

    Takes the month of the given date or date-time value and returns the last day of this month.

    \n

    Function signature

    \n
    last day of month(date: date): date\n
    \n
    last day of month(date: date and time): date\n
    \n

    Examples

    \n
    last day of month(date("2022-10-01"))\n// date("2022-10-31"))\n\nlast day of month(date and time("2022-10-16T12:00:00"))\n// date("2022-10-31"))\n
    \n'}].map((function(e){const{name:t,description:n}=e,i=t.match(/^([\w\s]+)\((.*)\)$/),o=i[1],r=i[2].split(", ").map((e=>({name:e})));return{name:o,type:"function",params:r,info:()=>Kt(`
    ${n}
    `),boost:0}})),Oj=new WO,Pj=new WO;function Mj({extensions:e=[],dialect:t="expression",container:n,contentAttributes:i={},tooltipContainer:o,onChange:r=(()=>{}),onKeyDown:s=(()=>{}),onLint:a=(()=>{}),placeholder:l="",readOnly:c=!1,value:h="",builtins:u=Cj,variables:p=[]}){const d=$B.updateListener.of((e=>{e.docChanged&&r(e.state.doc.toString())})),f=$B.updateListener.of((e=>{const t=e.transactions.flatMap((e=>e.effects)).filter((e=>e.is(Gz)));if(!t.length)return;const n=t.flatMap((e=>e.value));a(n)})),m=$B.domEventHandlers({keydown:s});"string"==typeof o&&(o=document.querySelector(o));const g=o?oR({tooltipSpace:function(){return o.getBoundingClientRect()}}):[],v=[xN(),Oj.of(Sj({dialect:t,builtins:u,variables:p})),HD(),kD(),cN(),$B.contentAttributes.of(i),d,m,XB.of([...Fz]),uj,f,g,Pj.of(tR(l)),pj,...e];return c&&v.push($B.editable.of(!1)),this._cmEditor=new $B({state:vP.create({doc:h,extensions:v}),parent:n}),this}Mj.prototype.setValue=function(e){this._cmEditor.dispatch({changes:{from:0,to:this._cmEditor.state.doc.length,insert:e}})},Mj.prototype.focus=function(e){const t=this._cmEditor;if(t.contentDOM.focus(),t.focus(),"number"==typeof e){const n=t.state.doc.length;t.dispatch({selection:{anchor:e<=n?e:n}})}},Mj.prototype.getSelection=function(){return this._cmEditor.state.selection},Mj.prototype.setVariables=function(e){const{dialect:t,builtins:n}={builtins:(i=this._cmEditor.state).facet(_j)[0],variables:i.facet(Ej)[0],dialect:i.facet(kj)[0]};var i;this._cmEditor.dispatch({effects:[Oj.reconfigure(Sj({dialect:t,builtins:n,variables:e}))]})},Mj.prototype.setPlaceholder=function(e){this._cmEditor.dispatch({effects:Pj.reconfigure(tR(e))})};var Aj=["input:not([inert])","select:not([inert])","textarea:not([inert])","a[href]:not([inert])","button:not([inert])","[tabindex]:not(slot):not([inert])","audio[controls]:not([inert])","video[controls]:not([inert])",'[contenteditable]:not([contenteditable="false"]):not([inert])',"details>summary:first-of-type:not([inert])","details:not([inert])"],Tj=Aj.join(","),Bj="undefined"==typeof Element,Rj=Bj?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,Dj=!Bj&&Element.prototype.getRootNode?function(e){var t;return null==e||null===(t=e.getRootNode)||void 0===t?void 0:t.call(e)}:function(e){return null==e?void 0:e.ownerDocument},Lj=function e(t,n){var i;void 0===n&&(n=!0);var o=null==t||null===(i=t.getAttribute)||void 0===i?void 0:i.call(t,"inert");return""===o||"true"===o||n&&t&&e(t.parentNode)},Nj=function(e,t,n){if(Lj(e))return[];var i=Array.prototype.slice.apply(e.querySelectorAll(Tj));return t&&Rj.call(e,Tj)&&i.unshift(e),i.filter(n)},zj=function e(t,n,i){for(var o=[],r=Array.from(t);r.length;){var s=r.shift();if(!Lj(s,!1))if("SLOT"===s.tagName){var a=s.assignedElements(),l=e(a.length?a:s.children,!0,i);i.flatten?o.push.apply(o,l):o.push({scopeParent:s,candidates:l})}else{Rj.call(s,Tj)&&i.filter(s)&&(n||!t.includes(s))&&o.push(s);var c=s.shadowRoot||"function"==typeof i.getShadowRoot&&i.getShadowRoot(s),h=!Lj(c,!1)&&(!i.shadowRootFilter||i.shadowRootFilter(s));if(c&&h){var u=e(!0===c?s.children:c.children,!0,i);i.flatten?o.push.apply(o,u):o.push({scopeParent:s,candidates:u})}else r.unshift.apply(r,s.children)}}return o},Ij=function(e){return!isNaN(parseInt(e.getAttribute("tabindex"),10))},Fj=function(e){if(!e)throw new Error("No node provided");return e.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||function(e){var t,n=null==e||null===(t=e.getAttribute)||void 0===t?void 0:t.call(e,"contenteditable");return""===n||"true"===n}(e))&&!Ij(e)?0:e.tabIndex},$j=function(e,t){return e.tabIndex===t.tabIndex?e.documentOrder-t.documentOrder:e.tabIndex-t.tabIndex},jj=function(e){return"INPUT"===e.tagName},qj=function(e){var t=e.getBoundingClientRect(),n=t.width,i=t.height;return 0===n&&0===i},Hj=function(e,t){return!(t.disabled||Lj(t)||function(e){return jj(e)&&"hidden"===e.type}(t)||function(e,t){var n=t.displayCheck,i=t.getShadowRoot;if("hidden"===getComputedStyle(e).visibility)return!0;var o=Rj.call(e,"details>summary:first-of-type")?e.parentElement:e;if(Rj.call(o,"details:not([open]) *"))return!0;if(n&&"full"!==n&&"legacy-full"!==n){if("non-zero-area"===n)return qj(e)}else{if("function"==typeof i){for(var r=e;e;){var s=e.parentElement,a=Dj(e);if(s&&!s.shadowRoot&&!0===i(s))return qj(e);e=e.assignedSlot?e.assignedSlot:s||a===e.ownerDocument?s:a.host}e=r}if(function(e){var t,n,i,o,r=e&&Dj(e),s=null===(t=r)||void 0===t?void 0:t.host,a=!1;if(r&&r!==e)for(a=!!(null!==(n=s)&&void 0!==n&&null!==(i=n.ownerDocument)&&void 0!==i&&i.contains(s)||null!=e&&null!==(o=e.ownerDocument)&&void 0!==o&&o.contains(e));!a&&s;){var l,c,h;a=!(null===(c=s=null===(l=r=Dj(s))||void 0===l?void 0:l.host)||void 0===c||null===(h=c.ownerDocument)||void 0===h||!h.contains(s))}return a}(e))return!e.getClientRects().length;if("legacy-full"!==n)return!0}return!1}(t,e)||function(e){return"DETAILS"===e.tagName&&Array.prototype.slice.apply(e.children).some((function(e){return"SUMMARY"===e.tagName}))}(t)||function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var t=e.parentElement;t;){if("FIELDSET"===t.tagName&&t.disabled){for(var n=0;n=0)},Gj=function e(t){var n=[],i=[];return t.forEach((function(t,o){var r=!!t.scopeParent,s=r?t.scopeParent:t,a=function(e,t){var n=Fj(e);return n<0&&t&&!Ij(e)?0:n}(s,r),l=r?e(t.candidates):s;0===a?r?n.push.apply(n,l):n.push(s):i.push({documentOrder:o,tabIndex:a,item:t,isScope:r,content:l})})),i.sort($j).reduce((function(e,t){return t.isScope?e.push.apply(e,t.content):e.push(t.content),e}),[]).concat(n)},Qj=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return!1!==Rj.call(e,Tj)&&Vj(t,e)},Xj=Aj.concat("iframe").join(","),Uj=function(e,t){if(t=t||{},!e)throw new Error("No node provided");return!1!==Rj.call(e,Xj)&&Hj(t,e)};function Yj(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function Kj(e){for(var t=1;t1?t-1:0),i=1;i1?n-1:0),s=1;s=0)e=i.activeElement;else{var t=s.tabbableGroups[0];e=t&&t.firstTabbableNode||c("fallbackFocus")}if(!e)throw new Error("Your focus-trap needs to have at least one focusable element");return e},u=function(){if(s.containerGroups=s.containers.map((function(e){var t=function(e,t){var n;return n=(t=t||{}).getShadowRoot?zj([e],t.includeContainer,{filter:Vj.bind(null,t),flatten:!1,getShadowRoot:t.getShadowRoot,shadowRootFilter:Wj}):Nj(e,t.includeContainer,Vj.bind(null,t)),Gj(n)}(e,r.tabbableOptions),n=function(e,t){return(t=t||{}).getShadowRoot?zj([e],t.includeContainer,{filter:Hj.bind(null,t),flatten:!0,getShadowRoot:t.getShadowRoot}):Nj(e,t.includeContainer,Hj.bind(null,t))}(e,r.tabbableOptions),i=t.length>0?t[0]:void 0,o=t.length>0?t[t.length-1]:void 0,s=n.find((function(e){return Qj(e)})),a=n.slice().reverse().find((function(e){return Qj(e)})),l=!!t.find((function(e){return Fj(e)>0}));return{container:e,tabbableNodes:t,focusableNodes:n,posTabIndexesFound:l,firstTabbableNode:i,lastTabbableNode:o,firstDomTabbableNode:s,lastDomTabbableNode:a,nextTabbableNode:function(e){var i=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],o=t.indexOf(e);return o<0?i?n.slice(n.indexOf(e)+1).find((function(e){return Qj(e)})):n.slice(0,n.indexOf(e)).reverse().find((function(e){return Qj(e)})):t[o+(i?1:-1)]}}})),s.tabbableGroups=s.containerGroups.filter((function(e){return e.tabbableNodes.length>0})),s.tabbableGroups.length<=0&&!c("fallbackFocus"))throw new Error("Your focus-trap must have at least one container with at least one tabbable node in it at all times");if(s.containerGroups.find((function(e){return e.posTabIndexesFound}))&&s.containerGroups.length>1)throw new Error("At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.")},p=function e(t){var n=t.activeElement;if(n)return n.shadowRoot&&null!==n.shadowRoot.activeElement?e(n.shadowRoot):n},d=function e(t){!1!==t&&t!==p(document)&&(t&&t.focus?(t.focus({preventScroll:!!r.preventScroll}),s.mostRecentlyFocusedNode=t,function(e){return e.tagName&&"input"===e.tagName.toLowerCase()&&"function"==typeof e.select}(t)&&t.select()):e(h()))},f=function(e){var t=c("setReturnFocus",e);return t||!1!==t&&e},m=function(e){var t=e.target,n=e.event,i=e.isBackward,o=void 0!==i&&i;t=t||oq(n),u();var a=null;if(s.tabbableGroups.length>0){var h=l(t,n),p=h>=0?s.containerGroups[h]:void 0;if(h<0)a=o?s.tabbableGroups[s.tabbableGroups.length-1].lastTabbableNode:s.tabbableGroups[0].firstTabbableNode;else if(o){var d=nq(s.tabbableGroups,(function(e){var n=e.firstTabbableNode;return t===n}));if(d<0&&(p.container===t||Uj(t,r.tabbableOptions)&&!Qj(t,r.tabbableOptions)&&!p.nextTabbableNode(t,!1))&&(d=h),d>=0){var f=0===d?s.tabbableGroups.length-1:d-1,m=s.tabbableGroups[f];a=Fj(t)>=0?m.lastTabbableNode:m.lastDomTabbableNode}else Zj(n)||(a=p.nextTabbableNode(t,!1))}else{var g=nq(s.tabbableGroups,(function(e){var n=e.lastTabbableNode;return t===n}));if(g<0&&(p.container===t||Uj(t,r.tabbableOptions)&&!Qj(t,r.tabbableOptions)&&!p.nextTabbableNode(t))&&(g=h),g>=0){var v=g===s.tabbableGroups.length-1?0:g+1,y=s.tabbableGroups[v];a=Fj(t)>=0?y.firstTabbableNode:y.firstDomTabbableNode}else Zj(n)||(a=p.nextTabbableNode(t))}}else a=c("fallbackFocus");return a},g=function(e){var t=oq(e);l(t,e)>=0||(iq(r.clickOutsideDeactivates,e)?n.deactivate({returnFocus:r.returnFocusOnDeactivate}):iq(r.allowOutsideClick,e)||e.preventDefault())},v=function(e){var t=oq(e),n=l(t,e)>=0;if(n||t instanceof Document)n&&(s.mostRecentlyFocusedNode=t);else{var i;e.stopImmediatePropagation();var o=!0;if(s.mostRecentlyFocusedNode)if(Fj(s.mostRecentlyFocusedNode)>0){var a=l(s.mostRecentlyFocusedNode),c=s.containerGroups[a].tabbableNodes;if(c.length>0){var u=c.findIndex((function(e){return e===s.mostRecentlyFocusedNode}));u>=0&&(r.isKeyForward(s.recentNavEvent)?u+1=0&&(i=c[u-1],o=!1))}}else s.containerGroups.some((function(e){return e.tabbableNodes.some((function(e){return Fj(e)>0}))}))||(o=!1);else o=!1;o&&(i=m({target:s.mostRecentlyFocusedNode,isBackward:r.isKeyBackward(s.recentNavEvent)})),d(i||s.mostRecentlyFocusedNode||h())}s.recentNavEvent=void 0},y=function(e){if(!(t=e,"Escape"!==(null==t?void 0:t.key)&&"Esc"!==(null==t?void 0:t.key)&&27!==(null==t?void 0:t.keyCode)||!1===iq(r.escapeDeactivates,e)))return e.preventDefault(),void n.deactivate();var t;(r.isKeyForward(e)||r.isKeyBackward(e))&&function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];s.recentNavEvent=e;var n=m({event:e,isBackward:t});n&&(Zj(e)&&e.preventDefault(),d(n))}(e,r.isKeyBackward(e))},b=function(e){var t=oq(e);l(t,e)>=0||iq(r.clickOutsideDeactivates,e)||iq(r.allowOutsideClick,e)||(e.preventDefault(),e.stopImmediatePropagation())},w=function(){if(s.active)return function(e,t){if(e.length>0){var n=e[e.length-1];n!==t&&n.pause()}var i=e.indexOf(t);-1===i||e.splice(i,1),e.push(t)}(o,n),s.delayInitialFocusTimer=r.delayInitialFocus?tq((function(){d(h())})):d(h()),i.addEventListener("focusin",v,!0),i.addEventListener("mousedown",g,{capture:!0,passive:!1}),i.addEventListener("touchstart",g,{capture:!0,passive:!1}),i.addEventListener("click",b,{capture:!0,passive:!1}),i.addEventListener("keydown",y,{capture:!0,passive:!1}),n},x=function(){if(s.active)return i.removeEventListener("focusin",v,!0),i.removeEventListener("mousedown",g,!0),i.removeEventListener("touchstart",g,!0),i.removeEventListener("click",b,!0),i.removeEventListener("keydown",y,!0),n},_="undefined"!=typeof window&&"MutationObserver"in window?new MutationObserver((function(e){var t=e.some((function(e){return Array.from(e.removedNodes).some((function(e){return e===s.mostRecentlyFocusedNode}))}));t&&d(h())})):void 0,E=function(){_&&(_.disconnect(),s.active&&!s.paused&&s.containers.map((function(e){_.observe(e,{subtree:!0,childList:!0})})))};return(n={get active(){return s.active},get paused(){return s.paused},activate:function(e){if(s.active)return this;var t=a(e,"onActivate"),n=a(e,"onPostActivate"),o=a(e,"checkCanFocusTrap");o||u(),s.active=!0,s.paused=!1,s.nodeFocusedBeforeActivation=i.activeElement,null==t||t();var r=function(){o&&u(),w(),E(),null==n||n()};return o?(o(s.containers.concat()).then(r,r),this):(r(),this)},deactivate:function(e){if(!s.active)return this;var t=Kj({onDeactivate:r.onDeactivate,onPostDeactivate:r.onPostDeactivate,checkCanReturnFocus:r.checkCanReturnFocus},e);clearTimeout(s.delayInitialFocusTimer),s.delayInitialFocusTimer=void 0,x(),s.active=!1,s.paused=!1,E(),function(e,t){var n=e.indexOf(t);-1!==n&&e.splice(n,1),e.length>0&&e[e.length-1].unpause()}(o,n);var i=a(t,"onDeactivate"),l=a(t,"onPostDeactivate"),c=a(t,"checkCanReturnFocus"),h=a(t,"returnFocus","returnFocusOnDeactivate");null==i||i();var u=function(){tq((function(){h&&d(f(s.nodeFocusedBeforeActivation)),null==l||l()}))};return h&&c?(c(f(s.nodeFocusedBeforeActivation)).then(u,u),this):(u(),this)},pause:function(e){if(s.paused||!s.active)return this;var t=a(e,"onPause"),n=a(e,"onPostPause");return s.paused=!0,null==t||t(),x(),E(),null==n||n(),this},unpause:function(e){if(!s.paused||!s.active)return this;var t=a(e,"onUnpause"),n=a(e,"onPostUnpause");return s.paused=!1,null==t||t(),u(),w(),E(),null==n||n(),this},updateContainerElements:function(e){var t=[].concat(e).filter(Boolean);return s.containers=t.map((function(e){return"string"==typeof e?i.querySelector(e):e})),s.active&&u(),E(),this}}).updateContainerElements(e),n},aq=function(e){return aS("svg",{...e,children:aS("path",{fillRule:"evenodd",d:"m11.657 8-4.95 4.95a1 1 0 0 1-1.414-1.414L8.828 8 5.293 4.464A1 1 0 1 1 6.707 3.05L11.657 8Z"})})};aq.defaultProps={xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16"};var lq=function(e){return aS("svg",{...e,children:aS("path",{fillRule:"evenodd",d:"M9 13V9h4a1 1 0 0 0 0-2H9V3a1 1 0 1 0-2 0v4H3a1 1 0 1 0 0 2h4v4a1 1 0 0 0 2 0Z"})})};lq.defaultProps={xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16"};var cq=function(e){return aS("svg",{...e,children:aS("path",{fillRule:"evenodd",d:"M12 6v7c0 1.1-.4 1.55-1.5 1.55h-5C4.4 14.55 4 14.1 4 13V6h8Zm-1.5 1.5h-5v4.3c0 .66.5 1.2 1.111 1.2H9.39c.611 0 1.111-.54 1.111-1.2V7.5ZM13 3h-2l-1-1H6L5 3H3v1.5h10V3Z"})})};cq.defaultProps={xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16"};var hq=function(e){return aS("svg",{...e,children:[aS("path",{fill:"#fff",style:{mixBlendMode:"multiply"},d:"M0 0h16v16H0z"}),aS("path",{fill:"#fff",style:{mixBlendMode:"multiply"},d:"M0 0h16v16H0z"}),aS("path",{d:"M7 3H5v2h2V3zm4 0H9v2h2V3zM7 7H5v2h2V7zm4 0H9v2h2V7zm-4 4H5v2h2v-2zm4 0H9v2h2v-2z",fill:"#161616"})]})};hq.defaultProps={width:"16",height:"16",fill:"none",xmlns:"http://www.w3.org/2000/svg"};var uq=function(e){return aS("svg",{...e,children:aS("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M12.637 12.637v-4.72h1.362v4.721c0 .36-.137.676-.411.95-.275.275-.591.412-.95.412H3.362c-.38 0-.703-.132-.967-.396A1.315 1.315 0 0 1 2 12.638V3.362c0-.38.132-.703.396-.967S2.982 2 3.363 2h4.553v1.363H3.363v9.274h9.274ZM14 2H9.28l-.001 1.362h2.408L5.065 9.984l.95.95 6.622-6.622v2.409H14V2Z",fill:"currentcolor"})})};uq.defaultProps={width:"16",height:"16",fill:"none",xmlns:"http://www.w3.org/2000/svg"};var pq=function(e){return aS("svg",{...e,children:aS("path",{d:"M3.617 11.99c-.137.684-.392 1.19-.765 1.518-.362.328-.882.492-1.558.492H0l.309-1.579h1.264l1.515-7.64h-.912l.309-1.579h.911l.236-1.191c.137-.685.387-1.192.75-1.52C4.753.164 5.277 0 5.953 0h1.294L6.94 1.579H5.675l-.323 1.623h1.264l-.309 1.579H5.043l-1.426 7.208ZM5.605 11.021l3.029-4.155L7.28 3.202h2.073l.706 2.547h.176l1.691-2.547H14l-3.014 4.051 1.338 3.768H10.25l-.706-2.606H9.37L7.678 11.02H5.605Z",fill:"currentcolor"})})};pq.defaultProps={width:"14",height:"14",fill:"none",xmlns:"http://www.w3.org/2000/svg"};var dq=function(e){return aS("svg",{...e,children:[aS("path",{d:"M16 2a14 14 0 1 0 14 14A14 14 0 0 0 16 2Zm0 26a12 12 0 1 1 12-12 12 12 0 0 1-12 12Z"}),aS("circle",{cx:"16",cy:"23.5",r:"1.5"}),aS("path",{d:"M17 8h-1.5a4.49 4.49 0 0 0-4.5 4.5v.5h2v-.5a2.5 2.5 0 0 1 2.5-2.5H17a2.5 2.5 0 0 1 0 5h-2v4.5h2V17a4.5 4.5 0 0 0 0-9Z"}),aS("path",{style:{fill:"none"},d:"M0 0h32v32H0z"})]})};dq.defaultProps={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32"};var fq=function(e){return aS("svg",{...e,children:[aS("path",{fill:"currentColor",d:"M28 4H10a2.006 2.006 0 0 0-2 2v14a2.006 2.006 0 0 0 2 2h18a2.006 2.006 0 0 0 2-2V6a2.006 2.006 0 0 0-2-2Zm0 16H10V6h18Z"}),aS("path",{fill:"currentColor",d:"M18 26H4V16h2v-2H4a2.006 2.006 0 0 0-2 2v10a2.006 2.006 0 0 0 2 2h14a2.006 2.006 0 0 0 2-2v-2h-2Z"})]})};fq.defaultProps={xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 32 32"};var mq=function(e){return aS("svg",{...e,children:aS("path",{fillRule:"evenodd",d:"m12 4.7-.7-.7L8 7.3 4.7 4l-.7.7L7.3 8 4 11.3l.7.7L8 8.7l3.3 3.3.7-.7L8.7 8 12 4.7Z",fill:"currentColor"})})};function gq(e){const{element:t,headerProvider:n}=e,{getElementIcon:i,getDocumentationRef:o,getElementLabel:r,getTypeLabel:s}=n,a=r(t),l=s(t),c=o&&o(t),h=i(t);return aS("div",{class:"bio-properties-panel-header",children:[aS("div",{class:"bio-properties-panel-header-icon",children:h&&aS(h,{width:"32",height:"32",viewBox:"0 0 32 32"})}),aS("div",{class:"bio-properties-panel-header-labels",children:[aS("div",{title:l,class:"bio-properties-panel-header-type",children:l}),a?aS("div",{title:a,class:"bio-properties-panel-header-label",children:a}):null]}),aS("div",{class:"bio-properties-panel-header-actions",children:c?aS("a",{rel:"noopener",class:"bio-properties-panel-header-link",href:c,title:"Open documentation",target:"_blank",children:aS(uq,{})}):null})]})}mq.defaultProps={xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16"};const vq=ek({description:{},getDescriptionForId:()=>{}}),yq=ek({errors:{}}),bq=ek({eventBus:null}),wq=ek({layout:{},setLayout:()=>{},getLayoutForKey:()=>{},setLayoutForKey:()=>{}}),xq=ek({tooltip:{},getTooltipForId:()=>{}});function _q(e){const{forId:t,element:n}=e,i=function(e,t){const{getTooltipForId:n}=wk(xq);return n(e,t)}(t,n),o=e.value||i;return o?aS(Eq,{...e,value:o,forId:Cq(t)}):e.children}function Eq(e){const{forId:t,value:n,parent:i,direction:o="right",position:r}=e,[s,a]=fk(!1),[l,c]=fk(!1);let h=null;const u=vk(null),p=vk(null),d=async e=>{const t=()=>a(!0);s||h||(e instanceof MouseEvent?h=setTimeout(t,200):(t(),c(!0)))},f=()=>{a(!1),c(!1)};mk((()=>{const{current:e}=u;if(!e)return;const t=e=>{const t=document.activeElement===u.current||document.activeElement.closest(".bio-properties-panel-tooltip");!s||(({x:e,y:t})=>{const n=p.current,i=u.current;return n&&(kq(e,t,i.getBoundingClientRect())||kq(e,t,n.getBoundingClientRect()))})({x:e.x,y:e.y})||t&&l||f()},n=e=>{const{relatedTarget:t}=e;s&&!u.current.matches(":hover")&&t&&!t.closest(".bio-properties-panel-tooltip")&&f()};return document.addEventListener("wheel",t),document.addEventListener("focusout",n),document.addEventListener("mousemove",t),()=>{document.removeEventListener("wheel",t),document.removeEventListener("mousemove",t),document.removeEventListener("focusout",n)}}),[u.current,s,l]);const m=()=>aS("div",{class:`bio-properties-panel-tooltip ${o}`,role:"tooltip",id:"bio-properties-panel-tooltip","aria-labelledby":t,style:r||Sq(u.current),ref:p,onClick:e=>e.stopPropagation(),children:[aS("div",{class:"bio-properties-panel-tooltip-content",children:n}),aS("div",{class:"bio-properties-panel-tooltip-arrow"})]});return aS("div",{class:"bio-properties-panel-tooltip-wrapper",tabIndex:"0",ref:u,onMouseEnter:d,onMouseLeave:()=>{clearTimeout(h),h=null},onFocus:d,onKeyDown:e=>{"Escape"===e.code&&f()},children:[e.children,s?i?Vk(m(),i.current):m():null]})}function kq(e,t,n){const{top:i,right:o,bottom:r,left:s}=n;return e>=s&&e<=o&&t>=i&&t<=r}function Sq(e){const t=e.getBoundingClientRect();return`right: calc(100% - ${t.x}px); top: ${t.top-10+"px"};`}function Cq(e){return`bio-properties-panel-${e}`}function Oq(e){const{errors:t}=wk(yq);return t[e]}function Pq(){const{errors:e}=wk(yq);return e}function Mq(e,t,n){const i=wk(bq);n||({eventBus:n}=i);const o=vk(!1);n&&!o.current&&n.on(e,t),mk((()=>(n&&o.current&&n.on(e,t),o.current=!0,()=>{n&&n.off(e,t)})),[t,e,n])}function Aq(e,t){const{getLayoutForKey:n,setLayoutForKey:i}=wk(wq);return[n(e,t),bk((t=>{i(e,t)}),[i])]}function Tq(e){const t=vk();return mk((()=>{t.current=e})),t.current}function Bq(e){const{onShow:t}=wk(wq),n=vk(),i=vk(!1),o=bk((n=>{n.id===e&&(t(),i.current||(i.current=!0))}),[e]);return mk((()=>{i.current&&n.current&&(I(n.current.focus)&&n.current.focus(),I(n.current.select)&&n.current.select(),i.current=!1)})),Mq("propertiesPanel.showEntry",o),n}function Rq(e,t,n){const[i,o]=fk(Jt(t)),r=bk((()=>{const e=Jt(t);e!==i&&o(e)}),[t,i]);mk((()=>{r()}),[r]),Mq("propertiesPanel.attach",r),Mq("propertiesPanel.detach",r),mk((()=>{const t=IntersectionObserver;if(!t)return;if(!e.current||!i)return;const o=new t((e=>{0!==i.scrollHeight&&e.forEach((e=>{e.intersectionRatio<1?n(!0):1===e.intersectionRatio&&n(!1)}))}),{root:i,rootMargin:"0px 0px 999999% 0px",threshold:[1]});return o.observe(e.current),()=>{o.unobserve(e.current)}}),[e.current,i,n])}function Dq(e){const t=vk(e);return t.current=e,bk(((...e)=>t.current(...e)),[])}function Lq(e){const{element:t,entries:n=[],id:i,label:o,shouldOpen:r=!1}=e,s=vk(null),[a,l]=Aq(["groups",i,"open"],r),c=bk((()=>l(!0)),[l]),[h,u]=fk(!1),[p,d]=fk(!1);mk((()=>{const e=requestAnimationFrame((()=>{const e=n.find((e=>{const{id:t,isEdited:n}=e,i=Jt(`[data-entry-id="${t}"]`);return!(!I(n)||!i)&&n(Jt(".bio-properties-panel-input",i))}));u(e)}));return()=>cancelAnimationFrame(e)}),[n,u]);const f=Pq(),m=n.some((e=>f[e.id]));Rq(s,"div.bio-properties-panel-scroll-container",d);const g={...wk(wq),onShow:c};return aS("div",{class:"bio-properties-panel-group","data-group-id":"group-"+i,ref:s,children:[aS("div",{class:cS()("bio-properties-panel-group-header",h?"":"empty",a?"open":"",p&&a?"sticky":""),onClick:()=>l(!a),children:[aS("div",{title:e.tooltip?null:o,"data-title":o,class:"bio-properties-panel-group-header-title",children:aS(_q,{value:e.tooltip,forId:"group-"+i,element:t,parent:s,children:o})}),aS("div",{class:"bio-properties-panel-group-header-buttons",children:[aS(Nq,{edited:h,hasErrors:m}),aS("button",{type:"button",title:"Toggle section",class:"bio-properties-panel-group-header-button bio-properties-panel-arrow",children:aS(aq,{class:a?"bio-properties-panel-arrow-down":"bio-properties-panel-arrow-right"})})]})]}),aS("div",{class:cS()("bio-properties-panel-group-entries",a?"open":""),children:aS(wq.Provider,{value:g,children:n.map((e=>{const{component:n,id:i}=e;return BE(n,{...e,element:t,key:i})}))})})]})}function Nq(e){const{edited:t,hasErrors:n}=e;return n?aS("div",{title:"Section contains an error",class:"bio-properties-panel-dot bio-properties-panel-dot--error"}):t?aS("div",{title:"Section contains data",class:"bio-properties-panel-dot"}):null}function zq(e){const{text:t,icon:n}=e;return aS("div",{class:"bio-properties-panel open",children:aS("section",{class:"bio-properties-panel-placeholder",children:[n&&aS(n,{class:"bio-properties-panel-placeholder-icon"}),aS("p",{class:"bio-properties-panel-placeholder-text",children:t})]})})}function Iq(e){const{element:t,forId:n,value:i}=e,o=function(e,t){const{getDescriptionForId:n}=wk(vq);return n(e,t)}(n,t),r=i||o;if(r)return aS("div",{class:"bio-properties-panel-description",children:r})}const Fq=()=>{},$q=Rk(((e,t)=>{const{onInput:n,disabled:i,tooltipContainer:o,enableGutters:r,value:s,onLint:a=Fq,onPopupOpen:l=Fq,popupOpen:c,contentAttributes:h={},hostLanguage:u=null,singleLine:p=!1}=e,d=vk(),[f,m]=fk(),[g,v]=fk(s||"");!function(e,t){const[n,i]=fk(void 0);t.current=yk((()=>({focus:t=>{e?e.focus(t):(void 0===t&&(t=1/0),i(t))}})),[e]),mk((()=>{void 0!==n&&e&&(e.focus(n),i(!1))}),[e,n])}(f,t);const y=Dq((e=>{n(e),v(e)}));return mk((()=>{let e;return e=new J$({container:d.current,onChange:y,value:g,onLint:a,contentAttributes:h,tooltipContainer:o,enableGutters:r,hostLanguage:u,singleLine:p,lineWrap:!0}),m(e),()=>{a([]),d.current.innerHTML="",m(null)}}),[]),mk((()=>{f&&s!==g&&(f.setValue(s),v(s))}),[s]),aS("div",{class:cS()("bio-properties-panel-feelers-editor-container",c?"popupOpen":null),children:[aS("div",{class:"bio-properties-panel-feelers-editor__open-popup-placeholder",children:"Opened in editor"}),aS("div",{name:e.name,class:cS()("bio-properties-panel-feelers-editor bio-properties-panel-input",g?"edited":null,i?"disabled":null),ref:d,onClick:()=>{t.current.focus()}}),aS("button",{type:"button",title:"Open pop-up editor",class:"bio-properties-panel-open-feel-popup",onClick:()=>l("feelers"),children:aS(fq,{})})]})})),jq=()=>{},qq=Rk(((e,t)=>{const{contentAttributes:n,enableGutters:i,value:o,onInput:r,onFeelToggle:s=jq,onLint:a=jq,onPopupOpen:l=jq,placeholder:c,popupOpen:h,disabled:u,tooltipContainer:p,variables:d}=e,f=vk(),[m,g]=fk(),[v,y]=fk(o||"");!function(e,t){const[n,i]=fk(void 0);t.current=yk((()=>({focus:t=>{e?e.focus(t):(void 0===t&&(t=1/0),i(t))}})),[e]),mk((()=>{void 0!==n&&e&&(e.focus(n),i(!1))}),[e,n])}(m,t);const b=Dq((e=>{r(e),y(e)}));return mk((()=>{let e;return e=new Mj({container:f.current,onChange:b,onKeyDown:t=>{if("Backspace"!==t.key||!e)return;const n=e.getSelection(),i=n.ranges[n.mainIndex];0===i.from&&0===i.to&&s()},onLint:a,placeholder:c,tooltipContainer:p,value:v,variables:d,extensions:[...i?[HR()]:[],$B.lineWrapping],contentAttributes:n}),g(e),()=>{a([]),f.current.innerHTML="",g(null)}}),[]),mk((()=>{m&&o!==v&&(m.setValue(o),y(o))}),[o]),mk((()=>{m&&m.setVariables(d)}),[d]),mk((()=>{m&&m.setPlaceholder(c)}),[c]),aS("div",{class:cS()("bio-properties-panel-feel-editor-container",u?"disabled":null,h?"popupOpen":null),children:[aS("div",{class:"bio-properties-panel-feel-editor__open-popup-placeholder",children:"Opened in editor"}),aS("div",{name:e.name,class:cS()("bio-properties-panel-input",v?"edited":null),ref:f,onClick:()=>{t.current.focus()}}),aS("button",{type:"button",title:"Open pop-up editor",class:"bio-properties-panel-open-feel-popup",onClick:()=>l(),children:aS(fq,{})})]})}));function Hq(e){const{active:t}=e;return t?aS("span",{class:"bio-properties-panel-feel-indicator",children:"="}):null}const Vq=()=>{};function Wq(e){const{feel:t=!1,active:n,disabled:i=!1,onClick:o=Vq}=e,r=`Click to ${n?"remove":"set a"} dynamic value with FEEL expression`;return aS("button",{type:"button",class:cS()("bio-properties-panel-feel-icon",n?"active":null,"required"===t?"required":"optional"),onClick:e=>{o(e),e.pointerType||e.stopPropagation()},disabled:"required"===t||i,title:"required"===t?"FEEL expression is mandatory":r,children:aS(pq,{})})}const Gq=ek({open:()=>{},close:()=>{},source:null});function Qq(e){e.preventDefault(),e.stopPropagation()}const Xq=()=>{},Uq=Rk((function(e,t){const{container:n,className:i,delayInitialFocus:o,position:r,width:s,height:a,onClose:l,onPostActivate:c=Xq,onPostDeactivate:h=Xq,returnFocus:u=!0,closeOnEscape:p=!0,title:d}=e,f=vk(null),m=vk(null),g=t||m,v=yk((()=>function(e){return"string"==typeof e?Jt(e):e}(n)),[n]),y=()=>{f.current&&f.current.activate()};let b={};return r&&(b={...b,top:r.top+"px",left:r.left+"px"}),s&&(b.width=s+"px"),a&&(b.height=a+"px"),mk((()=>(g.current&&g.current.addEventListener("focusin",y),()=>{g.current.removeEventListener("focusin",y)})),[g]),mk((()=>(g.current&&(f.current=sq(g.current,{clickOutsideDeactivates:!0,delayInitialFocus:o,fallbackFocus:g.current,onPostActivate:c,onPostDeactivate:h,returnFocusOnDeactivate:u}),f.current.activate()),()=>f.current&&f.current.deactivate())),[g]),Mq("propertiesPanel.detach",l),Vk(aS("div",{"aria-label":d,tabIndex:-1,ref:g,onKeyDown:e=>{e.stopPropagation(),p&&"Escape"===e.key&&l()},role:"dialog",class:cS()("bio-properties-panel-popup",i),style:b,children:e.children}),v||document.body)}));function Yq(e){return e.closest(".bio-properties-panel-popup")}Uq.Title=function(e){const{children:t,className:n,draggable:i,emit:o=(()=>{}),title:r,showCloseButton:s=!1,closeButtonTooltip:a="Close popup",onClose:l,...c}=e,h=vk({startPosition:null,newPosition:null}),u=vk(),p=vk(),d=(e,t)=>{!function(e){e.preventDefault(),e.stopPropagation()}(e);const{x:n,y:i}=t,r={x:h.current.startPosition.x+n,y:h.current.startPosition.y+i},s=Yq(p.current);s.style.top=r.y+"px",s.style.left=r.x+"px",o("dragover",{newPosition:r,delta:t})};return aS("div",{class:cS()("bio-properties-panel-popup__header",i&&"draggable",n),ref:p,draggable:i,onDragStart:e=>{(function(e,t){let n,i,o;function r(t){const r={x:t.clientX-i,y:t.clientY-o};return e.call(n,t,r)}function s(){document.removeEventListener("dragover",r,!0),document.removeEventListener("dragenter",Qq,!0),document.removeEventListener("dragend",s),document.removeEventListener("drop",Qq)}return function(e){n=this,i=e.clientX,o=e.clientY,e.dataTransfer&&e.dataTransfer.setDragImage(t||Kt(''),0,0),document.addEventListener("dragover",r,!0),document.addEventListener("dragenter",Qq,!0),document.addEventListener("dragend",s),document.addEventListener("drop",Qq)}})(d,u.current)(e),e.stopPropagation();const t=Yq(p.current).getBoundingClientRect();h.current.startPosition={x:t.left,y:t.top},o("dragstart")},onDragEnd:()=>{h.current.newPosition=null,o("dragend")},...c,children:[i&&aS(DE,{children:[aS("div",{ref:u,class:"bio-properties-panel-popup__drag-preview"}),aS("div",{class:"bio-properties-panel-popup__drag-handle",children:aS(hq,{})})]}),aS("div",{class:"bio-properties-panel-popup__title",children:r}),t,s&&aS("button",{title:a,class:"bio-properties-panel-popup__close",onClick:l,children:aS(mq,{})})]})},Uq.Body=function(e){const{children:t,className:n,...i}=e;return aS("div",{class:cS()("bio-properties-panel-popup__body",n),...i,children:t})},Uq.Footer=function(e){const{children:t,className:n,...i}=e;return aS("div",{class:cS()("bio-properties-panel-popup__footer",n),...i,children:e.children})};const Kq=700,Zq=250;function Jq(e){const{element:t,eventBus:n={fire(){},on(){},off(){}},popupContainer:i}=e,o=Tq(t),[r,s]=fk({}),[a,l]=fk(!1),[c,h]=fk(null),[u,p]=fk(null),d=(e,t)=>{n.fire("feelPopup."+e,t)},f=bk((()=>!!a),[a]);!function(e,t){const n=vk(!1);mk((()=>{n.current?a||d("closed"):n.current=!0}),t)}(0,[a]);const m=(e,t,n)=>{h(e),s(t),l(!0),p(n),d("open")},g=(e={})=>{const{id:t}=e;t&&t!==c||(l(!1),h(null))},v={open:m,close:g,source:c};return mk((()=>{t&&o&&t!==o&&g()}),[t]),mk((()=>{const e=()=>f();return n.on("feelPopup._close",g),n.on("feelPopup._open",(e=>{const{entryId:t,popupConfig:n,sourceElement:i}=e;m(t,n,i)})),n.on("feelPopup._isOpen",e),()=>{n.off("feelPopup._close",g),n.off("feelPopup._open",m),n.off("feelPopup._isOpen",e)}}),[n,f]),aS(Gq.Provider,{value:v,children:[a&&aS(eH,{onClose:g,container:i,sourceElement:u,emit:d,...r}),e.children]})}function eH(e){const{container:t,id:n,hostLanguage:i,onInput:o,onClose:r,position:s,singleLine:a,sourceElement:l,title:c,tooltipContainer:h,type:u,value:p,variables:d,emit:f}=e,m=vk(),g=vk(),v=vk(!1);return mk((()=>(f("opened",{domNode:g.current}),()=>f("close",{domNode:g.current}))),[]),mk((()=>{m.current&&m.current.focus()}),[m]),aS(Uq,{container:t,className:"bio-properties-panel-feel-popup",emit:f,position:s,title:c,onClose:r,returnFocus:!1,closeOnEscape:!1,delayInitialFocus:!1,onPostDeactivate:()=>{l&&l.focus()},height:Zq,width:Kq,ref:g,children:[aS(Uq.Title,{title:c,emit:f,showCloseButton:!0,closeButtonTooltip:"Save and close",onClose:r,draggable:!0,children:["feel"===u&&aS("a",{href:"https://docs.camunda.io/docs/components/modeler/feel/what-is-feel/",target:"_blank",class:"bio-properties-panel-feel-popup__title-link",children:["Learn FEEL expressions",aS(dq,{})]}),"feelers"===u&&aS("a",{href:"https://docs.camunda.io/docs/components/modeler/forms/configuration/forms-config-templating-syntax/",target:"_blank",class:"bio-properties-panel-feel-popup__title-link",children:["Learn templating",aS(dq,{})]})]}),aS(Uq.Body,{children:aS("div",{onKeyDownCapture:e=>{"Escape"===e.key&&(v.current=e.target.closest(".cm-editor").querySelector(".cm-tooltip-autocomplete"))},onKeyDown:e=>{"Escape"===e.key&&(v.current||(r(),v.current=!1))},class:"bio-properties-panel-feel-popup__body",children:["feel"===u&&aS(qq,{enableGutters:!0,id:tH(n),name:n,onInput:o,value:p,variables:d,ref:m,tooltipContainer:h}),"feelers"===u&&aS($q,{id:tH(n),contentAttributes:{"aria-label":c},enableGutters:!0,hostLanguage:i,name:n,onInput:o,value:p,ref:m,singleLine:a,tooltipContainer:h})]})})]})}function tH(e){return`bio-properties-panel-${e}`}function nH(e){const{id:t,label:n,onInput:i,value:o,switcherLabel:r,inline:s,onFocus:a,onBlur:l,inputRef:c,tooltip:h}=e,[u,p]=fk(o);return mk((()=>{o!==u&&p(o)}),[o]),aS("div",{class:cS()("bio-properties-panel-toggle-switch",{inline:s}),children:[aS("label",{class:"bio-properties-panel-label",for:iH(t),children:aS(_q,{value:h,forId:t,element:e.element,children:n})}),aS("div",{class:"bio-properties-panel-field-wrapper",children:[aS("label",{class:"bio-properties-panel-toggle-switch__switcher",children:[aS("input",{ref:c,id:iH(t),class:"bio-properties-panel-input",type:"checkbox",onFocus:a,onBlur:l,name:t,onInput:e=>{(async()=>{i(!o)})(),p(e.target.value)},checked:!!u}),aS("span",{class:"bio-properties-panel-toggle-switch__slider"})]}),r&&aS("p",{class:"bio-properties-panel-toggle-switch__label",children:r})]})]})}function iH(e){return`bio-properties-panel-${e}`}function oH(e){const{debounce:t,disabled:n,displayLabel:i=!0,id:o,inputRef:r,label:s,max:a,min:l,onInput:c,step:h,value:u="",onFocus:p,onBlur:d}=e,[f,m]=fk(u),g=yk((()=>t((e=>{e.validity.valid&&c(e.value?parseFloat(e.value):void 0)}))),[c,t]);return mk((()=>{u!==f&&m(u)}),[u]),aS("div",{class:"bio-properties-panel-numberfield",children:[i&&aS("label",{for:rH(o),class:"bio-properties-panel-label",children:s}),aS("input",{id:rH(o),ref:r,type:"number",name:o,spellCheck:"false",autoComplete:"off",disabled:n,class:"bio-properties-panel-input",max:a,min:l,onInput:e=>{g(e.target),m(e.target.value)},onFocus:p,onBlur:d,step:h,value:f})]})}function rH(e){return`bio-properties-panel-${e}`}const sH=()=>{},aH=(lH=function(e){const{debounce:t,id:n,element:i,label:o,hostLanguage:r,onInput:s,onError:a,placeholder:l,feel:c,value:h="",disabled:u=!1,variables:p,singleLine:d,tooltipContainer:f,OptionalComponent:m=cH,tooltip:g}=e,[v,y]=fk(h),b=Bq(n),w=vk(),x=F(v)&&v.startsWith("=")||"required"===c,_=F(v)&&v.startsWith("=")?v.substring(1):v,[E,k]=fk(void 0),{open:S,source:C}=wk(Gq),O=C===n,P=(e=0)=>{const t=w.current.contains(document.activeElement)?document.activeElement.selectionStart:1/0;k(t+e)},M=yk((()=>t((e=>{s(e)}))),[s,t]),A=e=>{y(e),M(void 0===e||""===e||"="===e?void 0:e)},T=Dq((()=>{"required"!==c&&A(x?_:"="+v)})),B=e=>{x&&(e="="+e),e!==v&&(A(e),!x&&F(e)&&e.startsWith("=")&&P(-1))},R=Dq((e=>{e&&e.length?a("Unparsable FEEL expression."):a(void 0)})),D=(e="feel")=>{const t={id:n,hostLanguage:r,onInput:B,position:uH(w.current),singleLine:d,title:pH(i,o),tooltipContainer:f,type:e,value:_,variables:p};S(n,t,b.current)};return mk((()=>{void 0!==E&&(b.current.focus(E),k(void 0))}),[E]),mk((()=>{h!==v&&A(h||(x?"=":""))}),[h]),mk((()=>{const e=e=>{x&&e.clipboardData.setData("application/FEEL",e.clipboardData.getData("text"))},t=e=>{x||O||e.clipboardData.getData("application/FEEL")&&setTimeout((()=>{T(),P()}))};return w.current.addEventListener("copy",e),w.current.addEventListener("cut",e),w.current.addEventListener("paste",t),()=>{w.current.removeEventListener("copy",e),w.current.removeEventListener("cut",e),w.current.removeEventListener("paste",t)}}),[w,x,T,P]),aS("div",{class:cS()("bio-properties-panel-feel-entry",{"feel-active":x}),children:[aS("label",{for:hH(n),class:"bio-properties-panel-label",onClick:()=>P(),children:[aS(_q,{value:g,forId:n,element:e.element,children:o}),aS(Wq,{label:o,feel:c,onClick:T,active:x})]}),aS("div",{class:"bio-properties-panel-feel-container",ref:w,children:[aS(Hq,{active:x,disabled:"optional"!==c||u,onClick:T}),x?aS(qq,{name:n,onInput:B,contentAttributes:{id:hH(n),"aria-label":o},disabled:u,popupOpen:O,onFeelToggle:()=>{T(),P(!0)},onLint:R,onPopupOpen:D,placeholder:l,value:_,variables:p,ref:b,tooltipContainer:f}):aS(m,{...e,popupOpen:O,onInput:B,contentAttributes:{id:hH(n),"aria-label":o},value:v,ref:b,onPopupOpen:D,containerRef:w})]})]})},function(e){const{id:t}=e,{close:n}=wk(Gq),i=Dq(n);return mk((()=>()=>{i({id:t})}),[]),aS(lH,{...e})});var lH;const cH=Rk(((e,t)=>{const{id:n,disabled:i,onInput:o,value:r,onFocus:s,onBlur:a,placeholder:l}=e,c=vk();return t.current={focus:e=>{const t=c.current;t&&(t.focus(),"number"==typeof e&&(e>r.length&&(e=r.length),t.setSelectionRange(e,e)))}},aS("input",{id:hH(n),type:"text",ref:c,name:n,spellCheck:"false",autoComplete:"off",disabled:i,class:"bio-properties-panel-input",onInput:e=>o(e.target.value),onFocus:s,onBlur:a,placeholder:l,value:r||""})}));function hH(e){return`bio-properties-panel-${e}`}function uH(e){const{top:t,left:n}=e.getBoundingClientRect();return{left:n-Kq-20,top:t}}function pH(e,t){let n="";return e&&e.type&&(n=`${e.type} / `),`${n}${t}`}Rk(((e,t)=>{const{id:n,debounce:i,disabled:o,onInput:r,value:s,min:a,max:l,step:c,onFocus:h,onBlur:u}=e,p=vk();return t.current={focus:e=>{const t=p.current;t&&(t.focus(),"number"==typeof e&&e!==1/0&&(e>s.length&&(e=s.length),t.setSelectionRange(e,e)))}},aS(oH,{id:n,debounce:i,disabled:o,displayLabel:!1,inputRef:p,max:l,min:a,onInput:r,step:c,value:s,onFocus:h,onBlur:u})})),Rk(((e,t)=>{const{id:n,disabled:i,onInput:o,value:r,onFocus:s,onBlur:a,placeholder:l}=e,c=vk();return t.current={focus:()=>{const e=c.current;e&&(e.focus(),e.setSelectionRange(0,0))}},aS("textarea",{id:hH(n),type:"text",ref:c,name:n,spellCheck:"false",autoComplete:"off",disabled:i,class:"bio-properties-panel-input",onInput:e=>o(e.target.value),onFocus:s,onBlur:a,placeholder:l,value:r||"","data-gramm":"false"})})),Rk(((e,t)=>{const{id:n,onInput:i,value:o,onFocus:r,onBlur:s,switcherLabel:a}=e,l=vk();return t.current={focus:()=>{const e=l.current;e&&e.focus()}},aS(nH,{id:n,value:o,inputRef:l,onInput:i,onFocus:r,onBlur:s,switcherLabel:a})})),Rk(((e,t)=>{const{id:n,disabled:i,onInput:o,value:r,onFocus:s,onBlur:a}=e,l=vk();return t.current={focus:()=>{const e=l.current;e&&e.focus()}},aS("input",{ref:l,id:hH(n),name:n,onFocus:s,onBlur:a,type:"checkbox",class:"bio-properties-panel-input",onChange:({target:e})=>{o(e.checked)},checked:r,disabled:i})}));const dH={},fH={},mH={};function gH(e){const{element:t,headerProvider:n,placeholderProvider:i,groups:o,layoutConfig:r,layoutChanged:s,descriptionConfig:a,descriptionLoaded:l,tooltipConfig:c,tooltipLoaded:h,feelPopupContainer:u,eventBus:p}=e,[d,f]=fk(vH(r));!function(e,t){const n=vk(!1);gk((()=>{if(n.current)return(()=>{const e=vH(r);f(e)})();n.current=!0}),t)}(0,[r]),mk((()=>{"function"==typeof s&&s(d)}),[d,s]);const m={layout:d,setLayout:f,getLayoutForKey:(e,t)=>function(e,t,n){let i=e;return V(t,(function(e){if(D(i))return i=void 0,!1;i=i[e]})),B(i)?n:i}(d,e,t),setLayoutForKey:(e,t)=>{const n=ce({},d);he(n,e,t),f(n)}},g=yk((()=>function(e={}){return{...fH,...e}}(a)),[a]);mk((()=>{"function"==typeof l&&l(g)}),[g,l]);const v={description:g,getDescriptionForId:(e,t)=>g[e]&&g[e](t)},y=yk((()=>function(e={}){return{...mH,...e}}(c)),[c]);mk((()=>{"function"==typeof h&&h(y)}),[y,h]);const b={tooltip:y,getTooltipForId:(e,t)=>y[e]&&y[e](t)},[w,x]=fk({});Mq("propertiesPanel.setErrors",(({errors:e})=>x(e)),p);const _={errors:w},E={eventBus:p},k={element:t};return i&&!t?aS(zq,{...i.getEmpty()}):i&&L(t)?aS(zq,{...i.getMultiple()}):aS(wq.Provider,{value:k,children:aS(yq.Provider,{value:_,children:aS(vq.Provider,{value:v,children:aS(xq.Provider,{value:b,children:aS(wq.Provider,{value:m,children:aS(bq.Provider,{value:E,children:aS(Jq,{element:t,eventBus:p,popupContainer:u,children:aS("div",{class:"bio-properties-panel",children:[aS(gq,{element:t,headerProvider:n}),aS("div",{class:"bio-properties-panel-scroll-container",children:o.map((e=>{const{component:n=Lq,id:i}=e;return BE(n,{...e,key:i,element:t})}))})]})})})})})})})})}function vH(e={},t=dH){return{...t,...e}}function yH(e){const{id:t,label:n,onChange:i,disabled:o,value:r=!1,onFocus:s,onBlur:a,tooltip:l}=e,[c,h]=fk(r);return mk((()=>{r!==c&&h(r)}),[r]),aS("div",{class:"bio-properties-panel-checkbox",children:[aS("input",{ref:Bq(t),id:xH(t),name:t,onFocus:s,onBlur:a,type:"checkbox",class:"bio-properties-panel-input",onChange:e=>{(({target:e})=>{i(e.checked)})(e),h(e.target.value)},checked:c,disabled:o}),aS("label",{for:xH(t),class:"bio-properties-panel-label",children:aS(_q,{value:l,forId:t,element:e.element,children:n})})]})}function bH(e){const{element:t,id:n,description:i,label:o,getValue:r,setValue:s,disabled:a,onFocus:l,onBlur:c,tooltip:h}=e,u=r(t),p=Oq(n);return aS("div",{class:"bio-properties-panel-entry bio-properties-panel-checkbox-entry","data-entry-id":n,children:[aS(yH,{disabled:a,id:n,label:o,onChange:s,onFocus:l,onBlur:c,value:u,tooltip:h,element:t},t),p&&aS("div",{class:"bio-properties-panel-error",children:p}),aS(Iq,{forId:n,element:t,value:i})]})}function wH(e){return e&&!!e.checked}function xH(e){return`bio-properties-panel-${e}`}function _H(e){const{id:t,label:n,onChange:i,options:o=[],value:r="",disabled:s,onFocus:a,onBlur:l,tooltip:c}=e,h=Bq(t),[u,p]=fk(r);return mk((()=>{r!==u&&p(r)}),[r]),aS("div",{class:"bio-properties-panel-select",children:[aS("label",{for:SH(t),class:"bio-properties-panel-label",children:aS(_q,{value:c,forId:t,element:e.element,children:n})}),aS("select",{ref:h,id:SH(t),name:t,class:"bio-properties-panel-input",onInput:e=>{(({target:e})=>{i(e.value)})(e),p(e.target.value)},onFocus:a,onBlur:l,value:u,disabled:s,children:o.map(((e,t)=>e.children?aS("optgroup",{label:e.label,children:e.children.map(((e,t)=>aS("option",{value:e.value,disabled:e.disabled,children:e.label},t)))},t):aS("option",{value:e.value,disabled:e.disabled,children:e.label},t)))})]})}function EH(e){const{element:t,id:n,description:i,label:o,getValue:r,setValue:s,getOptions:a,disabled:l,onFocus:c,onBlur:h,validate:u,tooltip:p}=e,d=a(t),f=Oq(n),[m,g]=fk(null);let v=r(t);mk((()=>{if(I(u)){const e=u(v)||null;g(e)}}),[v,u]);const y=f||m;return aS("div",{class:cS()("bio-properties-panel-entry",y?"has-error":""),"data-entry-id":n,children:[aS(_H,{id:n,label:o,value:v,onChange:e=>{let t=null;I(u)&&(t=u(e)||null),s(e,t),g(t)},onFocus:c,onBlur:h,options:d,disabled:l,tooltip:p,element:t},t),y&&aS("div",{class:"bio-properties-panel-error",children:y}),aS(Iq,{forId:n,element:t,value:i})]})}function kH(e){return e&&!!e.value}function SH(e){return`bio-properties-panel-${e}`}function CH(e){e.style.height="auto",e.style.height=`${e.scrollHeight+2}px`}function OH(e){const{id:t,label:n,debounce:i,onInput:o,value:r="",disabled:s,monospace:a,onFocus:l,onBlur:c,autoResize:h=!0,placeholder:u,rows:p=(h?1:2),tooltip:d}=e,[f,m]=fk(r),g=Bq(t),v=function(e){const[t,n]=fk(!!e&&!!e.clientHeight);return gk((()=>{if(!e)return;const i=new ResizeObserver((([e])=>{requestAnimationFrame((()=>{const i=!!e.contentRect.height;i!==t&&n(i)}))}));return i.observe(e),()=>i.disconnect()}),[e,t]),t}(g.current),y=yk((()=>i((e=>o(e.value.length?e.value:void 0)))),[o,i]);return gk((()=>{h&&CH(g.current)}),[]),gk((()=>{v&&h&&CH(g.current)}),[v]),mk((()=>{r!==f&&m(r)}),[r]),aS("div",{class:"bio-properties-panel-textarea",children:[aS("label",{for:AH(t),class:"bio-properties-panel-label",children:aS(_q,{value:d,forId:t,element:e.element,children:n})}),aS("textarea",{ref:g,id:AH(t),name:t,spellCheck:"false",class:cS()("bio-properties-panel-input",a?"bio-properties-panel-input-monospace":"",h?"auto-resize":""),onInput:e=>{y(e.target),h&&CH(e.target),m(e.target.value)},onFocus:l,onBlur:c,placeholder:u,rows:p,value:f,disabled:s,"data-gramm":"false"})]})}function PH(e){const{element:t,id:n,description:i,debounce:o,label:r,getValue:s,setValue:a,rows:l,monospace:c,disabled:h,validate:u,onFocus:p,onBlur:d,placeholder:f,autoResize:m,tooltip:g}=e,v=Oq(n),[y,b]=fk(null);let w=s(t);mk((()=>{if(I(u)){const e=u(w)||null;b(e)}}),[w,u]);const x=v||y;return aS("div",{class:cS()("bio-properties-panel-entry",x?"has-error":""),"data-entry-id":n,children:[aS(OH,{id:n,label:r,value:w,onInput:e=>{let t=null;I(u)&&(t=u(e)||null),a(e,t),b(t)},onFocus:p,onBlur:d,rows:l,debounce:o,monospace:c,disabled:h,placeholder:f,autoResize:m,tooltip:g,element:t},t),x&&aS("div",{class:"bio-properties-panel-error",children:x}),aS(Iq,{forId:n,element:t,value:i})]})}function MH(e){return e&&!!e.value}function AH(e){return`bio-properties-panel-${e}`}function TH(e){const{debounce:t,disabled:n=!1,id:i,label:o,onInput:r,onFocus:s,onBlur:a,placeholder:l,value:c="",tooltip:h}=e,[u,p]=fk(c||""),d=Bq(i),f=yk((()=>t((e=>r(e.value.length?e.value:void 0)))),[r,t]);return mk((()=>{c!==u&&p(c)}),[c]),aS("div",{class:"bio-properties-panel-textfield",children:[aS("label",{for:DH(i),class:"bio-properties-panel-label",children:aS(_q,{value:h,forId:i,element:e.element,children:o})}),aS("input",{ref:d,id:DH(i),type:"text",name:i,spellCheck:"false",autoComplete:"off",disabled:n,class:"bio-properties-panel-input",onInput:e=>{f(e.target),p(e.target.value)},onFocus:s,onBlur:a,placeholder:l,value:u})]})}function BH(e){const{element:t,id:n,description:i,debounce:o,disabled:r,label:s,getValue:a,setValue:l,validate:c,onFocus:h,onBlur:u,placeholder:p,tooltip:d}=e,f=Oq(n),[m,g]=fk(null);let v=a(t);mk((()=>{if(I(c)){const e=c(v)||null;g(e)}}),[v,c]);const y=f||m;return aS("div",{class:cS()("bio-properties-panel-entry",y?"has-error":""),"data-entry-id":n,children:[aS(TH,{debounce:o,disabled:r,id:n,label:s,onInput:e=>{let t=null;I(c)&&(t=c(e)||null),l(e,t),g(t)},onFocus:h,onBlur:u,placeholder:p,value:v,tooltip:d,element:t},t),y&&aS("div",{class:"bio-properties-panel-error",children:y}),aS(Iq,{forId:n,element:t,value:i})]})}function RH(e){return e&&!!e.value}function DH(e){return`bio-properties-panel-${e}`}function LH(e){return function(t){return!1!==e?ae(t,z(e)?e:300):t}}LH.$inject=["config.debounceInput"];var NH={debounceInput:["factory",LH]};class zH{constructor(e){this._eventBus=e}isOpen(){return this._eventBus.fire("feelPopup._isOpen")}open(e,t,n){return this._eventBus.fire("feelPopup._open",{entryId:e,popupConfig:t,sourceElement:n})}close(){return this._eventBus.fire("feelPopup._close")}}zH.$inject=["eventBus"];var IH={feelPopup:["type",zH]},FH=n(285);n(480);const $H=ek({selectedElement:null,injector:null,getService:()=>null});function jH(e,t){const{getService:n}=wk($H);return n(e,t)}function qH(){return qH=Object.assign?Object.assign.bind():function(e){for(var t=1;trS("svg",XH({width:"32",height:"32",xmlns:"http://www.w3.org/2000/svg"},t),rS("path",{stroke:"#000",strokeWidth:"2",strokeLinecap:"round",strokeDasharray:"1.1,4.3",d:"M1.5 30.5L27 5"}),rS("path",{d:"M31.803.197L26.5 16.107l-1.52-1.52 3.783-11.35-11.35 3.783-1.52-1.52z"}));function YH(){return YH=Object.assign?Object.assign.bind():function(e){for(var t=1;trS("svg",bV({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M15.975.049C8.195-.111.935 6.286.125 14.03c-.855 6.55 2.741 13.46 8.74 16.314 5.666 2.847 13.012 1.99 17.71-2.33 4.745-4.162 6.727-11.243 4.532-17.206C29.09 4.93 23.445.454 17.201.095c-.408-.03-.817-.046-1.226-.046zm-.181 1.724c7.134-.269 13.84 5.68 14.399 12.804.686 6.283-3.267 12.792-9.283 14.862-5.847 2.162-13.025.06-16.557-5.141C.728 19.22.872 11.725 4.985 6.962c2.632-3.171 6.671-5.174 10.809-5.19zm.283 1.553c-6.6-.21-12.671 5.585-12.79 12.185-.292 5.964 4.129 11.817 10.034 12.953 5.47 1.198 11.584-1.613 14.025-6.702 2.525-4.97 1.396-11.585-2.912-15.215-2.282-2.022-5.3-3.217-8.357-3.22zM16 5.021c5.818-.154 11.117 5.082 11.024 10.905.103 5.384-4.23 10.5-9.636 11.043-5.075.667-10.426-2.587-11.885-7.552-1.53-4.73.48-10.428 4.888-12.864A11.082 11.082 0 0116 5.021zm-3.956 3.946l-3.096 3.097 3.985 3.985-3.913 3.913 3.047 3.048 3.913-3.913 3.988 3.987 3.097-3.096L19.076 16l3.914-3.913-3.048-3.048-3.913 3.913-3.986-3.985zm-.002 1.222l3.988 3.987 3.913-3.913 1.826 1.826-3.913 3.913 3.985 3.986-1.873 1.873-3.985-3.985-3.913 3.913-1.827-1.827 3.914-3.913-3.988-3.987 1.873-1.873z"}));function xV(){return xV=Object.assign?Object.assign.bind():function(e){for(var t=1;trS("svg",xV({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M15.975.049C8.195-.11.935 6.286.125 14.03c-.855 6.55 2.741 13.46 8.74 16.314 5.666 2.847 13.012 1.99 17.71-2.33 4.745-4.162 6.727-11.243 4.532-17.206C29.09 4.93 23.445.453 17.201.095c-.408-.03-.817-.046-1.226-.046zm-.181 1.724c7.134-.269 13.84 5.68 14.399 12.804.686 6.283-3.267 12.792-9.283 14.862-5.847 2.162-13.025.06-16.557-5.141C.728 19.22.872 11.725 4.985 6.962c2.632-3.171 6.671-5.174 10.809-5.19zm.283 1.553c-6.6-.21-12.671 5.585-12.79 12.185-.292 5.964 4.129 11.817 10.034 12.953 5.47 1.198 11.584-1.613 14.025-6.702 2.525-4.97 1.396-11.585-2.912-15.216-2.282-2.021-5.3-3.216-8.357-3.22zM16 5.021c5.818-.154 11.117 5.082 11.024 10.905.103 5.384-4.23 10.5-9.636 11.043-5.075.667-10.426-2.587-11.885-7.552-1.53-4.73.48-10.428 4.888-12.864A11.083 11.083 0 0116 5.021zm-.56 5.772l-7.408 5.231 7.409 5.234v-5.057c2.385 1.687 4.771 3.371 7.157 5.057V10.793l-7.157 5.055v-5.055zm-.865 1.665v7.125l-5.048-3.562 5.048-3.563zm7.161 0v7.132l-5.048-3.566 5.048-3.566z"}));function EV(){return EV=Object.assign?Object.assign.bind():function(e){for(var t=1;trS("svg",EV({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M15.97.04h-.127C8.713-.018 2.003 5.334.437 12.286c-1.51 6.123.98 13.005 6.136 16.665 5.125 3.788 12.546 4.105 17.912.623 5.272-3.276 8.33-9.766 7.325-15.916-.904-6.241-5.79-11.7-11.95-13.143A16.082 16.082 0 0015.97.04zm-.181 1.724c.115 0 .23 0 .347.003 6.625-.066 12.823 5.149 13.89 11.69 1.13 5.91-1.908 12.349-7.262 15.138-5.473 3.013-12.866 1.884-17.116-2.726C1.291 21.372.444 13.914 3.802 8.602c2.493-4.112 7.169-6.819 11.987-6.838zm.283 1.554c-.117 0-.234.002-.351.005-6.1 0-11.691 5.049-12.346 11.114-.78 5.684 2.795 11.612 8.218 13.52 5.139 1.943 11.416.101 14.624-4.38 3.461-4.583 3.262-11.538-.596-15.831-2.36-2.747-5.924-4.423-9.549-4.428zm-.078 1.695c.078 0 .156 0 .234.003 5.4 0 10.321 4.556 10.734 9.942.563 5.13-2.958 10.364-7.971 11.678-4.832 1.41-10.457-.935-12.746-5.446-2.463-4.559-1.2-10.795 3.014-13.883a11.072 11.072 0 016.735-2.294zm-5.352 4.266V22.761h10.716V9.279H10.642zm.863.866h8.987v11.75h-8.987v-11.75zm.927 1.323v.862h7.133v-.862h-7.133zm0 2.602v.866h7.133v-.866h-7.133zm0 3.008v.862h7.133v-.862h-7.133zm0 2.717v.863h7.133v-.863h-7.133z"}));function SV(){return SV=Object.assign?Object.assign.bind():function(e){for(var t=1;trS("svg",SV({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M15.975.049C8.195-.11.935 6.286.125 14.03c-.855 6.55 2.741 13.46 8.74 16.314 5.666 2.847 13.012 1.99 17.71-2.33 4.745-4.162 6.727-11.243 4.532-17.206C29.09 4.93 23.445.453 17.201.095c-.408-.03-.817-.046-1.226-.046zm-.181 1.724c7.134-.269 13.84 5.68 14.399 12.804.686 6.283-3.267 12.792-9.283 14.862-5.847 2.162-13.025.06-16.557-5.141C.728 19.22.872 11.725 4.985 6.962c2.632-3.171 6.671-5.174 10.809-5.19zm.283 1.553c-6.6-.21-12.671 5.585-12.79 12.185-.292 5.964 4.129 11.817 10.034 12.953 5.47 1.198 11.584-1.613 14.025-6.702 2.525-4.97 1.396-11.585-2.912-15.216-2.282-2.021-5.3-3.216-8.357-3.22zM16 5.021c5.818-.154 11.117 5.082 11.024 10.905.103 5.384-4.23 10.5-9.636 11.043-5.075.667-10.426-2.587-11.885-7.552-1.53-4.73.48-10.428 4.888-12.864A11.083 11.083 0 0116 5.021zm6.132 4.194c-1.21 2.455-2.422 4.91-3.633 7.364l-4.516-5.875-4.103 12.133 4.6-5.912c1.58 1.81 3.162 3.619 4.744 5.429L22.13 9.215zM14.383 13.1l4.295 5.445 1.073-2.387-1.027 4.131-4.384-5.157-1.778 2.75 1.821-4.782z"}));function OV(){return OV=Object.assign?Object.assign.bind():function(e){for(var t=1;trS("svg",OV({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M15.975.049C8.195-.11.935 6.286.125 14.03c-.855 6.55 2.741 13.46 8.74 16.314 5.666 2.847 13.012 1.99 17.71-2.33 4.745-4.162 6.727-11.243 4.532-17.206C29.09 4.93 23.445.453 17.201.095c-.408-.03-.817-.046-1.226-.046zm-.181 1.724c7.134-.269 13.84 5.68 14.399 12.804.686 6.283-3.267 12.792-9.283 14.862-5.847 2.162-13.025.06-16.557-5.141C.728 19.22.872 11.725 4.985 6.962c2.632-3.171 6.671-5.174 10.809-5.19zm.283 1.553c-6.6-.21-12.671 5.585-12.79 12.185-.292 5.964 4.129 11.817 10.034 12.953 5.47 1.198 11.584-1.613 14.025-6.702 2.525-4.97 1.396-11.585-2.912-15.216-2.282-2.021-5.3-3.216-8.357-3.22zM16 5.021c5.818-.154 11.117 5.082 11.024 10.905.103 5.384-4.23 10.5-9.636 11.043-5.075.667-10.426-2.587-11.885-7.552-1.53-4.73.48-10.428 4.888-12.864A11.083 11.083 0 0116 5.021zm.006 3.927c-1.672 4.654-2.734 9.502-4.406 14.155 1.534-1.525 2.872-3.234 4.406-4.759l4.406 4.76c-1.496-4.71-2.91-9.446-4.406-14.156zm.032 2.929c.822 2.586 1.598 5.186 2.42 7.771l-2.42-2.612c-.682.597-2.452 2.884-2.338 2.388.87-2.487 1.447-5.067 2.338-7.547z"}));function MV(){return MV=Object.assign?Object.assign.bind():function(e){for(var t=1;trS("svg",MV({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M15.975.049C8.195-.11.935 6.286.125 14.03c-.855 6.55 2.741 13.46 8.74 16.314 5.666 2.847 13.012 1.99 17.71-2.33 4.745-4.162 6.727-11.243 4.532-17.206C29.09 4.93 23.445.453 17.201.095c-.408-.03-.817-.046-1.226-.046zm-.181 1.724c7.134-.269 13.84 5.68 14.399 12.804.686 6.283-3.267 12.792-9.283 14.862-5.847 2.162-13.025.06-16.557-5.141C.728 19.22.872 11.725 4.985 6.962c2.632-3.171 6.671-5.174 10.809-5.19zm.283 1.553c-6.6-.21-12.671 5.585-12.79 12.185-.292 5.964 4.129 11.817 10.034 12.953 5.47 1.198 11.584-1.613 14.025-6.702 2.525-4.97 1.396-11.585-2.912-15.216-2.282-2.021-5.3-3.216-8.357-3.22zM16 5.021c5.818-.154 11.117 5.082 11.024 10.905.103 5.384-4.23 10.5-9.636 11.043-5.075.667-10.426-2.587-11.885-7.552-1.53-4.73.48-10.428 4.888-12.864A11.083 11.083 0 0116 5.021zm1.78 4.093v3.555H9.785v6.714h7.994v3.554l5.829-6.911-5.83-6.912zm.974 2.584l3.61 4.295-3.61 4.294v-1.933h-7.88v-4.688h7.88v-1.968z"}));function TV(){return TV=Object.assign?Object.assign.bind():function(e){for(var t=1;trS("svg",TV({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M15.975.049C8.195-.11.935 6.286.125 14.03c-.855 6.55 2.741 13.46 8.74 16.314 5.666 2.847 13.012 1.99 17.71-2.33 4.745-4.162 6.727-11.243 4.532-17.206C29.09 4.93 23.445.453 17.201.095c-.408-.03-.817-.046-1.226-.046zm-.181 1.724c7.134-.269 13.84 5.68 14.399 12.804.686 6.283-3.267 12.792-9.283 14.862-5.847 2.162-13.025.06-16.557-5.141C.728 19.22.872 11.725 4.985 6.962c2.632-3.171 6.671-5.174 10.809-5.19zm.283 1.553c-6.6-.21-12.671 5.585-12.79 12.185-.292 5.964 4.129 11.817 10.034 12.953 5.47 1.198 11.584-1.613 14.025-6.702 2.525-4.97 1.396-11.585-2.912-15.216-2.282-2.021-5.3-3.216-8.357-3.22zM16 5.021c5.818-.154 11.117 5.082 11.024 10.905.103 5.384-4.23 10.5-9.636 11.043-5.075.667-10.426-2.587-11.885-7.552-1.53-4.73.48-10.428 4.888-12.864A11.083 11.083 0 0116 5.021zm-7.245 5.475v11.06h14.502v-11.06H8.754zm3.222 1.728h8.057c-1.427.878-2.854 2.806-4.281 3.016l-3.776-3.016zm9.554 1.017v6.587H10.48V13.24l5.524 4.414 5.526-4.414z"}));function RV(){return RV=Object.assign?Object.assign.bind():function(e){for(var t=1;trS("svg",RV({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M15.975.003C8.195-.156.935 6.24.125 13.985c-.855 6.55 2.741 13.46 8.74 16.314 5.666 2.847 13.012 1.99 17.71-2.33 4.745-4.162 6.727-11.243 4.532-17.206C29.09 4.884 23.445.407 17.201.049c-.408-.03-.817-.046-1.226-.046zm-.181 1.724c7.134-.269 13.84 5.68 14.399 12.804.686 6.283-3.267 12.792-9.283 14.862-5.847 2.162-13.025.06-16.557-5.141C.728 19.174.872 11.679 4.985 6.916c2.632-3.171 6.671-5.174 10.809-5.19zm.283 1.553c-6.6-.21-12.671 5.585-12.79 12.185-.292 5.964 4.129 11.817 10.034 12.953 5.47 1.198 11.584-1.613 14.025-6.702 2.525-4.97 1.396-11.585-2.912-15.216-2.282-2.021-5.3-3.216-8.357-3.22zM16 4.975c5.818-.154 11.117 5.082 11.024 10.905.103 5.384-4.23 10.5-9.636 11.043-5.075.667-10.426-2.587-11.885-7.552-1.53-4.73.48-10.428 4.888-12.864A11.083 11.083 0 0116 4.975zm.006 3.073l-7.62 5.531 2.91 8.95h9.42l2.91-8.95-7.62-5.53zm0 1.067l6.604 4.794-2.523 7.757h-8.162l-2.522-7.757 6.603-4.794z"}));function LV(){return LV=Object.assign?Object.assign.bind():function(e){for(var t=1;trS("svg",LV({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M10.638 9.563V23.056h10.724V9.563H10.638zm.863.866h8.995v11.76H11.5V10.43zm.928 1.324v.862h7.139v-.862h-7.14zm0 2.605v.866h7.139v-.866h-7.14zm0 3.01v.863h7.139v-.863h-7.14zm0 2.72v.863h7.139v-.864h-7.14zM15.999.308h-.004l-.188.001h-.011l-.188.004h-.011L15.41.32h-.011l-.187.008h-.005L15.2.33l-.187.01h-.005l-.005.001-.187.013h-.011L14.62.37h-.01l-.186.018h-.011l-.185.02-.005.001h-.006l-.185.022-.005.001h-.005l-.185.025h-.005l-.005.001-.185.027h-.005l-.005.001-.184.029h-.005l-.005.001-.183.031-.006.001-.005.001-.182.033-.006.001-.005.001-.182.035-.005.001-.005.001-.182.038h-.005l-.005.002-.181.04h-.005l-.005.002-.18.042-.006.001-.005.001-.18.044-.005.002h-.005l-.17.045-.152.054-.139.082-.121.106-.1.127-.074.143-.046.155-.017.16.013.16.043.156.07.145.097.13.119.108.137.085.15.058.159.03.16-.001.133-.023.165-.043.168-.041.171-.04.171-.037.172-.036.17-.033.173-.03.17-.03.177-.027.171-.025.175-.022.175-.02.175-.02.176-.016.175-.014.177-.012.176-.01.177-.007.174-.006.177-.003.178-.001h.177l.178.004.174.006.177.007.176.01.177.012.175.014.176.017.175.018.175.02.175.023.171.025.176.027.17.03.174.03.17.033.171.036.154.033.16.02.161-.01.156-.04.146-.069.131-.094.111-.117.087-.135.061-.15.032-.158.002-.16-.027-.16-.057-.15L20 1.023l-.108-.12-.128-.097-.145-.073-.128-.038-.158-.035-.005-.001-.005-.001L19.14.62h-.005l-.005-.002-.182-.035h-.006L18.938.58l-.182-.033h-.006l-.005-.002-.183-.03-.005-.001-.006-.001-.183-.029h-.005l-.006-.001-.184-.027h-.005l-.005-.001-.185-.024h-.005L17.968.43 17.783.41l-.006-.001h-.005l-.185-.02h-.006l-.005-.001L17.39.37h-.005L17.38.368l-.187-.015h-.005l-.005-.001-.187-.013h-.011L16.8.328h-.011L16.6.32h-.011l-.187-.006h-.011L16.204.31h-.011L16.005.31H16zm9.016 2.935l-.16.004-.158.033-.15.062-.134.09-.116.111-.093.132-.067.147-.038.156-.01.161.022.16.05.153.078.141.103.124.102.087.045.034.142.106.137.105.14.11.136.11.135.112.134.115.134.117.13.115.132.122.128.12.127.122.126.125.124.126.124.128.121.13.118.128.118.132.117.133.113.134.113.136.11.136.109.137.109.142.104.14.103.14.101.142.1.144.099.146.095.145.094.147.093.15.092.15.087.149.087.15.084.152.084.155.08.152.08.155.04.081.084.138.11.119.128.096.145.072.155.043.16.013.16-.016.155-.046.144-.074.127-.099.106-.12.083-.14.055-.151.026-.16-.004-.16-.034-.158-.05-.124-.042-.085-.002-.004-.003-.005-.084-.165-.002-.004-.003-.005-.086-.164-.002-.004-.003-.005-.088-.162-.002-.005-.003-.005-.09-.161-.002-.005-.003-.004-.092-.16-.003-.005-.002-.005-.094-.16-.003-.004-.003-.004-.096-.159-.002-.004-.003-.005-.098-.157-.003-.004-.003-.005-.1-.156-.003-.004-.003-.005-.101-.154-.003-.005-.003-.004-.104-.154-.003-.004-.003-.005-.106-.152-.003-.005-.003-.004-.108-.151-.003-.004-.003-.005-.11-.15-.003-.004-.003-.004-.111-.15-.004-.003-.003-.005-.113-.147-.004-.004-.003-.005-.115-.146-.004-.004-.003-.004-.117-.145-.004-.004-.003-.004-.12-.144-.003-.004-.003-.004-.121-.142-.004-.004-.003-.004-.123-.141-.003-.004-.004-.004-.125-.14-.003-.004-.004-.004-.127-.138-.003-.004-.004-.004-.128-.136-.004-.004-.004-.004-.13-.135-.004-.004-.004-.004-.132-.134-.003-.004-.004-.003-.134-.133-.004-.003-.004-.004-.135-.13-.004-.004-.004-.004-.136-.128-.004-.004-.004-.004-.138-.126-.004-.004-.004-.003-.14-.125-.004-.004-.004-.003-.14-.123-.005-.004-.004-.003-.142-.121-.004-.004-.004-.003-.144-.12-.004-.003-.004-.003-.145-.117-.004-.004-.004-.003-.147-.115-.004-.004-.004-.003-.148-.113-.004-.003-.004-.004-.149-.111-.004-.003-.004-.004-.05-.036-.14-.083-.15-.055-.16-.027zm-18.381.344l-.161.008-.157.037-.147.066-.111.074-.04.032-.005.003-.004.004-.145.117-.004.003-.004.004-.144.119-.004.003-.004.004-.142.12-.004.004-.004.004-.141.123-.004.003-.004.004-.14.125-.004.003-.004.004-.138.126-.004.004-.004.004-.136.128-.004.004-.004.004-.135.13-.004.004-.004.003-.134.133-.004.003L4.682 5l-.132.134-.003.004-.004.004-.13.135-.004.004-.004.004-.128.136-.004.004-.004.004-.126.138-.004.004-.003.004-.125.14-.004.004-.003.004-.123.14-.004.005-.003.004-.121.142-.004.004-.003.004-.12.144-.003.004-.003.004-.117.145-.004.004-.003.004-.115.146-.004.005-.003.004-.113.147-.003.005-.004.004-.111.149-.003.004-.004.004-.11.15-.002.005-.003.004-.108.151-.003.004-.003.005-.106.152-.003.005-.003.004-.104.154-.003.004-.003.005-.102.154-.003.005-.002.004-.1.156-.003.005-.003.004-.098.157-.003.005-.003.004-.096.159-.002.004-.003.005-.094.16-.003.004-.002.004-.092.16-.003.005-.003.005-.09.161-.002.005-.003.005-.088.162-.002.005-.003.004-.086.164-.002.005-.002.004-.084.165-.003.005-.002.004-.082.166-.002.004-.003.005-.08.167-.002.004-.002.005-.078.168-.002.004-.002.005-.045.1-.053.153-.023.16.007.16.037.157.065.148.092.132.114.114.134.09.148.064.157.035.161.006.16-.025.152-.054.14-.08.121-.106.1-.126.065-.118.043-.095.074-.16.075-.155.077-.157.08-.155.08-.152.083-.155.085-.152.086-.15.088-.149.091-.15.094-.15.094-.147.095-.145.099-.146.1-.144.1-.142.104-.14.104-.14.11-.142.107-.137.11-.136.114-.136.113-.134.117-.133.118-.132.117-.129.122-.13.124-.127.123-.126.127-.125.127-.122.128-.12.132-.122.13-.115.133-.117.135-.115.135-.111.136-.11.037-.03.117-.11.094-.132.068-.146.04-.156.01-.161-.02-.16-.05-.154-.076-.141-.102-.125-.123-.104-.14-.08-.153-.051-.16-.023zM16 3.595h-.005l-.148.001h-.01l-.147.003h-.011l-.147.005h-.011l-.146.007h-.011l-.146.009h-.011l-.146.01h-.005l-.005.001-.146.012h-.011l-.145.014h-.006l-.005.001-.05.006-.158.031-.15.06-.135.088-.117.111-.094.13-.069.147-.04.156-.01.16.019.16.049.154.076.142.102.125.123.105.14.08.152.051.16.023.134-.003.045-.005.135-.013.133-.01.136-.01.135-.007.137-.006.136-.004.136-.003h.274l.136.003.136.004.136.006.136.007.136.01.133.01.135.013.135.014.135.016.134.018.132.018.134.021.133.023.133.024.133.025.13.027.132.03.132.03.129.031.13.034.129.035.129.036.13.04.126.038.128.042.126.042.128.045.127.047.126.047.12.048.127.051.123.052.006.002.147.048.16.021.16-.009.157-.038.147-.067.131-.093.112-.116.089-.135.062-.149.033-.158.004-.16-.027-.16-.055-.151-.083-.139-.107-.12-.127-.099-.118-.063-.004-.001-.005-.003-.005-.002-.133-.056-.005-.002-.005-.002-.134-.054-.004-.002-.005-.002-.135-.053-.005-.002-.005-.002-.135-.051-.005-.002-.005-.002-.135-.05-.005-.001-.005-.002-.137-.048-.005-.001-.005-.002-.137-.046-.005-.002-.005-.002-.137-.044-.005-.002-.005-.001-.138-.043-.006-.002-.005-.001-.138-.042-.005-.001-.005-.002-.14-.04H19.4l-.005-.002-.14-.038-.005-.001-.005-.002-.14-.036-.005-.001-.005-.001-.141-.035-.005-.001-.005-.001-.142-.033-.005-.001-.005-.001-.142-.031-.005-.002h-.005l-.142-.03-.005-.001-.005-.001-.143-.028h-.005l-.005-.002-.143-.025-.006-.001-.005-.001-.143-.024-.005-.001-.006-.001-.143-.022-.006-.001h-.005l-.144-.022h-.005l-.006-.001-.144-.019h-.005l-.006-.001-.144-.017h-.006l-.005-.001-.145-.016h-.011l-.145-.014H17.1l-.005-.001-.146-.012h-.01l-.146-.01-.006-.001h-.005l-.146-.009h-.011l-.147-.006h-.01L16.32 3.6h-.011l-.147-.003h-.011l-.147-.001H16zm-5.482 1.366l-.16.008-.157.037-.123.053-.06.032-.005.002-.004.003-.128.069-.004.002-.005.003-.126.07-.005.003-.004.002-.126.072-.005.003-.004.003-.125.073-.004.003-.005.003-.124.075-.004.003-.005.002-.123.077-.004.003-.005.003-.122.078-.004.003-.005.003-.121.08-.004.002-.005.003-.12.082-.005.003-.004.003-.12.083-.004.003-.004.003-.118.084-.005.003-.004.003-.118.086-.004.003-.004.003-.117.088-.004.003-.004.003-.116.089-.004.003-.004.004-.114.09-.005.003-.004.003-.113.092-.004.004-.004.003-.113.093-.004.004-.004.003-.111.095-.005.003-.004.004-.11.096-.004.004-.004.003-.11.098-.003.003-.004.004-.108.1-.004.003-.004.003-.107.101-.004.004-.004.003-.106.102-.004.004-.003.004-.105.103-.004.004-.004.004-.103.105-.004.004-.004.003-.102.106-.003.004-.004.004-.1.107-.004.004-.004.004-.099.108-.004.004-.003.004-.098.11-.003.003-.004.004-.096.11-.004.005-.003.004-.095.111-.003.004-.004.004-.093.113-.003.004-.004.004-.092.113-.003.004-.003.005-.09.114-.004.004-.003.004-.089.116-.003.004-.003.004-.088.117-.003.004-.003.004-.086.118-.003.004-.003.005-.084.118-.003.004-.003.005-.083.12-.003.003-.003.005-.082.12-.003.005-.002.004-.068.103-.076.142-.048.154-.018.16.011.161.041.156.07.146.095.13.117.11.136.086.15.06.158.03.162.002.158-.03.15-.057.138-.085.119-.109.082-.105.065-.099.075-.11.077-.113.077-.107.08-.11.08-.108.084-.108.083-.105.086-.106.086-.104.088-.104.089-.101.09-.102.093-.101.093-.099.094-.097.095-.096.098-.097.098-.095.099-.093.1-.092.103-.091.101-.089.104-.088.104-.086.106-.086.106-.083.106-.082.109-.082.108-.079.11-.078.11-.076.112-.076.112-.074.113-.072.113-.071.115-.07.115-.068.118-.067.117-.065.12-.065.054-.029.135-.088.116-.111.094-.132.068-.146.04-.156.009-.161-.02-.16-.05-.153-.078-.142-.102-.125-.123-.103-.141-.079-.153-.051-.16-.022zm13.91 2.116l-.162.008-.157.037-.147.066-.132.092-.113.116-.09.134-.063.148-.034.157-.005.162.025.159.055.152.082.138.086.103.09.09.094.098.092.099.093.1.091.103.089.101.088.104.086.104.086.106.083.105.083.108.08.108.081.11.077.107.077.112.075.111.075.114.072.113.071.113.07.114.068.118.067.115.065.118.064.117.062.117.061.121.059.119.059.122.056.121.054.12.055.125.051.123.051.125.048.123.048.127.047.126.044.125.043.128.042.129.039.126.038.13.022.076.058.15.085.137.11.119.129.096.145.07.155.043.16.013.161-.017.154-.046.144-.075.126-.1.106-.12.082-.14.055-.151.025-.16-.005-.16-.026-.132-.023-.082-.002-.005-.001-.005-.042-.139-.001-.005-.002-.005-.043-.138-.001-.005-.002-.005-.044-.137-.002-.005-.002-.005-.046-.137-.002-.005-.001-.005-.048-.137-.002-.005-.002-.005-.05-.135-.001-.005-.002-.005-.051-.135-.002-.005-.002-.005-.053-.135-.002-.005-.002-.005-.054-.133-.002-.005-.002-.005-.057-.133-.002-.005-.002-.005-.057-.132-.003-.005-.002-.005-.06-.132-.001-.005-.002-.004-.061-.132-.003-.004-.002-.005-.063-.13-.002-.005-.002-.005-.064-.13-.003-.004-.002-.005-.066-.129-.002-.004-.003-.005-.067-.128-.002-.005-.003-.004-.069-.128-.002-.004-.003-.005-.07-.126-.003-.005-.003-.004-.072-.126-.002-.005-.003-.004-.074-.125-.002-.004-.003-.005-.075-.124-.003-.004-.003-.005-.076-.123-.003-.004-.003-.005-.078-.122-.003-.004-.003-.005-.08-.121-.003-.004-.003-.005-.081-.12-.003-.005-.003-.004-.083-.12-.003-.004-.003-.004-.084-.118-.003-.005-.003-.004-.086-.118-.003-.004-.004-.004-.087-.117-.003-.004-.003-.004-.09-.116-.002-.004-.004-.004-.09-.114-.003-.005-.004-.004-.091-.113-.004-.004-.003-.004-.094-.113-.003-.004-.003-.004-.095-.111-.004-.004-.003-.004-.096-.11-.004-.005-.003-.004-.098-.11-.004-.003-.003-.004-.1-.108-.003-.004-.004-.004-.1-.107-.004-.004-.004-.004-.102-.106-.003-.003-.004-.004-.093-.095-.124-.103-.14-.08-.153-.05-.16-.023zM4.45 13.135l-.161.002-.158.032-.15.06-.135.088-.118.11-.094.131-.069.146-.035.129-.026.132v.005l-.002.005-.025.143-.001.005-.001.006-.024.143-.001.005-.001.006-.022.143-.001.006-.001.005-.02.144-.001.005-.001.005-.019.145v.005l-.001.006-.017.144v.006l-.001.005-.016.145v.011l-.014.145v.005l-.001.006-.012.146v.01l-.01.146-.001.006v.005l-.009.146v.011l-.007.146v.011l-.004.147v.011l-.003.147v.01l-.002.148v.01l.001.148v.01l.003.147v.011l.005.147v.01l.007.147v.011l.009.146v.011l.01.146v.01l.013.146v.011l.014.145v.005l.001.006.016.145v.011l.018.144v.006l.001.005.019.144v.006l.001.005.021.144v.005l.002.006.022.143v.006l.002.005.024.143v.005l.002.006.025.143.001.005.001.005.028.143.001.005.001.005.03.142v.005l.002.006.03.141.002.005.001.005.033.142v.005l.002.005.035.14v.006l.002.005.036.14.002.005.001.005.038.14.001.005.002.005.04.14v.005l.002.005.042.138.001.006.002.005.042.138.002.005.002.005.017.054.064.148.09.134.114.114.132.092.148.065.157.037.16.007.16-.023.153-.052.14-.08.123-.104.102-.125.076-.142.049-.153.02-.16-.011-.161-.031-.13-.017-.051-.039-.126-.038-.13-.037-.128-.035-.13-.033-.128-.033-.134-.03-.13-.029-.131-.026-.13-.026-.133-.024-.133-.023-.133-.02-.132-.02-.136-.017-.132-.016-.135-.014-.135-.012-.133-.012-.138-.009-.133-.007-.136-.006-.138-.004-.134-.003-.136v-.274l.003-.136.004-.134.006-.139.007-.136.01-.133.01-.138.013-.132.014-.135.016-.135.017-.132.02-.137.02-.13.023-.134.024-.133.024-.126.016-.16-.014-.161-.044-.155-.072-.145-.098-.128-.12-.108-.137-.084-.15-.057-.16-.029zm26.698 1.601l-.161.01-.157.04-.146.067-.131.093-.112.117-.088.135-.061.149-.033.157-.005.134.006.14.006.176.003.177.001.178-.001.177-.003.178-.006.177-.007.176-.01.177-.012.176-.015.176-.016.173-.018.175-.02.175-.024.174-.025.175-.026.17-.03.174-.03.173-.033.17-.036.172-.037.17-.04.17-.042.172-.043.168-.045.166-.048.169-.05.167-.052.168-.053.164-.056.166-.058.166-.06.16-.062.165-.062.158-.066.165-.068.16-.07.16-.07.158-.075.159-.074.155-.079.158-.08.158-.06.15-.03.158-.001.161.029.159.058.15.085.137.108.119.13.097.144.07.156.044.16.013.16-.017.155-.046.143-.074.127-.1.107-.12.07-.115.083-.164.003-.005.002-.004.082-.166.002-.005.003-.004.08-.167.002-.005.002-.004.078-.168.002-.005.002-.004.076-.169.002-.004.002-.005.074-.17.002-.004.002-.005.072-.17.002-.005.002-.005.07-.171.001-.005.002-.005.068-.172.002-.004.002-.005.065-.173.002-.005.002-.005.063-.173.002-.005.002-.005.06-.174.003-.005.001-.005.06-.175.001-.005.002-.005.057-.176.001-.005.002-.005.055-.177.001-.005.002-.005.052-.177.002-.005.001-.005.051-.178.001-.005.002-.005.048-.179.002-.005v-.005l.047-.179.001-.005.002-.005.044-.18v-.005l.002-.005.042-.18.001-.006.001-.005.04-.181.001-.005.001-.005.037-.182.002-.005v-.005l.036-.182v-.006l.002-.005.033-.182v-.006l.002-.005.03-.183.001-.005.001-.005.029-.184v-.005l.001-.006.027-.184v-.005l.001-.005.024-.185v-.005l.001-.005.022-.185v-.006l.001-.005.02-.185v-.006l.001-.005.017-.186v-.005l.001-.005.015-.187v-.005l.001-.005.013-.187v-.01l.01-.187.001-.006v-.005l.009-.187v-.011l.006-.187V16.7l.004-.188v-.011l.001-.188v-.01l-.001-.188v-.011l-.004-.188v-.011l-.006-.187v-.011l-.007-.145-.022-.16-.05-.152-.08-.141-.103-.124-.125-.102-.141-.077-.153-.05-.16-.02zm-30.21.572l-.161.001-.158.032-.15.06-.136.087-.117.11-.095.131-.068.146-.04.156-.012.133-.001.14v.01l.001.188v.011l.004.188v.011l.006.187v.011l.008.187v.011l.011.187v.005l.001.005.013.187v.01l.016.187v.01l.018.186v.011l.02.185.001.005v.006l.022.185.001.005v.005l.025.185v.005l.001.005.027.184v.006l.001.005.029.184v.005l.001.005.031.183.001.005.001.006.033.182.001.005.001.006.035.182.001.005.001.005.038.182v.005l.002.005.04.181v.005l.002.005.042.18.001.006.001.005.044.18.002.005v.005l.047.18.001.004.002.005.048.179.002.005.001.005.05.178.002.005.001.005.053.177.002.005.001.005.055.177.002.005.001.005.057.176.002.005.001.005.06.175.001.005.002.005.061.174.002.005.002.005.063.173.002.005.002.005.065.173.002.005.002.004.067.172.002.005.002.005.07.171.002.005.002.005.072.17.002.005.002.004.074.17.002.005.002.004.076.169.002.004.002.005.078.168.002.004.002.005.08.167.003.004.002.005.082.166.002.004.003.005.02.04.086.136.11.118.13.095.146.07.156.041.16.012.16-.019.155-.048.142-.075.126-.1.105-.123.08-.14.054-.152.024-.16-.006-.16-.036-.158-.051-.123-.018-.034-.078-.158-.074-.155-.074-.16-.071-.157-.07-.16-.068-.16-.067-.165-.062-.158-.062-.164-.059-.161-.058-.166-.056-.166-.053-.164-.052-.168-.05-.167-.048-.17-.045-.165-.043-.168-.043-.172-.039-.17-.037-.17-.036-.172-.033-.17-.03-.173-.03-.174-.027-.17-.025-.175-.022-.174-.021-.175-.018-.175-.017-.173-.014-.176-.012-.176-.01-.177-.007-.176-.006-.177-.003-.178-.001-.177v-.134l-.013-.16-.044-.156-.072-.144-.097-.129-.12-.108-.137-.085-.15-.057-.159-.028zm26.798 2.024l-.16.007-.157.038-.148.066-.132.092-.113.115-.09.134-.062.148-.03.127-.001.004-.023.134-.024.133-.026.133-.026.13-.03.132-.03.129-.032.134-.033.128-.035.13-.037.128-.038.13-.04.126-.04.128-.044.128-.044.126-.046.126-.048.126-.05.125-.05.125-.051.122-.054.123-.055.122-.056.12-.058.122-.06.12-.061.12-.063.119-.062.116-.067.119-.066.116-.069.115-.069.115-.07.113-.073.113-.074.112-.076.113-.077.112-.077.107-.08.11-.08.107-.085.11-.044.056-.088.135-.06.15-.033.158-.002.16.027.16.057.15.083.138.108.12.128.098.144.072.155.045.16.015.161-.016.155-.044.144-.073.128-.098.09-.099.05-.061.003-.004.003-.005.089-.115.003-.004.003-.005.088-.116.003-.004.003-.005.086-.117.003-.004.003-.005.084-.118.003-.004.003-.005.083-.12.003-.004.003-.004.081-.12.003-.005.003-.004.08-.121.003-.005.003-.004.078-.122.003-.005.003-.004.077-.123.002-.005.003-.004.075-.124.003-.005.003-.004.073-.125.003-.005.003-.004.072-.126.002-.004.003-.005.07-.126.003-.005.002-.005.07-.127.002-.004.002-.005.068-.128.002-.005.002-.004.066-.13.003-.004.002-.005.064-.13.002-.004.003-.005.062-.13.002-.005.003-.005.06-.13.003-.005.002-.005.06-.132.002-.005.002-.005.057-.132.003-.005.002-.005.056-.133.002-.005.002-.005.054-.134.002-.004.002-.005.053-.135.002-.005.002-.005.051-.135.002-.005.002-.005.05-.135.001-.005.002-.005.048-.137.001-.005.002-.005.046-.137.002-.005.002-.005.044-.137.002-.005.002-.005.042-.138.002-.005.001-.006.042-.138.001-.005.002-.005.04-.14v-.005l.002-.005.038-.14.001-.005.002-.005.036-.14.001-.005.001-.005.035-.141.001-.005.001-.005.033-.142.001-.005.001-.005.031-.141.001-.006.002-.005.029-.142v-.005l.002-.005.028-.143v-.005l.002-.005.025-.143.001-.006.001-.005.024-.143.001-.005.001-.006.001-.006.01-.161-.02-.16-.05-.154-.077-.141-.102-.125-.123-.104-.141-.079-.153-.051-.16-.022zM6.841 23.019l-.16.024-.152.053-.14.08-.122.105-.101.126-.076.142-.048.154-.018.16.011.161.041.156.07.146.077.109.04.048.003.004.003.004.095.111.003.004.004.004.096.11.004.005.003.004.098.109.003.004.004.004.1.108.003.004.003.004.101.107.004.004.003.004.102.105.004.004.004.004.103.105.004.004.004.003.105.104.003.004.004.003.106.102.004.004.004.004.107.1.004.004.004.004.108.099.004.003.004.004.11.098.003.003.004.004.11.096.004.003.005.004.11.095.005.003.004.004.113.093.004.003.004.004.113.091.004.004.005.003.114.09.004.004.004.003.116.089.004.003.004.003.117.088.004.003.004.003.118.086.004.003.005.003.118.084.004.003.005.003.119.083.004.003.005.003.12.081.005.003.004.003.121.08.005.003.004.003.122.078.005.003.004.003.123.076.005.003.004.003.124.075.005.003.004.003.125.073.004.003.005.002.126.073.004.002.005.003.126.07.005.003.004.002.128.07.004.002.005.002.128.067.005.003.004.002.13.066.004.002.005.003.13.064.004.002.005.003.13.062.005.002.004.003.132.06.004.003.005.002.132.06.005.002.005.002.132.057.005.002.005.002.133.057.005.002.005.002.133.054.005.002.005.002.13.05.154.045.16.016.16-.015.156-.045.144-.072.128-.098.108-.12.083-.138.057-.15.028-.16-.003-.16-.032-.159-.061-.149-.088-.135-.11-.117-.132-.094-.12-.058-.124-.049-.126-.051-.122-.051-.122-.054-.12-.054-.126-.058-.119-.057-.12-.06-.12-.06-.118-.063-.117-.064-.119-.066-.116-.066-.115-.068-.115-.07-.113-.07-.115-.074-.112-.074-.11-.075-.11-.076-.112-.08-.11-.08-.109-.081-.106-.082-.104-.082-.106-.086-.105-.087-.101-.086-.105-.091-.1-.09-.1-.091-.1-.094-.097-.094-.1-.098-.093-.095-.096-.1-.093-.098-.092-.101-.089-.1-.09-.102-.088-.104-.036-.043-.114-.114-.133-.091-.148-.065-.157-.036-.161-.006zm15.063 2.701l-.16.014-.156.044-.12.057-.06.034-.12.066-.117.064-.118.062-.12.061-.12.06-.118.057-.126.058-.12.054-.122.054-.122.05-.126.052-.125.05-.124.046-.127.047-.125.044-.129.043-.126.04-.13.042-.128.038-.127.035-.13.036-.131.034-.129.031-.132.03-.13.03-.135.027-.133.026-.13.023-.13.022-.137.021-.132.02-.134.017-.132.015-.138.015-.135.013-.133.01-.138.01-.136.007-.134.006-.136.004-.14.003-.16.018-.155.047-.142.076-.127.1-.105.122-.08.14-.054.151-.025.16.006.16.035.158.064.148.09.134.114.114.133.092.147.065.157.036.134.008.145-.002h.011l.147-.005h.01l.147-.007h.011l.146-.009h.011l.146-.01h.005l.005-.001.146-.012h.011l.145-.014h.005l.006-.001.145-.016h.011l.144-.018h.006l.005-.001.144-.02h.011l.144-.021.005-.001h.006l.143-.023.006-.001h.005l.143-.025h.005l.006-.002.143-.026h.005l.005-.002.143-.027.005-.001.005-.001.142-.03h.005l.005-.002.142-.03.005-.002.005-.001.142-.033.005-.001.005-.001.14-.035.006-.001.005-.001.14-.037h.005l.005-.002.14-.038.005-.002h.005l.14-.04.005-.002.005-.001.138-.042.005-.001.006-.002.138-.043.005-.001.005-.002.137-.044.005-.002.005-.002.137-.046.005-.002.005-.001.137-.048.005-.002.005-.002.135-.05.005-.001.005-.002.135-.051.005-.002.005-.002.135-.053.005-.002.004-.002.134-.054.005-.002.005-.002.133-.057.005-.002.005-.002.132-.057.005-.003.005-.002.132-.06.005-.001.004-.002.131-.061.005-.003.005-.002.13-.062.005-.003.005-.002.13-.064.004-.003.005-.002.128-.066.005-.002.005-.003.128-.067.005-.002.004-.003.127-.069.005-.002.005-.003.126-.07.005-.003.004-.003.065-.037.132-.093.112-.115.089-.135.062-.149.034-.157.003-.161-.026-.16-.055-.15-.082-.14-.107-.12-.127-.1-.144-.073-.154-.046-.16-.016zM6.33 27.127l-.16.023-.152.053-.14.08-.122.105-.101.126-.076.142-.048.154-.02.16.012.161.041.156.07.146.094.13.096.093.032.026.004.003.004.004.145.117.004.003.004.004.146.115.005.003.004.004.147.113.005.003.004.004.149.111.004.003.004.003.15.11.005.003.004.003.151.108.004.003.005.003.152.106.005.003.004.003.154.104.004.003.005.003.154.102.005.002.004.003.156.1.005.003.004.003.157.098.005.003.004.002.159.096.004.003.005.003.16.094.004.003.004.002.16.092.005.003.005.002.161.09.005.003.005.002.162.088.005.003.004.002.164.086.005.003.004.002.165.084.005.003.004.002.166.082.004.002.005.003.167.08.004.002.005.002.168.078.004.002.005.002.168.076.005.002.005.002.17.074.004.002.005.002.17.072.005.002.005.002.17.07.006.002.005.001.171.068.005.002.005.002.173.065.005.002.005.002.173.063.005.002.005.002.174.06.005.003.005.001.175.06.005.001.005.002.176.057.005.001.005.002.176.055.006.001.005.002.177.052.005.002.005.001.178.05.005.002.005.002.178.048.006.001.005.002.179.046.005.001.005.002.18.044h.005l.005.002.18.042.006.001.005.001.159.035.16.02.16-.01.157-.04.146-.069.13-.094.112-.117.087-.136.06-.149.033-.158.002-.161-.028-.159-.057-.15-.084-.138-.108-.12-.128-.098-.144-.072-.128-.039-.154-.033-.168-.04-.171-.041-.17-.044-.168-.046-.167-.047-.168-.05-.165-.051-.166-.054-.166-.056-.163-.057-.165-.06-.161-.062-.164-.064-.16-.065-.16-.068-.162-.07-.157-.07-.157-.074-.157-.075-.156-.077-.153-.079-.156-.082-.153-.082-.154-.086-.15-.086-.152-.09-.148-.09-.147-.092-.149-.095-.145-.095-.144-.098-.145-.1-.143-.102-.14-.103-.14-.104-.14-.108-.139-.11-.136-.11-.027-.022-.133-.091-.148-.065-.157-.036-.161-.006zm19.215.087l-.16.01-.157.039-.146.067-.11.076-.064.051-.139.11-.14.108-.14.104-.14.103-.143.101-.145.101-.144.098-.145.095-.149.095-.148.093-.147.089-.152.09-.15.086-.154.086-.153.082-.156.082-.153.079-.156.077-.157.075-.158.073-.157.071-.16.07-.16.068-.161.065-.164.064-.161.061-.165.06-.163.058-.166.056-.166.054-.166.051-.167.05-.167.047-.17.046-.168.044-.171.042-.168.039-.17.037-.11.023-.154.047-.143.075-.126.1-.106.122-.081.139-.054.152-.025.16.006.16.035.158.063.148.09.133.114.115.132.092.148.065.157.037.16.007.133-.016.115-.024.005-.001.005-.001.181-.04h.005l.005-.002.18-.042.006-.001.005-.001.18-.044.005-.002.005-.001.18-.046.004-.002h.005l.179-.05h.005l.005-.002.178-.05.005-.002.005-.002.177-.052.005-.002.005-.001.177-.055.005-.002.005-.001.176-.057.005-.002.005-.002.175-.059.005-.001.005-.002.174-.061.005-.002.005-.002.173-.063.005-.002.005-.002.173-.065.004-.002.005-.002.172-.068.005-.002.005-.002.171-.07.005-.001.005-.002.17-.072.005-.002.004-.002.17-.074.005-.002.004-.002.169-.076.004-.002.005-.002.168-.078.004-.002.005-.003.167-.08.004-.002.005-.002.166-.082.004-.002.005-.003.165-.084.004-.002.005-.003.163-.086.005-.002.005-.003.162-.088.005-.002.005-.003.161-.09.005-.002.004-.003.16-.092.005-.003.005-.002.16-.094.004-.003.004-.003.158-.096.005-.002.004-.003.158-.098.004-.003.005-.003.156-.1.004-.003.004-.003.155-.101.005-.003.004-.003.154-.104.004-.003.004-.003.153-.106.004-.003.005-.003.151-.108.004-.003.005-.003.15-.11.004-.003.004-.003.149-.112.004-.003.004-.003.148-.113.004-.004.004-.003.147-.115.004-.004.004-.003.068-.055.116-.113.092-.132.066-.147.038-.157.008-.16-.022-.16-.05-.153-.08-.14-.103-.125-.124-.102-.142-.077-.153-.05-.16-.02z"}));function zV(){return zV=Object.assign?Object.assign.bind():function(e){for(var t=1;trS("svg",zV({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M16.012 9.222c-1.673 4.657-2.735 9.508-4.409 14.164 1.536-1.526 2.874-3.236 4.41-4.762l4.408 4.762c-1.497-4.712-2.911-9.451-4.409-14.164zm.032 2.93c.823 2.588 1.599 5.19 2.421 7.777l-2.42-2.614c-.683.598-2.454 2.886-2.34 2.39.871-2.489 1.448-5.07 2.34-7.552zM16.012.312c-1.448.02-2.93.157-4.302.628-.852.447-.255 1.863.66 1.574 2.255-.608 4.648-.607 6.922-.108.934.075 1.228-1.376.338-1.67C18.451.44 17.227.317 16.012.311zm9.012 2.934c-.913-.104-1.272 1.258-.454 1.648 1.834 1.36 3.293 3.185 4.31 5.22.526.776 1.842.098 1.515-.78a15.522 15.522 0 00-5.06-6.006c-.1-.044-.203-.07-.31-.082zM6.65 3.59c-.762.089-1.24.809-1.805 1.267C3.38 6.295 2.163 8.007 1.37 9.905c-.266.898 1.094 1.484 1.564.675a14.825 14.825 0 014.327-5.56c.476-.515.09-1.419-.612-1.431zm9.362.007c-.698.066-1.689-.16-2.033.635-.282.733.535 1.358 1.217 1.125 1.806-.147 3.63.203 5.293.907.902.255 1.472-1.112.656-1.573-1.6-.735-3.374-1.089-5.133-1.094zm-5.479 1.365c-.835.15-1.517.76-2.21 1.226-1.203.94-2.318 2.061-3.057 3.402-.33.904 1.063 1.552 1.547.723 1.045-1.656 2.596-2.925 4.285-3.873.545-.499.171-1.463-.565-1.478zm13.903 2.115c-.875-.07-1.22 1.173-.501 1.627 1.325 1.34 2.188 3.062 2.748 4.84.468.84 1.869.21 1.557-.699-.604-2.118-1.751-4.097-3.351-5.615a.93.93 0 00-.453-.153zM4.467 13.132c-.822-.07-.996.826-1.046 1.455-.256 1.93-.094 3.933.562 5.769.406.844 1.807.365 1.612-.551a11.498 11.498 0 01-.334-5.808.874.874 0 00-.794-.865zm26.687 1.6c-.746-.037-1.014.785-.879 1.395.043 2.393-.57 4.771-1.66 6.894-.31.884 1.02 1.536 1.53.75a15.632 15.632 0 001.821-8.372.876.876 0 00-.812-.667zm-30.197.571c-.782-.073-1.044.775-.933 1.404.068 2.414.661 4.833 1.809 6.962.534.77 1.842.076 1.505-.798a14.833 14.833 0 01-1.603-6.861.876.876 0 00-.778-.707zm26.787 2.024c-.777-.048-.952.797-1.021 1.392-.354 1.692-1.202 3.231-2.216 4.608-.407.872.925 1.638 1.48.852 1.361-1.733 2.296-3.827 2.582-6.017a.874.874 0 00-.825-.835zM6.857 23.012c-.808.018-1.082 1.122-.47 1.59 1.393 1.607 3.187 2.886 5.194 3.599.91.222 1.43-1.165.598-1.596a11.495 11.495 0 01-4.723-3.396.899.899 0 00-.599-.197zm15.057 2.7c-.81.194-1.504.76-2.325.972-1.203.458-2.5.536-3.758.664-.869.307-.573 1.728.346 1.663 2.201-.034 4.412-.626 6.293-1.778.604-.495.227-1.532-.556-1.521zM6.346 27.118c-.833.008-1.11 1.218-.395 1.617 1.986 1.602 4.358 2.749 6.868 3.226.933.076 1.227-1.376.338-1.67a14.838 14.838 0 01-6.345-3.066.929.929 0 00-.466-.107zm19.208.087c-.766.09-1.241.841-1.922 1.158-1.516.991-3.251 1.58-4.996 2.005-.872.405-.346 1.849.584 1.604 2.543-.526 4.98-1.66 6.963-3.344.47-.52.072-1.42-.63-1.423z"}));function FV(){return FV=Object.assign?Object.assign.bind():function(e){for(var t=1;trS("svg",FV({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M8.742 10.464v11.072h14.516V10.464H8.742zm3.224 1.73h8.066a69569 69569 0 00-4.034 3.22l-4.032-3.22zm9.565 1.018v6.594H10.469v-6.593L16 17.63l5.532-4.419zM16 0h-.005l-.188.001h-.011l-.188.004h-.011l-.187.006h-.011l-.187.008h-.005L15.2.02l-.187.01h-.005l-.005.001-.187.013h-.011L14.62.06h-.01l-.186.018h-.011l-.185.02-.005.001h-.006l-.185.022-.005.001h-.005l-.185.025h-.005l-.005.001-.185.027h-.005l-.005.001-.184.029h-.005l-.005.001-.183.031-.006.001-.005.001-.182.033-.006.001-.005.001-.182.035-.005.001-.005.001-.182.038h-.005l-.005.002-.181.04h-.005l-.005.002-.18.042-.006.001-.005.001-.18.044-.005.002h-.005l-.17.045-.152.054-.139.082-.121.106-.1.127-.074.143-.046.155-.017.16.013.16.043.156.07.145.097.13.119.108.137.085.15.058.159.03.16-.001.133-.023.165-.043.168-.041.171-.04.171-.037.172-.036.17-.033.173-.03.17-.03.177-.027.171-.025.175-.022.175-.02.175-.02.176-.016.175-.014.177-.012.176-.01.177-.007.174-.006.177-.003L16 1.73h.177l.178.004.174.006.177.007.176.01.177.012.175.014.176.017.175.018.175.02.175.023.171.025.176.027.17.03.174.03.17.033.171.036.154.033.16.02.161-.01.156-.04.146-.069.131-.094.111-.117.087-.135.061-.15.032-.158.002-.16-.027-.16-.057-.15L20 .714l-.108-.12-.128-.097-.145-.073-.128-.038-.158-.035-.005-.001-.005-.001L19.14.31h-.005l-.005-.002-.182-.035h-.006l-.005-.002-.182-.033h-.006l-.005-.002-.183-.03-.005-.001-.006-.001-.183-.029h-.005l-.006-.001-.184-.027h-.005l-.005-.001-.185-.024h-.005L17.968.12 17.783.1l-.006-.001h-.005l-.185-.02h-.006l-.005-.001L17.39.06h-.005L17.38.06l-.187-.015h-.005l-.005-.001-.187-.013h-.011L16.8.02h-.011L16.6.01h-.011l-.187-.006h-.011L16.204 0h-.011L16.005 0H16zm9.015 2.935l-.16.004-.158.033-.15.062-.134.09-.116.111-.093.132-.067.147-.038.156-.01.161.022.16.05.153.078.141.103.124.102.087.045.034.142.106.137.105.14.11.136.11.135.112.134.115.134.117.13.115.132.122.128.12.127.122.126.125.124.126.124.128.121.13.118.128.118.132.117.133.113.134.113.136.11.136.109.137.109.142.104.14.103.14.101.142.1.144.099.146.095.145.094.147.093.15.092.15.087.149.087.15.084.152.084.155.08.152.08.155.04.081.084.138.11.119.128.096.145.072.155.043.16.013.16-.016.155-.046.144-.074.127-.099.106-.12.083-.14.055-.151.026-.16-.004-.16-.034-.158-.05-.124-.042-.085-.002-.004-.003-.005-.084-.165-.002-.004-.003-.005-.086-.164-.002-.004-.003-.005-.088-.162-.002-.005-.003-.005-.09-.161-.002-.005-.003-.004-.092-.16-.003-.005-.002-.005-.094-.16-.003-.004-.003-.004-.096-.159-.002-.004-.003-.005-.098-.157-.003-.004-.003-.005-.1-.156-.003-.004-.003-.005-.101-.154-.003-.005-.003-.004-.104-.154-.003-.004-.003-.005-.106-.152-.003-.005-.003-.004-.108-.151-.003-.004-.003-.005-.11-.15-.003-.004-.003-.004-.111-.15-.004-.003-.003-.005-.113-.147-.004-.004-.003-.005-.115-.146-.004-.004-.003-.004-.117-.145-.004-.004-.003-.004-.12-.144-.003-.004-.003-.004-.121-.142-.004-.004-.003-.004-.123-.141-.003-.004-.004-.004-.125-.14-.003-.004-.004-.004-.127-.138-.003-.004-.004-.004-.128-.136-.004-.004-.004-.004-.13-.135-.004-.004-.004-.004-.132-.134-.003-.004-.004-.003-.134-.133-.004-.003-.004-.004-.135-.13-.004-.004-.004-.004-.136-.128-.004-.004-.004-.004-.138-.126-.004-.004-.004-.003-.14-.125-.004-.004-.004-.003-.14-.123-.005-.004-.004-.003-.142-.121-.004-.004-.004-.003-.144-.12-.004-.003-.004-.003-.145-.117-.004-.004-.004-.003-.147-.115-.004-.004-.004-.003-.148-.113-.004-.003-.004-.004-.149-.111-.004-.003-.004-.004-.05-.036-.14-.083-.15-.055-.16-.027zM6.634 3.28l-.161.008-.157.037-.147.066-.111.074-.04.032-.005.003-.004.004-.145.117-.004.003-.004.004-.144.119-.004.003-.004.004-.142.12-.004.004-.004.004-.141.123-.004.003-.004.004-.14.125-.004.003-.004.004-.138.126-.004.004-.004.004-.136.128-.004.004-.004.004-.135.13-.004.004-.004.003-.134.133-.004.003-.004.004-.132.134-.003.004-.004.004-.13.135-.004.004-.004.004-.128.136-.004.004-.004.004-.126.138-.004.004-.003.004-.125.14-.004.004-.003.004-.123.14-.004.005-.003.004-.121.142-.004.004-.003.004-.12.144-.003.004-.003.004-.117.145-.004.004-.003.004-.115.146-.004.005-.003.004-.113.147-.003.005-.004.004-.111.149-.003.004-.004.004-.11.15-.002.005-.003.004-.108.151-.003.004-.003.005-.106.152-.003.005-.003.004-.104.154-.003.004-.003.005-.102.154-.003.005-.002.004-.1.156-.003.005-.003.004-.098.157-.003.005-.003.004-.096.159-.002.004-.003.005-.094.16-.003.004-.002.004-.092.16-.003.005-.003.005-.09.161-.002.005-.003.005-.088.162-.002.005-.003.004-.086.164-.002.005-.002.004-.084.165-.003.005-.002.004-.082.166-.002.004-.003.005-.08.167-.002.004-.002.005-.078.168-.002.004-.002.005-.045.1-.053.153-.023.16.007.16.037.157.065.148.092.132.114.114.134.09.148.064.157.035.161.006.16-.025.152-.054.14-.08.121-.106.1-.126.065-.118.043-.095.074-.16.075-.155.077-.157.08-.155.08-.152.083-.155.085-.152.086-.15.088-.149.091-.15.094-.15.094-.147.095-.145.099-.146.1-.144.1-.142.104-.14.104-.14.11-.142.107-.137.11-.136.114-.136.113-.134.117-.133.118-.132.117-.129.122-.13.124-.127.123-.126.127-.125.127-.122.128-.12.132-.122.13-.115.133-.117.135-.115.135-.111.136-.11.037-.03.117-.11.094-.132.068-.146.04-.156.01-.161-.02-.16-.05-.154-.076-.141-.102-.125-.123-.104-.14-.08-.153-.051-.16-.023zM16 3.286h-.005l-.148.001h-.01l-.147.003h-.011l-.147.005h-.011l-.146.007h-.011l-.146.009h-.011l-.146.01h-.005l-.005.001-.146.012h-.011l-.145.014h-.006l-.005.001-.05.006-.158.031-.15.06-.135.088-.117.111-.094.13-.069.147-.04.156-.01.16.019.16.049.154.076.142.102.125.123.105.14.08.152.051.16.023.134-.003.045-.005.135-.013.133-.01.136-.01.135-.007.137-.006.136-.004.136-.003h.274l.136.003.136.004.136.006.136.007.136.01.133.01.135.013.135.014.135.016.134.018.132.018.134.021.133.023.133.024.133.025.13.027.132.03.132.03.129.031.13.034.129.035.129.036.13.04.126.038.128.042.126.042.128.045.127.047.126.047.12.048.127.051.123.052.006.002.147.048.16.021.16-.009.157-.038.147-.067.131-.093.112-.116.089-.135.062-.149.033-.158.004-.16-.027-.16-.055-.151-.083-.139-.107-.12-.127-.099-.118-.063-.004-.001-.005-.003-.005-.002-.133-.056-.005-.002-.005-.002-.134-.054-.004-.002-.005-.002-.135-.053-.005-.002-.005-.002-.135-.051-.005-.002-.005-.002-.135-.05-.005-.001-.005-.002-.137-.048-.005-.001-.005-.002-.137-.046-.005-.002-.005-.002-.137-.044-.005-.002-.005-.001-.138-.043-.006-.002-.005-.001-.138-.042-.005-.001-.005-.002-.14-.04H19.4l-.005-.002-.14-.038-.005-.001-.005-.002-.14-.036-.005-.001-.005-.001-.141-.035-.005-.001-.005-.001-.142-.033-.005-.001-.005-.001-.142-.031-.005-.002h-.005l-.142-.03-.005-.001-.005-.001-.143-.028h-.005l-.005-.002-.143-.025-.006-.001-.005-.001-.143-.024-.005-.001-.006-.001-.143-.022-.006-.001h-.005l-.144-.022h-.005l-.006-.001-.144-.019h-.005l-.006-.001-.144-.017h-.006l-.005-.001-.145-.016h-.011l-.145-.014H17.1l-.005-.001-.146-.012h-.01l-.146-.01-.006-.001h-.005l-.146-.009h-.011l-.147-.006h-.01l-.147-.005h-.011l-.147-.003h-.011l-.147-.001H16zm-5.482 1.366l-.16.008-.157.037-.123.053-.06.032-.005.002-.004.003-.128.069-.004.002-.005.003-.126.07-.005.003-.004.002-.126.072-.005.003-.004.003-.125.073-.004.003-.005.003-.124.075-.004.003-.005.002-.123.077-.004.003-.005.003-.122.078-.004.003-.005.003-.121.08-.004.002-.005.003-.12.082-.005.003-.004.003-.12.083-.004.003-.004.003-.118.084-.005.003-.004.003-.118.086-.004.003-.004.003-.117.088-.004.003-.004.003-.116.089-.004.003-.004.004-.114.09-.005.003-.004.003-.113.092-.004.004-.004.003-.113.093-.004.004-.004.003-.111.095-.005.003-.004.004-.11.096-.004.004-.004.003-.11.098-.003.003-.004.004-.108.1-.004.003-.004.003-.107.101-.004.004-.004.003-.106.102-.004.004-.003.004-.105.103-.004.004-.004.004-.103.105-.004.004-.004.003-.102.106-.003.004-.004.004-.1.107-.004.004-.004.004-.099.108-.004.004-.003.004-.098.11-.003.003-.004.004-.096.11-.004.005-.003.004-.095.111-.003.004-.004.004-.093.113-.003.004-.004.004-.092.113-.003.004-.003.005-.09.114-.004.004-.003.004-.089.116-.003.004-.003.004-.088.117-.003.004-.003.004-.086.118-.003.004-.003.005-.084.118-.003.004-.003.005-.083.12-.003.003-.003.005-.082.12-.003.005-.002.004-.068.103-.076.142-.048.154-.018.16.011.161.041.156.07.146.095.13.117.11.136.086.15.06.158.03.162.002.158-.03.15-.057.138-.085.119-.109.082-.105.065-.099.075-.11.077-.113.077-.107.08-.11.08-.108.084-.108.083-.105.086-.106.086-.104.088-.104.089-.101.09-.102.093-.101.093-.099.094-.097.095-.096.098-.097.098-.095.099-.093.1-.092.103-.091.101-.089.104-.088.104-.086.106-.086.106-.083.106-.082.109-.082.108-.079.11-.078.11-.076.112-.076.112-.074.113-.072.113-.071.115-.07.115-.068.118-.067.117-.065.12-.065.054-.029.135-.088.116-.111.094-.132.068-.146.04-.156.009-.161-.02-.16-.05-.153-.078-.142-.102-.125-.123-.103-.141-.079-.153-.051-.16-.022zm13.91 2.116l-.162.008-.157.037-.147.066-.132.092-.113.116-.09.134-.063.148-.034.157-.005.162.025.159.055.152.082.138.086.103.09.09.094.098.092.099.093.1.091.103.089.101.088.104.086.104.086.106.083.105.083.108.08.108.081.11.077.107.077.112.075.111.075.114.072.113.071.113.07.114.068.118.067.115.065.118.064.117.062.117.061.121.059.119.059.122.056.121.054.12.055.125.051.123.051.125.048.123.048.127.047.126.044.125.043.128.042.129.039.126.038.13.022.076.058.15.085.137.11.119.129.096.145.07.155.043.16.013.161-.017.154-.046.144-.075.126-.1.106-.12.082-.14.055-.151.025-.16-.005-.16-.026-.132-.023-.082-.002-.005-.001-.005-.042-.139-.001-.005-.002-.005-.043-.138-.001-.005-.002-.005-.044-.137-.002-.005-.002-.005-.046-.137-.002-.005-.001-.005-.048-.137-.002-.005-.002-.005-.05-.135-.001-.005-.002-.005-.051-.135-.002-.005-.002-.005-.053-.135-.002-.005-.002-.005-.054-.133-.002-.005-.002-.005-.057-.133-.002-.005-.002-.005-.057-.132-.003-.005-.002-.005-.06-.132-.001-.005-.002-.004-.061-.132-.003-.004-.002-.005-.063-.13-.002-.005-.002-.005-.064-.13-.003-.004-.002-.005-.066-.129-.002-.004-.003-.005-.067-.128-.002-.005-.003-.004-.069-.128-.002-.004-.003-.005-.07-.126-.003-.005-.003-.004-.072-.126-.002-.005-.003-.004-.074-.125-.002-.004-.003-.005-.075-.124-.003-.004-.003-.005-.076-.123-.003-.004-.003-.005-.078-.122-.003-.004-.003-.005-.08-.121-.003-.004-.003-.005-.081-.12-.003-.005-.003-.004-.083-.12-.003-.004-.003-.004-.084-.118-.003-.005-.003-.004-.086-.118-.003-.004-.004-.004-.087-.117-.003-.004-.003-.004-.09-.116-.002-.004-.004-.004-.09-.114-.003-.005-.004-.004-.091-.113-.004-.004-.003-.004-.094-.113-.003-.004-.003-.004-.095-.111-.004-.004-.003-.004-.096-.11-.004-.005-.003-.004-.098-.11-.004-.003-.003-.004-.1-.108-.003-.004-.004-.004-.1-.107-.004-.004-.004-.004-.102-.106-.003-.003-.004-.004-.093-.095-.124-.103-.14-.08-.153-.05-.16-.023zM4.45 12.826l-.161.002-.158.032-.15.06-.135.088-.118.11-.094.131-.069.146-.035.129-.026.132v.005l-.002.005-.025.143-.001.005-.001.006-.024.143-.001.005-.001.006-.022.143-.001.006-.001.005-.02.144-.001.005-.001.005-.019.145v.005l-.001.006-.017.144v.006l-.001.005-.016.145v.011l-.014.145v.005l-.001.006-.012.146v.01l-.01.146-.001.006v.005l-.009.146v.011l-.007.146v.011l-.004.147v.011l-.003.147v.01l-.002.148v.01l.001.148v.01l.003.147v.011l.005.147v.01l.007.147v.011l.009.146v.011l.01.146v.01l.013.146v.011l.014.145v.005l.001.006.016.145v.011l.018.144v.006l.001.005.019.144v.006l.001.005.021.144v.005l.002.006.022.143v.006l.002.005.024.143v.005l.002.006.025.143.001.005.001.005.028.143.001.005.001.005.03.142v.005l.002.006.03.141.002.005.001.005.033.142v.005l.002.005.035.14v.006l.002.005.036.14.002.005.001.005.038.14.001.005.002.005.04.14v.005l.002.005.042.138.001.006.002.005.042.138.002.005.002.005.017.054.064.148.09.134.114.114.132.092.148.065.157.037.16.007.16-.023.153-.052.14-.08.123-.104.102-.125.076-.142.049-.153.02-.16-.011-.161-.031-.13-.017-.051-.039-.126-.038-.13-.037-.128-.035-.13-.033-.128-.033-.134-.03-.13-.029-.131-.026-.13-.026-.133-.024-.133-.023-.133-.02-.132-.02-.136-.017-.132-.016-.135-.014-.135-.012-.133-.012-.138-.009-.133-.007-.136-.006-.138-.004-.134-.003-.136v-.274l.003-.136.004-.134.006-.139.007-.136.01-.133.01-.138.013-.132.014-.135.016-.135.017-.132.02-.137.02-.13.023-.134.024-.133.024-.126.016-.16-.014-.161-.044-.155-.072-.145-.098-.128-.12-.108-.137-.084-.15-.057-.16-.029zm26.698 1.601l-.161.01-.157.04-.146.067-.131.093-.112.117-.088.135-.061.149-.033.157-.005.134.006.14.006.176.003.177.001.178-.001.177-.003.178-.006.177-.007.176-.01.177-.012.176-.015.176-.016.173-.018.175-.02.175-.024.174-.025.175-.026.17-.03.174-.03.173-.033.17-.036.172-.037.17-.04.17-.042.172-.043.168-.045.166-.048.169-.05.167-.052.168-.053.164-.056.166-.058.166-.06.16-.062.165-.062.158-.066.165-.068.16-.07.16-.07.158-.075.159-.074.155-.079.158-.08.158-.06.15-.03.158-.001.161.029.159.058.15.085.137.108.119.13.097.144.07.156.044.16.013.16-.017.155-.046.143-.074.127-.1.107-.12.07-.115.083-.164.003-.005.002-.004.082-.166.002-.005.003-.004.08-.167.002-.005.002-.004.078-.168.002-.005.002-.004.076-.169.002-.004.002-.005.074-.17.002-.004.002-.005.072-.17.002-.005.002-.005.07-.171.001-.005.002-.005.068-.172.002-.004.002-.005.065-.173.002-.005.002-.005.063-.173.002-.005.002-.005.06-.174.003-.005.001-.005.06-.175.001-.005.002-.005.057-.176.001-.005.002-.005.055-.177.001-.005.002-.005.052-.177.002-.005.001-.005.051-.178.001-.005.002-.005.048-.179.002-.005v-.005l.047-.179.001-.005.002-.005.044-.18v-.005l.002-.005.042-.18.001-.006.001-.005.04-.181.001-.005.001-.005.037-.182.002-.005v-.005l.036-.182v-.006l.002-.005.033-.182v-.006l.002-.005.03-.183.001-.005.001-.005.029-.184v-.005l.001-.006.027-.184v-.005l.001-.005.024-.185v-.005l.001-.005.022-.185v-.006l.001-.005.02-.185v-.006l.001-.005.017-.186v-.005l.001-.005.015-.187v-.005l.001-.005.013-.187v-.01l.01-.187.001-.006v-.005l.009-.187v-.011l.006-.187v-.011l.004-.188v-.011l.001-.188v-.01l-.001-.188v-.011l-.004-.188v-.011l-.006-.187v-.011l-.007-.145-.022-.16-.05-.152-.08-.141-.103-.124-.125-.102-.141-.077-.153-.05-.16-.02zM.938 15L.777 15l-.158.032-.15.06-.136.087-.117.11-.095.131-.068.146-.04.156-.012.133-.001.14v.01l.001.188v.011l.004.188v.011l.006.187v.011l.008.187v.011l.011.187v.005l.001.005.013.187v.01l.016.187v.01l.018.186v.011l.02.185.001.005v.006l.022.185.001.005v.005l.025.185v.005l.001.005.027.184v.006l.001.005.029.184v.005l.001.005.031.183.001.005.001.006.033.182.001.005.001.006.035.182.001.005.001.005.038.182v.005l.002.005.04.181v.005l.002.005.042.18.001.006.001.005.044.18.002.005v.005l.047.18.001.004.002.005.048.179.002.005.001.005.05.178.002.005.001.005.053.177.002.005.001.005.055.177.002.005.001.005.057.176.002.005.001.005.06.175.001.005.002.005.061.174.002.005.002.005.063.173.002.005.002.005.065.173.002.005.002.004.067.172.002.005.002.005.07.171.002.005.002.005.072.17.002.005.002.004.074.17.002.005.002.004.076.169.002.004.002.005.078.168.002.004.002.005.08.167.003.004.002.005.082.166.002.004.003.005.02.04.086.136.11.118.13.095.146.07.156.041.16.012.16-.019.155-.048.142-.075.126-.1.105-.123.08-.14.054-.152.024-.16-.006-.16-.036-.158-.051-.123-.018-.034-.078-.158L3.1 22.1l-.074-.16-.071-.157-.07-.16-.068-.16-.067-.165-.062-.158-.062-.164-.059-.161-.058-.166-.056-.166-.053-.164-.052-.168-.05-.167-.048-.17-.045-.165-.043-.168-.043-.172-.039-.17-.037-.17-.036-.172-.033-.17-.03-.173-.03-.174-.027-.17-.025-.175-.022-.174-.021-.175-.018-.175-.017-.173-.014-.176-.012-.176-.01-.177-.007-.176-.006-.177-.003-.178L1.73 16v-.134l-.013-.16-.044-.156-.072-.144-.097-.129-.12-.108-.137-.085-.15-.057L.938 15zm26.798 2.024l-.16.007-.157.038-.148.066-.132.092-.113.115-.09.134-.062.148-.03.127-.001.004-.023.134-.024.133-.026.133-.026.13-.03.132-.03.129-.032.134-.033.128-.035.13-.037.128-.038.13-.04.126-.04.128-.044.128-.044.126-.046.126-.048.126-.05.125-.05.125-.051.122-.054.123-.055.122-.056.12-.058.122-.06.12-.061.12-.063.119-.062.116-.067.119-.066.116-.069.115-.069.115-.07.113-.073.113-.074.112-.076.113-.077.112-.077.107-.08.11-.08.107-.085.11-.044.056-.088.135-.06.15-.033.158-.002.16.027.16.057.15.083.138.108.12.128.098.144.072.155.045.16.015.161-.016.155-.044.144-.073.128-.098.09-.099.05-.061.003-.004.003-.005.089-.115.003-.004.003-.005.088-.116.003-.004.003-.005.086-.117.003-.004.003-.005.084-.118.003-.004.003-.005.083-.12.003-.004.003-.004.081-.12.003-.005.003-.004.08-.121.003-.005.003-.004.078-.122.003-.005.003-.004.077-.123.002-.005.003-.004.075-.124.003-.005.003-.004.073-.125.003-.005.003-.004.072-.126.002-.004.003-.005.07-.126.003-.005.002-.005.07-.127.002-.004.002-.005.068-.128.002-.005.002-.004.066-.13.003-.004.002-.005.064-.13.002-.004.003-.005.062-.13.002-.005.003-.005.06-.13.003-.005.002-.005.06-.132.002-.005.002-.005.057-.132.003-.005.002-.005.056-.133.002-.005.002-.005.054-.134.002-.004.002-.005.053-.135.002-.005.002-.005.051-.135.002-.005.002-.005.05-.135.001-.005.002-.005.048-.137.001-.005.002-.005.046-.137.002-.005.002-.005.044-.137.002-.005.002-.005.042-.138.002-.005.001-.006.042-.138.001-.005.002-.005.04-.14V19.4l.002-.005.038-.14.001-.005.002-.005.036-.14.001-.005.001-.005.035-.141.001-.005.001-.005.033-.142.001-.005.001-.005.031-.141.001-.006.002-.005.029-.142v-.005l.002-.005.028-.143v-.005l.002-.005.025-.143.001-.006.001-.005.024-.143.001-.005.001-.006.001-.006.01-.161-.02-.16-.05-.154-.077-.141-.102-.125-.123-.104-.141-.079-.153-.051-.16-.022zM6.841 22.71l-.16.024-.152.053-.14.08-.122.105-.101.126-.076.142-.048.154-.018.16.011.161.041.156.07.146.077.109.04.048.003.004.003.004.095.111.003.004.004.004.096.11.004.005.003.004.098.109.003.004.004.004.1.108.003.004.003.004.101.107.004.004.003.004.102.105.004.004.004.004.103.105.004.004.004.003.105.104.003.004.004.003.106.102.004.004.004.004.107.1.004.004.004.004.108.099.004.003.004.004.11.098.003.003.004.004.11.096.004.003.005.004.11.095.005.003.004.004.113.093.004.003.004.004.113.091.004.004.005.003.114.09.004.004.004.003.116.089.004.003.004.003.117.088.004.003.004.003.118.086.004.003.005.003.118.084.004.003.005.003.119.083.004.003.005.003.12.081.005.003.004.003.121.08.005.003.004.003.122.078.005.003.004.003.123.076.005.003.004.003.124.075.005.003.004.003.125.073.004.003.005.002.126.073.004.002.005.003.126.07.005.003.004.002.128.07.004.002.005.002.128.067.005.003.004.002.13.066.004.002.005.003.13.064.004.002.005.003.13.062.005.002.004.003.132.06.004.003.005.002.132.06.005.002.005.002.132.057.005.002.005.002.133.057.005.002.005.002.133.054.005.002.005.002.13.05.154.045.16.016.16-.015.156-.045.144-.072.128-.098.108-.12.083-.138.057-.15.028-.16-.003-.16-.032-.159-.061-.149-.088-.135-.11-.117-.132-.094-.12-.058-.124-.049-.126-.051-.122-.051-.122-.054-.12-.054-.126-.058-.119-.057-.12-.06-.12-.06-.118-.063-.117-.064-.119-.066-.116-.066-.115-.068-.115-.07-.113-.07-.115-.074-.112-.074-.11-.075-.11-.076-.112-.08-.11-.08-.109-.081-.106-.082-.104-.082-.106-.086-.105-.087-.101-.086-.105-.091-.1-.09-.1-.091-.1-.094-.097-.094-.1-.098-.093-.095-.096-.1-.093-.098-.092-.101-.089-.1-.09-.102-.088-.104-.036-.043-.114-.114-.133-.091-.148-.065-.157-.036-.161-.006zm15.063 2.701l-.16.014-.156.044-.12.057-.06.034-.12.066-.117.064-.118.062-.12.061-.12.06-.118.057-.126.058-.12.054-.122.054-.122.05-.126.052-.125.05-.124.046-.127.047-.125.044-.129.043-.126.04-.13.042-.128.038-.127.035-.13.036-.131.034-.129.031-.132.03-.13.03-.135.027-.133.026-.13.023-.13.022-.137.021-.132.02-.134.017-.132.015-.138.015-.135.013-.133.01-.138.01-.136.007-.134.006-.136.004-.14.003-.16.018-.155.047-.142.076-.127.1-.105.122-.08.14-.054.151-.025.16.006.16.035.158.064.148.09.134.114.114.133.092.147.065.157.036.134.008.145-.002h.011l.147-.005h.01l.147-.007h.011l.146-.009h.011l.146-.01h.005l.005-.001.146-.012h.011l.145-.014h.005l.006-.001.145-.016h.011l.144-.018h.006l.005-.001.144-.02h.011l.144-.021.005-.001h.006l.143-.023.006-.001h.005l.143-.025h.005l.006-.002.143-.026h.005l.005-.002.143-.027.005-.001.005-.001.142-.03h.005l.005-.002.142-.03.005-.002.005-.001.142-.033.005-.001.005-.001.14-.035.006-.001.005-.001.14-.037h.005l.005-.002.14-.038.005-.002h.005l.14-.04.005-.002.005-.001.138-.042.005-.001.006-.002.138-.043.005-.001.005-.002.137-.044.005-.002.005-.002.137-.046.005-.002.005-.001.137-.048.005-.002.005-.002.135-.05.005-.001.005-.002.135-.051.005-.002.005-.002.135-.053.005-.002.004-.002.134-.054.005-.002.005-.002.133-.057.005-.002.005-.002.132-.057.005-.003.005-.002.132-.06.005-.001.004-.002.131-.061.005-.003.005-.002.13-.062.005-.003.005-.002.13-.064.004-.003.005-.002.128-.066.005-.002.005-.003.128-.067.005-.002.004-.003.127-.069.005-.002.005-.003.126-.07.005-.003.004-.003.065-.037.132-.093.112-.115.089-.135.062-.149.034-.157.003-.161-.026-.16-.055-.15-.082-.14-.107-.12-.127-.1-.144-.073-.154-.046-.16-.016zM6.33 26.818l-.16.023-.152.053-.14.08-.122.105-.101.126-.076.142-.048.154-.02.16.012.161.041.156.07.146.094.13.096.093.032.026.004.003.004.004.145.117.004.003.004.004.146.115.005.003.004.004.147.113.005.003.004.004.149.111.004.003.004.003.15.11.005.003.004.003.151.108.004.003.005.003.152.106.005.003.004.003.154.104.004.003.005.003.154.102.005.002.004.003.156.1.005.003.004.003.157.098.005.003.004.002.159.096.004.003.005.003.16.094.004.003.004.002.16.092.005.003.005.002.161.09.005.003.005.002.162.088.005.003.004.002.164.086.005.003.004.002.165.084.005.003.004.002.166.082.004.002.005.003.167.08.004.002.005.002.168.078.004.002.005.002.168.076.005.002.005.002.17.074.004.002.005.002.17.072.005.002.005.002.17.07.006.002.005.001.171.068.005.002.005.002.173.065.005.002.005.002.173.063.005.002.005.002.174.06.005.003.005.001.175.06.005.001.005.002.176.057.005.001.005.002.176.055.006.001.005.002.177.052.005.002.005.001.178.05.005.002.005.002.178.048.006.001.005.002.179.046.005.001.005.002.18.044h.005l.005.002.18.042.006.001.005.001.159.035.16.02.16-.01.157-.04.146-.069.13-.094.112-.117.087-.136.06-.149.033-.158.002-.161-.028-.159-.057-.15-.084-.138-.108-.12-.128-.098-.144-.072-.128-.039-.154-.033-.168-.04-.171-.041-.17-.044-.168-.046-.167-.047-.168-.05-.165-.051-.166-.054-.166-.056-.163-.057-.165-.06-.161-.062-.164-.064-.16-.065-.16-.068-.162-.07-.157-.07-.157-.074-.157-.075-.156-.077-.153-.079-.156-.082-.153-.082-.154-.086-.15-.086-.152-.09-.148-.09-.147-.092-.149-.095-.145-.095-.144-.098-.145-.1-.143-.102-.14-.103-.14-.104-.14-.108-.139-.11-.136-.11-.027-.022-.133-.091-.148-.065-.157-.036-.161-.006zm19.215.087l-.16.01-.157.039-.146.067-.11.076-.064.051-.139.11-.14.108-.14.104-.14.103-.143.101-.145.101-.144.098-.145.095-.149.095-.148.093-.147.089-.152.09-.15.086-.154.086-.153.082-.156.082-.153.079-.156.077-.157.075-.158.073-.157.071-.16.07-.16.068-.161.065-.164.064-.161.061-.165.06-.163.058-.166.056-.166.054-.166.051-.167.05-.167.047-.17.046-.168.044-.171.042-.168.039-.17.037-.11.023-.154.047-.143.075-.126.1-.106.122-.081.139-.054.152-.025.16.006.16.035.158.063.148.09.133.114.115.132.092.148.065.157.037.16.007.133-.016.115-.024.005-.001.005-.001.181-.04h.005l.005-.002.18-.042.006-.001.005-.001.18-.044.005-.002.005-.001.18-.046.004-.002h.005l.179-.05h.005l.005-.002.178-.05.005-.002.005-.002.177-.052.005-.002.005-.001.177-.055.005-.002.005-.001.176-.057.005-.002.005-.002.175-.059.005-.001.005-.002.174-.061.005-.002.005-.002.173-.063.005-.002.005-.002.173-.065.004-.002.005-.002.172-.068.005-.002.005-.002.171-.07.005-.001.005-.002.17-.072.005-.002.004-.002.17-.074.005-.002.004-.002.169-.076.004-.002.005-.002.168-.078.004-.002.005-.003.167-.08.004-.002.005-.002.166-.082.004-.002.005-.003.165-.084.004-.002.005-.003.163-.086.005-.002.005-.003.162-.088.005-.002.005-.003.161-.09.005-.002.004-.003.16-.092.005-.003.005-.002.16-.094.004-.003.004-.003.158-.096.005-.002.004-.003.158-.098.004-.003.005-.003.156-.1.004-.003.004-.003.155-.101.005-.003.004-.003.154-.104.004-.003.004-.003.153-.106.004-.003.005-.003.151-.108.004-.003.005-.003.15-.11.004-.003.004-.003.149-.112.004-.003.004-.003.148-.113.004-.004.004-.003.147-.115.004-.004.004-.003.068-.055.116-.113.092-.132.066-.147.038-.157.008-.16-.022-.16-.05-.153-.08-.14-.103-.125-.124-.102-.142-.077-.153-.05-.16-.02z"}));function jV(){return jV=Object.assign?Object.assign.bind():function(e){for(var t=1;trS("svg",jV({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M23.637 13.902l-7.625-5.535-7.624 5.535 2.912 8.956h9.425l2.912-8.956zm-1.017.33l-2.524 7.762H11.93l-2.524-7.762 6.607-4.796 6.608 4.796zM16.012.311c-1.448.02-2.93.157-4.302.628-.852.447-.255 1.863.66 1.574 2.255-.608 4.648-.607 6.922-.108.934.075 1.228-1.376.338-1.67C18.451.44 17.227.317 16.012.311zm9.012 2.934c-.913-.104-1.272 1.258-.454 1.648 1.834 1.36 3.293 3.185 4.31 5.22.526.776 1.842.098 1.515-.78a15.522 15.522 0 00-5.06-6.006c-.1-.044-.203-.07-.31-.082zM6.65 3.59c-.762.089-1.24.809-1.805 1.267C3.38 6.295 2.163 8.007 1.37 9.905c-.266.898 1.094 1.484 1.564.675a14.825 14.825 0 014.327-5.56c.476-.515.09-1.419-.612-1.431zm9.362.007c-.698.066-1.689-.16-2.033.635-.282.733.535 1.358 1.217 1.125 1.806-.147 3.63.203 5.293.907.902.255 1.472-1.112.656-1.573-1.6-.735-3.374-1.089-5.133-1.094zm-5.479 1.365c-.835.15-1.517.76-2.21 1.226-1.203.94-2.318 2.061-3.057 3.402-.33.904 1.063 1.552 1.547.723 1.045-1.656 2.596-2.925 4.285-3.873.545-.499.171-1.463-.565-1.478zm13.903 2.115c-.875-.07-1.22 1.173-.501 1.627 1.325 1.34 2.188 3.062 2.748 4.84.468.84 1.869.21 1.557-.699-.604-2.118-1.751-4.097-3.351-5.615a.93.93 0 00-.453-.153zM4.467 13.132c-.822-.07-.996.826-1.046 1.455-.256 1.93-.094 3.933.562 5.769.406.844 1.807.365 1.612-.551a11.498 11.498 0 01-.334-5.808.874.874 0 00-.794-.865zm26.687 1.6c-.746-.037-1.014.785-.879 1.395.043 2.393-.57 4.771-1.66 6.894-.31.884 1.02 1.536 1.53.75a15.632 15.632 0 001.821-8.372.876.876 0 00-.812-.667zm-30.197.571c-.782-.073-1.044.775-.933 1.404.068 2.414.661 4.833 1.809 6.962.534.77 1.842.076 1.505-.798a14.833 14.833 0 01-1.603-6.861.876.876 0 00-.778-.707zm26.787 2.024c-.777-.048-.952.797-1.021 1.392-.354 1.692-1.202 3.231-2.216 4.608-.407.872.925 1.638 1.48.852 1.361-1.733 2.296-3.827 2.582-6.017a.874.874 0 00-.825-.835zM6.857 23.012c-.808.018-1.082 1.122-.47 1.59 1.393 1.607 3.187 2.886 5.194 3.599.91.222 1.43-1.165.598-1.596a11.495 11.495 0 01-4.723-3.396.899.899 0 00-.599-.197zm15.057 2.7c-.81.194-1.504.76-2.325.972-1.203.458-2.5.536-3.758.664-.869.307-.573 1.728.346 1.663 2.201-.034 4.412-.626 6.293-1.778.604-.495.227-1.532-.556-1.521zM6.346 27.118c-.833.008-1.11 1.218-.395 1.617 1.986 1.602 4.358 2.749 6.868 3.226.933.076 1.227-1.376.338-1.67a14.838 14.838 0 01-6.345-3.066.929.929 0 00-.466-.107zm19.208.087c-.766.09-1.241.841-1.922 1.158-1.516.991-3.251 1.58-4.996 2.005-.872.405-.346 1.849.584 1.604 2.543-.526 4.98-1.66 6.963-3.344.47-.52.072-1.42-.63-1.423z"}));function HV(){return HV=Object.assign?Object.assign.bind():function(e){for(var t=1;trS("svg",HV({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M13.51 9.081v4.428H9.08v4.982h4.428v4.428h4.982V18.49h4.428v-4.982H18.49V9.081h-4.982zm.83.83h3.32v4.428h4.429v3.322H17.66v4.428h-3.32v-4.454H9.91v-3.296h4.428V9.911zM16 0h-.005l-.188.001h-.011l-.188.004h-.011l-.187.006h-.011l-.187.008h-.005L15.2.02l-.187.01h-.005l-.005.001-.187.013h-.011L14.62.06h-.01l-.186.018h-.011l-.185.02-.005.001h-.006l-.185.022-.005.001h-.005l-.185.025h-.005l-.005.001-.185.027h-.005l-.005.001-.184.029h-.005l-.005.001-.183.031-.006.001-.005.001-.182.033-.006.001-.005.001-.182.035-.005.001-.005.001-.182.038h-.005l-.005.002-.181.04h-.005l-.005.002-.18.042-.006.001-.005.001-.18.044-.005.002h-.005l-.17.045-.152.054-.139.082-.121.106-.1.127-.074.143-.046.155-.017.16.013.16.043.156.07.145.097.13.119.108.137.085.15.058.159.03.16-.001.133-.023.165-.043.168-.041.171-.04.171-.037.172-.036.17-.033.173-.03.17-.03.177-.027.171-.025.175-.022.175-.02.175-.02.176-.016.175-.014.177-.012.176-.01.177-.007.174-.006.177-.003L16 1.73h.177l.178.004.174.006.177.007.176.01.177.012.175.014.176.017.175.018.175.02.175.023.171.025.176.027.17.03.174.03.17.033.171.036.154.033.16.02.161-.01.156-.04.146-.069.131-.094.111-.117.087-.135.061-.15.032-.158.002-.16-.027-.16-.057-.15L20 .714l-.108-.12-.128-.097-.145-.073-.128-.038-.158-.035-.005-.001-.005-.001L19.14.31h-.005l-.005-.002-.182-.035h-.006l-.005-.002-.182-.033h-.006l-.005-.002-.183-.03-.005-.001-.006-.001-.183-.029h-.005l-.006-.001-.184-.027h-.005l-.005-.001-.185-.024h-.005L17.968.12 17.783.1l-.006-.001h-.005l-.185-.02h-.006l-.005-.001L17.39.06h-.005L17.38.06l-.187-.015h-.005l-.005-.001-.187-.013h-.011L16.8.02h-.011L16.6.01h-.011l-.187-.006h-.011L16.204 0h-.011L16.005 0H16zm9.015 2.935l-.16.004-.158.033-.15.062-.134.09-.116.111-.093.132-.067.147-.038.156-.01.161.022.16.05.153.078.141.103.124.102.087.045.034.142.106.137.105.14.11.136.11.135.112.134.115.134.117.13.115.132.122.128.12.127.122.126.125.124.126.124.128.121.13.118.128.118.132.117.133.113.134.113.136.11.136.109.137.109.142.104.14.103.14.101.142.1.144.099.146.095.145.094.147.093.15.092.15.087.149.087.15.084.152.084.155.08.152.08.155.04.081.084.138.11.119.128.096.145.072.155.043.16.013.16-.016.155-.046.144-.074.127-.099.106-.12.083-.14.055-.151.026-.16-.004-.16-.034-.158-.05-.124-.042-.085-.002-.004-.003-.005-.084-.165-.002-.004-.003-.005-.086-.164-.002-.004-.003-.005-.088-.162-.002-.005-.003-.005-.09-.161-.002-.005-.003-.004-.092-.16-.003-.005-.002-.005-.094-.16-.003-.004-.003-.004-.096-.159-.002-.004-.003-.005-.098-.157-.003-.004-.003-.005-.1-.156-.003-.004-.003-.005-.101-.154-.003-.005-.003-.004-.104-.154-.003-.004-.003-.005-.106-.152-.003-.005-.003-.004-.108-.151-.003-.004-.003-.005-.11-.15-.003-.004-.003-.004-.111-.15-.004-.003-.003-.005-.113-.147-.004-.004-.003-.005-.115-.146-.004-.004-.003-.004-.117-.145-.004-.004-.003-.004-.12-.144-.003-.004-.003-.004-.121-.142-.004-.004-.003-.004-.123-.141-.003-.004-.004-.004-.125-.14-.003-.004-.004-.004-.127-.138-.003-.004-.004-.004-.128-.136-.004-.004-.004-.004-.13-.135-.004-.004-.004-.004-.132-.134-.003-.004-.004-.003-.134-.133-.004-.003-.004-.004-.135-.13-.004-.004-.004-.004-.136-.128-.004-.004-.004-.004-.138-.126-.004-.004-.004-.003-.14-.125-.004-.004-.004-.003-.14-.123-.005-.004-.004-.003-.142-.121-.004-.004-.004-.003-.144-.12-.004-.003-.004-.003-.145-.117-.004-.004-.004-.003-.147-.115-.004-.004-.004-.003-.148-.113-.004-.003-.004-.004-.149-.111-.004-.003-.004-.004-.05-.036-.14-.083-.15-.055-.16-.027zM6.634 3.28l-.161.008-.157.037-.147.066-.111.074-.04.032-.005.003-.004.004-.145.117-.004.003-.004.004-.144.119-.004.003-.004.004-.142.12-.004.004-.004.004-.141.123-.004.003-.004.004-.14.125-.004.003-.004.004-.138.126-.004.004-.004.004-.136.128-.004.004-.004.004-.135.13-.004.004-.004.003-.134.133-.004.003-.004.004-.132.134-.003.004-.004.004-.13.135-.004.004-.004.004-.128.136-.004.004-.004.004-.126.138-.004.004-.003.004-.125.14-.004.004-.003.004-.123.14-.004.005-.003.004-.121.142-.004.004-.003.004-.12.144-.003.004-.003.004-.117.145-.004.004-.003.004-.115.146-.004.005-.003.004-.113.147-.003.005-.004.004-.111.149-.003.004-.004.004-.11.15-.002.005-.003.004-.108.151-.003.004-.003.005-.106.152-.003.005-.003.004-.104.154-.003.004-.003.005-.102.154-.003.005-.002.004-.1.156-.003.005-.003.004-.098.157-.003.005-.003.004-.096.159-.002.004-.003.005-.094.16-.003.004-.002.004-.092.16-.003.005-.003.005-.09.161-.002.005-.003.005-.088.162-.002.005-.003.004-.086.164-.002.005-.002.004-.084.165-.003.005-.002.004-.082.166-.002.004-.003.005-.08.167-.002.004-.002.005-.078.168-.002.004-.002.005-.045.1-.053.153-.023.16.007.16.037.157.065.148.092.132.114.114.134.09.148.064.157.035.161.006.16-.025.152-.054.14-.08.121-.106.1-.126.065-.118.043-.095.074-.16.075-.155.077-.157.08-.155.08-.152.083-.155.085-.152.086-.15.088-.149.091-.15.094-.15.094-.147.095-.145.099-.146.1-.144.1-.142.104-.14.104-.14.11-.142.107-.137.11-.136.114-.136.113-.134.117-.133.118-.132.117-.129.122-.13.124-.127.123-.126.127-.125.127-.122.128-.12.132-.122.13-.115.133-.117.135-.115.135-.111.136-.11.037-.03.117-.11.094-.132.068-.146.04-.156.01-.161-.02-.16-.05-.154-.076-.141-.102-.125-.123-.104-.14-.08-.153-.051-.16-.023zM16 3.286h-.005l-.148.001h-.01l-.147.003h-.011l-.147.005h-.011l-.146.007h-.011l-.146.009h-.011l-.146.01h-.005l-.005.001-.146.012h-.011l-.145.014h-.006l-.005.001-.05.006-.158.031-.15.06-.135.088-.117.111-.094.13-.069.147-.04.156-.01.16.019.16.049.154.076.142.102.125.123.105.14.08.152.051.16.023.134-.003.045-.005.135-.013.133-.01.136-.01.135-.007.137-.006.136-.004.136-.003h.274l.136.003.136.004.136.006.136.007.136.01.133.01.135.013.135.014.135.016.134.018.132.018.134.021.133.023.133.024.133.025.13.027.132.03.132.03.129.031.13.034.129.035.129.036.13.04.126.038.128.042.126.042.128.045.127.047.126.047.12.048.127.051.123.052.006.002.147.048.16.021.16-.009.157-.038.147-.067.131-.093.112-.116.089-.135.062-.149.033-.158.004-.16-.027-.16-.055-.151-.083-.139-.107-.12-.127-.099-.118-.063-.004-.001-.005-.003-.005-.002-.133-.056-.005-.002-.005-.002-.134-.054-.004-.002-.005-.002-.135-.053-.005-.002-.005-.002-.135-.051-.005-.002-.005-.002-.135-.05-.005-.001-.005-.002-.137-.048-.005-.001-.005-.002-.137-.046-.005-.002-.005-.002-.137-.044-.005-.002-.005-.001-.138-.043-.006-.002-.005-.001-.138-.042-.005-.001-.005-.002-.14-.04H19.4l-.005-.002-.14-.038-.005-.001-.005-.002-.14-.036-.005-.001-.005-.001-.141-.035-.005-.001-.005-.001-.142-.033-.005-.001-.005-.001-.142-.031-.005-.002h-.005l-.142-.03-.005-.001-.005-.001-.143-.028h-.005l-.005-.002-.143-.025-.006-.001-.005-.001-.143-.024-.005-.001-.006-.001-.143-.022-.006-.001h-.005l-.144-.022h-.005l-.006-.001-.144-.019h-.005l-.006-.001-.144-.017h-.006l-.005-.001-.145-.016h-.011l-.145-.014H17.1l-.005-.001-.146-.012h-.01l-.146-.01-.006-.001h-.005l-.146-.009h-.011l-.147-.006h-.01l-.147-.005h-.011l-.147-.003h-.011l-.147-.001H16zm-5.482 1.366l-.16.008-.157.037-.123.053-.06.032-.005.002-.004.003-.128.069-.004.002-.005.003-.126.07-.005.003-.004.002-.126.072-.005.003-.004.003-.125.073-.004.003-.005.003-.124.075-.004.003-.005.002-.123.077-.004.003-.005.003-.122.078-.004.003-.005.003-.121.08-.004.002-.005.003-.12.082-.005.003-.004.003-.12.083-.004.003-.004.003-.118.084-.005.003-.004.003-.118.086-.004.003-.004.003-.117.088-.004.003-.004.003-.116.089-.004.003-.004.004-.114.09-.005.003-.004.003-.113.092-.004.004-.004.003-.113.093-.004.004-.004.003-.111.095-.005.003-.004.004-.11.096-.004.004-.004.003-.11.098-.003.003-.004.004-.108.1-.004.003-.004.003-.107.101-.004.004-.004.003-.106.102-.004.004-.003.004-.105.103-.004.004-.004.004-.103.105-.004.004-.004.003-.102.106-.003.004-.004.004-.1.107-.004.004-.004.004-.099.108-.004.004-.003.004-.098.11-.003.003-.004.004-.096.11-.004.005-.003.004-.095.111-.003.004-.004.004-.093.113-.003.004-.004.004-.092.113-.003.004-.003.005-.09.114-.004.004-.003.004-.089.116-.003.004-.003.004-.088.117-.003.004-.003.004-.086.118-.003.004-.003.005-.084.118-.003.004-.003.005-.083.12-.003.003-.003.005-.082.12-.003.005-.002.004-.068.103-.076.142-.048.154-.018.16.011.161.041.156.07.146.095.13.117.11.136.086.15.06.158.03.162.002.158-.03.15-.057.138-.085.119-.109.082-.105.065-.099.075-.11.077-.113.077-.107.08-.11.08-.108.084-.108.083-.105.086-.106.086-.104.088-.104.089-.101.09-.102.093-.101.093-.099.094-.097.095-.096.098-.097.098-.095.099-.093.1-.092.103-.091.101-.089.104-.088.104-.086.106-.086.106-.083.106-.082.109-.082.108-.079.11-.078.11-.076.112-.076.112-.074.113-.072.113-.071.115-.07.115-.068.118-.067.117-.065.12-.065.054-.029.135-.088.116-.111.094-.132.068-.146.04-.156.009-.161-.02-.16-.05-.153-.078-.142-.102-.125-.123-.103-.141-.079-.153-.051-.16-.022zm13.91 2.116l-.162.008-.157.037-.147.066-.132.092-.113.116-.09.134-.063.148-.034.157-.005.162.025.159.055.152.082.138.086.103.09.09.094.098.092.099.093.1.091.103.089.101.088.104.086.104.086.106.083.105.083.108.08.108.081.11.077.107.077.112.075.111.075.114.072.113.071.113.07.114.068.118.067.115.065.118.064.117.062.117.061.121.059.119.059.122.056.121.054.12.055.125.051.123.051.125.048.123.048.127.047.126.044.125.043.128.042.129.039.126.038.13.022.076.058.15.085.137.11.119.129.096.145.07.155.043.16.013.161-.017.154-.046.144-.075.126-.1.106-.12.082-.14.055-.151.025-.16-.005-.16-.026-.132-.023-.082-.002-.005-.001-.005-.042-.139-.001-.005-.002-.005-.043-.138-.001-.005-.002-.005-.044-.137-.002-.005-.002-.005-.046-.137-.002-.005-.001-.005-.048-.137-.002-.005-.002-.005-.05-.135-.001-.005-.002-.005-.051-.135-.002-.005-.002-.005-.053-.135-.002-.005-.002-.005-.054-.133-.002-.005-.002-.005-.057-.133-.002-.005-.002-.005-.057-.132-.003-.005-.002-.005-.06-.132-.001-.005-.002-.004-.061-.132-.003-.004-.002-.005-.063-.13-.002-.005-.002-.005-.064-.13-.003-.004-.002-.005-.066-.129-.002-.004-.003-.005-.067-.128-.002-.005-.003-.004-.069-.128-.002-.004-.003-.005-.07-.126-.003-.005-.003-.004-.072-.126-.002-.005-.003-.004-.074-.125-.002-.004-.003-.005-.075-.124-.003-.004-.003-.005-.076-.123-.003-.004-.003-.005-.078-.122-.003-.004-.003-.005-.08-.121-.003-.004-.003-.005-.081-.12-.003-.005-.003-.004-.083-.12-.003-.004-.003-.004-.084-.118-.003-.005-.003-.004-.086-.118-.003-.004-.004-.004-.087-.117-.003-.004-.003-.004-.09-.116-.002-.004-.004-.004-.09-.114-.003-.005-.004-.004-.091-.113-.004-.004-.003-.004-.094-.113-.003-.004-.003-.004-.095-.111-.004-.004-.003-.004-.096-.11-.004-.005-.003-.004-.098-.11-.004-.003-.003-.004-.1-.108-.003-.004-.004-.004-.1-.107-.004-.004-.004-.004-.102-.106-.003-.003-.004-.004-.093-.095-.124-.103-.14-.08-.153-.05-.16-.023zM4.45 12.826l-.161.002-.158.032-.15.06-.135.088-.118.11-.094.131-.069.146-.035.129-.026.132v.005l-.002.005-.025.143-.001.005-.001.006-.024.143-.001.005-.001.006-.022.143-.001.006-.001.005-.02.144-.001.005-.001.005-.019.145v.005l-.001.006-.017.144v.006l-.001.005-.016.145v.011l-.014.145v.005l-.001.006-.012.146v.01l-.01.146-.001.006v.005l-.009.146v.011l-.007.146v.011l-.004.147v.011l-.003.147v.01l-.002.148v.01l.001.148v.01l.003.147v.011l.005.147v.01l.007.147v.011l.009.146v.011l.01.146v.01l.013.146v.011l.014.145v.005l.001.006.016.145v.011l.018.144v.006l.001.005.019.144v.006l.001.005.021.144v.005l.002.006.022.143v.006l.002.005.024.143v.005l.002.006.025.143.001.005.001.005.028.143.001.005.001.005.03.142v.005l.002.006.03.141.002.005.001.005.033.142v.005l.002.005.035.14v.006l.002.005.036.14.002.005.001.005.038.14.001.005.002.005.04.14v.005l.002.005.042.138.001.006.002.005.042.138.002.005.002.005.017.054.064.148.09.134.114.114.132.092.148.065.157.037.16.007.16-.023.153-.052.14-.08.123-.104.102-.125.076-.142.049-.153.02-.16-.011-.161-.031-.13-.017-.051-.039-.126-.038-.13-.037-.128-.035-.13-.033-.128-.033-.134-.03-.13-.029-.131-.026-.13-.026-.133-.024-.133-.023-.133-.02-.132-.02-.136-.017-.132-.016-.135-.014-.135-.012-.133-.012-.138-.009-.133-.007-.136-.006-.138-.004-.134-.003-.136v-.274l.003-.136.004-.134.006-.139.007-.136.01-.133.01-.138.013-.132.014-.135.016-.135.017-.132.02-.137.02-.13.023-.134.024-.133.024-.126.016-.16-.014-.161-.044-.155-.072-.145-.098-.128-.12-.108-.137-.084-.15-.057-.16-.029zm26.698 1.601l-.161.01-.157.04-.146.067-.131.093-.112.117-.088.135-.061.149-.033.157-.005.134.006.14.006.176.003.177.001.178-.001.177-.003.178-.006.177-.007.176-.01.177-.012.176-.015.176-.016.173-.018.175-.02.175-.024.174-.025.175-.026.17-.03.174-.03.173-.033.17-.036.172-.037.17-.04.17-.042.172-.043.168-.045.166-.048.169-.05.167-.052.168-.053.164-.056.166-.058.166-.06.16-.062.165-.062.158-.066.165-.068.16-.07.16-.07.158-.075.159-.074.155-.079.158-.08.158-.06.15-.03.158-.001.161.029.159.058.15.085.137.108.119.13.097.144.07.156.044.16.013.16-.017.155-.046.143-.074.127-.1.107-.12.07-.115.083-.164.003-.005.002-.004.082-.166.002-.005.003-.004.08-.167.002-.005.002-.004.078-.168.002-.005.002-.004.076-.169.002-.004.002-.005.074-.17.002-.004.002-.005.072-.17.002-.005.002-.005.07-.171.001-.005.002-.005.068-.172.002-.004.002-.005.065-.173.002-.005.002-.005.063-.173.002-.005.002-.005.06-.174.003-.005.001-.005.06-.175.001-.005.002-.005.057-.176.001-.005.002-.005.055-.177.001-.005.002-.005.052-.177.002-.005.001-.005.051-.178.001-.005.002-.005.048-.179.002-.005v-.005l.047-.179.001-.005.002-.005.044-.18v-.005l.002-.005.042-.18.001-.006.001-.005.04-.181.001-.005.001-.005.037-.182.002-.005v-.005l.036-.182v-.006l.002-.005.033-.182v-.006l.002-.005.03-.183.001-.005.001-.005.029-.184v-.005l.001-.006.027-.184v-.005l.001-.005.024-.185v-.005l.001-.005.022-.185v-.006l.001-.005.02-.185v-.006l.001-.005.017-.186v-.005l.001-.005.015-.187v-.005l.001-.005.013-.187v-.01l.01-.187.001-.006v-.005l.009-.187v-.011l.006-.187v-.011l.004-.188v-.011l.001-.188v-.01l-.001-.188v-.011l-.004-.188v-.011l-.006-.187v-.011l-.007-.145-.022-.16-.05-.152-.08-.141-.103-.124-.125-.102-.141-.077-.153-.05-.16-.02zM.938 15L.777 15l-.158.032-.15.06-.136.087-.117.11-.095.131-.068.146-.04.156-.012.133-.001.14v.01l.001.188v.011l.004.188v.011l.006.187v.011l.008.187v.011l.011.187v.005l.001.005.013.187v.01l.016.187v.01l.018.186v.011l.02.185.001.005v.006l.022.185.001.005v.005l.025.185v.005l.001.005.027.184v.006l.001.005.029.184v.005l.001.005.031.183.001.005.001.006.033.182.001.005.001.006.035.182.001.005.001.005.038.182v.005l.002.005.04.181v.005l.002.005.042.18.001.006.001.005.044.18.002.005v.005l.047.18.001.004.002.005.048.179.002.005.001.005.05.178.002.005.001.005.053.177.002.005.001.005.055.177.002.005.001.005.057.176.002.005.001.005.06.175.001.005.002.005.061.174.002.005.002.005.063.173.002.005.002.005.065.173.002.005.002.004.067.172.002.005.002.005.07.171.002.005.002.005.072.17.002.005.002.004.074.17.002.005.002.004.076.169.002.004.002.005.078.168.002.004.002.005.08.167.003.004.002.005.082.166.002.004.003.005.02.04.086.136.11.118.13.095.146.07.156.041.16.012.16-.019.155-.048.142-.075.126-.1.105-.123.08-.14.054-.152.024-.16-.006-.16-.036-.158-.051-.123-.018-.034-.078-.158L3.1 22.1l-.074-.16-.071-.157-.07-.16-.068-.16-.067-.165-.062-.158-.062-.164-.059-.161-.058-.166-.056-.166-.053-.164-.052-.168-.05-.167-.048-.17-.045-.165-.043-.168-.043-.172-.039-.17-.037-.17-.036-.172-.033-.17-.03-.173-.03-.174-.027-.17-.025-.175-.022-.174-.021-.175-.018-.175-.017-.173-.014-.176-.012-.176-.01-.177-.007-.176-.006-.177-.003-.178L1.73 16v-.134l-.013-.16-.044-.156-.072-.144-.097-.129-.12-.108-.137-.085-.15-.057L.938 15zm26.798 2.024l-.16.007-.157.038-.148.066-.132.092-.113.115-.09.134-.062.148-.03.127-.001.004-.023.134-.024.133-.026.133-.026.13-.03.132-.03.129-.032.134-.033.128-.035.13-.037.128-.038.13-.04.126-.04.128-.044.128-.044.126-.046.126-.048.126-.05.125-.05.125-.051.122-.054.123-.055.122-.056.12-.058.122-.06.12-.061.12-.063.119-.062.116-.067.119-.066.116-.069.115-.069.115-.07.113-.073.113-.074.112-.076.113-.077.112-.077.107-.08.11-.08.107-.085.11-.044.056-.088.135-.06.15-.033.158-.002.16.027.16.057.15.083.138.108.12.128.098.144.072.155.045.16.015.161-.016.155-.044.144-.073.128-.098.09-.099.05-.061.003-.004.003-.005.089-.115.003-.004.003-.005.088-.116.003-.004.003-.005.086-.117.003-.004.003-.005.084-.118.003-.004.003-.005.083-.12.003-.004.003-.004.081-.12.003-.005.003-.004.08-.121.003-.005.003-.004.078-.122.003-.005.003-.004.077-.123.002-.005.003-.004.075-.124.003-.005.003-.004.073-.125.003-.005.003-.004.072-.126.002-.004.003-.005.07-.126.003-.005.002-.005.07-.127.002-.004.002-.005.068-.128.002-.005.002-.004.066-.13.003-.004.002-.005.064-.13.002-.004.003-.005.062-.13.002-.005.003-.005.06-.13.003-.005.002-.005.06-.132.002-.005.002-.005.057-.132.003-.005.002-.005.056-.133.002-.005.002-.005.054-.134.002-.004.002-.005.053-.135.002-.005.002-.005.051-.135.002-.005.002-.005.05-.135.001-.005.002-.005.048-.137.001-.005.002-.005.046-.137.002-.005.002-.005.044-.137.002-.005.002-.005.042-.138.002-.005.001-.006.042-.138.001-.005.002-.005.04-.14V19.4l.002-.005.038-.14.001-.005.002-.005.036-.14.001-.005.001-.005.035-.141.001-.005.001-.005.033-.142.001-.005.001-.005.031-.141.001-.006.002-.005.029-.142v-.005l.002-.005.028-.143v-.005l.002-.005.025-.143.001-.006.001-.005.024-.143.001-.005.001-.006.001-.006.01-.161-.02-.16-.05-.154-.077-.141-.102-.125-.123-.104-.141-.079-.153-.051-.16-.022zM6.841 22.71l-.16.024-.152.053-.14.08-.122.105-.101.126-.076.142-.048.154-.018.16.011.161.041.156.07.146.077.109.04.048.003.004.003.004.095.111.003.004.004.004.096.11.004.005.003.004.098.109.003.004.004.004.1.108.003.004.003.004.101.107.004.004.003.004.102.105.004.004.004.004.103.105.004.004.004.003.105.104.003.004.004.003.106.102.004.004.004.004.107.1.004.004.004.004.108.099.004.003.004.004.11.098.003.003.004.004.11.096.004.003.005.004.11.095.005.003.004.004.113.093.004.003.004.004.113.091.004.004.005.003.114.09.004.004.004.003.116.089.004.003.004.003.117.088.004.003.004.003.118.086.004.003.005.003.118.084.004.003.005.003.119.083.004.003.005.003.12.081.005.003.004.003.121.08.005.003.004.003.122.078.005.003.004.003.123.076.005.003.004.003.124.075.005.003.004.003.125.073.004.003.005.002.126.073.004.002.005.003.126.07.005.003.004.002.128.07.004.002.005.002.128.067.005.003.004.002.13.066.004.002.005.003.13.064.004.002.005.003.13.062.005.002.004.003.132.06.004.003.005.002.132.06.005.002.005.002.132.057.005.002.005.002.133.057.005.002.005.002.133.054.005.002.005.002.13.05.154.045.16.016.16-.015.156-.045.144-.072.128-.098.108-.12.083-.138.057-.15.028-.16-.003-.16-.032-.159-.061-.149-.088-.135-.11-.117-.132-.094-.12-.058-.124-.049-.126-.051-.122-.051-.122-.054-.12-.054-.126-.058-.119-.057-.12-.06-.12-.06-.118-.063-.117-.064-.119-.066-.116-.066-.115-.068-.115-.07-.113-.07-.115-.074-.112-.074-.11-.075-.11-.076-.112-.08-.11-.08-.109-.081-.106-.082-.104-.082-.106-.086-.105-.087-.101-.086-.105-.091-.1-.09-.1-.091-.1-.094-.097-.094-.1-.098-.093-.095-.096-.1-.093-.098-.092-.101-.089-.1-.09-.102-.088-.104-.036-.043-.114-.114-.133-.091-.148-.065-.157-.036-.161-.006zm15.063 2.701l-.16.014-.156.044-.12.057-.06.034-.12.066-.117.064-.118.062-.12.061-.12.06-.118.057-.126.058-.12.054-.122.054-.122.05-.126.052-.125.05-.124.046-.127.047-.125.044-.129.043-.126.04-.13.042-.128.038-.127.035-.13.036-.131.034-.129.031-.132.03-.13.03-.135.027-.133.026-.13.023-.13.022-.137.021-.132.02-.134.017-.132.015-.138.015-.135.013-.133.01-.138.01-.136.007-.134.006-.136.004-.14.003-.16.018-.155.047-.142.076-.127.1-.105.122-.08.14-.054.151-.025.16.006.16.035.158.064.148.09.134.114.114.133.092.147.065.157.036.134.008.145-.002h.011l.147-.005h.01l.147-.007h.011l.146-.009h.011l.146-.01h.005l.005-.001.146-.012h.011l.145-.014h.005l.006-.001.145-.016h.011l.144-.018h.006l.005-.001.144-.02h.011l.144-.021.005-.001h.006l.143-.023.006-.001h.005l.143-.025h.005l.006-.002.143-.026h.005l.005-.002.143-.027.005-.001.005-.001.142-.03h.005l.005-.002.142-.03.005-.002.005-.001.142-.033.005-.001.005-.001.14-.035.006-.001.005-.001.14-.037h.005l.005-.002.14-.038.005-.002h.005l.14-.04.005-.002.005-.001.138-.042.005-.001.006-.002.138-.043.005-.001.005-.002.137-.044.005-.002.005-.002.137-.046.005-.002.005-.001.137-.048.005-.002.005-.002.135-.05.005-.001.005-.002.135-.051.005-.002.005-.002.135-.053.005-.002.004-.002.134-.054.005-.002.005-.002.133-.057.005-.002.005-.002.132-.057.005-.003.005-.002.132-.06.005-.001.004-.002.131-.061.005-.003.005-.002.13-.062.005-.003.005-.002.13-.064.004-.003.005-.002.128-.066.005-.002.005-.003.128-.067.005-.002.004-.003.127-.069.005-.002.005-.003.126-.07.005-.003.004-.003.065-.037.132-.093.112-.115.089-.135.062-.149.034-.157.003-.161-.026-.16-.055-.15-.082-.14-.107-.12-.127-.1-.144-.073-.154-.046-.16-.016zM6.33 26.818l-.16.023-.152.053-.14.08-.122.105-.101.126-.076.142-.048.154-.02.16.012.161.041.156.07.146.094.13.096.093.032.026.004.003.004.004.145.117.004.003.004.004.146.115.005.003.004.004.147.113.005.003.004.004.149.111.004.003.004.003.15.11.005.003.004.003.151.108.004.003.005.003.152.106.005.003.004.003.154.104.004.003.005.003.154.102.005.002.004.003.156.1.005.003.004.003.157.098.005.003.004.002.159.096.004.003.005.003.16.094.004.003.004.002.16.092.005.003.005.002.161.09.005.003.005.002.162.088.005.003.004.002.164.086.005.003.004.002.165.084.005.003.004.002.166.082.004.002.005.003.167.08.004.002.005.002.168.078.004.002.005.002.168.076.005.002.005.002.17.074.004.002.005.002.17.072.005.002.005.002.17.07.006.002.005.001.171.068.005.002.005.002.173.065.005.002.005.002.173.063.005.002.005.002.174.06.005.003.005.001.175.06.005.001.005.002.176.057.005.001.005.002.176.055.006.001.005.002.177.052.005.002.005.001.178.05.005.002.005.002.178.048.006.001.005.002.179.046.005.001.005.002.18.044h.005l.005.002.18.042.006.001.005.001.159.035.16.02.16-.01.157-.04.146-.069.13-.094.112-.117.087-.136.06-.149.033-.158.002-.161-.028-.159-.057-.15-.084-.138-.108-.12-.128-.098-.144-.072-.128-.039-.154-.033-.168-.04-.171-.041-.17-.044-.168-.046-.167-.047-.168-.05-.165-.051-.166-.054-.166-.056-.163-.057-.165-.06-.161-.062-.164-.064-.16-.065-.16-.068-.162-.07-.157-.07-.157-.074-.157-.075-.156-.077-.153-.079-.156-.082-.153-.082-.154-.086-.15-.086-.152-.09-.148-.09-.147-.092-.149-.095-.145-.095-.144-.098-.145-.1-.143-.102-.14-.103-.14-.104-.14-.108-.139-.11-.136-.11-.027-.022-.133-.091-.148-.065-.157-.036-.161-.006zm19.215.087l-.16.01-.157.039-.146.067-.11.076-.064.051-.139.11-.14.108-.14.104-.14.103-.143.101-.145.101-.144.098-.145.095-.149.095-.148.093-.147.089-.152.09-.15.086-.154.086-.153.082-.156.082-.153.079-.156.077-.157.075-.158.073-.157.071-.16.07-.16.068-.161.065-.164.064-.161.061-.165.06-.163.058-.166.056-.166.054-.166.051-.167.05-.167.047-.17.046-.168.044-.171.042-.168.039-.17.037-.11.023-.154.047-.143.075-.126.1-.106.122-.081.139-.054.152-.025.16.006.16.035.158.063.148.09.133.114.115.132.092.148.065.157.037.16.007.133-.016.115-.024.005-.001.005-.001.181-.04h.005l.005-.002.18-.042.006-.001.005-.001.18-.044.005-.002.005-.001.18-.046.004-.002h.005l.179-.05h.005l.005-.002.178-.05.005-.002.005-.002.177-.052.005-.002.005-.001.177-.055.005-.002.005-.001.176-.057.005-.002.005-.002.175-.059.005-.001.005-.002.174-.061.005-.002.005-.002.173-.063.005-.002.005-.002.173-.065.004-.002.005-.002.172-.068.005-.002.005-.002.171-.07.005-.001.005-.002.17-.072.005-.002.004-.002.17-.074.005-.002.004-.002.169-.076.004-.002.005-.002.168-.078.004-.002.005-.003.167-.08.004-.002.005-.002.166-.082.004-.002.005-.003.165-.084.004-.002.005-.003.163-.086.005-.002.005-.003.162-.088.005-.002.005-.003.161-.09.005-.002.004-.003.16-.092.005-.003.005-.002.16-.094.004-.003.004-.003.158-.096.005-.002.004-.003.158-.098.004-.003.005-.003.156-.1.004-.003.004-.003.155-.101.005-.003.004-.003.154-.104.004-.003.004-.003.153-.106.004-.003.005-.003.151-.108.004-.003.005-.003.15-.11.004-.003.004-.003.149-.112.004-.003.004-.003.148-.113.004-.004.004-.003.147-.115.004-.004.004-.003.068-.055.116-.113.092-.132.066-.147.038-.157.008-.16-.022-.16-.05-.153-.08-.14-.103-.125-.124-.102-.142-.077-.153-.05-.16-.02z",opacity:".98"}));function WV(){return WV=Object.assign?Object.assign.bind():function(e){for(var t=1;trS("svg",WV({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M16.012 8.816L9.21 21.026h13.606l-6.803-12.21zm0 1.776l5.332 9.57H10.681l5.331-9.57zm0-10.281c-1.448.02-2.93.157-4.302.628-.852.447-.255 1.863.66 1.574 2.255-.608 4.648-.607 6.922-.108.934.075 1.228-1.376.338-1.67C18.451.44 17.227.317 16.012.311zm9.012 2.934c-.913-.104-1.272 1.258-.454 1.648 1.834 1.36 3.293 3.185 4.31 5.22.526.776 1.842.098 1.515-.78a15.522 15.522 0 00-5.06-6.006c-.1-.044-.203-.07-.31-.082zM6.65 3.59c-.762.089-1.24.809-1.805 1.267C3.38 6.295 2.163 8.007 1.37 9.905c-.266.898 1.094 1.484 1.564.675a14.825 14.825 0 014.327-5.56c.476-.515.09-1.419-.612-1.431zm9.362.007c-.698.066-1.689-.16-2.033.635-.282.733.535 1.358 1.217 1.125 1.806-.147 3.63.203 5.293.907.902.255 1.472-1.112.656-1.573-1.6-.735-3.374-1.089-5.133-1.094zm-5.479 1.365c-.835.15-1.517.76-2.21 1.226-1.203.94-2.318 2.061-3.057 3.402-.33.904 1.063 1.552 1.547.723 1.045-1.656 2.596-2.925 4.285-3.873.545-.499.171-1.463-.565-1.478zm13.903 2.115c-.875-.07-1.22 1.173-.501 1.627 1.325 1.34 2.188 3.062 2.748 4.84.468.84 1.869.21 1.557-.699-.604-2.118-1.751-4.097-3.351-5.615a.93.93 0 00-.453-.153zM4.467 13.132c-.822-.07-.996.826-1.046 1.455-.256 1.93-.094 3.933.562 5.769.406.844 1.807.365 1.612-.551a11.498 11.498 0 01-.334-5.808.874.874 0 00-.794-.865zm26.687 1.6c-.746-.037-1.014.785-.879 1.395.043 2.393-.57 4.771-1.66 6.894-.31.884 1.02 1.536 1.53.75a15.632 15.632 0 001.821-8.372.876.876 0 00-.812-.667zm-30.197.571c-.782-.073-1.044.775-.933 1.404.068 2.414.661 4.833 1.809 6.962.534.77 1.842.076 1.505-.798a14.833 14.833 0 01-1.603-6.861.876.876 0 00-.778-.707zm26.787 2.024c-.777-.048-.952.797-1.021 1.392-.354 1.692-1.202 3.231-2.216 4.608-.407.872.925 1.638 1.48.852 1.361-1.733 2.296-3.827 2.582-6.017a.874.874 0 00-.825-.835zM6.857 23.012c-.808.018-1.082 1.122-.47 1.59 1.393 1.607 3.187 2.886 5.194 3.599.91.222 1.43-1.165.598-1.596a11.495 11.495 0 01-4.723-3.396.899.899 0 00-.599-.197zm15.057 2.7c-.81.194-1.504.76-2.325.972-1.203.458-2.5.536-3.758.664-.869.307-.573 1.728.346 1.663 2.201-.034 4.412-.626 6.293-1.778.604-.495.227-1.532-.556-1.521zM6.346 27.118c-.833.008-1.11 1.218-.395 1.617 1.986 1.602 4.358 2.749 6.868 3.226.933.076 1.227-1.376.338-1.67a14.838 14.838 0 01-6.345-3.066.929.929 0 00-.466-.107zm19.208.087c-.766.09-1.241.841-1.922 1.158-1.516.991-3.251 1.58-4.996 2.005-.872.405-.346 1.849.584 1.604 2.543-.526 4.98-1.66 6.963-3.344.47-.52.072-1.42-.63-1.423z"}));function QV(){return QV=Object.assign?Object.assign.bind():function(e){for(var t=1;trS("svg",QV({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M15.998 8.406c-3.018-.041-5.92 1.926-7.031 4.727-1.138 2.695-.51 6.012 1.537 8.103 1.99 2.141 5.268 2.93 8.014 1.927 2.878-.98 4.992-3.827 5.068-6.87.153-2.957-1.624-5.88-4.3-7.137a7.552 7.552 0 00-3.288-.75zm0 1.384c2.759-.052 5.373 1.973 6.015 4.655.704 2.578-.482 5.517-2.791 6.867-2.358 1.48-5.682 1.086-7.618-.918-2.043-1.971-2.407-5.381-.84-7.745 1.11-1.763 3.15-2.88 5.234-2.86zm1.962 1.765l-2.074 3.762c-.64.068-.793 1.04-.202 1.3.39.27.696-.18 1.052-.165h3.17v-.865h-3.182l1.993-3.615c-.252-.14-.505-.278-.757-.417zm-1.965-8.268h-.158l-.147.003h-.011l-.147.005h-.011l-.146.007h-.011l-.146.009h-.011l-.146.01h-.005l-.005.001-.146.012h-.011l-.145.014h-.006l-.005.001-.05.006-.158.031-.15.06-.135.088-.117.111-.094.13-.069.147-.04.156-.01.16.019.16.049.154.076.142.102.125.123.105.14.08.152.051.16.023.134-.003.045-.005.135-.013.133-.01.136-.01.135-.007.137-.006.136-.004.136-.003h.274l.136.003.136.004.136.006.136.007.136.01.133.01.135.013.135.014.135.016.134.018.132.018.134.021.133.023.133.024.133.025.13.027.132.03.132.03.129.031.13.034.129.035.129.036.13.04.126.038.128.042.126.042.128.045.127.047.126.048.12.047.127.051.123.052.006.002.147.048.16.021.16-.009.157-.038.147-.067.131-.093.112-.116.089-.135.062-.149.033-.158.004-.16-.027-.16-.055-.151-.083-.138-.107-.121-.127-.099-.118-.063-.004-.001-.005-.003-.005-.002-.133-.056-.005-.002-.005-.002-.134-.054-.004-.002-.005-.002-.135-.053-.005-.002-.005-.002-.135-.051-.005-.002-.005-.002-.135-.05-.005-.001-.005-.002-.137-.048-.005-.001-.005-.002-.137-.046-.005-.002-.005-.002-.137-.044-.005-.002-.005-.001-.138-.043-.005-.002-.006-.001-.138-.042-.005-.001-.005-.002-.14-.04H19.4l-.005-.002-.14-.038-.005-.001-.005-.002-.14-.036-.005-.001-.005-.001-.141-.035-.005-.001-.005-.001-.142-.033-.005-.001-.005-.001-.141-.031-.006-.002h-.005l-.142-.03-.005-.001-.005-.001-.143-.028h-.005l-.005-.001-.143-.026-.006-.001-.005-.001-.143-.024-.005-.001-.006-.001-.143-.022-.006-.001h-.005l-.144-.022h-.005l-.006-.001-.144-.019h-.005l-.006-.001-.144-.017h-.006l-.005-.001-.145-.016h-.011l-.145-.014H17.1l-.005-.001-.146-.012h-.01l-.146-.01-.006-.001h-.005l-.146-.009h-.011l-.147-.006h-.01l-.147-.005h-.011l-.147-.003h-.01l-.148-.001h-.01zM10.357 4.66l-.156.037-.123.053-.06.032-.005.002-.004.003-.128.069-.004.002-.005.003-.126.07-.005.003-.004.002-.126.072-.005.003-.004.003-.125.073-.004.003-.005.003-.124.075-.004.003-.005.002-.123.077-.004.003-.005.003-.122.078-.004.003-.005.003-.121.08-.004.002-.005.003-.12.082-.005.003-.004.003-.12.083-.004.003-.004.003-.118.084-.005.003-.004.003-.118.086-.004.003-.004.003-.117.088-.004.003-.004.003-.116.089-.004.003-.004.004-.114.09-.005.003-.004.003-.113.092-.004.004-.004.003-.113.093-.004.004-.004.003-.111.095-.004.003-.005.004-.11.096-.004.004-.004.003-.109.098-.004.003-.004.004-.108.1-.004.003-.004.003-.107.101-.004.004-.004.003-.106.102-.003.004-.004.004-.105.103-.004.004-.004.004-.103.105-.004.004-.004.003-.102.106-.003.004-.004.004-.1.107-.004.004-.004.004-.099.108-.004.004-.003.004-.098.11-.003.003-.004.004-.096.11-.004.005-.003.004-.095.111-.003.004-.004.004-.093.113-.003.004-.004.004-.092.113-.003.004-.003.005-.09.114-.004.004-.003.004-.089.116-.003.004-.003.004-.088.117-.003.004-.003.005-.086.117-.003.004-.003.005-.084.118-.003.004-.003.005-.083.12-.003.003-.003.005-.082.12-.003.005-.002.004-.068.103-.076.142-.048.154-.018.16.011.161.041.156.07.146.095.13.117.11.136.086.15.06.158.03.162.002.158-.029.15-.058.138-.085.119-.108.082-.106.065-.099.075-.11.077-.113.077-.107.08-.11.08-.108.084-.108.083-.105.086-.106.086-.104.088-.104.089-.101.09-.102.093-.101.093-.099.094-.097.095-.096.098-.097.098-.095.099-.093.1-.092.103-.091.101-.089.104-.088.104-.086.106-.086.106-.083.106-.082.109-.082.108-.079.11-.078.11-.076.112-.076.112-.074.113-.072.113-.071.115-.07.115-.068.118-.067.117-.065.12-.065.054-.029.135-.088.116-.111.094-.132.068-.146.04-.156.009-.161-.02-.16-.05-.153-.078-.142-.102-.125-.123-.103-.141-.079-.153-.051-.16-.022-.16.008zm13.91 2.116l-.158.037-.147.066-.132.092-.113.116-.09.134-.063.148-.034.157-.005.162.026.159.054.152.082.139.086.102.09.09.094.098.093.099.092.1.091.103.089.101.088.104.086.104.086.106.083.105.083.108.08.108.081.11.077.107.077.112.075.111.075.114.072.113.071.113.07.115.068.117.067.115.065.118.064.117.062.118.061.12.059.119.059.122.056.121.054.12.055.125.051.123.051.125.048.123.049.127.046.126.044.125.043.128.042.129.039.126.038.13.022.076.058.15.086.137.109.119.129.096.145.07.155.043.16.013.161-.017.155-.046.143-.074.126-.1.106-.122.082-.138.055-.152.025-.16-.005-.16-.026-.132-.023-.082-.002-.005-.001-.005-.042-.139-.001-.005-.002-.005-.043-.138-.001-.005-.002-.005-.044-.137-.002-.005-.002-.005-.046-.137-.002-.005-.001-.005-.048-.137-.002-.005-.002-.005-.05-.135-.001-.005-.002-.005-.051-.135-.002-.005-.002-.005-.053-.135-.002-.005-.002-.005-.054-.133-.002-.005-.002-.005-.057-.133-.002-.005-.002-.005-.057-.132-.003-.005-.002-.005-.059-.132-.002-.005-.002-.004-.061-.132-.003-.004-.002-.005-.062-.13-.003-.005-.002-.005-.064-.13-.003-.004-.002-.005-.066-.129-.002-.004-.003-.005-.067-.128-.002-.005-.003-.004-.069-.128-.002-.004-.003-.005-.07-.126-.003-.005-.003-.004-.072-.126-.002-.005-.003-.004-.073-.125-.003-.004-.003-.005-.075-.124-.003-.004-.003-.005-.076-.123-.003-.004-.003-.005-.078-.122-.003-.004-.003-.005-.08-.121-.003-.004-.003-.005-.08-.12-.004-.005-.003-.004-.083-.12-.003-.004-.003-.004-.084-.118-.003-.005-.003-.004-.086-.117-.003-.005-.003-.004-.088-.117-.003-.004-.003-.004-.09-.116-.002-.004-.004-.004-.09-.114-.003-.005-.004-.004-.091-.113-.004-.004-.003-.004-.093-.113-.004-.004-.003-.004-.095-.111-.004-.004-.003-.004-.096-.11-.004-.005-.003-.004-.098-.109-.004-.004-.003-.004-.1-.108-.003-.004-.004-.004-.1-.107-.004-.004-.004-.004-.102-.106-.003-.003-.004-.004-.093-.095-.124-.103-.14-.08-.153-.05-.16-.023-.16.008zM4.288 12.828l-.158.032-.15.06-.135.088-.117.11-.095.131-.069.146-.035.129-.026.132v.005l-.002.005-.025.143-.001.005-.001.006-.024.143-.001.005-.001.006-.022.143-.001.006-.001.005-.02.144-.001.005-.001.006-.019.144v.005l-.001.006-.017.144v.006l-.001.005-.016.145v.011l-.014.145v.006l-.001.005-.012.146v.01l-.01.146-.001.006v.005l-.009.146v.011l-.007.146v.011l-.004.147v.011l-.003.147v.01l-.002.148v.01l.001.148v.01l.003.147v.011l.005.147v.01l.007.147v.011l.009.146v.011l.01.146v.01l.013.146v.011l.014.145v.005l.001.006.016.145v.011l.018.144v.006l.001.005.019.144v.006l.001.005.021.144v.005l.002.006.022.143v.006l.002.005.024.143v.005l.002.006.025.143.001.005.001.005.028.143.001.005.001.005.03.142v.005l.002.006.03.141.002.005.001.006.033.14v.006l.002.005.035.14v.006l.002.005.036.14.002.005.001.005.038.14.001.005.002.005.04.14v.005l.002.005.042.138.001.006.002.005.042.138.002.005.002.005.017.054.064.148.09.134.114.114.132.092.148.065.157.037.16.007.16-.023.153-.052.14-.08.123-.103.102-.126.076-.142.049-.153.02-.16-.01-.161-.032-.13-.017-.051-.039-.126-.038-.13-.037-.128-.035-.13-.033-.128-.033-.134-.03-.13-.029-.131-.026-.13-.026-.132-.024-.134-.023-.133-.02-.132-.02-.136-.017-.132-.016-.135-.014-.135-.012-.133-.012-.138-.009-.133-.007-.136-.006-.138-.004-.134-.003-.136v-.274l.003-.136.004-.134.006-.139.007-.136.01-.132.01-.139.013-.132.014-.135.016-.135.017-.132.02-.137.02-.13.023-.134.024-.133.024-.126.016-.16-.014-.161-.044-.155-.072-.145-.098-.128-.12-.108-.137-.084-.15-.057-.16-.029-.16.002zm23.286 4.202l-.156.038-.148.066-.132.092-.113.115-.09.134-.062.148-.03.127-.001.004-.023.134-.024.134-.026.132-.026.13-.03.132-.03.129-.032.134-.033.128-.035.13-.037.128-.038.13-.04.126-.04.128-.044.128-.044.126-.046.126-.048.126-.05.125-.05.125-.051.122-.054.123-.055.122-.056.12-.058.122-.06.12-.061.12-.062.119-.063.116-.067.119-.066.116-.068.115-.07.115-.07.113-.073.113-.074.112-.076.113-.077.112-.077.107-.08.11-.08.108-.085.109-.044.056-.088.135-.06.15-.033.158-.002.16.027.16.057.15.083.138.108.12.128.098.144.072.155.045.16.015.161-.016.155-.044.144-.073.128-.098.09-.099.05-.061.003-.004.003-.005.089-.115.003-.004.003-.005.088-.116.003-.004.003-.005.086-.117.003-.004.003-.005.084-.118.003-.004.003-.005.083-.12.003-.004.003-.004.082-.12.003-.005.002-.004.08-.121.003-.005.003-.004.078-.122.003-.005.003-.004.077-.123.002-.005.003-.004.075-.124.003-.005.003-.004.073-.125.003-.004.003-.005.072-.126.002-.004.003-.005.07-.126.003-.005.002-.005.07-.127.002-.004.002-.005.068-.128.002-.005.002-.004.066-.13.003-.004.002-.005.064-.13.002-.004.003-.005.062-.13.003-.005.002-.005.06-.13.003-.005.002-.005.06-.132.002-.005.002-.005.057-.132.003-.005.002-.005.056-.133.002-.005.002-.005.054-.134.002-.004.002-.005.053-.135.002-.005.002-.005.051-.135.002-.005.002-.005.05-.135.001-.005.002-.005.048-.137.001-.005.002-.005.046-.137.002-.005.002-.005.044-.137.002-.005.002-.005.042-.138.002-.005.002-.006.04-.138.002-.005.002-.005.04-.14V19.4l.002-.005.038-.14.001-.005.002-.005.036-.14.001-.005.001-.005.035-.141.001-.005.001-.005.033-.141.001-.006.001-.005.031-.141.002-.006v-.005l.03-.142.001-.005.001-.005.028-.143v-.005l.002-.005.025-.143.001-.006.001-.005.024-.143.001-.005.001-.006.001-.006.01-.161-.02-.16-.05-.154-.077-.141-.102-.125-.123-.104-.141-.079-.153-.051-.16-.022-.16.007zM6.681 22.734l-.152.053-.14.08-.122.105-.101.126-.076.142-.048.154-.018.16.011.161.041.156.07.146.077.11.04.047.003.004.003.004.095.111.003.004.004.004.096.11.004.005.003.004.098.109.003.004.004.004.1.108.003.004.003.004.101.107.004.004.003.004.102.106.004.003.004.004.103.105.004.004.004.004.105.103.004.004.003.003.106.102.004.004.004.004.107.1.004.004.004.004.108.099.004.003.004.004.11.098.003.003.004.004.11.096.005.004.004.003.11.095.005.003.004.004.113.093.004.003.004.004.113.091.004.004.005.003.114.09.004.004.004.003.116.089.004.003.004.003.117.088.004.003.004.003.118.086.004.003.005.003.118.084.004.003.005.003.119.083.004.003.005.003.12.081.005.003.004.003.121.08.005.003.004.003.122.078.005.003.004.003.123.076.005.003.004.003.124.075.005.003.004.003.125.073.004.003.005.003.126.072.004.002.005.003.126.07.005.003.004.002.128.07.004.002.005.002.128.068.005.002.004.002.13.066.004.003.005.002.13.064.004.002.005.003.13.062.005.002.004.003.132.06.004.003.005.002.132.06.005.002.005.002.132.057.005.002.005.003.133.056.005.002.005.002.133.054.005.002.005.002.13.05.154.045.16.016.161-.015.155-.045.144-.072.128-.098.108-.12.083-.138.057-.15.028-.16-.003-.16-.032-.158-.061-.15-.088-.135-.11-.117-.132-.094-.12-.058-.124-.049-.126-.051-.122-.051-.122-.054-.12-.054-.126-.058-.119-.057-.12-.06-.12-.06-.118-.063-.117-.064-.119-.066-.116-.066-.115-.068-.115-.07-.113-.07-.115-.074-.112-.074-.11-.075-.11-.076-.112-.079-.11-.08-.109-.082-.106-.082-.104-.082-.106-.086-.105-.087-.101-.086-.105-.091-.1-.09-.1-.091-.1-.094-.097-.094-.1-.098-.093-.095-.096-.1-.093-.098-.092-.101-.089-.1-.09-.102-.088-.104-.036-.043-.114-.114-.133-.091-.148-.065-.157-.036-.161-.006-.16.024zm15.063 2.691l-.156.044-.12.057-.06.034-.12.066-.116.064-.119.062-.12.061-.12.06-.118.057-.126.058-.12.054-.122.054-.122.05-.126.052-.125.05-.124.046-.127.047-.125.044-.129.043-.126.04-.13.042-.128.038-.127.036-.13.035-.131.034-.129.031-.132.03-.13.03-.135.027-.133.026-.13.023-.13.022-.137.021-.132.02-.134.017-.132.015-.138.015-.135.013-.133.01-.138.01-.136.007-.134.006-.136.004-.14.003-.16.018-.155.047-.142.076-.127.1-.105.122-.08.14-.054.151-.025.16.006.16.035.158.064.148.09.134.114.114.133.092.147.065.157.036.134.008.145-.002h.011l.147-.005h.01l.147-.007h.011l.146-.009h.011l.146-.01h.005l.005-.001.146-.012h.011l.145-.014h.005l.006-.001.145-.016h.011l.144-.018h.006l.005-.001.144-.02h.011l.144-.021h.005l.006-.002.143-.022h.006l.005-.002.143-.024h.005l.006-.002.143-.026h.005l.005-.002.143-.027.005-.001.005-.001.142-.03h.005l.005-.002.142-.03.005-.002.005-.001.142-.033.005-.001.005-.001.14-.035.006-.001.005-.001.14-.036.005-.002.005-.001.14-.038.005-.001.005-.002.14-.04h.005l.005-.002.138-.042.005-.001.006-.002.138-.043.005-.001.005-.002.137-.044.005-.002.005-.002.137-.046.005-.002.005-.001.137-.048.005-.002.005-.002.135-.05.005-.001.005-.002.135-.051.005-.002.005-.002.135-.053.005-.002.004-.002.134-.054.005-.002.005-.002.133-.056.005-.003.005-.002.132-.057.005-.002.005-.003.132-.059.005-.002.004-.002.131-.061.005-.003.005-.002.13-.062.005-.003.005-.002.13-.064.004-.002.005-.003.129-.066.004-.002.005-.003.128-.067.005-.002.004-.003.127-.069.005-.002.005-.003.126-.07.005-.003.004-.002.065-.038.132-.093.112-.115.089-.135.062-.149.034-.157.004-.161-.027-.16-.055-.15-.082-.14-.107-.12-.127-.1-.144-.073-.154-.045-.16-.017-.161.014zM15.994 0l-.187.001h-.011l-.188.004h-.011l-.187.006h-.011l-.187.008h-.005L15.2.02l-.187.01h-.005l-.005.001-.187.013h-.01L14.62.06h-.01l-.186.018h-.011l-.185.02-.005.001h-.006l-.185.022-.005.001h-.005l-.185.025h-.005l-.005.001-.184.027h-.006l-.005.001-.184.029h-.005l-.005.001-.183.031-.005.001-.006.001-.182.033-.006.001-.005.001-.182.035-.005.001-.005.001-.182.038h-.005l-.005.002-.181.04h-.005l-.005.002-.18.042-.006.001-.005.001-.18.044-.005.002h-.005l-.17.045-.152.054-.139.082-.121.106-.1.127-.074.143-.046.155-.017.16.013.16.043.156.07.145.097.13.119.108.137.085.15.058.159.03.16-.001.133-.023.165-.043.168-.041.171-.04.171-.037.172-.036.17-.033.173-.03.17-.03.177-.027.171-.025.175-.022.175-.02.175-.02.176-.016.175-.014.177-.012.176-.01.177-.007.174-.006.177-.003L16 1.73h.177l.178.004.174.006.177.007.176.01.177.012.175.014.176.017.175.018.175.02.175.023.171.025.177.027.17.03.173.03.17.033.171.036.154.033.16.02.161-.01.156-.04.146-.069.131-.094.111-.117.088-.135.06-.15.032-.158.002-.16-.027-.16-.057-.15L20 .714l-.108-.12-.128-.097-.144-.073-.129-.038-.158-.035-.005-.001-.005-.001L19.14.31h-.005l-.005-.002-.182-.035h-.006l-.005-.002-.182-.033h-.006l-.005-.002-.183-.03-.005-.001-.005-.001-.184-.029h-.005l-.006-.001-.184-.027h-.005l-.005-.001-.185-.024h-.005L17.968.12 17.783.1l-.006-.001h-.005l-.185-.02h-.006l-.005-.001L17.39.06 17.385.06h-.005l-.187-.015h-.005l-.005-.001-.187-.013h-.01L16.799.02h-.011L16.6.01h-.011l-.187-.006h-.011L16.204 0h-.011L16.005 0h-.01zm8.86 2.939l-.157.033-.15.062-.134.09-.116.111-.093.132-.067.147-.038.156-.01.161.022.16.05.153.078.141.103.124.102.087.045.034.142.106.137.105.14.11.136.11.135.112.134.115.134.117.13.115.132.122.128.12.127.122.127.125.123.126.124.128.121.13.118.128.118.132.117.133.113.134.113.136.11.136.109.137.109.142.104.14.103.14.101.142.1.144.099.146.095.145.094.147.093.15.092.15.087.149.087.15.085.152.083.155.08.152.08.155.04.081.084.138.11.119.128.096.145.072.155.043.16.013.161-.016.155-.046.143-.074.127-.099.106-.12.083-.14.055-.151.026-.16-.004-.16-.034-.158-.05-.124-.042-.085-.002-.004-.003-.005-.084-.165-.002-.004-.003-.005-.086-.164-.002-.004-.003-.005-.088-.162-.002-.005-.003-.005-.09-.161-.002-.005-.003-.004-.092-.16-.002-.005-.003-.005-.094-.16-.003-.004-.003-.004-.096-.159-.002-.004-.003-.005-.098-.157-.003-.004-.003-.005-.1-.156-.003-.004-.002-.005-.102-.154-.003-.005-.003-.004-.104-.154-.003-.004-.003-.005-.106-.152-.003-.004-.003-.005-.108-.151-.003-.004-.003-.005-.11-.15-.003-.004-.003-.004-.111-.15-.004-.003-.003-.005-.113-.147-.004-.004-.003-.005-.115-.146-.004-.004-.003-.004-.117-.145-.004-.004-.003-.004-.12-.144-.003-.004-.003-.004-.121-.142-.003-.004-.004-.004-.123-.141-.003-.004-.004-.004-.125-.14-.003-.004-.004-.004-.127-.138-.003-.004-.004-.004-.128-.136-.004-.004-.004-.004-.13-.135-.004-.004-.003-.004-.133-.134-.003-.004-.004-.003-.134-.133-.004-.003-.004-.004-.135-.13-.004-.004-.004-.004-.136-.128-.004-.004-.004-.004-.138-.126-.004-.004-.004-.003-.14-.125-.004-.004-.004-.003-.14-.123-.005-.004-.004-.003-.142-.121-.004-.004-.004-.003-.144-.12-.004-.003-.004-.003-.145-.117-.004-.004-.004-.003-.147-.115-.004-.004-.004-.003-.148-.113-.004-.003-.004-.004-.149-.111-.004-.003-.004-.004-.05-.036-.14-.083-.15-.055-.16-.027-.16.004zm-18.381.348l-.157.037-.147.066-.111.074-.04.032-.005.003-.004.004-.145.117-.004.003-.004.004-.144.119-.004.003-.004.004-.142.12-.004.004-.004.004-.141.123-.004.003-.004.004-.14.125-.004.003-.004.004-.138.126-.004.004-.004.004-.136.128-.004.004-.004.004-.135.13-.004.004-.004.003-.134.133-.004.003-.004.004-.132.134-.003.004-.004.004-.13.135-.004.004-.004.004-.128.136-.004.004-.004.004-.126.138-.004.004-.003.004-.125.14-.004.004-.003.004-.123.14-.004.005-.003.004-.121.142-.004.004-.003.004-.12.144-.003.004-.003.004-.117.145-.004.004-.003.004-.115.146-.004.005-.003.004-.113.147-.003.005-.004.004-.111.149-.003.004-.004.004-.11.15-.002.005-.003.004-.108.151-.003.005-.003.004-.106.152-.003.005-.003.004-.104.154-.003.004-.003.005-.102.154-.003.005-.002.004-.1.156-.003.005-.003.004-.098.157-.003.005-.003.004-.096.159-.002.004-.003.005-.094.16-.003.004-.002.004-.092.16-.003.005-.003.005-.09.161-.002.005-.003.005-.088.162-.002.005-.003.004-.086.164-.002.005-.002.004-.084.165-.003.005-.002.004-.082.166-.002.005-.003.004-.08.167-.002.004-.002.005-.078.168-.002.004-.002.005-.045.1-.053.153-.023.16.007.16.037.157.065.148.092.132.114.114.134.09.148.064.157.035.161.006.16-.025.152-.054.14-.08.121-.106.1-.126.065-.118.043-.095.074-.16.075-.155.077-.157.08-.155.08-.152.083-.155.085-.152.086-.15.088-.149.091-.15.094-.15.094-.147.095-.145.099-.146.1-.144.1-.142.104-.14.104-.14.11-.142.107-.137.11-.136.114-.136.113-.134.117-.133.118-.132.117-.129.122-.13.124-.127.123-.126.127-.125.127-.122.128-.12.132-.122.13-.115.133-.117.135-.115.135-.111.136-.11.037-.03.117-.11.094-.132.068-.146.04-.156.01-.161-.02-.16-.05-.154-.076-.141-.102-.125-.123-.104-.14-.08-.153-.051-.16-.023-.161.008zm24.514 11.15l-.157.04-.146.067-.131.093-.112.117-.088.135-.061.149-.033.157-.005.134.006.14.006.176.003.177.001.178-.001.177-.003.178-.006.177-.007.176-.01.177-.012.176-.015.176-.016.173-.018.175-.02.175-.024.174-.024.175-.027.17-.03.174-.03.173-.033.17-.036.172-.037.17-.04.17-.042.172-.043.168-.045.166-.048.169-.05.167-.052.168-.053.164-.056.166-.058.166-.06.161-.061.164-.063.158-.066.165-.068.16-.07.16-.07.158-.075.159-.074.155-.078.158-.081.158-.06.15-.03.158-.001.161.029.159.058.15.085.137.108.12.13.096.144.07.156.044.16.013.16-.017.155-.046.143-.074.127-.1.107-.12.07-.115.083-.164.003-.005.002-.004.082-.166.002-.005.003-.004.08-.167.002-.005.002-.004.078-.168.002-.004.002-.005.076-.169.002-.004.002-.005.074-.17.002-.004.002-.005.072-.17.002-.005.002-.005.07-.17.002-.006.001-.005.068-.172.002-.004.002-.005.065-.173.002-.005.002-.005.063-.173.002-.005.002-.005.06-.174.003-.005.001-.005.06-.175.001-.005.002-.005.057-.176.001-.005.002-.005.055-.177.001-.005.002-.005.052-.177.002-.005.001-.005.051-.178.001-.005.002-.005.048-.179.002-.005v-.005l.047-.179.001-.005.002-.005.044-.18v-.005l.002-.005.042-.18.001-.006.001-.005.04-.18.001-.006.001-.005.038-.182v-.005l.002-.005.035-.182v-.006l.002-.005.033-.182v-.006l.002-.005.03-.183.001-.005.001-.005.029-.184v-.005l.001-.006.027-.184v-.005l.001-.005.024-.185v-.005l.001-.005.022-.185v-.006l.001-.005.02-.185v-.006l.001-.005.017-.186v-.005l.001-.005.015-.187v-.005l.001-.005.013-.187v-.01l.01-.187.001-.006v-.005l.009-.187v-.011l.006-.187v-.011l.004-.188v-.011l.001-.188v-.01l-.001-.188v-.011l-.004-.188v-.011l-.006-.187v-.011l-.007-.145-.022-.16-.05-.152-.08-.141-.103-.124-.125-.102-.141-.077-.153-.05-.16-.02-.161.009zM.777 15l-.158.032-.15.06-.136.087-.117.11-.095.131-.068.146-.04.156-.012.133-.001.14v.01l.001.188v.011l.004.188v.011l.006.187v.011l.008.187v.011l.011.187v.005l.001.005.013.187v.01l.016.187v.01l.018.186v.011l.02.185.001.005v.006l.022.185.001.005v.005l.025.185v.005l.001.005.027.184v.006l.001.005.029.184v.005l.001.005.031.183.001.005.001.006.033.182.001.005.001.006.035.182.001.005.001.005.038.182v.005l.002.005.04.181v.005l.002.005.042.18.001.006.001.005.044.18.002.005v.005l.047.18.001.004.002.005.048.179.002.005.001.005.05.178.002.005.001.005.053.177.002.005.001.005.055.177.002.005.001.005.057.176.002.005.001.005.06.175.001.005.002.005.061.174.002.005.002.005.063.173.002.005.002.005.065.173.002.005.002.004.067.172.002.005.002.005.07.171.002.005.002.005.072.17.002.005.002.005.074.169.002.005.002.004.076.169.002.005.002.004.078.168.002.004.002.005.08.167.003.004.002.005.082.166.002.004.003.005.02.04.086.136.11.118.13.095.146.07.156.041.16.012.16-.019.155-.048.142-.075.126-.1.105-.123.08-.14.054-.152.024-.16-.006-.16-.036-.158-.051-.123-.018-.034-.078-.158L3.1 22.1l-.074-.16-.071-.156-.07-.162-.068-.16-.067-.164-.062-.158-.062-.164-.059-.161-.058-.166-.056-.166-.053-.164-.052-.168-.05-.167-.048-.17-.045-.165-.043-.168-.043-.172-.039-.17-.037-.17-.036-.172-.033-.17-.03-.173-.03-.174-.027-.17-.025-.175-.022-.174-.021-.175-.018-.175-.017-.173-.014-.176-.012-.176-.01-.177-.007-.176-.006-.177-.003-.178L1.73 16v-.134l-.013-.16-.044-.156-.072-.144-.097-.129-.12-.108-.137-.085-.15-.057L.938 15 .777 15zM6.17 26.842l-.152.052-.14.08-.122.105-.101.126-.076.142-.048.154-.02.16.012.161.041.156.07.146.094.13.096.093.032.026.004.003.004.004.145.117.004.003.004.004.146.115.005.003.004.004.147.113.005.003.004.004.149.111.004.003.004.003.15.11.005.003.004.003.151.108.005.003.004.003.152.106.005.003.004.003.154.104.004.003.005.003.154.102.005.002.004.003.156.1.005.003.004.003.157.098.005.003.004.002.159.096.004.003.005.003.16.094.004.003.004.002.16.092.005.003.005.002.161.09.005.003.005.003.162.088.005.002.004.002.164.087.005.002.004.002.165.084.005.003.004.002.166.082.004.002.005.003.167.08.004.002.005.002.168.078.004.002.005.002.169.076.004.002.005.002.17.074.004.002.005.002.17.072.005.002.005.002.17.07.006.002.005.001.171.068.005.002.005.002.173.065.005.002.005.002.173.063.005.002.005.002.174.061.005.002.005.001.175.06.005.001.005.002.176.057.005.001.005.002.177.055.005.001.005.002.177.052.005.002.005.001.178.051.005.001.005.002.178.048.006.002h.005l.179.047.005.001.005.002.18.044h.005l.005.002.18.042.006.001.005.001.159.035.16.02.16-.01.157-.04.146-.069.13-.094.112-.117.087-.136.06-.149.033-.158.002-.161-.028-.159-.057-.15-.084-.138-.108-.12-.128-.098-.144-.072-.128-.039-.154-.033-.168-.04-.171-.041-.169-.044-.17-.045-.166-.048-.168-.05-.165-.051-.166-.054-.166-.056-.163-.057-.165-.06-.161-.062-.164-.064-.16-.065-.16-.068-.162-.07-.157-.07-.157-.074-.157-.075-.156-.077-.153-.079-.156-.082-.153-.082-.154-.086-.15-.086-.152-.09-.148-.09-.147-.092-.149-.095-.145-.095-.144-.098-.145-.1-.143-.102-.14-.103-.14-.104-.14-.108-.139-.11-.136-.11-.027-.022-.133-.091-.148-.065-.157-.036-.161-.006-.16.024zm19.214.073l-.156.039-.146.067-.11.076-.064.051-.139.11-.14.108-.14.104-.14.103-.143.101-.145.101-.144.098-.145.095-.149.095-.148.093-.147.089-.152.09-.15.086-.154.086-.153.082-.156.082-.153.079-.156.077-.157.075-.157.073-.158.071-.16.07-.16.068-.161.065-.164.064-.161.061-.165.06-.163.058-.166.056-.166.054-.166.051-.167.05-.167.048-.17.045-.168.044-.171.042-.168.039-.17.037-.11.023-.154.047-.143.075-.126.1-.106.122-.081.139-.054.152-.025.16.006.16.035.158.063.148.09.133.114.115.132.092.148.065.157.037.16.008.133-.017.115-.024h.005l.005-.002.181-.04h.005l.005-.002.18-.042.006-.001.005-.001.18-.044.005-.002h.005l.18-.047.004-.001.005-.002.179-.048.005-.002.005-.001.178-.05.005-.002.005-.002.177-.052.005-.002.005-.001.177-.055.005-.002.005-.001.176-.057.005-.002.005-.002.175-.059.005-.001.005-.002.174-.061.005-.002.005-.002.173-.063.005-.002.005-.002.173-.065.005-.002.004-.002.172-.068.005-.001.005-.002.171-.07.005-.002.005-.002.17-.072.005-.002.005-.002.169-.074.005-.002.004-.002.169-.076.004-.002.005-.002.168-.078.004-.002.005-.002.167-.08.004-.003.005-.002.166-.082.004-.002.005-.003.165-.084.004-.002.005-.002.163-.087.005-.002.005-.002.162-.088.005-.003.005-.003.161-.09.005-.002.004-.003.16-.092.005-.002.005-.003.16-.094.004-.003.004-.003.158-.096.005-.002.004-.003.158-.098.004-.003.005-.003.156-.1.004-.003.004-.002.155-.102.005-.003.004-.003.154-.104.004-.003.005-.003.152-.106.004-.003.005-.003.151-.108.004-.003.005-.003.15-.11.004-.003.004-.003.149-.111.004-.004.004-.003.148-.113.004-.004.004-.003.147-.115.004-.004.004-.003.068-.055.116-.113.092-.132.066-.147.038-.157.008-.16-.022-.16-.05-.153-.08-.14-.103-.125-.124-.102-.142-.077-.153-.05-.16-.02-.16.009z"}));function UV(){return UV=Object.assign?Object.assign.bind():function(e){for(var t=1;trS("svg",UV({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M15.975.003C8.195-.157.935 6.24.125 13.985c-.855 6.55 2.741 13.46 8.74 16.314 5.666 2.847 13.012 1.99 17.71-2.33 4.745-4.162 6.727-11.243 4.532-17.206C29.09 4.884 23.445.408 17.201.049c-.408-.03-.817-.046-1.226-.046zm-.181 1.724c7.134-.269 13.84 5.68 14.399 12.804.686 6.283-3.267 12.792-9.283 14.862-5.847 2.162-13.025.06-16.557-5.141C.728 19.174.872 11.679 4.985 6.916c2.632-3.171 6.671-5.174 10.809-5.19zm.283 1.553c-6.6-.21-12.671 5.585-12.79 12.185-.292 5.964 4.129 11.817 10.034 12.953 5.47 1.198 11.584-1.613 14.025-6.702 2.525-4.97 1.396-11.585-2.912-15.215-2.282-2.022-5.3-3.217-8.357-3.22zM16 4.975c5.818-.154 11.117 5.082 11.024 10.905.103 5.384-4.23 10.5-9.636 11.043-5.075.667-10.426-2.587-11.885-7.552-1.53-4.73.48-10.428 4.888-12.864A11.082 11.082 0 0116 4.975zm-2.15 3.281v5.534H8.213v4.38h5.636v5.534h4.31V18.17h5.639v-4.38h-5.64V8.256h-4.31zm.865.865h2.583v5.534h5.635v2.65h-5.635v5.533h-2.583v-5.534h-5.64v-2.649h5.64V9.121z"}));function KV(){return KV=Object.assign?Object.assign.bind():function(e){for(var t=1;trS("svg",KV({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M15.975.049C8.195-.11.935 6.286.125 14.03c-.855 6.55 2.741 13.46 8.74 16.314 5.666 2.847 13.012 1.99 17.71-2.33 4.745-4.162 6.727-11.243 4.532-17.206C29.09 4.93 23.445.453 17.201.095c-.408-.03-.817-.046-1.226-.046zm-.181 1.724c7.134-.269 13.84 5.68 14.399 12.804.686 6.283-3.267 12.792-9.283 14.862-5.847 2.162-13.025.06-16.557-5.141C.728 19.22.872 11.725 4.985 6.962c2.632-3.171 6.671-5.174 10.809-5.19zm.283 1.553c-6.6-.21-12.671 5.585-12.79 12.185-.292 5.964 4.129 11.817 10.034 12.953 5.47 1.198 11.584-1.613 14.025-6.702 2.525-4.97 1.396-11.585-2.912-15.216-2.282-2.021-5.3-3.216-8.357-3.22zM16 5.021c5.818-.154 11.117 5.082 11.024 10.905.103 5.384-4.23 10.5-9.636 11.043-5.075.667-10.426-2.587-11.885-7.552-1.53-4.73.48-10.428 4.888-12.864A11.083 11.083 0 0116 5.021zm.006 3.521L9.206 20.745h13.598L16.005 8.542zm0 1.775l5.329 9.564H10.677l5.328-9.564z"}));function JV(){return JV=Object.assign?Object.assign.bind():function(e){for(var t=1;trS("svg",JV({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M15.97.04h-.127C8.713-.018 2.003 5.334.437 12.286c-1.51 6.123.98 13.005 6.136 16.665 5.125 3.788 12.546 4.105 17.912.623 5.272-3.276 8.33-9.766 7.325-15.916-.904-6.241-5.79-11.7-11.95-13.143A16.082 16.082 0 0015.97.04zm-.181 1.724c.115 0 .23 0 .347.003 6.625-.066 12.823 5.149 13.89 11.69 1.13 5.91-1.908 12.349-7.262 15.138-5.473 3.013-12.866 1.884-17.116-2.726C1.291 21.372.444 13.914 3.802 8.602c2.493-4.112 7.169-6.819 11.987-6.838zm.283 1.554c-.117 0-.234.002-.351.005-6.1 0-11.691 5.049-12.346 11.114-.78 5.684 2.795 11.612 8.218 13.52 5.139 1.943 11.416.101 14.624-4.38 3.461-4.583 3.262-11.538-.596-15.831-2.36-2.747-5.924-4.423-9.549-4.428zm-.078 1.695c.078 0 .156 0 .234.003 5.4 0 10.321 4.556 10.734 9.942.563 5.13-2.958 10.364-7.971 11.678-4.832 1.41-10.457-.935-12.746-5.446-2.463-4.559-1.2-10.795 3.014-13.883a11.072 11.072 0 016.735-2.294zm-.137 3.42c-2.965.02-5.792 1.968-6.884 4.722-1.137 2.693-.509 6.007 1.536 8.096 1.988 2.14 5.263 2.929 8.007 1.926 2.875-.98 4.987-3.824 5.063-6.865.154-2.954-1.622-5.875-4.295-7.13a7.545 7.545 0 00-3.427-.75zm.27 1.381c2.708.013 5.249 2.014 5.88 4.652.704 2.576-.481 5.512-2.788 6.862-2.356 1.478-5.677 1.084-7.611-.918-2.042-1.97-2.405-5.376-.839-7.738 1.11-1.762 3.146-2.877 5.229-2.857h.13zm1.831 1.764l-2.072 3.76c-.64.068-.792 1.039-.202 1.298.39.27.696-.18 1.051-.164h3.168v-.864h-3.18l1.992-3.612-.757-.418z"}));function tW(){return tW=Object.assign?Object.assign.bind():function(e){for(var t=1;trS("svg",tW({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M15.848.001C8.113-.093.931 6.281.125 13.983c-.855 6.55 2.741 13.46 8.74 16.314 5.666 2.847 13.012 1.99 17.71-2.33 4.745-4.162 6.727-11.243 4.532-17.207C29.105 4.938 23.55.48 17.367.06A16.448 16.448 0 0015.848 0v.001zm.293 1.727c7.113-.099 13.662 5.97 14.077 13.08.56 6.299-3.516 12.735-9.582 14.679-5.798 2.004-12.806-.12-16.283-5.237C.717 19.159.874 11.638 5.016 6.876 7.722 3.638 11.902 1.63 16.14 1.728zm-.415 1.555C9.157 3.258 3.256 9.156 3.278 15.729c-.16 5.965 4.365 11.725 10.293 12.737 5.409 1.065 11.37-1.744 13.775-6.753 2.534-4.986 1.386-11.627-2.953-15.251-2.364-2.077-5.512-3.27-8.667-3.18zm.507 1.692c5.82-.026 11.013 5.318 10.79 11.143-.024 5.3-4.313 10.267-9.636 10.803-5.075.667-10.426-2.588-11.885-7.553-1.535-4.744.494-10.46 4.925-12.885a11.072 11.072 0 015.806-1.508z"}));function iW(){return iW=Object.assign?Object.assign.bind():function(e){for(var t=1;trS("svg",LW({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M5.637 3A5.644 5.644 0 000 8.637v15.417a5.644 5.644 0 005.637 5.637h20.726A5.644 5.644 0 0032 24.054V8.637A5.644 5.644 0 0026.363 3H5.637zm0 1.778h20.726a3.83 3.83 0 013.859 3.859v15.417a3.83 3.83 0 01-3.859 3.858h-4.201V16.695H9.838v11.217H5.637a3.83 3.83 0 01-3.859-3.858V8.637a3.83 3.83 0 013.859-3.859zm5.33 13.046h10.066v10.065H10.967V17.824zm4.189 1.431V22.06H12.35v1.689h2.804V26.554h1.69V23.749h2.804V22.06h-2.804V19.255h-1.69z"}));function zW(){return zW=Object.assign?Object.assign.bind():function(e){for(var t=1;trS("svg",zW({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M5.636 3A5.642 5.642 0 000 8.636v15.418a5.643 5.643 0 005.636 5.636h20.728A5.643 5.643 0 0032 24.054V8.636A5.642 5.642 0 0026.364 3H5.636zm0 1.778h20.728a3.83 3.83 0 013.858 3.858v15.418a3.83 3.83 0 01-3.858 3.858h-4.203V16.723H9.84v11.189H5.636a3.83 3.83 0 01-3.858-3.858V8.636a3.83 3.83 0 013.858-3.858zm5.331 13.074h10.066v10.06H10.967v-10.06zm1.336 3.996v1.711h7.394v-1.71h-7.394z"}));function FW(){return FW=Object.assign?Object.assign.bind():function(e){for(var t=1;trS("svg",qH({width:"32",height:"32",xmlns:"http://www.w3.org/2000/svg"},t),rS("path",{stroke:"#000",strokeWidth:"2",fill:"none",strokeDasharray:"3.3,6",strokeLinecap:"square",d:"M1.5 30.5l29-29"})),BusinessRuleTask:({styles:e={},...t})=>rS("svg",HH({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M6.494 3C2.916 3 0 5.903 0 9.475v13.383c0 3.572 2.916 6.475 6.494 6.475h19.012c3.578 0 6.494-2.903 6.494-6.475V9.475C32 5.903 29.084 3 25.506 3H6.494zm0 2h19.012C28.015 5 30 6.98 30 9.475v13.383c0 2.495-1.985 4.475-4.494 4.475H6.494C3.985 27.333 2 25.353 2 22.858V9.475C2 6.98 3.985 5 6.494 5zM5.296 7.398v12.665h16.87V7.398H5.296zm.718 4.386h15.433v3.44H9.985v-3.432h-.719v3.431H6.014v-3.44zm0 4.158h3.252v3.403H6.014v-3.403zm3.97 0h11.463v3.403H9.985v-3.403z"}),rS("path",{d:"M6.079 8.209v3.587H21.44V8.209z"})),CallActivity:({styles:e={},...t})=>rS("svg",VH({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M24.978 3c3.761 0 6.89 2.979 7.018 6.695l.004.238V22.4c0 3.747-3.05 6.804-6.783 6.93l-.24.003H7.023c-3.761 0-6.89-2.978-7.018-6.695L0 22.4V9.933C0 6.187 3.05 3.13 6.783 3.004L7.023 3h17.955zm0 3.667H7.022c-1.842 0-3.255 1.344-3.35 3.079l-.005.187V22.4c0 1.761 1.35 3.167 3.16 3.262l.195.005L10 25.666V15h12v10.666h2.978c1.842 0 3.255-1.344 3.35-3.079l.005-.187V9.933c0-1.761-1.35-3.166-3.16-3.261l-.195-.005zm-3.732 9.087H10.754v9.912h10.491v-9.912zm-4.475 1.817v2.658h2.658v1.542H16.77v2.658H15.23V21.77H12.57V20.23h2.658V17.57h1.542z"})),Collaboration:({styles:e={},...t})=>rS("svg",WH({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("g",{fillRule:"evenodd"},rS("path",{fillRule:"nonzero",d:"M0 0v8.62h32V0H0zm1.655 7.054v-5.37h28.62v5.37H1.656zM0 23.38V32h32v-8.62H0zm1.655 7.054v-5.37h28.62v5.37H1.656z"}),rS("path",{d:"M24 8l4 7h-8l4-7zm0 2l-2.28 4h4.56L24 10zM23.5 21h1v3h-1zM23.5 15h1v3h-1zM8 24l-4-7h8l-4 7zm0-2l2.28-4H5.72L8 22zM7.5 8h1v3h-1zM7.5 14h1v3h-1z"}))),ConditionalFlow:({styles:e={},...t})=>rS("svg",GH({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M32 .041S20.42 5.95 14.537 8.713c1.26 1.15 2.432 2.392 3.648 3.588-5.703 5.78-3.15 3.303-8.087 8.316l-8.472 1.377L0 32l10.006-1.626.098-.598 1.279-7.873c4.975-5.052 2.403-2.555 8.118-8.346 1.218 1.214 2.43 2.435 3.648 3.648C26.29 11.018 32 .041 32 .041zM9.603 22.397L8.54 28.91 2.03 29.97l1.061-6.515 6.512-1.058z"})),SequenceFlow:({styles:e={},...t})=>rS("svg",QH({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M32 .06S20.33 6.014 14.403 8.798c1.27 1.16 2.451 2.41 3.676 3.616L0 30.734 1.325 32l18.08-18.32c1.227 1.223 2.448 2.453 3.676 3.676C26.247 11.12 32 .06 32 .06z"})),DataInput:({styles:e={},...t})=>rS("svg",YH({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M20.833 0H3.488v32H28V7.36L20.833 0zm-2.105 1.818v7.507h7.454v20.857H5.306V1.818h13.422zm1.818.493l5.06 5.196h-5.06V2.311zm-9.182.86v3.744H7.081v3.222h4.283v3.743l5.7-5.354-5.7-5.354zm.808 1.868l3.711 3.487-3.71 3.487V9.329H7.888V7.723h4.283V5.039z"})),DataInputAssociation:UH,DataOutput:({styles:e={},...t})=>rS("svg",ZH({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M20.833 0H3.488v32H28V7.36L20.833 0zm-2.105 1.818v7.507h7.454v20.857H5.306V1.818h13.422zm1.818.493l5.06 5.196h-5.06V2.311zm-9.182.86v3.744H7.081v3.222h4.283v3.743l5.7-5.354-5.7-5.354z"})),DataOutputAssociation:UH,DataObjectReference:({styles:e={},...t})=>rS("svg",KH({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M21.345 0H4v32h24.512V7.36L21.345 0zM19.24 1.818v7.507h7.454v20.857H5.818V1.818H19.24zm1.818.493l5.06 5.196h-5.06V2.311z"})),DataStoreReference:({styles:e={},...t})=>rS("svg",JH({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M16.008 1c-3.712 0-7.417.306-10.319.939-1.45.316-2.7.71-3.68 1.226C1.065 3.662.297 4.304.061 5.23a.823.823 0 00-.035.15L0 5.502l.017.084c-.012 7.41 0 14.46 0 22.08l.017.082c.203.985.995 1.656 1.975 2.172.98.517 2.23.91 3.68 1.226 2.902.633 6.607.94 10.319.94 3.711 0 7.416-.307 10.318-.94 1.451-.316 2.701-.71 3.68-1.226.98-.516 1.772-1.187 1.975-2.172l.017-.082V5.541a.825.825 0 000-.106v-.016l-.002-.013a.823.823 0 00-.046-.197c-.244-.916-1.007-1.55-1.943-2.044-.98-.516-2.23-.91-3.68-1.226C23.423 1.306 19.718 1 16.006 1zm0 1.646c3.62 0 7.245.308 9.968.901 1.36.297 2.497.67 3.263 1.074.612.323.932.643 1.063.882-.131.24-.451.56-1.063.882-.766.404-1.902.777-3.263 1.074-2.723.594-6.349.901-9.968.901-3.62 0-7.245-.307-9.968-.901-1.361-.297-2.497-.67-3.264-1.074-.611-.322-.931-.642-1.062-.882.13-.24.451-.56 1.062-.882.767-.403 1.903-.777 3.264-1.074 2.723-.593 6.348-.9 9.968-.9zM1.664 7.647c.112.067.227.132.345.194.98.517 2.23.91 3.68 1.226 2.902.633 6.607.94 10.319.94 3.711 0 7.416-.307 10.318-.94 1.451-.316 2.701-.71 3.68-1.226.119-.062.234-.127.346-.194v1.93c-.08.245-.398.619-1.113.995-.766.404-1.902.777-3.263 1.074-2.723.594-6.349.901-9.968.901-3.62 0-7.245-.307-9.968-.9-1.361-.298-2.497-.671-3.264-1.075-.714-.376-1.032-.75-1.112-.995v-1.93zm0 4.187c.112.067.227.132.345.195.98.516 2.23.91 3.68 1.226 2.902.632 6.607.938 10.319.938 3.711 0 7.416-.306 10.318-.938 1.451-.317 2.701-.71 3.68-1.226.119-.063.234-.128.346-.195v1.93c-.08.245-.398.619-1.113.995-.766.404-1.902.777-3.263 1.074-2.723.594-6.349.901-9.968.901-3.62 0-7.245-.307-9.968-.9-1.361-.298-2.497-.67-3.264-1.075-.714-.376-1.032-.75-1.112-.995v-1.93zm0 4.188c.112.067.227.131.345.194.98.516 2.23.91 3.68 1.226 2.902.633 6.607.939 10.319.939 3.711 0 7.416-.306 10.318-.94 1.451-.316 2.701-.709 3.68-1.225.119-.063.234-.127.346-.194V27.47c-.08.245-.398.618-1.113.995-.766.404-1.902.777-3.263 1.074-2.723.594-6.349.9-9.968.9-3.62 0-7.245-.306-9.968-.9-1.361-.297-2.497-.67-3.264-1.074-.714-.377-1.032-.75-1.112-.995V16.022z"})),DefaultFlow:({styles:e={},...t})=>rS("svg",eV({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M32 .06S20.33 6.014 14.403 8.798c1.27 1.16 2.451 2.41 3.676 3.616L6.84 23.804H.046v1.755h5.063L0 30.735 1.325 32l6.357-6.441h7.145v-1.756H9.414l9.99-10.123c1.228 1.223 2.45 2.453 3.677 3.676C26.247 11.12 32 .06 32 .06z"})),CancelEndEvent:({styles:e={},...t})=>rS("svg",tV({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M15.676.051C7.943.058.834 6.501.104 14.21c-.783 6.565 2.912 13.427 8.942 16.216 5.6 2.737 12.789 1.87 17.434-2.344 4.725-4.09 6.79-11.06 4.714-17.006C29.22 5.009 23.394.364 16.978.083A18.532 18.532 0 0015.676.05zm.317 5.006c5.695-.165 10.916 4.858 10.983 10.555.246 5.212-3.67 10.33-8.864 11.204-5.026 1.007-10.6-1.898-12.36-6.777-1.894-4.826.039-10.928 4.649-13.46a11.082 11.082 0 015.592-1.522zm-3.955 3.918L8.94 12.072l3.985 3.985-3.913 3.913 3.048 3.047 3.913-3.913 3.987 3.987 3.096-3.096-3.987-3.987 3.913-3.913-3.047-3.048-3.913 3.913-3.985-3.985z"})),CompensateEndEvent:({styles:e={},...t})=>rS("svg",nV({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M15.676.051C7.943.058.834 6.501.104 14.21c-.783 6.565 2.912 13.427 8.942 16.216 5.6 2.737 12.789 1.87 17.434-2.344 4.725-4.09 6.79-11.06 4.714-17.006C29.22 5.009 23.394.364 16.978.083A18.532 18.532 0 0015.676.05zm.317 5.006c5.695-.165 10.916 4.858 10.983 10.555.246 5.212-3.67 10.33-8.864 11.204-5.026 1.007-10.6-1.898-12.36-6.777-1.894-4.826.039-10.928 4.649-13.46a11.082 11.082 0 015.592-1.522zm-.56 5.744l-7.407 5.23 7.408 5.234v-5.057c2.384 1.687 4.771 3.371 7.157 5.057V10.801l-7.157 5.054v-5.054z"})),ErrorEndEvent:({styles:e={},...t})=>rS("svg",iV({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M15.676.051C7.943.058.834 6.501.104 14.21c-.783 6.565 2.912 13.427 8.942 16.216 5.6 2.737 12.789 1.87 17.434-2.344 4.725-4.09 6.79-11.06 4.714-17.006C29.22 5.009 23.394.364 16.978.083A18.532 18.532 0 0015.676.05zm.317 5.006c5.695-.165 10.916 4.858 10.983 10.555.246 5.212-3.67 10.33-8.864 11.204-5.026 1.007-10.6-1.898-12.36-6.777-1.894-4.826.039-10.928 4.649-13.46a11.082 11.082 0 015.592-1.522zm6.132 4.166l-3.633 7.363-4.516-5.874-4.102 12.131 4.599-5.91 4.743 5.427 2.909-13.137z"})),EscalationEndEvent:({styles:e={},...t})=>rS("svg",oV({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M15.676.051C7.943.058.834 6.501.104 14.21c-.783 6.565 2.912 13.427 8.942 16.216 5.6 2.737 12.789 1.87 17.434-2.344 4.725-4.09 6.79-11.06 4.714-17.006C29.22 5.009 23.394.364 16.978.083A18.532 18.532 0 0015.676.05zm.317 5.006c5.695-.165 10.916 4.858 10.983 10.555.246 5.212-3.67 10.33-8.864 11.204-5.026 1.007-10.6-1.898-12.36-6.777-1.894-4.826.039-10.928 4.649-13.46a11.082 11.082 0 015.592-1.522zm.006 3.9c-1.672 4.653-2.733 9.5-4.406 14.153 1.535-1.525 2.872-3.234 4.406-4.759l4.406 4.76c-1.497-4.71-2.91-9.445-4.406-14.155z"})),LinkEndEvent:({styles:e={},...t})=>rS("svg",rV({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M15.676 0C7.943.007.834 6.45.104 14.16c-.783 6.565 2.912 13.427 8.942 16.216 5.6 2.737 12.789 1.87 17.434-2.344 4.725-4.09 6.79-11.06 4.714-17.006C29.22 4.958 23.394.313 16.978.032A18.532 18.532 0 0015.676 0zm.317 5.006c5.695-.165 10.916 4.858 10.983 10.555.246 5.212-3.67 10.33-8.864 11.204-5.026 1.007-10.6-1.898-12.36-6.777-1.894-4.826.039-10.928 4.649-13.46a11.082 11.082 0 015.592-1.522zm1.78 4.065v3.555H9.779v6.713h7.994v3.554l5.828-6.91-5.828-6.912z"})),MessageEndEvent:({styles:e={},...t})=>rS("svg",sV({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M15.676 0C7.943.007.834 6.45.104 14.16c-.783 6.565 2.912 13.427 8.942 16.216 5.6 2.737 12.789 1.87 17.434-2.344 4.725-4.09 6.79-11.06 4.714-17.006C29.22 4.958 23.394.313 16.978.032A18.532 18.532 0 0015.676 0zm.317 5.006c5.695-.165 10.916 4.858 10.983 10.555.246 5.212-3.67 10.33-8.864 11.204-5.026 1.007-10.6-1.898-12.36-6.777-1.894-4.826.039-10.928 4.649-13.46a11.082 11.082 0 015.592-1.522zm-5.91 5.448l6.041 4.9 6.04-4.9H10.084zm-1.34 1.137v9.92h14.513v-9.718l-7.132 5.786-7.381-5.988z"})),MultipleEndEvent:({styles:e={},...t})=>rS("svg",aV({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M15.676 0C7.943.007.834 6.45.104 14.16c-.783 6.565 2.912 13.427 8.942 16.216 5.6 2.737 12.789 1.87 17.434-2.344 4.725-4.09 6.79-11.06 4.714-17.006C29.22 4.958 23.394.313 16.978.032A18.529 18.529 0 0015.676 0zm.317 5.006c5.695-.165 10.916 4.858 10.983 10.555.246 5.212-3.67 10.33-8.864 11.204-5.026 1.007-10.6-1.898-12.36-6.777-1.894-4.826.039-10.928 4.649-13.46a11.082 11.082 0 015.592-1.522zm.011 3.039l-7.619 5.53 2.91 8.95h9.418l2.91-8.95-7.619-5.53z"})),EndEvent:({styles:e={},...t})=>rS("svg",lV({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M15.84.042C8.654-.01 1.913 5.437.4 12.454-1.057 18.62 1.554 25.495 6.784 29.09c5.076 3.636 12.31 3.92 17.59.544 5.309-3.251 8.435-9.744 7.445-15.921C30.91 7.307 25.795 1.738 19.442.422a16.064 16.064 0 00-3.602-.38zm.382 5.01c5.28-.017 10.13 4.353 10.669 9.61.687 5.025-2.552 10.281-7.423 11.792-4.754 1.617-10.486-.447-12.962-4.856-2.74-4.575-1.574-11.094 2.768-14.27a11.05 11.05 0 016.948-2.276z"})),SignalEndEvent:({styles:e={},...t})=>rS("svg",cV({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M15.676.051C7.943.058.834 6.501.104 14.21c-.783 6.565 2.912 13.427 8.942 16.216 5.6 2.737 12.789 1.87 17.434-2.344 4.725-4.09 6.79-11.06 4.714-17.006C29.22 5.009 23.394.364 16.978.083A18.532 18.532 0 0015.676.05zm.317 5.006c5.695-.165 10.916 4.858 10.983 10.555.246 5.212-3.67 10.33-8.864 11.204-5.026 1.007-10.6-1.898-12.36-6.777-1.894-4.826.039-10.928 4.649-13.46a11.082 11.082 0 015.592-1.522zm.006 3.492c-2.261 4.07-4.532 8.136-6.797 12.204h13.595L15.999 8.55z"})),TerminateEndEvent:({styles:e={},...t})=>rS("svg",hV({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M15.676.051C7.943.058.834 6.501.104 14.21c-.783 6.565 2.912 13.427 8.942 16.216 5.6 2.737 12.789 1.87 17.434-2.344 4.725-4.09 6.79-11.06 4.714-17.006C29.22 5.009 23.394.364 16.978.083A18.532 18.532 0 0015.676.05zm.317 5.006c5.695-.165 10.916 4.858 10.983 10.555.246 5.212-3.67 10.33-8.864 11.204-5.026 1.007-10.6-1.898-12.36-6.777-1.894-4.826.039-10.928 4.649-13.46a11.082 11.082 0 015.592-1.522zm.006 2.859c-5.264-.2-9.495 5.551-7.755 10.516 1.366 5.085 8.108 7.436 12.339 4.301 4.455-2.807 4.708-9.943.462-13.058A8.128 8.128 0 0016 7.915z"})),EventSubProcess:({styles:e={},...t})=>rS("svg",uV({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M7.295 4.78h1.779V3.003h-1.78V4.78zm3.558 0h1.779V3.003h-1.78V4.78zm3.557 0h1.78V3.003h-1.78V4.78zm3.558 0h1.78V3.003h-1.78V4.78zm3.558 0h1.779V3.003h-1.779V4.78zm3.558 0c.55.014 1.106-.034 1.654.045l.245-1.762c-.629-.096-1.266-.05-1.9-.061V4.78zM5.732 3.004a5.933 5.933 0 00-.915.093c.111.582.226 1.164.315 1.75.358-.101.947.098.746-.483-.096-.382.164-1.208-.146-1.36zm22.372 2.281c.427.234.812.547 1.13.915.42-.4 1.002-.777 1.33-1.18a5.863 5.863 0 00-1.593-1.289l-.867 1.554zm-25.27-1.44c-.587.354-1.11.811-1.539 1.345.47.333.96.86 1.417 1.077.299-.362.66-.673 1.065-.913-.328-.493-.55-1.055-.944-1.509zM30.515 7.26c-.563.046-.557.342-.378.784.154.25-.097.862.25.85.525-.023 1.14.043 1.612-.032a5.891 5.891 0 00-.362-2.027l-1.122.425zM.268 7.114A6.042 6.042 0 000 9.052h1.78c-.013-.5.047-1.003.208-1.478L.296 7.027l-.026.079-.002.008zM30.22 12.45H32v-1.779h-1.779v1.779zm-30.22.16h1.78v-1.779H0v1.78zm30.22 3.398H32v-1.78h-1.779v1.78zm-30.22.16h1.78v-1.779H0v1.779zm30.22 3.398H32v-1.78h-1.779v1.78zm-30.22.16h1.78v-1.78H0v1.78zm30.22 3.397H32v-1.779h-1.779v1.78zm-30.22.16h1.78v-1.778H0v1.778zm30.137 1.47a4.059 4.059 0 01-.522 1.32c.506.283 1.046.715 1.53.908a5.836 5.836 0 00.744-1.918c-.576-.094-1.209-.264-1.752-.31zm-29.984.51c.157.676.435 1.325.82 1.904l1.486-.977a4.065 4.065 0 01-.577-1.347l-1.73.42zm28.427 1.943c-.371.277-.79.49-1.234.627l.548 1.693a5.84 5.84 0 001.835-.96l-1.082-1.412-.066.05-.001.002zm-26.164 1.47c.567.413 1.21.722 1.886.907.14-.569.343-1.175.444-1.722a4.062 4.062 0 01-1.283-.624l-1.047 1.438zm3.88 1.119h1.779v-1.78h-1.78v1.78zm3.55 0h1.787v-1.78H9.846v1.78zm3.565 0h1.78v-1.78h-1.78v1.78zm3.558 0h1.78v-1.78h-1.78v1.78zm3.451 0h1.743v-1.78h-1.743v1.78zm3.665 0h1.779v-1.78h-1.78v1.78zm-1.922-.545V16.776H9.846V29.25h12.318zM10.967 17.905h10.068V27.97H10.967V17.905zm1.336 3.998v1.711h7.396v-1.711h-7.396z",opacity:".97"})),ComplexGateway:({styles:e={},...t})=>rS("svg",pV({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M16.001 0a1.29 1.29 0 00-.917.373L.373 15.084a1.316 1.316 0 00.002 1.834l14.71 14.709a1.313 1.313 0 001.833 0l14.711-14.711a1.316 1.316 0 00-.002-1.834L16.917.372A1.294 1.294 0 0016.002 0zM16 2.181l13.821 13.821L16 29.823 2.179 16.003 16 2.18zm-.327 6.79v.007l-.145.027-.118.08-.083.123-.028.145v4.954L11.793 10.8l-.125-.08-.14-.029-.144.027-.122.082-.46.46-.085.125-.026.142.028.14.08.125 3.505 3.505H9.347l-.001-.002-.145.032-.118.08-.083.122-.028.146v.652l.029.147.082.119.12.08.144.032h4.956L10.8 20.207v-.001l-.084.124-.026.142.028.14.08.124.46.461.126.082.14.029.143-.027.124-.084L15.3 17.69v4.964-.001l.028.147.082.12.12.08.144.031h.652l.148-.03.118-.08.083-.12.028-.146v-4.962l3.505 3.505.126.082.14.027.142-.027.124-.084.461-.46.083-.123s.028-.144.027-.146l-.028-.14-.082-.126-3.496-3.496h4.948l.148-.03.119-.08.082-.12.028-.147v-.652l-.028-.145-.083-.122-.119-.08s-.147-.033-.147-.031h-4.964l3.512-3.512.082-.122.029-.144-.028-.14-.084-.124-.46-.461-.123-.082-.14-.027-.145.027-.122.082-3.507 3.507V9.348l-.028-.146-.082-.122-.12-.08-.147-.029h-.652z"})),EventBasedGateway:({styles:e={},...t})=>rS("svg",dV({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M16 0a1.29 1.29 0 00-.918.373L.371 15.084a1.316 1.316 0 00.002 1.834l14.71 14.709a1.313 1.313 0 001.833 0l14.711-14.711a1.316 1.316 0 00-.002-1.834L16.915.372A1.294 1.294 0 0016 0zm-.002 2.181l13.821 13.821-13.821 13.821-13.821-13.82L15.998 2.18zm0 5.876l-.254.185-7.377 5.355 2.915 8.964h9.433l2.915-8.964-7.631-5.54zm0 1.07l6.614 4.8-2.526 7.769h-8.175l-2.526-7.768 6.614-4.802z"})),ExclusiveGateway:({styles:e={},...t})=>rS("svg",vV({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M16 0a1.29 1.29 0 00-.918.373L.371 15.084a1.316 1.316 0 00.002 1.834l14.71 14.709a1.313 1.313 0 001.833 0l14.711-14.711a1.316 1.316 0 00-.002-1.834L16.915.372A1.294 1.294 0 0016 0zm-.002 2.181l13.821 13.821-13.821 13.821-13.821-13.82L15.998 2.18zm-5.162 7.69l-.166.032-.141.096-.532.532s-.097.142-.097.144l-.03.164.032.162.093.144 4.857 4.858-4.855 4.855v-.001L9.9 21l-.03.164.032.162s.093.142.093.144l.531.532.146.095.162.032.164-.03.144-.097 4.855-4.856 4.857 4.857.145.095.162.032.164-.03.144-.097.531-.532.095-.14.033-.168-.033-.162-.095-.146L17.144 16 22 11.144l.095-.14.033-.166-.033-.163-.097-.144-.532-.532-.14-.095-.163-.032-.166.032-.141.095L16 14.855l-4.858-4.858v-.002l-.144-.092-.162-.032z"})),Gateway:({styles:e={},...t})=>rS("svg",fV({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M.373 15.084a1.316 1.316 0 00.002 1.834l14.71 14.709a1.313 1.313 0 001.833 0l14.711-14.711a1.316 1.316 0 00-.002-1.834L16.917.373a1.313 1.313 0 00-1.833 0L.373 15.084zm1.806.918L16 2.182l13.821 13.82L16 29.823 2.179 16.003z"})),InclusiveGateway:({styles:e={},...t})=>rS("svg",mV({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M16.001 0a1.29 1.29 0 00-.917.373L.373 15.084a1.316 1.316 0 00.002 1.834l14.71 14.709a1.313 1.313 0 001.833 0l14.711-14.711a1.316 1.316 0 00-.002-1.834L16.917.372A1.294 1.294 0 0016.002 0zM16 2.181l13.821 13.821L16 29.823 2.179 16.003 16 2.18zm0 6.379a7.447 7.447 0 00-7.44 7.441A7.447 7.447 0 0016 23.443 7.447 7.447 0 0023.443 16a7.447 7.447 0 00-7.441-7.441zm0 .825a6.61 6.61 0 016.617 6.616A6.61 6.61 0 0116 22.618 6.61 6.61 0 019.385 16 6.61 6.61 0 0116 9.385z"})),ParallelGateway:({styles:e={},...t})=>rS("svg",gV({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M16.001 0a1.29 1.29 0 00-.917.373L.373 15.084a1.316 1.316 0 00.002 1.834l14.71 14.709a1.313 1.313 0 001.833 0l14.711-14.711a1.316 1.316 0 00-.002-1.834L16.917.372A1.294 1.294 0 0016.002 0zM16 2.181l13.821 13.821L16 29.823 2.179 16.003 16 2.18zm-.377 5.708l-.168.032-.136.092-.096.14-.032.168v6.868h-6.87l-.002-.002-.166.037-.137.092v-.002l-.095.141-.033.167v.753s.032.169.034.17l.094.138.138.092.167.036h6.87v6.867l-.001-.001.033.17.095.138.138.092s.166.035.167.037h.752l.17-.036.137-.092.095-.137.033-.17v-6.867h6.868l.17-.035.137-.092.095-.137.033-.17v-.753s-.033-.165-.032-.167l-.096-.14-.138-.093s-.17-.037-.17-.035H16.81V8.323l-.033-.168-.094-.14-.138-.092-.17-.034h-.752z"})),Group:({styles:e={},...t})=>rS("svg",yV({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M6.34.016c-2.333.025-4.684 1.77-5.29 4.17C.608 5.848.88 7.608.804 9.314v2.922h2.041c.038-2.332-.076-4.673.062-7C3.14 3.355 4.869 1.938 6.643 2.04h8.956V.009c-3.086 0-6.173-.02-9.258 0v.007zm13.094 2.023h1.92V.009h-1.92v2.03zm5.756 0c1.265-.069 2.66.045 3.602 1.055 1.036.983 1.201 2.523 1.122 3.91v6.313h2.078c-.03-2.677.062-5.36-.047-8.032-.17-2.743-2.62-5.111-5.215-5.236-.511-.064-1.027-.02-1.54-.033v2.023zM.803 18.319h2.041v-2.026H.804v2.026zm29.11 1.084h2.08v-2.03h-2.08v2.03zM.804 26.148c.004 2.218 1.393 4.366 3.313 5.28 1.728.853 3.681.448 5.521.544.43-.112 1.29.231 1.435-.183v-1.847c-1.788-.043-3.584.094-5.365-.082-1.67-.354-2.919-2.048-2.863-3.844v-3.644H.804v3.777zm29.11-.068c.04 1.961-1.508 3.787-3.381 3.842-1.954.06-3.914.02-5.87.026v2.03c2.118-.042 4.242.08 6.355-.063 2.524-.264 4.818-2.644 4.94-5.323.08-1.039.014-2.085.035-3.126h-2.078v2.613zm-15.006 5.898h1.92v-2.03h-1.92v2.03z"})),CancelIntermediateCatchEvent:wV,CompensateIntermediateCatchEvent:_V,ConditionalIntermediateCatchEvent:kV,ErrorIntermediateCatchEvent:CV,EscalationIntermediateCatchEvent:PV,LinkIntermediateCatchEvent:AV,MessageIntermediateCatchEvent:BV,MultipleIntermediateCatchEvent:DV,ConditionalIntermediateCatchEventNonInterrupting:NV,EscalationIntermediateCatchEventNonInterrupting:IV,MessageIntermediateCatchEventNonInterrupting:$V,MultipleIntermediateCatchEventNonInterrupting:qV,ParallelIntermediateCatchEventNonInterrupting:VV,SignalIntermediateCatchEventNonInterrupting:GV,TimerIntermediateCatchEventNonInterrupting:XV,ParallelMultipleIntermediateCatchEvent:YV,SignalIntermediateCatchEvent:ZV,TimerIntermediateCatchEvent:eW,IntermediateThrowEvent:nW,CompensateIntermediateThrowEvent:({styles:e={},...t})=>rS("svg",iW({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M15.975.003C8.195-.156.935 6.24.125 13.985c-.855 6.55 2.741 13.46 8.74 16.314 5.666 2.847 13.012 1.99 17.71-2.33 4.745-4.162 6.727-11.243 4.532-17.206C29.09 4.884 23.445.407 17.201.049c-.408-.03-.817-.046-1.226-.046zm-.181 1.724c7.134-.269 13.84 5.68 14.399 12.804.686 6.283-3.267 12.792-9.283 14.862-5.847 2.162-13.025.06-16.557-5.141C.728 19.174.872 11.679 4.985 6.916c2.632-3.171 6.671-5.174 10.809-5.19zm.283 1.553c-6.6-.21-12.671 5.585-12.79 12.185-.292 5.964 4.129 11.817 10.034 12.953 5.47 1.198 11.584-1.613 14.025-6.702 2.525-4.97 1.396-11.585-2.912-15.216-2.282-2.021-5.3-3.216-8.357-3.22zM16 4.975c5.818-.154 11.117 5.082 11.024 10.905.103 5.384-4.23 10.5-9.636 11.043-5.075.667-10.426-2.587-11.885-7.552-1.53-4.73.48-10.428 4.888-12.864A11.083 11.083 0 0116 4.975zm-.56 5.772l-7.408 5.231 7.409 5.234v-5.057c2.385 1.687 4.771 3.371 7.157 5.057V10.747l-7.157 5.055v-5.055z"})),EscalationIntermediateThrowEvent:({styles:e={},...t})=>rS("svg",oW({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M15.975.049C8.195-.11.935 6.286.125 14.03c-.855 6.55 2.741 13.46 8.74 16.314 5.666 2.847 13.012 1.99 17.71-2.33 4.745-4.162 6.727-11.243 4.532-17.206C29.09 4.93 23.445.453 17.201.095c-.408-.03-.817-.046-1.226-.046zm-.181 1.724c7.134-.269 13.84 5.68 14.399 12.804.686 6.283-3.267 12.792-9.283 14.862-5.847 2.162-13.025.06-16.557-5.141C.728 19.22.872 11.725 4.985 6.962c2.632-3.171 6.671-5.174 10.809-5.19zm.283 1.553c-6.6-.21-12.671 5.585-12.79 12.185-.292 5.964 4.129 11.817 10.034 12.953 5.47 1.198 11.584-1.613 14.025-6.702 2.525-4.97 1.396-11.585-2.912-15.216-2.282-2.021-5.3-3.216-8.357-3.22zM16 5.021c5.818-.154 11.117 5.082 11.024 10.905.103 5.384-4.23 10.5-9.636 11.043-5.075.667-10.426-2.587-11.885-7.552-1.53-4.73.48-10.428 4.888-12.864A11.083 11.083 0 0116 5.021zm.006 3.927c-1.672 4.654-2.734 9.502-4.406 14.155 1.534-1.525 2.872-3.234 4.406-4.759l4.406 4.76c-1.496-4.71-2.91-9.446-4.406-14.156z"})),LinkIntermediateThrowEvent:({styles:e={},...t})=>rS("svg",rW({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M15.975.049C8.195-.11.935 6.286.125 14.03c-.855 6.55 2.741 13.46 8.74 16.314 5.666 2.847 13.012 1.99 17.71-2.33 4.745-4.162 6.727-11.243 4.532-17.206C29.09 4.93 23.445.453 17.201.095c-.408-.03-.817-.046-1.226-.046zm-.181 1.724c7.134-.269 13.84 5.68 14.399 12.804.686 6.283-3.267 12.792-9.283 14.862-5.847 2.162-13.025.06-16.557-5.141C.728 19.22.872 11.725 4.985 6.962c2.632-3.171 6.671-5.174 10.809-5.19zm.283 1.553c-6.6-.21-12.671 5.585-12.79 12.185-.292 5.964 4.129 11.817 10.034 12.953 5.47 1.198 11.584-1.613 14.025-6.702 2.525-4.97 1.396-11.585-2.912-15.216-2.282-2.021-5.3-3.216-8.357-3.22zM16 5.021c5.818-.154 11.117 5.082 11.024 10.905.103 5.384-4.23 10.5-9.636 11.043-5.075.667-10.426-2.587-11.885-7.552-1.53-4.73.48-10.428 4.888-12.864A11.083 11.083 0 0116 5.021zm1.78 4.093v3.555H9.785v6.714h7.994v3.554l5.829-6.911-5.83-6.912z"})),MessageIntermediateThrowEvent:({styles:e={},...t})=>rS("svg",sW({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M15.975.003C8.195-.156.935 6.24.125 13.985c-.855 6.55 2.741 13.46 8.74 16.314 5.666 2.847 13.012 1.99 17.71-2.33 4.745-4.162 6.727-11.243 4.532-17.206C29.09 4.884 23.445.407 17.201.049c-.408-.03-.817-.046-1.226-.046zm-.181 1.724c7.134-.269 13.84 5.68 14.399 12.804.686 6.283-3.267 12.792-9.283 14.862-5.847 2.162-13.025.06-16.557-5.141C.728 19.174.872 11.679 4.985 6.916c2.632-3.171 6.671-5.174 10.809-5.19zm.283 1.553c-6.6-.21-12.671 5.585-12.79 12.185-.292 5.964 4.129 11.817 10.034 12.953 5.47 1.198 11.584-1.613 14.025-6.702 2.525-4.97 1.396-11.585-2.912-15.216-2.282-2.021-5.3-3.216-8.357-3.22zM16 4.975c5.818-.154 11.117 5.082 11.024 10.905.103 5.384-4.23 10.5-9.636 11.043-5.075.667-10.426-2.587-11.885-7.552-1.53-4.73.48-10.428 4.888-12.864A11.083 11.083 0 0116 4.975zm-5.91 5.475l6.04 4.901 6.042-4.9H10.088zm-1.341 1.138v9.921h14.514V11.79l-7.132 5.787-7.382-5.99z"})),MultipleIntermediateThrowEvent:({styles:e={},...t})=>rS("svg",aW({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M15.975.003C8.195-.156.935 6.24.125 13.985c-.855 6.55 2.741 13.46 8.74 16.314 5.666 2.847 13.012 1.99 17.71-2.33 4.745-4.162 6.727-11.243 4.532-17.206C29.09 4.884 23.445.407 17.201.049c-.408-.03-.817-.046-1.226-.046zm-.181 1.724c7.134-.269 13.84 5.68 14.399 12.804.686 6.283-3.267 12.792-9.283 14.862-5.847 2.162-13.025.06-16.557-5.141C.728 19.174.872 11.679 4.985 6.916c2.632-3.171 6.671-5.174 10.809-5.19zm.283 1.553c-6.6-.21-12.671 5.585-12.79 12.185-.292 5.964 4.129 11.817 10.034 12.953 5.47 1.198 11.584-1.613 14.025-6.702 2.525-4.97 1.396-11.585-2.912-15.216-2.282-2.021-5.3-3.216-8.357-3.22zM16 4.975c5.818-.154 11.117 5.082 11.024 10.905.103 5.384-4.23 10.5-9.636 11.043-5.075.667-10.426-2.587-11.885-7.552-1.53-4.73.48-10.428 4.888-12.864A11.083 11.083 0 0116 4.975zm.006 3.073l-7.62 5.532 2.91 8.95h9.42l2.91-8.95-7.62-5.532z"})),SignalIntermediateThrowEvent:({styles:e={},...t})=>rS("svg",lW({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M15.975.003C8.195-.156.935 6.24.125 13.985c-.855 6.55 2.741 13.46 8.74 16.314 5.666 2.847 13.012 1.99 17.71-2.33 4.745-4.162 6.727-11.243 4.532-17.206C29.09 4.884 23.445.407 17.201.049c-.408-.03-.817-.046-1.226-.046zm-.181 1.724c7.134-.269 13.84 5.68 14.399 12.804.686 6.283-3.267 12.792-9.283 14.862-5.847 2.162-13.025.06-16.557-5.141C.728 19.174.872 11.679 4.985 6.916c2.632-3.171 6.671-5.174 10.809-5.19zm.283 1.553c-6.6-.21-12.671 5.585-12.79 12.185-.292 5.964 4.129 11.817 10.034 12.953 5.47 1.198 11.584-1.613 14.025-6.702 2.525-4.97 1.396-11.585-2.912-15.216-2.282-2.021-5.3-3.216-8.357-3.22zM16 4.975c5.818-.154 11.117 5.082 11.024 10.905.103 5.384-4.23 10.5-9.636 11.043-5.075.667-10.426-2.587-11.885-7.552-1.53-4.73.48-10.428 4.888-12.864A11.083 11.083 0 0116 4.975zm.006 3.52c-2.261 4.07-4.533 8.136-6.798 12.205h13.596L16.005 8.495z"})),Lane:({styles:e={},...t})=>rS("svg",cW({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M0 7v18.62h32V7H0zm1.655 17.056V8.684h28.62v15.372H1.656z"})),ManualTask:({styles:e={},...t})=>rS("svg",hW({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M6.494 3C2.916 3 0 5.903 0 9.475v13.383c0 3.572 2.916 6.475 6.494 6.475h19.012c3.578 0 6.494-2.903 6.494-6.475V9.475C32 5.903 29.084 3 25.506 3H6.494zm0 2h19.012C28.015 5 30 6.98 30 9.475v13.383c0 2.495-1.985 4.475-4.494 4.475H6.494C3.985 27.333 2 25.353 2 22.858V9.475C2 6.98 3.985 5 6.494 5zm4.43 1.328c-.222.005-.43.09-.606.203-.985.638-4.356 2.977-5.096 3.486-.67.46-1.12 1.153-1.38 1.974-.27.858-.235 1.793-.232 2.576.002.59.016 1.104.17 1.727.22.908.634 1.63 1.23 2.118.597.49 1.363.732 2.23.734 3.038.012 6.078.016 9.119 0 .327-.002.645-.127.848-.37.204-.241.287-.56.291-.914a1.732 1.732 0 00-.097-.625h.327c.335 0 .641-.11.852-.316.21-.206.317-.475.374-.754a1.783 1.783 0 00-.126-1.143 1.18 1.18 0 00.877-.521c.196-.306.257-.666.258-1.025.001-.375-.088-.738-.293-1.033a1.179 1.179 0 00-.958-.512h-.478c.108-.237.156-.505.155-.782-.003-.373-.098-.721-.316-.99a1.21 1.21 0 00-.943-.43c-2.273-.004-4.236.018-6.412.012l-.19-.001c.102-.104.202-.205.312-.314.337-.336.662-.652.83-.869.4-.516.46-1.215.123-1.729-.178-.272-.439-.456-.72-.494a.93.93 0 00-.148-.008zm.029.728l.022.001c.055.008.115.027.209.172.132.201.126.606-.09.884-.079.102-.431.465-.767.8-.337.334-.657.643-.815.836-.153.186-.096.338-.056.435.04.096.085.212.298.263.063.014.066.01.086.012l.066.003c2.429.027 4.986-.004 7.223-.003.194 0 .293.056.379.162.086.105.151.286.153.533 0 .257-.065.467-.155.59-.09.124-.183.182-.37.183-1.706-.001-3.411-.005-5.117-.009v.731c2.23.004 4.461.01 6.692.012.17 0 .265.06.361.2.096.138.164.364.163.615 0 .268-.058.501-.143.634-.085.132-.162.193-.385.195-2.32-.001-4.554-.006-6.688-.003v.73c1.905 0 3.809.003 5.713.001.194.005.316.09.416.26.102.173.151.442.093.728-.04.193-.102.313-.17.38-.067.065-.148.108-.343.108h-5.71l.002.734c1.445 0 2.89-.01 4.334-.001.162 0 .232.041.297.123.064.081.123.238.12.488-.003.244-.061.385-.12.455-.06.07-.127.11-.296.11-3.037.016-6.076.012-9.113 0-.735-.002-1.316-.196-1.77-.568-.454-.372-.793-.935-.986-1.728-.134-.546-.146-.978-.148-1.558-.003-.796-.018-1.664.199-2.354.222-.705.582-1.24 1.096-1.593.75-.515 4.14-2.866 5.079-3.474a.504.504 0 01.241-.087z"})),MessageFlow:({styles:e={},...t})=>rS("svg",uW({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M4.073 26.607l1.295 1.296L1.325 32l-.662-.633L0 30.735l4.073-4.128zm6.953-7.046l1.296 1.296L1.325 32l7.555-7.656-1.295-1.296 1.455-1.474 1.986-2.013zM32 .06s-2.699 5.189-5.417 10.462l-.326.633c-1.14 2.214-2.265 4.407-3.176 6.2-1.228-1.222-2.449-2.452-3.676-3.675l-3.57 3.618-1.297-1.296 3.541-3.588c-.98-.964-1.932-1.958-2.923-2.91l-.753-.706c2.68-1.258 6.533-3.165 9.95-4.876l.617-.309C28.838 1.673 32 .06 32 .06zm-4.126 4.06l-.015.007-.115.057-.048.024-.115.057L17.7 9.172l5.017 4.948 5.157-10z"})),Participant:({styles:e={},...t})=>rS("svg",pW({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M0 5v22.069h32V5H0zm30.276 1.684v18.82H6.62V6.684h23.655zm-28.62 0h3.31v18.82h-3.31V6.684z"})),Process:({styles:e={},...t})=>rS("svg",dW({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{fillRule:"evenodd",d:"M16.177 0l.137.002c.452.009.9.037 1.342.082.346.036.62.303.68.646l.437 2.536c.055.319.296.57.608.655.986.269 1.923.653 2.796 1.14.28.155.624.145.885-.039l2.083-1.47a.775.775 0 01.937.022c.86.699 1.645 1.484 2.343 2.343.22.27.223.653.023.937l-1.439 2.038a.833.833 0 00-.031.896c.512.889.92 1.846 1.204 2.855a.833.833 0 00.653.601l2.435.42c.342.059.61.333.645.679a15.928 15.928 0 01.08 2.064l-.003.114c-.012.382-.038.76-.077 1.134a.775.775 0 01-.645.68l-2.396.412a.835.835 0 00-.656.61 12.511 12.511 0 01-1.2 2.917.832.832 0 00.034.892l1.396 1.978c.2.284.196.667-.023.936a16.104 16.104 0 01-2.343 2.343.775.775 0 01-.937.023l-1.99-1.404a.833.833 0 00-.88-.026c-.907.516-1.886.922-2.916 1.2a.833.833 0 00-.61.656l-.414 2.396a.775.775 0 01-.679.646 16.096 16.096 0 01-3.312 0 .775.775 0 01-.679-.646l-.423-2.452a.834.834 0 00-.598-.636 12.474 12.474 0 01-1.468-.514 12.49 12.49 0 01-1.417-.68.833.833 0 00-.878.03l-2.026 1.43a.775.775 0 01-.937-.023 16.069 16.069 0 01-2.342-2.342.774.774 0 01-.024-.936l1.402-1.986a.833.833 0 00.032-.896 12.507 12.507 0 01-1.214-2.911.833.833 0 00-.655-.606l-2.386-.412a.775.775 0 01-.646-.678 16.097 16.097 0 010-3.314.775.775 0 01.646-.678l2.386-.412a.833.833 0 00.655-.606 12.507 12.507 0 011.214-2.911.833.833 0 00-.032-.896L3.552 6.853a.774.774 0 01.023-.936 16.091 16.091 0 012.343-2.343.775.775 0 01.937-.023l2.03 1.433c.26.177.6.182.874.028.915-.512 1.88-.9 2.87-1.167a.833.833 0 00.612-.656l.424-2.46a.775.775 0 01.679-.645C14.845.032 15.348.004 15.85 0h.326zM16 6.4c-5.302 0-9.6 4.297-9.6 9.599 0 5.302 4.298 9.6 9.6 9.6s9.6-4.298 9.6-9.6-4.298-9.6-9.6-9.6zm-3 4.283c0-1.425 1.637-2.203 2.715-1.29l5.69 4.815c.794.672.794 1.91 0 2.583l-5.69 4.815c-1.078.913-2.715.134-2.715-1.29z"})),ReceiveTask:({styles:e={},...t})=>rS("svg",fW({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M6.494 3C2.916 3 0 5.903 0 9.475v13.383c0 3.572 2.916 6.475 6.494 6.475h19.012c3.578 0 6.494-2.903 6.494-6.475V9.475C32 5.903 29.084 3 25.506 3H6.494zm0 2h19.012C28.015 5 30 6.98 30 9.475v13.383c0 2.495-1.985 4.475-4.494 4.475H6.494C3.985 27.333 2 25.353 2 22.858V9.475C2 6.98 3.985 5 6.494 5zM5.23 7.764v11.577h17.55V7.764H5.23zm1.816.758h13.917l-6.959 4.577-6.958-4.577zm-1.06.21l8.018 5.274 8.018-5.275v9.853H5.987V8.73z"})),ScriptTask:({styles:e={},...t})=>rS("svg",mW({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M6.494 3C2.916 3 0 5.903 0 9.475v13.383c0 3.572 2.916 6.475 6.494 6.475h19.012c3.578 0 6.494-2.903 6.494-6.475V9.475C32 5.903 29.084 3 25.506 3H6.494zm0 2h19.012C28.015 5 30 6.98 30 9.475v13.383c0 2.495-1.985 4.475-4.494 4.475H6.494C3.985 27.333 2 25.353 2 22.858V9.475C2 6.98 3.985 5 6.494 5zm2.99 3.077l-.077.045-.026.015c-1.09.646-1.84 1.239-2.336 1.818-.496.579-.735 1.162-.742 1.725-.014 1.119.812 1.958 1.544 2.708.732.75 1.385 1.456 1.446 2.041.032.298-.039.598-.364 1.008-.324.408-.911.897-1.85 1.445l-1.388.808h8.56l.101-.059c.996-.58 1.667-1.116 2.094-1.655.429-.54.603-1.107.547-1.638-.11-1.052-.967-1.818-1.688-2.556-.721-.739-1.306-1.436-1.298-2.092.004-.331.132-.7.535-1.171.402-.47 1.08-1.02 2.119-1.636l1.362-.806h-8.54zm.241.867h5.271a6.83 6.83 0 00-1.113 1.01c-.496.58-.736 1.163-.743 1.726-.014 1.119.812 1.958 1.544 2.708.732.75 1.385 1.456 1.446 2.041.032.298-.039.598-.364 1.008-.312.393-.872.862-1.753 1.386H8.728c.367-.286.658-.566.88-.847.43-.54.604-1.107.548-1.638-.11-1.052-.968-1.818-1.688-2.556-.721-.739-1.306-1.435-1.298-2.092.004-.331.132-.7.534-1.171.389-.454 1.04-.984 2.021-1.575zm-1.233 1.48v.4h4.12v-.4h-4.12zm-.154 2.158v.4H12.6v-.4H8.34zm1.931 2.158v.4h4.126v-.4H10.27zm.59 2.158v.4h4.276v-.4h-4.276z"})),SendTask:({styles:e={},...t})=>rS("svg",gW({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M6.494 3C2.916 3 0 5.903 0 9.475v13.383c0 3.572 2.916 6.475 6.494 6.475h19.012c3.578 0 6.494-2.903 6.494-6.475V9.475C32 5.903 29.084 3 25.506 3H6.494zm0 2h19.012C28.015 5 30 6.98 30 9.475v13.383c0 2.495-1.985 4.475-4.494 4.475H6.494C3.985 27.333 2 25.353 2 22.858V9.475C2 6.98 3.985 5 6.494 5zm-1.38 3.16l8.332 4.717L21.78 8.16H5.114zm.021 1.745v9.309H21.8V9.905l-8.353 4.655-8.31-4.655z"})),ServiceTask:({styles:e={},...t})=>rS("svg",vW({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M6.494 3C2.916 3 0 5.903 0 9.475v13.383c0 3.572 2.916 6.475 6.494 6.475h19.012c3.578 0 6.494-2.903 6.494-6.475V9.475C32 5.903 29.084 3 25.506 3H6.494zm0 2h19.012C28.015 5 30 6.98 30 9.475v13.383c0 2.495-1.985 4.475-4.494 4.475H6.494C3.985 27.333 2 25.353 2 22.858V9.475C2 6.98 3.985 5 6.494 5zm1.22 1.681V7.84c-.329.093-.63.223-.914.382l-.83-.82-1.554 1.561.83.82c-.16.288-.285.594-.372.911l-1.177.002v2.2l1.189-.004c.109.431.345.819.58 1.165v-1.898l-1.038.004v-.737l1.034-.002.058-.294c.084-.429.252-.838.493-1.203l.165-.25-.727-.718.523-.526.728.719.247-.165c.379-.25.793-.417 1.206-.505l.291-.06-.002-1.01h.75L9.19 8.417H11.16c-.185-.221-.951-.508-1.237-.588L9.93 6.68H7.713zm2.078 2.105l.003 1.158a4.19 4.19 0 00-.915.383l-.83-.821-1.553 1.562.83.82c-.16.288-.286.593-.373.91l-1.176.003v2.2l1.188-.004c.094.326.224.624.383.905l-.85.847 1.57 1.543.847-.843c.29.161.599.286.919.373v1.198c.756.006 1.56.003 2.206.003V17.81a4.19 4.19 0 00.915-.383l.847.835 1.554-1.56-.848-.836c.16-.288.286-.594.373-.912l1.152-.007V12.75l-1.165.007a4.09 4.09 0 00-.382-.905l.805-.807-1.57-1.546-.804.806a4.16 4.16 0 00-.915-.372l.007-1.147H9.792zm.732.73h.751l-.006 1.005.297.058c.43.085.844.252 1.21.492l.25.162.701-.704.528.52-.702.704.169.25c.248.374.412.779.505 1.196l.061.292 1.016-.006v.737l-1.01.006-.058.292c-.085.43-.252.838-.494 1.205l-.165.25.744.733-.523.525-.743-.734-.248.165c-.378.247-.789.418-1.203.503l-.294.058v1.067h-.745v-1.059l-.295-.057a3.395 3.395 0 01-1.21-.492l-.248-.162-.747.743-.528-.52.747-.744-.17-.25a3.546 3.546 0 01-.506-1.196l-.06-.291-1.04.004v-.738l1.034-.002.058-.294c.085-.428.252-.837.493-1.203l.165-.25-.726-.718.522-.526.728.72.248-.166a3.546 3.546 0 011.205-.504l.292-.06-.003-1.01zm.388 2.685a1.65 1.65 0 00-1.645 1.645c0 .904.74 1.645 1.645 1.645a1.65 1.65 0 001.645-1.645 1.65 1.65 0 00-1.645-1.645zm0 .73a.91.91 0 01.915.915.91.91 0 01-.915.914.91.91 0 01-.915-.914.91.91 0 01.915-.915z"})),CompensateStartEvent:({styles:e={},...t})=>rS("svg",yW({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M15.995.001C9.705-.084 3.643 3.964 1.257 9.775-1.235 15.485.06 22.577 4.42 27.03c4.193 4.513 11.102 6.17 16.887 4.058 5.996-2.042 10.423-7.93 10.664-14.269.403-6.227-3.26-12.44-8.87-15.153A15.924 15.924 0 0015.994 0zm0 1.73c6.213-.108 12.122 4.355 13.726 10.357 1.678 5.653-.592 12.198-5.463 15.547-5.06 3.719-12.564 3.45-17.343-.626C2.101 23.171.377 16.07 2.848 10.44c2.14-5.205 7.515-8.774 13.147-8.708zm-.566 9.03l-7.415 5.235 7.415 5.238v-5.062c2.386 1.689 4.775 3.375 7.163 5.062V10.761l-7.163 5.058v-5.058zm-.866 1.666v7.13L9.51 15.993l5.052-3.565zm7.166 0v7.137l-5.052-3.568 5.052-3.569z"})),ConditionalStartEvent:({styles:e={},...t})=>rS("svg",bW({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M16 0C7.174 0 0 7.174 0 16s7.174 16 16 16 16-7.174 16-16S24.826 0 16 0zm0 1.73c7.892 0 14.27 6.378 14.27 14.27 0 7.891-6.379 14.27-14.27 14.27S1.73 23.891 1.73 16C1.73 8.108 8.108 1.73 16 1.73zm-5.362 7.523v13.493h10.724V9.253H10.638zm.863.866h8.995V21.88H11.501V10.12zm.928 1.324v.863h7.139v-.863h-7.139zm0 2.605v.867h7.139v-.867h-7.139zm0 3.01v.864h7.139v-.863h-7.139zm0 2.72v.863h7.139v-.863h-7.139z"})),ErrorStartEvent:({styles:e={},...t})=>rS("svg",wW({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M15.995.005C9.705-.08 3.643 3.968 1.257 9.78-1.235 15.49.06 22.581 4.42 27.034c4.193 4.513 11.102 6.17 16.887 4.058 5.996-2.042 10.423-7.93 10.664-14.269.403-6.227-3.26-12.44-8.87-15.153A15.924 15.924 0 0015.994.005zm0 1.73c6.213-.108 12.122 4.355 13.726 10.357 1.678 5.653-.592 12.198-5.463 15.547-5.06 3.719-12.564 3.45-17.343-.626-4.814-3.838-6.538-10.939-4.067-16.57 2.14-5.205 7.515-8.774 13.147-8.708zm6.13 7.45l-3.635 7.37-4.52-5.88c-1.37 4.048-2.738 8.095-4.106 12.143l4.603-5.917 4.748 5.433 2.91-13.149zm-7.754 3.889l4.299 5.449 1.073-2.39-1.028 4.135-4.387-5.16-1.78 2.75 1.823-4.784z"})),EscalationStartEvent:({styles:e={},...t})=>rS("svg",xW({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M15.995.001C9.705-.084 3.643 3.964 1.257 9.775-1.235 15.485.06 22.577 4.42 27.03c4.193 4.513 11.102 6.17 16.887 4.058 5.996-2.042 10.423-7.93 10.664-14.269.403-6.227-3.26-12.44-8.87-15.153A15.924 15.924 0 0015.994 0zm0 1.73c6.213-.108 12.122 4.355 13.726 10.357 1.678 5.653-.592 12.198-5.463 15.547-5.06 3.719-12.564 3.45-17.343-.626C2.101 23.171.377 16.07 2.848 10.44c2.14-5.205 7.515-8.774 13.147-8.708zm0 7.183c-1.674 4.658-2.736 9.509-4.41 14.166 1.535-1.526 2.874-3.236 4.41-4.763l4.41 4.763c-1.499-4.713-2.913-9.453-4.41-14.166zm.032 2.931c.822 2.588 1.598 5.19 2.42 7.778l-2.42-2.615c-.683.598-2.455 2.887-2.34 2.39.871-2.489 1.448-5.07 2.34-7.553z"})),MessageStartEvent:({styles:e={},...t})=>rS("svg",_W({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M15.995.001C9.705-.084 3.643 3.964 1.257 9.775-1.235 15.485.06 22.577 4.42 27.03c4.193 4.513 11.102 6.17 16.887 4.058 5.996-2.042 10.423-7.93 10.664-14.269.403-6.227-3.26-12.44-8.87-15.153A15.924 15.924 0 0015.994 0zm0 1.73c6.213-.108 12.122 4.355 13.726 10.357 1.678 5.653-.592 12.198-5.463 15.547-5.06 3.719-12.564 3.45-17.343-.626C2.101 23.171.377 16.07 2.848 10.44c2.14-5.205 7.515-8.774 13.147-8.708zm-7.257 8.732v11.069h14.513v-11.07H8.738zm3.224 1.73h8.064c-1.428.878-2.857 2.807-4.285 3.018l-3.779-3.019zm9.562 1.017v6.593H10.465V13.21l5.528 4.417 5.53-4.418z"})),MultipleStartEvent:({styles:e={},...t})=>rS("svg",EW({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M15.995.001C9.705-.084 3.643 3.964 1.257 9.775-1.235 15.485.06 22.577 4.42 27.03c4.193 4.513 11.102 6.17 16.887 4.058 5.996-2.042 10.423-7.93 10.664-14.269.403-6.227-3.26-12.44-8.87-15.153A15.924 15.924 0 0015.994 0zm0 1.73c6.213-.108 12.122 4.355 13.726 10.357 1.678 5.653-.592 12.198-5.463 15.547-5.06 3.719-12.564 3.45-17.343-.626C2.101 23.171.377 16.07 2.848 10.44c2.14-5.205 7.515-8.774 13.147-8.708zm0 6.328l-7.626 5.536c.97 2.986 1.942 5.971 2.913 8.957h9.426l2.912-8.957-7.625-5.536zm0 1.068l6.609 4.798-2.525 7.763H11.91l-2.524-7.763 6.609-4.798z"})),ConditionalStartEventNonInterrupting:({styles:e={},...t})=>rS("svg",kW({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M10.632 9.189V22.68h10.723V9.189H10.632zm.862.865h8.994v11.76H11.494v-11.76zm.928 1.324v.863h7.138v-.863h-7.138zm0 2.605v.866h7.138v-.866h-7.138zm0 3.01v.863h7.138v-.863h-7.138zm0 2.72v.862h7.138v-.863h-7.138zM16.12 0h-.232l-.22.004h-.012l-.221.006h-.012l-.22.01h-.012l-.22.013h-.012l-.22.016h-.012l-.22.019h-.005l-.006.001-.22.021h-.006l-.005.001-.22.025h-.011l-.22.028h-.005l-.006.002-.219.03h-.005l-.006.001-.218.033-.006.001-.006.001-.217.036-.006.001-.006.001-.217.039-.006.001-.006.001-.216.042-.006.001-.006.001-.215.045-.006.001-.006.002-.215.047-.006.002-.006.001-.214.05-.006.002-.006.002-.115.029-.152.053-.14.081-.122.106-.1.126-.075.143-.047.154-.018.16.012.16.042.156.07.145.095.13.118.11.137.086.15.059.158.03h.161l.132-.022.11-.028.202-.047.203-.046.208-.043.202-.039.206-.037.206-.034.205-.03.208-.03.205-.025.209-.023.208-.02.21-.017.209-.015.207-.011.21-.009.21-.006.207-.003h.21l.21.002.207.005.207.008.212.011.207.014.208.017.209.019.208.022.205.025.206.028.207.03.208.035.205.036.202.039.052.01.16.018.16-.012.156-.042.146-.07.13-.096.109-.119.085-.136.06-.15.03-.159v-.16l-.03-.16-.059-.15-.086-.136-.109-.118-.13-.096-.145-.07-.128-.038-.057-.011-.006-.002h-.006l-.216-.042-.006-.001-.006-.001-.217-.039H18.9l-.006-.002-.217-.035-.006-.001-.006-.001-.218-.032-.006-.001-.006-.001-.218-.03h-.006l-.006-.001-.219-.027h-.011l-.22-.024-.005-.001h-.006l-.22-.021h-.006l-.006-.001-.22-.017-.005-.001h-.006L17.06.03h-.012l-.22-.012h-.012l-.22-.01h-.012l-.22-.005h-.012L16.132 0h-.012zm8.715 2.783l-.157.034-.149.063-.134.089-.116.112-.092.132-.067.147-.038.157-.008.16.021.16.051.153.079.141.103.124.102.087.052.038h.001l.087.064v.001l.082.061.002.001.076.059h.001l.084.065.082.066.002.001.079.063.002.002.077.063.081.067.002.002.077.065.076.065.001.002.08.07.078.07h.002l.075.068.077.072.002.001.073.069.077.073.072.07.002.001.077.076.07.07v.001l.075.076.07.073.002.001.074.079.002.002.069.074.069.075.074.082.07.08.002.001.068.079h.001l.067.079.068.082.065.078.001.002.068.083.067.084.063.081.001.002.067.087.002.002.063.084.001.001.064.087.008.01.008.01.095.12.093.121.09.119.087.119.088.122.086.123.084.12.081.122.001.002.084.126.08.126.08.127.077.126.079.131.074.127.075.131.073.131.07.13.07.133.069.133.045.09.086.137.109.119.13.096.144.07.156.042.16.013.16-.017.155-.047.143-.075.126-.1.106-.121.082-.14.054-.151.025-.16-.005-.16-.035-.158-.05-.124-.048-.095-.002-.004-.002-.004-.073-.14-.002-.005-.002-.004-.074-.14-.002-.004-.002-.004-.076-.14-.002-.003-.002-.004-.077-.139-.003-.004-.002-.004-.078-.138-.003-.004-.002-.003-.08-.137-.002-.004-.003-.004-.081-.136-.002-.004-.003-.004-.083-.136-.002-.003-.002-.004-.085-.135-.002-.004-.003-.003-.085-.134-.003-.004-.002-.004-.087-.132-.003-.004-.003-.004-.088-.132-.003-.003-.002-.004-.09-.13-.003-.005-.003-.003-.091-.13-.003-.004-.002-.004-.093-.129-.003-.003-.003-.004-.094-.128-.003-.004-.003-.003-.095-.127-.003-.004-.003-.004-.097-.125-.003-.004-.003-.004-.09-.114-.06-.082-.003-.003-.002-.003-.069-.091-.002-.004-.002-.003-.07-.09-.003-.003-.002-.003-.07-.09-.003-.003-.002-.003-.071-.09-.002-.003-.003-.002-.072-.089-.002-.003-.002-.003-.073-.088-.002-.003-.002-.002-.074-.087-.002-.003-.002-.003-.074-.086-.003-.003-.002-.003-.074-.086-.003-.002-.002-.003-.075-.085-.003-.003-.002-.002-.076-.084-.002-.003-.003-.003-.076-.083-.002-.003-.003-.003-.077-.082-.002-.003-.003-.002-.077-.082-.003-.003-.003-.002-.078-.081-.002-.003-.003-.003-.078-.08-.003-.002-.003-.003-.079-.08-.002-.002-.003-.002-.08-.08-.002-.002-.003-.002-.08-.078-.003-.003-.003-.002-.08-.077-.003-.003-.003-.002-.082-.077-.002-.002-.003-.002-.082-.076-.003-.002-.002-.003-.083-.075-.003-.002-.002-.003-.084-.074-.002-.002-.003-.002-.084-.074-.003-.002-.002-.002-.085-.073-.002-.002-.003-.003-.085-.071-.003-.003-.002-.002-.086-.07-.003-.003-.002-.002-.086-.07-.003-.003-.003-.002-.086-.07-.003-.002-.003-.002-.087-.069-.002-.002-.003-.002-.088-.068-.002-.002-.003-.002-.088-.067-.003-.003-.003-.002-.088-.066-.003-.002-.003-.002-.089-.066-.003-.002-.003-.002-.057-.042-.14-.082-.15-.055-.16-.026-.16.004zM6.377 3.21l-.157.037-.148.066-.111.074-.007.006-.003.002-.003.002-.086.069-.003.002-.002.002-.086.07-.003.002-.002.002-.086.07-.002.003-.003.002-.085.071-.002.002-.003.003-.084.071-.003.003-.002.002-.084.072-.003.003-.002.002-.083.073-.003.003-.002.002-.083.074-.002.002-.003.003-.082.074-.003.003-.002.002-.081.076-.003.002-.003.002-.08.077-.003.002-.003.003-.08.076-.002.003-.003.002-.08.078-.002.002-.003.003-.079.078-.002.003-.003.002-.078.08-.003.002-.002.002-.078.08-.002.003-.003.002-.077.08-.003.004-.002.002-.077.081-.002.003-.003.003-.076.082-.002.002-.003.003-.075.082-.002.003-.003.003-.074.083-.003.003-.002.003-.074.084-.003.003-.002.002-.074.085-.002.003-.002.003-.073.085-.003.003-.002.003-.072.086-.002.003-.003.003-.071.087-.003.003-.002.002-.07.088-.003.003-.002.003-.07.088-.003.003-.002.003-.07.09-.002.002-.002.003-.069.09-.002.003-.003.003-.068.09-.002.003-.002.003-.067.092-.003.003-.002.003-.067.092-.002.003-.002.003-.066.092-.002.003-.002.004-.066.093-.002.003-.002.003-.065.094-.002.003-.002.004-.064.094-.002.003-.002.004-.063.095-.002.003-.002.003-.063.097-.002.003-.002.003-.046.073-.05.07-.003.002-.002.003-.067.093-.003.003-.002.003-.066.094-.002.003-.002.003-.066.094-.002.003-.002.003-.064.094-.002.004-.002.003-.064.094-.002.004-.002.003-.062.095-.002.003-.002.003-.062.096-.002.003-.002.003-.06.096-.003.003-.002.003-.06.096-.001.004-.002.003-.059.096-.002.004-.002.003-.058.097-.002.003-.001.003-.057.098-.002.003-.002.003-.056.098-.002.003-.002.003-.055.098-.002.004-.001.003-.055.098-.001.004-.002.003-.054.099-.001.003-.002.003-.052.1-.002.002-.002.004-.051.1-.002.002-.002.004-.05.1-.002.003-.002.003-.05.1v.003l-.002.004-.05.1v.003l-.002.004-.048.1-.002.004-.001.003-.047.101-.002.003-.001.004-.013.027-.052.152-.024.16.006.16.037.157.064.148.091.133.114.114.134.09.147.065.157.036.162.006.159-.024.152-.053.14-.08.122-.105.1-.126.066-.117.01-.023.044-.095.045-.095.002-.003.042-.087.048-.097.048-.095v-.001l.048-.092.001-.001.047-.09.05-.093.002-.002.049-.09.052-.092.001-.002.051-.089.001-.002.051-.087.053-.088.001-.002.055-.091.057-.091.057-.09.001-.002.057-.089.055-.083.001-.002.06-.09.06-.088.062-.089.001-.001.06-.084.063-.088.065-.089.017-.023.016-.025.06-.094.059-.09v-.002l.058-.086.057-.086.001-.001.062-.09.062-.088.001-.002.06-.085.002-.002.06-.082.063-.087.064-.084.002-.002.061-.08.065-.084.064-.08v-.001l.067-.083.067-.082.07-.083.069-.08.063-.074.074-.083.068-.077.002-.002.07-.076.07-.075.072-.077.001-.001.067-.07.076-.078.002-.002.07-.07.075-.075.002-.002.072-.07.075-.072.002-.002.073-.069.074-.068.001-.001.08-.073.076-.068.002-.002.072-.063v-.001l.078-.067.079-.068.002-.001.08-.068.002-.002.077-.063.082-.066.001-.001.075-.06.002-.002.006-.004.117-.111.094-.131.068-.146.04-.156.01-.161-.019-.16-.049-.154-.076-.141-.102-.125-.123-.105-.14-.079-.153-.052-.16-.023-.16.007zm24.596 11.088l-.156.04-.146.067-.131.094-.112.117-.087.135-.061.15-.033.157-.004.134.007.142.005.152.004.15.002.149v.153l.001.011v.015l.004.11.002.11v.002l.002.106v.321l-.003.102-.002.106-.004.107-.005.105-.006.106-.006.106-.008.106v.002l-.008.103v.002l-.01.1-.01.105-.01.105-.013.105-.012.099v.002l-.014.108-.014.1-.016.105-.016.103v.002l-.017.099-.018.104-.019.103v.002l-.019.097-.02.104-.022.103v.001l-.022.098-.023.103v.002l-.024.096-.025.103v.002l-.024.096-.027.102v.003l-.026.093v.001l-.029.103v.002l-.03.099-.028.097v.002l-.03.095-.03.096v.001l-.033.1-.031.095v.002l-.035.1v.003l-.034.094v.003l-.035.096v.001l-.034.09v.002l-.038.098-.036.093v.002l-.038.095-.079.194-.08.188-.085.189-.087.19-.09.184-.092.183-.095.184-.05.093-.064.148-.034.158-.005.16.026.16.054.151.082.14.106.12.127.1.143.075.154.046.16.017.161-.013.156-.042.144-.071.13-.096.109-.119.072-.112.053-.099.003-.005.003-.006.102-.195.003-.006.003-.006.098-.196.003-.006.003-.006.096-.197.002-.006.003-.006.093-.2.002-.006.003-.006.09-.2.002-.006.003-.007.086-.202.003-.006.002-.006.084-.203.002-.005.001-.005.04-.102.002-.003.001-.003.04-.103.001-.003.001-.003.04-.103v-.004l.001-.003.039-.103v-.003l.002-.003.037-.104.001-.003.001-.003.037-.104v-.004l.002-.003.035-.104.002-.003v-.004l.035-.104.002-.004v-.003l.034-.105.002-.003v-.003l.034-.105v-.004l.002-.003.032-.106.001-.003.001-.003.031-.106.001-.003.001-.004.031-.106.001-.003.001-.004.03-.106v-.003l.002-.004.028-.107.001-.003.001-.003.028-.107.001-.004.001-.003.027-.107.001-.004v-.003l.027-.108.001-.003v-.004l.026-.108.001-.003v-.004l.025-.108.001-.003v-.004l.025-.108v-.004l.001-.003.023-.109v-.003l.001-.004.022-.109v-.003l.002-.004.02-.109.001-.004v-.003l.02-.11.002-.003v-.004l.02-.11v-.007l.019-.11v-.003l.001-.004.017-.11v-.004l.001-.003.017-.11v-.008l.016-.11v-.004l.001-.004.015-.11v-.008l.015-.111v-.008l.013-.111v-.007l.013-.112v-.007l.011-.112v-.004l.001-.004.01-.112v-.007l.01-.112v-.008l.008-.112v-.008l.007-.113v-.007l.007-.113v-.008l.005-.113v-.007l.005-.114v-.007l.003-.114v-.007l.003-.114v-.129l.001-.114v-.13l-.003-.114v-.008l-.003-.115v-.007l-.003-.102v-.155l-.003-.158v-.01l-.004-.158v-.01l-.006-.158v-.01l-.007-.148-.023-.16-.051-.152-.08-.14-.103-.124-.125-.102-.142-.077-.153-.05-.16-.02-.161.01zm-30.213.66l-.157.034-.149.063-.134.09-.115.113-.092.132-.067.147-.037.156-.009.134.001.11V15.95l.006.22v.012l.01.22v.012l.012.22v.006l.001.006.015.22v.005l.001.006.018.22.001.006v.006l.022.219v.006l.001.006.024.219.001.006v.006l.028.218.001.006v.006l.031.218.001.006.001.006.033.218.001.006.001.005.037.218v.006l.002.005.04.217v.006l.001.006.043.216.001.006.001.006.046.216v.005l.002.006.048.215.002.006.001.006.051.214.002.006v.006l.055.214.002.005.001.006.057.213.002.006.001.005.06.213.002.005.001.006.063.212.002.005.001.006.066.21.002.006.002.006.068.21.002.005.002.005.07.21.003.005.002.005.074.208.002.006.002.005.077.207.002.006.002.005.08.206.002.005.002.006.082.204.002.006.002.005.086.204.002.005.002.006.088.202.002.005.003.006.09.2.003.006.002.005.094.2.002.006.003.005.096.199.002.005.003.005.03.062.086.137.11.118.128.097.145.07.156.043.16.013.16-.017.155-.047.143-.074.127-.1.106-.121.081-.14.055-.15.025-.16-.005-.161-.034-.158-.05-.124-.028-.055-.092-.19-.087-.188-.087-.192-.083-.19-.08-.193-.078-.194-.076-.196-.073-.195-.07-.197-.067-.198-.065-.199-.063-.2-.059-.2-.056-.2-.055-.204-.05-.201-.049-.202-.046-.205-.043-.206-.04-.203-.038-.207-.034-.204-.032-.207-.028-.205-.026-.207-.023-.208-.02-.207-.018-.207-.014-.208-.011-.207-.009-.208-.005-.207-.002-.104-.017-.16-.046-.155-.074-.143-.1-.126-.121-.107-.139-.081-.152-.055-.159-.025-.161.004zm24.585 11.83l-.156.039-.146.068-.11.076-.015.012-.163.129-.166.127-.168.125-.17.124-.17.12-.172.118-.173.115-.176.114-.177.111-.18.11-.178.105-.182.104-.182.101-.184.1-.184.095-.189.095-.186.09-.188.089-.19.086-.19.082-.193.081-.195.078-.191.074-.197.073-.195.07-.196.065-.198.064-.198.061-.2.058-.2.055-.2.052-.2.049-.151.035-.153.05-.141.078-.125.103-.103.124-.078.14-.05.154-.022.16.009.16.038.157.067.147.093.132.116.112.134.089.149.062.158.034.16.003.133-.02.158-.035.006-.002.006-.001.213-.052.006-.002.007-.001.212-.056.006-.001.006-.002.212-.058.006-.002.006-.002.211-.061.006-.002.006-.002.21-.064.006-.002.006-.002.21-.067.005-.002.006-.002.208-.07.006-.002.006-.003.207-.073.006-.002.006-.002.206-.077.006-.002.005-.002.206-.08.005-.001.006-.003.204-.082.006-.002.005-.002.203-.085.006-.003.005-.002.202-.088.006-.002.005-.003.2-.09.006-.003.006-.003.2-.093.005-.003.005-.002.198-.096.006-.003.005-.003.197-.099.005-.002.005-.003.196-.102.005-.002.005-.003.195-.105.005-.002.005-.003.193-.107.005-.003.005-.003.191-.11.005-.003.005-.003.19-.112.005-.003.005-.003.189-.115.005-.003.005-.003.187-.117.005-.003.004-.004.186-.12.005-.003.004-.003.184-.122.005-.003.005-.004.182-.125.004-.003.005-.003.18-.128.005-.003.005-.003.179-.13.004-.003.005-.004.177-.132.004-.004.005-.003.175-.135.005-.003.004-.004.173-.137.005-.003.004-.004.019-.015.115-.113.092-.132.066-.147.038-.157.008-.16-.022-.16-.052-.153-.079-.14-.103-.124-.125-.102-.142-.078-.153-.05-.16-.02-.16.01zm-19.17.054l-.153.051-.14.079-.124.103-.103.125-.077.141-.05.153-.02.16.009.161.04.156.067.147.093.131.095.094.047.04.005.004.005.004.17.14.005.004.005.004.172.137.004.004.005.003.086.067.003.002.003.002.087.067.003.002.003.002.088.066.002.003.003.002.089.065.002.002.003.002.09.065.002.002.003.002.09.064.002.002.003.002.09.063.003.002.003.002.09.063.003.002.003.002.092.062.002.002.003.002.092.061.003.002.003.002.092.06.003.003.003.001.093.06.003.002.003.002.093.06.003.001.003.002.094.058.003.002.003.002.095.058.003.001.003.002.095.057.003.002.003.002.095.056.003.002.003.002.096.055.004.002.003.001.096.055.003.002.003.002.098.053.003.002.003.002.097.053.004.002.003.001.098.053.003.001.003.002.099.052.003.001.003.002.1.05.003.002.003.002.1.05.003.002.003.001.1.05h.003l.004.003.1.048.004.001.003.002.101.048.003.001.004.002.101.046.004.002.003.001.102.046.004.002.003.001.103.045.003.002.003.001.103.045.004.001.003.002.104.043.003.001.004.002.104.042.003.002.004.001.104.042.004.001.003.002.105.04.004.002.003.001.106.04.003.002h.004l.106.04.004.001.003.002.107.038.003.001.004.001.107.038.003.001.004.001.107.037.004.001.004.001.108.036.003.001.004.001.108.035.004.001.003.001.11.034.003.001.004.001.109.033.004.002h.003l.11.033h.004l.003.002.11.031.004.001.004.001.084.023.081.028.004.001.003.001.109.037.003.001.004.001.109.036.003.001.004.001.109.035h.003l.004.002.11.033.003.001.003.001.11.033.003.001.004.001.109.031.004.002h.003l.11.031.003.001.004.001.11.03h.003l.003.001.11.029h.004l.003.002.11.027.003.001.004.001.11.027h.003l.004.001.004.001.16.022.16-.008.157-.038.147-.067.132-.092.112-.116.09-.134.062-.149.034-.157.004-.161-.025-.16-.055-.151-.082-.139-.107-.12-.127-.1-.143-.074-.124-.04h-.003l-.104-.025-.103-.026h-.002l-.095-.026h-.001l-.101-.027h-.002l-.1-.028h-.002l-.103-.03-.104-.032-.097-.03h-.002l-.103-.033-.102-.033-.101-.034-.106-.036-.027-.01-.027-.007-.107-.03-.104-.029-.104-.03h-.002l-.097-.03-.102-.032-.102-.032-.102-.034-.103-.035-.096-.034-.1-.036-.101-.037h-.002l-.094-.036-.096-.037-.097-.04h-.002l-.099-.04-.098-.042h-.002l-.092-.04-.097-.043-.095-.043-.097-.044h-.002l-.09-.043-.094-.045-.094-.046-.093-.047-.09-.046-.096-.05-.088-.047-.002-.001-.09-.049-.094-.052-.002-.002-.087-.049-.087-.05h-.002l-.088-.053h-.001l-.09-.055-.086-.052-.002-.001-.089-.055-.084-.054h-.002l-.09-.059h-.001l-.085-.056-.001-.001-.084-.056-.082-.056h-.001l-.086-.06-.082-.058H7.79l-.086-.062-.002-.002-.08-.058-.081-.06h-.001l-.085-.064-.002-.002-.076-.058-.002-.002-.082-.064-.161-.128-.162-.133-.04-.034-.132-.092-.147-.066-.157-.038-.16-.008-.16.022z"})),EscalationStartEventNonInterrupting:({styles:e={},...t})=>rS("svg",SW({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M16 9.209c-1.674 4.655-2.735 9.504-4.408 14.16 1.534-1.526 2.873-3.235 4.407-4.761l4.408 4.76c-1.497-4.71-2.91-9.448-4.408-14.16zm.031 2.93c.822 2.586 1.598 5.187 2.42 7.774l-2.42-2.614c-.682.598-2.453 2.886-2.34 2.389.873-2.488 1.45-5.068 2.34-7.55zM16.132.364c-1.51.016-3.055.139-4.492.614-.854.442-.266 1.861.651 1.578 2.266-.58 4.656-.596 6.944-.144.935.063 1.21-1.391.318-1.674-1.118-.26-2.274-.361-3.42-.374zm8.865 2.777c-.931-.1-1.262 1.29-.425 1.666 1.863 1.364 3.222 3.298 4.322 5.296.617.737 1.875-.145 1.398-.979-1.184-2.275-2.808-4.384-4.923-5.866a.863.863 0 00-.372-.117zM6.55 3.564c-.734.078-1.196.762-1.735 1.206C3.552 6.02 2.55 7.511 1.681 9.053c-.31.533-.71 1.33-.03 1.767.615.432 1.282-.132 1.446-.742.796-1.475 1.746-2.89 2.934-4.08.43-.548 1.292-.822 1.34-1.595a.874.874 0 00-.822-.839zm24.582 11.078c-.771-.033-1.004.82-.873 1.437.13 2.395-.471 4.797-1.615 6.897-.33.876.984 1.559 1.512.785a14.276 14.276 0 001.761-8.54.865.865 0 00-.785-.579zm-30.195.666c-.774-.06-1.032.785-.905 1.407.117 2.41.732 4.81 1.858 6.945.528.774 1.84.09 1.51-.786A15.932 15.932 0 011.728 16a.876.876 0 00-.79-.692zm24.57 11.817c-.762.099-1.243.835-1.919 1.16-1.514 1.002-3.237 1.632-4.978 2.092-.864.423-.307 1.855.616 1.591 2.528-.578 4.93-1.75 6.913-3.421.469-.522.07-1.42-.631-1.422zm-19.16.042c-.845.001-1.12 1.228-.395 1.628 1.665 1.401 3.667 2.348 5.76 2.912.618.178 1.482.565 1.893-.177.355-.628-.226-1.297-.87-1.326-1.972-.515-3.912-1.285-5.5-2.594-.26-.213-.522-.472-.888-.443z"})),MessageStartEventNonInterrupting:({styles:e={},...t})=>rS("svg",CW({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M8.746 10.393v11.064h14.506V10.393H8.746zm3.223 1.728h8.06c-1.428.879-2.856 2.807-4.283 3.018l-3.777-3.018zm9.557 1.018v6.59H10.473v-6.59l5.525 4.416 5.528-4.416zM16.132 0c-1.51.016-3.055.139-4.492.614-.854.442-.266 1.861.651 1.578 2.266-.58 4.656-.596 6.944-.144.935.063 1.21-1.391.318-1.674-1.118-.26-2.274-.361-3.42-.374zm8.865 2.777c-.931-.1-1.262 1.29-.425 1.666 1.863 1.364 3.222 3.298 4.322 5.296.617.737 1.875-.145 1.398-.979-1.184-2.275-2.808-4.384-4.923-5.866a.863.863 0 00-.372-.117zM6.55 3.2c-.734.078-1.196.762-1.735 1.206C3.552 5.656 2.55 7.147 1.681 8.69c-.31.533-.71 1.33-.03 1.767.615.432 1.282-.132 1.446-.742.796-1.475 1.746-2.89 2.934-4.08.43-.548 1.292-.822 1.34-1.595a.874.874 0 00-.822-.839zm24.582 11.078c-.771-.033-1.004.82-.873 1.437.13 2.395-.471 4.797-1.615 6.897-.33.876.984 1.559 1.512.785a14.276 14.276 0 001.761-8.54.865.865 0 00-.785-.579zm-30.195.666c-.774-.06-1.032.785-.905 1.407.117 2.41.732 4.81 1.858 6.945.528.774 1.84.09 1.51-.786a15.932 15.932 0 01-1.672-6.874.876.876 0 00-.79-.692zm24.57 11.817c-.762.099-1.243.835-1.919 1.16-1.514 1.002-3.237 1.632-4.978 2.092-.864.423-.307 1.855.616 1.591 2.528-.578 4.93-1.75 6.913-3.421.469-.522.07-1.42-.631-1.422zm-19.16.042c-.845.001-1.12 1.228-.395 1.628 1.665 1.401 3.667 2.348 5.76 2.912.618.178 1.482.565 1.893-.177.355-.628-.226-1.297-.87-1.326-1.972-.515-3.912-1.285-5.5-2.594-.26-.213-.522-.472-.888-.443z"})),MultipleStartEventNonInterrupting:({styles:e={},...t})=>rS("svg",OW({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M23.621 13.524L16 7.99l-7.622 5.534 2.911 8.952h9.422l2.911-8.952zm-1.016.33l-2.523 7.759h-8.165l-2.524-7.76L16 9.059l6.606 4.796zM16.132 0c-1.51.016-3.055.139-4.492.614-.854.442-.266 1.861.651 1.578 2.266-.58 4.656-.596 6.944-.144.935.063 1.21-1.391.318-1.674-1.118-.26-2.274-.361-3.42-.374zm8.865 2.777c-.931-.1-1.262 1.29-.425 1.666 1.863 1.364 3.222 3.298 4.322 5.296.617.737 1.875-.145 1.398-.979-1.184-2.275-2.808-4.384-4.923-5.866a.863.863 0 00-.372-.117zM6.55 3.2c-.734.078-1.196.762-1.735 1.206C3.552 5.656 2.55 7.147 1.681 8.69c-.31.533-.71 1.33-.03 1.767.615.432 1.282-.132 1.446-.742.796-1.475 1.746-2.89 2.934-4.08.43-.548 1.292-.822 1.34-1.595a.874.874 0 00-.822-.839zm24.582 11.078c-.771-.033-1.004.82-.873 1.437.13 2.395-.471 4.797-1.615 6.897-.33.876.984 1.559 1.512.785a14.276 14.276 0 001.761-8.54.865.865 0 00-.785-.579zm-30.195.666c-.774-.06-1.032.785-.905 1.407.117 2.41.732 4.81 1.858 6.945.528.774 1.84.09 1.51-.786a15.932 15.932 0 01-1.672-6.874.876.876 0 00-.79-.692zm24.57 11.817c-.762.099-1.243.835-1.919 1.16-1.514 1.002-3.237 1.632-4.978 2.092-.864.423-.307 1.855.616 1.591 2.528-.578 4.93-1.75 6.913-3.421.469-.522.07-1.42-.631-1.422zm-19.16.042c-.845.001-1.12 1.228-.395 1.628 1.665 1.401 3.667 2.348 5.76 2.912.618.178 1.482.565 1.893-.177.355-.628-.226-1.297-.87-1.326-1.972-.515-3.912-1.285-5.5-2.594-.26-.213-.522-.472-.888-.443z"})),ParallelMultipleStartEventNonInterrupting:({styles:e={},...t})=>rS("svg",PW({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M13.503 9.016v4.428H9.075v4.98h4.428v4.428h4.98v-4.427h4.428v-4.981h-4.427V9.016h-4.981zm.83.83h3.32v4.428h4.428v3.32h-4.428v4.428h-3.32v-4.454H9.905v-3.294h4.428V9.846zM16.12 0h-.232l-.22.004h-.012l-.221.006h-.012l-.22.01h-.012l-.22.013h-.012l-.22.016h-.012l-.22.019h-.005l-.006.001-.22.021h-.006l-.005.001-.22.025h-.011l-.22.028h-.005l-.006.002-.219.03h-.005l-.006.001-.218.033-.006.001-.006.001-.217.036-.006.001-.006.001-.217.039-.006.001-.006.001-.216.042-.006.001-.006.001-.215.045-.006.001-.006.002-.215.047-.006.002-.006.001-.214.05-.006.002-.006.002-.115.029-.152.053-.14.081-.122.106-.1.126-.075.143-.047.154-.018.16.012.16.042.156.07.145.095.13.118.11.137.086.15.059.158.03h.161l.132-.022.11-.028.202-.047.203-.046.208-.043.202-.039.206-.037.206-.034.205-.03.208-.03.205-.025.209-.023.208-.02.21-.017.209-.015.207-.011.21-.009.21-.006.207-.003h.21l.21.002.207.005.207.008.212.011.207.014.208.017.209.019.208.022.205.025.206.028.207.03.208.035.205.036.202.039.052.01.16.018.16-.012.156-.042.146-.07.13-.096.109-.119.085-.136.06-.15.03-.159v-.16l-.03-.16-.059-.15-.086-.136-.109-.118-.13-.096-.145-.07-.128-.038-.057-.011-.006-.002h-.006l-.216-.042-.006-.001-.006-.001-.217-.039H18.9l-.006-.002-.217-.035-.006-.001-.006-.001-.218-.032-.006-.001-.006-.001-.218-.03h-.006l-.006-.001-.219-.027h-.011l-.22-.024-.005-.001h-.006l-.22-.021h-.006l-.006-.001-.22-.017-.005-.001h-.006L17.06.03h-.012l-.22-.012h-.012l-.22-.01h-.012l-.22-.005h-.012L16.132 0h-.012zm8.715 2.783l-.157.034-.149.063-.134.089-.116.112-.092.132-.067.147-.038.157-.008.16.021.16.051.153.079.141.103.124.102.087.052.038h.001l.087.064v.001l.082.061.002.001.076.059h.001l.084.065.082.066.002.001.079.063.002.002.077.063.081.067.002.002.077.065.076.065.001.002.08.07.078.07h.002l.075.068.077.072.002.001.073.069.077.073.072.07.002.001.077.076.07.07v.001l.075.076.07.073.002.001.074.079.002.002.069.074.069.075.074.082.07.08.002.001.068.079h.001l.067.079.068.082.065.078.001.002.068.083.067.084.063.081.001.002.067.087.002.002.063.084.001.001.064.087.008.01.008.01.095.12.093.121.09.119.087.119.088.122.086.123.084.12.081.122.001.002.084.126.08.126.08.127.077.126.079.131.074.127.075.131.073.131.07.13.07.133.069.133.045.09.086.137.109.119.13.096.144.07.156.042.16.013.16-.017.155-.047.143-.075.126-.1.106-.121.082-.14.054-.151.025-.16-.005-.16-.035-.158-.05-.124-.048-.095-.002-.004-.002-.004-.073-.14-.002-.005-.002-.004-.074-.14-.002-.004-.002-.004-.076-.14-.002-.003-.002-.004-.077-.139-.003-.004-.002-.004-.078-.138-.003-.004-.002-.003-.08-.137-.002-.004-.003-.004-.081-.136-.002-.004-.003-.004-.083-.136-.002-.003-.002-.004-.085-.135-.002-.004-.003-.003-.085-.134-.003-.004-.002-.004-.087-.132-.003-.004-.003-.004-.088-.132-.003-.003-.002-.004-.09-.13-.003-.005-.003-.003-.091-.13-.003-.004-.002-.004-.093-.129-.003-.003-.003-.004-.094-.128-.003-.004-.003-.003-.095-.127-.003-.004-.003-.004-.097-.125-.003-.004-.003-.004-.09-.114-.06-.082-.003-.003-.002-.003-.069-.091-.002-.004-.002-.003-.07-.09-.003-.003-.002-.003-.07-.09-.003-.003-.002-.003-.071-.09-.002-.003-.003-.002-.072-.089-.002-.003-.002-.003-.073-.088-.002-.003-.002-.002-.074-.087-.002-.003-.002-.003-.074-.086-.003-.003-.002-.003-.074-.086-.003-.002-.002-.003-.075-.085-.003-.003-.002-.002-.076-.084-.002-.003-.003-.003-.076-.083-.002-.003-.003-.003-.077-.082-.002-.003-.003-.002-.077-.082-.003-.003-.003-.002-.078-.081-.002-.003-.003-.003-.078-.08-.003-.002-.003-.003-.079-.08-.002-.002-.003-.002-.08-.08-.002-.002-.003-.002-.08-.078-.003-.003-.003-.002-.08-.077-.003-.003-.003-.002-.082-.077-.002-.002-.003-.002-.082-.076-.003-.002-.002-.003-.083-.075-.003-.002-.002-.003-.084-.074-.002-.002-.003-.002-.084-.074-.003-.002-.002-.002-.085-.073-.002-.002-.003-.003-.085-.071-.003-.003-.002-.002-.086-.07-.003-.003-.002-.002-.086-.07-.003-.003-.003-.002-.086-.07-.003-.002-.003-.002-.087-.069-.002-.002-.003-.002-.088-.068-.002-.002-.003-.002-.088-.067-.003-.003-.003-.002-.088-.066-.003-.002-.003-.002-.089-.066-.003-.002-.003-.002-.057-.042-.14-.082-.15-.055-.16-.026-.16.004zM6.377 3.21l-.157.037-.148.066-.111.074-.007.006-.003.002-.003.002-.086.069-.003.002-.002.002-.086.07-.003.002-.002.002-.086.07-.002.003-.003.002-.085.071-.002.002-.003.003-.084.071-.003.003-.002.002-.084.072-.003.003-.002.002-.083.073-.003.003-.002.002-.083.074-.002.002-.003.003-.082.074-.003.003-.002.002-.081.076-.003.002-.003.002-.08.077-.003.002-.003.003-.08.076-.002.003-.003.002-.08.078-.002.002-.003.003-.079.078-.002.003-.003.002-.078.08-.003.002-.002.002-.078.08-.002.003-.003.002-.077.08-.003.004-.002.002-.077.081-.002.003-.003.003-.076.082-.002.002-.003.003-.075.082-.002.003-.003.003-.074.083-.003.003-.002.003-.074.084-.003.003-.002.002-.074.085-.002.003-.002.003-.073.085-.003.003-.002.003-.072.086-.002.003-.003.003-.071.087-.003.003-.002.002-.07.088-.003.003-.002.003-.07.088-.003.003-.002.003-.07.09-.002.002-.002.003-.069.09-.002.003-.003.003-.068.09-.002.003-.002.003-.067.092-.003.003-.002.003-.067.092-.002.003-.002.003-.066.092-.002.003-.002.004-.066.093-.002.003-.002.003-.065.094-.002.003-.002.004-.064.094-.002.003-.002.004-.063.095-.002.003-.002.003-.063.097-.002.003-.002.003-.046.073-.05.07-.003.002-.002.003-.067.093-.003.003-.002.003-.066.094-.002.003-.002.003-.066.094-.002.003-.002.003-.064.094-.002.004-.002.003-.064.094-.002.004-.002.003-.062.095-.002.003-.002.003-.062.096-.002.003-.002.003-.06.096-.003.003-.002.003-.06.096-.001.004-.002.003-.059.096-.002.004-.002.003-.058.097-.002.003-.001.003-.057.098-.002.003-.002.003-.056.098-.002.003-.002.003-.055.098-.002.004-.001.003-.055.098-.001.004-.002.003-.054.099-.001.003-.002.003-.052.1-.002.002-.002.004-.051.1-.002.002-.002.004-.05.1-.002.003-.002.003-.05.1v.003l-.002.004-.05.1v.003l-.002.004-.048.1-.002.004-.001.003-.047.101-.002.003-.001.004-.013.027-.052.152-.024.16.006.16.037.157.064.148.091.133.114.114.134.09.147.065.157.036.162.006.159-.024.152-.053.14-.08.122-.105.1-.126.066-.117.01-.023.044-.095.045-.095.002-.003.042-.087.048-.097.048-.095v-.001l.048-.092.001-.001.047-.09.05-.093.002-.002.049-.09.052-.092.001-.002.051-.089.001-.002.051-.087.053-.088.001-.002.055-.091.057-.091.057-.09.001-.002.057-.089.055-.083.001-.002.06-.09.06-.088.062-.089.001-.001.06-.084.063-.088.065-.089.017-.023.016-.025.06-.094.059-.09v-.002l.058-.086.057-.086.001-.001.062-.09.062-.088.001-.002.06-.085.002-.002.06-.082.063-.087.064-.084.002-.002.061-.08.065-.084.064-.08v-.001l.067-.083.067-.082.07-.083.069-.08.063-.074.074-.083.068-.077.002-.002.07-.076.07-.075.072-.077.001-.001.067-.07.076-.078.002-.002.07-.07.075-.075.002-.002.072-.07.075-.072.002-.002.073-.069.074-.068.001-.001.08-.073.076-.068.002-.002.072-.063v-.001l.078-.067.079-.068.002-.001.08-.068.002-.002.077-.063.082-.066.001-.001.075-.06.002-.002.006-.004.117-.111.094-.131.068-.146.04-.156.01-.161-.019-.16-.049-.154-.076-.141-.102-.125-.123-.105-.14-.079-.153-.052-.16-.023-.16.007zm24.596 11.088l-.156.04-.146.067-.131.094-.112.117-.087.135-.061.15-.033.157-.004.134.007.142.005.152.004.15.002.149v.153l.001.011v.015l.004.11.002.11v.002l.002.106v.321l-.003.102-.002.106-.004.107-.005.105-.006.106-.006.106-.008.106v.002l-.008.103v.002l-.01.1-.01.105-.01.105-.013.105-.012.099v.002l-.014.108-.014.1-.016.105-.016.103v.002l-.017.099-.018.104-.019.103v.002l-.019.097-.02.104-.022.103v.001l-.022.098-.023.103v.002l-.024.096-.025.103v.002l-.024.096-.027.102v.003l-.026.093v.001l-.029.103v.002l-.03.099-.028.097v.002l-.03.095-.03.096v.001l-.033.1-.031.095v.002l-.035.1v.003l-.034.094v.003l-.035.096v.001l-.034.09v.002l-.038.098-.036.093v.002l-.038.095-.079.194-.08.188-.085.189-.087.19-.09.184-.092.183-.095.184-.05.093-.064.148-.034.158-.005.16.026.16.054.151.082.14.106.12.127.1.143.075.154.046.16.017.161-.013.156-.042.144-.071.13-.096.109-.119.072-.112.053-.099.003-.005.003-.006.102-.195.003-.006.003-.006.098-.196.003-.006.003-.006.096-.197.002-.006.003-.006.093-.2.002-.006.003-.006.09-.2.002-.006.003-.007.086-.202.003-.006.002-.006.084-.203.002-.005.001-.005.04-.102.002-.003.001-.003.04-.103.001-.003.001-.003.04-.103v-.004l.001-.003.039-.103v-.003l.002-.003.037-.104.001-.003.001-.003.037-.104v-.004l.002-.003.035-.104.002-.003v-.004l.035-.104.002-.004v-.003l.034-.105.002-.003v-.003l.034-.105v-.004l.002-.003.032-.106.001-.003.001-.003.031-.106.001-.003.001-.004.031-.106.001-.003.001-.004.03-.106v-.003l.002-.004.028-.107.001-.003.001-.003.028-.107.001-.004.001-.003.027-.107.001-.004v-.003l.027-.108.001-.003v-.004l.026-.108.001-.003v-.004l.025-.108.001-.003v-.004l.025-.108v-.004l.001-.003.023-.109v-.003l.001-.004.022-.109v-.003l.002-.004.02-.109.001-.004v-.003l.02-.11.002-.003v-.004l.02-.11v-.007l.019-.11v-.003l.001-.004.017-.11v-.004l.001-.003.017-.11v-.008l.016-.11v-.004l.001-.004.015-.11v-.008l.015-.111v-.008l.013-.111v-.007l.013-.112v-.007l.011-.112v-.004l.001-.004.01-.112v-.007l.01-.112v-.008l.008-.112v-.008l.007-.113v-.007l.007-.113v-.008l.005-.113v-.007l.005-.114v-.007l.003-.114v-.007l.003-.114v-.129l.001-.114v-.13l-.003-.114v-.008l-.003-.115v-.007l-.003-.102v-.155l-.003-.158v-.01l-.004-.158v-.01l-.006-.158v-.01l-.007-.148-.023-.16-.051-.152-.08-.14-.103-.124-.125-.102-.142-.077-.153-.05-.16-.02-.161.01zm-30.213.66l-.157.034-.149.063-.134.09-.115.113-.092.132-.067.147-.037.156-.009.134.001.11V15.95l.006.22v.012l.01.22v.012l.012.22v.006l.001.006.015.22v.005l.001.006.018.22.001.006v.006l.022.219v.006l.001.006.024.219.001.006v.006l.028.218.001.006v.006l.031.218.001.006.001.006.033.218.001.006.001.005.037.218v.006l.002.005.04.217v.006l.001.006.043.216.001.006.001.006.046.216v.005l.002.006.048.215.002.006.001.006.051.214.002.006v.006l.055.214.002.005.001.006.057.213.002.006.001.005.06.213.002.005.001.006.063.212.002.005.001.006.066.21.002.006.002.006.068.21.002.005.002.005.07.21.003.005.002.005.074.208.002.006.002.005.077.207.002.006.002.005.08.206.002.005.002.006.082.204.002.006.002.005.086.204.002.005.002.006.088.202.002.005.003.006.09.2.003.006.002.005.094.2.002.006.003.005.096.199.002.005.003.005.03.062.086.137.11.118.128.097.145.07.156.043.16.013.16-.017.155-.047.143-.074.127-.1.106-.121.081-.14.055-.15.025-.16-.005-.161-.034-.158-.05-.124-.028-.055-.092-.19-.087-.188-.087-.192-.083-.19-.08-.193-.078-.194-.076-.196-.073-.195-.07-.197-.067-.198-.065-.199-.063-.2-.059-.2-.056-.2-.055-.204-.05-.201-.049-.202-.046-.205-.043-.206-.04-.203-.038-.207-.034-.204-.032-.207-.028-.205-.026-.207-.023-.208-.02-.207-.018-.207-.014-.208-.011-.207-.009-.208-.005-.207-.002-.104-.017-.16-.046-.155-.074-.143-.1-.126-.121-.107-.139-.081-.152-.055-.159-.025-.161.004zm24.585 11.83l-.156.039-.146.068-.11.076-.015.012-.163.129-.166.127-.168.125-.17.124-.17.12-.172.118-.173.115-.176.114-.177.111-.18.11-.178.105-.182.104-.182.101-.184.1-.184.095-.189.095-.186.09-.188.089-.19.086-.19.082-.193.081-.195.078-.191.074-.197.073-.195.07-.196.065-.198.064-.198.061-.2.058-.2.055-.2.052-.2.049-.151.035-.153.05-.141.078-.125.103-.103.124-.078.14-.05.154-.022.16.009.16.038.157.067.147.093.132.116.112.134.089.149.062.158.034.16.003.133-.02.158-.035.006-.002.006-.001.213-.052.006-.002.007-.001.212-.056.006-.001.006-.002.212-.058.006-.002.006-.002.211-.061.006-.002.006-.002.21-.064.006-.002.006-.002.21-.067.005-.002.006-.002.208-.07.006-.002.006-.003.207-.073.006-.002.006-.002.206-.077.006-.002.005-.002.206-.08.005-.001.006-.003.204-.082.006-.002.005-.002.203-.085.006-.003.005-.002.202-.088.006-.002.005-.003.2-.09.006-.003.006-.003.2-.093.005-.003.005-.002.198-.096.006-.003.005-.003.197-.099.005-.002.005-.003.196-.102.005-.002.005-.003.195-.105.005-.002.005-.003.193-.107.005-.003.005-.003.191-.11.005-.003.005-.003.19-.112.005-.003.005-.003.189-.115.005-.003.005-.003.187-.117.005-.003.004-.004.186-.12.005-.003.004-.003.184-.122.005-.003.005-.004.182-.125.004-.003.005-.003.18-.128.005-.003.005-.003.179-.13.004-.003.005-.004.177-.132.004-.004.005-.003.175-.135.005-.003.004-.004.173-.137.005-.003.004-.004.019-.015.115-.113.092-.132.066-.147.038-.157.008-.16-.022-.16-.052-.153-.079-.14-.103-.124-.125-.102-.142-.078-.153-.05-.16-.02-.16.01zm-19.17.054l-.153.051-.14.079-.124.103-.103.125-.077.141-.05.153-.02.16.009.161.04.156.067.147.093.131.095.094.047.04.005.004.005.004.17.14.005.004.005.004.172.137.004.004.005.003.086.067.003.002.003.002.087.067.003.002.003.002.088.066.002.003.003.002.089.065.002.002.003.002.09.065.002.002.003.002.09.064.002.002.003.002.09.063.003.002.003.002.09.063.003.002.003.002.092.062.002.002.003.002.092.061.003.002.003.002.092.06.003.003.003.001.093.06.003.002.003.002.093.06.003.001.003.002.094.058.003.002.003.002.095.058.003.001.003.002.095.057.003.002.003.002.095.056.003.002.003.002.096.055.004.002.003.001.096.055.003.002.003.002.098.053.003.002.003.002.097.053.004.002.003.001.098.053.003.001.003.002.099.052.003.001.003.002.1.05.003.002.003.002.1.05.003.002.003.001.1.05h.003l.004.003.1.048.004.001.003.002.101.048.003.001.004.002.101.046.004.002.003.001.102.046.004.002.003.001.103.045.003.002.003.001.103.045.004.001.003.002.104.043.003.001.004.002.104.042.003.002.004.001.104.042.004.001.003.002.105.04.004.002.003.001.106.04.003.002h.004l.106.04.004.001.003.002.107.038.003.001.004.001.107.038.003.001.004.001.107.037.004.001.004.001.108.036.003.001.004.001.108.035.004.001.003.001.11.034.003.001.004.001.109.033.004.002h.003l.11.033h.004l.003.002.11.031.004.001.004.001.084.023.081.028.004.001.003.001.109.037.003.001.004.001.109.036.003.001.004.001.109.035h.003l.004.002.11.033.003.001.003.001.11.033.003.001.004.001.109.031.004.002h.003l.11.031.003.001.004.001.11.03h.003l.003.001.11.029h.004l.003.002.11.027.003.001.004.001.11.027h.003l.004.001.004.001.16.022.16-.008.157-.038.147-.067.132-.092.112-.116.09-.134.062-.149.034-.157.004-.161-.025-.16-.055-.151-.082-.139-.107-.12-.127-.1-.143-.074-.124-.04h-.003l-.104-.025-.103-.026h-.002l-.095-.026h-.001l-.101-.027h-.002l-.1-.028h-.002l-.103-.03-.104-.032-.097-.03h-.002l-.103-.033-.102-.033-.101-.034-.106-.036-.027-.01-.027-.007-.107-.03-.104-.029-.104-.03h-.002l-.097-.03-.102-.032-.102-.032-.102-.034-.103-.035-.096-.034-.1-.036-.101-.037h-.002l-.094-.036-.096-.037-.097-.04h-.002l-.099-.04-.098-.042h-.002l-.092-.04-.097-.043-.095-.043-.097-.044h-.002l-.09-.043-.094-.045-.094-.046-.093-.047-.09-.046-.096-.05-.088-.047-.002-.001-.09-.049-.094-.052-.002-.002-.087-.049-.087-.05h-.002l-.088-.053h-.001l-.09-.055-.086-.052-.002-.001-.089-.055-.084-.054h-.002l-.09-.059h-.001l-.085-.056-.001-.001-.084-.056-.082-.056h-.001l-.086-.06-.082-.058H7.79l-.086-.062-.002-.002-.08-.058-.081-.06h-.001l-.085-.064-.002-.002-.076-.058-.002-.002-.082-.064-.161-.128-.162-.133-.04-.034-.132-.092-.147-.066-.157-.038-.16-.008-.16.022z",opacity:".98"})),SignalStartEventNonInterrupting:({styles:e={},...t})=>rS("svg",MW({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M16.007 8.82L9.21 21.022h13.596L16.007 8.82zm0 1.775l5.328 9.563H10.68l5.327-9.563zM16.14.386c-1.571.236-4.195-.284-4.9 1.381.619 1.703 2.745.069 4.085.365 1.421-.13 2.84.2 4.235.259C21.27.784 18.19.344 17 .413a20.456 20.456 0 00-.86-.027zM25 3.162c-2.19.694.401 2.26 1.181 3.094 1.083 1.152 1.954 2.484 2.715 3.864 1.48 1.005 1.845-1.26.81-2.03-1.158-1.897-2.613-3.704-4.513-4.89l-.192-.038zm-18.438.423c-1.793.712-2.909 2.548-4.01 4.061-.773.814-2.211 3.653.005 3.211 1.123-1.469 1.87-3.306 3.267-4.614.664-.7 2.73-2.013.738-2.658zm24.57 11.072c-1.659.435-.468 2.667-.99 3.895a13.427 13.427 0 01-1.497 4.435c-.23 1.659 1.991 1.165 2.018-.199a14.277 14.277 0 001.254-7.552.865.865 0 00-.785-.579zm-30.18.666c-1.677.386-.633 2.667-.608 3.876.371 1.623.792 3.35 1.79 4.696 2.382.321.571-2.338.292-3.492a15.92 15.92 0 01-.684-4.39.877.877 0 00-.79-.69zm24.558 11.81c-1.755.865-3.303 2.266-5.274 2.765-1.162-.016-3.074 1.271-1.331 2.102 2.66-.447 5.163-1.733 7.236-3.445.472-.506.06-1.432-.631-1.421zm-19.151.043c-2.004.786.416 2.405 1.43 2.913 1.608.904 3.379 1.636 5.208 1.877 1.77-.804-.228-2.094-1.357-2.073-1.75-.537-3.403-1.396-4.798-2.586l-.227-.104-.256-.027z"})),TimerStartEventNonInterrupting:({styles:e={},...t})=>rS("svg",AW({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M15.991 8.7c-3.018-.042-5.92 1.925-7.03 4.725-1.138 2.695-.509 6.011 1.537 8.102 1.99 2.142 5.267 2.93 8.013 1.927 2.877-.98 4.99-3.826 5.067-6.87.153-2.956-1.624-5.88-4.299-7.135a7.551 7.551 0 00-3.288-.75zm0 1.383c2.758-.052 5.372 1.972 6.014 4.654.704 2.578-.482 5.516-2.79 6.867-2.358 1.48-5.682 1.085-7.617-.919-2.043-1.97-2.407-5.38-.84-7.743 1.11-1.764 3.149-2.88 5.233-2.86zm1.962 1.764l-2.074 3.762c-.64.068-.793 1.04-.202 1.3.39.27.696-.18 1.052-.165h3.17v-.865h-3.182l1.993-3.614-.757-.418zM16.12.358h-.232l-.22.004h-.012l-.221.006h-.012l-.22.01h-.012l-.22.013h-.012l-.22.016h-.012l-.22.019h-.005l-.006.001-.22.021h-.006l-.005.001-.22.025h-.011l-.22.028h-.005l-.006.002-.219.03h-.005l-.006.001-.218.033-.006.001-.006.001-.217.036-.006.001-.006.001-.217.039-.006.001-.006.001-.216.042-.006.001-.006.001-.215.045-.006.001-.006.002-.215.047-.006.002-.006.001-.214.05-.006.002-.006.002-.115.029-.152.053-.14.081-.122.106-.1.126-.075.143-.047.154-.018.16.012.16.042.156.07.145.095.13.118.11.137.086.15.059.158.03h.161l.132-.022.11-.028.202-.047.203-.046.208-.043.202-.039.206-.037.206-.034.205-.03.208-.03.205-.025.209-.023.208-.02.21-.017.209-.015.207-.011.21-.009.21-.006.207-.003h.21l.21.002.207.005.207.008.212.011.207.014.208.017.209.019.208.022.205.025.206.028.207.03.208.035.205.036.202.039.052.01.16.018.16-.012.156-.042.146-.07.13-.096.109-.119.085-.136.06-.15.03-.159v-.16l-.03-.16-.059-.15-.086-.136L19.823.9l-.13-.096-.145-.07-.128-.038-.057-.011-.006-.002h-.006L19.135.64l-.006-.001-.006-.001-.217-.039H18.9l-.006-.002-.217-.035-.006-.001-.006-.001-.218-.032-.006-.001-.006-.001-.218-.03h-.006l-.006-.001-.219-.027h-.011l-.22-.024-.005-.001h-.006l-.22-.021h-.006L17.512.42l-.22-.017-.005-.001h-.006l-.22-.015h-.012l-.22-.012h-.012l-.22-.01h-.012l-.22-.005h-.012l-.221-.003h-.012zm8.715 2.783l-.157.034-.149.063-.134.089-.116.112-.092.132-.067.147-.038.157-.008.16.021.16.051.153.079.141.103.124.102.087.052.038h.001l.087.064v.001l.082.061.002.001.076.059h.001l.084.065.082.066.002.001.079.063.002.002.077.063.081.067.002.002.077.065.076.065.001.002.08.07.078.07h.002l.075.068.077.072.002.001.073.069.077.073.072.07.002.001.077.076.07.07v.001l.075.076.07.073.002.001.074.079.002.002.069.074.069.075.074.082.07.08.002.001.068.079h.001l.067.079.068.082.065.078.001.002.068.083.067.084.063.081.001.002.067.087.002.002.063.084.001.001.064.087.008.01.008.01.095.12.093.121.09.119.087.119.088.122.086.123.084.12.081.122.001.002.084.126.08.126.08.127.077.126.079.131.074.127.075.131.073.131.07.13.07.133.069.133.045.09.086.137.109.119.13.096.144.07.156.042.16.013.16-.017.155-.047.143-.075.126-.1.106-.121.082-.14.054-.151.025-.16-.005-.16-.035-.158-.05-.124-.048-.095-.002-.004-.002-.004-.073-.14-.002-.005-.002-.004-.074-.14-.002-.004-.002-.004-.076-.14-.002-.003-.002-.004-.077-.139-.003-.004-.002-.004-.078-.138-.003-.004-.002-.003-.08-.137-.002-.004-.003-.004-.081-.136-.002-.004-.003-.004-.083-.136-.002-.003-.002-.004-.085-.135-.002-.004-.003-.003-.085-.134-.003-.004-.002-.004-.087-.132-.003-.004-.003-.004-.088-.132-.003-.003-.002-.004-.09-.13-.003-.005-.003-.003-.091-.13-.003-.004-.002-.004-.093-.129-.003-.003-.003-.004-.094-.128-.003-.004-.003-.003-.095-.127-.003-.004-.003-.004-.097-.125-.003-.004-.003-.004-.09-.114-.06-.082-.003-.003-.002-.003-.069-.091-.002-.004-.002-.003-.07-.09-.003-.003-.002-.003-.07-.09-.003-.003-.002-.003-.071-.09-.002-.003-.003-.002-.072-.089-.002-.003-.002-.003-.073-.088-.002-.003-.002-.002-.074-.087-.002-.003-.002-.003-.074-.086-.003-.003-.002-.003-.074-.086-.003-.002-.002-.003-.075-.085-.003-.003-.002-.002-.076-.084-.002-.003-.003-.003-.076-.083-.002-.003-.003-.003-.077-.082-.002-.003-.003-.002-.077-.082-.003-.003-.003-.002-.078-.081-.002-.003-.003-.003-.078-.08-.003-.002-.003-.003-.079-.08-.002-.002-.003-.002-.08-.08-.002-.002-.003-.002-.08-.078-.003-.003-.003-.002-.08-.077-.003-.003-.003-.002-.082-.077-.002-.002-.003-.002-.082-.076-.003-.002-.002-.003-.083-.075-.003-.002-.002-.003-.084-.074-.002-.002-.003-.002-.084-.074-.003-.002-.002-.002-.085-.073-.002-.002-.003-.003-.085-.071-.003-.003-.002-.002-.086-.07-.003-.003-.002-.002-.086-.07-.003-.003-.003-.002-.086-.07-.003-.002-.003-.002-.087-.069-.002-.002-.003-.002-.088-.068-.002-.002-.003-.002-.088-.067-.003-.003-.003-.002-.088-.066-.003-.002-.003-.002-.089-.066-.003-.002-.003-.002-.057-.042-.14-.082-.15-.055-.16-.026-.16.004zm-18.458.426l-.157.037-.148.066-.111.074-.007.006-.003.002-.003.002-.086.069-.003.002-.002.002-.086.07-.003.002-.002.002-.086.07-.002.003-.003.002-.085.071-.002.002-.003.003-.084.071-.003.003-.002.002-.084.072-.003.003-.002.002-.083.073-.003.003-.002.002-.083.074-.002.002-.003.003-.082.074-.003.003-.002.002-.081.076-.003.002-.003.002-.08.077-.003.002-.003.003-.08.076-.002.003-.003.002-.08.078-.002.002-.003.003-.079.078-.002.003-.003.002-.078.08-.003.002-.002.002-.078.08-.002.003-.003.002-.077.08-.003.004-.002.002-.077.081-.002.003-.003.003-.076.082-.002.002-.003.003-.075.082-.002.003-.003.003-.074.083-.003.003-.002.003-.074.084-.003.003-.002.002-.074.085-.002.003-.002.003-.073.085-.003.003-.002.003-.072.086-.002.003-.003.003-.071.087-.003.003-.002.002-.07.088-.003.003-.002.003-.07.088-.003.003-.002.003-.07.09-.002.002-.002.003-.069.09-.002.003-.003.003-.068.09-.002.003-.002.003-.067.092-.003.003-.002.003-.067.092-.002.003-.002.003-.066.092-.002.003-.002.004-.066.093-.002.003-.002.003-.065.094-.002.003-.002.004-.064.094-.002.003-.002.004-.063.095-.002.003-.002.003-.063.097-.002.003-.002.003-.046.073-.05.07-.003.002-.002.003-.067.093-.003.003-.002.003-.066.094-.002.003-.002.003-.066.094-.002.003-.002.003-.064.094-.002.004-.002.003-.064.094-.002.004-.002.003-.062.095-.002.003-.002.003-.062.096-.002.003-.002.003-.06.096-.003.003-.002.003-.06.096-.001.004-.002.003-.059.096-.002.004-.002.003-.058.097-.002.003-.001.003-.057.098-.002.003-.002.003-.056.098-.002.003-.002.003-.055.098-.002.004-.001.003-.055.098-.001.004-.002.003-.054.099-.001.003-.002.003-.052.1-.002.002-.002.004-.051.1-.002.002-.002.004-.05.1-.002.003-.002.003-.05.1v.003l-.002.004-.05.1V9.5l-.002.004-.048.1-.002.004-.001.003-.047.101-.002.003-.001.004-.013.027-.052.152-.024.16.006.16.037.157.064.148.091.133.114.114.134.09.147.065.157.036.162.006.159-.024.152-.053.14-.08.122-.105.1-.126.066-.117.01-.023.044-.095.045-.095.002-.003.042-.087.048-.097.048-.095v-.001l.048-.092.001-.001.047-.09.05-.093.002-.002.049-.09.052-.092.001-.002.051-.089.001-.002.051-.087.053-.088.001-.002.055-.091.057-.091.057-.09.001-.002.057-.089.055-.083.001-.002.06-.09.06-.088.062-.089.001-.001.06-.084.063-.088.065-.089.017-.023.016-.025.06-.094.059-.09v-.002l.058-.086.057-.086.001-.001.062-.09.062-.088.001-.002.06-.085.002-.002.06-.082.063-.087.064-.084.002-.002.061-.08.065-.084.064-.08v-.001l.067-.083.067-.082.07-.083.069-.08.063-.074.074-.083.068-.077.002-.002.07-.076.07-.075.072-.077.001-.001.067-.07.076-.078.002-.002.07-.07.075-.075.002-.002.072-.07.075-.072.002-.002.073-.069.074-.068.001-.001.08-.073.076-.068.002-.002.072-.063v-.001l.078-.067.079-.068.002-.001.08-.068.002-.002.077-.063.082-.066.001-.001.075-.06.002-.002.006-.004.117-.111.094-.131.068-.146.04-.156.01-.161-.019-.16-.049-.154-.076-.141-.102-.125-.123-.105-.14-.079-.153-.052-.16-.023-.16.007zm24.596 11.088l-.156.04-.146.067-.131.094-.112.117-.087.135-.061.15-.033.157-.004.134.007.142.005.152.004.15.002.149v.153l.001.011v.015l.004.11.002.11v.002l.002.106v.321l-.003.102-.002.106-.004.107-.005.105-.006.106-.006.106-.008.106v.002l-.008.103v.002l-.01.1-.01.105-.01.105-.013.105-.012.099v.002l-.014.108-.014.1-.016.105-.016.103v.002l-.017.099-.018.104-.019.103v.002l-.019.097-.02.104-.022.103v.001l-.022.098-.023.103v.002l-.024.096-.025.103v.002l-.024.096-.027.102v.003l-.026.093v.001l-.029.103v.002l-.03.099-.028.097v.002l-.03.095-.03.096v.001l-.033.1-.031.095v.002l-.035.1v.003l-.034.094v.003l-.035.096v.001l-.034.09v.002l-.038.098-.036.093v.002l-.038.095-.079.194-.08.188-.085.189-.087.19-.09.184-.092.183-.095.184-.05.093-.064.148-.034.158-.005.16.026.16.054.151.082.14.106.12.127.1.143.075.154.046.16.017.161-.013.156-.042.144-.071.13-.096.109-.119.072-.112.053-.099.003-.005.003-.006.102-.195.003-.006.003-.006.098-.196.003-.006.003-.006.096-.197.002-.006.003-.006.093-.2.002-.006.003-.006.09-.2.002-.006.003-.007.086-.202.003-.006.002-.006.084-.203.002-.005.001-.005.04-.102.002-.003.001-.003.04-.103.001-.003.001-.003.04-.103v-.004l.001-.003.039-.103v-.003l.002-.003.037-.104.001-.003.001-.003.037-.104v-.004l.002-.003.035-.104.002-.003v-.004l.035-.104.002-.004v-.003l.034-.105.002-.003v-.003l.034-.105v-.004l.002-.003.032-.106.001-.003.001-.003.031-.106.001-.003.001-.004.031-.106.001-.003.001-.004.03-.106v-.003l.002-.004.028-.107.001-.003.001-.003.028-.107.001-.004.001-.003.027-.107.001-.004v-.003l.027-.108.001-.003v-.004l.026-.108.001-.003v-.004l.025-.108.001-.003v-.004l.025-.108v-.004l.001-.003.023-.109v-.003l.001-.004.022-.109v-.003l.002-.004.02-.109.001-.004v-.003l.02-.11.002-.003v-.004l.02-.11v-.007l.019-.11v-.003l.001-.004.017-.11v-.004l.001-.003.017-.11v-.008l.016-.11v-.004l.001-.004.015-.11v-.008l.015-.111v-.008l.013-.111v-.007l.013-.112v-.007l.011-.112v-.004l.001-.004.01-.112v-.007l.01-.112v-.008l.008-.112v-.008l.007-.113v-.007l.007-.113v-.008l.005-.113v-.007l.005-.114v-.007l.003-.114v-.007l.003-.114v-.129l.001-.114v-.13l-.003-.114V16.5l-.003-.115v-.007l-.003-.102v-.155l-.003-.158v-.01l-.004-.158v-.01l-.006-.158v-.01l-.007-.148-.023-.16-.051-.152-.08-.14-.103-.124-.125-.102-.142-.077-.153-.05-.16-.02-.161.01zm-30.213.66l-.157.034-.149.063-.134.09-.115.113-.092.132-.067.147-.037.156-.009.134.001.11V16.308l.006.22v.012l.01.22v.012l.012.22v.006l.001.006.015.22v.005l.001.006.018.22.001.006v.006l.022.219v.006l.001.006.024.219.001.006v.006l.028.218.001.006v.006l.031.218.001.006.001.006.033.218.001.006.001.005.037.218v.006l.002.005.04.217v.006l.001.006.043.216.001.006.001.006.046.216v.005l.002.006.048.215.002.006.001.006.051.214.002.006v.006l.055.214.002.005.001.006.057.213.002.006.001.005.06.213.002.005.001.006.063.212.002.005.001.006.066.21.002.006.002.006.068.21.002.005.002.005.07.21.003.005.002.005.074.208.002.006.002.005.077.207.002.006.002.005.08.206.002.005.002.006.082.204.002.006.002.005.086.204.002.005.002.006.088.202.002.005.003.006.09.2.003.006.002.005.094.2.002.006.003.005.096.199.002.005.003.005.03.062.086.137.11.118.128.097.145.07.156.043.16.013.16-.017.155-.047.143-.074.127-.1.106-.121.081-.14.055-.15.025-.16-.005-.161-.034-.158-.05-.124-.028-.055-.092-.19-.087-.188-.087-.192-.083-.19-.08-.193-.078-.194-.076-.196-.073-.195-.07-.197-.067-.198-.065-.199-.063-.2-.059-.2-.056-.2-.055-.204-.05-.201-.049-.202-.046-.205-.043-.206-.04-.203-.038-.207-.034-.204-.032-.207-.028-.205-.026-.207-.023-.208-.02-.207-.018-.207-.014-.208-.011-.207-.009-.208-.005-.207-.002-.104-.017-.16-.046-.155-.074-.143-.1-.126-.121-.107-.139-.081-.152-.055-.159-.025-.161.004zm24.585 11.83l-.156.039-.146.068-.11.076-.015.012-.163.129-.166.127-.168.125-.17.124-.17.12-.172.118-.173.115-.176.114-.177.111-.18.11-.178.105-.182.104-.182.101-.184.1-.184.095-.189.095-.186.09-.188.089-.19.086-.19.082-.193.081-.195.078-.191.074-.197.073-.195.07-.196.065-.198.064-.198.061-.2.058-.2.055-.2.052-.2.049-.151.035-.153.05-.141.078-.125.103-.103.124-.078.14-.05.154-.022.16.009.16.038.157.067.147.093.132.116.112.134.089.149.062.158.034.16.003.133-.02.158-.035.006-.002.006-.001.213-.052.006-.002.007-.001.212-.056.006-.001.006-.002.212-.058.006-.002.006-.002.211-.061.006-.002.006-.002.21-.064.006-.002.006-.002.21-.067.005-.002.006-.002.208-.07.006-.002.006-.003.207-.073.006-.002.006-.002.206-.077.006-.002.005-.002.206-.08.005-.001.006-.003.204-.082.006-.002.005-.002.203-.085.006-.003.005-.002.202-.088.006-.002.005-.003.2-.09.006-.003.006-.003.2-.093.005-.003.005-.002.198-.096.006-.003.005-.003.197-.099.005-.002.005-.003.196-.102.005-.002.005-.003.195-.105.005-.002.005-.003.193-.107.005-.003.005-.003.191-.11.005-.003.005-.003.19-.112.005-.003.005-.003.189-.115.005-.003.005-.003.187-.117.005-.003.004-.004.186-.12.005-.003.004-.003.184-.122.005-.003.005-.004.182-.125.004-.003.005-.003.18-.128.005-.003.005-.003.179-.13.004-.003.005-.004.177-.132.004-.004.005-.003.175-.135.005-.003.004-.004.173-.137.005-.003.004-.004.019-.015.115-.113.092-.132.066-.147.038-.157.008-.16-.022-.16-.052-.153-.079-.14-.103-.124-.125-.102-.142-.078-.153-.05-.16-.02-.16.01zm-19.17.054l-.153.051-.14.079-.124.103-.103.125-.077.141-.05.153-.02.16.009.161.04.156.067.147.093.131.095.094.047.04.005.004.005.004.17.14.005.004.005.004.172.137.004.004.005.003.086.067.003.002.003.002.087.067.003.002.003.002.088.066.002.003.003.002.089.065.002.002.003.002.09.065.002.002.003.002.09.064.002.002.003.002.09.063.003.002.003.002.09.063.003.002.003.002.092.062.002.002.003.002.092.061.003.002.003.002.092.06.003.003.003.001.093.06.003.002.003.002.093.06.003.001.003.002.094.058.003.002.003.002.095.058.003.001.003.002.095.057.003.002.003.002.095.056.003.002.003.002.096.055.004.002.003.001.096.055.003.002.003.002.098.053.003.002.003.002.097.053.004.002.003.001.098.053.003.001.003.002.099.052.003.001.003.002.1.05.003.002.003.002.1.05.003.002.003.001.1.05h.003l.004.003.1.048.004.001.003.002.101.048.003.001.004.002.101.046.004.002.003.001.102.046.004.002.003.001.103.045.003.002.003.001.103.045.004.001.003.002.104.043.003.001.004.002.104.042.003.002.004.001.104.042.004.001.003.002.105.04.004.002.003.001.106.04.003.002h.004l.106.04.004.001.003.002.107.038.003.001.004.001.107.038.003.001.004.001.107.037.004.001.004.001.108.036.003.001.004.001.108.035.004.001.003.001.11.034.003.001.004.001.109.033.004.002h.003l.11.033h.004l.003.002.11.031.004.001.004.001.084.023.081.028.004.001.003.001.109.037.003.001.004.001.109.036.003.001.004.001.109.035h.003l.004.002.11.033.003.001.003.001.11.033.003.001.004.001.109.031.004.002h.003l.11.031.003.001.004.001.11.03h.003l.003.001.11.029h.004l.003.002.11.027.003.001.004.001.11.027h.003l.004.001.004.001.16.022.16-.008.157-.038.147-.067.132-.092.112-.116.09-.134.062-.149.034-.157.004-.161-.025-.16-.055-.151-.082-.139-.107-.12-.127-.1-.143-.074-.124-.04h-.003l-.104-.025-.103-.026h-.002l-.095-.026h-.001l-.101-.027h-.002l-.1-.028h-.002l-.103-.03-.104-.032-.097-.03h-.002l-.103-.033-.102-.033-.101-.034-.106-.036-.027-.01-.027-.007-.107-.03-.104-.029-.104-.03h-.002l-.097-.03-.102-.032-.102-.032-.102-.034-.103-.035-.096-.034-.1-.036-.101-.037h-.002l-.094-.036-.096-.037-.097-.04h-.002l-.099-.04-.098-.042h-.002l-.092-.04-.097-.043-.095-.043-.097-.044h-.002l-.09-.043-.094-.045-.094-.046-.093-.047-.09-.046-.096-.05-.088-.047-.002-.001-.09-.049-.094-.052-.002-.002-.087-.049-.087-.05h-.002l-.088-.053h-.001l-.09-.055-.086-.052-.002-.001-.089-.055-.084-.054h-.002l-.09-.059h-.001l-.085-.056-.001-.001-.084-.056-.082-.056h-.001l-.086-.06-.082-.058H7.79l-.086-.062-.002-.002-.08-.058-.081-.06h-.001l-.085-.064-.002-.002-.076-.058-.002-.002-.082-.064-.161-.128-.162-.133-.04-.034-.132-.092-.147-.066-.157-.038-.16-.008-.16.022z"})),CancelBoundaryEvent:wV,CompensateBoundaryEvent:_V,ConditionalBoundaryEvent:kV,ErrorBoundaryEvent:CV,EscalationBoundaryEvent:PV,LinkBoundaryEvent:AV,MessageBoundaryEvent:BV,MultipleBoundaryEvent:DV,BoundaryEvent:nW,ConditionalBoundaryEventNonInterrupting:NV,EscalationBoundaryEventNonInterrupting:IV,MessageBoundaryEventNonInterrupting:$V,MultipleBoundaryEventNonInterrupting:qV,ParallelBoundaryEventNonInterrupting:VV,SignalBoundaryEventNonInterrupting:GV,TimerBoundaryEventNonInterrupting:XV,ParallelMultipleBoundaryEvent:YV,SignalBoundaryEvent:ZV,TimerBoundaryEvent:eW,StartEvent:({styles:e={},...t})=>rS("svg",TW({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M15.847.004C9.61-.016 3.624 4.014 1.257 9.78-1.235 15.49.06 22.581 4.42 27.034c4.193 4.513 11.101 6.17 16.887 4.058 5.996-2.042 10.423-7.93 10.664-14.268.403-6.228-3.26-12.441-8.87-15.154A15.924 15.924 0 0015.846.004zm.439 1.729c6.105.033 11.856 4.45 13.435 10.359 1.678 5.653-.592 12.198-5.463 15.547-5.06 3.719-12.564 3.45-17.343-.625-4.814-3.84-6.538-10.94-4.067-16.57 2.14-5.206 7.515-8.775 13.147-8.71.097-.001.194-.002.29-.001z"})),ParallelMultipleStartEvent:({styles:e={},...t})=>rS("svg",BW({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M15.847 0C9.61-.02 3.624 4.01 1.257 9.775-1.235 15.485.06 22.577 4.42 27.03c4.193 4.513 11.101 6.17 16.887 4.058 5.996-2.042 10.423-7.93 10.664-14.268.403-6.228-3.26-12.441-8.87-15.154A15.924 15.924 0 0015.846 0zm.439 1.729c6.105.033 11.856 4.45 13.435 10.359 1.678 5.653-.592 12.198-5.463 15.547-5.06 3.719-12.564 3.45-17.343-.625C2.101 23.17.377 16.07 2.848 10.44c2.134-5.2 7.522-8.78 13.147-8.71.097-.001.194-.002.29-.001zM13.504 9.08v4.427H9.077v4.98h4.427v4.427h4.98v-4.427h4.428v-4.98h-4.427V9.08h-4.98zm.83.83h3.32v4.427h4.428v3.32h-4.427v4.427h-3.32v-4.453H9.906v-3.294h4.427V9.91z"})),SignalStartEvent:({styles:e={},...t})=>rS("svg",RW({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M15.995.005C9.705-.08 3.643 3.968 1.257 9.78-1.235 15.49.06 22.581 4.42 27.034c4.193 4.513 11.102 6.17 16.887 4.058 5.996-2.042 10.423-7.93 10.664-14.269.403-6.227-3.26-12.44-8.87-15.153A15.924 15.924 0 0015.994.005zm0 1.73c6.213-.108 12.122 4.355 13.726 10.357 1.678 5.653-.592 12.198-5.463 15.547-5.06 3.719-12.564 3.45-17.343-.626-4.814-3.838-6.538-10.939-4.067-16.57 2.14-5.205 7.515-8.774 13.147-8.708zm0 6.776L9.19 20.724H22.8L15.995 8.511zm0 1.777l5.332 9.572H10.662l5.333-9.572z"})),TimerStartEvent:({styles:e={},...t})=>rS("svg",DW({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M16 0C7.174 0 0 7.174 0 16s7.174 16 16 16 16-7.174 16-16S24.826 0 16 0zm0 1.73c7.892 0 14.27 6.378 14.27 14.27 0 7.891-6.379 14.27-14.27 14.27S1.73 23.891 1.73 16C1.73 8.108 8.108 1.73 16 1.73zm-.143 6.676c-2.967.02-5.797 1.97-6.89 4.727-1.138 2.695-.51 6.012 1.537 8.102 1.99 2.142 5.268 2.932 8.014 1.928 2.878-.98 4.992-3.827 5.068-6.87.153-2.957-1.624-5.881-4.3-7.137a7.552 7.552 0 00-3.43-.75zm.27 1.383c2.71.012 5.254 2.015 5.886 4.656.704 2.577-.482 5.517-2.791 6.867-2.358 1.48-5.682 1.085-7.618-.918-2.043-1.971-2.407-5.381-.84-7.745 1.11-1.763 3.15-2.88 5.234-2.86h.13zm1.833 1.765l-2.074 3.763c-.64.068-.793 1.04-.202 1.3.39.27.696-.18 1.052-.165h3.17v-.865h-3.181l1.992-3.615-.757-.418z"})),CollapsedSubProcess:NW,CollapsedAdHocSubProcess:NW,ExpandedSubProcess:IW,ExpandedAdHocSubProcess:IW,Task:({styles:e={},...t})=>rS("svg",FW({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M6.494 2.667C2.916 2.667 0 5.57 0 9.142v13.383C0 26.097 2.916 29 6.494 29h19.012C29.084 29 32 26.097 32 22.525V9.142c0-3.572-2.916-6.475-6.494-6.475H6.494zm0 2h19.012c2.509 0 4.494 1.98 4.494 4.475v13.383C30 25.02 28.015 27 25.506 27H6.494C3.985 27 2 25.02 2 22.525V9.142c0-2.495 1.985-4.475 4.494-4.475z"})),TextAnnotation:({styles:e={},...t})=>rS("svg",$W({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M22.087 0v31.647H32v-1.788h-8.125V1.788H32V0h-9.913zm-2.924 13.999l-2.737 2.167 2.167 2.738 2.738-2.167-2.168-2.738zm-5.475 4.335L10.95 20.5l2.168 2.738 2.737-2.168-2.167-2.737zm-5.475 4.335l-2.738 2.167 2.168 2.738 2.737-2.168-2.167-2.737zm-5.476 4.335L0 29.17l2.167 2.738 2.738-2.168-2.168-2.737z"})),Transaction:({styles:e={},...t})=>rS("svg",jW({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{d:"M5.422 3A5.424 5.424 0 000 8.422v15.822a5.424 5.424 0 005.422 5.423h21.156A5.424 5.424 0 0032 24.244V8.422A5.424 5.424 0 0026.578 3H5.422zm0 1.244h21.156a4.155 4.155 0 014.178 4.178v15.822a4.155 4.155 0 01-4.178 4.178H5.422a4.155 4.155 0 01-4.178-4.178V8.422a4.155 4.155 0 014.178-4.178zm1.056 1.778a3.373 3.373 0 00-3.367 3.366v13.89a3.373 3.373 0 003.367 3.366h19.044a3.373 3.373 0 003.367-3.366V9.388a3.373 3.373 0 00-3.367-3.366H6.478zm0 1.245h19.044c1.187 0 2.122.935 2.122 2.121v13.89a2.104 2.104 0 01-2.122 2.122H6.478a2.104 2.104 0 01-2.122-2.122V9.388c0-1.186.935-2.121 2.122-2.121z"})),UserTask:({styles:e={},...t})=>rS("svg",qW({xmlns:"http://www.w3.org/2000/svg",width:"32",height:"32"},t),rS("path",{fillRule:"evenodd",d:"M10.263 7.468c-1.698 0-2.912 1.305-2.915 2.791v.001c0 .45.121.924.311 1.352.138.309.308.593.516.82-1.235.423-2.683 1.119-3.414 2.49l-.04.075v4.44h11.083v-4.44l-.04-.074c-.72-1.352-2.136-2.047-3.36-2.471.597-.608.774-1.392.774-2.192-.004-1.487-1.218-2.792-2.915-2.792zm-1.16 1.583c.08 0 .165.003.26.008.757.045 1.012.181 1.207.31.196.13.334.252.851.268.404-.016.598-.087.737-.169.056-.033.103-.067.152-.1.128.275.197.578.198.893 0 .894-.154 1.52-.975 2.034l.08.604c.171.052.348.11.527.171.025.105.054.242.073.387.02.153.029.311.016.43a.422.422 0 01-.056.19c-.417.417-1.157.66-1.908.66-.75 0-1.49-.243-1.908-.66a.422.422 0 01-.056-.19 1.949 1.949 0 01.016-.43c.02-.146.049-.284.074-.388.177-.062.352-.118.521-.17l.048-.648a.616.616 0 00-.126-.118c-.183-.138-.405-.44-.562-.793-.157-.353-.254-.757-.254-1.08 0-.387.105-.758.297-1.079l.11-.04c.143-.046.339-.09.679-.09zm-1.448 4.304l-.002.014c-.025.185-.04.387-.018.589.021.202.074.42.248.593.595.594 1.494.857 2.382.857.889 0 1.788-.263 2.382-.857.174-.174.227-.391.249-.593a2.496 2.496 0 00-.018-.59l-.002-.01c.903.396 1.776.963 2.258 1.81v3.599H13.53v-2.538h-.67v2.538H7.651v-2.538h-.67v2.538H5.39v-3.599c.483-.849 1.359-1.416 2.264-1.813zM6.495 3C2.914 3 0 5.903 0 9.475v13.383c0 3.572 2.916 6.475 6.494 6.475h19.012c3.578 0 6.494-2.903 6.494-6.475V9.475C32 5.903 29.084 3 25.506 3H6.494zm0 2h19.01C28.016 5 30 6.98 30 9.475v13.383c0 2.495-1.985 4.475-4.494 4.475H6.494C3.985 27.333 2 25.353 2 22.858V9.475C2 6.98 3.985 5 6.494 5z"}))};function VW(e){const{type:t}=e;let n=GW(t);const i=function(e){const t=me(e).eventDefinitions;return t&&t[0]}(e);if(i)return n=`${function(e){return GW(e.$type).replace("EventDefinition","")}(i)}${n}`,(de(e,"bpmn:StartEvent")&&!dl(e)||de(e,"bpmn:BoundaryEvent")&&!function(e){const t=me(e);return t&&!1!==t.cancelActivity}(e))&&(n=`${n}NonInterrupting`),n;if(de(e,"bpmn:SubProcess")&&!de(e,"bpmn:Transaction"))if(fl(e))n=`Event${n}`;else{const t=ul(e)&&!function(e){return de(e&&(e.di||me(e).di),"bpmndi:BPMNPlane")}(e);n=`${t?"Expanded":"Collapsed"}${n}`}return function(e){const t=me(e),n=me(e.source);return!(!de(e,"bpmn:SequenceFlow")||!n)&&(n.default&&n.default===t&&(de(n,"bpmn:Gateway")||de(n,"bpmn:Activity")))}(e)&&(n="DefaultFlow"),function(e){const t=me(e),n=me(e.source);return!(!de(e,"bpmn:SequenceFlow")||!n)&&(t.conditionExpression&&de(n,"bpmn:Activity"))}(e)&&(n="ConditionalFlow"),n}const WW=e=>(e||(e=e=>e),{getDocumentationRef:e=>{const t=QW();if(t)return function(e,t){const n=XW(e,t);return n&&n.documentationRef}(e,t)},getElementLabel:e=>de(e,"bpmn:Process")?me(e).name:_l(e),getElementIcon:e=>{const t=VW(e),n=jH("config.elementTemplateIconRenderer",!1),{iconProperty:i="zeebe:modelerTemplateIcon"}=n||{},o=me(e).get(i);return o?()=>aS("img",{class:"bio-properties-panel-header-template-icon",width:"32",height:"32",src:o}):HW[t]},getTypeLabel:t=>{const n=QW();if(n){const i=XW(t,n);if(i&&i.name)return e(i.name)}const i=VW(t);return e(i.replace(/(\B[A-Z])/g," $1").replace(/(\bNon Interrupting)/g,"($1)"))}});function GW(e){return e.split(":")[1]}function QW(){return jH("elementTemplates",!1)}function XW(e,t){return t.get(e)}function UW(){return UW=Object.assign?Object.assign.bind():function(e){for(var t=1;trS("svg",UW({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"64",height:"64"},t),rS("defs",null,rS("rect",{id:"a",width:"57",height:"47",x:"3",y:"8",rx:"7"}),rS("mask",{id:"b",width:"57",height:"47",x:"0",y:"0",fill:"#fff",maskContentUnits:"userSpaceOnUse",maskUnits:"objectBoundingBox"},rS("use",{xlinkHref:"#a"}))),rS("g",{fill:"none",fillRule:"evenodd"},rS("path",{fill:"#818798",d:"M52 11a5 5 0 015 5v31a5 5 0 01-5 5H11a5 5 0 01-5-5V16a5 5 0 015-5h41zm0 2H11a3 3 0 00-2.995 2.824L8 16v31a3 3 0 002.824 2.995L11 50h41a3 3 0 002.995-2.824L55 47V16a3 3 0 00-2.824-2.995L52 13z"}),rS("path",{fill:"#D5D7DD",d:"M16 24h31v6H16zM21 33h21v6H21z"}),rS("use",{stroke:"#B9BCC6",strokeDasharray:"5 2",strokeWidth:"2",mask:"url(#b)",xlinkHref:"#a"})));function KW(){return KW=Object.assign?Object.assign.bind():function(e){for(var t=1;trS("svg",KW({xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",width:"128",height:"64"},t),rS("defs",null,rS("path",{id:"a",d:"M9 9h110v47H9z"}),rS("mask",{id:"b",width:"110",height:"47",x:"0",y:"0",fill:"#fff",maskContentUnits:"userSpaceOnUse",maskUnits:"objectBoundingBox"},rS("use",{xlinkHref:"#a"}))),rS("g",{fill:"none",fillRule:"evenodd"},rS("path",{fill:"#818798",d:"M25 20.272L37.728 33 25 45.728 12.272 33 25 20.272zm0 2.829L15.1 33l9.9 9.9 9.9-9.9-9.9-9.9z"}),rS("path",{fill:"#D5D7DD",d:"M17 47h16v6H17z"}),rS("path",{fill:"#818798",d:"M35 32h27v2H35z"}),rS("path",{fill:"#818798",d:"M60 30v6l6-3z"}),rS("path",{fill:"#D5D7DD",d:"M80 34h21v6H80z"}),rS("g",null,rS("path",{fill:"#818798",d:"M111 12a5 5 0 015 5v31a5 5 0 01-5 5H70a5 5 0 01-5-5V17a5 5 0 015-5h41zm0 2H70a3 3 0 00-3 3v31a3 3 0 003 3h41a3 3 0 003-3V17a3 3 0 00-3-3z"}),rS("path",{fill:"#D5D7DD",d:"M75 25h31v6H75z"})),rS("use",{stroke:"#B9BCC6",strokeDasharray:"5 2",strokeWidth:"2",mask:"url(#b)",xlinkHref:"#a"})));const JW=e=>(e||(e=e=>e),{getEmpty:()=>({text:e("Select an element to edit its properties."),icon:YW}),getMultiple:()=>({text:e("Multiple elements are selected. Select a single element to edit its properties."),icon:ZW})});function eG(e){const{element:t,injector:n,getProviders:i,layoutConfig:o,descriptionConfig:r,tooltipConfig:s,feelPopupContainer:a}=e,l=n.get("canvas"),c=n.get("elementRegistry"),h=n.get("eventBus"),u=n.get("translate"),[p,d]=fk({selectedElement:t}),f=p.selectedElement,m=e=>{if(!e)return;let t=e;t&&"label"===t.type&&(t=t.labelTarget),d({...p,selectedElement:t}),h.fire("propertiesPanel.updated",{element:t})};mk((()=>{const e=e=>{const{newSelection:t=[]}=e;if(t.length>1)return m(t);const n=t[0],i=l.getRootElement();(function(e){return e&&(e.isImplicit||"__implicitroot"===e.id)})(i)||m(n||i)};return h.on("selection.changed",e),()=>{h.off("selection.changed",e)}}),[]),mk((()=>{const e=e=>{const t=function(e,t){return j(e,(e=>e===t))}(e.elements,f);t&&function(e,t){return e&&t.get(e.id)}(t,c)&&m(t)};return h.on("elements.changed",e),()=>{h.off("elements.changed",e)}}),[f]),mk((()=>{const e=e=>{const t=e.element;m(t)};return h.on("root.added",e),()=>{h.off("root.added",e)}}),[f]),mk((()=>{const e=()=>{m(f)};return h.on("propertiesPanel.providersChanged",e),()=>{h.off("propertiesPanel.providersChanged",e)}}),[f]),mk((()=>{const e=()=>{m(f)};return h.on("elementTemplates.changed",e),()=>{h.off("elementTemplates.changed",e)}}),[f]);const g={selectedElement:f,injector:n,getService:(e,t)=>n.get(e,t)},v=i(f),y=yk((()=>G(v,(function(e,t){return L(f)?[]:t.getGroups(f)(e)}),[])),[v,f]),[b,w]=fk(o||{}),x=bk((e=>{h.fire("propertiesPanel.layoutChanged",{layout:e})}),[h]);return mk((()=>{const e=e=>{const{layout:t}=e;w(t)};return h.on("propertiesPanel.setLayout",e),()=>h.off("propertiesPanel.setLayout",e)}),[h,w]),aS($H.Provider,{value:g,children:aS(gH,{element:f,headerProvider:WW(u),placeholderProvider:JW(u),groups:y,layoutConfig:b,layoutChanged:x,descriptionConfig:r,descriptionLoaded:e=>{h.fire("propertiesPanel.descriptionLoaded",{description:e})},tooltipConfig:s,tooltipLoaded:e=>{h.fire("propertiesPanel.tooltipLoaded",{tooltip:e})},feelPopupContainer:a,eventBus:h})})}class tG{constructor(e,t,n){const{parent:i,layout:o,description:r,tooltip:s,feelPopupContainer:a}=e||{};this._eventBus=n,this._injector=t,this._layoutConfig=o,this._descriptionConfig=r,this._tooltipConfig=s,this._feelPopupContainer=a,this._container=Kt('
    ');var l=t.get("commandStack",!1);l&&function(e,t,n){function i(e){e.preventDefault(),e.stopPropagation()}function o(e){return ch(e)?(n.undo(),i(e)):hh(e)?(n.redo(),i(e)):void 0}t.on("keyboard.bind",(function(){Gt.bind(e,"keydown",o)})),t.on("keyboard.unbind",(function(){Gt.unbind(e,"keydown",o)}))}(this._container,n,l),n.on("diagram.init",(()=>{i&&this.attachTo(i)})),n.on("diagram.destroy",(()=>{this.detach()})),n.on("root.added",(e=>{const{element:t}=e;this._render(t)}))}attachTo(e){if(!e)throw new Error("container required");e.get&&e.constructor.prototype.jquery&&(e=e.get(0)),"string"==typeof e&&(e=Jt(e)),this.detach(),e.appendChild(this._container),this._eventBus.fire("propertiesPanel.attach")}detach(){const e=this._container.parentNode;e&&(e.removeChild(this._container),this._eventBus.fire("propertiesPanel.detach"))}registerProvider(e,t){t||(t=e,e=1e3),"function"==typeof t.getGroups?(this._eventBus.on("propertiesPanel.getProviders",e,(function(e){e.providers.push(t)})),this._eventBus.fire("propertiesPanel.providersChanged")):console.error("Properties provider does not implement #getGroups(element) API")}setLayout(e){this._eventBus.fire("propertiesPanel.setLayout",{layout:e})}_getProviders(){const e=this._eventBus.createEvent({type:"propertiesPanel.getProviders",providers:[]});return this._eventBus.fire(e),e.providers}_render(e){const t=this._injector.get("canvas");e||(e=t.getRootElement()),function(e){return e&&(e.isImplicit||"__implicitroot"===e.id)}(e)||(JE(aS(eG,{element:e,injector:this._injector,getProviders:this._getProviders.bind(this),layoutConfig:this._layoutConfig,descriptionConfig:this._descriptionConfig,tooltipConfig:this._tooltipConfig,feelPopupContainer:this._feelPopupContainer}),this._container),this._eventBus.fire("propertiesPanel.rendered"))}_destroy(){this._container&&(JE(null,this._container),this._eventBus.fire("propertiesPanel.destroyed"))}}tG.$inject=["config.propertiesPanel","injector","eventBus"];class nG{constructor(e){this._commandStack=e}preExecute(e){const t=this._commandStack;V(e,(function(e){t.execute(e.cmd,e.context)}))}}nG.$inject=["commandStack"];const iG={"properties-panel.multi-command-executor":nG};function oG(e,t){e.on("diagram.init",(function(){V(iG,(function(e,n){t.registerHandler(n,e)}))}))}oG.$inject=["eventBus","commandStack"];var rG={__depends__:[{__init__:[oG]},NH,IH],__init__:["propertiesPanel"],propertiesPanel:["type",tG]};function sG(e){const{autoFocusEntry:t,element:n,getOptions:i}=e,o=i(n),r=Tq(o);return mk((()=>{if(t&&r&&o.length>r.length){const e=Jt(`[data-entry-id="${t}"]`),n=Jt(".bio-properties-panel-input",e);n&&n.select()}}),[o]),aS(EH,{...e})}function aG(e){return fe(e,["bpmn:StartEvent","bpmn:BoundaryEvent","bpmn:EndEvent"])&&!!lG(e)}function lG(e){return hG(e,"bpmn:ErrorEventDefinition")}function cG(e){const t=lG(e);return t&&t.get("errorRef")}function hG(e,t){return j(me(e).get("eventDefinitions")||[],(function(e){return de(e,t)}))}function uG(e){return de(e,"bpmn:ReceiveTask")?me(e):hG(e,"bpmn:MessageEventDefinition")}function pG(e){const t=uG(e);return t&&t.get("messageRef")}function dG(e){return hG(e,"bpmn:LinkEventDefinition")}function fG(e){return hG(e,"bpmn:SignalEventDefinition")}function mG(e){const t=fG(e);return t&&t.get("signalRef")}function gG(e){return hG(e,"bpmn:EscalationEventDefinition")}function vG(e){return de(e,"bpmn:Event")&&!!gG(e)}function yG(e){const t=gG(e);return t&&t.get("escalationRef")}function bG(e){return hG(e,"bpmn:CompensateEventDefinition")}function wG(e){const{element:t}=e;return function(e){return fe(e,["bpmn:EndEvent","bpmn:IntermediateThrowEvent"])&&!!bG(e)}(t)?[{id:"waitForCompletion",component:xG,isEdited:wH},{id:"activityRef",component:_G,isEdited:kH}]:[]}function xG(e){const{element:t}=e,n=jH("commandStack"),i=jH("translate"),o=bG(t);return bH({element:t,id:"waitForCompletion",label:i("Wait for completion"),getValue:()=>o.get("waitForCompletion"),setValue:e=>{n.execute("element.updateModdleProperties",{element:t,moddleElement:o,properties:{waitForCompletion:e}})}})}function _G(e){const{element:t}=e,n=jH("commandStack"),i=jH("elementRegistry"),o=jH("translate"),r=bG(t);return sG({element:t,id:"activityRef",label:o("Activity reference"),getValue:()=>{const e=function(e){const t=bG(e);return t&&t.get("activityRef")}(t);return e&&e.get("id")},setValue:e=>{const o=e?me(i.get(e)):void 0;n.execute("element.updateModdleProperties",{element:t,moddleElement:r,properties:{activityRef:o}})},getOptions:()=>{let e=[{value:"",label:o("")}];const n=function(e){let t=me(e).$parent,n=kG(t);return de(t,"bpmn:SubProcess")&&t.triggeredByEvent&&(t=t.$parent,t&&(n=[...n,...kG(t)])),n}(t);var i;return(i=n,te(i,(e=>(e.name||"").toLowerCase()))).forEach((function(t){e.push({value:t.id,label:SG(t)})})),e}})}function EG(e,t){const{flowElements:n}=e;return n.filter((function(e){return de(e,t)}))}function kG(e){const t=function(e){return EG(e,"bpmn:Activity")}(e),n=function(e){return EG(e,"bpmn:BoundaryEvent")}(e);return t.filter((function(e){return function(e,t){return de(e,"bpmn:CallActivity")||de(e,"bpmn:SubProcess")&&!e.triggeredByEvent&&!e.isForCompensation||function(e,t){const{id:n}=e;return!!j(t,(function(e){const{attachedToRef:t}=e,i=bG(e);return t&&i&&t.id===n}))}(e,t)}(e,n)}))}function SG(e){const{id:t,name:n}=e;return`${n?n+" ":""}(id=${t})`}const CG="text/plain";function OG(e){const{element:t}=e,n=[{id:"documentation",component:PG,isEdited:MH}];return function(e){return de(e,"bpmn:Participant")&&e.businessObject.get("processRef")}(t)&&n.push({id:"processDocumentation",component:MG,isEdited:MH}),n}function PG(e){const{element:t}=e,n=jH("bpmnFactory"),i=jH("commandStack"),o=jH("translate"),r=jH("debounceInput"),s=TG(me(t)),a=BG(t,me(t),n,i);return PH({element:t,id:"documentation",label:o("Element documentation"),getValue:s,setValue:a,debounce:r})}function MG(e){const{element:t}=e,n=jH("bpmnFactory"),i=jH("commandStack"),o=jH("translate"),r=jH("debounceInput"),s=me(t).processRef,a=TG(s),l=BG(t,s,n,i);return PH({element:t,id:"processDocumentation",label:o("Process documentation"),getValue:a,setValue:l,debounce:r})}function AG(e){return e.find((function(e){return(e.textFormat||CG)===CG}))}function TG(e){return function(){const t=AG(e&&e.get("documentation"));return t&&t.text}}function BG(e,t,n,i){return function(o){let r=AG(t&&t.get("documentation"));return r?o?i.execute("element.updateModdleProperties",{element:e,moddleElement:r,properties:{text:o}}):i.execute("element.updateModdleProperties",{element:e,moddleElement:t,properties:{documentation:W(t.get("documentation"),r)}}):o?(r=n.create("bpmn:Documentation",{text:o}),i.execute("element.updateModdleProperties",{element:e,moddleElement:t,properties:{documentation:[...t.get("documentation"),r]}})):void 0}}function RG(e,t,n,i){const o=i.create(e,t);return n&&(o.$parent=n),o}function DG(e){return new o([32,32,1]).nextPrefixed(e)}function LG(e){let t=e;for(;t.$parent;)t=t.$parent;return t}function NG(e,t){return n=LG(e).get("rootElements"),i=t,(n||[]).filter((e=>de(e,i)));var n,i}function zG(e,t,n){return NG(e,t).find((e=>e.id===n))}const IG="",FG="create-new";function $G(e){const{element:t}=e;if(!aG(t))return[];let n=[{id:"errorRef",component:jG,isEdited:kH}];return cG(t)&&(n=[...n,{id:"errorName",component:qG,isEdited:RH},{id:"errorCode",component:HG,isEdited:RH}]),n}function jG(e){const{element:t}=e,n=jH("bpmnFactory"),i=jH("commandStack"),o=jH("translate"),r=lG(t);return sG({element:t,id:"errorRef",label:o("Global error reference"),autoFocusEntry:"errorName",getValue:()=>{const e=cG(t);return e?e.get("id"):IG},setValue:e=>{const o=LG(r),s=[];let a;return e===FG&&(a=RG("bpmn:Error",{name:DG("Error_")},o,n),e=a.get("id"),s.push({cmd:"element.updateModdleProperties",context:{element:t,moddleElement:o,properties:{rootElements:[...o.get("rootElements"),a]}}})),a=a||zG(r,"bpmn:Error",e),s.push({cmd:"element.updateModdleProperties",context:{element:t,moddleElement:r,properties:{errorRef:a}}}),i.execute("properties-panel.multi-command-executor",s)},getOptions:()=>{let e=[{value:IG,label:o("")},{value:FG,label:o("Create new ...")}];var n;return(n=NG(me(t),"bpmn:Error"),te(n,(e=>(e.name||"").toLowerCase()))).forEach((t=>{e.push({value:t.get("id"),label:t.get("name")})})),e}})}function qG(e){const{element:t}=e,n=jH("commandStack"),i=jH("translate"),o=jH("debounceInput"),r=cG(t);return BH({element:t,id:"errorName",label:i("Name"),getValue:()=>r.get("name"),setValue:e=>n.execute("element.updateModdleProperties",{element:t,moddleElement:r,properties:{name:e}}),debounce:o})}function HG(e){const{element:t}=e,n=jH("commandStack"),i=jH("translate"),o=jH("debounceInput"),r=cG(t);return BH({element:t,id:"errorCode",label:i("Code"),getValue:()=>r.get("errorCode"),setValue:e=>n.execute("element.updateModdleProperties",{element:t,moddleElement:r,properties:{errorCode:e}}),debounce:o})}const VG="create-new";function WG(e){const{element:t}=e;if(!vG(t))return[];let n=[{id:"escalationRef",component:GG,isEdited:kH}];return yG(t)&&(n=[...n,{id:"escalationName",component:QG,isEdited:RH},{id:"escalationCode",component:XG,isEdited:RH}]),n}function GG(e){const{element:t}=e,n=jH("bpmnFactory"),i=jH("commandStack"),o=jH("translate"),r=gG(t);return sG({element:t,id:"escalationRef",label:o("Global escalation reference"),autoFocusEntry:"escalationName",getValue:()=>{const e=yG(t);return e&&e.get("id")},setValue:e=>{const o=LG(r),s=[];let a;if(e===VG){const i=DG("Escalation_");a=RG("bpmn:Escalation",{id:i,name:i},o,n),e=a.get("id"),s.push({cmd:"element.updateModdleProperties",context:{element:t,moddleElement:o,properties:{rootElements:[...o.get("rootElements"),a]}}})}return a=a||zG(r,"bpmn:Escalation",e),s.push({cmd:"element.updateModdleProperties",context:{element:t,moddleElement:r,properties:{escalationRef:a}}}),i.execute("properties-panel.multi-command-executor",s)},getOptions:()=>{let e=[{value:"",label:o("")},{value:VG,label:o("Create new ...")}];var n;return(n=NG(me(t),"bpmn:Escalation"),te(n,(e=>(e.name||"").toLowerCase()))).forEach((t=>{e.push({value:t.get("id"),label:t.get("name")})})),e}})}function QG(e){const{element:t}=e,n=jH("commandStack"),i=jH("translate"),o=jH("debounceInput"),r=yG(t);return BH({element:t,id:"escalationName",label:i("Name"),getValue:()=>r.get("name"),setValue:e=>n.execute("element.updateModdleProperties",{element:t,moddleElement:r,properties:{name:e}}),debounce:o})}function XG(e){const{element:t}=e,n=jH("commandStack"),i=jH("translate"),o=jH("debounceInput"),r=yG(t);return BH({element:t,id:"escalationCode",label:i("Code"),getValue:()=>r.get("escalationCode"),setValue:e=>n.execute("element.updateModdleProperties",{element:t,moddleElement:r,properties:{escalationCode:e}}),debounce:o})}function UG(e){const{element:t}=e;return de(t,"bpmn:Process")||function(e){return de(e,"bpmn:Participant")&&e.businessObject.get("processRef")}(t)?[{id:"isExecutable",component:YG,isEdited:wH}]:[]}function YG(e){const{element:t}=e,n=jH("modeling"),i=jH("commandStack"),o=jH("translate");let r,s;if(s=e=>{n.updateProperties(t,{isExecutable:e})},r=e=>e.businessObject.isExecutable,de(t,"bpmn:Participant")){const e=t.businessObject.get("processRef");s=n=>{i.execute("element.updateModdleProperties",{element:t,moddleElement:e,properties:{isExecutable:n}})},r=()=>e.get("isExecutable")}return bH({element:t,id:"isExecutable",label:o("Executable"),getValue:r,setValue:s})}const KG=/\s/,ZG=/^([a-z][\w-.]*:)?[a-z_][\w-.]*$/i,JG=/^[a-z_][\w-.]*$/i;function eQ(e,t,n){const i=e.$model.ids.assigned(t);return t?i&&i!==e?n("ID must be unique."):function(e,t){return n=e,KG.test(n)?t("ID must not contain spaces."):JG.test(e)?void 0:ZG.test(e)?t("ID must not contain prefix."):t("ID must be a valid QName.");var n}(t,n):n("ID must not be empty.")}function tQ(e){const{element:t}=e,n=jH("modeling"),i=jH("debounceInput"),o=jH("translate"),r=bk((e=>me(e).id),[t]),s=bk((e=>eQ(me(t),e,o)),[t,o]);return BH({element:t,id:"id",label:o(de(t,"bpmn:Participant")?"Participant ID":"ID"),getValue:r,setValue:(e,i)=>{i||n.updateProperties(t,{id:e})},debounce:i,validate:s})}function nQ(e){const{element:t}=e;return function(e){return fe(e,["bpmn:IntermediateThrowEvent","bpmn:IntermediateCatchEvent"])&&!!dG(e)}(t)?[{id:"linkName",component:iQ,isEdited:RH}]:[]}function iQ(e){const{element:t}=e,n=jH("commandStack"),i=jH("translate"),o=jH("debounceInput"),r=dG(t);return BH({element:t,id:"linkName",label:i("Name"),getValue:()=>r.get("name"),setValue:e=>{n.execute("element.updateModdleProperties",{element:t,moddleElement:r,properties:{name:e}})},debounce:o})}const oQ="",rQ="create-new";function sQ(e){const{element:t}=e;if(!function(e){return de(e,"bpmn:ReceiveTask")||fe(e,["bpmn:StartEvent","bpmn:EndEvent","bpmn:IntermediateThrowEvent","bpmn:BoundaryEvent","bpmn:IntermediateCatchEvent"])&&!!uG(e)}(t))return[];let n=[{id:"messageRef",component:aQ,isEdited:kH}];return pG(t)&&(n=[...n,{id:"messageName",component:lQ,isEdited:RH}]),n}function aQ(e){const{element:t}=e,n=jH("bpmnFactory"),i=jH("commandStack"),o=jH("translate"),r=uG(t);return sG({element:t,id:"messageRef",label:o("Global message reference"),autoFocusEntry:"messageName",getValue:()=>{const e=pG(t);return e?e.get("id"):oQ},setValue:e=>{const o=LG(r),s=[];let a;if(e===rQ){const i=DG("Message_");a=RG("bpmn:Message",{id:i,name:i},o,n),e=a.get("id"),s.push({cmd:"element.updateModdleProperties",context:{element:t,moddleElement:o,properties:{rootElements:[...o.get("rootElements"),a]}}})}return a=a||zG(r,"bpmn:Message",e),s.push({cmd:"element.updateModdleProperties",context:{element:t,moddleElement:r,properties:{messageRef:a}}}),i.execute("properties-panel.multi-command-executor",s)},getOptions:()=>{let e=[{value:oQ,label:o("")},{value:rQ,label:o("Create new ...")}];var n;return(n=NG(me(t),"bpmn:Message"),te(n,(e=>(e.name||"").toLowerCase()))).forEach((t=>{e.push({value:t.get("id"),label:t.get("name")})})),e}})}function lQ(e){const{element:t}=e,n=jH("commandStack"),i=jH("translate"),o=jH("debounceInput"),r=pG(t);return BH({element:t,id:"messageName",label:i("Name"),getValue:()=>r.get("name"),setValue:e=>n.execute("element.updateModdleProperties",{element:t,moddleElement:r,properties:{name:e}}),debounce:o})}function cQ(e){const{element:t}=e;return function(e){const t=fQ(e);return!!t&&de(t,"bpmn:MultiInstanceLoopCharacteristics")}(t)?[{id:"loopCardinality",component:hQ,isEdited:RH},{id:"completionCondition",component:uQ,isEdited:RH}]:[]}function hQ(e){const{element:t}=e,n=jH("bpmnFactory"),i=jH("debounceInput"),o=jH("commandStack"),r=jH("translate");return BH({element:t,id:"loopCardinality",label:r("Loop cardinality"),getValue:()=>function(e){const t=function(e){return dQ(e,"loopCardinality")}(e);return pQ(t)}(t),setValue:e=>o.execute("element.updateModdleProperties",mQ(t,"loopCardinality",e,n)),debounce:i})}function uQ(e){const{element:t}=e,n=jH("bpmnFactory"),i=jH("debounceInput"),o=jH("commandStack"),r=jH("translate");return BH({element:t,id:"completionCondition",label:r("Completion condition"),getValue:()=>function(e){const t=function(e){return dQ(e,"completionCondition")}(e);return pQ(t)}(t),setValue:e=>o.execute("element.updateModdleProperties",mQ(t,"completionCondition",e,n)),debounce:i})}function pQ(e){return e&&e.get("body")}function dQ(e,t){const n=fQ(e);return n&&n.get(t)}function fQ(e){return me(e).loopCharacteristics}function mQ(e,t,n,i){const o=fQ(e),r={};if(!n)return r[t]=void 0,{element:e,moddleElement:o,properties:r};const s=o.get(t);return s?{element:e,moddleElement:s,properties:{body:n}}:(r[t]=function(e,t,n){return RG("bpmn:FormalExpression",{body:t},e,n)}(o,n,i),{element:e,moddleElement:o,properties:r})}function gQ(e){const{element:t}=e;return fe(t,["bpmn:Collaboration","bpmn:DataAssociation","bpmn:Association"])?[]:[{id:"name",component:vQ,isEdited:MH}]}function vQ(e){const{element:t}=e,n=jH("modeling"),i=jH("debounceInput"),o=jH("canvas"),r=jH("bpmnFactory"),s=jH("translate");let a={element:t,id:"name",label:s("Name"),debounce:i,setValue:e=>{n.updateProperties(t,{name:e})},getValue:e=>e.businessObject.name,autoResize:!0};return de(t,"bpmn:TextAnnotation")?a={...a,setValue:e=>{n.updateProperties(t,{text:e})},getValue:e=>e.businessObject.text}:de(t,"bpmn:Group")?a={...a,setValue:e=>{const i=me(t);i.categoryValueRef||function(e,t,n){const i=function(e,t){const n=t.create("bpmn:CategoryValue"),i=t.create("bpmn:Category",{categoryValue:[n]});return er(e.get("rootElements"),i),me(i).$parent=e,me(n).$parent=i,n}(me(t).$parent,n);e.categoryValueRef=i}(i,o.getRootElement(),r),n.updateLabel(t,e)},getValue:e=>{const t=me(e).categoryValueRef;return t&&t.value}}:de(t,"bpmn:Participant")&&(a.label=s("Participant Name")),PH(a)}function yQ(e){const{element:t}=e;return function(e){return de(e,"bpmn:Participant")&&e.businessObject.get("processRef")}(t)?[{id:"processId",component:wQ,isEdited:RH},{id:"processName",component:bQ,isEdited:RH}]:[]}function bQ(e){const{element:t}=e,n=jH("commandStack"),i=jH("translate"),o=jH("debounceInput"),r=t.businessObject.get("processRef");return BH({element:t,id:"processName",label:i("Process name"),getValue:()=>r.get("name"),setValue:e=>{n.execute("element.updateModdleProperties",{element:t,moddleElement:r,properties:{name:e}})},debounce:o})}function wQ(e){const{element:t}=e,n=jH("commandStack"),i=jH("translate"),o=jH("debounceInput"),r=t.businessObject.get("processRef"),s=bk((e=>eQ(r,e,i)),[r,i]);return BH({element:t,id:"processId",label:i("Process ID"),getValue:()=>r.get("id"),setValue:(e,i)=>{i||n.execute("element.updateModdleProperties",{element:t,moddleElement:r,properties:{id:e}})},debounce:o,validate:s})}const xQ="",_Q="create-new";function EQ(e){const{element:t}=e;if(!function(e){return de(e,"bpmn:Event")&&!!fG(e)}(t))return[];let n=[{id:"signalRef",component:kQ,isEdited:kH}];return mG(t)&&(n=[...n,{id:"signalName",component:SQ,isEdited:RH}]),n}function kQ(e){const{element:t}=e,n=jH("bpmnFactory"),i=jH("commandStack"),o=jH("translate"),r=fG(t);return sG({element:t,id:"signalRef",label:o("Global signal reference"),autoFocusEntry:"signalName",getValue:()=>{const e=mG(t);return e?e.get("id"):xQ},setValue:e=>{const o=LG(r),s=[];let a;if(e===_Q){const i=DG("Signal_");a=RG("bpmn:Signal",{id:i,name:i},o,n),e=a.get("id"),s.push({cmd:"element.updateModdleProperties",context:{element:t,moddleElement:o,properties:{rootElements:[...o.get("rootElements"),a]}}})}return a=a||zG(r,"bpmn:Signal",e),s.push({cmd:"element.updateModdleProperties",context:{element:t,moddleElement:r,properties:{signalRef:a}}}),i.execute("properties-panel.multi-command-executor",s)},getOptions:()=>{let e=[{value:xQ,label:o("")},{value:_Q,label:o("Create new ...")}];var n;return(n=NG(me(t),"bpmn:Signal"),te(n,(e=>(e.name||"").toLowerCase()))).forEach((t=>{e.push({value:t.get("id"),label:t.get("name")})})),e}})}function SQ(e){const{element:t}=e,n=jH("commandStack"),i=jH("translate"),o=jH("debounceInput"),r=mG(t);return BH({element:t,id:"signalName",label:i("Name"),getValue:()=>r.get("name"),setValue:e=>n.execute("element.updateModdleProperties",{element:t,moddleElement:r,properties:{name:e}}),debounce:o})}function CQ(e){return fe(e,["bpmn:StartEvent","bpmn:IntermediateCatchEvent","bpmn:BoundaryEvent"])&&!!PQ(e)}function OQ(e){if(e)return void 0!==e.get("timeDate")?"timeDate":void 0!==e.get("timeCycle")?"timeCycle":void 0!==e.get("timeDuration")?"timeDuration":void 0}function PQ(e){return MQ(e,"bpmn:TimerEventDefinition")}function MQ(e,t){return j(me(e).get("eventDefinitions")||[],(function(e){return de(e,t)}))}function AQ(e){const{element:t,idPrefix:n}=e;let{timerEventDefinition:i}=e;i||(i=PQ(me(t)));const o=OQ(i);if(!CQ(t))return[];const r=[];return r.push({id:DQ(n,"timerEventDefinitionType"),component:TQ,isEdited:kH,timerEventDefinition:i,timerEventDefinitionType:o}),o&&r.push({id:DQ(n,"timerEventDefinitionValue"),component:BQ,isEdited:RH,timerEventDefinition:i,timerEventDefinitionType:o}),r}function TQ(e){const{element:t,timerEventDefinition:n,timerEventDefinitionType:i}=e,o=jH("commandStack"),r=jH("bpmnFactory"),s=jH("translate");return EH({element:t,id:"timerEventDefinitionType",label:s("Type"),getValue:()=>i||"",setValue:e=>{if(e===i)return;const s=r.create("bpmn:FormalExpression",{body:void 0});s.$parent=n;const a={timeDuration:void 0,timeDate:void 0,timeCycle:void 0};""!==e&&(a[e]=s),o.execute("element.updateModdleProperties",{element:t,moddleElement:n,properties:a})},getOptions:e=>[{value:"",label:s("")},{value:"timeDate",label:s("Date")},{value:"timeDuration",label:s("Duration")},{value:"timeCycle",label:s("Cycle")}]})}function BQ(e){const{element:t,timerEventDefinition:n,timerEventDefinitionType:i}=e,o=jH("commandStack"),r=jH("translate"),s=jH("debounceInput"),a=n.get(i);return BH({element:t,id:"timerEventDefinitionValue",label:r("Value"),getValue:()=>a&&a.get("body"),setValue:e=>{o.execute("element.updateModdleProperties",{element:t,moddleElement:a,properties:{body:e}})},debounce:s,tooltip:RQ(i,r)})}function RQ(e,t){switch(e){case"timeDate":return aS("div",{children:[aS("p",{children:t("A specific point in time defined as ISO 8601 combined date and time representation.")}),aS("ul",{children:[aS("li",{children:[aS("code",{children:"2019-10-01T12:00:00Z"})," - ",t("UTC time")]}),aS("li",{children:[aS("code",{children:"2019-10-02T08:09:40+02:00"})," - ",t("UTC plus 2 hours zone offset")]})]}),aS("a",{href:"https://docs.camunda.org/manual/latest/reference/bpmn20/events/timer-events/#time-date",target:"_blank",rel:"noopener",children:t("Documentation: Timer events")})]});case"timeCycle":return aS("div",{children:[aS("p",{children:t("A cycle defined as ISO 8601 repeating intervals format.")}),aS("ul",{children:[aS("li",{children:[aS("code",{children:"R5/PT10S"})," - ",t("every 10 seconds, up to 5 times")]}),aS("li",{children:[aS("code",{children:"R/P1D"})," - ",t("every day, infinitely")]})]}),aS("a",{href:"https://docs.camunda.org/manual/latest/reference/bpmn20/events/timer-events/#time-cycle",target:"_blank",rel:"noopener",children:t("Documentation: Timer events")})]});case"timeDuration":return aS("div",{children:[aS("p",{children:t("A time duration defined as ISO 8601 durations format.")}),aS("ul",{children:[aS("li",{children:[aS("code",{children:"PT15S"})," - ",t("15 seconds")]}),aS("li",{children:[aS("code",{children:"PT1H30M"})," - ",t("1 hour and 30 minutes")]}),aS("li",{children:[aS("code",{children:"P14D"})," - ",t("14 days")]})]}),aS("a",{href:"https://docs.camunda.org/manual/latest/reference/bpmn20/events/timer-events/#time-duration",target:"_blank",rel:"noopener",children:t("Documentation: Timer events")})]})}}function DQ(e,t){return e?e+t:t}function LQ(e,t){const n=t.get("translate"),i=[...gQ({element:e}),{id:"id",component:tQ,isEdited:RH},...yQ({element:e}),...UG({element:e})];return{id:"general",label:n("General"),entries:i,component:Lq}}function NQ(e,t){const n={label:t.get("translate")("Compensation"),id:"compensation",component:Lq,entries:[...wG({element:e})]};return n.entries.length?n:null}function zQ(e,t){const n=t.get("translate"),i=[...OG({element:e})];return{id:"documentation",label:n("Documentation"),entries:i,component:Lq}}function IQ(e,t){const n={id:"error",label:t.get("translate")("Error"),component:Lq,entries:[...$G({element:e})]};return n.entries.length?n:null}function FQ(e,t){const n={id:"message",label:t.get("translate")("Message"),component:Lq,entries:[...sQ({element:e})]};return n.entries.length?n:null}function $Q(e,t){const n={id:"signal",label:t.get("translate")("Signal"),component:Lq,entries:[...EQ({element:e})]};return n.entries.length?n:null}function jQ(e,t){const n={label:t.get("translate")("Link"),id:"link",component:Lq,entries:[...nQ({element:e})]};return n.entries.length?n:null}function qQ(e,t){const n={id:"escalation",label:t.get("translate")("Escalation"),component:Lq,entries:[...WG({element:e})]};return n.entries.length?n:null}function HQ(e,t){const n={label:t.get("translate")("Timer"),id:"timer",component:Lq,entries:[...AQ({element:e})]};return n.entries.length?n:null}function VQ(e,t){const n={label:t.get("translate")("Multi-instance"),id:"multiInstance",component:Lq,entries:[...cQ({element:e})]};return n.entries.length?n:null}class WQ{constructor(e,t){e.registerProvider(this),this._injector=t}getGroups(e){return t=>(t=t.concat(function(e,t){return[LQ(e,t),zQ(e,t),NQ(e,t),IQ(e,t),jQ(e,t),FQ(e,t),VQ(e,t),$Q(e,t),qQ(e,t),HQ(e,t)].filter((e=>null!==e))}(e,this._injector)),t)}}WQ.$inject=["propertiesPanel","injector"];var GQ={__init__:["bpmnPropertiesProvider"],bpmnPropertiesProvider:["type",WQ]};const QQ={getVariablesForElement:e=>(0,FH.Hp)(e)},XQ=function(e){return t=>{const n=yk((()=>{const e=jH("config");return e&&e.propertiesPanel&&e.propertiesPanel.feelTooltipContainer}),[]);return aS(e,{...t,tooltipContainer:n})}}((function(e){const{element:t,id:n,description:i,debounce:o,disabled:r,feel:s,label:a,getValue:l,setValue:c,tooltipContainer:h,hostLanguage:u,singleLine:p,validate:d,show:f=sH,example:m,variables:g,onFocus:v,onBlur:y,placeholder:b,tooltip:w}=e,[x,_]=fk(null),[E,k]=fk(null);let S=l(t);mk((()=>{if(I(d)){const e=d(S)||null;_(e)}}),[S,d]);const C=Dq((e=>{let t=null;I(d)&&(t=d(e)||null),e!==S&&c(e,t),_(t)})),O=bk((e=>{k(e)}),[]),P=Oq(n)||E||x;return aS("div",{class:cS()(e.class,"bio-properties-panel-entry",P?"has-error":""),"data-entry-id":n,children:[BE(aH,{...e,debounce:o,disabled:r,feel:s,id:n,key:t,label:a,onInput:C,onError:O,onFocus:v,onBlur:y,placeholder:b,example:m,hostLanguage:u,singleLine:p,show:f,value:S,variables:g,tooltipContainer:h,OptionalComponent:e.OptionalComponent,tooltip:w}),P&&aS("div",{class:"bio-properties-panel-error",children:P}),aS(Iq,{forId:n,element:t,value:i})]})}));function UQ(e,t){if(!window.FileReader)return t();var n=new FileReader;n.onload=function(n){t(null,{name:e.name,path:e.path,contents:n.target.result})},n.onerror=function(e){t(e.target.error)},n.readAsText(e)}function YQ(e){e.preventDefault()}function KQ(e,t){if(!window.FileReader)return t();var n=new FileReader;n.onload=function(n){t(null,{name:e.name,path:e.path,contents:n.target.result})},n.onerror=function(e){t(e.target.error)},n.readAsText(e)}var ZQ=n(140),JQ=n.n(ZQ);const eX='\n\n \n \n SequenceFlow_0t9dyy4\n SequenceFlow_1ge46mh\n \n SequenceFlow_10d6h3a\n SequenceFlow_1dzm18n\n \n \n SequenceFlow_1bpznq3\n SequenceFlow_10d6h3a\n SequenceFlow_0rz4mzx\n \n \n SequenceFlow_0rz4mzx\n SequenceFlow_1pol4sw\n \n \n SequenceFlow_0cx35wm\n SequenceFlow_05m0kip\n \n \n SequenceFlow_1dzm18n\n SequenceFlow_1pol4sw\n SequenceFlow_0cx35wm\n \n \n \n \n \n \n \n SequenceFlow_1bpznq3\n \n \n \n SequenceFlow_05m0kip\n \n \n \n \n \n SequenceFlow_1xib75z\n \n \n \n \n SequenceFlow_1ge46mh\n SequenceFlow_1yu5yeq\n \n \n \n SequenceFlow_1yu5yeq\n SequenceFlow_0zjbpms\n SequenceFlow_0zxk9aa\n SequenceFlow_1udgk24\n \n \n \n \n SequenceFlow_1udgk24\n SequenceFlow_0ftjyrx\n SequenceFlow_1vsv7r8\n SequenceFlow_0jd8d0i\n \n \n SequenceFlow_0ftjyrx\n SequenceFlow_0rkllvh\n \n \n \n \n SequenceFlow_1vsv7r8\n SequenceFlow_0zdc0ci\n \n \n \n \n SequenceFlow_0jd8d0i\n SequenceFlow_10by6md\n \n \n \n \n SequenceFlow_0zdc0ci\n SequenceFlow_10by6md\n SequenceFlow_1p7rbgq\n \n \n \n \n SequenceFlow_1p7rbgq\n SequenceFlow_0lmdz0d\n \n \n \n \n \n SequenceFlow_1xib75z\n SequenceFlow_130hgg8\n \n \n SequenceFlow_1qdqk69\n SequenceFlow_0t9dyy4\n \n \n SequenceFlow_1364l2a\n SequenceFlow_1qdqk69\n SequenceFlow_091wldx\n \n \n \n \n SequenceFlow_091wldx\n SequenceFlow_0zjbpms\n \n SequenceFlow_17nxcr4\n \n \n SequenceFlow_17nxcr4\n SequenceFlow_10zdsna\n \n \n \n \n SequenceFlow_10zdsna\n SequenceFlow_0z16g3i\n \n \n \n SequenceFlow_0z16g3i\n \n \n \n \n \n \n SequenceFlow_130hgg8\n SequenceFlow_0rkllvh\n SequenceFlow_1364l2a\n \n \n SequenceFlow_0lmdz0d\n \n \n \n \n \n SequenceFlow_0zxk9aa\n \n \n \n SequenceFlow_0rgmhwk\n \n \n \n SequenceFlow_0j9ajgx\n \n \n \n SequenceFlow_0rgmhwk\n SequenceFlow_0j9ajgx\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n',tX=new URL(window.location.href),nX=tX.searchParams.has("p"),iX=tX.searchParams.has("e"),oX=tX.searchParams.has("pm");let rX="diagram.bpmn";const sX=(()=>{try{return nX&&localStorage["diagram-xml"]||eX}catch(e){return eX}})();function aX(){document.querySelector(".drop-message").style.display="none"}nX&&aX();const lX=new mE({container:"#canvas",additionalModules:[rG,GQ,_o,vE,{__init__:[["eventBus","bpmnjs","toggleMode",function(e,t,n){nX&&e.on("commandStack.changed",(function(){t.saveXML().then((e=>{localStorage["diagram-xml"]=e.xml}))})),"history"in window&&e.on("tokenSimulation.toggleMode",(e=>{document.body.classList.toggle("token-simulation-active",e.active),e.active?tX.searchParams.set("e","1"):tX.searchParams.delete("e"),history.replaceState({},document.title,tX.toString())})),e.on("diagram.init",500,(()=>{n.toggleMode(iX)}))}]]}],propertiesPanel:{parent:"#properties-panel"},exporter:{name:"bpmn-js-token-simulation",version:"0.35.1"},keyboard:{bindTo:document}});function cX(e){return lX.importXML(e).then((({warnings:t})=>{t.length&&console.warn(t),nX&&(localStorage["diagram-xml"]=e),lX.get("canvas").zoom("fit-viewport")})).catch((e=>{console.error(e)}))}function hX(e){e.length&&(aX(),rX=e[0].name,cX(e[0].contents))}function uX(){lX.saveXML({format:!0}).then((({xml:e})=>{JQ()(e,rX,"application/xml")}))}oX&&document.body.classList.add("presentation-mode"),document.body.addEventListener("dragover",function(e,t){var n,i,o;function r(e){var o,r,s,a,l;e.preventDefault(),o=e.dataTransfer.files,r=UQ,s=function(o,r){if(o)console.warn("file drop failed",o);else{var s=i.concat([r,e]);t.apply(n,s)}},a=0,l=[],function e(){a===o.length?s(null,l):r(o[a],(function(t,n){if(t)return s(t);l[a]=n,a++,e()}))}()}function s(){var t,s=(t=arguments,Array.prototype.slice.call(t)),a=s.pop(),l=a.dataTransfer,c=a.currentTarget||a.target;function h(e){var t=e.relatedTarget;c.contains(t)||u()}function u(e){document.removeEventListener("drop",r),document.removeEventListener("drop",u),document.removeEventListener("dragleave",h),document.removeEventListener("dragend",u),document.removeEventListener("dragover",YQ),o&&(c.removeChild(o),o=null)}(function(e){if(!e||!e.items.length)return!1;for(var t=!1,n=0;n{t=e,n=i})),o=document.createElement("input");e.multiple&&o.setAttribute("multiple",""),e.accept&&o.setAttribute("accept",e.accept),o.setAttribute("type","file"),o.style.display="none",o.addEventListener("change",(function(){var e,i,r,s,a;e=o.files,i=KQ,r=function(e,i){console.log(i),e?n(e):t(i),o.remove()},s=0,a=[],function t(){s===e.length?r(null,a):i(e[s],(function(e,n){if(e)return r(e);a[s]=n,s++,t()}))}()})),document.body.appendChild(o);const r=document.createEvent("MouseEvent");return r.initMouseEvent("click",!1,!1,window,0,0,0,0,0,!1,!1,!1,!1,0,null),o.dispatchEvent(r),i}().then(hX))})),document.querySelector("#download-button").addEventListener("click",(function(e){uX()}));const pX=document.querySelector("#properties-panel"),dX=document.querySelector("#properties-panel-resizer");let fX,mX;function gX(e){e?tX.searchParams.set("pp","1"):tX.searchParams.delete("pp"),history.replaceState({},document.title,tX.toString()),pX.classList.toggle("open",e)}dX.addEventListener("click",(function(e){gX(!pX.classList.contains("open"))})),dX.addEventListener("dragstart",(function(e){const t=new Image;t.src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",e.dataTransfer.setDragImage(t,1,1),fX=e.screenX,mX=pX.getBoundingClientRect().width})),dX.addEventListener("drag",(function(e){if(!e.screenX)return;const t=e.screenX-fX,n=mX-t,i=n>200;pX.style.width=i?`${n}px`:null,gX(i)}));const vX=tX.searchParams.get("diagram");vX?fetch(vX).then((e=>{if(e.ok)return e.text();throw new Error(`Status ${e.status}`)})).then((e=>cX(e))).catch((e=>{!function(e,t){const n=document.querySelector(".drop-message");n.textContent=t,n.className="drop-message error",n.style.display="block"}(0,`Failed to open remote diagram: ${e.message}`),cX(sX)})):cX(sX),gX(tX.searchParams.has("pp"))})()})(); +//# sourceMappingURL=modeler.js.map \ No newline at end of file diff --git a/dist/modeler.js.LICENSE.txt b/dist/modeler.js.LICENSE.txt new file mode 100644 index 0000000..91f8caf --- /dev/null +++ b/dist/modeler.js.LICENSE.txt @@ -0,0 +1,15 @@ +/*! + Copyright (c) 2018 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ + +/*! +* focus-trap 7.5.4 +* @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE +*/ + +/*! +* tabbable 6.2.0 +* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE +*/ diff --git a/dist/modeler.js.map b/dist/modeler.js.map new file mode 100644 index 0000000..e2ea681 --- /dev/null +++ b/dist/modeler.js.map @@ -0,0 +1 @@ +{"version":3,"file":"dist/modeler.js","mappings":"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M,mCACN43F,YAAa,msBAEd,CACC53F,KAAM,oCACN43F,YAAa,u6BAEd,CACC53F,KAAM,0BACN43F,YAAa,yyBAEd,CACC53F,KAAM,eACN43F,YAAa,6WAEd,CACC53F,KAAM,eACN43F,YAAa,oSAEd,CACC53F,KAAM,mBACN43F,YAAa,i/BAEd,CACC53F,KAAM,aACN43F,YAAa,ilBAEd,CACC53F,KAAM,yBACN43F,YAAa,+UAEd,CACC53F,KAAM,aACN43F,YAAa,2kBAEd,CACC53F,KAAM,6BACN43F,YAAa,8UAEd,CACC53F,KAAM,qCACN43F,YAAa,6aAEd,CACC53F,KAAM,sBACN43F,YAAa,uXAEd,CACC53F,KAAM,4BACN43F,YAAa,8xBAEd,CACC53F,KAAM,gCACN43F,YAAa,wxBAEd,CACC53F,KAAM,iBACN43F,YAAa,4jBAEd,CACC53F,KAAM,sCACN43F,YAAa,kdAEd,CACC53F,KAAM,+BACN43F,YAAa,yXAEd,CACC53F,KAAM,cACN43F,YAAa,6RAEd,CACC53F,KAAM,YACN43F,YAAa,odAEd,CACC53F,KAAM,YACN43F,YAAa,odAEd,CACC53F,KAAM,YACN43F,YAAa,qZAEd,CACC53F,KAAM,gBACN43F,YAAa,2aAEd,CACC53F,KAAM,aACN43F,YAAa,mbAEd,CACC53F,KAAM,eACN43F,YAAa,wbAEd,CACC53F,KAAM,eACN43F,YAAa,ydAEd,CACC53F,KAAM,aACN43F,YAAa,gbAEd,CACC53F,KAAM,YACN43F,YAAa,yuBAEd,CACC53F,KAAM,YACN43F,YAAa,suBAEd,CACC53F,KAAM,gCACN43F,YAAa,idAEd,CACC53F,KAAM,wCACN43F,YAAa,oeAEd,CACC53F,KAAM,sBACN43F,YAAa,wZAEd,CACC53F,KAAM,qBACN43F,YAAa,qaAEd,CACC53F,KAAM,yCACN43F,YAAa,ieAEd,CACC53F,KAAM,yBACN43F,YAAa,qbAEd,CACC53F,KAAM,gBACN43F,YAAa,4RAEd,CACC53F,KAAM,wBACN43F,YAAa,uVAEd,CACC53F,KAAM,cACN43F,YAAa,oYAEd,CACC53F,KAAM,wBACN43F,YAAa,kTAEd,CACC53F,KAAM,yBACN43F,YAAa,0VAEd,CACC53F,KAAM,gBACN43F,YAAa,gVAEd,CACC53F,KAAM,uBACN43F,YAAa,sZAEd,CACC53F,KAAM,oBACN43F,YAAa,84BAEd,CACC53F,KAAM,+BACN43F,YAAa,i+BAEd,CACC53F,KAAM,+CACN43F,YAAa,wkCAEd,CACC53F,KAAM,oBACN43F,YAAa,kUAEd,CACC53F,KAAM,WACN43F,YAAa,gTAEd,CACC53F,KAAM,kBACN43F,YAAa,oUAEd,CACC53F,KAAM,aACN43F,YAAa,qTAEd,CACC53F,KAAM,oBACN43F,YAAa,uUAEd,CACC53F,KAAM,qBACN43F,YAAa,+ZAEd,CACC53F,KAAM,uBACN43F,YAAa,obAEd,CACC53F,KAAM,0BACN43F,YAAa,mcAEd,CACC53F,KAAM,4BACN43F,YAAa,mdAEd,CACC53F,KAAM,cACN43F,YAAa,iTAEd,CACC53F,KAAM,4BACN43F,YAAa,gUAEd,CACC53F,KAAM,eACN43F,YAAa,oRAEd,CACC53F,KAAM,cACN43F,YAAa,iTAEd,CACC53F,KAAM,cACN43F,YAAa,4TAEd,CACC53F,KAAM,cACN43F,YAAa,yVAEd,CACC53F,KAAM,eACN43F,YAAa,uVAEd,CACC53F,KAAM,kBACN43F,YAAa,iWAEd,CACC53F,KAAM,yBACN43F,YAAa,gRAEd,CACC53F,KAAM,uBACN43F,YAAa,0PAEd,CACC53F,KAAM,uBACN43F,YAAa,yPAEd,CACC53F,KAAM,yBACN43F,YAAa,sSAEd,CACC53F,KAAM,wBACN43F,YAAa,6QAEd,CACC53F,KAAM,sBACN43F,YAAa,yPAEd,CACC53F,KAAM,sBACN43F,YAAa,wPAEd,CACC53F,KAAM,wBACN43F,YAAa,oSAEd,CACC53F,KAAM,wBACN43F,YAAa,yWAEd,CACC53F,KAAM,yBACN43F,YAAa,mZAEd,CACC53F,KAAM,2BACN43F,YAAa,8ZAEd,CACC53F,KAAM,kCACN43F,YAAa,ycAEd,CACC53F,KAAM,iCACN43F,YAAa,mcAEd,CACC53F,KAAM,yBACN43F,YAAa,+RAEd,CACC53F,KAAM,2BACN43F,YAAa,oVAEd,CACC53F,KAAM,4BACN43F,YAAa,ySAEd,CACC53F,KAAM,8BACN43F,YAAa,gWAEd,CACC53F,KAAM,yBACN43F,YAAa,+RAEd,CACC53F,KAAM,2BACN43F,YAAa,mVAEd,CACC53F,KAAM,uBACN43F,YAAa,2TAEd,CACC53F,KAAM,yBACN43F,YAAa,uSAEd,CACC53F,KAAM,uBACN43F,YAAa,wRAEd,CACC53F,KAAM,yBACN43F,YAAa,4UAEd,CACC53F,KAAM,2BACN43F,YAAa,sSAEd,CACC53F,KAAM,6BACN43F,YAAa,6VAEd,CACC53F,KAAM,4BACN43F,YAAa,uRAEd,CACC53F,KAAM,4BACN43F,YAAa,sVAEd,CACC53F,KAAM,oCACN43F,YAAa,8eAEd,CACC53F,KAAM,4CACN43F,YAAa,ggBAEd,CACC53F,KAAM,wBACN43F,YAAa,4TAEd,CACC53F,KAAM,qBACN43F,YAAa,4UAEd,CACC53F,KAAM,qBACN43F,YAAa,4UAEd,CACC53F,KAAM,kCACN43F,YAAa,6ZAEd,CACC53F,KAAM,iCACN43F,YAAa,wZAEd,CACC53F,KAAM,0BACN43F,YAAa,maAEd,CACC53F,KAAM,6BACN43F,YAAa,2aAEd,CACC53F,KAAM,2BACN43F,YAAa,oaAEd,CACC53F,KAAM,0BACN43F,YAAa,8eAEd,CACC53F,KAAM,iCACN43F,YAAa,kwBAEd,CACC53F,KAAM,uCACN43F,YAAa,41BAEd,CACC53F,KAAM,8CACN43F,YAAa,w/BAEd,CACC53F,KAAM,2BACN43F,YAAa,kpBAEd,CACC53F,KAAM,2BACN43F,YAAa,ilBAEd,CACC53F,KAAM,QACN43F,YAAa,kVAEd,CACC53F,KAAM,UACN43F,YAAa,6QAEd,CACC53F,KAAM,oBACN43F,YAAa,ykBAEd,CACC53F,KAAM,oBACN43F,YAAa,weAEd,CACC53F,KAAM,qBACN43F,YAAa,kgBAEd,CACC53F,KAAM,sBAC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","sources":["webpack://bpmn-js-token-simulation/./node_modules/@bpmn-io/extract-process-variables/dist/index.js","webpack://bpmn-js-token-simulation/./node_modules/@bpmn-io/extract-process-variables/zeebe/index.js","webpack://bpmn-js-token-simulation/./node_modules/classnames/index.js","webpack://bpmn-js-token-simulation/./node_modules/downloadjs/download.js","webpack://bpmn-js-token-simulation/./node_modules/randomcolor/randomColor.js","webpack://bpmn-js-token-simulation/./node_modules/min-dash/dist/index.cjs","webpack://bpmn-js-token-simulation/webpack/bootstrap","webpack://bpmn-js-token-simulation/webpack/runtime/compat get default export","webpack://bpmn-js-token-simulation/webpack/runtime/define property getters","webpack://bpmn-js-token-simulation/webpack/runtime/hasOwnProperty shorthand","webpack://bpmn-js-token-simulation/webpack/runtime/node module decorator","webpack://bpmn-js-token-simulation/./node_modules/ids/dist/index.esm.js","webpack://bpmn-js-token-simulation/./lib/simulator/ScopeTraits.js","webpack://bpmn-js-token-simulation/./lib/simulator/ScopeStates.js","webpack://bpmn-js-token-simulation/./lib/simulator/Scope.js","webpack://bpmn-js-token-simulation/./lib/simulator/util/SetUtil.js","webpack://bpmn-js-token-simulation/./lib/simulator/util/EventsUtil.js","webpack://bpmn-js-token-simulation/./node_modules/min-dash/dist/index.esm.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/util/ModelUtil.js","webpack://bpmn-js-token-simulation/./lib/simulator/util/ModelUtil.js","webpack://bpmn-js-token-simulation/./lib/simulator/Simulator.js","webpack://bpmn-js-token-simulation/./lib/simulator/behaviors/StartEventBehavior.js","webpack://bpmn-js-token-simulation/./lib/simulator/behaviors/EndEventBehavior.js","webpack://bpmn-js-token-simulation/./lib/simulator/behaviors/BoundaryEventBehavior.js","webpack://bpmn-js-token-simulation/./lib/simulator/behaviors/IntermediateCatchEventBehavior.js","webpack://bpmn-js-token-simulation/./lib/simulator/behaviors/IntermediateThrowEventBehavior.js","webpack://bpmn-js-token-simulation/./lib/simulator/behaviors/ExclusiveGatewayBehavior.js","webpack://bpmn-js-token-simulation/./lib/simulator/behaviors/ParallelGatewayBehavior.js","webpack://bpmn-js-token-simulation/./lib/simulator/behaviors/EventBasedGatewayBehavior.js","webpack://bpmn-js-token-simulation/./lib/simulator/behaviors/InclusiveGatewayBehavior.js","webpack://bpmn-js-token-simulation/./lib/simulator/behaviors/ActivityBehavior.js","webpack://bpmn-js-token-simulation/./lib/simulator/behaviors/SubProcessBehavior.js","webpack://bpmn-js-token-simulation/./lib/simulator/behaviors/TransactionBehavior.js","webpack://bpmn-js-token-simulation/./lib/simulator/behaviors/SequenceFlowBehavior.js","webpack://bpmn-js-token-simulation/./lib/simulator/behaviors/MessageFlowBehavior.js","webpack://bpmn-js-token-simulation/./lib/util/ElementHelper.js","webpack://bpmn-js-token-simulation/./lib/simulator/behaviors/EventBehaviors.js","webpack://bpmn-js-token-simulation/./lib/simulator/behaviors/ScopeBehavior.js","webpack://bpmn-js-token-simulation/./lib/simulator/behaviors/ProcessBehavior.js","webpack://bpmn-js-token-simulation/./lib/simulator/behaviors/index.js","webpack://bpmn-js-token-simulation/./lib/simulator/index.js","webpack://bpmn-js-token-simulation/./node_modules/inherits-browser/dist/index.es.js","webpack://bpmn-js-token-simulation/./lib/animation/behaviors/AnimatedMessageFlowBehavior.js","webpack://bpmn-js-token-simulation/./lib/animation/behaviors/AnimatedSequenceFlowBehavior.js","webpack://bpmn-js-token-simulation/./lib/animation/behaviors/index.js","webpack://bpmn-js-token-simulation/./lib/util/EventHelper.js","webpack://bpmn-js-token-simulation/./lib/features/scope-filter/ScopeFilter.js","webpack://bpmn-js-token-simulation/./lib/features/scope-filter/index.js","webpack://bpmn-js-token-simulation/./node_modules/min-dom/dist/index.esm.js","webpack://bpmn-js-token-simulation/./node_modules/tiny-svg/dist/index.esm.js","webpack://bpmn-js-token-simulation/./lib/animation/Animation.js","webpack://bpmn-js-token-simulation/./lib/animation/index.js","webpack://bpmn-js-token-simulation/./lib/features/colored-scopes/ColoredScopes.js","webpack://bpmn-js-token-simulation/./lib/features/colored-scopes/index.js","webpack://bpmn-js-token-simulation/./lib/icons/index.js","webpack://bpmn-js-token-simulation/./lib/features/context-pads/handler/ExclusiveGatewayHandler.js","webpack://bpmn-js-token-simulation/./lib/features/context-pads/handler/InclusiveGatewayHandler.js","webpack://bpmn-js-token-simulation/./lib/features/context-pads/handler/PauseHandler.js","webpack://bpmn-js-token-simulation/./lib/features/context-pads/handler/TriggerHandler.js","webpack://bpmn-js-token-simulation/./lib/features/context-pads/ContextPads.js","webpack://bpmn-js-token-simulation/./lib/features/context-pads/index.js","webpack://bpmn-js-token-simulation/./lib/features/simulation-state/SimulationState.js","webpack://bpmn-js-token-simulation/./lib/features/element-notifications/ElementNotifications.js","webpack://bpmn-js-token-simulation/./lib/features/element-notifications/index.js","webpack://bpmn-js-token-simulation/./lib/features/notifications/Notifications.js","webpack://bpmn-js-token-simulation/./lib/features/notifications/index.js","webpack://bpmn-js-token-simulation/./lib/features/simulation-state/index.js","webpack://bpmn-js-token-simulation/./lib/features/show-scopes/ShowScopes.js","webpack://bpmn-js-token-simulation/./lib/features/simulation-styles/SimulationStyles.js","webpack://bpmn-js-token-simulation/./lib/features/simulation-styles/index.js","webpack://bpmn-js-token-simulation/./lib/features/show-scopes/index.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/util/EscapeUtil.js","webpack://bpmn-js-token-simulation/./lib/features/log/Log.js","webpack://bpmn-js-token-simulation/./lib/features/log/index.js","webpack://bpmn-js-token-simulation/./lib/features/element-support/ElementSupport.js","webpack://bpmn-js-token-simulation/./lib/features/element-support/index.js","webpack://bpmn-js-token-simulation/./lib/features/pause-simulation/PauseSimulation.js","webpack://bpmn-js-token-simulation/./lib/features/pause-simulation/index.js","webpack://bpmn-js-token-simulation/./lib/features/reset-simulation/ResetSimulation.js","webpack://bpmn-js-token-simulation/./lib/features/reset-simulation/index.js","webpack://bpmn-js-token-simulation/./lib/features/token-count/TokenCount.js","webpack://bpmn-js-token-simulation/./lib/features/token-count/index.js","webpack://bpmn-js-token-simulation/./lib/features/set-animation-speed/SetAnimationSpeed.js","webpack://bpmn-js-token-simulation/./lib/features/set-animation-speed/index.js","webpack://bpmn-js-token-simulation/./lib/features/exclusive-gateway-settings/ExclusiveGatewaySettings.js","webpack://bpmn-js-token-simulation/./lib/features/element-colors/ElementColors.js","webpack://bpmn-js-token-simulation/./lib/features/element-colors/index.js","webpack://bpmn-js-token-simulation/./lib/features/exclusive-gateway-settings/index.js","webpack://bpmn-js-token-simulation/./lib/features/neutral-element-colors/NeutralElementColors.js","webpack://bpmn-js-token-simulation/./lib/features/neutral-element-colors/index.js","webpack://bpmn-js-token-simulation/./lib/features/inclusive-gateway-settings/InclusiveGatewaySettings.js","webpack://bpmn-js-token-simulation/./lib/features/inclusive-gateway-settings/index.js","webpack://bpmn-js-token-simulation/./lib/features/palette/Palette.js","webpack://bpmn-js-token-simulation/./lib/features/palette/index.js","webpack://bpmn-js-token-simulation/./lib/base.js","webpack://bpmn-js-token-simulation/./lib/features/disable-modeling/DisableModeling.js","webpack://bpmn-js-token-simulation/./lib/features/disable-modeling/index.js","webpack://bpmn-js-token-simulation/./lib/features/toggle-mode/modeler/ToggleMode.js","webpack://bpmn-js-token-simulation/./lib/features/toggle-mode/modeler/index.js","webpack://bpmn-js-token-simulation/./lib/features/editor-actions/EditorActions.js","webpack://bpmn-js-token-simulation/./lib/features/editor-actions/index.js","webpack://bpmn-js-token-simulation/./lib/features/keyboard-bindings/KeyboardBindings.js","webpack://bpmn-js-token-simulation/./lib/features/keyboard-bindings/index.js","webpack://bpmn-js-token-simulation/./lib/modeler.js","webpack://bpmn-js-token-simulation/./node_modules/didi/dist/index.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/draw/BaseRenderer.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/util/RenderUtil.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/util/Elements.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/draw/DefaultRenderer.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/draw/index.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/draw/Styles.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/util/Collections.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/util/Geometry.js","webpack://bpmn-js-token-simulation/./node_modules/path-intersection/intersect.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/util/ModelUtil.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/layout/LayoutUtil.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/core/Canvas.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/core/ElementRegistry.js","webpack://bpmn-js-token-simulation/./node_modules/object-refs/dist/index.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/model/index.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/core/ElementFactory.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/core/EventBus.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/util/GraphicsUtil.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/util/SvgTransformUtil.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/core/GraphicsFactory.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/core/index.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/Diagram.js","webpack://bpmn-js-token-simulation/./node_modules/moddle/dist/index.esm.js","webpack://bpmn-js-token-simulation/./node_modules/saxen/dist/index.esm.js","webpack://bpmn-js-token-simulation/./node_modules/moddle-xml/dist/index.esm.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-moddle/dist/index.esm.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/import/Util.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/util/CompatibilityUtil.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/import/BpmnTreeWalker.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/import/Importer.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/util/PoweredByUtil.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/BaseViewer.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/BaseModeler.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/util/DiUtil.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/util/LabelUtil.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/draw/BpmnRenderUtil.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/draw/BpmnRenderer.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/util/Text.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/draw/TextRenderer.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/draw/PathMap.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/draw/index.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/i18n/translate/index.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/i18n/translate/translate.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/import/BpmnImporter.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/import/index.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/core/index.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/util/IdGenerator.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/overlays/Overlays.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/overlays/index.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/change-support/ChangeSupport.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/change-support/index.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/command/CommandInterceptor.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/root-elements/RootElementsBehavior.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/root-elements/index.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/util/DrilldownUtil.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/drilldown/DrilldownBreadcrumbs.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/drilldown/DrilldownCentering.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/drilldown/SubprocessCompatibility.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/drilldown/DrilldownOverlayBehavior.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/drilldown/index.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/outline/Outline.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/outline/index.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/outline/OutlineUtil.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/outline/OutlineProvider.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/outline/index.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/util/Event.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/util/Platform.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/util/Mouse.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/interaction-events/InteractionEvents.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/interaction-events/index.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/selection/Selection.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/selection/SelectionVisuals.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/selection/SelectionBehavior.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/selection/index.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/Viewer.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/keyboard/KeyboardUtil.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/keyboard/Keyboard.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/keyboard/KeyboardBindings.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/keyboard/index.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/navigation/keyboard-move/KeyboardMove.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/navigation/keyboard-move/index.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/util/Cursor.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/util/ClickTrap.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/util/PositionUtil.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/navigation/movecanvas/MoveCanvas.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/navigation/movecanvas/index.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/util/Math.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/navigation/zoomscroll/ZoomUtil.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/navigation/zoomscroll/ZoomScroll.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/navigation/zoomscroll/index.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/NavigatedViewer.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/align-elements/AlignElements.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/align-elements/index.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/scheduler/Scheduler.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/scheduler/index.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/context-pad/ContextPad.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/context-pad/index.js","webpack://bpmn-js-token-simulation/./node_modules/preact/dist/preact.module.js","webpack://bpmn-js-token-simulation/./node_modules/htm/dist/htm.module.js","webpack://bpmn-js-token-simulation/./node_modules/preact/hooks/dist/hooks.module.js","webpack://bpmn-js-token-simulation/./node_modules/htm/preact/index.module.js","webpack://bpmn-js-token-simulation/./node_modules/clsx/dist/clsx.mjs","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/popup-menu/PopupMenuHeader.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/popup-menu/PopupMenuItem.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/popup-menu/PopupMenuList.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/popup-menu/PopupMenuComponent.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/popup-menu/PopupMenu.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/popup-menu/index.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/align-elements/AlignElementsIcons.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/align-elements/AlignElementsContextPadProvider.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/align-elements/AlignElementsMenuProvider.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/rules/RuleProvider.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/align-elements/BpmnAlignElements.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/align-elements/index.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/auto-place/AutoPlaceUtil.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/auto-place/AutoPlace.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/auto-place/AutoPlaceSelectionBehavior.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/auto-place/index.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/util/ModelingUtil.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/auto-place/BpmnAutoPlaceUtil.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/auto-place/BpmnAutoPlace.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/auto-place/index.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/auto-resize/AutoResize.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/auto-resize/BpmnAutoResize.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/auto-resize/AutoResizeProvider.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/auto-resize/BpmnAutoResizeProvider.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/auto-resize/index.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/hover-fix/HoverFix.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/hover-fix/index.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/dragging/Dragging.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/dragging/index.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/auto-scroll/AutoScroll.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/auto-scroll/index.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/rules/Rules.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/rules/index.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/util/LineIntersection.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/bendpoints/GeometricUtil.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/bendpoints/BendpointUtil.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/bendpoints/Bendpoints.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/bendpoints/BendpointMove.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/bendpoints/BendpointMovePreview.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/bendpoints/ConnectionSegmentMove.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/snapping/SnapUtil.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/bendpoints/BendpointSnapping.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/bendpoints/index.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/connect/Connect.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/connect/ConnectPreview.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/connect/index.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/connection-preview/ConnectionPreview.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/connection-preview/index.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/preview-support/PreviewSupport.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/preview-support/index.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/complex-preview/ComplexPreview.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/complex-preview/index.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/behavior/AdaptiveLabelPositioningBehavior.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/behavior/AppendBehavior.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/behavior/AssociationBehavior.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/behavior/AttachEventBehavior.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/behavior/BoundaryEventBehavior.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/behavior/CompensateBoundaryEventBehavior.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/behavior/CreateBehavior.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/behavior/CreateDataObjectBehavior.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/behavior/CreateParticipantBehavior.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/behavior/DataInputAssociationBehavior.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/cmd/UpdateSemanticParentHandler.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/behavior/DataStoreBehavior.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/resize/ResizeUtil.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/util/LaneUtil.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/behavior/DeleteLaneBehavior.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/behavior/DetachEventBehavior.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/behavior/DropOnFlowBehavior.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/behavior/EventBasedGatewayBehavior.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/behavior/FixHoverBehavior.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/behavior/GroupBehavior.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/behavior/util/CategoryUtil.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/behavior/util/LineIntersect.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/behavior/ImportDockingFix.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/behavior/IsHorizontalFix.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/behavior/util/LineAttachmentUtil.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/behavior/util/LayoutUtil.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/util/AttachUtil.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/behavior/LabelBehavior.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/behavior/util/LabelLayoutUtil.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/behavior/LayoutConnectionBehavior.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/behavior/util/ConnectionLayoutUtil.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/modeling/cmd/helper/AnchorsHelper.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/behavior/MessageFlowBehavior.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/behavior/util/NonInterruptingUtil.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/behavior/NonInterruptingBehavior.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/behavior/RemoveEmbeddedLabelBoundsBehavior.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/behavior/RemoveElementBehavior.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/behavior/RemoveParticipantBehavior.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/behavior/ReplaceConnectionBehavior.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/behavior/ReplaceElementBehaviour.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/behavior/ResizeBehavior.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/behavior/ResizeLaneBehavior.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/behavior/RootElementReferenceBehavior.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/behavior/SpaceToolBehavior.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/behavior/SubProcessPlaneBehavior.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/behavior/SubProcessStartEventBehavior.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/behavior/TextAnnotationBehavior.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/behavior/ToggleCollapseConnectionBehaviour.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/behavior/ToggleElementCollapseBehaviour.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/behavior/UnclaimIdBehavior.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/behavior/UnsetDefaultFlowBehavior.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/behavior/UpdateFlowNodeRefsBehavior.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/behavior/index.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/snapping/BpmnSnappingUtil.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/rules/BpmnRules.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/rules/index.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/di-ordering/BpmnDiOrdering.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/di-ordering/index.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/ordering/OrderingProvider.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/ordering/BpmnOrderingProvider.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/ordering/index.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/clipboard/Clipboard.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/clipboard/index.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/create/Create.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/create/CreatePreview.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/create/index.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/mouse/Mouse.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/mouse/index.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/copy-paste/CopyPaste.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/copy-paste/index.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/copy-paste/BpmnCopyPaste.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/copy-paste/ModdleCopy.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/copy-paste/index.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/replace/Replace.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/replace/ReplaceSelectionBehavior.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/replace/index.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/replace/BpmnReplace.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/replace/index.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/tool-manager/ToolManager.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/tool-manager/index.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/space-tool/SpaceUtil.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/space-tool/SpaceTool.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/space-tool/SpaceToolPreview.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/space-tool/index.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/space-tool/BpmnSpaceTool.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/space-tool/index.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/command/CommandStack.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/command/index.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/util/Removal.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/label-support/LabelSupport.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/label-support/index.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/attach-support/AttachSupport.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/attach-support/index.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/BpmnFactory.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/BpmnUpdater.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/ElementFactory.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/modeling/cmd/AlignElementsHandler.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/modeling/cmd/AppendShapeHandler.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/modeling/cmd/CreateConnectionHandler.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/modeling/cmd/CreateElementsHandler.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/modeling/cmd/CreateShapeHandler.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/modeling/cmd/CreateLabelHandler.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/modeling/cmd/DeleteConnectionHandler.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/modeling/cmd/DeleteElementsHandler.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/modeling/cmd/DeleteShapeHandler.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/modeling/cmd/DistributeElementsHandler.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/modeling/cmd/LayoutConnectionHandler.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/modeling/cmd/MoveConnectionHandler.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/modeling/cmd/helper/MoveClosure.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/modeling/cmd/helper/MoveHelper.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/modeling/cmd/MoveElementsHandler.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/modeling/cmd/MoveShapeHandler.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/modeling/cmd/ReconnectConnectionHandler.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/modeling/cmd/ReplaceShapeHandler.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/modeling/cmd/ResizeShapeHandler.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/modeling/cmd/SpaceToolHandler.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/modeling/cmd/ToggleShapeCollapseHandler.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/modeling/cmd/UpdateAttachmentHandler.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/modeling/cmd/UpdateWaypointsHandler.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/modeling/Modeling.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/cmd/UpdateModdlePropertiesHandler.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/cmd/UpdatePropertiesHandler.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/cmd/UpdateCanvasRootHandler.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/cmd/AddLaneHandler.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/cmd/SplitLaneHandler.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/cmd/ResizeLaneHandler.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/cmd/UpdateFlowNodeRefsHandler.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/cmd/IdClaimHandler.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/cmd/SetColorHandler.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/label-editing/cmd/UpdateLabelHandler.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/Modeling.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/layout/BaseLayouter.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/layout/ManhattanLayout.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/BpmnLayouter.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/layout/CroppingConnectionDocking.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling/index.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/append-preview/AppendPreview.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/append-preview/index.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js-direct-editing/lib/TextBox.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js-direct-editing/lib/DirectEditing.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js-direct-editing/lib/index.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/popup-menu/util/TypeUtil.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/replace/ReplaceOptions.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/popup-menu/util/Icons.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/popup-menu/ReplaceMenuProvider.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/popup-menu/index.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/context-pad/ContextPadProvider.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/context-pad/index.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/distribute-elements/DistributeElements.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/distribute-elements/index.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/distribute-elements/BpmnDistributeElements.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/distribute-elements/DistributeElementsIcons.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/distribute-elements/DistributeElementsMenuProvider.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/distribute-elements/index.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/editor-actions/EditorActions.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/editor-actions/index.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/editor-actions/BpmnEditorActions.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/editor-actions/index.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/grid-snapping/BpmnGridSnapping.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/grid-snapping/GridUtil.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/grid-snapping/GridSnapping.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/grid-snapping/behavior/ResizeBehavior.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/grid-snapping/behavior/SpaceToolBehavior.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/grid-snapping/behavior/index.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/grid-snapping/index.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/grid-snapping/behavior/GridSnappingAutoPlaceBehavior.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/grid-snapping/behavior/GridSnappingParticipantBehavior.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/grid-snapping/behavior/GridSnappingLayoutConnectionBehavior.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/grid-snapping/behavior/index.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/grid-snapping/index.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/interaction-events/BpmnInteractionEvents.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/interaction-events/index.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/keyboard/BpmnKeyboardBindings.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/keyboard/index.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/keyboard-move-selection/KeyboardMoveSelection.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/keyboard-move-selection/index.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/resize/Resize.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/resize/ResizePreview.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/resize/ResizeHandles.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/resize/index.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/label-editing/LabelEditingProvider.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/label-editing/LabelEditingPreview.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/label-editing/index.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/tooltips/Tooltips.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/tooltips/index.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling-feedback/ModelingFeedback.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/modeling-feedback/index.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/move/Move.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/move/MovePreview.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/move/index.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/palette/Palette.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/palette/index.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/lasso-tool/LassoTool.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/lasso-tool/index.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/hand-tool/HandTool.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/hand-tool/index.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/global-connect/GlobalConnect.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/global-connect/index.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/palette/PaletteProvider.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/palette/index.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/replace-preview/BpmnReplacePreview.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/replace-preview/index.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/snapping/BpmnConnectSnapping.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/snapping/SnapContext.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/snapping/CreateMoveSnapping.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/snapping/BpmnCreateMoveSnapping.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/snapping/ResizeSnapping.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/snapping/Snapping.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/snapping/index.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/snapping/index.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/search-pad/SearchPad.js","webpack://bpmn-js-token-simulation/./node_modules/diagram-js/lib/features/search-pad/index.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/search/BpmnSearchProvider.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/features/search/index.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js/lib/Modeler.js","webpack://bpmn-js-token-simulation/./node_modules/@bpmn-io/add-exporter/add-exporter.js","webpack://bpmn-js-token-simulation/./node_modules/@bpmn-io/add-exporter/index.js","webpack://bpmn-js-token-simulation/./node_modules/@bpmn-io/properties-panel/preact/dist/preact.module.js","webpack://bpmn-js-token-simulation/./node_modules/@bpmn-io/properties-panel/preact/hooks/dist/hooks.module.js","webpack://bpmn-js-token-simulation/./node_modules/@bpmn-io/properties-panel/preact/compat/dist/compat.module.js","webpack://bpmn-js-token-simulation/./node_modules/@bpmn-io/properties-panel/preact/jsx-runtime/dist/jsxRuntime.module.js","webpack://bpmn-js-token-simulation/./node_modules/@lezer/common/dist/index.js","webpack://bpmn-js-token-simulation/./node_modules/@lezer/lr/dist/index.js","webpack://bpmn-js-token-simulation/./node_modules/@lezer/highlight/dist/index.js","webpack://bpmn-js-token-simulation/./node_modules/@codemirror/state/dist/index.js","webpack://bpmn-js-token-simulation/./node_modules/style-mod/src/style-mod.js","webpack://bpmn-js-token-simulation/./node_modules/w3c-keyname/index.js","webpack://bpmn-js-token-simulation/./node_modules/@codemirror/view/dist/index.js","webpack://bpmn-js-token-simulation/./node_modules/@codemirror/language/dist/index.js","webpack://bpmn-js-token-simulation/./node_modules/@codemirror/autocomplete/dist/index.js","webpack://bpmn-js-token-simulation/./node_modules/@codemirror/commands/dist/index.js","webpack://bpmn-js-token-simulation/./node_modules/crelt/index.js","webpack://bpmn-js-token-simulation/./node_modules/@codemirror/lint/dist/index.js","webpack://bpmn-js-token-simulation/./node_modules/@lezer/markdown/dist/index.js","webpack://bpmn-js-token-simulation/./node_modules/lezer-feel/dist/index.js","webpack://bpmn-js-token-simulation/./node_modules/@bpmn-io/feel-lint/dist/index.esm.js","webpack://bpmn-js-token-simulation/./node_modules/@bpmn-io/cm-theme/dist/index.es.js","webpack://bpmn-js-token-simulation/./node_modules/feelers/dist/index.mjs","webpack://bpmn-js-token-simulation/./node_modules/lang-feel/dist/index.js","webpack://bpmn-js-token-simulation/./node_modules/@bpmn-io/feel-editor/dist/index.es.js","webpack://bpmn-js-token-simulation/./node_modules/tabbable/dist/index.esm.js","webpack://bpmn-js-token-simulation/./node_modules/focus-trap/dist/focus-trap.esm.js","webpack://bpmn-js-token-simulation/./node_modules/@bpmn-io/properties-panel/dist/index.esm.js","webpack://bpmn-js-token-simulation/./node_modules/bpmn-js-properties-panel/dist/index.esm.js","webpack://bpmn-js-token-simulation/./node_modules/file-drops/dist/index.esm.js","webpack://bpmn-js-token-simulation/./node_modules/file-open/index.js","webpack://bpmn-js-token-simulation/./example/src/modeler.js"],"sourcesContent":["'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar minDash = require('min-dash');\n\n/**\n * Get a inputOutput from the business object\n *\n * @param {ModdleElement} element\n *\n * @return {ModdleElement} the inputOutput object\n */\nfunction getInputOutput(element) {\n return (getElements(element, 'camunda:InputOutput') || [])[0];\n}\n\n/**\n * Return all input parameters existing in the business object, and\n * an empty array if none exist.\n *\n * @param {ModdleElement} element\n *\n * @return {Array} a list of input parameter objects\n */\nfunction getInputParameters(element) {\n return getParameters(element, 'inputParameters');\n}\n\n/**\n * Return all output parameters existing in the business object, and\n * an empty array if none exist.\n *\n * @param {ModdleElement} element\n * @param {boolean} insideConnector\n *\n * @return {Array} a list of output parameter objects\n */\nfunction getOutputParameters(element) {\n return getParameters(element, 'outputParameters');\n}\n\n/**\n * Return all form fields existing in the business object, and\n * an empty array if none exist.\n *\n * @param {ModdleElement} element\n *\n * @return {Array} a list of form fields\n */\nfunction getFormFields(element) {\n var formData = getFormData(element);\n return (formData && formData.get('fields')) || [];\n}\n\n/**\n * Return form data existing in the business object\n *\n * @param {ModdleElement} element\n *\n * @return {ModdleElement}\n */\nfunction getFormData(element) {\n return getElements(element, 'camunda:FormData')[0];\n}\n\n/**\n * Return out mappings existing in the business object\n *\n * @param {ModdleElement} element\n *\n * @return {Array}\n */\nfunction getOutMappings(element) {\n return getElements(element, 'camunda:Out');\n}\n\n\n// helpers //////////\n\nfunction getElements(element, type, property) {\n var elements = getExtensionElements(element, type);\n\n return !property ? elements : (elements[0] || {})[property] || [];\n}\n\nfunction getParameters(element, property) {\n var inputOutput = getInputOutput(element);\n\n return (inputOutput && inputOutput.get(property)) || [];\n}\n\nfunction getExtensionElements(element, type) {\n var elements = [];\n var extensionElements = element.get('extensionElements');\n\n if (typeof extensionElements !== 'undefined') {\n var extensionValues = extensionElements.get('values');\n\n if (typeof extensionValues !== 'undefined') {\n elements = minDash.filter(extensionValues, function(value) {\n return is$2(value, type);\n });\n }\n }\n\n return elements;\n}\n\nfunction is$2(element, type) {\n return (\n element &&\n typeof element.$instanceOf === 'function' &&\n element.$instanceOf(type)\n );\n}\n\n/**\n * Get all parent elements for a given element.\n *\n * @param {ModdleElement|string} element\n *\n * @returns {Array}\n */\nfunction getParents(element) {\n var parents = [];\n var current = element;\n\n while (current.$parent) {\n parents.push(current.$parent);\n current = current.$parent;\n }\n\n return parents;\n}\n\n/**\n * Iterate over each element in a collection, calling the iterator function `fn`\n * with (element, index, recursionDepth).\n *\n * Recurse into all elements that are returned by `fn`.\n *\n * @param {Object|Array} elements\n * @param {Function} fn iterator function called with (element, index, recursionDepth)\n * @param {number} [depth] maximum recursion depth\n */\nfunction eachElement(elements, fn, depth) {\n depth = depth || 0;\n\n if (!minDash.isArray(elements)) {\n elements = [ elements ];\n }\n\n minDash.forEach(elements, function(s, i) {\n var filter = fn(s, i, depth);\n\n if (minDash.isArray(filter) && filter.length) {\n eachElement(filter, fn, depth + 1);\n }\n });\n}\n\n/**\n * Adds an element to a collection and returns true if the\n * element was added.\n *\n * @param {Array} elements\n * @param {Object} e\n * @param {boolean} unique\n */\nfunction add(elements, e, unique) {\n var canAdd = !unique || elements.indexOf(e) === -1;\n\n if (canAdd) {\n elements.push(e);\n }\n\n return canAdd;\n}\n\n/**\n * Collects self + flow elements up to a given depth from a list of elements.\n *\n * @param {ModdleElement|Array} elements the elements to select the flowElements from\n * @param {boolean} unique whether to return a unique result set (no duplicates)\n * @param {number} maxDepth the depth to search through or -1 for infinite\n *\n * @return {Array} found elements\n */\nfunction selfAndFlowElements(elements, unique, maxDepth) {\n var result = [],\n processedFlowElements = [];\n\n eachElement(elements, function(element, i, depth) {\n add(result, element, unique);\n\n var flowElements = element.flowElements;\n\n // max traversal depth not reached yet\n if (maxDepth === -1 || depth < maxDepth) {\n\n // flowElements exist && flowElements not yet processed\n if (flowElements && add(processedFlowElements, flowElements, unique)) {\n return flowElements;\n }\n }\n });\n\n return result;\n}\n\n/**\n * Return self + ALL flowElements for a number of elements\n *\n * @param {Array} elements to query\n * @param {boolean} allowDuplicates to allow duplicates in the result set\n *\n * @return {Array} the collected elements\n */\nfunction selfAndAllFlowElements(elements, allowDuplicates) {\n return selfAndFlowElements(elements, !allowDuplicates, -1);\n}\n\n/**\n * Return full moddle element for given element id\n *\n * @param {string} elementId\n * @param {ModdleElement} rootElement\n *\n * @returns {ModdleElement}\n */\nfunction getElement(elementId, rootElement) {\n var allElements = selfAndAllFlowElements(rootElement);\n\n return minDash.find(allElements, function(element) {\n return element.id === elementId;\n });\n}\n\nfunction addVariableToList(variablesList, newVariable) {\n var foundIdx = minDash.findIndex(variablesList, function(variable) {\n return (\n variable.name === newVariable.name && variable.scope === newVariable.scope\n );\n });\n\n if (foundIdx >= 0) {\n variablesList[foundIdx].origin = combineArrays$1(\n variablesList[foundIdx].origin,\n newVariable.origin\n );\n } else {\n variablesList.push(newVariable);\n }\n}\n\n/**\n * Creates new process variable definition object\n * Identifies correct (highest) scope, in which variable is available\n *\n * @param {ModdleElement} flowElement\n * @param {String} name\n * @param {ModdleElement} defaultScope\n *\n * @returns {ProcessVariable}\n */\nfunction createProcessVariable(flowElement, name, defaultScope) {\n var scope = getScope(flowElement, defaultScope, name);\n\n return {\n name: name,\n origin: [ flowElement ],\n scope: scope,\n };\n}\n\n\n// helpers ////////////////////\n\n/**\n * Set parent container if it defines it's own scope for the variable, so\n * when it defines an input mapping for it. Otherwise returns the default global scope\n */\nfunction getScope(element, globalScope, variableName) {\n var parents = getParents(element);\n\n var scopedParent = minDash.find(parents, function(parent) {\n return (\n is$1(parent, 'bpmn:SubProcess') && hasInputParameter(parent, variableName)\n );\n });\n\n return scopedParent ? scopedParent : globalScope;\n}\n\nfunction is$1(element, type) {\n return (\n element &&\n typeof element.$instanceOf === 'function' &&\n element.$instanceOf(type)\n );\n}\n\nfunction hasInputParameter(element, name) {\n return minDash.find(getInputParameters(element), function(input) {\n return input.name === name;\n });\n}\n\nfunction combineArrays$1(a, b) {\n return a.concat(b);\n}\n\n/**\n * Retrieves process variables defined in output parameters, e.g.\n *\n * \n * 200\n * ${myLocalVar + 20}\n * \n *\n * => Adds two variables \"variable1\" & \"variable2\" to the list.\n *\n */\nfunction extractOutputParameters(options) {\n var elements = options.elements,\n containerElement = options.containerElement,\n processVariables = options.processVariables;\n\n if (!minDash.isArray(elements)) {\n elements = [ elements ];\n }\n\n minDash.forEach(elements, function(element) {\n\n // variables are created by output parameters\n var outputParameters = getOutputParameters(element);\n\n // extract all variables with correct scope\n minDash.forEach(outputParameters, function(parameter) {\n var newVariable = createProcessVariable(\n element,\n parameter.name,\n containerElement\n );\n\n addVariableToList(processVariables, newVariable);\n });\n });\n\n return processVariables;\n}\n\n/**\n * Retrieves process variables defined in result variables, e.g.\n *\n * \n *\n * => Adds one variable \"variable1\"to the list.\n *\n */\nfunction extractResultVariables(options) {\n var elements = options.elements,\n containerElement = options.containerElement,\n processVariables = options.processVariables;\n\n if (!minDash.isArray(elements)) {\n elements = [ elements ];\n }\n\n minDash.forEach(elements, function(element) {\n\n var resultVariable = getResultVariable(element);\n\n if (resultVariable) {\n var newVariable = createProcessVariable(\n element,\n resultVariable,\n containerElement\n );\n\n addVariableToList(processVariables, newVariable);\n }\n });\n\n return processVariables;\n}\n\n\n// helpers ///////////////////////\n\nfunction getResultVariable(element) {\n return element.get('camunda:resultVariable');\n}\n\n/**\n * Retrieves process variables defined in form fields, e.g.\n *\n * \n * \n * \n * \n *\n * => Adds two variables \"variable1\" & \"variable2\" to the list.\n *\n */\nfunction extractFormFields(options) {\n var elements = options.elements,\n containerElement = options.containerElement,\n processVariables = options.processVariables;\n\n if (!minDash.isArray(elements)) {\n elements = [ elements ];\n }\n\n minDash.forEach(elements, function(element) {\n\n var formFields = getFormFields(element);\n\n // extract all variables with correct scope\n minDash.forEach(formFields, function(field) {\n var newVariable = createProcessVariable(\n element,\n field.id,\n containerElement\n );\n\n addVariableToList(processVariables, newVariable);\n });\n });\n\n return processVariables;\n}\n\n/**\n * Retrieves process variables defined in output mappings and\n * ignores local variables, e.g.\n *\n * \n * \n * \n * \n *\n * => Adds one variable \"variable1\" to the list.\n *\n */\nfunction extractOutMappings(options) {\n var elements = options.elements,\n containerElement = options.containerElement,\n processVariables = options.processVariables;\n\n if (!minDash.isArray(elements)) {\n elements = [ elements ];\n }\n\n minDash.forEach(elements, function(element) {\n\n var outMappings = getOutMappings(element);\n\n // extract all variables with correct scope\n minDash.forEach(outMappings, function(mapping) {\n\n // do not use variables marked as \n if (mapping.local) {\n return;\n }\n\n var newVariable = createProcessVariable(\n element,\n mapping.target,\n containerElement\n );\n\n addVariableToList(processVariables, newVariable);\n });\n });\n\n return processVariables;\n}\n\n/**\n *\n * @param {ModdleElement} element\n * @param {string} [type] - optional\n *\n * @return {Array|undefined} collection of event definitions or none\n */\nfunction getEventDefinitions(element, type) {\n var eventDefinitions = element.eventDefinitions;\n\n if (!eventDefinitions || !type) {\n return eventDefinitions;\n }\n\n return minDash.filter(eventDefinitions, function(definition) {\n return is(definition, type);\n });\n}\n\n/**\n * Returns error event definitions for a given element.\n *\n * @param {ModdleElement} element\n *\n * @return {Array} collection of error event definitions\n */\nfunction getErrorEventDefinitions(element) {\n return getEventDefinitions(element, 'bpmn:ErrorEventDefinition');\n}\n\n/**\n * Returns escalation event definitions for a given element.\n *\n * @param {ModdleElement} element\n *\n * @return {Array} collection of escalation event definitions\n */\nfunction getEscalationEventDefinitions(element) {\n return getEventDefinitions(element, 'bpmn:EscalationEventDefinition');\n}\n\n\n// helper ////////////////\n\nfunction is(element, type) {\n return (\n element &&\n typeof element.$instanceOf === 'function' &&\n element.$instanceOf(type)\n );\n}\n\n/**\n * Retrieves process variables defined in event definitions, e.g.\n *\n * \n *\n * => Adds one variable \"variable1\" to the list.\n *\n * \n *\n * => Adds two variables \"variable2\" & \"variable3\" to the list.\n *\n */\nfunction extractEventDefinitionVariables(options) {\n var elements = options.elements,\n containerElement = options.containerElement,\n processVariables = options.processVariables;\n\n var addVariable = function(element, name) {\n var newVariable = createProcessVariable(\n element,\n name,\n containerElement\n );\n\n addVariableToList(processVariables, newVariable);\n };\n\n if (!minDash.isArray(elements)) {\n elements = [ elements ];\n }\n\n minDash.forEach(elements, function(element) {\n\n // (1) error event code + message variable\n var errorEventDefinitions = getErrorEventDefinitions(element);\n\n minDash.forEach(errorEventDefinitions, function(definition) {\n\n var errorCodeVariable = definition.get('errorCodeVariable'),\n errorMessageVariable = definition.get('errorMessageVariable');\n\n if (errorCodeVariable) {\n addVariable(element, errorCodeVariable);\n }\n\n if (errorMessageVariable) {\n addVariable(element, errorMessageVariable);\n }\n });\n\n // (2) escalation code variable\n var escalationEventDefinitions = getEscalationEventDefinitions(element);\n\n minDash.forEach(escalationEventDefinitions, function(definition) {\n\n var escalationCodeVariable = definition.get('escalationCodeVariable');\n\n if (escalationCodeVariable) {\n addVariable(element, escalationCodeVariable);\n }\n });\n\n });\n\n return processVariables;\n}\n\nvar extractors = [\n extractOutputParameters,\n extractResultVariables,\n extractFormFields,\n extractOutMappings,\n extractEventDefinitionVariables\n];\n\n/**\n * @typedef {Object} ProcessVariable\n * @property {string} name\n * @property {Array} origin\n * @property {ModdleElement} scope\n */\n\n\n/**\n * Extractors add ProcessVariables to the `options.processVariables` parameter.\n * @callback extractor\n * @param {Object} options\n * @param {Array} options.elements\n * @param {ModdleElement} options.containerElement\n * @param {Array} options.processVariables\n */\n\n// api /////////////////////////\n\n/**\n * Retrieves all process variables for a given container element.\n * @param {ModdleElement} containerElement\n * @param {Array} additionalExtractors\n *\n * @returns {Promise>}\n */\nfunction getProcessVariables(containerElement, additionalExtractors = []) {\n const allPromises = [];\n\n var processVariables = [];\n\n // (1) extract all flow elements inside the container\n var elements = selfAndAllFlowElements([ containerElement ], false);\n\n // (2) extract all variables from the extractors\n minDash.forEach([ ...extractors, ...additionalExtractors ], function(extractor) {\n allPromises.push(\n extractor({\n elements: elements,\n containerElement: containerElement,\n processVariables: processVariables\n })\n );\n });\n\n return Promise.all(allPromises)\n .then(() => processVariables);\n}\n\n/**\n * Retrieves all variables which are available in the given scope\n *\n * * Exclude variables which are only available in other scopes\n * * Exclude variables which are produced by the given element\n * * Include variables which are available in parent scopes\n *\n * @param {string} scope\n * @param {ModdleElement} rootElement element from where to extract all variables\n * @param {Array} additionalExtractors\n *\n * @returns {Promise>}\n */\nasync function getVariablesForScope(scope, rootElement, additionalExtractors = []) {\n\n var allVariables = await getProcessVariables(rootElement, additionalExtractors);\n\n var scopeElement = getElement(scope, rootElement);\n\n // (1) get variables for given scope\n var scopeVariables = minDash.filter(allVariables, function(variable) {\n return variable.scope.id === scopeElement.id;\n });\n\n // (2) get variables for parent scopes\n var parents = getParents(scopeElement);\n\n var parentsScopeVariables = minDash.filter(allVariables, function(variable) {\n return minDash.find(parents, function(parent) {\n return parent.id === variable.scope.id;\n });\n });\n\n return combineArrays(scopeVariables, parentsScopeVariables);\n}\n\n// helpers ////////////////////\n\nfunction combineArrays(a, b) {\n return a.concat(b);\n}\n\nexports.getProcessVariables = getProcessVariables;\nexports.getVariablesForScope = getVariablesForScope;\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar minDash = require('min-dash');\n\n/**\n * Get a inputOutput from the business object\n *\n * @param {ModdleElement} element\n *\n * @return {ModdleElement} the inputOutput object\n */\nfunction getInputOutput(element) {\n return (getElements(element, 'zeebe:IoMapping') || [])[0];\n}\n\n/**\n * Return all input parameters existing in the business object, and\n * an empty array if none exist.\n *\n * @param {ModdleElement} element\n *\n * @return {Array} a list of input parameter objects\n */\nfunction getInputParameters(element) {\n return getParameters(element, 'inputParameters');\n}\n\n/**\n * Return out mappings existing in the business object\n *\n * @param {ModdleElement} element\n *\n * @return {Array}\n */\nfunction getOutMappings(element) {\n return (getInputOutput(element) || {}).outputParameters;\n}\n\n/**\n * Return out mappings existing in the business object\n *\n * @param {ModdleElement} element\n *\n * @return {Array}\n */\nfunction getInMappings(element) {\n return (getInputOutput(element) || {}).inputParameters;\n}\n\n/**\n * Get the inputElement name from a loopCharacteristics\n *\n * @param {MoodleElement} loopCharacteristics\n * @returns {String} outputCollection\n */\nfunction getInputElement(loopCharacteristics) {\n const extensionElement = getElements(loopCharacteristics, 'zeebe:LoopCharacteristics')[0];\n return extensionElement && extensionElement.inputElement;\n}\n\n/**\n * Get the outputCollection name from a loopCharacteristics\n *\n * @param {MoodleElement} loopCharacteristics\n * @returns {String} outputCollection\n */\nfunction getOutputCollection(loopCharacteristics) {\n const extensionElement = getElements(loopCharacteristics, 'zeebe:LoopCharacteristics')[0];\n return extensionElement && extensionElement.outputCollection;\n\n}\n\n/**\n * Get a calledDecision from the business object\n *\n * @param {MoodleElement} element\n * @returns {MoodleElement} the calledDecision object\n */\nfunction getCalledDecision(element) {\n return (getElements(element, 'zeebe:CalledDecision') || [])[0];\n}\n\n\n/**\n * Get a script from the business object\n *\n * @param {MoodleElement} element\n * @returns {MoodleElement} the script object\n */\nfunction getScript(element) {\n return (getElements(element, 'zeebe:Script') || [])[0];\n}\n\n// helpers //////////\n\nfunction getElements(element, type, property) {\n var elements = getExtensionElements(element, type);\n\n return !property ? elements : (elements[0] || {})[property] || [];\n}\n\nfunction getParameters(element, property) {\n var inputOutput = getInputOutput(element);\n\n return (inputOutput && inputOutput.get(property)) || [];\n}\n\nfunction getExtensionElements(element, type) {\n var elements = [];\n var extensionElements = element.get('extensionElements');\n\n if (typeof extensionElements !== 'undefined') {\n var extensionValues = extensionElements.get('values');\n\n if (typeof extensionValues !== 'undefined') {\n elements = minDash.filter(extensionValues, function(value) {\n return is$2(value, type);\n });\n }\n }\n\n return elements;\n}\n\nfunction is$2(element, type) {\n return (\n element &&\n typeof element.$instanceOf === 'function' &&\n element.$instanceOf(type)\n );\n}\n\n/**\n * Get all parent elements for a given element.\n *\n * @param {ModdleElement|string} element\n *\n * @returns {Array}\n */\nfunction getParents(element) {\n var parents = [];\n var current = element;\n\n while (current.$parent) {\n parents.push(current.$parent);\n current = current.$parent;\n }\n\n return parents;\n}\n\n/**\n * Iterate over each element in a collection, calling the iterator function `fn`\n * with (element, index, recursionDepth).\n *\n * Recurse into all elements that are returned by `fn`.\n *\n * @param {Object|Array} elements\n * @param {Function} fn iterator function called with (element, index, recursionDepth)\n * @param {number} [depth] maximum recursion depth\n */\nfunction eachElement(elements, fn, depth) {\n depth = depth || 0;\n\n if (!minDash.isArray(elements)) {\n elements = [ elements ];\n }\n\n minDash.forEach(elements, function(s, i) {\n var filter = fn(s, i, depth);\n\n if (minDash.isArray(filter) && filter.length) {\n eachElement(filter, fn, depth + 1);\n }\n });\n}\n\n/**\n * Adds an element to a collection and returns true if the\n * element was added.\n *\n * @param {Array} elements\n * @param {Object} e\n * @param {boolean} unique\n */\nfunction add(elements, e, unique) {\n var canAdd = !unique || elements.indexOf(e) === -1;\n\n if (canAdd) {\n elements.push(e);\n }\n\n return canAdd;\n}\n\n/**\n * Collects self + flow elements up to a given depth from a list of elements.\n *\n * @param {ModdleElement|Array} elements the elements to select the flowElements from\n * @param {boolean} unique whether to return a unique result set (no duplicates)\n * @param {number} maxDepth the depth to search through or -1 for infinite\n *\n * @return {Array} found elements\n */\nfunction selfAndFlowElements(elements, unique, maxDepth) {\n var result = [],\n processedFlowElements = [];\n\n eachElement(elements, function(element, i, depth) {\n add(result, element, unique);\n\n var flowElements = element.flowElements;\n\n // max traversal depth not reached yet\n if (maxDepth === -1 || depth < maxDepth) {\n\n // flowElements exist && flowElements not yet processed\n if (flowElements && add(processedFlowElements, flowElements, unique)) {\n return flowElements;\n }\n }\n });\n\n return result;\n}\n\n/**\n * Return self + ALL flowElements for a number of elements\n *\n * @param {Array} elements to query\n * @param {boolean} allowDuplicates to allow duplicates in the result set\n *\n * @return {Array} the collected elements\n */\nfunction selfAndAllFlowElements(elements, allowDuplicates) {\n return selfAndFlowElements(elements, !allowDuplicates, -1);\n}\n\n/**\n * Return full moddle element for given element id\n *\n * @param {string} elementId\n * @param {ModdleElement} rootElement\n *\n * @returns {ModdleElement}\n */\nfunction getElement(elementId, rootElement) {\n var allElements = selfAndAllFlowElements(rootElement);\n\n return minDash.find(allElements, function(element) {\n return element.id === elementId;\n });\n}\n\nfunction addVariableToList(variablesList, newVariable) {\n var foundIdx = minDash.findIndex(variablesList, function(variable) {\n return (\n variable.name === newVariable.name && variable.scope === newVariable.scope\n );\n });\n\n if (foundIdx >= 0) {\n variablesList[foundIdx].origin = combineArrays$1(\n variablesList[foundIdx].origin,\n newVariable.origin\n );\n } else {\n variablesList.push(newVariable);\n }\n}\n\n/**\n * Creates new process variable definition object\n * Identifies correct (highest) scope, in which variable is available\n *\n * @param {ModdleElement} flowElement\n * @param {String} name\n * @param {ModdleElement} defaultScope\n *\n * @returns {ProcessVariable}\n */\nfunction createProcessVariable(flowElement, name, defaultScope) {\n var scope = getScope$1(flowElement, defaultScope, name);\n\n return {\n name: name,\n origin: [ flowElement ],\n scope: scope\n };\n}\n\n\n// helpers ////////////////////\n\n/**\n * Set parent container if it defines it's own scope for the variable, so\n * when it defines an input mapping for it. Otherwise returns the default global scope\n */\nfunction getScope$1(element, globalScope, variableName) {\n var parents = getParents(element);\n\n var scopedParent = minDash.find(parents, function(parent) {\n return (\n is$1(parent, 'bpmn:SubProcess') && hasInputParameter(parent, variableName)\n );\n });\n\n return scopedParent ? scopedParent : globalScope;\n}\n\nfunction is$1(element, type) {\n return (\n element &&\n typeof element.$instanceOf === 'function' &&\n element.$instanceOf(type)\n );\n}\n\nfunction hasInputParameter(element, name) {\n return minDash.find(getInputParameters(element), function(input) {\n return input.target === name;\n });\n}\n\nfunction combineArrays$1(a, b) {\n return a.concat(b);\n}\n\n/**\n * Retrieves process variables defined in output mappings, e.g.\n *\n * \n * \n * \n * \n * \n * \n * \n *\n * => Adds one variable \"variable1\" to the list.\n *\n */\nfunction extractInMappings(options) {\n var elements = options.elements,\n processVariables = options.processVariables;\n\n if (!minDash.isArray(elements)) {\n elements = [ elements ];\n }\n\n minDash.forEach(elements, function(element) {\n\n var inMappings = getInMappings(element);\n\n // extract all variables with correct scope\n minDash.forEach(inMappings, function(mapping) {\n\n var newVariable = createProcessVariable(\n element,\n mapping.target,\n element\n );\n\n addVariableToList(processVariables, newVariable);\n });\n });\n\n return processVariables;\n}\n\n/**\n * Retrieves process variables defined in result variables, e.g.\n *\n * \n * \n * \n * \n * \n * \n * \n *\n * => Adds one variable \"inputElement\"to the list.\n *\n */\nfunction extractInputElement(options) {\n var elements = options.elements,\n processVariables = options.processVariables;\n\n if (!minDash.isArray(elements)) {\n elements = [ elements ];\n }\n\n minDash.forEach(elements, function(element) {\n\n var loopCharacteristics = element.loopCharacteristics;\n\n var inputElement = loopCharacteristics && getInputElement(loopCharacteristics);\n\n if (inputElement) {\n var newVariable = createProcessVariable(\n element,\n inputElement,\n element\n );\n\n addVariableToList(processVariables, newVariable);\n }\n });\n\n return processVariables;\n}\n\n/**\n * Retrieves process variables defined in output mappings, e.g.\n *\n * \n * \n * \n * \n * \n * \n * \n *\n * => Adds one variable \"variable1\" to the list.\n *\n */\nfunction extractOutMappings(options) {\n var elements = options.elements,\n containerElement = options.containerElement,\n processVariables = options.processVariables;\n\n if (!minDash.isArray(elements)) {\n elements = [ elements ];\n }\n\n minDash.forEach(elements, function(element) {\n\n var outMappings = getOutMappings(element);\n\n // extract all variables with correct scope\n minDash.forEach(outMappings, function(mapping) {\n var newVariable = createProcessVariable(\n element,\n mapping.target,\n containerElement\n );\n\n addVariableToList(processVariables, newVariable);\n });\n });\n\n return processVariables;\n}\n\n/**\n * Retrieves process variables defined in output collection, e.g.\n *\n * \n * \n * \n * \n * \n * \n * \n *\n * => Adds one variable \"outputCollection\"to the list.\n *\n */\nfunction extractOutputCollections(options) {\n var elements = options.elements,\n containerElement = options.containerElement,\n processVariables = options.processVariables;\n\n if (!minDash.isArray(elements)) {\n elements = [ elements ];\n }\n\n minDash.forEach(elements, function(element) {\n\n var loopCharacteristics = element.loopCharacteristics;\n\n var outputCollection = loopCharacteristics && getOutputCollection(loopCharacteristics);\n\n if (outputCollection) {\n var newVariable = createProcessVariable(\n element,\n outputCollection,\n containerElement\n );\n\n addVariableToList(processVariables, newVariable);\n }\n });\n\n return processVariables;\n}\n\n/**\n * Retrieves process variables defined in result variables, e.g.\n *\n * \n * \n * \n * \n * \n *\n *\n * => Adds one variable \"variable1\"to the list.\n *\n */\nfunction extractResultVariables(options) {\n var elements = options.elements,\n containerElement = options.containerElement,\n processVariables = options.processVariables;\n\n if (!minDash.isArray(elements)) {\n elements = [ elements ];\n }\n\n minDash.forEach(elements, function(element) {\n\n var baseElement = getCalledDecision(element) ||\n getScript(element);\n\n if (!baseElement) {\n return;\n }\n\n var resultVariable = baseElement.resultVariable;\n\n if (resultVariable) {\n var newVariable = createProcessVariable(\n element,\n resultVariable,\n containerElement\n );\n\n addVariableToList(processVariables, newVariable);\n }\n });\n\n return processVariables;\n}\n\nvar extractors = [\n extractInMappings,\n extractInputElement,\n extractOutMappings,\n extractOutputCollections,\n extractResultVariables\n];\n\n/**\n * @typedef {Object} ProcessVariable\n * @property {string} name\n * @property {Array} origin\n * @property {ModdleElement} scope\n */\n\n// api /////////////////////////\n\n/**\n * Extractors add ProcessVariables to the `options.processVariables` parameter.\n * @callback extractor\n * @param {Object} options\n * @param {Array} options.elements\n * @param {ModdleElement} options.containerElement\n * @param {Array} options.processVariables\n */\n\n/**\n * Retrieves all process variables for a given container element.\n * @param {ModdleElement} containerElement\n * @param {Array} [additionalExtractors]\n *\n * @returns {Promise>}\n */\nfunction getProcessVariables(containerElement, additionalExtractors = []) {\n var processVariables = [];\n\n // (1) extract all flow elements inside the container\n var elements = selfAndAllFlowElements([ containerElement ], false);\n\n const allPromises = [];\n\n // (2) extract all variables from the extractors\n minDash.forEach([ ...extractors, ...additionalExtractors ], function(extractor) {\n allPromises.push(extractor({\n elements: elements,\n containerElement: containerElement,\n processVariables: processVariables\n }));\n });\n\n return Promise.all(allPromises)\n .then(() => processVariables);\n}\n\n/**\n * Retrieves all variables which are available in the given scope\n *\n * * Exclude variables which are only available in other scopes\n * * Exclude variables which are produced by the given element\n * * Include variables which are available in parent scopes\n *\n * @param {string} scope\n * @param {ModdleElement} rootElement element from where to extract all variables\n * @param {Array} [additionalExtractors]\n *\n * @returns {Promise>}\n */\nasync function getVariablesForScope(scope, rootElement, additionalExtractors = []) {\n\n var allVariables = await getProcessVariables(rootElement, additionalExtractors);\n\n var scopeElement = getElement(scope, rootElement);\n\n // (1) get variables for given scope\n var scopeVariables = minDash.filter(allVariables, function(variable) {\n return variable.scope.id === scopeElement.id;\n });\n\n // (2) get variables for parent scopes\n var parents = getParents(scopeElement);\n\n var parentsScopeVariables = minDash.filter(allVariables, function(variable) {\n return minDash.find(parents, function(parent) {\n return parent.id === variable.scope.id;\n });\n });\n\n return combineArrays(scopeVariables, parentsScopeVariables);\n}\n\n\nfunction getVariablesForElement(element, additionalExtractors = []) {\n return getVariablesForScope(getScope(element), getRootElement(element), additionalExtractors);\n}\n\nfunction getScope(element) {\n const bo = getBusinessObject(element);\n\n if (is(element, 'bpmn:Participant')) {\n return bo.processRef.id;\n }\n\n return bo.id;\n}\n\nfunction getRootElement(element) {\n const businessObject = getBusinessObject(element);\n\n if (is(businessObject, 'bpmn:Participant')) {\n return businessObject.processRef;\n }\n\n if (is(businessObject, 'bpmn:Process')) {\n return businessObject;\n }\n\n let parent = businessObject;\n\n while (parent.$parent && !is(parent, 'bpmn:Process')) {\n parent = parent.$parent;\n }\n\n return parent;\n}\n\n\n// helpers ////////////////////\n\nfunction combineArrays(a, b) {\n return a.concat(b);\n}\n\n\nfunction getBusinessObject(element) {\n return (element && element.businessObject) || element;\n}\n\n\nfunction is(element, type) {\n var bo = getBusinessObject(element);\n\n return bo && (typeof bo.$instanceOf === 'function') && bo.$instanceOf(type);\n}\n\nexports.getProcessVariables = getProcessVariables;\nexports.getVariablesForElement = getVariablesForElement;\nexports.getVariablesForScope = getVariablesForScope;\n","/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","//download.js v4.2, by dandavis; 2008-2016. [MIT] see http://danml.com/download.html for tests/usage\n// v1 landed a FF+Chrome compat way of downloading strings to local un-named files, upgraded to use a hidden frame and optional mime\n// v2 added named files via a[download], msSaveBlob, IE (10+) support, and window.URL support for larger+faster saves than dataURLs\n// v3 added dataURL and Blob Input, bind-toggle arity, and legacy dataURL fallback was improved with force-download mime and base64 support. 3.1 improved safari handling.\n// v4 adds AMD/UMD, commonJS, and plain browser support\n// v4.1 adds url download capability via solo URL argument (same domain/CORS only)\n// v4.2 adds semantic variable names, long (over 2MB) dataURL support, and hidden by default temp anchors\n// https://github.com/rndme/download\n\n(function (root, factory) {\n\tif (typeof define === 'function' && define.amd) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([], factory);\n\t} else if (typeof exports === 'object') {\n\t\t// Node. Does not work with strict CommonJS, but\n\t\t// only CommonJS-like environments that support module.exports,\n\t\t// like Node.\n\t\tmodule.exports = factory();\n\t} else {\n\t\t// Browser globals (root is window)\n\t\troot.download = factory();\n }\n}(this, function () {\n\n\treturn function download(data, strFileName, strMimeType) {\n\n\t\tvar self = window, // this script is only for browsers anyway...\n\t\t\tdefaultMime = \"application/octet-stream\", // this default mime also triggers iframe downloads\n\t\t\tmimeType = strMimeType || defaultMime,\n\t\t\tpayload = data,\n\t\t\turl = !strFileName && !strMimeType && payload,\n\t\t\tanchor = document.createElement(\"a\"),\n\t\t\ttoString = function(a){return String(a);},\n\t\t\tmyBlob = (self.Blob || self.MozBlob || self.WebKitBlob || toString),\n\t\t\tfileName = strFileName || \"download\",\n\t\t\tblob,\n\t\t\treader;\n\t\t\tmyBlob= myBlob.call ? myBlob.bind(self) : Blob ;\n\t \n\t\tif(String(this)===\"true\"){ //reverse arguments, allowing download.bind(true, \"text/xml\", \"export.xml\") to act as a callback\n\t\t\tpayload=[payload, mimeType];\n\t\t\tmimeType=payload[0];\n\t\t\tpayload=payload[1];\n\t\t}\n\n\n\t\tif(url && url.length< 2048){ // if no filename and no mime, assume a url was passed as the only argument\n\t\t\tfileName = url.split(\"/\").pop().split(\"?\")[0];\n\t\t\tanchor.href = url; // assign href prop to temp anchor\n\t\t \tif(anchor.href.indexOf(url) !== -1){ // if the browser determines that it's a potentially valid url path:\n \t\tvar ajax=new XMLHttpRequest();\n \t\tajax.open( \"GET\", url, true);\n \t\tajax.responseType = 'blob';\n \t\tajax.onload= function(e){ \n\t\t\t\t download(e.target.response, fileName, defaultMime);\n\t\t\t\t};\n \t\tsetTimeout(function(){ ajax.send();}, 0); // allows setting custom ajax headers using the return:\n\t\t\t return ajax;\n\t\t\t} // end if valid url?\n\t\t} // end if url?\n\n\n\t\t//go ahead and download dataURLs right away\n\t\tif(/^data:([\\w+-]+\\/[\\w+.-]+)?[,;]/.test(payload)){\n\t\t\n\t\t\tif(payload.length > (1024*1024*1.999) && myBlob !== toString ){\n\t\t\t\tpayload=dataUrlToBlob(payload);\n\t\t\t\tmimeType=payload.type || defaultMime;\n\t\t\t}else{\t\t\t\n\t\t\t\treturn navigator.msSaveBlob ? // IE10 can't do a[download], only Blobs:\n\t\t\t\t\tnavigator.msSaveBlob(dataUrlToBlob(payload), fileName) :\n\t\t\t\t\tsaver(payload) ; // everyone else can save dataURLs un-processed\n\t\t\t}\n\t\t\t\n\t\t}else{//not data url, is it a string with special needs?\n\t\t\tif(/([\\x80-\\xff])/.test(payload)){\t\t\t \n\t\t\t\tvar i=0, tempUiArr= new Uint8Array(payload.length), mx=tempUiArr.length;\n\t\t\t\tfor(i;i colors.length) {\n\n var color = randomColor(options);\n\n if (seed !== null) {\n options.seed = seed;\n }\n\n colors.push(color);\n }\n\n options.count = totalColors;\n\n return colors;\n }\n\n // First we pick a hue (H)\n H = pickHue(options);\n\n // Then use H to determine saturation (S)\n S = pickSaturation(H, options);\n\n // Then use S and H to determine brightness (B).\n B = pickBrightness(H, S, options);\n\n // Then we return the HSB color in the desired format\n return setFormat([H,S,B], options);\n };\n\n function pickHue(options) {\n if (colorRanges.length > 0) {\n var hueRange = getRealHueRange(options.hue)\n\n var hue = randomWithin(hueRange)\n\n //Each of colorRanges.length ranges has a length equal approximatelly one step\n var step = (hueRange[1] - hueRange[0]) / colorRanges.length\n\n var j = parseInt((hue - hueRange[0]) / step)\n\n //Check if the range j is taken\n if (colorRanges[j] === true) {\n j = (j + 2) % colorRanges.length\n }\n else {\n colorRanges[j] = true\n }\n\n var min = (hueRange[0] + j * step) % 359,\n max = (hueRange[0] + (j + 1) * step) % 359;\n\n hueRange = [min, max]\n\n hue = randomWithin(hueRange)\n\n if (hue < 0) {hue = 360 + hue;}\n return hue\n }\n else {\n var hueRange = getHueRange(options.hue)\n\n hue = randomWithin(hueRange);\n // Instead of storing red as two seperate ranges,\n // we group them, using negative numbers\n if (hue < 0) {\n hue = 360 + hue;\n }\n\n return hue;\n }\n }\n\n function pickSaturation (hue, options) {\n\n if (options.hue === 'monochrome') {\n return 0;\n }\n\n if (options.luminosity === 'random') {\n return randomWithin([0,100]);\n }\n\n var saturationRange = getSaturationRange(hue);\n\n var sMin = saturationRange[0],\n sMax = saturationRange[1];\n\n switch (options.luminosity) {\n\n case 'bright':\n sMin = 55;\n break;\n\n case 'dark':\n sMin = sMax - 10;\n break;\n\n case 'light':\n sMax = 55;\n break;\n }\n\n return randomWithin([sMin, sMax]);\n\n }\n\n function pickBrightness (H, S, options) {\n\n var bMin = getMinimumBrightness(H, S),\n bMax = 100;\n\n switch (options.luminosity) {\n\n case 'dark':\n bMax = bMin + 20;\n break;\n\n case 'light':\n bMin = (bMax + bMin)/2;\n break;\n\n case 'random':\n bMin = 0;\n bMax = 100;\n break;\n }\n\n return randomWithin([bMin, bMax]);\n }\n\n function setFormat (hsv, options) {\n\n switch (options.format) {\n\n case 'hsvArray':\n return hsv;\n\n case 'hslArray':\n return HSVtoHSL(hsv);\n\n case 'hsl':\n var hsl = HSVtoHSL(hsv);\n return 'hsl('+hsl[0]+', '+hsl[1]+'%, '+hsl[2]+'%)';\n\n case 'hsla':\n var hslColor = HSVtoHSL(hsv);\n var alpha = options.alpha || Math.random();\n return 'hsla('+hslColor[0]+', '+hslColor[1]+'%, '+hslColor[2]+'%, ' + alpha + ')';\n\n case 'rgbArray':\n return HSVtoRGB(hsv);\n\n case 'rgb':\n var rgb = HSVtoRGB(hsv);\n return 'rgb(' + rgb.join(', ') + ')';\n\n case 'rgba':\n var rgbColor = HSVtoRGB(hsv);\n var alpha = options.alpha || Math.random();\n return 'rgba(' + rgbColor.join(', ') + ', ' + alpha + ')';\n\n default:\n return HSVtoHex(hsv);\n }\n\n }\n\n function getMinimumBrightness(H, S) {\n\n var lowerBounds = getColorInfo(H).lowerBounds;\n\n for (var i = 0; i < lowerBounds.length - 1; i++) {\n\n var s1 = lowerBounds[i][0],\n v1 = lowerBounds[i][1];\n\n var s2 = lowerBounds[i+1][0],\n v2 = lowerBounds[i+1][1];\n\n if (S >= s1 && S <= s2) {\n\n var m = (v2 - v1)/(s2 - s1),\n b = v1 - m*s1;\n\n return m*S + b;\n }\n\n }\n\n return 0;\n }\n\n function getHueRange (colorInput) {\n\n if (typeof parseInt(colorInput) === 'number') {\n\n var number = parseInt(colorInput);\n\n if (number < 360 && number > 0) {\n return [number, number];\n }\n\n }\n\n if (typeof colorInput === 'string') {\n\n if (colorDictionary[colorInput]) {\n var color = colorDictionary[colorInput];\n if (color.hueRange) {return color.hueRange;}\n } else if (colorInput.match(/^#?([0-9A-F]{3}|[0-9A-F]{6})$/i)) {\n var hue = HexToHSB(colorInput)[0];\n return [ hue, hue ];\n }\n }\n\n return [0,360];\n\n }\n\n function getSaturationRange (hue) {\n return getColorInfo(hue).saturationRange;\n }\n\n function getColorInfo (hue) {\n\n // Maps red colors to make picking hue easier\n if (hue >= 334 && hue <= 360) {\n hue-= 360;\n }\n\n for (var colorName in colorDictionary) {\n var color = colorDictionary[colorName];\n if (color.hueRange &&\n hue >= color.hueRange[0] &&\n hue <= color.hueRange[1]) {\n return colorDictionary[colorName];\n }\n } return 'Color not found';\n }\n\n function randomWithin (range) {\n if (seed === null) {\n //generate random evenly destinct number from : https://martin.ankerl.com/2009/12/09/how-to-create-random-colors-programmatically/\n var golden_ratio = 0.618033988749895\n var r=Math.random()\n r += golden_ratio\n r %= 1\n return Math.floor(range[0] + r*(range[1] + 1 - range[0]));\n } else {\n //Seeded random algorithm from http://indiegamr.com/generate-repeatable-random-numbers-in-js/\n var max = range[1] || 1;\n var min = range[0] || 0;\n seed = (seed * 9301 + 49297) % 233280;\n var rnd = seed / 233280.0;\n return Math.floor(min + rnd * (max - min));\n}\n }\n\n function HSVtoHex (hsv){\n\n var rgb = HSVtoRGB(hsv);\n\n function componentToHex(c) {\n var hex = c.toString(16);\n return hex.length == 1 ? '0' + hex : hex;\n }\n\n var hex = '#' + componentToHex(rgb[0]) + componentToHex(rgb[1]) + componentToHex(rgb[2]);\n\n return hex;\n\n }\n\n function defineColor (name, hueRange, lowerBounds) {\n\n var sMin = lowerBounds[0][0],\n sMax = lowerBounds[lowerBounds.length - 1][0],\n\n bMin = lowerBounds[lowerBounds.length - 1][1],\n bMax = lowerBounds[0][1];\n\n colorDictionary[name] = {\n hueRange: hueRange,\n lowerBounds: lowerBounds,\n saturationRange: [sMin, sMax],\n brightnessRange: [bMin, bMax]\n };\n\n }\n\n function loadColorBounds () {\n\n defineColor(\n 'monochrome',\n null,\n [[0,0],[100,0]]\n );\n\n defineColor(\n 'red',\n [-26,18],\n [[20,100],[30,92],[40,89],[50,85],[60,78],[70,70],[80,60],[90,55],[100,50]]\n );\n\n defineColor(\n 'orange',\n [18,46],\n [[20,100],[30,93],[40,88],[50,86],[60,85],[70,70],[100,70]]\n );\n\n defineColor(\n 'yellow',\n [46,62],\n [[25,100],[40,94],[50,89],[60,86],[70,84],[80,82],[90,80],[100,75]]\n );\n\n defineColor(\n 'green',\n [62,178],\n [[30,100],[40,90],[50,85],[60,81],[70,74],[80,64],[90,50],[100,40]]\n );\n\n defineColor(\n 'blue',\n [178, 257],\n [[20,100],[30,86],[40,80],[50,74],[60,60],[70,52],[80,44],[90,39],[100,35]]\n );\n\n defineColor(\n 'purple',\n [257, 282],\n [[20,100],[30,87],[40,79],[50,70],[60,65],[70,59],[80,52],[90,45],[100,42]]\n );\n\n defineColor(\n 'pink',\n [282, 334],\n [[20,100],[30,90],[40,86],[60,84],[80,80],[90,75],[100,73]]\n );\n\n }\n\n function HSVtoRGB (hsv) {\n\n // this doesn't work for the values of 0 and 360\n // here's the hacky fix\n var h = hsv[0];\n if (h === 0) {h = 1;}\n if (h === 360) {h = 359;}\n\n // Rebase the h,s,v values\n h = h/360;\n var s = hsv[1]/100,\n v = hsv[2]/100;\n\n var h_i = Math.floor(h*6),\n f = h * 6 - h_i,\n p = v * (1 - s),\n q = v * (1 - f*s),\n t = v * (1 - (1 - f)*s),\n r = 256,\n g = 256,\n b = 256;\n\n switch(h_i) {\n case 0: r = v; g = t; b = p; break;\n case 1: r = q; g = v; b = p; break;\n case 2: r = p; g = v; b = t; break;\n case 3: r = p; g = q; b = v; break;\n case 4: r = t; g = p; b = v; break;\n case 5: r = v; g = p; b = q; break;\n }\n\n var result = [Math.floor(r*255), Math.floor(g*255), Math.floor(b*255)];\n return result;\n }\n\n function HexToHSB (hex) {\n hex = hex.replace(/^#/, '');\n hex = hex.length === 3 ? hex.replace(/(.)/g, '$1$1') : hex;\n\n var red = parseInt(hex.substr(0, 2), 16) / 255,\n green = parseInt(hex.substr(2, 2), 16) / 255,\n blue = parseInt(hex.substr(4, 2), 16) / 255;\n\n var cMax = Math.max(red, green, blue),\n delta = cMax - Math.min(red, green, blue),\n saturation = cMax ? (delta / cMax) : 0;\n\n switch (cMax) {\n case red: return [ 60 * (((green - blue) / delta) % 6) || 0, saturation, cMax ];\n case green: return [ 60 * (((blue - red) / delta) + 2) || 0, saturation, cMax ];\n case blue: return [ 60 * (((red - green) / delta) + 4) || 0, saturation, cMax ];\n }\n }\n\n function HSVtoHSL (hsv) {\n var h = hsv[0],\n s = hsv[1]/100,\n v = hsv[2]/100,\n k = (2-s)*v;\n\n return [\n h,\n Math.round(s*v / (k<1 ? k : 2-k) * 10000) / 100,\n k/2 * 100\n ];\n }\n\n function stringToInteger (string) {\n var total = 0\n for (var i = 0; i !== string.length; i++) {\n if (total >= Number.MAX_SAFE_INTEGER) break;\n total += string.charCodeAt(i)\n }\n return total\n }\n\n // get The range of given hue when options.count!=0\n function getRealHueRange(colorHue)\n { if (!isNaN(colorHue)) {\n var number = parseInt(colorHue);\n\n if (number < 360 && number > 0) {\n return getColorInfo(colorHue).hueRange\n }\n }\n else if (typeof colorHue === 'string') {\n\n if (colorDictionary[colorHue]) {\n var color = colorDictionary[colorHue];\n\n if (color.hueRange) {\n return color.hueRange\n }\n } else if (colorHue.match(/^#?([0-9A-F]{3}|[0-9A-F]{6})$/i)) {\n var hue = HexToHSB(colorHue)[0]\n return getColorInfo(hue).hueRange\n }\n }\n\n return [0,360]\n}\n return randomColor;\n}));\n","'use strict';\n\n/**\n * Flatten array, one level deep.\n *\n * @template T\n *\n * @param {T[][] | T[] | null} [arr]\n *\n * @return {T[]}\n */\nfunction flatten(arr) {\n return Array.prototype.concat.apply([], arr);\n}\n\nconst nativeToString = Object.prototype.toString;\nconst nativeHasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction isUndefined(obj) {\n return obj === undefined;\n}\n\nfunction isDefined(obj) {\n return obj !== undefined;\n}\n\nfunction isNil(obj) {\n return obj == null;\n}\n\nfunction isArray(obj) {\n return nativeToString.call(obj) === '[object Array]';\n}\n\nfunction isObject(obj) {\n return nativeToString.call(obj) === '[object Object]';\n}\n\nfunction isNumber(obj) {\n return nativeToString.call(obj) === '[object Number]';\n}\n\n/**\n * @param {any} obj\n *\n * @return {boolean}\n */\nfunction isFunction(obj) {\n const tag = nativeToString.call(obj);\n\n return (\n tag === '[object Function]' ||\n tag === '[object AsyncFunction]' ||\n tag === '[object GeneratorFunction]' ||\n tag === '[object AsyncGeneratorFunction]' ||\n tag === '[object Proxy]'\n );\n}\n\nfunction isString(obj) {\n return nativeToString.call(obj) === '[object String]';\n}\n\n\n/**\n * Ensure collection is an array.\n *\n * @param {Object} obj\n */\nfunction ensureArray(obj) {\n\n if (isArray(obj)) {\n return;\n }\n\n throw new Error('must supply array');\n}\n\n/**\n * Return true, if target owns a property with the given key.\n *\n * @param {Object} target\n * @param {String} key\n *\n * @return {Boolean}\n */\nfunction has(target, key) {\n return nativeHasOwnProperty.call(target, key);\n}\n\n/**\n * @template T\n * @typedef { (\n * ((e: T) => boolean) |\n * ((e: T, idx: number) => boolean) |\n * ((e: T, key: string) => boolean) |\n * string |\n * number\n * ) } Matcher\n */\n\n/**\n * @template T\n * @template U\n *\n * @typedef { (\n * ((e: T) => U) | string | number\n * ) } Extractor\n */\n\n\n/**\n * @template T\n * @typedef { (val: T, key: any) => boolean } MatchFn\n */\n\n/**\n * @template T\n * @typedef { T[] } ArrayCollection\n */\n\n/**\n * @template T\n * @typedef { { [key: string]: T } } StringKeyValueCollection\n */\n\n/**\n * @template T\n * @typedef { { [key: number]: T } } NumberKeyValueCollection\n */\n\n/**\n * @template T\n * @typedef { StringKeyValueCollection | NumberKeyValueCollection } KeyValueCollection\n */\n\n/**\n * @template T\n * @typedef { KeyValueCollection | ArrayCollection } Collection\n */\n\n/**\n * Find element in collection.\n *\n * @template T\n * @param {Collection} collection\n * @param {Matcher} matcher\n *\n * @return {Object}\n */\nfunction find(collection, matcher) {\n\n const matchFn = toMatcher(matcher);\n\n let match;\n\n forEach(collection, function(val, key) {\n if (matchFn(val, key)) {\n match = val;\n\n return false;\n }\n });\n\n return match;\n\n}\n\n\n/**\n * Find element index in collection.\n *\n * @template T\n * @param {Collection} collection\n * @param {Matcher} matcher\n *\n * @return {number}\n */\nfunction findIndex(collection, matcher) {\n\n const matchFn = toMatcher(matcher);\n\n let idx = isArray(collection) ? -1 : undefined;\n\n forEach(collection, function(val, key) {\n if (matchFn(val, key)) {\n idx = key;\n\n return false;\n }\n });\n\n return idx;\n}\n\n\n/**\n * Filter elements in collection.\n *\n * @template T\n * @param {Collection} collection\n * @param {Matcher} matcher\n *\n * @return {T[]} result\n */\nfunction filter(collection, matcher) {\n\n const matchFn = toMatcher(matcher);\n\n let result = [];\n\n forEach(collection, function(val, key) {\n if (matchFn(val, key)) {\n result.push(val);\n }\n });\n\n return result;\n}\n\n\n/**\n * Iterate over collection; returning something\n * (non-undefined) will stop iteration.\n *\n * @template T\n * @param {Collection} collection\n * @param { ((item: T, idx: number) => (boolean|void)) | ((item: T, key: string) => (boolean|void)) } iterator\n *\n * @return {T} return result that stopped the iteration\n */\nfunction forEach(collection, iterator) {\n\n let val,\n result;\n\n if (isUndefined(collection)) {\n return;\n }\n\n const convertKey = isArray(collection) ? toNum : identity;\n\n for (let key in collection) {\n\n if (has(collection, key)) {\n val = collection[key];\n\n result = iterator(val, convertKey(key));\n\n if (result === false) {\n return val;\n }\n }\n }\n}\n\n/**\n * Return collection without element.\n *\n * @template T\n * @param {ArrayCollection} arr\n * @param {Matcher} matcher\n *\n * @return {T[]}\n */\nfunction without(arr, matcher) {\n\n if (isUndefined(arr)) {\n return [];\n }\n\n ensureArray(arr);\n\n const matchFn = toMatcher(matcher);\n\n return arr.filter(function(el, idx) {\n return !matchFn(el, idx);\n });\n\n}\n\n\n/**\n * Reduce collection, returning a single result.\n *\n * @template T\n * @template V\n *\n * @param {Collection} collection\n * @param {(result: V, entry: T, index: any) => V} iterator\n * @param {V} result\n *\n * @return {V} result returned from last iterator\n */\nfunction reduce(collection, iterator, result) {\n\n forEach(collection, function(value, idx) {\n result = iterator(result, value, idx);\n });\n\n return result;\n}\n\n\n/**\n * Return true if every element in the collection\n * matches the criteria.\n *\n * @param {Object|Array} collection\n * @param {Function} matcher\n *\n * @return {Boolean}\n */\nfunction every(collection, matcher) {\n\n return !!reduce(collection, function(matches, val, key) {\n return matches && matcher(val, key);\n }, true);\n}\n\n\n/**\n * Return true if some elements in the collection\n * match the criteria.\n *\n * @param {Object|Array} collection\n * @param {Function} matcher\n *\n * @return {Boolean}\n */\nfunction some(collection, matcher) {\n\n return !!find(collection, matcher);\n}\n\n\n/**\n * Transform a collection into another collection\n * by piping each member through the given fn.\n *\n * @param {Object|Array} collection\n * @param {Function} fn\n *\n * @return {Array} transformed collection\n */\nfunction map(collection, fn) {\n\n let result = [];\n\n forEach(collection, function(val, key) {\n result.push(fn(val, key));\n });\n\n return result;\n}\n\n\n/**\n * Get the collections keys.\n *\n * @param {Object|Array} collection\n *\n * @return {Array}\n */\nfunction keys(collection) {\n return collection && Object.keys(collection) || [];\n}\n\n\n/**\n * Shorthand for `keys(o).length`.\n *\n * @param {Object|Array} collection\n *\n * @return {Number}\n */\nfunction size(collection) {\n return keys(collection).length;\n}\n\n\n/**\n * Get the values in the collection.\n *\n * @param {Object|Array} collection\n *\n * @return {Array}\n */\nfunction values(collection) {\n return map(collection, (val) => val);\n}\n\n\n/**\n * Group collection members by attribute.\n *\n * @param {Object|Array} collection\n * @param {Extractor} extractor\n *\n * @return {Object} map with { attrValue => [ a, b, c ] }\n */\nfunction groupBy(collection, extractor, grouped = {}) {\n\n extractor = toExtractor(extractor);\n\n forEach(collection, function(val) {\n let discriminator = extractor(val) || '_';\n\n let group = grouped[discriminator];\n\n if (!group) {\n group = grouped[discriminator] = [];\n }\n\n group.push(val);\n });\n\n return grouped;\n}\n\n\nfunction uniqueBy(extractor, ...collections) {\n\n extractor = toExtractor(extractor);\n\n let grouped = {};\n\n forEach(collections, (c) => groupBy(c, extractor, grouped));\n\n let result = map(grouped, function(val, key) {\n return val[0];\n });\n\n return result;\n}\n\n\nconst unionBy = uniqueBy;\n\n\n\n/**\n * Sort collection by criteria.\n *\n * @template T\n *\n * @param {Collection} collection\n * @param {Extractor} extractor\n *\n * @return {Array}\n */\nfunction sortBy(collection, extractor) {\n\n extractor = toExtractor(extractor);\n\n let sorted = [];\n\n forEach(collection, function(value, key) {\n let disc = extractor(value, key);\n\n let entry = {\n d: disc,\n v: value\n };\n\n for (var idx = 0; idx < sorted.length; idx++) {\n let { d } = sorted[idx];\n\n if (disc < d) {\n sorted.splice(idx, 0, entry);\n return;\n }\n }\n\n // not inserted, append (!)\n sorted.push(entry);\n });\n\n return map(sorted, (e) => e.v);\n}\n\n\n/**\n * Create an object pattern matcher.\n *\n * @example\n *\n * ```javascript\n * const matcher = matchPattern({ id: 1 });\n *\n * let element = find(elements, matcher);\n * ```\n *\n * @template T\n *\n * @param {T} pattern\n *\n * @return { (el: any) => boolean } matcherFn\n */\nfunction matchPattern(pattern) {\n\n return function(el) {\n\n return every(pattern, function(val, key) {\n return el[key] === val;\n });\n\n };\n}\n\n\n/**\n * @param {string | ((e: any) => any) } extractor\n *\n * @return { (e: any) => any }\n */\nfunction toExtractor(extractor) {\n\n /**\n * @satisfies { (e: any) => any }\n */\n return isFunction(extractor) ? extractor : (e) => {\n\n // @ts-ignore: just works\n return e[extractor];\n };\n}\n\n\n/**\n * @template T\n * @param {Matcher} matcher\n *\n * @return {MatchFn}\n */\nfunction toMatcher(matcher) {\n return isFunction(matcher) ? matcher : (e) => {\n return e === matcher;\n };\n}\n\n\nfunction identity(arg) {\n return arg;\n}\n\nfunction toNum(arg) {\n return Number(arg);\n}\n\n/* global setTimeout clearTimeout */\n\n/**\n * @typedef { {\n * (...args: any[]): any;\n * flush: () => void;\n * cancel: () => void;\n * } } DebouncedFunction\n */\n\n/**\n * Debounce fn, calling it only once if the given time\n * elapsed between calls.\n *\n * Lodash-style the function exposes methods to `#clear`\n * and `#flush` to control internal behavior.\n *\n * @param {Function} fn\n * @param {Number} timeout\n *\n * @return {DebouncedFunction} debounced function\n */\nfunction debounce(fn, timeout) {\n\n let timer;\n\n let lastArgs;\n let lastThis;\n\n let lastNow;\n\n function fire(force) {\n\n let now = Date.now();\n\n let scheduledDiff = force ? 0 : (lastNow + timeout) - now;\n\n if (scheduledDiff > 0) {\n return schedule(scheduledDiff);\n }\n\n fn.apply(lastThis, lastArgs);\n\n clear();\n }\n\n function schedule(timeout) {\n timer = setTimeout(fire, timeout);\n }\n\n function clear() {\n if (timer) {\n clearTimeout(timer);\n }\n\n timer = lastNow = lastArgs = lastThis = undefined;\n }\n\n function flush() {\n if (timer) {\n fire(true);\n }\n\n clear();\n }\n\n /**\n * @type { DebouncedFunction }\n */\n function callback(...args) {\n lastNow = Date.now();\n\n lastArgs = args;\n lastThis = this;\n\n // ensure an execution is scheduled\n if (!timer) {\n schedule(timeout);\n }\n }\n\n callback.flush = flush;\n callback.cancel = clear;\n\n return callback;\n}\n\n/**\n * Throttle fn, calling at most once\n * in the given interval.\n *\n * @param {Function} fn\n * @param {Number} interval\n *\n * @return {Function} throttled function\n */\nfunction throttle(fn, interval) {\n let throttling = false;\n\n return function(...args) {\n\n if (throttling) {\n return;\n }\n\n fn(...args);\n throttling = true;\n\n setTimeout(() => {\n throttling = false;\n }, interval);\n };\n}\n\n/**\n * Bind function against target .\n *\n * @param {Function} fn\n * @param {Object} target\n *\n * @return {Function} bound function\n */\nfunction bind(fn, target) {\n return fn.bind(target);\n}\n\n/**\n * Convenience wrapper for `Object.assign`.\n *\n * @param {Object} target\n * @param {...Object} others\n *\n * @return {Object} the target\n */\nfunction assign(target, ...others) {\n return Object.assign(target, ...others);\n}\n\n/**\n * Sets a nested property of a given object to the specified value.\n *\n * This mutates the object and returns it.\n *\n * @template T\n *\n * @param {T} target The target of the set operation.\n * @param {(string|number)[]} path The path to the nested value.\n * @param {any} value The value to set.\n *\n * @return {T}\n */\nfunction set(target, path, value) {\n\n let currentTarget = target;\n\n forEach(path, function(key, idx) {\n\n if (typeof key !== 'number' && typeof key !== 'string') {\n throw new Error('illegal key type: ' + typeof key + '. Key should be of type number or string.');\n }\n\n if (key === 'constructor') {\n throw new Error('illegal key: constructor');\n }\n\n if (key === '__proto__') {\n throw new Error('illegal key: __proto__');\n }\n\n let nextKey = path[idx + 1];\n let nextTarget = currentTarget[key];\n\n if (isDefined(nextKey) && isNil(nextTarget)) {\n nextTarget = currentTarget[key] = isNaN(+nextKey) ? {} : [];\n }\n\n if (isUndefined(nextKey)) {\n if (isUndefined(value)) {\n delete currentTarget[key];\n } else {\n currentTarget[key] = value;\n }\n } else {\n currentTarget = nextTarget;\n }\n });\n\n return target;\n}\n\n\n/**\n * Gets a nested property of a given object.\n *\n * @param {Object} target The target of the get operation.\n * @param {(string|number)[]} path The path to the nested value.\n * @param {any} [defaultValue] The value to return if no value exists.\n *\n * @return {any}\n */\nfunction get(target, path, defaultValue) {\n\n let currentTarget = target;\n\n forEach(path, function(key) {\n\n // accessing nil property yields \n if (isNil(currentTarget)) {\n currentTarget = undefined;\n\n return false;\n }\n\n currentTarget = currentTarget[key];\n });\n\n return isUndefined(currentTarget) ? defaultValue : currentTarget;\n}\n\n/**\n * Pick properties from the given target.\n *\n * @template T\n * @template {any[]} V\n *\n * @param {T} target\n * @param {V} properties\n *\n * @return Pick\n */\nfunction pick(target, properties) {\n\n let result = {};\n\n let obj = Object(target);\n\n forEach(properties, function(prop) {\n\n if (prop in obj) {\n result[prop] = target[prop];\n }\n });\n\n return result;\n}\n\n/**\n * Pick all target properties, excluding the given ones.\n *\n * @template T\n * @template {any[]} V\n *\n * @param {T} target\n * @param {V} properties\n *\n * @return {Omit} target\n */\nfunction omit(target, properties) {\n\n let result = {};\n\n let obj = Object(target);\n\n forEach(obj, function(prop, key) {\n\n if (properties.indexOf(key) === -1) {\n result[key] = prop;\n }\n });\n\n return result;\n}\n\n/**\n * Recursively merge `...sources` into given target.\n *\n * Does support merging objects; does not support merging arrays.\n *\n * @param {Object} target\n * @param {...Object} sources\n *\n * @return {Object} the target\n */\nfunction merge(target, ...sources) {\n\n if (!sources.length) {\n return target;\n }\n\n forEach(sources, function(source) {\n\n // skip non-obj sources, i.e. null\n if (!source || !isObject(source)) {\n return;\n }\n\n forEach(source, function(sourceVal, key) {\n\n if (key === '__proto__') {\n return;\n }\n\n let targetVal = target[key];\n\n if (isObject(sourceVal)) {\n\n if (!isObject(targetVal)) {\n\n // override target[key] with object\n targetVal = {};\n }\n\n target[key] = merge(targetVal, sourceVal);\n } else {\n target[key] = sourceVal;\n }\n\n });\n });\n\n return target;\n}\n\nexports.assign = assign;\nexports.bind = bind;\nexports.debounce = debounce;\nexports.ensureArray = ensureArray;\nexports.every = every;\nexports.filter = filter;\nexports.find = find;\nexports.findIndex = findIndex;\nexports.flatten = flatten;\nexports.forEach = forEach;\nexports.get = get;\nexports.groupBy = groupBy;\nexports.has = has;\nexports.isArray = isArray;\nexports.isDefined = isDefined;\nexports.isFunction = isFunction;\nexports.isNil = isNil;\nexports.isNumber = isNumber;\nexports.isObject = isObject;\nexports.isString = isString;\nexports.isUndefined = isUndefined;\nexports.keys = keys;\nexports.map = map;\nexports.matchPattern = matchPattern;\nexports.merge = merge;\nexports.omit = omit;\nexports.pick = pick;\nexports.reduce = reduce;\nexports.set = set;\nexports.size = size;\nexports.some = some;\nexports.sortBy = sortBy;\nexports.throttle = throttle;\nexports.unionBy = unionBy;\nexports.uniqueBy = uniqueBy;\nexports.values = values;\nexports.without = without;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","function createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nvar hat_1 = createCommonjsModule(function (module) {\nvar hat = module.exports = function (bits, base) {\n if (!base) base = 16;\n if (bits === undefined) bits = 128;\n if (bits <= 0) return '0';\n \n var digits = Math.log(Math.pow(2, bits)) / Math.log(base);\n for (var i = 2; digits === Infinity; i *= 2) {\n digits = Math.log(Math.pow(2, bits / i)) / Math.log(base) * i;\n }\n \n var rem = digits - Math.floor(digits);\n \n var res = '';\n \n for (var i = 0; i < Math.floor(digits); i++) {\n var x = Math.floor(Math.random() * base).toString(base);\n res = x + res;\n }\n \n if (rem) {\n var b = Math.pow(base, rem);\n var x = Math.floor(Math.random() * b).toString(base);\n res = x + res;\n }\n \n var parsed = parseInt(res, base);\n if (parsed !== Infinity && parsed >= Math.pow(2, bits)) {\n return hat(bits, base)\n }\n else return res;\n};\n\nhat.rack = function (bits, base, expandBy) {\n var fn = function (data) {\n var iters = 0;\n do {\n if (iters ++ > 10) {\n if (expandBy) bits += expandBy;\n else throw new Error('too many ID collisions, use more bits')\n }\n \n var id = hat(bits, base);\n } while (Object.hasOwnProperty.call(hats, id));\n \n hats[id] = data;\n return id;\n };\n var hats = fn.hats = {};\n \n fn.get = function (id) {\n return fn.hats[id];\n };\n \n fn.set = function (id, value) {\n fn.hats[id] = value;\n return fn;\n };\n \n fn.bits = bits || 128;\n fn.base = base || 16;\n return fn;\n};\n});\n\n/**\n * Create a new id generator / cache instance.\n *\n * You may optionally provide a seed that is used internally.\n *\n * @param {Seed} seed\n */\nfunction Ids(seed) {\n if (!(this instanceof Ids)) {\n return new Ids(seed);\n }\n seed = seed || [128, 36, 1];\n this._seed = seed.length ? hat_1.rack(seed[0], seed[1], seed[2]) : seed;\n}\n\n/**\n * Generate a next id.\n *\n * @param {Object} [element] element to bind the id to\n *\n * @return {String} id\n */\nIds.prototype.next = function (element) {\n return this._seed(element || true);\n};\n\n/**\n * Generate a next id with a given prefix.\n *\n * @param {Object} [element] element to bind the id to\n *\n * @return {String} id\n */\nIds.prototype.nextPrefixed = function (prefix, element) {\n var id;\n do {\n id = prefix + this.next(true);\n } while (this.assigned(id));\n\n // claim {prefix}{random}\n this.claim(id, element);\n\n // return\n return id;\n};\n\n/**\n * Manually claim an existing id.\n *\n * @param {String} id\n * @param {String} [element] element the id is claimed by\n */\nIds.prototype.claim = function (id, element) {\n this._seed.set(id, element || true);\n};\n\n/**\n * Returns true if the given id has already been assigned.\n *\n * @param {String} id\n * @return {Boolean}\n */\nIds.prototype.assigned = function (id) {\n return this._seed.get(id) || false;\n};\n\n/**\n * Unclaim an id.\n *\n * @param {String} id the id to unclaim\n */\nIds.prototype.unclaim = function (id) {\n delete this._seed.hats[id];\n};\n\n/**\n * Clear all claimed ids.\n */\nIds.prototype.clear = function () {\n var hats = this._seed.hats,\n id;\n for (id in hats) {\n this.unclaim(id);\n }\n};\n\nexport default Ids;\n//# sourceMappingURL=index.esm.js.map\n","const ACTIVATED = 1;\nconst RUNNING = 1 << 1;\nconst ENDING = 1 << 2;\nconst ENDED = 1 << 3;\nconst DESTROYED = 1 << 4;\nconst FAILED = 1 << 5;\nconst TERMINATED = 1 << 6;\nconst CANCELED = 1 << 7;\nconst COMPLETED = 1 << 8;\nconst COMPENSABLE = 1 << 9;\n\nconst ACTIVE = ACTIVATED | RUNNING | ENDING;\nconst NOT_DEAD = ACTIVATED | ENDED;\n\nexport const ScopeTraits = Object.freeze({\n ACTIVATED,\n RUNNING,\n ENDING,\n ENDED,\n DESTROYED,\n FAILED,\n TERMINATED,\n CANCELED,\n COMPLETED,\n COMPENSABLE,\n ACTIVE,\n NOT_DEAD\n});","import {\n ScopeTraits\n} from './ScopeTraits';\n\nconst SELF = {};\n\nfunction illegalTransition(state, target) {\n throw new Error(`illegal transition: ${state.name} -> ${target}`);\n}\n\nfunction orSelf(state, self) {\n if (state === SELF) {\n return self;\n }\n\n return state;\n}\n\n/**\n * A representation of a scopes state with name, traits, and supported\n * transitions to other states.\n */\nexport class ScopeState {\n\n /**\n * @param {string} name\n * @param {number} traits\n * @param {object} [transitions]\n * @param {ScopeState} [transitions.start]\n * @param {ScopeState} [transitions.cancel]\n * @param {ScopeState} [transitions.complete]\n * @param {ScopeState} [transitions.destroy]\n * @param {ScopeState} [transitions.fail]\n * @param {ScopeState} [transitions.terminate]\n * @param {ScopeState} [transitions.compensable]\n */\n constructor(name, traits, {\n start,\n cancel,\n complete,\n destroy,\n fail,\n terminate,\n compensable\n } = {}) {\n this.name = name;\n\n /**\n * A bit-wise encoded set of traits\n * characterizing the scope.\n *\n * @type {number}\n */\n this.traits = traits;\n\n this._start = orSelf(start, this);\n this._compensable = orSelf(compensable, this);\n this._cancel = orSelf(cancel, this);\n this._complete = orSelf(complete, this);\n this._destroy = orSelf(destroy, this);\n this._fail = orSelf(fail, this);\n this._terminate = orSelf(terminate, this);\n }\n\n /**\n * @param {number} trait\n * @return {boolean}\n */\n hasTrait(trait) {\n return (this.traits & trait) !== 0;\n }\n\n /**\n * @return {ScopeState}\n */\n complete() {\n return this._complete || illegalTransition(this, 'complete');\n }\n\n /**\n * @return {ScopeState}\n */\n destroy() {\n return this._destroy || illegalTransition(this, 'destroy');\n }\n\n /**\n * @return {ScopeState}\n */\n cancel() {\n return this._cancel || illegalTransition(this, 'cancel');\n }\n\n /**\n * @return {ScopeState}\n */\n fail() {\n return this._fail || illegalTransition(this, 'fail');\n }\n\n /**\n * @return {ScopeState}\n */\n terminate() {\n return this._terminate || illegalTransition(this, 'terminate');\n }\n\n /**\n * @return {ScopeState}\n */\n compensable() {\n return this._compensable || illegalTransition(this, 'compensable');\n }\n\n /**\n * @return {ScopeState}\n */\n start() {\n return this._start || illegalTransition(this, 'start');\n }\n}\n\nconst FAILED = new ScopeState('failed', ScopeTraits.DESTROYED | ScopeTraits.FAILED);\n\nconst TERMINATED = new ScopeState('terminated', ScopeTraits.DESTROYED | ScopeTraits.TERMINATED);\n\nconst COMPLETED = new ScopeState('completed', ScopeTraits.DESTROYED | ScopeTraits.COMPLETED);\n\nconst TERMINATING = new ScopeState('terminating', ScopeTraits.ENDING | ScopeTraits.TERMINATED, {\n destroy: TERMINATED\n});\n\nconst CANCELING = new ScopeState('canceling', ScopeTraits.ENDING | ScopeTraits.FAILED | ScopeTraits.CANCELED, {\n destroy: FAILED,\n complete: SELF,\n terminate: TERMINATING\n});\n\nconst COMPLETING = new ScopeState('completing', ScopeTraits.ENDING | ScopeTraits.COMPLETED, {\n destroy: COMPLETED,\n cancel: CANCELING,\n terminate: TERMINATING\n});\n\nconst FAILING = new ScopeState('failing', ScopeTraits.ENDING | ScopeTraits.FAILED, {\n cancel: CANCELING,\n complete: COMPLETING,\n destroy: FAILED,\n terminate: TERMINATING\n});\n\nconst COMPENSABLE_FAILING = new ScopeState('compensable:failing', ScopeTraits.ENDING | ScopeTraits.FAILED, {\n complete: SELF,\n terminate: TERMINATING,\n destroy: FAILED\n});\n\nconst COMPENSABLE_COMPLETED = new ScopeState('compensable:completed', ScopeTraits.ENDED | ScopeTraits.COMPLETED, {\n cancel: CANCELING,\n fail: COMPENSABLE_FAILING,\n destroy: COMPLETED,\n compensable: SELF\n});\n\nconst COMPENSABLE_COMPLETING = new ScopeState('compensable:completing', ScopeTraits.ENDING | ScopeTraits.COMPLETED, {\n destroy: COMPENSABLE_COMPLETED,\n terminate: TERMINATING,\n compensable: SELF\n});\n\nconst COMPENSABLE_RUNNING = new ScopeState('compensable:running', ScopeTraits.RUNNING | ScopeTraits.COMPENSABLE, {\n cancel: CANCELING,\n complete: COMPENSABLE_COMPLETING,\n compensable: SELF,\n destroy: COMPENSABLE_COMPLETED,\n fail: FAILING,\n terminate: TERMINATING\n});\n\nconst RUNNING = new ScopeState('running', ScopeTraits.RUNNING, {\n cancel: CANCELING,\n complete: COMPLETING,\n compensable: COMPENSABLE_RUNNING,\n destroy: TERMINATED,\n fail: FAILING,\n terminate: TERMINATING\n});\n\nconst ACTIVATED = new ScopeState('activated', ScopeTraits.ACTIVATED, {\n start: RUNNING,\n destroy: TERMINATED\n});\n\nexport const ScopeStates = Object.freeze({\n ACTIVATED,\n RUNNING,\n CANCELING,\n COMPLETING,\n COMPLETED,\n FAILING,\n FAILED,\n TERMINATING,\n TERMINATED,\n});","import { ScopeTraits } from './ScopeTraits';\nimport { ScopeStates } from './ScopeStates';\n\n\n/**\n * A representation of anything runnable in token simulation land.\n */\nexport default class Scope {\n\n /**\n * @param {string} id\n * @param {Element} element\n * @param {Scope} parent\n * @param {Scope} initiator\n *\n * @constructor\n */\n constructor(id, element, parent = null, initiator = null) {\n this.id = id;\n this.element = element;\n this.parent = parent;\n this.initiator = initiator;\n\n this.subscriptions = new Set();\n\n this.children = [];\n this.state = ScopeStates.ACTIVATED;\n }\n\n /**\n * @return {boolean}\n */\n get running() {\n return this.hasTrait(ScopeTraits.RUNNING);\n }\n\n /**\n * @return {boolean}\n */\n get destroyed() {\n return this.hasTrait(ScopeTraits.DESTROYED);\n }\n\n /**\n * @return {boolean}\n */\n get completed() {\n return this.hasTrait(ScopeTraits.COMPLETED);\n }\n\n /**\n * @return {boolean}\n */\n get canceled() {\n return this.hasTrait(ScopeTraits.CANCELED);\n }\n\n /**\n * @return {boolean}\n */\n get failed() {\n return this.hasTrait(ScopeTraits.FAILED);\n }\n\n /**\n * @param {number} phase\n * @return {boolean}\n */\n hasTrait(trait) {\n return this.state.hasTrait(trait);\n }\n\n /**\n * Start the scope\n *\n * @return {Scope}\n */\n start() {\n this.state = this.state.start();\n\n return this;\n }\n\n /**\n * Make this scope compensable.\n *\n * @return {Scope}\n */\n compensable() {\n this.state = this.state.compensable();\n\n return this;\n }\n\n /**\n * @param {Scope} initiator\n *\n * @return {Scope}\n */\n fail(initiator) {\n if (!this.failed) {\n this.state = this.state.fail();\n\n this.failInitiator = initiator;\n }\n\n return this;\n }\n\n cancel(initiator) {\n\n if (!this.canceled) {\n this.state = this.state.cancel();\n\n this.cancelInitiator = initiator;\n }\n\n return this;\n }\n\n /**\n * @param {Scope} initiator\n *\n * @return {Scope}\n */\n terminate(initiator) {\n this.state = this.state.terminate();\n\n this.terminateInitiator = initiator;\n\n return this;\n }\n\n /**\n * @return {Scope}\n */\n complete() {\n this.state = this.state.complete();\n\n return this;\n }\n\n /**\n * Destroy the scope\n *\n * @param {Scope} initiator\n *\n * @return {Scope}\n */\n destroy(initiator) {\n this.state = this.state.destroy();\n\n this.destroyInitiator = initiator;\n\n return this;\n }\n\n /**\n * @return {number}\n */\n getTokens() {\n return this.children.filter(c => !c.destroyed).length;\n }\n\n /**\n * @param {Element} element\n *\n * @return {number}\n */\n getTokensByElement(element) {\n return this.children.filter(c => !c.destroyed && c.element === element).length;\n }\n\n}","export function filterSet(set, matchFn) {\n\n const matched = [];\n\n for (const el of set) {\n if (matchFn(el)) {\n matched.push(el);\n }\n }\n\n return matched;\n}\n\nexport function findSet(set, matchFn) {\n\n for (const el of set) {\n if (matchFn(el)) {\n return el;\n }\n }\n\n return null;\n}","export function eventsMatch(a, b) {\n const attrMatch = [ 'type', 'name', 'iref' ].every(attr => !(attr in a) || a[attr] === b[attr]);\n const catchAllMatch = !b.ref && (b.type === 'error' || b.type === 'escalation');\n\n return attrMatch && (catchAllMatch || refsMatch(a, b));\n}\n\nexport function refsMatch(a, b) {\n const attr = 'ref';\n return !(attr in a) || a[attr] === b[attr];\n}","/**\n * Flatten array, one level deep.\n *\n * @template T\n *\n * @param {T[][] | T[] | null} [arr]\n *\n * @return {T[]}\n */\nfunction flatten(arr) {\n return Array.prototype.concat.apply([], arr);\n}\n\nconst nativeToString = Object.prototype.toString;\nconst nativeHasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction isUndefined(obj) {\n return obj === undefined;\n}\n\nfunction isDefined(obj) {\n return obj !== undefined;\n}\n\nfunction isNil(obj) {\n return obj == null;\n}\n\nfunction isArray(obj) {\n return nativeToString.call(obj) === '[object Array]';\n}\n\nfunction isObject(obj) {\n return nativeToString.call(obj) === '[object Object]';\n}\n\nfunction isNumber(obj) {\n return nativeToString.call(obj) === '[object Number]';\n}\n\n/**\n * @param {any} obj\n *\n * @return {boolean}\n */\nfunction isFunction(obj) {\n const tag = nativeToString.call(obj);\n\n return (\n tag === '[object Function]' ||\n tag === '[object AsyncFunction]' ||\n tag === '[object GeneratorFunction]' ||\n tag === '[object AsyncGeneratorFunction]' ||\n tag === '[object Proxy]'\n );\n}\n\nfunction isString(obj) {\n return nativeToString.call(obj) === '[object String]';\n}\n\n\n/**\n * Ensure collection is an array.\n *\n * @param {Object} obj\n */\nfunction ensureArray(obj) {\n\n if (isArray(obj)) {\n return;\n }\n\n throw new Error('must supply array');\n}\n\n/**\n * Return true, if target owns a property with the given key.\n *\n * @param {Object} target\n * @param {String} key\n *\n * @return {Boolean}\n */\nfunction has(target, key) {\n return nativeHasOwnProperty.call(target, key);\n}\n\n/**\n * @template T\n * @typedef { (\n * ((e: T) => boolean) |\n * ((e: T, idx: number) => boolean) |\n * ((e: T, key: string) => boolean) |\n * string |\n * number\n * ) } Matcher\n */\n\n/**\n * @template T\n * @template U\n *\n * @typedef { (\n * ((e: T) => U) | string | number\n * ) } Extractor\n */\n\n\n/**\n * @template T\n * @typedef { (val: T, key: any) => boolean } MatchFn\n */\n\n/**\n * @template T\n * @typedef { T[] } ArrayCollection\n */\n\n/**\n * @template T\n * @typedef { { [key: string]: T } } StringKeyValueCollection\n */\n\n/**\n * @template T\n * @typedef { { [key: number]: T } } NumberKeyValueCollection\n */\n\n/**\n * @template T\n * @typedef { StringKeyValueCollection | NumberKeyValueCollection } KeyValueCollection\n */\n\n/**\n * @template T\n * @typedef { KeyValueCollection | ArrayCollection } Collection\n */\n\n/**\n * Find element in collection.\n *\n * @template T\n * @param {Collection} collection\n * @param {Matcher} matcher\n *\n * @return {Object}\n */\nfunction find(collection, matcher) {\n\n const matchFn = toMatcher(matcher);\n\n let match;\n\n forEach(collection, function(val, key) {\n if (matchFn(val, key)) {\n match = val;\n\n return false;\n }\n });\n\n return match;\n\n}\n\n\n/**\n * Find element index in collection.\n *\n * @template T\n * @param {Collection} collection\n * @param {Matcher} matcher\n *\n * @return {number}\n */\nfunction findIndex(collection, matcher) {\n\n const matchFn = toMatcher(matcher);\n\n let idx = isArray(collection) ? -1 : undefined;\n\n forEach(collection, function(val, key) {\n if (matchFn(val, key)) {\n idx = key;\n\n return false;\n }\n });\n\n return idx;\n}\n\n\n/**\n * Filter elements in collection.\n *\n * @template T\n * @param {Collection} collection\n * @param {Matcher} matcher\n *\n * @return {T[]} result\n */\nfunction filter(collection, matcher) {\n\n const matchFn = toMatcher(matcher);\n\n let result = [];\n\n forEach(collection, function(val, key) {\n if (matchFn(val, key)) {\n result.push(val);\n }\n });\n\n return result;\n}\n\n\n/**\n * Iterate over collection; returning something\n * (non-undefined) will stop iteration.\n *\n * @template T\n * @param {Collection} collection\n * @param { ((item: T, idx: number) => (boolean|void)) | ((item: T, key: string) => (boolean|void)) } iterator\n *\n * @return {T} return result that stopped the iteration\n */\nfunction forEach(collection, iterator) {\n\n let val,\n result;\n\n if (isUndefined(collection)) {\n return;\n }\n\n const convertKey = isArray(collection) ? toNum : identity;\n\n for (let key in collection) {\n\n if (has(collection, key)) {\n val = collection[key];\n\n result = iterator(val, convertKey(key));\n\n if (result === false) {\n return val;\n }\n }\n }\n}\n\n/**\n * Return collection without element.\n *\n * @template T\n * @param {ArrayCollection} arr\n * @param {Matcher} matcher\n *\n * @return {T[]}\n */\nfunction without(arr, matcher) {\n\n if (isUndefined(arr)) {\n return [];\n }\n\n ensureArray(arr);\n\n const matchFn = toMatcher(matcher);\n\n return arr.filter(function(el, idx) {\n return !matchFn(el, idx);\n });\n\n}\n\n\n/**\n * Reduce collection, returning a single result.\n *\n * @template T\n * @template V\n *\n * @param {Collection} collection\n * @param {(result: V, entry: T, index: any) => V} iterator\n * @param {V} result\n *\n * @return {V} result returned from last iterator\n */\nfunction reduce(collection, iterator, result) {\n\n forEach(collection, function(value, idx) {\n result = iterator(result, value, idx);\n });\n\n return result;\n}\n\n\n/**\n * Return true if every element in the collection\n * matches the criteria.\n *\n * @param {Object|Array} collection\n * @param {Function} matcher\n *\n * @return {Boolean}\n */\nfunction every(collection, matcher) {\n\n return !!reduce(collection, function(matches, val, key) {\n return matches && matcher(val, key);\n }, true);\n}\n\n\n/**\n * Return true if some elements in the collection\n * match the criteria.\n *\n * @param {Object|Array} collection\n * @param {Function} matcher\n *\n * @return {Boolean}\n */\nfunction some(collection, matcher) {\n\n return !!find(collection, matcher);\n}\n\n\n/**\n * Transform a collection into another collection\n * by piping each member through the given fn.\n *\n * @param {Object|Array} collection\n * @param {Function} fn\n *\n * @return {Array} transformed collection\n */\nfunction map(collection, fn) {\n\n let result = [];\n\n forEach(collection, function(val, key) {\n result.push(fn(val, key));\n });\n\n return result;\n}\n\n\n/**\n * Get the collections keys.\n *\n * @param {Object|Array} collection\n *\n * @return {Array}\n */\nfunction keys(collection) {\n return collection && Object.keys(collection) || [];\n}\n\n\n/**\n * Shorthand for `keys(o).length`.\n *\n * @param {Object|Array} collection\n *\n * @return {Number}\n */\nfunction size(collection) {\n return keys(collection).length;\n}\n\n\n/**\n * Get the values in the collection.\n *\n * @param {Object|Array} collection\n *\n * @return {Array}\n */\nfunction values(collection) {\n return map(collection, (val) => val);\n}\n\n\n/**\n * Group collection members by attribute.\n *\n * @param {Object|Array} collection\n * @param {Extractor} extractor\n *\n * @return {Object} map with { attrValue => [ a, b, c ] }\n */\nfunction groupBy(collection, extractor, grouped = {}) {\n\n extractor = toExtractor(extractor);\n\n forEach(collection, function(val) {\n let discriminator = extractor(val) || '_';\n\n let group = grouped[discriminator];\n\n if (!group) {\n group = grouped[discriminator] = [];\n }\n\n group.push(val);\n });\n\n return grouped;\n}\n\n\nfunction uniqueBy(extractor, ...collections) {\n\n extractor = toExtractor(extractor);\n\n let grouped = {};\n\n forEach(collections, (c) => groupBy(c, extractor, grouped));\n\n let result = map(grouped, function(val, key) {\n return val[0];\n });\n\n return result;\n}\n\n\nconst unionBy = uniqueBy;\n\n\n\n/**\n * Sort collection by criteria.\n *\n * @template T\n *\n * @param {Collection} collection\n * @param {Extractor} extractor\n *\n * @return {Array}\n */\nfunction sortBy(collection, extractor) {\n\n extractor = toExtractor(extractor);\n\n let sorted = [];\n\n forEach(collection, function(value, key) {\n let disc = extractor(value, key);\n\n let entry = {\n d: disc,\n v: value\n };\n\n for (var idx = 0; idx < sorted.length; idx++) {\n let { d } = sorted[idx];\n\n if (disc < d) {\n sorted.splice(idx, 0, entry);\n return;\n }\n }\n\n // not inserted, append (!)\n sorted.push(entry);\n });\n\n return map(sorted, (e) => e.v);\n}\n\n\n/**\n * Create an object pattern matcher.\n *\n * @example\n *\n * ```javascript\n * const matcher = matchPattern({ id: 1 });\n *\n * let element = find(elements, matcher);\n * ```\n *\n * @template T\n *\n * @param {T} pattern\n *\n * @return { (el: any) => boolean } matcherFn\n */\nfunction matchPattern(pattern) {\n\n return function(el) {\n\n return every(pattern, function(val, key) {\n return el[key] === val;\n });\n\n };\n}\n\n\n/**\n * @param {string | ((e: any) => any) } extractor\n *\n * @return { (e: any) => any }\n */\nfunction toExtractor(extractor) {\n\n /**\n * @satisfies { (e: any) => any }\n */\n return isFunction(extractor) ? extractor : (e) => {\n\n // @ts-ignore: just works\n return e[extractor];\n };\n}\n\n\n/**\n * @template T\n * @param {Matcher} matcher\n *\n * @return {MatchFn}\n */\nfunction toMatcher(matcher) {\n return isFunction(matcher) ? matcher : (e) => {\n return e === matcher;\n };\n}\n\n\nfunction identity(arg) {\n return arg;\n}\n\nfunction toNum(arg) {\n return Number(arg);\n}\n\n/* global setTimeout clearTimeout */\n\n/**\n * @typedef { {\n * (...args: any[]): any;\n * flush: () => void;\n * cancel: () => void;\n * } } DebouncedFunction\n */\n\n/**\n * Debounce fn, calling it only once if the given time\n * elapsed between calls.\n *\n * Lodash-style the function exposes methods to `#clear`\n * and `#flush` to control internal behavior.\n *\n * @param {Function} fn\n * @param {Number} timeout\n *\n * @return {DebouncedFunction} debounced function\n */\nfunction debounce(fn, timeout) {\n\n let timer;\n\n let lastArgs;\n let lastThis;\n\n let lastNow;\n\n function fire(force) {\n\n let now = Date.now();\n\n let scheduledDiff = force ? 0 : (lastNow + timeout) - now;\n\n if (scheduledDiff > 0) {\n return schedule(scheduledDiff);\n }\n\n fn.apply(lastThis, lastArgs);\n\n clear();\n }\n\n function schedule(timeout) {\n timer = setTimeout(fire, timeout);\n }\n\n function clear() {\n if (timer) {\n clearTimeout(timer);\n }\n\n timer = lastNow = lastArgs = lastThis = undefined;\n }\n\n function flush() {\n if (timer) {\n fire(true);\n }\n\n clear();\n }\n\n /**\n * @type { DebouncedFunction }\n */\n function callback(...args) {\n lastNow = Date.now();\n\n lastArgs = args;\n lastThis = this;\n\n // ensure an execution is scheduled\n if (!timer) {\n schedule(timeout);\n }\n }\n\n callback.flush = flush;\n callback.cancel = clear;\n\n return callback;\n}\n\n/**\n * Throttle fn, calling at most once\n * in the given interval.\n *\n * @param {Function} fn\n * @param {Number} interval\n *\n * @return {Function} throttled function\n */\nfunction throttle(fn, interval) {\n let throttling = false;\n\n return function(...args) {\n\n if (throttling) {\n return;\n }\n\n fn(...args);\n throttling = true;\n\n setTimeout(() => {\n throttling = false;\n }, interval);\n };\n}\n\n/**\n * Bind function against target .\n *\n * @param {Function} fn\n * @param {Object} target\n *\n * @return {Function} bound function\n */\nfunction bind(fn, target) {\n return fn.bind(target);\n}\n\n/**\n * Convenience wrapper for `Object.assign`.\n *\n * @param {Object} target\n * @param {...Object} others\n *\n * @return {Object} the target\n */\nfunction assign(target, ...others) {\n return Object.assign(target, ...others);\n}\n\n/**\n * Sets a nested property of a given object to the specified value.\n *\n * This mutates the object and returns it.\n *\n * @template T\n *\n * @param {T} target The target of the set operation.\n * @param {(string|number)[]} path The path to the nested value.\n * @param {any} value The value to set.\n *\n * @return {T}\n */\nfunction set(target, path, value) {\n\n let currentTarget = target;\n\n forEach(path, function(key, idx) {\n\n if (typeof key !== 'number' && typeof key !== 'string') {\n throw new Error('illegal key type: ' + typeof key + '. Key should be of type number or string.');\n }\n\n if (key === 'constructor') {\n throw new Error('illegal key: constructor');\n }\n\n if (key === '__proto__') {\n throw new Error('illegal key: __proto__');\n }\n\n let nextKey = path[idx + 1];\n let nextTarget = currentTarget[key];\n\n if (isDefined(nextKey) && isNil(nextTarget)) {\n nextTarget = currentTarget[key] = isNaN(+nextKey) ? {} : [];\n }\n\n if (isUndefined(nextKey)) {\n if (isUndefined(value)) {\n delete currentTarget[key];\n } else {\n currentTarget[key] = value;\n }\n } else {\n currentTarget = nextTarget;\n }\n });\n\n return target;\n}\n\n\n/**\n * Gets a nested property of a given object.\n *\n * @param {Object} target The target of the get operation.\n * @param {(string|number)[]} path The path to the nested value.\n * @param {any} [defaultValue] The value to return if no value exists.\n *\n * @return {any}\n */\nfunction get(target, path, defaultValue) {\n\n let currentTarget = target;\n\n forEach(path, function(key) {\n\n // accessing nil property yields \n if (isNil(currentTarget)) {\n currentTarget = undefined;\n\n return false;\n }\n\n currentTarget = currentTarget[key];\n });\n\n return isUndefined(currentTarget) ? defaultValue : currentTarget;\n}\n\n/**\n * Pick properties from the given target.\n *\n * @template T\n * @template {any[]} V\n *\n * @param {T} target\n * @param {V} properties\n *\n * @return Pick\n */\nfunction pick(target, properties) {\n\n let result = {};\n\n let obj = Object(target);\n\n forEach(properties, function(prop) {\n\n if (prop in obj) {\n result[prop] = target[prop];\n }\n });\n\n return result;\n}\n\n/**\n * Pick all target properties, excluding the given ones.\n *\n * @template T\n * @template {any[]} V\n *\n * @param {T} target\n * @param {V} properties\n *\n * @return {Omit} target\n */\nfunction omit(target, properties) {\n\n let result = {};\n\n let obj = Object(target);\n\n forEach(obj, function(prop, key) {\n\n if (properties.indexOf(key) === -1) {\n result[key] = prop;\n }\n });\n\n return result;\n}\n\n/**\n * Recursively merge `...sources` into given target.\n *\n * Does support merging objects; does not support merging arrays.\n *\n * @param {Object} target\n * @param {...Object} sources\n *\n * @return {Object} the target\n */\nfunction merge(target, ...sources) {\n\n if (!sources.length) {\n return target;\n }\n\n forEach(sources, function(source) {\n\n // skip non-obj sources, i.e. null\n if (!source || !isObject(source)) {\n return;\n }\n\n forEach(source, function(sourceVal, key) {\n\n if (key === '__proto__') {\n return;\n }\n\n let targetVal = target[key];\n\n if (isObject(sourceVal)) {\n\n if (!isObject(targetVal)) {\n\n // override target[key] with object\n targetVal = {};\n }\n\n target[key] = merge(targetVal, sourceVal);\n } else {\n target[key] = sourceVal;\n }\n\n });\n });\n\n return target;\n}\n\nexport { assign, bind, debounce, ensureArray, every, filter, find, findIndex, flatten, forEach, get, groupBy, has, isArray, isDefined, isFunction, isNil, isNumber, isObject, isString, isUndefined, keys, map, matchPattern, merge, omit, pick, reduce, set, size, some, sortBy, throttle, unionBy, uniqueBy, values, without };\n","import {\n some\n} from 'min-dash';\n\n/**\n * @typedef { import('../model/Types').Element } Element\n * @typedef { import('../model/Types').ModdleElement } ModdleElement\n */\n\n/**\n * Is an element of the given BPMN type?\n *\n * @param {Element|ModdleElement} element\n * @param {string} type\n *\n * @return {boolean}\n */\nexport function is(element, type) {\n var bo = getBusinessObject(element);\n\n return bo && (typeof bo.$instanceOf === 'function') && bo.$instanceOf(type);\n}\n\n\n/**\n * Return true if element has any of the given types.\n *\n * @param {Element|ModdleElement} element\n * @param {string[]} types\n *\n * @return {boolean}\n */\nexport function isAny(element, types) {\n return some(types, function(t) {\n return is(element, t);\n });\n}\n\n/**\n * Return the business object for a given element.\n *\n * @param {Element|ModdleElement} element\n *\n * @return {ModdleElement}\n */\nexport function getBusinessObject(element) {\n return (element && element.businessObject) || element;\n}\n\n/**\n * Return the di object for a given element.\n *\n * @param {Element} element\n *\n * @return {ModdleElement}\n */\nexport function getDi(element) {\n return element && element.di;\n}","import {\n is,\n getBusinessObject\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n some\n} from 'min-dash';\n\n\nexport { is, getBusinessObject };\n\nexport function filterSequenceFlows(flows) {\n return flows.filter(f => is(f, 'bpmn:SequenceFlow'));\n}\n\nexport function isMessageFlow(element) {\n return is(element, 'bpmn:MessageFlow');\n}\n\nexport function isSequenceFlow(element) {\n return is(element, 'bpmn:SequenceFlow');\n}\n\nexport function isMessageCatch(element) {\n return isCatchEvent(element) && isTypedEvent(element, 'bpmn:MessageEventDefinition');\n}\n\nexport function isLinkCatch(element) {\n return isCatchEvent(element) && isTypedEvent(element, 'bpmn:LinkEventDefinition');\n}\n\nexport function isCompensationEvent(element) {\n return isCatchEvent(element) && isTypedEvent(element, 'bpmn:CompensateEventDefinition');\n}\n\nexport function isCompensationActivity(element) {\n return is(element, 'bpmn:Activity') && element.businessObject.isForCompensation;\n}\n\nexport function isCatchEvent(element) {\n return (\n is(element, 'bpmn:CatchEvent') ||\n is(element, 'bpmn:ReceiveTask')\n ) && !isLabel(element);\n}\n\nexport function isBoundaryEvent(element) {\n return is(element, 'bpmn:BoundaryEvent') && !isLabel(element);\n}\n\nexport function isNoneStartEvent(element) {\n return isStartEvent(element) && !isTypedEvent(element);\n}\n\nexport function isImplicitStartEvent(element) {\n if (isLabel(element)) {\n return false;\n }\n\n if (!isAny(element, [\n 'bpmn:Activity',\n 'bpmn:IntermediateCatchEvent',\n 'bpmn:IntermediateThrowEvent',\n 'bpmn:Gateway',\n 'bpmn:EndEvent'\n ])) {\n return false;\n }\n\n if (isLinkCatch(element)) {\n return false;\n }\n\n const incoming = element.incoming.find(isSequenceFlow);\n\n if (incoming) {\n return false;\n }\n\n if (isCompensationActivity(element)) {\n return false;\n }\n\n if (isEventSubProcess(element)) {\n return false;\n }\n\n return true;\n}\n\nexport function isStartEvent(element) {\n return is(element, 'bpmn:StartEvent') && !isLabel(element);\n}\n\nexport function isLabel(element) {\n return !!element.labelTarget;\n}\n\nexport function isEventSubProcess(element) {\n return getBusinessObject(element).triggeredByEvent;\n}\n\nexport function isInterrupting(element) {\n return (\n is(element, 'bpmn:StartEvent') && getBusinessObject(element).isInterrupting\n ) || (\n is(element, 'bpmn:BoundaryEvent') && getBusinessObject(element).cancelActivity\n );\n}\n\nexport function isAny(element, types) {\n return types.some(type => is(element, type));\n}\n\n/**\n * @param { DiagramElement} event\n * @param {string|undefined} [eventDefinitionType]\n *\n * @return {boolean}\n */\nexport function isTypedEvent(event, eventDefinitionType) {\n return some(getBusinessObject(event).eventDefinitions, definition => {\n return eventDefinitionType ? is(definition, eventDefinitionType) : true;\n });\n}\n","import Ids from 'ids';\n\nimport Scope from './Scope';\nimport { ScopeTraits } from './ScopeTraits';\n\nimport {\n filterSet,\n findSet\n} from './util/SetUtil';\n\nimport {\n eventsMatch,\n refsMatch\n} from './util/EventsUtil';\n\nimport {\n getBusinessObject,\n is,\n isAny,\n isBoundaryEvent,\n isCompensationEvent,\n isEventSubProcess,\n isImplicitStartEvent,\n isInterrupting,\n isStartEvent\n} from './util/ModelUtil';\n\n/**\n * @typedef { any } DiagramElement\n *\n * @typedef { {\n * element: DiagramElement,\n * interrupting: boolean,\n * boundary: boolean,\n * iref?: string,\n * ref: DiagramElement,\n * persistent?: boolean,\n * type: string\n * } } SimulatorEvent\n */\n\nexport default function Simulator(injector, eventBus, elementRegistry) {\n\n const ids = injector.get('scopeIds', false) || new Ids([ 32, 36 ]);\n\n // element configuration\n const configuration = {};\n\n const behaviors = {};\n\n const noopBehavior = new NoopBehavior();\n\n const changedElements = new Set();\n\n const jobs = [];\n\n const scopes = new Set();\n const subscriptions = new Set();\n\n on('tick', function() {\n for (const element of changedElements) {\n emit('elementChanged', {\n element\n });\n }\n\n changedElements.clear();\n });\n\n function queue(scope, task) {\n\n // add this task\n jobs.push([ task, scope ]);\n\n if (jobs.length !== 1) {\n return;\n }\n\n let next;\n\n while ((next = jobs[0])) {\n\n const [ task, scope ] = next;\n\n if (!scope.destroyed) {\n task();\n }\n\n // remove first task\n jobs.shift();\n }\n\n emit('tick');\n }\n\n function getBehavior(element) {\n return behaviors[element.type] || noopBehavior;\n }\n\n function signal(context) {\n\n const {\n element,\n parentScope,\n initiator = null,\n scope = initializeScope({\n element,\n parent: parentScope,\n initiator\n })\n } = context;\n\n queue(scope, function() {\n\n if (!scope.running) {\n scope.start();\n }\n\n trace('signal', {\n ...context,\n scope\n });\n\n getBehavior(element).signal({\n ...context,\n scope\n });\n\n if (scope.parent) {\n scopeChanged(scope.parent);\n }\n });\n\n return scope;\n }\n\n function enter(context) {\n\n const {\n element,\n scope: parentScope,\n initiator = parentScope\n } = context;\n\n const scope = initializeScope({\n element,\n parent: parentScope,\n initiator\n });\n\n queue(scope, function() {\n\n if (!scope.running) {\n scope.start();\n }\n\n trace('enter', context);\n\n getBehavior(element).enter({\n ...context,\n initiator,\n scope\n });\n\n if (scope.parent) {\n scopeChanged(scope.parent);\n }\n });\n\n return scope;\n }\n\n function exit(context) {\n\n const {\n element,\n scope,\n initiator = scope\n } = context;\n\n queue(scope, function() {\n\n trace('exit', context);\n\n getBehavior(element).exit({\n ...context,\n initiator\n });\n\n if (scope.running) {\n scope.complete();\n }\n\n destroyScope(scope, initiator);\n\n scope.parent && scopeChanged(scope.parent);\n });\n }\n\n function trigger(context) {\n const {\n event: _event,\n initiator,\n scope\n } = context;\n\n // behavior depends on available event subscriptions\n //\n // interrupt (one-off, clear all events)\n // => keep interrupting boundary event sub-scriptions of same type, if available\n //\n // continue (one-off signal)\n //\n // non-interrupting (as many as needed)\n\n const event = getEvent(_event);\n\n const subscriptions = scope.subscriptions;\n\n let matchingSubscriptions = filterSet(\n subscriptions, subscription => eventsMatch(event, subscription.event)\n );\n\n if (event.type === 'error' || event.type === 'escalation') {\n const referenceSubscriptions = filterSet(\n matchingSubscriptions, subscription => refsMatch(event, subscription.event)\n );\n\n if (matchingSubscriptions.every(subscription => subscription.event.boundary)\n && referenceSubscriptions.some(subscription => subscription.event.boundary)\n || referenceSubscriptions.some(subscription => !subscription.event.boundary)) {\n matchingSubscriptions = referenceSubscriptions;\n }\n }\n\n const nonInterrupting = matchingSubscriptions.filter(\n subscription => !subscription.event.interrupting\n );\n\n const interrupting = matchingSubscriptions.filter(\n subscription => subscription.event.interrupting\n );\n\n if (!interrupting.length) {\n return nonInterrupting.map(\n subscription => subscription.triggerFn(initiator)\n ).flat();\n }\n\n const interrupt = interrupting.find(subscription => !subscription.event.boundary) || interrupting[0];\n\n const remainingSubscriptions = filterSet(\n subscriptions,\n subscription => subscription.event.persistent || isRethrow(subscription.event, interrupt.event)\n );\n\n subscriptions.forEach(subscription => {\n if (!remainingSubscriptions.includes(subscription)) {\n subscription.remove();\n }\n });\n\n return [ interrupt.triggerFn(initiator) ].flat().filter(s => s);\n }\n\n function subscribe(scope, event, triggerFn) {\n\n event = getEvent(event);\n\n const element = event.element;\n\n const subscription = {\n scope,\n event,\n element,\n triggerFn,\n remove() {\n unsubscribe(subscription);\n }\n };\n\n subscriptions.add(subscription);\n\n scope.subscriptions.add(subscription);\n\n if (element) {\n elementChanged(element);\n }\n\n return subscription;\n }\n\n function unsubscribe(subscription) {\n const {\n scope,\n event\n } = subscription;\n\n subscriptions.delete(subscription);\n\n scope.subscriptions.delete(subscription);\n\n if (event.element) {\n elementChanged(event.element);\n }\n }\n\n function createInternalRef(element) {\n if (\n is(element, 'bpmn:StartEvent') ||\n is(element, 'bpmn:IntermediateCatchEvent') ||\n is(element, 'bpmn:ReceiveTask') ||\n isSpecialBoundaryEvent(element)\n ) {\n return getBusinessObject(element).name || element.id;\n }\n\n return null;\n }\n\n /**\n * @param { any } element\n *\n * @return {SimulatorEvent}\n */\n function getNoneEvent(element) {\n return {\n element,\n interrupting: false,\n boundary: false,\n iref: element.id,\n type: 'none'\n };\n }\n\n /**\n * @param { any } element\n *\n * @return {SimulatorEvent}\n */\n function getEvent(element) {\n\n // do not double-return element\n if (!element.businessObject) {\n return element;\n }\n\n const interrupting = isInterrupting(element);\n const boundary = isBoundaryEvent(element);\n\n // we do create an internal reference for\n // catch-like events to ensure these can\n // be triggered via the UI exclusively\n const iref = createInternalRef(element);\n\n const baseEvent = {\n element,\n interrupting,\n boundary,\n ...(iref ? { iref } : {})\n };\n\n const eventDefinition = getEventDefinitions(element)[0];\n\n if (!eventDefinition) {\n\n return {\n ...baseEvent,\n type: isImplicitMessageCatch(element) ? 'message' : 'none'\n };\n }\n\n if (is(eventDefinition, 'bpmn:LinkEventDefinition')) {\n return {\n ...baseEvent,\n type: 'link',\n name: eventDefinition.name\n };\n }\n\n if (is(eventDefinition, 'bpmn:SignalEventDefinition')) {\n return {\n ...baseEvent,\n type: 'signal',\n ref: eventDefinition.signalRef\n };\n }\n\n if (is(eventDefinition, 'bpmn:TimerEventDefinition')) {\n return {\n ...baseEvent,\n type: 'timer'\n };\n }\n\n if (is(eventDefinition, 'bpmn:ConditionalEventDefinition')) {\n return {\n ...baseEvent,\n type: 'condition',\n };\n }\n\n if (is(eventDefinition, 'bpmn:EscalationEventDefinition')) {\n return {\n ...baseEvent,\n type: 'escalation',\n ref: eventDefinition.escalationRef\n };\n }\n\n if (is(eventDefinition, 'bpmn:CancelEventDefinition')) {\n return {\n ...baseEvent,\n type: 'cancel'\n };\n }\n\n if (is(eventDefinition, 'bpmn:ErrorEventDefinition')) {\n return {\n ...baseEvent,\n type: 'error',\n ref: eventDefinition.errorRef\n };\n }\n\n if (is(eventDefinition, 'bpmn:MessageEventDefinition')) {\n return {\n ...baseEvent,\n type: 'message',\n ref: eventDefinition.messageRef\n };\n }\n\n if (is(eventDefinition, 'bpmn:CompensateEventDefinition')) {\n\n let ref = eventDefinition.activityRef && elementRegistry.get(eventDefinition.activityRef.id);\n\n if (!ref) {\n\n if (isStartEvent(element) && isEventSubProcess(element.parent)) {\n\n // start event in event sub-process compensates\n // parent process (or participant)\n ref = element.parent.parent;\n } else if (isBoundaryEvent(element)) {\n\n // boundary event compensates activity it is attached to\n ref = element.host;\n } else {\n\n // parent is cancel scope\n ref = element.parent;\n }\n }\n\n return {\n ...baseEvent,\n type: 'compensate',\n ref,\n persistent: true\n };\n }\n\n throw new Error('unknown event definition', eventDefinition);\n }\n\n function createScope(context, emitEvent = true) {\n\n const {\n element,\n parent: parentScope,\n initiator\n } = context;\n\n emitEvent && trace('createScope', {\n element,\n scope: parentScope\n });\n\n const scope = new Scope(ids.next(), element, parentScope, initiator);\n\n if (parentScope) {\n parentScope.children.push(scope);\n }\n\n scopes.add(scope);\n\n emitEvent && emit('createScope', {\n scope\n });\n\n elementChanged(element);\n\n if (parentScope) {\n elementChanged(parentScope.element);\n }\n\n return scope;\n }\n\n function subscriptionFilter(filter) {\n\n if (typeof filter === 'function') {\n return filter;\n }\n\n const {\n event: _event,\n element,\n scope\n } = filter;\n\n const elements = filter.elements || (element && [ element ]);\n const event = _event && getEvent(_event);\n\n return (\n (subscription) =>\n (!event || eventsMatch(event, subscription.event)) &&\n (!elements || elements.includes(subscription.element)) &&\n (!scope || scope === subscription.scope)\n );\n }\n\n function scopeSubscriptionFilter(event) {\n const matchesSubscription = event === 'function' ? event : subscriptionFilter(event);\n\n return (\n scope => Array.from(scope.subscriptions).some(matchesSubscription)\n );\n }\n\n function scopeFilter(filter) {\n\n if (typeof filter === 'function') {\n return filter;\n }\n\n const {\n element,\n waitsOnElement,\n parent,\n trait = ScopeTraits.RUNNING,\n subscribedTo\n } = filter;\n\n const isSubscribed = subscribedTo ? scopeSubscriptionFilter(subscribedTo) : () => true;\n\n return (\n scope =>\n (!element || scope.element === element) &&\n (!parent || scope.parent === parent) &&\n (!waitsOnElement || scope.getTokensByElement(waitsOnElement) > 0) &&\n scope.hasTrait(trait) &&\n isSubscribed(scope)\n );\n }\n\n function findSubscriptions(filter) {\n return filterSet(subscriptions, subscriptionFilter(filter));\n }\n\n function findSubscription(filter) {\n return findSet(subscriptions, subscriptionFilter(filter));\n }\n\n function findScopes(filter) {\n return filterSet(scopes, scopeFilter(filter));\n }\n\n function findScope(filter) {\n return findSet(scopes, scopeFilter(filter));\n }\n\n function destroyScope(scope, initiator = null) {\n\n if (scope.destroyed) {\n return;\n }\n\n scope.destroy(initiator);\n\n // remove outdated subscriptions\n for (const subscription of scope.subscriptions) {\n const trait = subscription.event.traits || ScopeTraits.ACTIVE;\n\n if (!scope.hasTrait(trait)) {\n unsubscribe(subscription);\n }\n }\n\n // depending on taken transition scope many not actually\n // be destroyed but in an inactive / completed state\n //\n // only perform additional destructive operations in case we're\n // actually DEAD.\n if (scope.destroyed) {\n\n // destroy child scopes\n for (const childScope of scope.children) {\n if (!childScope.destroyed) {\n destroyScope(childScope, initiator);\n }\n }\n\n trace('destroyScope', {\n element: scope.element,\n scope\n });\n\n // remove dead scope\n scopes.delete(scope);\n\n emit('destroyScope', {\n scope\n });\n }\n\n elementChanged(scope.element);\n\n if (scope.parent) {\n elementChanged(scope.parent.element);\n }\n }\n\n function trace(action, context) {\n\n emit('trace', {\n ...context,\n action\n });\n }\n\n function elementChanged(element) {\n changedElements.add(element);\n\n // tick, unless jobs are queued\n // (and tick is going to happen naturally)\n if (!jobs.length) {\n emit('tick');\n }\n }\n\n function scopeChanged(scope) {\n emit('scopeChanged', {\n scope\n });\n }\n\n function emit(event, payload = {}) {\n return eventBus.fire(`tokenSimulation.simulator.${event}`, payload);\n }\n\n function on(event, callback) {\n eventBus.on('tokenSimulation.simulator.' + event, callback);\n }\n\n function off(event, callback) {\n eventBus.off('tokenSimulation.simulator.' + event, callback);\n }\n\n function setConfig(element, updatedConfig) {\n\n const existingConfig = getConfig(element);\n\n configuration[element.id || element] = {\n ...existingConfig,\n ...updatedConfig\n };\n\n elementChanged(element);\n }\n\n function initializeRootScopes() {\n\n const rootScopes = [];\n\n elementRegistry.forEach(element => {\n\n if (!isAny(element, [ 'bpmn:Process', 'bpmn:Participant' ])) {\n return;\n }\n\n const scope = createScope({\n element\n }, false);\n\n rootScopes.push(scope);\n\n const startEvents = element.children.filter(isStartEvent);\n\n const implicitStartEvents = element.children.filter(isImplicitStartEvent);\n\n for (const startEvent of startEvents) {\n\n const event = {\n ...getEvent(startEvent),\n interrupting: false\n };\n\n // start events can always be triggered\n subscribe(scope, event, initiator => signal({\n element,\n startEvent: startEvent,\n initiator\n }));\n }\n\n if (!startEvents.length) {\n\n for (const implicitStartEvent of implicitStartEvents) {\n\n const event = getNoneEvent(implicitStartEvent);\n\n // start events can always be triggered\n subscribe(scope, event, initiator => signal({\n element,\n initiator\n }));\n }\n }\n });\n\n return rootScopes;\n }\n\n function initializeScope(context) {\n\n const {\n element\n } = context;\n\n const scope = createScope(context);\n\n const {\n children = [],\n attachers = []\n } = element;\n\n for (const childElement of children) {\n\n // event sub-process start events\n if (isEventSubProcess(childElement)) {\n const startEvents = childElement.children.filter(\n element => isStartEvent(element) && !isCompensationEvent(element)\n );\n\n for (const startEvent of startEvents) {\n subscribe(scope, startEvent, initiator => {\n\n return signal({\n element: childElement,\n parentScope: scope,\n startEvent,\n initiator\n });\n });\n }\n }\n }\n\n for (const attacher of attachers) {\n\n // boundary events\n if (isBoundaryEvent(attacher) && !isCompensationEvent(attacher)) {\n\n subscribe(scope, attacher, initiator => {\n return signal({\n element: attacher,\n parentScope: scope.parent,\n hostScope: scope,\n initiator\n });\n });\n }\n }\n\n return scope;\n }\n\n function getConfig(element) {\n return configuration[element.id || element] || {};\n }\n\n function waitForScopes(scope, scopes) {\n\n if (!scopes.length) {\n return;\n }\n\n const event = {\n type: 'all-completed',\n persistent: false\n };\n\n const remainingScopes = new Set(scopes);\n\n const destroyListener = (destroyEvent) => {\n remainingScopes.delete(destroyEvent.scope);\n\n if (remainingScopes.size === 0) {\n off('destroyScope', destroyListener);\n\n trigger({\n scope,\n event\n });\n }\n };\n\n on('destroyScope', destroyListener);\n\n return event;\n }\n\n function waitAtElement(element, wait = true) {\n setConfig(element, {\n wait\n });\n }\n\n function reset() {\n for (const scope of scopes) {\n destroyScope(scope);\n }\n\n for (const rootScope of initializeRootScopes()) {\n scopes.add(rootScope);\n }\n\n // TODO(nikku): clear configuration?\n\n emit('tick');\n emit('reset');\n }\n\n // utilties\n this.createScope = createScope;\n this.destroyScope = destroyScope;\n\n // inspection\n this.findScope = findScope;\n this.findScopes = findScopes;\n\n this.findSubscription = findSubscription;\n this.findSubscriptions = findSubscriptions;\n\n // configuration\n this.waitAtElement = waitAtElement;\n\n this.waitForScopes = waitForScopes;\n\n this.setConfig = setConfig;\n this.getConfig = getConfig;\n\n // driving simulation forward\n this.signal = signal;\n this.enter = enter;\n this.exit = exit;\n\n // BPMN event subscriptions and triggers\n this.subscribe = subscribe;\n this.trigger = trigger;\n\n // life-cycle\n this.reset = reset;\n\n // emitter\n this.on = on;\n this.off = off;\n\n // extension\n this.registerBehavior = function(element, behavior) {\n behaviors[element] = behavior;\n };\n}\n\nSimulator.$inject = [\n 'injector',\n 'eventBus',\n 'elementRegistry'\n];\n\n\n// helpers /////////////////\n\nfunction NoopBehavior() {\n\n this.signal = function(context) {\n console.log('ignored #exit', context.element);\n };\n\n this.exit = function(context) {\n console.log('ignored #exit', context.element);\n };\n\n this.enter = function(context) {\n console.log('ignored #enter', context.element);\n };\n\n}\n\nfunction isRethrow(event, interrupt) {\n return (\n event.type === interrupt.type &&\n event.boundary && !interrupt.boundary\n );\n}\n\nfunction isImplicitMessageCatch(element) {\n return is(element, 'bpmn:ReceiveTask') || element.incoming.some(element => is(element, 'bpmn:MessageFlow'));\n}\n\nfunction isSpecialBoundaryEvent(element) {\n if (!isBoundaryEvent(element)) {\n return false;\n }\n\n const eventDefinitions = getEventDefinitions(element);\n\n return !eventDefinitions[0] || isAny(eventDefinitions[0], [\n 'bpmn:ConditionalEventDefinition', 'bpmn:TimerEventDefinition'\n ]);\n}\n\nfunction getEventDefinitions(element) {\n return element.businessObject.get('eventDefinitions') || [];\n}\n","export default function StartEventBehavior(\n simulator,\n activityBehavior) {\n\n this._simulator = simulator;\n this._activityBehavior = activityBehavior;\n\n simulator.registerBehavior('bpmn:StartEvent', this);\n}\n\nStartEventBehavior.prototype.signal = function(context) {\n this._simulator.exit(context);\n};\n\nStartEventBehavior.prototype.exit = function(context) {\n this._activityBehavior.exit(context);\n};\n\nStartEventBehavior.$inject = [\n 'simulator',\n 'activityBehavior'\n];","export default function EndEventBehavior(\n simulator,\n scopeBehavior,\n intermediateThrowEventBehavior) {\n\n this._intermediateThrowEventBehavior = intermediateThrowEventBehavior;\n this._scopeBehavior = scopeBehavior;\n\n simulator.registerBehavior('bpmn:EndEvent', this);\n}\n\nEndEventBehavior.$inject = [\n 'simulator',\n 'scopeBehavior',\n 'intermediateThrowEventBehavior'\n];\n\nEndEventBehavior.prototype.enter = function(context) {\n this._intermediateThrowEventBehavior.enter(context);\n};\n\nEndEventBehavior.prototype.signal = function(context) {\n this._intermediateThrowEventBehavior.signal(context);\n};\n\nEndEventBehavior.prototype.exit = function(context) {\n\n const {\n scope\n } = context;\n\n this._scopeBehavior.tryExit(scope.parent, scope);\n};","import {\n getBusinessObject\n} from '../util/ModelUtil';\n\n\nexport default function BoundaryEventBehavior(\n simulator,\n activityBehavior,\n scopeBehavior) {\n\n this._simulator = simulator;\n this._activityBehavior = activityBehavior;\n this._scopeBehavior = scopeBehavior;\n\n simulator.registerBehavior('bpmn:BoundaryEvent', this);\n}\n\nBoundaryEventBehavior.prototype.signal = function(context) {\n\n const {\n element,\n scope,\n hostScope = this._simulator.findScope({\n parent: scope.parent,\n element: element.host\n })\n } = context;\n\n if (!hostScope) {\n throw new Error('host scope not found');\n }\n\n const cancelActivity = getBusinessObject(element).cancelActivity;\n\n if (cancelActivity) {\n this._scopeBehavior.interrupt(hostScope, scope);\n\n // activities are pending completion before actual exit\n const event = this._scopeBehavior.tryExit(hostScope, scope);\n\n if (event) {\n const subscription = this._simulator.subscribe(hostScope, event, initiator => {\n subscription.remove();\n\n return this._simulator.exit(context);\n });\n\n return;\n }\n }\n\n this._simulator.exit(context);\n};\n\nBoundaryEventBehavior.prototype.exit = function(context) {\n this._activityBehavior.exit(context);\n};\n\nBoundaryEventBehavior.$inject = [\n 'simulator',\n 'activityBehavior',\n 'scopeBehavior'\n];","export default function IntermediateCatchEventBehavior(\r\n simulator,\r\n activityBehavior) {\r\n\r\n this._activityBehavior = activityBehavior;\r\n this._simulator = simulator;\r\n\r\n simulator.registerBehavior('bpmn:IntermediateCatchEvent', this);\r\n simulator.registerBehavior('bpmn:ReceiveTask', this);\r\n}\r\n\r\nIntermediateCatchEventBehavior.$inject = [\r\n 'simulator',\r\n 'activityBehavior'\r\n];\r\n\r\nIntermediateCatchEventBehavior.prototype.signal = function(context) {\r\n return this._simulator.exit(context);\r\n};\r\n\r\nIntermediateCatchEventBehavior.prototype.enter = function(context) {\r\n const {\r\n element\r\n } = context;\r\n\r\n // adapt special wait semantics; user must manually\r\n // trigger to indicate message received\r\n return this._activityBehavior.signalOnEvent(context, element);\r\n};\r\n\r\nIntermediateCatchEventBehavior.prototype.exit = function(context) {\r\n this._activityBehavior.exit(context);\r\n};","export default function IntermediateThrowEventBehavior(\r\n simulator,\r\n activityBehavior,\r\n eventBehaviors) {\r\n\r\n this._simulator = simulator;\r\n this._activityBehavior = activityBehavior;\r\n this._eventBehaviors = eventBehaviors;\r\n\r\n simulator.registerBehavior('bpmn:IntermediateThrowEvent', this);\r\n simulator.registerBehavior('bpmn:SendTask', this);\r\n}\r\n\r\nIntermediateThrowEventBehavior.prototype.enter = function(context) {\r\n const {\r\n element\r\n } = context;\r\n\r\n const eventBehavior = this._eventBehaviors.get(element);\r\n\r\n if (eventBehavior) {\r\n const event = eventBehavior(context);\r\n\r\n if (event) {\r\n return this._activityBehavior.signalOnEvent(context, event);\r\n }\r\n }\r\n\r\n this._activityBehavior.enter(context);\r\n};\r\n\r\nIntermediateThrowEventBehavior.prototype.signal = function(context) {\r\n this._activityBehavior.signal(context);\r\n};\r\n\r\nIntermediateThrowEventBehavior.prototype.exit = function(context) {\r\n this._activityBehavior.exit(context);\r\n};\r\n\r\nIntermediateThrowEventBehavior.$inject = [\r\n 'simulator',\r\n 'activityBehavior',\r\n 'eventBehaviors'\r\n];","import {\n filterSequenceFlows\n} from '../util/ModelUtil';\n\n\nexport default function ExclusiveGatewayBehavior(simulator, scopeBehavior) {\n this._scopeBehavior = scopeBehavior;\n this._simulator = simulator;\n\n simulator.registerBehavior('bpmn:ExclusiveGateway', this);\n}\n\nExclusiveGatewayBehavior.prototype.enter = function(context) {\n this._simulator.exit(context);\n};\n\nExclusiveGatewayBehavior.prototype.exit = function(context) {\n\n const {\n element,\n scope\n } = context;\n\n // depends on UI to properly configure activeOutgoing for\n // each exclusive gateway\n\n const outgoings = filterSequenceFlows(element.outgoing);\n\n if (outgoings.length === 1) {\n return this._simulator.enter({\n element: outgoings[0],\n scope: scope.parent\n });\n }\n\n const {\n activeOutgoing\n } = this._simulator.getConfig(element);\n\n const outgoing = outgoings.find(o => o === activeOutgoing);\n\n if (!outgoing) {\n return this._scopeBehavior.tryExit(scope.parent, scope);\n }\n\n return this._simulator.enter({\n element: outgoing,\n scope: scope.parent\n });\n};\n\nExclusiveGatewayBehavior.$inject = [\n 'simulator',\n 'scopeBehavior'\n];","import {\n filterSequenceFlows\n} from '../util/ModelUtil';\n\n\nexport default function ParallelGatewayBehavior(\n simulator,\n activityBehavior) {\n\n this._simulator = simulator;\n this._activityBehavior = activityBehavior;\n\n simulator.registerBehavior('bpmn:ParallelGateway', this);\n}\n\nParallelGatewayBehavior.prototype.enter = function(context) {\n\n const {\n scope\n } = context;\n\n const joiningScopes = this._findJoiningScopes(context);\n\n if (joiningScopes.length) {\n\n for (const childScope of joiningScopes) {\n\n if (childScope !== scope) {\n\n // complete joining child scope\n this._simulator.destroyScope(childScope.complete(), scope);\n }\n }\n\n this._simulator.exit(context);\n }\n};\n\n/**\n * Find scopes that will be joined by this transition.\n *\n * @param {Object} enterContext\n * @return {Scope[]} scopes joined by this transition\n */\nParallelGatewayBehavior.prototype._findJoiningScopes = function(enterContext) {\n\n const {\n scope,\n element\n } = enterContext;\n\n const sequenceFlows = filterSequenceFlows(element.incoming);\n\n const {\n parent: parentScope\n } = scope;\n\n const elementScopes = this._simulator.findScopes({\n parent: parentScope,\n element: element\n });\n\n const matchingScopes = sequenceFlows\n .map(\n flow => elementScopes\n .find(scope => scope.initiator.element === flow)\n )\n .filter(scope => scope);\n\n if (matchingScopes.length === sequenceFlows.length) {\n return matchingScopes;\n } else {\n return [];\n }\n};\n\nParallelGatewayBehavior.prototype.exit = function(context) {\n this._activityBehavior.exit(context);\n};\n\nParallelGatewayBehavior.$inject = [\n 'simulator',\n 'activityBehavior'\n];","import { isAny } from '../util/ModelUtil';\n\n\nexport default function EventBasedGatewayBehavior(simulator) {\n this._simulator = simulator;\n\n simulator.registerBehavior('bpmn:EventBasedGateway', this);\n}\n\nEventBasedGatewayBehavior.$inject = [\n 'simulator'\n];\n\nEventBasedGatewayBehavior.prototype.enter = function(context) {\n\n const {\n element,\n scope\n } = context;\n\n const parentScope = scope.parent;\n\n const triggerElements = getTriggers(element);\n\n // create subscriptions for outgoing event triggers\n // do nothing else beyond that\n const subscriptions = triggerElements.map(\n triggerElement => this._simulator.subscribe(parentScope, triggerElement, initiator => {\n\n // cancel all subscriptions\n subscriptions.forEach(subscription => subscription.remove());\n\n // destroy this scope\n this._simulator.destroyScope(scope, initiator);\n\n // signal triggered event\n return this._simulator.signal({\n element: triggerElement,\n parentScope,\n initiator\n });\n })\n );\n\n};\n\n\n// helpers ////////////////\n\nfunction getTriggers(element) {\n return element.outgoing.map(\n outgoing => outgoing.target\n ).filter(activity => isAny(activity, [\n 'bpmn:IntermediateCatchEvent',\n 'bpmn:ReceiveTask'\n ]));\n}","import {\n filterSequenceFlows, isSequenceFlow\n} from '../util/ModelUtil';\n\n\nexport default function InclusiveGatewayBehavior(\n simulator,\n activityBehavior) {\n\n this._simulator = simulator;\n this._activityBehavior = activityBehavior;\n\n simulator.registerBehavior('bpmn:InclusiveGateway', this);\n}\n\nInclusiveGatewayBehavior.prototype.enter = function(context) {\n this._tryJoin(context);\n};\n\nInclusiveGatewayBehavior.prototype.exit = function(context) {\n\n const {\n element,\n scope\n } = context;\n\n // depends on UI to properly configure activeOutgoing for\n // each inclusive gateway\n\n const outgoings = filterSequenceFlows(element.outgoing);\n\n // fork based on configured active outgoings\n if (outgoings.length > 1) {\n\n const {\n activeOutgoing = []\n } = this._simulator.getConfig(element);\n\n if (!activeOutgoing.length) {\n throw new Error('no outgoing configured');\n }\n\n for (const outgoing of activeOutgoing) {\n this._simulator.enter({\n element: outgoing,\n scope: scope.parent\n });\n }\n\n } else {\n\n // exit like any activity\n this._activityBehavior.exit(context);\n }\n\n};\n\nInclusiveGatewayBehavior.prototype._tryJoin = function(context) {\n\n const remainingScopes = this._getRemainingScopes(context);\n\n const remainingElements = remainingScopes.map(scope => scope.element);\n\n // join right away if possible\n // this implies that there are no remaining scopes\n // or non of the remaining scopes are reachable\n if (!this._canReachAnyElement(remainingElements, context.element)) {\n return this._join(context);\n }\n\n const elementScopes = this._getElementScopes(context);\n\n const {\n scope\n } = context;\n\n // only subscribe to changes with the first\n // element scope; prevent unneeded computation\n if (elementScopes[0] !== scope) {\n return;\n }\n\n const event = this._simulator.waitForScopes(scope, remainingScopes);\n\n const subscription = this._simulator.subscribe(scope, event, () => {\n subscription.remove();\n\n this._tryJoin(context);\n });\n};\n\n/**\n * Get scopes that may potentially be waited for,\n * in the context of an inclusive gateway.\n *\n * @param {object} context\n * @return {object[]}\n */\nInclusiveGatewayBehavior.prototype._getRemainingScopes = function(context) {\n const {\n scope,\n element\n } = context;\n\n const {\n parent: parentScope\n } = scope;\n\n return this._simulator.findScopes(\n scope => scope.parent === parentScope && scope.element !== element\n );\n};\n\nInclusiveGatewayBehavior.prototype._join = function(context) {\n const elementScopes = this._getElementScopes(context);\n\n for (const childScope of elementScopes) {\n\n if (childScope !== context.scope) {\n\n // complete joining child scope\n this._simulator.destroyScope(childScope.complete(), context.scope);\n }\n }\n\n this._simulator.exit(context);\n};\n\n/**\n * Get scopes on the element for the given context.\n *\n * @param {object} context\n *\n * @return {object[]} scopes\n */\nInclusiveGatewayBehavior.prototype._getElementScopes = function(context) {\n const {\n element,\n scope\n } = context;\n\n return this._simulator.findScopes({\n parent: scope.parent,\n element\n });\n};\n\n/**\n * Return true if any elements can be reached\n * from the current element, searching the execution\n * graph backwards.\n *\n * @param {object[]} elements\n * @param {object} currentElement\n * @param {Set} traversed\n *\n * @return {boolean}\n */\nInclusiveGatewayBehavior.prototype._canReachAnyElement = function(elements, currentElement, traversed = new Set()) {\n\n if (!elements.length) {\n return false;\n }\n\n // avoid infinite recursion\n if (traversed.has(currentElement)) {\n return false;\n }\n\n traversed.add(currentElement);\n\n if (elements.some(e => e === currentElement)) {\n return true;\n }\n\n if (isSequenceFlow(currentElement)) {\n return this._canReachAnyElement(elements, currentElement.source, traversed);\n }\n\n const incomingFlows = filterSequenceFlows(currentElement.incoming);\n\n for (const flow of incomingFlows) {\n if (this._canReachAnyElement(elements, flow, traversed)) {\n return true;\n }\n }\n\n return false;\n};\n\nInclusiveGatewayBehavior.$inject = [\n 'simulator',\n 'activityBehavior'\n];","import {\n isEventSubProcess,\n isMessageFlow,\n isSequenceFlow\n} from '../util/ModelUtil';\n\n\nexport default function ActivityBehavior(\n simulator,\n scopeBehavior,\n transactionBehavior\n) {\n this._simulator = simulator;\n this._scopeBehavior = scopeBehavior;\n this._transactionBehavior = transactionBehavior;\n\n const elements = [\n 'bpmn:BusinessRuleTask',\n 'bpmn:CallActivity',\n 'bpmn:ManualTask',\n 'bpmn:ScriptTask',\n 'bpmn:ServiceTask',\n 'bpmn:Task',\n 'bpmn:UserTask'\n ];\n\n for (const element of elements) {\n simulator.registerBehavior(element, this);\n }\n}\n\nActivityBehavior.$inject = [\n 'simulator',\n 'scopeBehavior',\n 'transactionBehavior'\n];\n\nActivityBehavior.prototype.signal = function(context) {\n\n // trigger messages that are pending send\n const event = this._triggerMessages(context);\n\n if (event) {\n return this.signalOnEvent(context, event);\n }\n\n this._simulator.exit(context);\n};\n\nActivityBehavior.prototype.enter = function(context) {\n\n const {\n element\n } = context;\n\n const continueEvent = this.waitAtElement(element);\n\n if (continueEvent) {\n return this.signalOnEvent(context, continueEvent);\n }\n\n // trigger messages that are pending send\n const event = this._triggerMessages(context);\n\n if (event) {\n return this.signalOnEvent(context, event);\n }\n\n this._simulator.exit(context);\n};\n\nActivityBehavior.prototype.exit = function(context) {\n\n const {\n element,\n scope\n } = context;\n\n const parentScope = scope.parent;\n\n // TODO(nikku): if a outgoing flow is conditional,\n // task has exclusive gateway semantics,\n // else, task has parallel gateway semantics\n\n const complete = !scope.failed;\n\n // compensation is registered AFTER successful completion\n // of normal scope activities (non event sub-processes).\n //\n // we must register it now, not earlier\n if (complete && !isEventSubProcess(element)) {\n this._transactionBehavior.registerCompensation(scope);\n }\n\n // if exception flow is active,\n // do not activate any outgoing flows\n const activatedFlows = complete\n ? element.outgoing.filter(isSequenceFlow)\n : [];\n\n activatedFlows.forEach(\n element => this._simulator.enter({\n element,\n scope: parentScope\n })\n );\n\n // element has token sink semantics\n if (activatedFlows.length === 0) {\n this._scopeBehavior.tryExit(parentScope, scope);\n }\n};\n\nActivityBehavior.prototype.signalOnEvent = function(context, event) {\n\n const {\n scope,\n element\n } = context;\n\n const subscription = this._simulator.subscribe(scope, event, initiator => {\n\n subscription.remove();\n\n return this._simulator.signal({\n scope,\n element,\n initiator\n });\n });\n};\n\n/**\n * Returns an event to subscribe to if wait on element is configured.\n *\n * @param {Element} element\n *\n * @return {Object|null} event\n */\nActivityBehavior.prototype.waitAtElement = function(element) {\n const wait = this._simulator.getConfig(element).wait;\n\n return wait && {\n element,\n type: 'continue',\n interrupting: false,\n boundary: false\n };\n};\n\nActivityBehavior.prototype._getMessageContexts = function(element, after = null) {\n\n const filterAfter = after ? ctx => ctx.referencePoint.x > after.x : () => true;\n const sortByReference = (a, b) => a.referencePoint.x - b.referencePoint.x;\n\n return [\n ...element.incoming.filter(isMessageFlow).map(flow => ({\n incoming: flow,\n referencePoint: last(flow.waypoints)\n })),\n ...element.outgoing.filter(isMessageFlow).map(flow => ({\n outgoing: flow,\n referencePoint: first(flow.waypoints)\n }))\n ].sort(sortByReference).filter(filterAfter);\n};\n\n/**\n * @param {any} context\n *\n * @return {Object} event to subscribe to proceed\n */\nActivityBehavior.prototype._triggerMessages = function(context) {\n\n // check for the next message flows to either\n // trigger or wait for; this implements intuitive,\n // as-you-would expect message flow execution in modeling\n // direction (left-to-right).\n\n const {\n element,\n initiator,\n scope\n } = context;\n\n let messageContexts = scope.messageContexts;\n\n if (!messageContexts) {\n messageContexts = scope.messageContexts = this._getMessageContexts(element);\n }\n\n const initiatingFlow = initiator && initiator.element;\n\n if (isMessageFlow(initiatingFlow)) {\n\n // ignore out of bounds messages received;\n // user may manually advance and force send all outgoing\n // messages\n if (scope.expectedIncoming !== initiatingFlow) {\n console.debug('Simulator :: ActivityBehavior :: ignoring out-of-bounds message');\n\n return;\n }\n }\n\n while (messageContexts.length) {\n const {\n incoming,\n outgoing\n } = messageContexts.shift();\n\n if (incoming) {\n\n // force sending of all remaining messages,\n // as the user triggered the task manually (for demonstration\n // purposes\n if (!initiator) {\n continue;\n }\n\n // remember expected incoming for future use\n scope.expectedIncoming = incoming;\n\n return {\n element,\n type: 'message',\n name: incoming.id,\n interrupting: false,\n boundary: false\n };\n }\n\n this._simulator.signal({\n element: outgoing\n });\n }\n\n};\n\n\n// helpers //////////////////\n\nfunction first(arr) {\n return arr && arr[0];\n}\n\nfunction last(arr) {\n return arr && arr[arr.length - 1];\n}","import {\n is,\n isEventSubProcess,\n isInterrupting,\n isStartEvent,\n isNoneStartEvent,\n isImplicitStartEvent\n} from '../util/ModelUtil';\n\n\nexport default function SubProcessBehavior(\n simulator,\n activityBehavior,\n scopeBehavior,\n transactionBehavior,\n elementRegistry) {\n\n this._simulator = simulator;\n this._activityBehavior = activityBehavior;\n this._scopeBehavior = scopeBehavior;\n this._transactionBehavior = transactionBehavior;\n this._elementRegistry = elementRegistry;\n\n simulator.registerBehavior('bpmn:SubProcess', this);\n simulator.registerBehavior('bpmn:Transaction', this);\n simulator.registerBehavior('bpmn:AdHocSubProcess', this);\n}\n\nSubProcessBehavior.$inject = [\n 'simulator',\n 'activityBehavior',\n 'scopeBehavior',\n 'transactionBehavior',\n 'elementRegistry'\n];\n\nSubProcessBehavior.prototype.signal = function(context) {\n this._start(context);\n};\n\nSubProcessBehavior.prototype.enter = function(context) {\n\n const {\n element\n } = context;\n\n const continueEvent = this._activityBehavior.waitAtElement(element);\n\n if (continueEvent) {\n return this._activityBehavior.signalOnEvent(context, continueEvent);\n }\n\n this._start(context);\n};\n\nSubProcessBehavior.prototype.exit = function(context) {\n\n const {\n scope\n } = context;\n\n const parentScope = scope.parent;\n\n // successful completion of the fail initiator (event sub-process)\n // recovers the parent, so that the normal flow is being executed\n if (parentScope.failInitiator === scope) {\n parentScope.complete();\n }\n\n this._activityBehavior.exit(context);\n};\n\nSubProcessBehavior.prototype._start = function(context) {\n const {\n element,\n startEvent,\n scope\n } = context;\n\n const targetScope = scope.parent;\n\n if (isEventSubProcess(element)) {\n\n if (!startEvent) {\n throw new Error('missing : required for event sub-process');\n }\n } else {\n if (startEvent) {\n throw new Error('unexpected : not allowed for sub-process');\n }\n }\n\n if (targetScope.destroyed) {\n throw new Error(`target scope <${targetScope.id}> destroyed`);\n }\n\n if (isTransaction(element)) {\n this._transactionBehavior.setup(context);\n }\n\n if (startEvent && isInterrupting(startEvent)) {\n this._scopeBehavior.interrupt(targetScope, scope);\n }\n\n const startNodes = this._findStarts(element, startEvent);\n\n for (const element of startNodes) {\n\n if (isStartEvent(element)) {\n this._simulator.signal({\n element,\n parentScope: scope,\n initiator: scope\n });\n } else {\n this._simulator.enter({\n element,\n scope,\n initiator: scope\n });\n }\n }\n};\n\nSubProcessBehavior.prototype._findStarts = function(element, startEvent) {\n\n // ensure bpmn-js@9 compatibility\n //\n // sub-process may be collapsed, in this case operate on the plane\n element = this._elementRegistry.get(element.id + '_plane') || element;\n\n const isStartEvent = startEvent\n ? (node) => startEvent === node\n : (node) => isNoneStartEvent(node);\n\n return element.children.filter(\n node => (\n isStartEvent(node) || isImplicitStartEvent(node)\n )\n );\n};\n\nfunction isTransaction(element) {\n return is(element, 'bpmn:Transaction');\n}\n","import {\n ScopeTraits\n} from '../ScopeTraits';\n\nimport {\n isAny,\n isCompensationEvent,\n isCompensationActivity,\n isEventSubProcess,\n isStartEvent,\n is\n} from '../util/ModelUtil';\n\nimport {\n eventsMatch\n} from '../util/EventsUtil';\n\nimport {\n filterSet\n} from '../util/SetUtil';\n\n\nconst CANCEL_EVENT = {\n type: 'cancel',\n interrupting: true,\n boundary: false,\n persistent: true\n};\n\n\nexport default function TransactionBehavior(simulator, scopeBehavior) {\n this._simulator = simulator;\n this._scopeBehavior = scopeBehavior;\n}\n\nTransactionBehavior.$inject = [\n 'simulator',\n 'scopeBehavior'\n];\n\nTransactionBehavior.prototype.setup = function(context) {\n\n const {\n scope\n } = context;\n\n const cancelSubscription = this._simulator.subscribe(scope, CANCEL_EVENT, (initiator) => {\n\n cancelSubscription.remove();\n\n return this.cancel({\n scope,\n initiator\n });\n });\n\n const compensateEvent = {\n type: 'compensate',\n ref: scope.element,\n persistent: true,\n traits: ScopeTraits.NOT_DEAD\n };\n\n const compensateSubscription = this._simulator.subscribe(scope, compensateEvent, (initiator) => {\n\n // need to trigger ordinary\n // transaction cancelation\n if (!scope.canceled) {\n return this._simulator.trigger({\n event: CANCEL_EVENT,\n scope\n });\n }\n\n compensateSubscription.remove();\n\n return this.compensate({\n scope,\n element: scope.element,\n initiator\n });\n });\n};\n\nTransactionBehavior.prototype.cancel = function(context) {\n\n const {\n scope,\n initiator\n } = context;\n\n // bail out on double cancel\n if (scope.destroyed) {\n return;\n }\n\n // mark scope as canceled\n scope.cancel(initiator);\n\n // trigger compensation on element\n this._simulator.trigger({\n event: {\n type: 'compensate',\n ref: scope.element\n },\n initiator,\n scope\n });\n\n // re-trigger cancel (to trigger boundary cancel events)\n return this._simulator.trigger({\n scope,\n initiator,\n event: CANCEL_EVENT\n });\n};\n\nTransactionBehavior.prototype.registerCompensation = function(scope) {\n\n const {\n element\n } = scope;\n\n // check for compensation triggers\n //\n // * embedded compensation event sub-processes\n // * compensation boundary events\n\n const compensateStartEvents = element.children.filter(\n isEventSubProcess\n ).map(\n element => element.children.find(\n element => isStartEvent(element) && isCompensationEvent(element)\n )\n ).filter(s => s);\n\n const compensateBoundaryEvents = element.attachers.filter(isCompensationEvent);\n\n if (!compensateStartEvents.length && !compensateBoundaryEvents.length) {\n return;\n }\n\n // always register on parent scope\n const transactionScope = this.findTransactionScope(scope.parent);\n\n // sub processes may enter a state\n // in that state they are kept alive on exit\n // until the parent gets destroyed; as long as they are kept alive\n // compensation can happen on them\n //\n if (!is(transactionScope.element, 'bpmn:Transaction')) {\n this.makeCompensable(transactionScope);\n }\n\n for (const startEvent of compensateStartEvents) {\n\n const compensationEvent = {\n element: startEvent,\n type: 'compensate',\n persistent: true,\n interrupting: true,\n ref: element,\n traits: ScopeTraits.NOT_DEAD\n };\n\n const compensateEventSub = startEvent.parent;\n\n const subscription = this._simulator.subscribe(scope, compensationEvent, initiator => {\n\n subscription.remove();\n\n return this._simulator.signal({\n initiator,\n element: compensateEventSub,\n startEvent,\n parentScope: scope\n });\n });\n }\n\n for (const boundaryEvent of compensateBoundaryEvents) {\n\n const compensationEvent = {\n element: boundaryEvent,\n type: 'compensate',\n persistent: true,\n ref: element,\n traits: ScopeTraits.NOT_DEAD\n };\n\n const compensateActivity = boundaryEvent.outgoing.map(\n outgoing => outgoing.target\n ).find(\n isCompensationActivity\n );\n\n if (!compensateActivity) {\n continue;\n }\n\n const subscription = this._simulator.subscribe(transactionScope, compensationEvent, initiator => {\n\n subscription.remove();\n\n // enter compensate activity like normal task\n return this._simulator.enter({\n initiator,\n element: compensateActivity,\n scope: transactionScope\n });\n });\n }\n};\n\nTransactionBehavior.prototype.makeCompensable = function(scope) {\n\n if (scope.hasTrait(ScopeTraits.COMPENSABLE) || !scope.parent) {\n return;\n }\n\n const compensateEvent = {\n type: 'compensate',\n ref: scope.element,\n interrupting: true,\n persistent: true,\n traits: ScopeTraits.NOT_DEAD\n };\n\n scope.compensable();\n\n const scopeSub = this._simulator.subscribe(scope, compensateEvent, (initiator) => {\n\n scopeSub.remove();\n\n scope.fail(initiator);\n\n this.compensate({\n scope,\n element: scope.element,\n initiator\n });\n\n this._scopeBehavior.tryExit(scope, initiator);\n\n return scope;\n });\n\n const parentScope = scope.parent;\n\n if (!parentScope) {\n return;\n }\n\n const parentSub = this._simulator.subscribe(parentScope, compensateEvent, initiator => {\n\n parentSub.remove();\n\n return this._simulator.trigger({\n scope,\n event: compensateEvent,\n initiator\n });\n\n });\n\n this.makeCompensable(parentScope);\n};\n\n\nTransactionBehavior.prototype.findTransactionScope = function(scope) {\n\n let parentScope = scope;\n\n while (parentScope) {\n const element = parentScope.element;\n\n if (is(element, 'bpmn:SubProcess') && !isEventSubProcess(element)) {\n return parentScope;\n }\n\n if (isAny(element, [\n 'bpmn:Transaction',\n 'bpmn:Process',\n 'bpmn:Participant'\n ])) {\n return parentScope;\n }\n\n parentScope = parentScope.parent;\n }\n\n throw noTransactionContext(scope);\n};\n\nTransactionBehavior.prototype.compensate = function(context) {\n\n const {\n scope,\n element\n } = context;\n\n // compensate all\n const compensateSubscriptions = filterSet(\n scope.subscriptions,\n subscription => eventsMatch({ type: 'compensate' }, subscription.event)\n );\n\n const localSubscriptions = compensateSubscriptions.filter(subscription => subscription.event.ref === element);\n\n const otherSubscriptions = compensateSubscriptions.filter(subscription => subscription.event.ref !== element);\n\n for (const subscription of localSubscriptions) {\n this._scopeBehavior.preExit(scope, initiator => {\n return this._simulator.trigger(subscription);\n });\n }\n\n for (const subscription of otherSubscriptions.reverse()) {\n this._scopeBehavior.preExit(scope, initiator => {\n return this._simulator.trigger(subscription);\n });\n }\n};\n\n\n// helpers ///////////////\n\nfunction noTransactionContext(scope) {\n throw new Error(`no transaction context for <${scope.id}>`);\n}","export default function SequenceFlowBehavior(\n simulator,\n scopeBehavior) {\n\n this._simulator = simulator;\n this._scopeBehavior = scopeBehavior;\n\n simulator.registerBehavior('bpmn:SequenceFlow', this);\n}\n\nSequenceFlowBehavior.prototype.enter = function(context) {\n this._simulator.exit(context);\n};\n\nSequenceFlowBehavior.prototype.exit = function(context) {\n const {\n element,\n scope\n } = context;\n\n this._simulator.enter({\n initiator: scope,\n element: element.target,\n scope: scope.parent\n });\n};\n\nSequenceFlowBehavior.$inject = [\n 'simulator',\n 'scopeBehavior'\n];","import {\n isCatchEvent\n} from '../util/ModelUtil';\n\n\nexport default function MessageFlowBehavior(simulator) {\n this._simulator = simulator;\n\n simulator.registerBehavior('bpmn:MessageFlow', this);\n}\n\nMessageFlowBehavior.$inject = [ 'simulator' ];\n\nMessageFlowBehavior.prototype.signal = function(context) {\n this._simulator.exit(context);\n};\n\nMessageFlowBehavior.prototype.exit = function(context) {\n const {\n element,\n scope: initiator\n } = context;\n\n const target = element.target;\n\n // the event triggered is either the message event\n // represented by the target message start or catch event _or_\n // an event that uses { name: messageFlow.id } as an identifier\n const event = isCatchEvent(target) ? target : {\n type: 'message',\n element,\n name: element.id\n };\n\n const subscription = this._simulator.findSubscription({\n event,\n elements: [ target, target.parent ]\n });\n\n if (subscription) {\n this._simulator.trigger({\n event,\n initiator,\n scope: subscription.scope\n });\n }\n};","import {\n find,\n some\n} from 'min-dash';\n\nimport {\n is as __is,\n getBusinessObject\n} from 'bpmn-js/lib/util/ModelUtil';\n\nexport function is(element, types) {\n if (element.type === 'label') {\n return false;\n }\n\n if (!Array.isArray(types)) {\n types = [ types ];\n }\n\n return types.some(function(type) {\n return __is(element, type);\n });\n}\n\nexport function getEventDefinition(event, eventDefinitionType) {\n return find(getBusinessObject(event).eventDefinitions, definition => {\n return is(definition, eventDefinitionType);\n });\n}\n\nexport function isTypedEvent(event, eventDefinitionType) {\n return some(getBusinessObject(event).eventDefinitions, definition => {\n return is(definition, eventDefinitionType);\n });\n}\n\nexport {\n getBusinessObject\n};","import {\n getEventDefinition,\n isTypedEvent\n} from '../../util/ElementHelper';\n\nimport {\n ScopeTraits\n} from '../ScopeTraits';\n\nimport {\n isEventSubProcess,\n isLinkCatch\n} from '../util/ModelUtil';\n\n\nexport default function EventBehaviors(\n simulator,\n elementRegistry,\n scopeBehavior) {\n\n this._simulator = simulator;\n this._elementRegistry = elementRegistry;\n this._scopeBehavior = scopeBehavior;\n}\n\nEventBehaviors.$inject = [\n 'simulator',\n 'elementRegistry',\n 'scopeBehavior'\n];\n\n\nEventBehaviors.prototype.get = function(element) {\n\n const behaviors = {\n 'bpmn:LinkEventDefinition': (context) => {\n\n const {\n element,\n scope\n } = context;\n\n const link = getLinkDefinition(element);\n\n const parentScope = scope.parent;\n const parentElement = parentScope.element;\n\n const linkTargets = parentElement.children.filter(element =>\n isLinkCatch(element) &&\n getLinkDefinition(element).name === link.name\n );\n\n for (const linkTarget of linkTargets) {\n this._simulator.signal({\n element: linkTarget,\n parentScope,\n initiator: scope\n });\n }\n },\n\n 'bpmn:SignalEventDefinition': (context) => {\n\n // HINT: signals work only within the whole diagram,\n // triggers start events, boundary events and\n // intermediate catch events\n\n const {\n element,\n scope\n } = context;\n\n const subscriptions = this._simulator.findSubscriptions({\n event: element\n });\n\n const signaledScopes = new Set();\n\n for (const subscription of subscriptions) {\n\n const signaledScope = subscription.scope;\n\n if (signaledScopes.has(signaledScope)) {\n continue;\n }\n\n signaledScopes.add(signaledScope);\n\n this._simulator.trigger({\n event: element,\n scope: signaledScope,\n initiator: scope\n });\n }\n },\n\n 'bpmn:EscalationEventDefinition': (context) => {\n\n // HINT: escalations are propagated up the scope\n // chain and caught by the first matching boundary event\n // or event sub-process\n\n const {\n element,\n scope\n } = context;\n\n const scopes = this._simulator.findScopes({\n subscribedTo: {\n event: element\n },\n trait: ScopeTraits.ACTIVE\n });\n\n let triggerScope = scope;\n\n while ((triggerScope = triggerScope.parent)) {\n\n if (scopes.includes(triggerScope)) {\n this._simulator.trigger({\n event: element,\n scope: triggerScope,\n initiator: scope\n });\n\n break;\n }\n }\n\n },\n\n 'bpmn:ErrorEventDefinition': (context) => {\n\n // HINT: errors are propagated up the scope\n // chain and caught by the first matching boundary event\n // or event sub-process\n\n const {\n element,\n scope\n } = context;\n\n const scopes = this._simulator.findScopes({\n subscribedTo: {\n event: element\n },\n trait: ScopeTraits.ACTIVE\n });\n\n let triggerScope = scope;\n\n // TODO(nikku): ensure error always interrupts, also if no error\n // catch is present\n while ((triggerScope = triggerScope.parent)) {\n\n if (scopes.includes(triggerScope)) {\n this._simulator.trigger({\n event: element,\n scope: triggerScope,\n initiator: scope\n });\n\n break;\n }\n }\n },\n\n 'bpmn:TerminateEventDefinition': (context) => {\n const {\n scope\n } = context;\n\n this._scopeBehavior.terminate(scope.parent, scope);\n },\n\n 'bpmn:CancelEventDefinition': (context) => {\n\n // HINT: cancels the surrounding transaction scope (does not bubble)\n\n const {\n scope,\n element\n } = context;\n\n this._simulator.trigger({\n event: element,\n initiator: scope,\n scope: findSubscriptionScope(scope)\n });\n },\n\n 'bpmn:CompensateEventDefinition': (context) => {\n\n const {\n scope,\n element\n } = context;\n\n return this._simulator.waitForScopes(\n scope,\n this._simulator.trigger({\n event: element,\n scope: findSubscriptionScope(scope)\n })\n );\n }\n };\n\n const entry = Object.entries(behaviors).find(\n entry => isTypedEvent(element, entry[0])\n );\n\n return entry && entry[1];\n};\n\n\n// helpers ///////////////\n\nfunction getLinkDefinition(element) {\n return getEventDefinition(element, 'bpmn:LinkEventDefinition');\n}\n\nfunction findSubscriptionScope(scope) {\n\n // the scope is the first non event sub-process\n while (isEventSubProcess(scope.parent.element)) {\n scope = scope.parent;\n }\n\n return scope.parent;\n}","const PRE_EXIT_EVENT = {\n type: 'pre-exit',\n persistent: true,\n interrupting: true,\n boundary: false\n};\n\nconst EXIT_EVENT = {\n type: 'exit',\n interrupting: true,\n boundary: false,\n persistent: true\n};\n\n\nexport default function ScopeBehavior(simulator) {\n this._simulator = simulator;\n}\n\nScopeBehavior.$inject = [\n 'simulator'\n];\n\n/**\n * Is the given scope finished?\n *\n * @param {Scope} scope\n * @param {Scope|Function} [excludeScope=null]\n *\n * @return {boolean}\n */\nScopeBehavior.prototype.isFinished = function(scope, excludeScope = null) {\n\n excludeScope = matchScope(excludeScope);\n\n return scope.children.every(c => c.destroyed || c.completed || excludeScope(c));\n};\n\n/**\n * Destroy all scope children.\n *\n * @param {Scope} scope\n * @param {Scope} initiator\n * @param {Scope|Function} [excludeScope=null]\n */\nScopeBehavior.prototype.destroyChildren = function(scope, initiator, excludeScope = null) {\n\n excludeScope = matchScope(excludeScope);\n\n scope.children.filter(c => !c.destroyed && !excludeScope(c)).map(c => {\n this._simulator.destroyScope(c, initiator);\n });\n};\n\nScopeBehavior.prototype.terminate = function(scope, initiator) {\n\n // kill all child scopes\n this.destroyChildren(scope, initiator);\n\n // mark as terminated\n scope.terminate(initiator);\n\n // exit immediately\n this.tryExit(scope, initiator);\n};\n\nScopeBehavior.prototype.interrupt = function(scope, initiator) {\n\n // kill children but initiator\n this.destroyChildren(scope, initiator, initiator);\n\n // mark as failed\n scope.fail(initiator);\n};\n\nScopeBehavior.prototype.tryExit = function(scope, initiator) {\n if (!scope) {\n throw new Error('missing ');\n }\n\n if (!initiator) {\n initiator = scope;\n }\n\n if (!this.isFinished(scope, initiator)) {\n return EXIT_EVENT;\n }\n\n const preExitSubscriptions = this._simulator.findSubscriptions({\n event: PRE_EXIT_EVENT,\n scope\n });\n\n for (const subscription of preExitSubscriptions) {\n\n const {\n event,\n scope\n } = subscription;\n\n const scopes = this._simulator.trigger({\n event,\n scope,\n initiator\n });\n\n if (scopes.length) {\n return EXIT_EVENT;\n }\n }\n\n this._simulator.trigger({\n event: EXIT_EVENT,\n scope,\n initiator\n });\n\n this.exit({\n scope,\n initiator\n });\n};\n\nScopeBehavior.prototype.exit = function(context) {\n\n const {\n scope,\n initiator\n } = context;\n\n if (!initiator) {\n throw new Error('missing ');\n }\n\n this._simulator.exit({\n element: scope.element,\n scope: scope,\n initiator\n });\n};\n\nScopeBehavior.prototype.preExit = function(scope, triggerFn) {\n const subscription = this._simulator.subscribe(scope, PRE_EXIT_EVENT, (initiator) => {\n\n subscription.remove();\n\n return triggerFn(initiator);\n });\n\n return subscription;\n};\n\n\n// helpers ////////////////\n\n/**\n * Create a scope matcher.\n *\n * @param {Scope|Function} fnOrScope\n *\n * @return { (Scope) => boolean }\n */\nfunction matchScope(fnOrScope) {\n\n if (typeof fnOrScope === 'function') {\n return fnOrScope;\n }\n\n return (scope) => scope === fnOrScope;\n}","import {\n isImplicitStartEvent,\n isNoneStartEvent,\n isStartEvent\n} from '../util/ModelUtil';\n\n\nexport default function ProcessBehavior(\n simulator,\n scopeBehavior) {\n\n this._simulator = simulator;\n this._scopeBehavior = scopeBehavior;\n\n simulator.registerBehavior('bpmn:Process', this);\n simulator.registerBehavior('bpmn:Participant', this);\n}\n\nProcessBehavior.prototype.signal = function(context) {\n\n const {\n element,\n startEvent,\n startNodes = this._findStarts(element, startEvent),\n scope\n } = context;\n\n if (!startNodes.length) {\n throw new Error('missing or ');\n }\n\n for (const startNode of startNodes) {\n\n if (isStartEvent(startNode)) {\n this._simulator.signal({\n element: startNode,\n parentScope: scope\n });\n } else {\n this._simulator.enter({\n element: startNode,\n scope\n });\n }\n }\n\n};\n\nProcessBehavior.prototype.exit = function(context) {\n\n const {\n scope,\n initiator\n } = context;\n\n // ensure that all sub-scopes are destroyed\n\n this._scopeBehavior.destroyChildren(scope, initiator);\n};\n\nProcessBehavior.prototype._findStarts = function(element, startEvent) {\n\n const isStartEvent = startEvent\n ? (node) => startEvent === node\n : (node) => isNoneStartEvent(node);\n\n return element.children.filter(\n node => (\n isStartEvent(node) || isImplicitStartEvent(node)\n )\n );\n};\n\nProcessBehavior.$inject = [\n 'simulator',\n 'scopeBehavior'\n];","import StartEventBehavior from './StartEventBehavior';\nimport EndEventBehavior from './EndEventBehavior';\nimport BoundaryEventBehavior from './BoundaryEventBehavior';\nimport IntermediateCatchEventBehavior from './IntermediateCatchEventBehavior';\nimport IntermediateThrowEventBehavior from './IntermediateThrowEventBehavior';\n\nimport ExclusiveGatewayBehavior from './ExclusiveGatewayBehavior';\nimport ParallelGatewayBehavior from './ParallelGatewayBehavior';\nimport EventBasedGatewayBehavior from './EventBasedGatewayBehavior';\nimport InclusiveGatewayBehavior from './InclusiveGatewayBehavior';\n\nimport ActivityBehavior from './ActivityBehavior';\nimport SubProcessBehavior from './SubProcessBehavior';\nimport TransactionBehavior from './TransactionBehavior';\n\nimport SequenceFlowBehavior from './SequenceFlowBehavior';\nimport MessageFlowBehavior from './MessageFlowBehavior';\n\nimport EventBehaviors from './EventBehaviors';\nimport ScopeBehavior from './ScopeBehavior';\n\nimport ProcessBehavior from './ProcessBehavior';\n\n\nexport default {\n __init__: [\n 'startEventBehavior',\n 'endEventBehavior',\n 'boundaryEventBehavior',\n 'intermediateCatchEventBehavior',\n 'intermediateThrowEventBehavior',\n 'exclusiveGatewayBehavior',\n 'parallelGatewayBehavior',\n 'eventBasedGatewayBehavior',\n 'inclusiveGatewayBehavior',\n 'subProcessBehavior',\n 'sequenceFlowBehavior',\n 'messageFlowBehavior',\n 'processBehavior'\n ],\n startEventBehavior: [ 'type', StartEventBehavior ],\n endEventBehavior: [ 'type', EndEventBehavior ],\n boundaryEventBehavior: [ 'type', BoundaryEventBehavior ],\n intermediateCatchEventBehavior: [ 'type', IntermediateCatchEventBehavior ],\n intermediateThrowEventBehavior: [ 'type', IntermediateThrowEventBehavior ],\n exclusiveGatewayBehavior: [ 'type', ExclusiveGatewayBehavior ],\n parallelGatewayBehavior: [ 'type', ParallelGatewayBehavior ],\n eventBasedGatewayBehavior: [ 'type', EventBasedGatewayBehavior ],\n inclusiveGatewayBehavior: [ 'type', InclusiveGatewayBehavior ],\n activityBehavior: [ 'type', ActivityBehavior ],\n subProcessBehavior: [ 'type', SubProcessBehavior ],\n sequenceFlowBehavior: [ 'type', SequenceFlowBehavior ],\n messageFlowBehavior: [ 'type', MessageFlowBehavior ],\n eventBehaviors: [ 'type', EventBehaviors ],\n scopeBehavior: [ 'type', ScopeBehavior ],\n processBehavior: [ 'type', ProcessBehavior ],\n transactionBehavior: [ 'type', TransactionBehavior ]\n};","import Simulator from './Simulator';\nimport SimulationBehaviorModule from './behaviors';\n\nconst HIGH_PRIORITY = 5000;\n\nexport default {\n __depends__: [\n SimulationBehaviorModule\n ],\n __init__: [\n [ 'eventBus', 'simulator', function(eventBus, simulator) {\n eventBus.on([\n 'tokenSimulation.toggleMode',\n 'tokenSimulation.resetSimulation'\n ], HIGH_PRIORITY, event => {\n simulator.reset();\n });\n } ]\n ],\n simulator: [ 'type', Simulator ]\n};","function e(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}export{e as default};\n//# sourceMappingURL=index.es.js.map\n","import MessageFlowBehavior from '../../simulator/behaviors/MessageFlowBehavior';\n\nimport inherits from 'inherits-browser';\n\n\nexport default function AnimatedMessageFlowBehavior(injector, animation) {\n injector.invoke(MessageFlowBehavior, this);\n\n this._animation = animation;\n}\n\ninherits(AnimatedMessageFlowBehavior, MessageFlowBehavior);\n\nAnimatedMessageFlowBehavior.$inject = [\n 'injector',\n 'animation'\n];\n\nAnimatedMessageFlowBehavior.prototype.signal = function(context) {\n\n const {\n element,\n scope\n } = context;\n\n this._animation.animate(element, scope, () => {\n MessageFlowBehavior.prototype.signal.call(this, context);\n });\n};\n","import SequenceFlowBehavior from '../../simulator/behaviors/SequenceFlowBehavior';\n\nimport inherits from 'inherits-browser';\n\n\nexport default function AnimatedSequenceFlowBehavior(injector, animation) {\n injector.invoke(SequenceFlowBehavior, this);\n\n this._animation = animation;\n}\n\ninherits(AnimatedSequenceFlowBehavior, SequenceFlowBehavior);\n\nAnimatedSequenceFlowBehavior.$inject = [\n 'injector',\n 'animation'\n];\n\nAnimatedSequenceFlowBehavior.prototype.enter = function(context) {\n\n const {\n element,\n scope\n } = context;\n\n this._animation.animate(element, scope, () => {\n SequenceFlowBehavior.prototype.enter.call(this, context);\n });\n};","import AnimatedMessageFlowBehavior from './AnimatedMessageFlowBehavior';\nimport AnimatedSequenceFlowBehavior from './AnimatedSequenceFlowBehavior';\n\nexport default {\n sequenceFlowBehavior: [ 'type', AnimatedSequenceFlowBehavior ],\n messageFlowBehavior: [ 'type', AnimatedMessageFlowBehavior ]\n};","const TOGGLE_MODE_EVENT = 'tokenSimulation.toggleMode';\r\nconst PLAY_SIMULATION_EVENT = 'tokenSimulation.playSimulation';\r\nconst PAUSE_SIMULATION_EVENT = 'tokenSimulation.pauseSimulation';\r\nconst RESET_SIMULATION_EVENT = 'tokenSimulation.resetSimulation';\r\nconst ANIMATION_CREATED_EVENT = 'tokenSimulation.animationCreated';\r\nconst ANIMATION_SPEED_CHANGED_EVENT = 'tokenSimulation.animationSpeedChanged';\r\nconst ELEMENT_CHANGED_EVENT = 'tokenSimulation.simulator.elementChanged';\r\nconst SCOPE_DESTROYED_EVENT = 'tokenSimulation.simulator.destroyScope';\r\nconst SCOPE_CHANGED_EVENT = 'tokenSimulation.simulator.scopeChanged';\r\nconst SCOPE_CREATE_EVENT = 'tokenSimulation.simulator.createScope';\r\nconst SCOPE_FILTER_CHANGED_EVENT = 'tokenSimulation.scopeFilterChanged';\r\nconst TRACE_EVENT = 'tokenSimulation.simulator.trace';\r\n\r\nexport {\r\n TOGGLE_MODE_EVENT,\r\n PLAY_SIMULATION_EVENT,\r\n PAUSE_SIMULATION_EVENT,\r\n RESET_SIMULATION_EVENT,\r\n ANIMATION_CREATED_EVENT,\r\n ANIMATION_SPEED_CHANGED_EVENT,\r\n ELEMENT_CHANGED_EVENT,\r\n SCOPE_DESTROYED_EVENT,\r\n SCOPE_CHANGED_EVENT,\r\n SCOPE_CREATE_EVENT,\r\n SCOPE_FILTER_CHANGED_EVENT,\r\n TRACE_EVENT\r\n};","import {\n SCOPE_FILTER_CHANGED_EVENT,\n TOGGLE_MODE_EVENT,\n RESET_SIMULATION_EVENT,\n SCOPE_CREATE_EVENT,\n SCOPE_DESTROYED_EVENT\n} from '../../util/EventHelper';\n\nconst DEFAULT_SCOPE_FILTER = (s) => true;\n\n\nexport default function ScopeFilter(eventBus, simulator) {\n this._eventBus = eventBus;\n this._simulator = simulator;\n\n this._filter = DEFAULT_SCOPE_FILTER;\n\n eventBus.on([\n TOGGLE_MODE_EVENT,\n RESET_SIMULATION_EVENT\n ], () => {\n this._filter = DEFAULT_SCOPE_FILTER;\n });\n\n eventBus.on(SCOPE_DESTROYED_EVENT, event => {\n\n const {\n scope\n } = event;\n\n // if we're currently filtering, ensure newly\n // created instance is shown\n\n if (this._scope === scope && scope.parent) {\n this.toggle(scope.parent);\n }\n });\n\n\n eventBus.on(SCOPE_CREATE_EVENT, event => {\n\n const {\n scope\n } = event;\n\n // if we're currently filtering, ensure newly\n // created instance is shown\n\n if (!scope.parent && this._scope && !isAncestor(this._scope, scope)) {\n this.toggle(null);\n }\n });\n}\n\nScopeFilter.prototype.toggle = function(scope) {\n\n const setFilter = this._scope !== scope;\n\n this._scope = setFilter ? scope : null;\n\n this._filter =\n this._scope\n ? s => isAncestor(this._scope, s)\n : s => true;\n\n this._eventBus.fire(SCOPE_FILTER_CHANGED_EVENT, {\n filter: this._filter,\n scope: this._scope\n });\n};\n\nScopeFilter.prototype.isShown = function(scope) {\n\n if (typeof scope === 'string') {\n scope = this._simulator.findScope(s => s.id === scope);\n }\n\n return scope && this._filter(scope);\n};\n\nScopeFilter.prototype.findScope = function(options) {\n return this._simulator.findScopes(options).filter(s => this.isShown(s))[0];\n};\n\nScopeFilter.$inject = [\n 'eventBus',\n 'simulator'\n];\n\nfunction isAncestor(parent, scope) {\n do {\n if (parent === scope) {\n return true;\n }\n } while ((scope = scope.parent));\n\n return false;\n}","import ScopeFilter from './ScopeFilter';\n\nexport default {\n scopeFilter: [ 'type', ScopeFilter ]\n};","function _mergeNamespaces(n, m) {\n m.forEach(function (e) {\n e && typeof e !== 'string' && !Array.isArray(e) && Object.keys(e).forEach(function (k) {\n if (k !== 'default' && !(k in n)) {\n var d = Object.getOwnPropertyDescriptor(e, k);\n Object.defineProperty(n, k, d.get ? d : {\n enumerable: true,\n get: function () { return e[k]; }\n });\n }\n });\n });\n return Object.freeze(n);\n}\n\n/**\n * Flatten array, one level deep.\n *\n * @template T\n *\n * @param {T[][] | T[] | null} [arr]\n *\n * @return {T[]}\n */\n\nconst nativeToString = Object.prototype.toString;\nconst nativeHasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction isUndefined(obj) {\n return obj === undefined;\n}\n\nfunction isArray(obj) {\n return nativeToString.call(obj) === '[object Array]';\n}\n\n/**\n * Return true, if target owns a property with the given key.\n *\n * @param {Object} target\n * @param {String} key\n *\n * @return {Boolean}\n */\nfunction has(target, key) {\n return nativeHasOwnProperty.call(target, key);\n}\n\n\n/**\n * Iterate over collection; returning something\n * (non-undefined) will stop iteration.\n *\n * @template T\n * @param {Collection} collection\n * @param { ((item: T, idx: number) => (boolean|void)) | ((item: T, key: string) => (boolean|void)) } iterator\n *\n * @return {T} return result that stopped the iteration\n */\nfunction forEach(collection, iterator) {\n\n let val,\n result;\n\n if (isUndefined(collection)) {\n return;\n }\n\n const convertKey = isArray(collection) ? toNum : identity;\n\n for (let key in collection) {\n\n if (has(collection, key)) {\n val = collection[key];\n\n result = iterator(val, convertKey(key));\n\n if (result === false) {\n return val;\n }\n }\n }\n}\n\n\nfunction identity(arg) {\n return arg;\n}\n\nfunction toNum(arg) {\n return Number(arg);\n}\n\n/**\n * Assigns style attributes in a style-src compliant way.\n *\n * @param {Element} element\n * @param {...Object} styleSources\n *\n * @return {Element} the element\n */\nfunction assign(element, ...styleSources) {\n const target = element.style;\n\n forEach(styleSources, function(style) {\n if (!style) {\n return;\n }\n\n forEach(style, function(value, key) {\n target[key] = value;\n });\n });\n\n return element;\n}\n\n/**\n * Set attribute `name` to `val`, or get attr `name`.\n *\n * @param {Element} el\n * @param {String} name\n * @param {String} [val]\n * @api public\n */\nfunction attr(el, name, val) {\n\n // get\n if (arguments.length == 2) {\n return el.getAttribute(name);\n }\n\n // remove\n if (val === null) {\n return el.removeAttribute(name);\n }\n\n // set\n el.setAttribute(name, val);\n\n return el;\n}\n\n/**\n * Taken from https://github.com/component/classes\n *\n * Without the component bits.\n */\n\n/**\n * toString reference.\n */\n\nconst toString = Object.prototype.toString;\n\n/**\n * Wrap `el` in a `ClassList`.\n *\n * @param {Element} el\n * @return {ClassList}\n * @api public\n */\n\nfunction classes(el) {\n return new ClassList(el);\n}\n\n/**\n * Initialize a new ClassList for `el`.\n *\n * @param {Element} el\n * @api private\n */\n\nfunction ClassList(el) {\n if (!el || !el.nodeType) {\n throw new Error('A DOM element reference is required');\n }\n this.el = el;\n this.list = el.classList;\n}\n\n/**\n * Add class `name` if not already present.\n *\n * @param {String} name\n * @return {ClassList}\n * @api public\n */\n\nClassList.prototype.add = function(name) {\n this.list.add(name);\n return this;\n};\n\n/**\n * Remove class `name` when present, or\n * pass a regular expression to remove\n * any which match.\n *\n * @param {String|RegExp} name\n * @return {ClassList}\n * @api public\n */\n\nClassList.prototype.remove = function(name) {\n if ('[object RegExp]' == toString.call(name)) {\n return this.removeMatching(name);\n }\n\n this.list.remove(name);\n return this;\n};\n\n/**\n * Remove all classes matching `re`.\n *\n * @param {RegExp} re\n * @return {ClassList}\n * @api private\n */\n\nClassList.prototype.removeMatching = function(re) {\n const arr = this.array();\n for (let i = 0; i < arr.length; i++) {\n if (re.test(arr[i])) {\n this.remove(arr[i]);\n }\n }\n return this;\n};\n\n/**\n * Toggle class `name`, can force state via `force`.\n *\n * For browsers that support classList, but do not support `force` yet,\n * the mistake will be detected and corrected.\n *\n * @param {String} name\n * @param {Boolean} force\n * @return {ClassList}\n * @api public\n */\n\nClassList.prototype.toggle = function(name, force) {\n if ('undefined' !== typeof force) {\n if (force !== this.list.toggle(name, force)) {\n this.list.toggle(name); // toggle again to correct\n }\n } else {\n this.list.toggle(name);\n }\n return this;\n};\n\n/**\n * Return an array of classes.\n *\n * @return {Array}\n * @api public\n */\n\nClassList.prototype.array = function() {\n return Array.from(this.list);\n};\n\n/**\n * Check if class `name` is present.\n *\n * @param {String} name\n * @return {ClassList}\n * @api public\n */\n\nClassList.prototype.has =\nClassList.prototype.contains = function(name) {\n return this.list.contains(name);\n};\n\n/**\n * Clear utility\n */\n\n/**\n * Removes all children from the given element\n *\n * @param {Element} element\n *\n * @return {Element} the element (for chaining)\n */\nfunction clear(element) {\n var child;\n\n while ((child = element.firstChild)) {\n element.removeChild(child);\n }\n\n return element;\n}\n\n/**\n * Closest\n *\n * @param {Element} el\n * @param {string} selector\n * @param {boolean} checkYourSelf (optional)\n */\nfunction closest(element, selector, checkYourSelf) {\n var actualElement = checkYourSelf ? element : element.parentNode;\n\n return actualElement && typeof actualElement.closest === 'function' && actualElement.closest(selector) || null;\n}\n\nvar componentEvent = {};\n\nvar bind$1, unbind$1, prefix;\n\nfunction detect () {\n bind$1 = window.addEventListener ? 'addEventListener' : 'attachEvent';\n unbind$1 = window.removeEventListener ? 'removeEventListener' : 'detachEvent';\n prefix = bind$1 !== 'addEventListener' ? 'on' : '';\n}\n\n/**\n * Bind `el` event `type` to `fn`.\n *\n * @param {Element} el\n * @param {String} type\n * @param {Function} fn\n * @param {Boolean} capture\n * @return {Function}\n * @api public\n */\n\nvar bind_1 = componentEvent.bind = function(el, type, fn, capture){\n if (!bind$1) detect();\n el[bind$1](prefix + type, fn, capture || false);\n return fn;\n};\n\n/**\n * Unbind `el` event `type`'s callback `fn`.\n *\n * @param {Element} el\n * @param {String} type\n * @param {Function} fn\n * @param {Boolean} capture\n * @return {Function}\n * @api public\n */\n\nvar unbind_1 = componentEvent.unbind = function(el, type, fn, capture){\n if (!unbind$1) detect();\n el[unbind$1](prefix + type, fn, capture || false);\n return fn;\n};\n\nvar event = /*#__PURE__*/_mergeNamespaces({\n __proto__: null,\n bind: bind_1,\n unbind: unbind_1,\n 'default': componentEvent\n}, [componentEvent]);\n\n/**\n * Module dependencies.\n */\n\n/**\n * Delegate event `type` to `selector`\n * and invoke `fn(e)`. A callback function\n * is returned which may be passed to `.unbind()`.\n *\n * @param {Element} el\n * @param {String} selector\n * @param {String} type\n * @param {Function} fn\n * @param {Boolean} capture\n * @return {Function}\n * @api public\n */\n\n// Some events don't bubble, so we want to bind to the capture phase instead\n// when delegating.\nvar forceCaptureEvents = [ 'focus', 'blur' ];\n\nfunction bind(el, selector, type, fn, capture) {\n if (forceCaptureEvents.indexOf(type) !== -1) {\n capture = true;\n }\n\n return event.bind(el, type, function(e) {\n var target = e.target || e.srcElement;\n e.delegateTarget = closest(target, selector, true);\n if (e.delegateTarget) {\n fn.call(el, e);\n }\n }, capture);\n}\n\n/**\n * Unbind event `type`'s callback `fn`.\n *\n * @param {Element} el\n * @param {String} type\n * @param {Function} fn\n * @param {Boolean} capture\n * @api public\n */\nfunction unbind(el, type, fn, capture) {\n if (forceCaptureEvents.indexOf(type) !== -1) {\n capture = true;\n }\n\n return event.unbind(el, type, fn, capture);\n}\n\nvar delegate = {\n bind,\n unbind\n};\n\n/**\n * Expose `parse`.\n */\n\nvar domify = parse;\n\n/**\n * Tests for browser support.\n */\n\nvar innerHTMLBug = false;\nvar bugTestDiv;\nif (typeof document !== 'undefined') {\n bugTestDiv = document.createElement('div');\n // Setup\n bugTestDiv.innerHTML = '
    a';\n // Make sure that link elements get serialized correctly by innerHTML\n // This requires a wrapper element in IE\n innerHTMLBug = !bugTestDiv.getElementsByTagName('link').length;\n bugTestDiv = undefined;\n}\n\n/**\n * Wrap map from jquery.\n */\n\nvar map = {\n legend: [1, '
    ', '
    '],\n tr: [2, '', '
    '],\n col: [2, '', '
    '],\n // for script/link/style tags to work in IE6-8, you have to wrap\n // in a div with a non-whitespace character in front, ha!\n _default: innerHTMLBug ? [1, 'X
    ', '
    '] : [0, '', '']\n};\n\nmap.td =\nmap.th = [3, '', '
    '];\n\nmap.option =\nmap.optgroup = [1, ''];\n\nmap.thead =\nmap.tbody =\nmap.colgroup =\nmap.caption =\nmap.tfoot = [1, '', '
    '];\n\nmap.polyline =\nmap.ellipse =\nmap.polygon =\nmap.circle =\nmap.text =\nmap.line =\nmap.path =\nmap.rect =\nmap.g = [1, '',''];\n\n/**\n * Parse `html` and return a DOM Node instance, which could be a TextNode,\n * HTML DOM Node of some kind (
    for example), or a DocumentFragment\n * instance, depending on the contents of the `html` string.\n *\n * @param {String} html - HTML string to \"domify\"\n * @param {Document} doc - The `document` instance to create the Node for\n * @return {DOMNode} the TextNode, DOM Node, or DocumentFragment instance\n * @api private\n */\n\nfunction parse(html, doc) {\n if ('string' != typeof html) throw new TypeError('String expected');\n\n // default to the global `document` object\n if (!doc) doc = document;\n\n // tag name\n var m = /<([\\w:]+)/.exec(html);\n if (!m) return doc.createTextNode(html);\n\n html = html.replace(/^\\s+|\\s+$/g, ''); // Remove leading/trailing whitespace\n\n var tag = m[1];\n\n // body support\n if (tag == 'body') {\n var el = doc.createElement('html');\n el.innerHTML = html;\n return el.removeChild(el.lastChild);\n }\n\n // wrap map\n var wrap = Object.prototype.hasOwnProperty.call(map, tag) ? map[tag] : map._default;\n var depth = wrap[0];\n var prefix = wrap[1];\n var suffix = wrap[2];\n var el = doc.createElement('div');\n el.innerHTML = prefix + html + suffix;\n while (depth--) el = el.lastChild;\n\n // one element\n if (el.firstChild == el.lastChild) {\n return el.removeChild(el.firstChild);\n }\n\n // several elements\n var fragment = doc.createDocumentFragment();\n while (el.firstChild) {\n fragment.appendChild(el.removeChild(el.firstChild));\n }\n\n return fragment;\n}\n\nvar domify$1 = domify;\n\n/**\n * @param { HTMLElement } element\n * @param { String } selector\n *\n * @return { boolean }\n */\nfunction matches(element, selector) {\n return element && typeof element.matches === 'function' && element.matches(selector) || false;\n}\n\nfunction query(selector, el) {\n el = el || document;\n\n return el.querySelector(selector);\n}\n\nfunction all(selector, el) {\n el = el || document;\n\n return el.querySelectorAll(selector);\n}\n\nfunction remove(el) {\n el.parentNode && el.parentNode.removeChild(el);\n}\n\nexport { assign as assignStyle, attr, classes, clear, closest, delegate, domify$1 as domify, event, matches, query, all as queryAll, remove };\n//# sourceMappingURL=index.esm.js.map\n","function ensureImported(element, target) {\n\n if (element.ownerDocument !== target.ownerDocument) {\n try {\n\n // may fail on webkit\n return target.ownerDocument.importNode(element, true);\n } catch (e) {\n\n // ignore\n }\n }\n\n return element;\n}\n\n/**\n * appendTo utility\n */\n\n\n/**\n * Append a node to a target element and return the appended node.\n *\n * @param {SVGElement} element\n * @param {SVGElement} target\n *\n * @return {SVGElement} the appended node\n */\nfunction appendTo(element, target) {\n return target.appendChild(ensureImported(element, target));\n}\n\n/**\n * append utility\n */\n\n\n/**\n * Append a node to an element\n *\n * @param {SVGElement} element\n * @param {SVGElement} node\n *\n * @return {SVGElement} the element\n */\nfunction append(target, node) {\n appendTo(node, target);\n return target;\n}\n\n/**\n * attribute accessor utility\n */\n\nvar LENGTH_ATTR = 2;\n\nvar CSS_PROPERTIES = {\n 'alignment-baseline': 1,\n 'baseline-shift': 1,\n 'clip': 1,\n 'clip-path': 1,\n 'clip-rule': 1,\n 'color': 1,\n 'color-interpolation': 1,\n 'color-interpolation-filters': 1,\n 'color-profile': 1,\n 'color-rendering': 1,\n 'cursor': 1,\n 'direction': 1,\n 'display': 1,\n 'dominant-baseline': 1,\n 'enable-background': 1,\n 'fill': 1,\n 'fill-opacity': 1,\n 'fill-rule': 1,\n 'filter': 1,\n 'flood-color': 1,\n 'flood-opacity': 1,\n 'font': 1,\n 'font-family': 1,\n 'font-size': LENGTH_ATTR,\n 'font-size-adjust': 1,\n 'font-stretch': 1,\n 'font-style': 1,\n 'font-variant': 1,\n 'font-weight': 1,\n 'glyph-orientation-horizontal': 1,\n 'glyph-orientation-vertical': 1,\n 'image-rendering': 1,\n 'kerning': 1,\n 'letter-spacing': 1,\n 'lighting-color': 1,\n 'marker': 1,\n 'marker-end': 1,\n 'marker-mid': 1,\n 'marker-start': 1,\n 'mask': 1,\n 'opacity': 1,\n 'overflow': 1,\n 'pointer-events': 1,\n 'shape-rendering': 1,\n 'stop-color': 1,\n 'stop-opacity': 1,\n 'stroke': 1,\n 'stroke-dasharray': 1,\n 'stroke-dashoffset': 1,\n 'stroke-linecap': 1,\n 'stroke-linejoin': 1,\n 'stroke-miterlimit': 1,\n 'stroke-opacity': 1,\n 'stroke-width': LENGTH_ATTR,\n 'text-anchor': 1,\n 'text-decoration': 1,\n 'text-rendering': 1,\n 'unicode-bidi': 1,\n 'visibility': 1,\n 'word-spacing': 1,\n 'writing-mode': 1\n};\n\n\nfunction getAttribute(node, name) {\n if (CSS_PROPERTIES[name]) {\n return node.style[name];\n } else {\n return node.getAttributeNS(null, name);\n }\n}\n\nfunction setAttribute(node, name, value) {\n var hyphenated = name.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n\n var type = CSS_PROPERTIES[hyphenated];\n\n if (type) {\n\n // append pixel unit, unless present\n if (type === LENGTH_ATTR && typeof value === 'number') {\n value = String(value) + 'px';\n }\n\n node.style[hyphenated] = value;\n } else {\n node.setAttributeNS(null, name, value);\n }\n}\n\nfunction setAttributes(node, attrs) {\n\n var names = Object.keys(attrs), i, name;\n\n for (i = 0, name; (name = names[i]); i++) {\n setAttribute(node, name, attrs[name]);\n }\n}\n\n/**\n * Gets or sets raw attributes on a node.\n *\n * @param {SVGElement} node\n * @param {Object} [attrs]\n * @param {String} [name]\n * @param {String} [value]\n *\n * @return {String}\n */\nfunction attr(node, name, value) {\n if (typeof name === 'string') {\n if (value !== undefined) {\n setAttribute(node, name, value);\n } else {\n return getAttribute(node, name);\n }\n } else {\n setAttributes(node, name);\n }\n\n return node;\n}\n\n/**\r\n * Taken from https://github.com/component/classes\r\n *\r\n * Without the component bits.\r\n */\r\n\r\n/**\r\n * toString reference.\r\n */\r\n\r\nconst toString = Object.prototype.toString;\r\n\r\n/**\r\n * Wrap `el` in a `ClassList`.\r\n *\r\n * @param {Element} el\r\n * @return {ClassList}\r\n * @api public\r\n */\r\n\r\nfunction classes(el) {\r\n return new ClassList(el);\r\n}\r\n\r\nfunction ClassList(el) {\r\n if (!el || !el.nodeType) {\r\n throw new Error('A DOM element reference is required');\r\n }\r\n this.el = el;\r\n this.list = el.classList;\r\n}\r\n\r\n/**\r\n * Add class `name` if not already present.\r\n *\r\n * @param {String} name\r\n * @return {ClassList}\r\n * @api public\r\n */\r\n\r\nClassList.prototype.add = function(name) {\r\n this.list.add(name);\r\n return this;\r\n};\r\n\r\n/**\r\n * Remove class `name` when present, or\r\n * pass a regular expression to remove\r\n * any which match.\r\n *\r\n * @param {String|RegExp} name\r\n * @return {ClassList}\r\n * @api public\r\n */\r\n\r\nClassList.prototype.remove = function(name) {\r\n if ('[object RegExp]' == toString.call(name)) {\r\n return this.removeMatching(name);\r\n }\r\n\r\n this.list.remove(name);\r\n return this;\r\n};\r\n\r\n/**\r\n * Remove all classes matching `re`.\r\n *\r\n * @param {RegExp} re\r\n * @return {ClassList}\r\n * @api private\r\n */\r\n\r\nClassList.prototype.removeMatching = function(re) {\r\n const arr = this.array();\r\n for (let i = 0; i < arr.length; i++) {\r\n if (re.test(arr[i])) {\r\n this.remove(arr[i]);\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Toggle class `name`, can force state via `force`.\r\n *\r\n * For browsers that support classList, but do not support `force` yet,\r\n * the mistake will be detected and corrected.\r\n *\r\n * @param {String} name\r\n * @param {Boolean} force\r\n * @return {ClassList}\r\n * @api public\r\n */\r\n\r\nClassList.prototype.toggle = function(name, force) {\r\n if ('undefined' !== typeof force) {\r\n if (force !== this.list.toggle(name, force)) {\r\n this.list.toggle(name); // toggle again to correct\r\n }\r\n } else {\r\n this.list.toggle(name);\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Return an array of classes.\r\n *\r\n * @return {Array}\r\n * @api public\r\n */\r\n\r\nClassList.prototype.array = function() {\r\n return Array.from(this.list);\r\n};\r\n\r\n/**\r\n * Check if class `name` is present.\r\n *\r\n * @param {String} name\r\n * @return {ClassList}\r\n * @api public\r\n */\r\n\r\nClassList.prototype.has =\r\n ClassList.prototype.contains = function(name) {\r\n return this.list.contains(name);\r\n };\n\n/**\n * Clear utility\n */\n\n/**\n * Removes all children from the given element\n *\n * @param {SVGElement} element\n * @return {Element} the element (for chaining)\n */\nfunction clear(element) {\n var child;\n\n while ((child = element.firstChild)) {\n element.removeChild(child);\n }\n\n return element;\n}\n\nfunction clone(element) {\n return element.cloneNode(true);\n}\n\nvar ns = {\n svg: 'http://www.w3.org/2000/svg'\n};\n\n/**\n * DOM parsing utility\n */\n\n\nvar SVG_START = '' + svg + '';\n unwrap = true;\n }\n\n var parsed = parseDocument(svg);\n\n if (!unwrap) {\n return parsed;\n }\n\n var fragment = document.createDocumentFragment();\n\n var parent = parsed.firstChild;\n\n while (parent.firstChild) {\n fragment.appendChild(parent.firstChild);\n }\n\n return fragment;\n}\n\nfunction parseDocument(svg) {\n\n var parser;\n\n // parse\n parser = new DOMParser();\n parser.async = false;\n\n return parser.parseFromString(svg, 'text/xml');\n}\n\n/**\n * Create utility for SVG elements\n */\n\n\n\n/**\n * Create a specific type from name or SVG markup.\n *\n * @param {String} name the name or markup of the element\n * @param {Object} [attrs] attributes to set on the element\n *\n * @returns {SVGElement}\n */\nfunction create(name, attrs) {\n var element;\n\n name = name.trim();\n\n if (name.charAt(0) === '<') {\n element = parse(name).firstChild;\n element = document.importNode(element, true);\n } else {\n element = document.createElementNS(ns.svg, name);\n }\n\n if (attrs) {\n attr(element, attrs);\n }\n\n return element;\n}\n\n/**\n * Events handling utility\n */\n\nfunction on(node, event, listener, useCapture) {\n node.addEventListener(event, listener, useCapture);\n}\n\nfunction off(node, event, listener, useCapture) {\n node.removeEventListener(event, listener, useCapture);\n}\n\n/**\n * Geometry helpers\n */\n\n\n// fake node used to instantiate svg geometry elements\nvar node = null;\n\nfunction getNode() {\n if (node === null) {\n node = create('svg');\n }\n\n return node;\n}\n\nfunction extend(object, props) {\n var i, k, keys = Object.keys(props);\n\n for (i = 0; (k = keys[i]); i++) {\n object[k] = props[k];\n }\n\n return object;\n}\n\n\nfunction createPoint(x, y) {\n var point = getNode().createSVGPoint();\n\n switch (arguments.length) {\n case 0:\n return point;\n case 2:\n x = {\n x: x,\n y: y\n };\n break;\n }\n\n return extend(point, x);\n}\n\n/**\n * Create matrix via args.\n *\n * @example\n *\n * createMatrix({ a: 1, b: 1 });\n * createMatrix();\n * createMatrix(1, 2, 0, 0, 30, 20);\n *\n * @return {SVGMatrix}\n */\nfunction createMatrix(a, b, c, d, e, f) {\n var matrix = getNode().createSVGMatrix();\n\n switch (arguments.length) {\n case 0:\n return matrix;\n case 1:\n return extend(matrix, a);\n case 6:\n return extend(matrix, {\n a: a,\n b: b,\n c: c,\n d: d,\n e: e,\n f: f\n });\n }\n}\n\nfunction createTransform(matrix) {\n if (matrix) {\n return getNode().createSVGTransformFromMatrix(matrix);\n } else {\n return getNode().createSVGTransform();\n }\n}\n\n/**\n * Serialization util\n */\n\nvar TEXT_ENTITIES = /([&<>]{1})/g;\nvar ATTR_ENTITIES = /([\\n\\r\"]{1})/g;\n\nvar ENTITY_REPLACEMENT = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '\\''\n};\n\nfunction escape(str, pattern) {\n\n function replaceFn(match, entity) {\n return ENTITY_REPLACEMENT[entity] || entity;\n }\n\n return str.replace(pattern, replaceFn);\n}\n\nfunction serialize(node, output) {\n\n var i, len, attrMap, attrNode, childNodes;\n\n switch (node.nodeType) {\n\n // TEXT\n case 3:\n\n // replace special XML characters\n output.push(escape(node.textContent, TEXT_ENTITIES));\n break;\n\n // ELEMENT\n case 1:\n output.push('<', node.tagName);\n\n if (node.hasAttributes()) {\n attrMap = node.attributes;\n for (i = 0, len = attrMap.length; i < len; ++i) {\n attrNode = attrMap.item(i);\n output.push(' ', attrNode.name, '=\"', escape(attrNode.value, ATTR_ENTITIES), '\"');\n }\n }\n\n if (node.hasChildNodes()) {\n output.push('>');\n childNodes = node.childNodes;\n for (i = 0, len = childNodes.length; i < len; ++i) {\n serialize(childNodes.item(i), output);\n }\n output.push('');\n } else {\n output.push('/>');\n }\n break;\n\n // COMMENT\n case 8:\n output.push('');\n break;\n\n // CDATA\n case 4:\n output.push('');\n break;\n\n default:\n throw new Error('unable to handle node ' + node.nodeType);\n }\n\n return output;\n}\n\n/**\n * innerHTML like functionality for SVG elements.\n * based on innerSVG (https://code.google.com/p/innersvg)\n */\n\n\n\nfunction set(element, svg) {\n\n var parsed = parse(svg);\n\n // clear element contents\n clear(element);\n\n if (!svg) {\n return;\n }\n\n if (!isFragment(parsed)) {\n\n // extract from parsed document\n parsed = parsed.documentElement;\n }\n\n var nodes = slice(parsed.childNodes);\n\n // import + append each node\n for (var i = 0; i < nodes.length; i++) {\n appendTo(nodes[i], element);\n }\n\n}\n\nfunction get(element) {\n var child = element.firstChild,\n output = [];\n\n while (child) {\n serialize(child, output);\n child = child.nextSibling;\n }\n\n return output.join('');\n}\n\nfunction isFragment(node) {\n return node.nodeName === '#document-fragment';\n}\n\nfunction innerSVG(element, svg) {\n\n if (svg !== undefined) {\n\n try {\n set(element, svg);\n } catch (e) {\n throw new Error('error parsing SVG: ' + e.message);\n }\n\n return element;\n } else {\n return get(element);\n }\n}\n\n\nfunction slice(arr) {\n return Array.prototype.slice.call(arr);\n}\n\n/**\n * Selection utilities\n */\n\nfunction select(node, selector) {\n return node.querySelector(selector);\n}\n\nfunction selectAll(node, selector) {\n var nodes = node.querySelectorAll(selector);\n\n return [].map.call(nodes, function(element) {\n return element;\n });\n}\n\n/**\n * prependTo utility\n */\n\n\n/**\n * Prepend a node to a target element and return the prepended node.\n *\n * @param {SVGElement} node\n * @param {SVGElement} target\n *\n * @return {SVGElement} the prepended node\n */\nfunction prependTo(node, target) {\n return target.insertBefore(ensureImported(node, target), target.firstChild || null);\n}\n\n/**\n * prepend utility\n */\n\n\n/**\n * Prepend a node to a target element\n *\n * @param {SVGElement} target\n * @param {SVGElement} node\n *\n * @return {SVGElement} the target element\n */\nfunction prepend(target, node) {\n prependTo(node, target);\n return target;\n}\n\nfunction remove(element) {\n var parent = element.parentNode;\n\n if (parent) {\n parent.removeChild(element);\n }\n\n return element;\n}\n\n/**\n * Replace utility\n */\n\n\nfunction replace(element, replacement) {\n element.parentNode.replaceChild(ensureImported(replacement, element), element);\n return replacement;\n}\n\n/**\n * transform accessor utility\n */\n\nfunction wrapMatrix(transformList, transform) {\n if (transform instanceof SVGMatrix) {\n return transformList.createSVGTransformFromMatrix(transform);\n }\n\n return transform;\n}\n\n\nfunction setTransforms(transformList, transforms) {\n var i, t;\n\n transformList.clear();\n\n for (i = 0; (t = transforms[i]); i++) {\n transformList.appendItem(wrapMatrix(transformList, t));\n }\n}\n\n/**\n * Get or set the transforms on the given node.\n *\n * @param {SVGElement} node\n * @param {SVGTransform|SVGMatrix|Array} [transforms]\n *\n * @return {SVGTransform} the consolidated transform\n */\nfunction transform(node, transforms) {\n var transformList = node.transform.baseVal;\n\n if (transforms) {\n\n if (!Array.isArray(transforms)) {\n transforms = [ transforms ];\n }\n\n setTransforms(transformList, transforms);\n }\n\n return transformList.consolidate();\n}\n\nexport { append, appendTo, attr, classes, clear, clone, create, createMatrix, createPoint, createTransform, innerSVG, off, on, prepend, prependTo, remove, replace, select, selectAll, transform };\n","import {\n query as domQuery\n} from 'min-dom';\n\nimport {\n appendTo as svgAppendTo,\n create as svgCreate,\n attr as svgAttr,\n remove as svgRemove\n} from 'tiny-svg';\n\nimport {\n RESET_SIMULATION_EVENT,\n PLAY_SIMULATION_EVENT,\n PAUSE_SIMULATION_EVENT,\n ANIMATION_CREATED_EVENT,\n ANIMATION_SPEED_CHANGED_EVENT,\n SCOPE_DESTROYED_EVENT,\n SCOPE_FILTER_CHANGED_EVENT\n} from '../util/EventHelper';\n\nconst STYLE = getComputedStyle(document.documentElement);\n\nconst DEFAULT_PRIMARY_COLOR = STYLE.getPropertyValue('--token-simulation-green-base-44');\nconst DEFAULT_AUXILIARY_COLOR = STYLE.getPropertyValue('--token-simulation-white');\n\nfunction noop() {}\n\nfunction getSegmentEasing(index, waypoints) {\n\n // only a single segment\n if (waypoints.length === 2) {\n return EASE_IN_OUT;\n }\n\n // first segment\n if (index === 1) {\n return EASE_IN;\n }\n\n // last segment\n if (index === waypoints.length - 1) {\n return EASE_OUT;\n }\n\n return EASE_LINEAR;\n}\n\nconst EASE_LINEAR = function(pos) {\n return pos;\n};\nconst EASE_IN = function(pos) {\n return -Math.cos(pos * Math.PI / 2) + 1;\n};\nconst EASE_OUT = function(pos) {\n return Math.sin(pos * Math.PI / 2);\n};\nconst EASE_IN_OUT = function(pos) {\n return -Math.cos(pos * Math.PI) / 2 + 0.5;\n};\n\nconst TOKEN_SIZE = 20;\n\n\nexport default function Animation(config, canvas, eventBus, scopeFilter) {\n this._eventBus = eventBus;\n this._scopeFilter = scopeFilter;\n this._canvas = canvas;\n\n this._randomize = config && config.randomize !== false;\n\n this._animations = new Set();\n this._speed = 1;\n\n eventBus.on(RESET_SIMULATION_EVENT, () => {\n this.clearAnimations();\n });\n\n eventBus.on(PAUSE_SIMULATION_EVENT, () => {\n this.pause();\n });\n\n eventBus.on(PLAY_SIMULATION_EVENT, () => {\n this.play();\n });\n\n eventBus.on(SCOPE_FILTER_CHANGED_EVENT, event => {\n\n this.each(animation => {\n if (this._scopeFilter.isShown(animation.scope)) {\n animation.show();\n } else {\n animation.hide();\n }\n });\n });\n\n eventBus.on(SCOPE_DESTROYED_EVENT, event => {\n const {\n scope\n } = event;\n\n this.clearAnimations(scope);\n });\n}\n\nAnimation.prototype.animate = function(connection, scope, done) {\n this.createAnimation(connection, scope, done);\n};\n\nAnimation.prototype.pause = function() {\n this.each(animation => animation.pause());\n};\n\nAnimation.prototype.play = function() {\n this.each(animation => animation.play());\n};\n\nAnimation.prototype.each = function(fn) {\n this._animations.forEach(fn);\n};\n\nAnimation.prototype.createAnimation = function(connection, scope, done = noop) {\n const group = this._getGroup(scope);\n\n if (!group) {\n return;\n }\n\n const tokenGfx = this._createTokenGfx(group, scope);\n\n const animation = new TokenAnimation(tokenGfx, connection.waypoints, this._randomize, () => {\n this._animations.delete(animation);\n\n done();\n });\n\n animation.setSpeed(this.getAnimationSpeed());\n\n if (!this._scopeFilter.isShown(scope)) {\n animation.hide();\n }\n\n animation.scope = scope;\n animation.element = connection;\n\n this._animations.add(animation);\n\n this._eventBus.fire(ANIMATION_CREATED_EVENT, {\n animation\n });\n\n animation.play();\n\n return animation;\n};\n\nAnimation.prototype.setAnimationSpeed = function(speed) {\n this._speed = speed;\n\n this.each(animation => animation.setSpeed(speed));\n\n this._eventBus.fire(ANIMATION_SPEED_CHANGED_EVENT, {\n speed\n });\n};\n\nAnimation.prototype.getAnimationSpeed = function() {\n return this._speed;\n};\n\nAnimation.prototype.clearAnimations = function(scope) {\n this.each(animation => {\n if (!scope || animation.scope === scope) {\n animation.remove();\n }\n });\n};\n\nAnimation.prototype._createTokenGfx = function(group, scope) {\n const parent = svgCreate(this._getTokenSVG(scope).trim());\n\n return svgAppendTo(parent, group);\n};\n\nAnimation.prototype._getTokenSVG = function(scope) {\n\n const colors = scope.colors || {\n primary: DEFAULT_PRIMARY_COLOR,\n auxiliary: DEFAULT_AUXILIARY_COLOR\n };\n\n return `\n \n \n 1\n \n `;\n};\n\nAnimation.prototype._getGroup = function(scope) {\n\n var canvas = this._canvas;\n\n var layer, root;\n\n // bpmn-js@9 compatibility:\n // show animation tokens on plane layers\n if ('findRoot' in canvas) {\n root = canvas.findRoot(scope.element);\n layer = canvas._findPlaneForRoot(root).layer;\n } else {\n layer = domQuery('.viewport', canvas._svg);\n }\n\n var group = domQuery('.bts-animation-tokens', layer);\n\n if (!group) {\n group = svgCreate('');\n\n svgAppendTo(\n group,\n layer\n );\n }\n\n return group;\n};\n\nAnimation.$inject = [\n 'config.animation',\n 'canvas',\n 'eventBus',\n 'scopeFilter'\n];\n\n\nfunction TokenAnimation(gfx, waypoints, randomize, done) {\n this.gfx = gfx;\n this.waypoints = waypoints;\n this.done = done;\n this.randomize = randomize;\n\n this._paused = true;\n this._t = 0;\n this._parts = [];\n\n this.create();\n}\n\nTokenAnimation.prototype.pause = function() {\n this._paused = true;\n};\n\nTokenAnimation.prototype.play = function() {\n\n if (this._paused) {\n this._paused = false;\n\n this.tick(0);\n }\n\n this.schedule();\n};\n\nTokenAnimation.prototype.schedule = function() {\n\n if (this._paused) {\n return;\n }\n\n if (this._scheduled) {\n return;\n }\n\n const last = Date.now();\n\n this._scheduled = true;\n\n requestAnimationFrame(() => {\n this._scheduled = false;\n\n if (this._paused) {\n return;\n }\n\n this.tick((Date.now() - last) * this._speed);\n this.schedule();\n });\n};\n\n\nTokenAnimation.prototype.tick = function(tElapsed) {\n\n const t = this._t = this._t + tElapsed;\n\n const part = this._parts.find(\n p => p.startTime <= t && p.endTime > t\n );\n\n // completed\n if (!part) {\n return this.remove();\n }\n\n const segmentTime = t - part.startTime;\n const segmentLength = part.length * part.easing(segmentTime / part.duration);\n\n const currentLength = part.startLength + segmentLength;\n\n const point = this._path.getPointAtLength(currentLength);\n\n this.move(point.x, point.y);\n};\n\nTokenAnimation.prototype.move = function(x, y) {\n svgAttr(this.gfx, 'transform', `translate(${x}, ${y})`);\n};\n\nTokenAnimation.prototype.create = function() {\n const waypoints = this.waypoints;\n\n const parts = waypoints.reduce((parts, point, index) => {\n\n const lastPoint = waypoints[index - 1];\n\n if (lastPoint) {\n const lastPart = parts[parts.length - 1];\n\n const startLength = lastPart && lastPart.endLength || 0;\n const length = distance(lastPoint, point);\n\n parts.push({\n startLength,\n endLength: startLength + length,\n length,\n easing: getSegmentEasing(index, waypoints)\n });\n }\n\n return parts;\n }, []);\n\n const totalLength = parts.reduce(function(length, part) {\n return length + part.length;\n }, 0);\n\n const d = waypoints.reduce((d, waypoint, index) => {\n\n const x = waypoint.x - TOKEN_SIZE / 2,\n y = waypoint.y - TOKEN_SIZE / 2;\n\n d.push([ index > 0 ? 'L' : 'M', x, y ]);\n\n return d;\n }, []).flat().join(' ');\n\n const totalDuration = getAnimationDuration(totalLength, this._randomize);\n\n this._parts = parts.reduce((parts, part, index) => {\n const duration = totalDuration / totalLength * part.length;\n const startTime = index > 0 ? parts[index - 1].endTime : 0;\n const endTime = startTime + duration;\n\n return [\n ...parts,\n {\n ...part,\n startTime,\n endTime,\n duration\n }\n ];\n }, []);\n\n this._path = svgCreate(``);\n this._t = 0;\n};\n\nTokenAnimation.prototype.show = function() {\n svgAttr(this.gfx, 'display', '');\n};\n\nTokenAnimation.prototype.hide = function() {\n svgAttr(this.gfx, 'display', 'none');\n};\n\nTokenAnimation.prototype.remove = function() {\n this.pause();\n\n svgRemove(this.gfx);\n\n this.done();\n};\n\nTokenAnimation.prototype.setSpeed = function(speed) {\n this._speed = speed;\n};\n\nfunction getAnimationDuration(length, randomize = false) {\n return Math.log(length) * (randomize ? randomBetween(250, 300) : 250);\n}\n\nfunction randomBetween(min, max) {\n return min + Math.floor(Math.random() * (max - min));\n}\n\nfunction distance(a, b) {\n return Math.sqrt(Math.pow(a.x - b.x, 2) + Math.pow(a.y - b.y, 2));\n}","import AnimatedBehaviorsModule from './behaviors';\nimport ScopeFilterModule from '../features/scope-filter';\nimport SimulatorModule from '../simulator';\n\nimport Animation from './Animation';\n\nexport default {\n __depends__: [\n SimulatorModule,\n AnimatedBehaviorsModule,\n ScopeFilterModule\n ],\n animation: [ 'type', Animation ]\n};","import randomColor from 'randomcolor';\n\nimport {\n SCOPE_CREATE_EVENT\n} from '../../util/EventHelper';\n\nconst HIGH_PRIORITY = 1500;\n\n\nexport default function ColoredScopes(eventBus) {\n\n const colors = randomColor({\n count: 60\n }).filter(c => getContrastYIQ(c.substring(1)) < 200);\n\n function getContrastYIQ(hexcolor) {\n var r = parseInt(hexcolor.substr(0,2),16);\n var g = parseInt(hexcolor.substr(2,2),16);\n var b = parseInt(hexcolor.substr(4,2),16);\n var yiq = ((r * 299) + (g * 587) + (b * 114)) / 1000;\n return yiq;\n }\n\n let colorsIdx = 0;\n\n function getColors(scope) {\n const {\n element\n } = scope;\n\n if (element && element.type === 'bpmn:MessageFlow') {\n return {\n primary: '#999',\n auxiliary: '#FFF'\n };\n }\n\n if (scope.parent) {\n return scope.parent.colors;\n }\n\n const primary = colors[ (colorsIdx++) % colors.length ];\n\n return {\n primary,\n auxiliary: getContrastYIQ(primary) >= 128 ? '#111' : '#fff'\n };\n }\n\n eventBus.on(SCOPE_CREATE_EVENT, HIGH_PRIORITY, event => {\n\n const {\n scope\n } = event;\n\n scope.colors = getColors(scope);\n });\n}\n\nColoredScopes.$inject = [\n 'eventBus'\n];","import ColoredScopes from './ColoredScopes';\n\nexport default {\n __init__: [\n 'coloredScopes'\n ],\n coloredScopes: [ 'type', ColoredScopes ]\n};","var LogSVG = \"\";\n\nvar AngleRightSVG = \"\";\n\nvar CheckCircleSVG = \"\";\n\nvar ForkSVG = \"\";\n\nvar ExclamationTriangleSVG = \"\";\n\nvar InfoSVG = \"\";\n\nvar PauseSVG = \"\";\n\nvar RemovePauseSVG = \"\\n \\n \\n\\n\";\n\nvar PlaySVG = \"\";\n\nvar ResetSVG = \"\";\n\nvar TachometerSVG = \"\";\n\nvar TimesCircleSVG = \"\";\n\nvar TimesSVG = \"\";\n\nvar ToggleOffSVG = \"\";\n\nvar ToggleOnSVG = \"\";\n\nfunction createIcon(svg) {\n return function Icon(className = '') {\n return `${svg}`;\n };\n}\n\nconst LogIcon = createIcon(LogSVG);\nconst AngleRightIcon = createIcon(AngleRightSVG);\nconst CheckCircleIcon = createIcon(CheckCircleSVG);\nconst RemovePauseIcon = createIcon(RemovePauseSVG);\nconst ForkIcon = createIcon(ForkSVG);\nconst ExclamationTriangleIcon = createIcon(ExclamationTriangleSVG);\nconst InfoIcon = createIcon(InfoSVG);\nconst PauseIcon = createIcon(PauseSVG);\nconst PlayIcon = createIcon(PlaySVG);\nconst ResetIcon = createIcon(ResetSVG);\nconst TachometerIcon = createIcon(TachometerSVG);\nconst TimesCircleIcon = createIcon(TimesCircleSVG);\nconst TimesIcon = createIcon(TimesSVG);\nconst ToggleOffIcon = createIcon(ToggleOffSVG);\nconst ToggleOnIcon = createIcon(ToggleOnSVG);\n\nexport { AngleRightIcon, CheckCircleIcon, ExclamationTriangleIcon, ForkIcon, InfoIcon, LogIcon, PauseIcon, PlayIcon, RemovePauseIcon, ResetIcon, TachometerIcon, TimesCircleIcon, TimesIcon, ToggleOffIcon, ToggleOnIcon };\n","import {\r\n is\r\n} from '../../../util/ElementHelper';\r\n\r\nimport {\r\n ForkIcon\r\n} from '../../../icons';\r\n\r\n\r\nexport default function ExclusiveGatewayHandler(exclusiveGatewaySettings) {\r\n this._exclusiveGatewaySettings = exclusiveGatewaySettings;\r\n}\r\n\r\nExclusiveGatewayHandler.prototype.createContextPads = function(element) {\r\n\r\n const outgoingFlows = element.outgoing.filter(function(outgoing) {\r\n return is(outgoing, 'bpmn:SequenceFlow');\r\n });\r\n\r\n if (outgoingFlows.length < 2) {\r\n return;\r\n }\r\n\r\n const html = `\r\n
    \r\n ${ForkIcon()}\r\n
    \r\n `;\r\n\r\n const action = () => {\r\n this._exclusiveGatewaySettings.setSequenceFlow(element);\r\n };\r\n\r\n return [\r\n {\r\n action,\r\n element,\r\n html\r\n }\r\n ];\r\n};\r\n\r\nExclusiveGatewayHandler.$inject = [\r\n 'exclusiveGatewaySettings'\r\n];","import {\r\n ForkIcon\r\n} from '../../../icons';\r\n\r\nimport { getBusinessObject } from '../../../util/ElementHelper';\r\nimport { isSequenceFlow } from '../../../simulator/util/ModelUtil';\r\n\r\nexport default function InclusiveGatewayHandler(inclusiveGatewaySettings) {\r\n this._inclusiveGatewaySettings = inclusiveGatewaySettings;\r\n}\r\n\r\nInclusiveGatewayHandler.prototype.createContextPads = function(element) {\r\n const outgoingFlows = element.outgoing.filter(isSequenceFlow);\r\n\r\n if (outgoingFlows.length < 2) {\r\n return;\r\n }\r\n\r\n const nonDefaultFlows = outgoingFlows.filter(outgoing => {\r\n const flowBo = getBusinessObject(outgoing),\r\n gatewayBo = getBusinessObject(element);\r\n\r\n return gatewayBo.default !== flowBo;\r\n });\r\n\r\n const html = `\r\n
    \r\n ${ForkIcon()}\r\n
    \r\n `;\r\n\r\n return nonDefaultFlows.map(sequenceFlow => {\r\n const action = () => {\r\n this._inclusiveGatewaySettings.toggleSequenceFlow(element, sequenceFlow);\r\n };\r\n\r\n return {\r\n action,\r\n element: sequenceFlow,\r\n html\r\n };\r\n });\r\n};\r\n\r\nInclusiveGatewayHandler.$inject = [\r\n 'inclusiveGatewaySettings'\r\n];","import {\n PauseIcon,\n RemovePauseIcon\n} from '../../../icons';\n\n\nimport {\n is,\n getBusinessObject\n} from '../../../util/ElementHelper';\n\n\nexport default function PauseHandler(simulator) {\n this._simulator = simulator;\n}\n\nPauseHandler.prototype.createContextPads = function(element) {\n\n if (\n is(element, 'bpmn:ReceiveTask') || (\n is(element, 'bpmn:SubProcess') && getBusinessObject(element).triggeredByEvent\n )\n ) {\n return [];\n }\n\n return [\n this.createPauseContextPad(element)\n ];\n};\n\nPauseHandler.prototype.createPauseContextPad = function(element) {\n\n const contexts = () => this._findSubscriptions({\n element\n });\n\n const wait = this._isPaused(element);\n\n const html = `\n
    \n ${ (wait ? RemovePauseIcon : PauseIcon)('show-hover') }\n ${ PauseIcon('hide-hover') }\n
    \n `;\n\n const action = () => {\n this._togglePaused(element);\n };\n\n return {\n action,\n element,\n hideContexts: contexts,\n html\n };\n};\n\nPauseHandler.prototype._isPaused = function(element) {\n\n const {\n wait\n } = this._simulator.getConfig(element);\n\n return wait;\n};\n\nPauseHandler.prototype._togglePaused = function(element) {\n const wait = !this._isPaused(element);\n\n this._simulator.waitAtElement(element, wait);\n};\n\nPauseHandler.prototype._findSubscriptions = function(options) {\n return this._simulator.findSubscriptions(options);\n};\n\nPauseHandler.$inject = [\n 'simulator'\n];","import {\n PlayIcon\n} from '../../../icons';\n\n\nexport default function TriggerHandler(simulator) {\n this._simulator = simulator;\n}\n\nTriggerHandler.$inject = [\n 'simulator'\n];\n\nTriggerHandler.prototype.createContextPads = function(element) {\n return [\n this.createTriggerContextPad(element)\n ];\n};\n\nTriggerHandler.prototype.createTriggerContextPad = function(element) {\n\n const contexts = () => {\n const subscriptions = this._findSubscriptions({\n element\n });\n\n const sortedSubscriptions = subscriptions.slice().sort((a, b) => {\n return a.event.type === 'none' ? 1 : -1;\n });\n\n return sortedSubscriptions;\n };\n\n const html = `\n
    \n ${PlayIcon()}\n
    \n `;\n\n const action = (subscriptions) => {\n\n const {\n event,\n scope\n } = subscriptions[0];\n\n return this._simulator.trigger({\n event,\n scope\n });\n };\n\n return {\n action,\n element,\n html,\n contexts\n };\n};\n\nTriggerHandler.prototype._findSubscriptions = function(options) {\n return this._simulator.findSubscriptions(options);\n};","import {\r\n is\r\n} from '../../util/ElementHelper';\r\n\r\nimport {\r\n TOGGLE_MODE_EVENT,\r\n RESET_SIMULATION_EVENT,\r\n ELEMENT_CHANGED_EVENT,\r\n SCOPE_FILTER_CHANGED_EVENT\r\n} from '../../util/EventHelper';\r\n\r\nimport {\r\n event as domEvent,\r\n classes as domClasses,\r\n queryAll as domQueryAll,\r\n domify\r\n} from 'min-dom';\r\n\r\nimport ExclusiveGatewayHandler from './handler/ExclusiveGatewayHandler';\r\nimport InclusiveGatewayHandler from './handler/InclusiveGatewayHandler';\r\nimport PauseHandler from './handler/PauseHandler';\r\nimport TriggerHandler from './handler/TriggerHandler';\r\n\r\n\r\nconst LOW_PRIORITY = 500;\r\n\r\nconst OFFSET_TOP = -15;\r\nconst OFFSET_LEFT = -15;\r\n\r\n\r\nexport default function ContextPads(\r\n eventBus, elementRegistry,\r\n overlays, injector,\r\n canvas, scopeFilter) {\r\n\r\n this._elementRegistry = elementRegistry;\r\n this._overlays = overlays;\r\n this._injector = injector;\r\n this._canvas = canvas;\r\n this._scopeFilter = scopeFilter;\r\n\r\n this._overlayCache = new Map();\r\n\r\n this._handlerIdx = 0;\r\n\r\n this._handlers = [];\r\n\r\n this.registerHandler('bpmn:ExclusiveGateway', ExclusiveGatewayHandler);\r\n this.registerHandler('bpmn:InclusiveGateway', InclusiveGatewayHandler);\r\n\r\n this.registerHandler('bpmn:Activity', PauseHandler);\r\n\r\n this.registerHandler('bpmn:Event', TriggerHandler);\r\n this.registerHandler('bpmn:Gateway', TriggerHandler);\r\n this.registerHandler('bpmn:Activity', TriggerHandler);\r\n\r\n eventBus.on(TOGGLE_MODE_EVENT, LOW_PRIORITY, context => {\r\n const active = context.active;\r\n\r\n if (active) {\r\n this.openContextPads();\r\n } else {\r\n this.closeContextPads();\r\n }\r\n });\r\n\r\n eventBus.on(RESET_SIMULATION_EVENT, LOW_PRIORITY, () => {\r\n this.closeContextPads();\r\n this.openContextPads();\r\n });\r\n\r\n eventBus.on(SCOPE_FILTER_CHANGED_EVENT, event => {\r\n\r\n const showElements = domQueryAll(\r\n '.djs-overlay-ts-context-menu [data-scope-ids]',\r\n overlays._overlayRoot\r\n );\r\n\r\n for (const element of showElements) {\r\n\r\n const scopeIds = element.dataset.scopeIds.split(',');\r\n\r\n const shown = scopeIds.some(id => scopeFilter.isShown(id));\r\n\r\n domClasses(element).toggle('hidden', !shown);\r\n }\r\n\r\n const hideElements = domQueryAll(\r\n '.djs-overlay-ts-context-menu [data-hide-scope-ids]',\r\n overlays._overlayRoot\r\n );\r\n\r\n for (const element of hideElements) {\r\n\r\n const scopeIds = element.dataset.hideScopeIds.split(',');\r\n\r\n const shown = scopeIds.some(id => scopeFilter.isShown(id));\r\n\r\n domClasses(element).toggle('hidden', shown);\r\n }\r\n });\r\n\r\n eventBus.on(ELEMENT_CHANGED_EVENT, LOW_PRIORITY, event => {\r\n const {\r\n element\r\n } = event;\r\n\r\n this.updateElementContextPads(element);\r\n });\r\n}\r\n\r\n/**\r\n * Register a handler for an element type.\r\n * An element type can have multiple handlers.\r\n *\r\n * @param {String} type\r\n * @param {Object} handlerCls\r\n */\r\nContextPads.prototype.registerHandler = function(type, handlerCls) {\r\n const handler = this._injector.instantiate(handlerCls);\r\n\r\n handler.hash = String(this._handlerIdx++);\r\n\r\n this._handlers.push({ handler, type });\r\n};\r\n\r\nContextPads.prototype.getHandlers = function(element) {\r\n\r\n return (\r\n this._handlers.filter(\r\n ({ type }) => is(element, type)\r\n ).map(\r\n ({ handler }) => handler\r\n )\r\n );\r\n};\r\n\r\nContextPads.prototype.openContextPads = function(parent) {\r\n\r\n if (!parent) {\r\n parent = this._canvas.getRootElement();\r\n }\r\n\r\n this._elementRegistry.forEach((element) => {\r\n if (isAncestor(parent, element)) {\r\n this.updateElementContextPads(element);\r\n }\r\n });\r\n};\r\n\r\nContextPads.prototype._getOverlays = function(hash) {\r\n return this._overlayCache.get(hash) || [];\r\n};\r\n\r\nContextPads.prototype._addOverlay = function(element, options) {\r\n\r\n const {\r\n handlerHash\r\n } = options;\r\n\r\n if (!handlerHash) {\r\n throw new Error(' required');\r\n }\r\n\r\n const overlayId = this._overlays.add(element, 'bts-context-menu', {\r\n ...options,\r\n position: {\r\n top: OFFSET_TOP,\r\n left: OFFSET_LEFT\r\n },\r\n show: {\r\n minZoom: 0.5\r\n }\r\n });\r\n\r\n const overlay = this._overlays.get(overlayId);\r\n\r\n const overlayCache = this._overlayCache;\r\n\r\n if (!overlayCache.has(handlerHash)) {\r\n overlayCache.set(handlerHash, []);\r\n }\r\n\r\n overlayCache.get(handlerHash).push(overlay);\r\n};\r\n\r\nContextPads.prototype._removeOverlay = function(overlay) {\r\n\r\n const {\r\n id,\r\n handlerHash\r\n } = overlay;\r\n\r\n // remove overlay\r\n this._overlays.remove(id);\r\n\r\n // remove from overlay cache\r\n const overlays = this._overlayCache.get(handlerHash) || [];\r\n\r\n const idx = overlays.indexOf(overlay);\r\n\r\n if (idx !== -1) {\r\n overlays.splice(idx, 1);\r\n }\r\n};\r\n\r\nContextPads.prototype.updateElementContextPads = function(element) {\r\n for (const handler of this.getHandlers(element)) {\r\n this._updateElementContextPads(element, handler);\r\n }\r\n};\r\n\r\nContextPads.prototype._updateElementContextPads = function(element, handler) {\r\n\r\n const contextPads = (handler.createContextPads(element) || []).filter(p => p);\r\n\r\n const handlerHash = `${element.id}------${handler.hash}`;\r\n\r\n const existingOverlays = this._getOverlays(handlerHash);\r\n\r\n const updatedOverlays = [];\r\n\r\n for (const contextPad of contextPads) {\r\n\r\n const {\r\n element,\r\n contexts: _contexts,\r\n hideContexts: _hideContexts,\r\n action: _action,\r\n html: _html\r\n } = contextPad;\r\n\r\n\r\n const hash = `${contextPad.element.id}-------${_html}`;\r\n\r\n let existingOverlay = existingOverlays.find(\r\n o => o.hash === hash\r\n );\r\n\r\n const html = existingOverlay && existingOverlay.html || domify(_html);\r\n\r\n if (_contexts) {\r\n const contexts = _contexts();\r\n\r\n html.dataset.scopeIds = contexts.map(c => c.scope.id).join(',');\r\n\r\n const shownScopes = contexts.filter(c => this._scopeFilter.isShown(c.scope));\r\n\r\n domClasses(html).toggle('hidden', shownScopes.length === 0);\r\n }\r\n\r\n if (_hideContexts) {\r\n const contexts = _hideContexts();\r\n\r\n html.dataset.hideScopeIds = contexts.map(c => c.scope.id).join(',');\r\n\r\n const shownScopes = contexts.filter(c => this._scopeFilter.isShown(c.scope));\r\n\r\n domClasses(html).toggle('hidden', shownScopes.length > 0);\r\n }\r\n\r\n if (existingOverlay) {\r\n updatedOverlays.push(existingOverlay);\r\n\r\n continue;\r\n }\r\n\r\n if (_action) {\r\n\r\n domEvent.bind(html, 'click', event => {\r\n event.preventDefault();\r\n\r\n const contexts = _contexts\r\n ? _contexts().filter(c => this._scopeFilter.isShown(c.scope))\r\n : null;\r\n\r\n _action(contexts);\r\n });\r\n }\r\n\r\n this._addOverlay(element, {\r\n hash,\r\n handlerHash,\r\n html\r\n });\r\n }\r\n\r\n for (const existingOverlay of existingOverlays) {\r\n if (!updatedOverlays.includes(existingOverlay)) {\r\n this._removeOverlay(existingOverlay);\r\n }\r\n }\r\n};\r\n\r\nContextPads.prototype.closeContextPads = function() {\r\n for (const overlays of this._overlayCache.values()) {\r\n\r\n for (const overlay of overlays) {\r\n this._closeOverlay(overlay);\r\n }\r\n }\r\n\r\n this._overlayCache.clear();\r\n};\r\n\r\nContextPads.prototype._closeOverlay = function(overlay) {\r\n this._overlays.remove(overlay.id);\r\n};\r\n\r\nContextPads.$inject = [\r\n 'eventBus',\r\n 'elementRegistry',\r\n 'overlays',\r\n 'injector',\r\n 'canvas',\r\n 'scopeFilter'\r\n];\r\n\r\n\r\n// helpers ///////////////\r\n\r\nexport function isAncestor(ancestor, descendant) {\r\n\r\n do {\r\n if (ancestor === descendant) {\r\n return true;\r\n }\r\n\r\n descendant = descendant.parent;\r\n } while (descendant);\r\n\r\n return false;\r\n}","import ContextPads from './ContextPads';\n\nimport ScopeFilterModule from '../scope-filter';\n\nexport default {\n __depends__: [\n ScopeFilterModule\n ],\n __init__: [\n 'contextPads'\n ],\n contextPads: [ 'type', ContextPads ]\n};","import {\n SCOPE_DESTROYED_EVENT\n} from '../../util/EventHelper';\n\nimport {\n CheckCircleIcon\n} from '../../icons';\n\n\nexport default function SimulationState(\n eventBus,\n simulator,\n elementNotifications) {\n\n eventBus.on(SCOPE_DESTROYED_EVENT, event => {\n const {\n scope\n } = event;\n\n const {\n destroyInitiator,\n element: scopeElement\n } = scope;\n\n if (!scope.completed || !destroyInitiator) {\n return;\n }\n\n const processScopes = [\n 'bpmn:Process',\n 'bpmn:Participant'\n ];\n\n if (!processScopes.includes(scopeElement.type)) {\n return;\n }\n\n elementNotifications.addElementNotification(destroyInitiator.element, {\n type: 'success',\n icon: CheckCircleIcon(),\n text: 'Finished',\n scope\n });\n });\n}\n\nSimulationState.$inject = [\n 'eventBus',\n 'simulator',\n 'elementNotifications'\n];","import {\r\n domify\r\n} from 'min-dom';\r\n\r\nimport {\r\n TOGGLE_MODE_EVENT,\r\n RESET_SIMULATION_EVENT,\r\n SCOPE_CREATE_EVENT\r\n} from '../../util/EventHelper';\r\n\r\nconst OFFSET_TOP = -15;\r\nconst OFFSET_RIGHT = 15;\r\n\r\n\r\nexport default function ElementNotifications(overlays, eventBus) {\r\n this._overlays = overlays;\r\n\r\n eventBus.on([\r\n RESET_SIMULATION_EVENT,\r\n SCOPE_CREATE_EVENT,\r\n TOGGLE_MODE_EVENT\r\n ], () => {\r\n this.clear();\r\n });\r\n}\r\n\r\nElementNotifications.prototype.addElementNotification = function(element, options) {\r\n const position = {\r\n top: OFFSET_TOP,\r\n right: OFFSET_RIGHT\r\n };\r\n\r\n const {\r\n type,\r\n icon,\r\n text,\r\n scope = {}\r\n } = options;\r\n\r\n const colors = scope.colors;\r\n\r\n const colorMarkup = colors\r\n ? `style=\"color: ${colors.auxiliary}; background: ${colors.primary}\"`\r\n : '';\r\n\r\n const html = domify(`\r\n
    \r\n ${ icon || '' }\r\n ${ text }\r\n
    \r\n `);\r\n\r\n this._overlays.add(element, 'bts-element-notification', {\r\n position,\r\n html: html,\r\n show: {\r\n minZoom: 0.5\r\n }\r\n });\r\n};\r\n\r\nElementNotifications.prototype.clear = function() {\r\n this._overlays.remove({ type: 'bts-element-notification' });\r\n};\r\n\r\nElementNotifications.prototype.removeElementNotification = function(element) {\r\n this._overlays.remove({ element: element });\r\n};\r\n\r\nElementNotifications.$inject = [ 'overlays', 'eventBus' ];","import ElementNotifications from './ElementNotifications';\n\nexport default {\n elementNotifications: [ 'type', ElementNotifications ]\n};","import {\n domify\n} from 'min-dom';\n\nimport {\n TOGGLE_MODE_EVENT,\n RESET_SIMULATION_EVENT\n} from '../../util/EventHelper';\n\nimport {\n InfoIcon\n} from '../../icons';\n\n\nconst NOTIFICATION_TIME_TO_LIVE = 2000; // ms\n\nconst INFO_ICON = InfoIcon();\n\n\nexport default function Notifications(eventBus, canvas, scopeFilter) {\n this._eventBus = eventBus;\n this._canvas = canvas;\n this._scopeFilter = scopeFilter;\n\n this._init();\n\n eventBus.on([\n TOGGLE_MODE_EVENT,\n RESET_SIMULATION_EVENT\n ], event => {\n this.clear();\n });\n}\n\nNotifications.prototype._init = function() {\n this.container = domify('
    ');\n\n this._canvas.getContainer().appendChild(this.container);\n};\n\nNotifications.prototype.showNotification = function(options) {\n\n const {\n text,\n type = 'info',\n icon = INFO_ICON,\n scope,\n ttl = NOTIFICATION_TIME_TO_LIVE\n } = options;\n\n if (scope && !this._scopeFilter.isShown(scope)) {\n return;\n }\n\n const iconMarkup = icon.startsWith('<')\n ? icon\n : ``;\n\n const colors = scope && scope.colors;\n\n const colorMarkup = colors ? `style=\"color: ${colors.auxiliary}; background: ${colors.primary}\"` : '';\n\n const notification = domify(`\n
    \n ${iconMarkup}\n ${text}\n ${ scope ? `${scope.id}` : '' }\n
    \n `);\n\n this.container.appendChild(notification);\n\n // prevent more than 5 notifications at once\n while (this.container.children.length > 5) {\n this.container.children[0].remove();\n }\n\n setTimeout(function() {\n notification.remove();\n }, ttl);\n};\n\nNotifications.prototype.clear = function() {\n while (this.container.children.length) {\n this.container.children[0].remove();\n }\n};\n\nNotifications.$inject = [\n 'eventBus',\n 'canvas',\n 'scopeFilter'\n];","import ScopeFilterModule from '../scope-filter';\n\nimport Notifications from './Notifications';\n\nexport default {\n __depends__: [\n ScopeFilterModule\n ],\n notifications: [ 'type', Notifications ]\n};","import SimulationState from './SimulationState';\n\nimport ElementNotificationsModule from '../element-notifications';\nimport NotificationsModule from '../notifications';\n\nexport default {\n __depends__: [\n ElementNotificationsModule,\n NotificationsModule\n ],\n __init__: [\n 'simulationState'\n ],\n simulationState: [ 'type', SimulationState ]\n};","import {\n domify,\n classes as domClasses,\n event as domEvent,\n query as domQuery,\n queryAll as domQueryAll,\n clear as domClear\n} from 'min-dom';\n\nimport {\n TOGGLE_MODE_EVENT,\n SCOPE_CREATE_EVENT,\n SCOPE_CHANGED_EVENT,\n SCOPE_FILTER_CHANGED_EVENT,\n SCOPE_DESTROYED_EVENT,\n RESET_SIMULATION_EVENT,\n} from '../../util/EventHelper';\n\nconst FILL_COLOR = '--token-simulation-silver-base-97';\nconst STROKE_COLOR = '--token-simulation-green-base-44';\n\nconst ID = 'show-scopes';\n\nconst VERY_HIGH_PRIORITY = 3000;\n\n\nexport default function ShowScopes(\n eventBus,\n canvas,\n scopeFilter,\n elementColors,\n simulationStyles) {\n\n this._eventBus = eventBus;\n this._canvas = canvas;\n this._scopeFilter = scopeFilter;\n this._elementColors = elementColors;\n this._simulationStyles = simulationStyles;\n\n this._highlight = null;\n\n this._init();\n\n eventBus.on(TOGGLE_MODE_EVENT, event => {\n const active = event.active;\n\n if (active) {\n domClasses(this._container).remove('hidden');\n } else {\n domClasses(this._container).add('hidden');\n domClear(this._container);\n\n this.unhighlightScope();\n }\n });\n\n eventBus.on(SCOPE_FILTER_CHANGED_EVENT, event => {\n\n const allElements = this.getScopeElements();\n\n for (const element of allElements) {\n const scopeId = element.dataset.scopeId;\n\n domClasses(element).toggle('inactive', !this._scopeFilter.isShown(scopeId));\n }\n });\n\n eventBus.on(SCOPE_CREATE_EVENT, event => {\n this.addScope(event.scope);\n });\n\n eventBus.on(SCOPE_DESTROYED_EVENT, event => {\n this.removeScope(event.scope);\n });\n\n eventBus.on(SCOPE_CHANGED_EVENT, event => {\n this.updateScope(event.scope);\n });\n\n eventBus.on(RESET_SIMULATION_EVENT, () => {\n this.removeAllInstances();\n });\n}\n\nShowScopes.prototype._init = function() {\n this._container = domify('
    ');\n\n this._canvas.getContainer().appendChild(this._container);\n};\n\nShowScopes.prototype.addScope = function(scope) {\n\n const processElements = [\n 'bpmn:Process',\n 'bpmn:SubProcess',\n 'bpmn:Participant'\n ];\n\n const {\n element: scopeElement\n } = scope;\n\n if (!processElements.includes(scopeElement.type)) {\n return;\n }\n\n const colors = scope.colors;\n\n const colorMarkup = colors ? `style=\"color: ${colors.auxiliary}; background: ${colors.primary}\"` : '';\n\n const html = domify(`\n
    \n ${scope.getTokens()}\n
    \n `);\n\n domEvent.bind(html, 'click', () => {\n this._scopeFilter.toggle(scope);\n });\n\n domEvent.bind(html, 'mouseenter', () => {\n this.highlightScope(scopeElement);\n });\n\n domEvent.bind(html, 'mouseleave', () => {\n this.unhighlightScope();\n });\n\n if (!this._scopeFilter.isShown(scope)) {\n domClasses(html).add('inactive');\n }\n\n this._container.appendChild(html);\n};\n\nShowScopes.prototype.getScopeElements = function() {\n return domQueryAll('[data-scope-id]', this._container);\n};\n\nShowScopes.prototype.getScopeElement = function(scope) {\n return domQuery(`[data-scope-id=\"${scope.id}\"]`, this._container);\n};\n\nShowScopes.prototype.updateScope = function(scope) {\n const element = this.getScopeElement(scope);\n\n if (element) {\n element.textContent = scope.getTokens();\n }\n};\n\nShowScopes.prototype.removeScope = function(scope) {\n const element = this.getScopeElement(scope);\n\n if (element) {\n element.remove();\n }\n};\n\nShowScopes.prototype.removeAllInstances = function() {\n this._container.innerHTML = '';\n};\n\nShowScopes.prototype.highlightScope = function(element) {\n\n this.unhighlightScope();\n\n this._highlight = element;\n\n this._elementColors.add(element, ID, this._getHighlightColors(), VERY_HIGH_PRIORITY);\n\n if (!element.parent) {\n domClasses(this._canvas.getContainer()).add('highlight');\n }\n};\n\nShowScopes.prototype.unhighlightScope = function() {\n\n if (!this._highlight) {\n return;\n }\n\n const element = this._highlight;\n\n this._elementColors.remove(element, ID);\n\n if (!element.parent) {\n domClasses(this._canvas.getContainer()).remove('highlight');\n }\n\n this._highlight = null;\n};\n\nShowScopes.prototype._getHighlightColors = function() {\n return {\n fill: this._simulationStyles.get(FILL_COLOR),\n stroke: this._simulationStyles.get(STROKE_COLOR)\n };\n};\n\nShowScopes.$inject = [\n 'eventBus',\n 'canvas',\n 'scopeFilter',\n 'elementColors',\n 'simulationStyles'\n];","export default function SimulationStyles() {\n this._cache = {};\n}\n\nSimulationStyles.$inject = [];\n\n\nSimulationStyles.prototype.get = function(prop) {\n\n const cachedValue = this._cache[prop];\n\n if (cachedValue) {\n return cachedValue;\n }\n\n if (!this._computedStyle) {\n this._computedStyle = this._getComputedStyle();\n }\n\n return this._cache[prop] = this._computedStyle.getPropertyValue(prop).trim();\n};\n\nSimulationStyles.prototype._getComputedStyle = function() {\n\n const get = typeof getComputedStyle === 'function'\n ? getComputedStyle\n : getComputedStyleMock;\n\n const element = typeof document !== 'undefined'\n ? document.documentElement\n : {};\n\n return get(element);\n};\n\n\n// helpers //////////////////\n\nfunction getComputedStyleMock() {\n return {\n getPropertyValue() {\n return '';\n }\n };\n}","import SimulationStyles from './SimulationStyles';\n\nexport default {\n simulationStyles: [ 'type', SimulationStyles ]\n};","import ShowScopes from './ShowScopes';\n\nimport ScopeFilterModule from '../scope-filter';\nimport SimulationStylesModule from '../simulation-styles';\n\nexport default {\n __depends__: [\n ScopeFilterModule,\n SimulationStylesModule\n ],\n __init__: [\n 'showScopes'\n ],\n showScopes: [ 'type', ShowScopes ]\n};","/**\n * @param {string} str\n *\n * @return {string}\n */\nexport function escapeCSS(str) {\n return CSS.escape(str);\n}\n\nvar HTML_ESCAPE_MAP = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n '\\'': '''\n};\n\n/**\n * @param {string} str\n *\n * @return {string}\n */\nexport function escapeHTML(str) {\n str = '' + str;\n\n return str && str.replace(/[&<>\"']/g, function(match) {\n return HTML_ESCAPE_MAP[match];\n });\n}\n","import {\r\n domify,\r\n classes as domClasses,\r\n event as domEvent,\r\n query as domQuery,\r\n queryAll as domQueryAll,\r\n delegate as domDelegate\r\n} from 'min-dom';\r\n\r\nimport {\r\n getBusinessObject,\r\n is,\r\n} from '../../util/ElementHelper';\r\n\r\nimport {\r\n escapeHTML\r\n} from 'diagram-js/lib/util/EscapeUtil';\r\n\r\nimport {\r\n TOGGLE_MODE_EVENT,\r\n RESET_SIMULATION_EVENT,\r\n SCOPE_DESTROYED_EVENT,\r\n SCOPE_CREATE_EVENT,\r\n SCOPE_FILTER_CHANGED_EVENT,\r\n TRACE_EVENT\r\n} from '../../util/EventHelper';\r\n\r\nimport {\r\n LogIcon,\r\n TimesIcon,\r\n TimesCircleIcon,\r\n CheckCircleIcon,\r\n InfoIcon\r\n} from '../../icons';\r\n\r\n\r\nconst ICON_INFO = InfoIcon();\r\n\r\nfunction getElementName(element) {\r\n const name = element && element.businessObject.name;\r\n\r\n return name && escapeHTML(name);\r\n}\r\n\r\nfunction getIconForIntermediateEvent(element, throwOrCatch) {\r\n const eventTypeString = getEventTypeString(element);\r\n if (eventTypeString === 'none') {\r\n return 'bpmn-icon-intermediate-event-none';\r\n }\r\n return `bpmn-icon-intermediate-event-${throwOrCatch}-${eventTypeString}`;\r\n}\r\n\r\nfunction getEventTypeString(element) {\r\n const bo = getBusinessObject(element);\r\n if (bo.get('eventDefinitions').length === 0) {\r\n return 'none';\r\n }\r\n const eventDefinition = bo.eventDefinitions[0];\r\n\r\n if (is(eventDefinition, 'bpmn:MessageEventDefinition')) {\r\n return 'message';\r\n }\r\n if (is(eventDefinition, 'bpmn:TimerEventDefinition')) {\r\n return 'timer';\r\n }\r\n if (is(eventDefinition, 'bpmn:SignalEventDefinition')) {\r\n return 'signal';\r\n }\r\n if (is(eventDefinition, 'bpmn:ErrorEventDefinition')) {\r\n return 'error';\r\n }\r\n if (is(eventDefinition, 'bpmn:EscalationEventDefinition')) {\r\n return 'escalation';\r\n }\r\n if (is(eventDefinition, 'bpmn:CompensateEventDefinition')) {\r\n return 'compensation';\r\n }\r\n if (is(eventDefinition, 'bpmn:ConditionalEventDefinition')) {\r\n return 'condition';\r\n }\r\n if (is(eventDefinition, 'bpmn:LinkEventDefinition')) {\r\n return 'link';\r\n }\r\n if (is(eventDefinition, 'bpmn:CancelEventDefinition')) {\r\n return 'cancel';\r\n }\r\n if (is(eventDefinition, 'bpmn:TerminateEventDefinition')) {\r\n return 'terminate';\r\n }\r\n return 'none';\r\n}\r\n\r\n\r\nexport default function Log(\r\n eventBus, notifications,\r\n tokenSimulationPalette, canvas,\r\n scopeFilter, simulator) {\r\n\r\n this._notifications = notifications;\r\n this._tokenSimulationPalette = tokenSimulationPalette;\r\n this._canvas = canvas;\r\n this._scopeFilter = scopeFilter;\r\n\r\n this._init();\r\n\r\n eventBus.on(SCOPE_FILTER_CHANGED_EVENT, event => {\r\n const allElements = domQueryAll('.bts-entry[data-scope-id]', this._container);\r\n\r\n for (const element of allElements) {\r\n const scopeId = element.dataset.scopeId;\r\n\r\n domClasses(element).toggle('inactive', !this._scopeFilter.isShown(scopeId));\r\n }\r\n });\r\n\r\n eventBus.on(SCOPE_DESTROYED_EVENT, event => {\r\n const {\r\n scope\r\n } = event;\r\n\r\n const {\r\n element: scopeElement\r\n } = scope;\r\n\r\n const completed = scope.completed;\r\n\r\n const processScopes = [\r\n 'bpmn:Process',\r\n 'bpmn:Participant',\r\n 'bpmn:SubProcess'\r\n ];\r\n\r\n if (!processScopes.includes(scopeElement.type)) {\r\n return;\r\n }\r\n\r\n const isSubProcess = is(scopeElement, 'bpmn:SubProcess');\r\n\r\n const text = `${\r\n isSubProcess ? (getElementName(scopeElement) || 'SubProcess') : 'Process'\r\n } ${\r\n completed ? 'finished' : 'canceled'\r\n }`;\r\n\r\n this.log({\r\n text,\r\n icon: completed ? CheckCircleIcon() : TimesCircleIcon(),\r\n scope\r\n });\r\n });\r\n\r\n eventBus.on(SCOPE_CREATE_EVENT, event => {\r\n const {\r\n scope\r\n } = event;\r\n\r\n const {\r\n element: scopeElement\r\n } = scope;\r\n\r\n const processScopes = [\r\n 'bpmn:Process',\r\n 'bpmn:Participant',\r\n 'bpmn:SubProcess'\r\n ];\r\n\r\n if (!processScopes.includes(scopeElement.type)) {\r\n return;\r\n }\r\n\r\n const isSubProcess = is(scopeElement, 'bpmn:SubProcess');\r\n\r\n const text = `${\r\n isSubProcess ? (getElementName(scopeElement) || 'SubProcess') : 'Process'\r\n } started`;\r\n\r\n this.log({\r\n text,\r\n icon: CheckCircleIcon(),\r\n scope\r\n });\r\n });\r\n\r\n eventBus.on(TRACE_EVENT, event => {\r\n\r\n const {\r\n action,\r\n scope: elementScope,\r\n element\r\n } = event;\r\n\r\n if (action !== 'exit') {\r\n return;\r\n }\r\n\r\n const scope = elementScope.parent;\r\n\r\n const elementName = getElementName(element);\r\n\r\n // log tasks ////////////\r\n\r\n if (is(element, 'bpmn:ServiceTask')) {\r\n return this.log({\r\n text: elementName || 'Service Task',\r\n icon: 'bpmn-icon-service',\r\n scope\r\n });\r\n }\r\n\r\n if (is(element, 'bpmn:UserTask')) {\r\n return this.log({\r\n text: elementName || 'User Task',\r\n icon: 'bpmn-icon-user',\r\n scope\r\n });\r\n }\r\n\r\n if (is(element, 'bpmn:CallActivity')) {\r\n return this.log({\r\n text: elementName || 'Call Activity',\r\n icon: 'bpmn-icon-call-activity',\r\n scope\r\n });\r\n }\r\n\r\n if (is(element, 'bpmn:ScriptTask')) {\r\n return this.log({\r\n text: elementName || 'Script Task',\r\n icon: 'bpmn-icon-script',\r\n scope\r\n });\r\n }\r\n\r\n if (is(element, 'bpmn:BusinessRuleTask')) {\r\n return this.log({\r\n text: elementName || 'Business Rule Task',\r\n icon: 'bpmn-icon-business-rule',\r\n scope\r\n });\r\n }\r\n\r\n if (is(element, 'bpmn:ManualTask')) {\r\n return this.log({\r\n text: elementName || 'Manual Task',\r\n icon: 'bpmn-icon-manual-task',\r\n scope\r\n });\r\n }\r\n\r\n if (is(element, 'bpmn:ReceiveTask')) {\r\n return this.log({\r\n text: elementName || 'Receive Task',\r\n icon: 'bpmn-icon-receive',\r\n scope\r\n });\r\n }\r\n\r\n if (is(element, 'bpmn:SendTask')) {\r\n return this.log({\r\n text: elementName || 'Send Task',\r\n icon: 'bpmn-icon-send',\r\n scope\r\n });\r\n }\r\n\r\n if (is(element, 'bpmn:Task')) {\r\n return this.log({\r\n text: elementName || 'Task',\r\n icon: 'bpmn-icon-task',\r\n scope\r\n });\r\n }\r\n\r\n // log gateways ////////////\r\n\r\n if (is(element, 'bpmn:ExclusiveGateway')) {\r\n return this.log({\r\n text: elementName || 'Exclusive Gateway',\r\n icon: 'bpmn-icon-gateway-xor',\r\n scope\r\n });\r\n }\r\n\r\n if (is(element, 'bpmn:ParallelGateway')) {\r\n return this.log({\r\n text: elementName || 'Parallel Gateway',\r\n icon: 'bpmn-icon-gateway-parallel',\r\n scope\r\n });\r\n }\r\n\r\n if (is(element, 'bpmn:InclusiveGateway')) {\r\n return this.log({\r\n text: elementName || 'Inclusive Gateway',\r\n icon: 'bpmn-icon-gateway-or',\r\n scope\r\n });\r\n }\r\n\r\n // log events /////////////\r\n\r\n if (is(element, 'bpmn:StartEvent')) {\r\n return this.log({\r\n text: elementName || 'Start Event',\r\n icon: `bpmn-icon-start-event-${getEventTypeString(element)}`,\r\n scope\r\n });\r\n }\r\n\r\n if (is(element, 'bpmn:IntermediateCatchEvent')) {\r\n return this.log({\r\n text: elementName || 'Intermediate Event',\r\n icon: getIconForIntermediateEvent(element, 'catch'),\r\n scope\r\n });\r\n }\r\n\r\n if (is(element, 'bpmn:IntermediateThrowEvent')) {\r\n return this.log({\r\n text: elementName || 'Intermediate Event',\r\n icon: getIconForIntermediateEvent(element, 'throw'),\r\n scope\r\n });\r\n }\r\n\r\n if (is(element, 'bpmn:BoundaryEvent')) {\r\n return this.log({\r\n text: elementName || 'Boundary Event',\r\n icon: getIconForIntermediateEvent(element, 'catch'),\r\n scope\r\n });\r\n }\r\n\r\n if (is(element, 'bpmn:EndEvent')) {\r\n\r\n // TODO: No trace event for terminate end events is emitted\r\n return this.log({\r\n text: elementName || 'End Event',\r\n icon: `bpmn-icon-end-event-${getEventTypeString(element)}`,\r\n scope\r\n });\r\n }\r\n });\r\n\r\n\r\n eventBus.on([\r\n TOGGLE_MODE_EVENT,\r\n RESET_SIMULATION_EVENT\r\n ], event => {\r\n this.clear();\r\n this.toggle(false);\r\n });\r\n}\r\n\r\nLog.prototype._init = function() {\r\n this._container = domify(`\r\n \r\n `);\r\n\r\n this._placeholder = domQuery('.bts-placeholder', this._container);\r\n\r\n this._content = domQuery('.bts-content', this._container);\r\n\r\n domEvent.bind(this._content, 'mousedown', event => {\r\n event.stopPropagation();\r\n });\r\n\r\n this._close = domQuery('.bts-close', this._container);\r\n\r\n domEvent.bind(this._close, 'click', () => {\r\n this.toggle(false);\r\n });\r\n\r\n this._icon = domQuery('.bts-log-icon', this._container);\r\n\r\n domEvent.bind(this._icon, 'click', () => {\r\n this.toggle();\r\n });\r\n\r\n this._canvas.getContainer().appendChild(this._container);\r\n\r\n this.paletteEntry = domify(`\r\n
    \r\n ${ LogIcon() }\r\n
    \r\n `);\r\n\r\n domEvent.bind(this.paletteEntry, 'click', () => {\r\n this.toggle();\r\n });\r\n\r\n this._tokenSimulationPalette.addEntry(this.paletteEntry, 3);\r\n};\r\n\r\nLog.prototype.isShown = function() {\r\n const container = this._container;\r\n\r\n return !domClasses(container).has('hidden');\r\n};\r\n\r\nLog.prototype.toggle = function(shown = !this.isShown()) {\r\n const container = this._container;\r\n\r\n if (shown) {\r\n domClasses(container).remove('hidden');\r\n } else {\r\n domClasses(container).add('hidden');\r\n }\r\n};\r\n\r\nLog.prototype.log = function(options) {\r\n\r\n const {\r\n text,\r\n type = 'info',\r\n icon = ICON_INFO,\r\n scope\r\n } = options;\r\n\r\n const content = this._content;\r\n\r\n domClasses(this._placeholder).add('hidden');\r\n\r\n if (!this.isShown()) {\r\n this._notifications.showNotification(options);\r\n }\r\n\r\n const iconMarkup = icon.startsWith('<') ? icon : ``;\r\n\r\n const colors = scope && scope.colors;\r\n\r\n const colorMarkup = colors ? `style=\"background: ${colors.primary}; color: ${colors.auxiliary}\"` : '';\r\n\r\n const logEntry = domify(`\r\n

    \r\n ${iconMarkup}\r\n ${text}\r\n ${\r\n scope\r\n ? `${scope.id}`\r\n : ''\r\n }\r\n

    \r\n `);\r\n\r\n domDelegate.bind(logEntry, '.bts-scope[data-scope-id]', 'click', event => {\r\n this._scopeFilter.toggle(scope);\r\n });\r\n\r\n // determine if the container should scroll,\r\n // because it is currently scrolled to the very bottom\r\n const shouldScroll = Math.abs(content.clientHeight + content.scrollTop - content.scrollHeight) < 2;\r\n\r\n content.appendChild(logEntry);\r\n\r\n if (shouldScroll) {\r\n content.scrollTop = content.scrollHeight;\r\n }\r\n};\r\n\r\nLog.prototype.clear = function() {\r\n while (this._content.firstChild) {\r\n this._content.removeChild(this._content.firstChild);\r\n }\r\n\r\n this._placeholder = domify('

    No Entries

    ');\r\n\r\n this._content.appendChild(this._placeholder);\r\n};\r\n\r\nLog.$inject = [\r\n 'eventBus',\r\n 'notifications',\r\n 'tokenSimulationPalette',\r\n 'canvas',\r\n 'scopeFilter',\r\n 'simulator'\r\n];","import Log from './Log';\n\nimport ScopeFilterModule from '../scope-filter';\nimport NotificationsModule from '../notifications';\n\nexport default {\n __depends__: [\n NotificationsModule,\n ScopeFilterModule\n ],\n __init__: [\n 'log'\n ],\n log: [ 'type', Log ]\n};","import {\r\n classes as domClasses\r\n} from 'min-dom';\r\n\r\nimport {\r\n is\r\n} from '../../util/ElementHelper';\r\n\r\nimport {\r\n TOGGLE_MODE_EVENT\r\n} from '../../util/EventHelper';\r\n\r\nimport {\r\n ExclamationTriangleIcon\r\n} from '../../icons';\r\n\r\n\r\nconst UNSUPPORTED_ELEMENTS = [\r\n 'bpmn:ComplexGateway'\r\n];\r\n\r\nfunction isLabel(element) {\r\n return element.labelTarget;\r\n}\r\n\r\n\r\nexport default function ElementSupport(\r\n eventBus, elementRegistry, canvas,\r\n notifications, elementNotifications) {\r\n\r\n this._eventBus = eventBus;\r\n this._elementRegistry = elementRegistry;\r\n this._elementNotifications = elementNotifications;\r\n this._notifications = notifications;\r\n\r\n this._canvasParent = canvas.getContainer().parentNode;\r\n\r\n eventBus.on(TOGGLE_MODE_EVENT, event => {\r\n\r\n if (event.active) {\r\n this.enable();\r\n } else {\r\n this.clear();\r\n }\r\n });\r\n}\r\n\r\nElementSupport.prototype.getUnsupportedElements = function() {\r\n return this._unsupportedElements;\r\n};\r\n\r\nElementSupport.prototype.enable = function() {\r\n\r\n const unsupportedElements = [];\r\n\r\n this._elementRegistry.forEach(element => {\r\n\r\n if (isLabel(element)) {\r\n return;\r\n }\r\n\r\n if (!is(element, UNSUPPORTED_ELEMENTS)) {\r\n return;\r\n }\r\n\r\n this.showWarning(element);\r\n\r\n unsupportedElements.push(element);\r\n });\r\n\r\n if (unsupportedElements.length) {\r\n\r\n this._notifications.showNotification({\r\n text: 'Found unsupported elements',\r\n icon: ExclamationTriangleIcon(),\r\n type: 'warning',\r\n ttl: 5000\r\n });\r\n }\r\n\r\n this._unsupportedElements = unsupportedElements;\r\n};\r\n\r\nElementSupport.prototype.clear = function() {\r\n domClasses(this._canvasParent).remove('warning');\r\n};\r\n\r\nElementSupport.prototype.showWarning = function(element) {\r\n this._elementNotifications.addElementNotification(element, {\r\n type: 'warning',\r\n icon: ExclamationTriangleIcon(),\r\n text: 'Not supported'\r\n });\r\n};\r\n\r\nElementSupport.$inject = [\r\n 'eventBus',\r\n 'elementRegistry',\r\n 'canvas',\r\n 'notifications',\r\n 'elementNotifications'\r\n];","import ElementSupport from './ElementSupport';\nimport ElementNotificationsModule from '../element-notifications';\nimport NotificationsModule from '../notifications';\n\nexport default {\n __depends__: [\n ElementNotificationsModule,\n NotificationsModule\n ],\n __init__: [ 'elementSupport' ],\n elementSupport: [ 'type', ElementSupport ]\n};\n","import {\r\n domify,\r\n classes as domClasses,\r\n event as domEvent\r\n} from 'min-dom';\r\n\r\nimport {\r\n TOGGLE_MODE_EVENT,\r\n PLAY_SIMULATION_EVENT,\r\n PAUSE_SIMULATION_EVENT,\r\n RESET_SIMULATION_EVENT,\r\n SCOPE_CREATE_EVENT,\r\n TRACE_EVENT\r\n} from '../../util/EventHelper';\r\n\r\nimport {\r\n PlayIcon,\r\n PauseIcon\r\n} from '../../icons';\r\n\r\n\r\nconst PLAY_MARKUP = PlayIcon();\r\nconst PAUSE_MARKUP = PauseIcon();\r\n\r\nconst HIGH_PRIORITY = 1500;\r\n\r\n\r\nexport default function PauseSimulation(\r\n eventBus, tokenSimulationPalette,\r\n notifications, canvas) {\r\n\r\n this._eventBus = eventBus;\r\n this._tokenSimulationPalette = tokenSimulationPalette;\r\n this._notifications = notifications;\r\n\r\n this.canvasParent = canvas.getContainer().parentNode;\r\n\r\n this.isActive = false;\r\n this.isPaused = true;\r\n\r\n this._init();\r\n\r\n // unpause on simulation start\r\n eventBus.on(SCOPE_CREATE_EVENT, HIGH_PRIORITY, event => {\r\n this.activate();\r\n this.unpause();\r\n });\r\n\r\n eventBus.on([\r\n RESET_SIMULATION_EVENT,\r\n TOGGLE_MODE_EVENT\r\n ], () => {\r\n this.deactivate();\r\n this.pause();\r\n });\r\n\r\n eventBus.on(TRACE_EVENT, HIGH_PRIORITY, event => {\r\n this.unpause();\r\n });\r\n}\r\n\r\nPauseSimulation.prototype._init = function() {\r\n this.paletteEntry = domify(`\r\n
    \r\n ${ PLAY_MARKUP }\r\n
    \r\n `);\r\n\r\n domEvent.bind(this.paletteEntry, 'click', this.toggle.bind(this));\r\n\r\n this._tokenSimulationPalette.addEntry(this.paletteEntry, 1);\r\n};\r\n\r\nPauseSimulation.prototype.toggle = function() {\r\n if (this.isPaused) {\r\n this.unpause();\r\n } else {\r\n this.pause();\r\n }\r\n};\r\n\r\nPauseSimulation.prototype.pause = function() {\r\n if (!this.isActive) {\r\n return;\r\n }\r\n\r\n domClasses(this.paletteEntry).remove('active');\r\n domClasses(this.canvasParent).add('paused');\r\n\r\n this.paletteEntry.innerHTML = PLAY_MARKUP;\r\n\r\n this._eventBus.fire(PAUSE_SIMULATION_EVENT);\r\n\r\n this._notifications.showNotification({\r\n text: 'Pause Simulation'\r\n });\r\n\r\n this.isPaused = true;\r\n};\r\n\r\nPauseSimulation.prototype.unpause = function() {\r\n\r\n if (!this.isActive || !this.isPaused) {\r\n return;\r\n }\r\n\r\n domClasses(this.paletteEntry).add('active');\r\n domClasses(this.canvasParent).remove('paused');\r\n\r\n this.paletteEntry.innerHTML = PAUSE_MARKUP;\r\n\r\n this._eventBus.fire(PLAY_SIMULATION_EVENT);\r\n\r\n this._notifications.showNotification({\r\n text: 'Play Simulation'\r\n });\r\n\r\n this.isPaused = false;\r\n};\r\n\r\nPauseSimulation.prototype.activate = function() {\r\n this.isActive = true;\r\n\r\n domClasses(this.paletteEntry).remove('disabled');\r\n};\r\n\r\nPauseSimulation.prototype.deactivate = function() {\r\n this.isActive = false;\r\n\r\n domClasses(this.paletteEntry).remove('active');\r\n domClasses(this.paletteEntry).add('disabled');\r\n};\r\n\r\nPauseSimulation.$inject = [\r\n 'eventBus',\r\n 'tokenSimulationPalette',\r\n 'notifications',\r\n 'canvas'\r\n];","import PauseSimulation from './PauseSimulation';\n\nimport NotificationsModule from '../notifications';\n\nexport default {\n __depends__: [\n NotificationsModule\n ],\n __init__: [\n 'pauseSimulation'\n ],\n pauseSimulation: [ 'type', PauseSimulation ]\n};","import {\r\n domify,\r\n classes as domClasses,\r\n event as domEvent\r\n} from 'min-dom';\r\n\r\nimport {\r\n TOGGLE_MODE_EVENT,\r\n RESET_SIMULATION_EVENT,\r\n SCOPE_CREATE_EVENT\r\n} from '../../util/EventHelper';\r\n\r\nimport {\r\n ResetIcon\r\n} from '../../icons';\r\n\r\n\r\nexport default function ResetSimulation(eventBus, tokenSimulationPalette, notifications) {\r\n this._eventBus = eventBus;\r\n this._tokenSimulationPalette = tokenSimulationPalette;\r\n this._notifications = notifications;\r\n\r\n this._init();\r\n\r\n eventBus.on(SCOPE_CREATE_EVENT, () => {\r\n domClasses(this._paletteEntry).remove('disabled');\r\n });\r\n\r\n eventBus.on(TOGGLE_MODE_EVENT, (event) => {\r\n const active = this._active = event.active;\r\n\r\n if (!active) {\r\n this.resetSimulation();\r\n }\r\n });\r\n}\r\n\r\nResetSimulation.prototype._init = function() {\r\n this._paletteEntry = domify(`\r\n
    \r\n ${ ResetIcon() }\r\n
    \r\n `);\r\n\r\n domEvent.bind(this._paletteEntry, 'click', () => {\r\n this.resetSimulation();\r\n\r\n this._notifications.showNotification({\r\n text: 'Reset Simulation',\r\n type: 'info'\r\n });\r\n });\r\n\r\n this._tokenSimulationPalette.addEntry(this._paletteEntry, 2);\r\n};\r\n\r\nResetSimulation.prototype.resetSimulation = function() {\r\n domClasses(this._paletteEntry).add('disabled');\r\n\r\n this._eventBus.fire(RESET_SIMULATION_EVENT);\r\n};\r\n\r\nResetSimulation.$inject = [\r\n 'eventBus',\r\n 'tokenSimulationPalette',\r\n 'notifications'\r\n];","import ResetSimulation from './ResetSimulation';\n\nimport NotificationsModule from '../notifications';\n\nexport default {\n __depends__: [\n NotificationsModule\n ],\n __init__: [\n 'resetSimulation'\n ],\n resetSimulation: [ 'type', ResetSimulation ]\n};","import {\r\n domify,\r\n queryAll as domQueryAll,\r\n classes as domClasses\r\n} from 'min-dom';\r\n\r\nimport {\r\n is\r\n} from '../../util/ElementHelper';\r\n\r\nimport {\r\n ELEMENT_CHANGED_EVENT,\r\n SCOPE_FILTER_CHANGED_EVENT\r\n} from '../../util/EventHelper';\r\n\r\n\r\nconst OFFSET_BOTTOM = 10;\r\nconst OFFSET_LEFT = -15;\r\n\r\nconst LOW_PRIORITY = 500;\r\n\r\nconst DEFAULT_PRIMARY_COLOR = '--token-simulation-green-base-44';\r\nconst DEFAULT_AUXILIARY_COLOR = '--token-simulation-white';\r\n\r\n\r\nexport default function TokenCount(\r\n eventBus, overlays,\r\n simulator, scopeFilter,\r\n simulationStyles) {\r\n\r\n this._overlays = overlays;\r\n this._scopeFilter = scopeFilter;\r\n this._simulator = simulator;\r\n this._simulationStyles = simulationStyles;\r\n\r\n this.overlayIds = {};\r\n\r\n eventBus.on(ELEMENT_CHANGED_EVENT, LOW_PRIORITY, event => {\r\n\r\n const {\r\n element\r\n } = event;\r\n\r\n this.removeTokenCounts(element);\r\n this.addTokenCounts(element);\r\n });\r\n\r\n eventBus.on(SCOPE_FILTER_CHANGED_EVENT, event => {\r\n\r\n const allElements = domQueryAll('.bts-token-count[data-scope-id]', overlays._overlayRoot);\r\n\r\n for (const element of allElements) {\r\n const scopeId = element.dataset.scopeId;\r\n\r\n domClasses(element).toggle('inactive', !this._scopeFilter.isShown(scopeId));\r\n }\r\n });\r\n}\r\n\r\nTokenCount.prototype.addTokenCounts = function(element) {\r\n\r\n if (is(element, 'bpmn:MessageFlow') || is(element, 'bpmn:SequenceFlow')) {\r\n return;\r\n }\r\n\r\n const scopes = this._simulator.findScopes(scope => {\r\n return (\r\n !scope.destroyed &&\r\n scope.children.some(c => !c.destroyed && c.element === element && !c.children.length)\r\n );\r\n });\r\n\r\n this.addTokenCount(element, scopes);\r\n};\r\n\r\nTokenCount.prototype.addTokenCount = function(element, scopes) {\r\n if (!scopes.length) {\r\n return;\r\n }\r\n\r\n const tokenMarkup = scopes.map(scope => {\r\n return this._getTokenHTML(element, scope);\r\n }).join('');\r\n\r\n const html = domify(`\r\n
    \r\n ${tokenMarkup}\r\n
    \r\n `);\r\n\r\n const position = { bottom: OFFSET_BOTTOM, left: OFFSET_LEFT };\r\n\r\n const overlayId = this._overlays.add(element, 'bts-token-count', {\r\n position: position,\r\n html: html,\r\n show: {\r\n minZoom: 0.5\r\n }\r\n });\r\n\r\n this.overlayIds[element.id] = overlayId;\r\n};\r\n\r\nTokenCount.prototype.removeTokenCounts = function(element) {\r\n this.removeTokenCount(element);\r\n};\r\n\r\nTokenCount.prototype.removeTokenCount = function(element) {\r\n const overlayId = this.overlayIds[element.id];\r\n\r\n if (!overlayId) {\r\n return;\r\n }\r\n\r\n this._overlays.remove(overlayId);\r\n\r\n delete this.overlayIds[element.id];\r\n};\r\n\r\nTokenCount.prototype._getTokenHTML = function(element, scope) {\r\n\r\n const colors = scope.colors || this._getDefaultColors();\r\n\r\n return `\r\n
    \r\n ${scope.getTokensByElement(element)}\r\n
    \r\n `;\r\n};\r\n\r\nTokenCount.prototype._getDefaultColors = function() {\r\n return {\r\n primary: this._simulationStyles.get(DEFAULT_PRIMARY_COLOR),\r\n auxiliary: this._simuationStyles.get(DEFAULT_AUXILIARY_COLOR)\r\n };\r\n};\r\n\r\nTokenCount.$inject = [\r\n 'eventBus',\r\n 'overlays',\r\n 'simulator',\r\n 'scopeFilter',\r\n 'simulationStyles'\r\n];","import TokenCount from './TokenCount';\n\nimport ScopeFilterModule from '../scope-filter';\nimport SimulationStylesModule from '../simulation-styles';\n\nexport default {\n __depends__: [\n ScopeFilterModule,\n SimulationStylesModule\n ],\n __init__: [\n 'tokenCount'\n ],\n tokenCount: [ 'type', TokenCount ]\n};","import {\n domify,\n classes as domClasses,\n delegate as domDelegate,\n queryAll as domQueryAll\n} from 'min-dom';\n\nimport {\n TOGGLE_MODE_EVENT,\n ANIMATION_SPEED_CHANGED_EVENT\n} from '../../util/EventHelper';\n\nconst SPEEDS = [\n [ 'Slow', 0.5 ],\n [ 'Normal', 1 ],\n [ 'Fast', 2 ]\n];\n\nimport {\n TachometerIcon,\n AngleRightIcon\n} from '../../icons';\n\n\nexport default function SetAnimationSpeed(canvas, animation, eventBus) {\n this._canvas = canvas;\n this._animation = animation;\n this._eventBus = eventBus;\n\n this._init(animation.getAnimationSpeed());\n\n eventBus.on(TOGGLE_MODE_EVENT, event => {\n const active = event.active;\n\n if (!active) {\n domClasses(this._container).add('hidden');\n } else {\n domClasses(this._container).remove('hidden');\n }\n });\n\n eventBus.on(ANIMATION_SPEED_CHANGED_EVENT, event => {\n this.setActive(event.speed);\n });\n}\n\nSetAnimationSpeed.prototype.getToggleSpeed = function(element) {\n return parseFloat(element.dataset.speed);\n};\n\nSetAnimationSpeed.prototype._init = function(animationSpeed) {\n this._container = domify(`\n
    \n ${ TachometerIcon() }\n
    \n ${\n SPEEDS.map(([ label, speed ], idx) => `\n \n `).join('')\n }\n
    \n
    \n `);\n\n domDelegate.bind(this._container, '[data-speed]', 'click', event => {\n\n const toggle = event.delegateTarget;\n\n const speed = this.getToggleSpeed(toggle);\n\n this._animation.setAnimationSpeed(speed);\n });\n\n this._canvas.getContainer().appendChild(this._container);\n};\n\nSetAnimationSpeed.prototype.setActive = function(speed) {\n domQueryAll('[data-speed]', this._container).forEach(toggle => {\n\n const active = this.getToggleSpeed(toggle) === speed;\n\n domClasses(toggle)[active ? 'add' : 'remove']('active');\n });\n};\n\nSetAnimationSpeed.$inject = [\n 'canvas',\n 'animation',\n 'eventBus'\n];\n","import SetAnimationSpeed from './SetAnimationSpeed';\n\nexport default {\n __init__: [\n 'setAnimationSpeed'\n ],\n setAnimationSpeed: [ 'type', SetAnimationSpeed ]\n};","import {\r\n is\r\n} from '../../util/ElementHelper';\r\n\r\nimport {\r\n TOGGLE_MODE_EVENT\r\n} from '../../util/EventHelper';\r\n\r\n\r\nconst SELECTED_COLOR = '--token-simulation-grey-darken-30';\r\nconst NOT_SELECTED_COLOR = '--token-simulation-grey-lighten-56';\r\n\r\nfunction getNext(gateway, sequenceFlow) {\r\n var outgoing = gateway.outgoing.filter(isSequenceFlow);\r\n\r\n var index = outgoing.indexOf(sequenceFlow || gateway.sequenceFlow);\r\n\r\n if (outgoing[index + 1]) {\r\n return outgoing[index + 1];\r\n } else {\r\n return outgoing[0];\r\n }\r\n}\r\n\r\nfunction isSequenceFlow(connection) {\r\n return is(connection, 'bpmn:SequenceFlow');\r\n}\r\n\r\nconst ID = 'exclusive-gateway-settings';\r\n\r\nconst HIGH_PRIORITY = 2000;\r\n\r\n\r\nexport default function ExclusiveGatewaySettings(\r\n eventBus, elementRegistry,\r\n elementColors, simulator, simulationStyles) {\r\n\r\n this._elementRegistry = elementRegistry;\r\n this._elementColors = elementColors;\r\n this._simulator = simulator;\r\n this._simulationStyles = simulationStyles;\r\n\r\n eventBus.on(TOGGLE_MODE_EVENT, event => {\r\n if (event.active) {\r\n this.setSequenceFlowsDefault();\r\n } else {\r\n this.resetSequenceFlows();\r\n }\r\n });\r\n}\r\n\r\nExclusiveGatewaySettings.prototype.setSequenceFlowsDefault = function() {\r\n const exclusiveGateways = this._elementRegistry.filter(element => {\r\n return is(element, 'bpmn:ExclusiveGateway');\r\n });\r\n\r\n for (const gateway of exclusiveGateways) {\r\n this.setSequenceFlow(gateway);\r\n }\r\n};\r\n\r\nExclusiveGatewaySettings.prototype.resetSequenceFlows = function() {\r\n\r\n const exclusiveGateways = this._elementRegistry.filter(element => {\r\n return is(element, 'bpmn:ExclusiveGateway');\r\n });\r\n\r\n exclusiveGateways.forEach(exclusiveGateway => {\r\n if (exclusiveGateway.outgoing.filter(isSequenceFlow).length) {\r\n this.resetSequenceFlow(exclusiveGateway);\r\n }\r\n });\r\n};\r\n\r\nExclusiveGatewaySettings.prototype.resetSequenceFlow = function(gateway) {\r\n this._simulator.setConfig(gateway, { activeOutgoing: undefined });\r\n};\r\n\r\nExclusiveGatewaySettings.prototype.setSequenceFlow = function(gateway) {\r\n\r\n const outgoing = gateway.outgoing.filter(isSequenceFlow);\r\n\r\n // not forking\r\n if (outgoing.length < 2) {\r\n return;\r\n }\r\n\r\n const {\r\n activeOutgoing\r\n } = this._simulator.getConfig(gateway);\r\n\r\n let newActiveOutgoing;\r\n\r\n if (activeOutgoing) {\r\n\r\n // set next sequence flow\r\n newActiveOutgoing = getNext(gateway, activeOutgoing);\r\n } else {\r\n\r\n // set first sequence flow\r\n newActiveOutgoing = outgoing[ 0 ];\r\n }\r\n\r\n this._simulator.setConfig(gateway, { activeOutgoing: newActiveOutgoing });\r\n\r\n // set colors\r\n gateway.outgoing.forEach(outgoing => {\r\n\r\n const style = outgoing === newActiveOutgoing ? SELECTED_COLOR : NOT_SELECTED_COLOR;\r\n const stroke = this._simulationStyles.get(style);\r\n\r\n this._elementColors.add(outgoing, ID, {\r\n stroke\r\n }, HIGH_PRIORITY);\r\n });\r\n};\r\n\r\nExclusiveGatewaySettings.$inject = [\r\n 'eventBus',\r\n 'elementRegistry',\r\n 'elementColors',\r\n 'simulator',\r\n 'simulationStyles'\r\n];","import {\n getDi,\n isAny\n} from 'bpmn-js/lib/util/ModelUtil';\n\nimport {\n TOGGLE_MODE_EVENT\n} from '../../util/EventHelper';\n\nconst VERY_HIGH_PRIORITY = 50000;\n\n/**\n * @typedef Colors\n * @prop {string} fill\n * @prop {string} stroke\n */\n\n/**\n * @typedef CustomColors\n * @prop {string} fill\n * @prop {string} stroke\n * @prop {number} priority\n */\n\nexport default function ElementColors(elementRegistry, eventBus, graphicsFactory) {\n this._elementRegistry = elementRegistry;\n this._eventBus = eventBus;\n this._graphicsFactory = graphicsFactory;\n\n this._originalColors = {};\n this._customColors = {};\n\n eventBus.on(TOGGLE_MODE_EVENT, VERY_HIGH_PRIORITY, event => {\n const active = event.active;\n\n if (active) {\n this._saveOriginalColors();\n } else {\n this._applyOriginalColors();\n\n this._originalColors = {};\n this._customColors = {};\n }\n });\n\n eventBus.on('saveXML.start', VERY_HIGH_PRIORITY, () => {\n this._applyOriginalColors();\n\n eventBus.once('saveXML.done', () => this._applyCustomColors());\n });\n}\n\nElementColors.$inject = [\n 'elementRegistry',\n 'eventBus',\n 'graphicsFactory'\n];\n\n/**\n * Add colors to an element. Element will be redrawn with highest priority\n * colors.\n *\n * @param {Object} element\n * @param {string} id\n * @param {Colors} colors\n * @param {number} [priority=1000]\n */\nElementColors.prototype.add = function(element, id, colors, priority = 1000) {\n let elementColors = this._customColors[ element.id ];\n\n if (!elementColors) {\n elementColors = this._customColors[ element.id ] = {};\n }\n\n elementColors[ id ] = {\n ...colors,\n priority\n };\n\n this._applyHighestPriorityColor(element);\n};\n\n\n/**\n * Remove colors from an element. Element will be redrawn with highest priority\n * colors.\n *\n * @param {Object} element\n * @param {string} id\n */\nElementColors.prototype.remove = function(element, id) {\n const elementColors = this._customColors[ element.id ];\n\n if (elementColors) {\n delete elementColors[ id ];\n\n if (!Object.keys(elementColors)) {\n delete this._customColors[ element.id ];\n }\n }\n\n this._applyHighestPriorityColor(element);\n};\n\nElementColors.prototype._get = function(element) {\n const di = getDi(element);\n\n if (!di) {\n return undefined;\n }\n\n // reading in accordance with bpmn-js@8.7+,\n // BPMN-in-Color specification\n if (isLabel(element)) {\n return {\n stroke: di.label && di.label.get('color')\n };\n } else if (isAny(di, [ 'bpmndi:BPMNEdge', 'bpmndi:BPMNShape' ])) {\n return {\n fill: di.get('background-color'),\n stroke: di.get('border-color')\n };\n }\n};\n\nElementColors.prototype._set = function(element, colors = {}) {\n const {\n fill,\n stroke\n } = colors;\n\n const di = getDi(element);\n\n if (!di) {\n return;\n }\n\n // writing in accordance with bpmn-js@8.7+,\n // BPMN-in-Color specification\n if (isLabel(element)) {\n di.label && di.label.set('color', stroke);\n } else if (isAny(di, [ 'bpmndi:BPMNEdge', 'bpmndi:BPMNShape' ])) {\n di.set('background-color', fill);\n di.set('border-color', stroke);\n }\n\n this._forceRedraw(element);\n};\n\nElementColors.prototype._saveOriginalColors = function() {\n this._originalColors = {};\n\n this._elementRegistry.forEach(element => {\n this._originalColors[ element.id ] = this._get(element);\n });\n};\n\nElementColors.prototype._applyOriginalColors = function() {\n this._elementRegistry.forEach(element => {\n const colors = this._originalColors[ element.id ];\n\n if (colors) {\n this._set(element, colors);\n }\n });\n};\n\nElementColors.prototype._applyCustomColors = function() {\n this._elementRegistry.forEach(element => {\n const elementColors = this._customColors[ element.id ];\n\n if (elementColors) {\n this._set(element, getColorsWithHighestPriority(elementColors));\n }\n });\n};\n\nElementColors.prototype._applyHighestPriorityColor = function(element) {\n const elementColors = this._customColors[ element.id ];\n\n if (!elementColors) {\n this._set(element, this._originalColors[ element.id ]);\n\n return;\n }\n\n this._set(element, getColorsWithHighestPriority(elementColors));\n};\n\nElementColors.prototype._forceRedraw = function(element) {\n const gfx = this._elementRegistry.getGraphics(element);\n\n const type = element.waypoints ? 'connection' : 'shape';\n\n this._graphicsFactory.update(type, element, gfx);\n};\n\n\n// helpers /////////////////\n\nfunction isLabel(element) {\n return 'labelTarget' in element;\n}\n\n/**\n * Get colors with highest priority.\n *\n * @param {Map|undefined} colors\n *\n * @returns {Colors|undefined}\n */\nfunction getColorsWithHighestPriority(colors = {}) {\n const colorsWithHighestPriority = Object.values(colors).reduce((colorsWithHighestPriority, colors) => {\n const { priority = 1000 } = colors;\n\n if (!colorsWithHighestPriority || priority > colorsWithHighestPriority.priority) {\n return colors;\n }\n\n return colorsWithHighestPriority;\n }, undefined);\n\n if (colorsWithHighestPriority) {\n const { priority, ...fillAndStroke } = colorsWithHighestPriority;\n\n return fillAndStroke;\n }\n}","import ElementColors from './ElementColors';\n\nexport default {\n elementColors: [ 'type', ElementColors ]\n};","import ExclusiveGatewaySettings from './ExclusiveGatewaySettings';\nimport ElementColorsModule from '../element-colors';\nimport SimulationStylesModule from '../simulation-styles';\n\nexport default {\n __depends__: [\n ElementColorsModule,\n SimulationStylesModule\n ],\n exclusiveGatewaySettings: [ 'type', ExclusiveGatewaySettings ]\n};","import {\n TOGGLE_MODE_EVENT\n} from '../../util/EventHelper';\n\nconst ID = 'neutral-element-colors';\n\nexport default function NeutralElementColors(\n eventBus, elementRegistry, elementColors) {\n\n this._elementRegistry = elementRegistry;\n this._elementColors = elementColors;\n\n eventBus.on(TOGGLE_MODE_EVENT, event => {\n const { active } = event;\n\n if (active) {\n this._setNeutralColors();\n }\n });\n}\n\nNeutralElementColors.prototype._setNeutralColors = function() {\n this._elementRegistry.forEach(element => {\n this._elementColors.add(element, ID, {\n stroke: '#212121',\n fill: '#fff'\n });\n });\n};\n\nNeutralElementColors.$inject = [\n 'eventBus',\n 'elementRegistry',\n 'elementColors'\n];","import NeutralElementColors from './NeutralElementColors';\nimport ElementColorsModule from '../element-colors';\n\nexport default {\n __depends__: [ ElementColorsModule ],\n __init__: [\n 'neutralElementColors'\n ],\n neutralElementColors: [ 'type', NeutralElementColors ]\n};","import {\n TOGGLE_MODE_EVENT\n} from '../../util/EventHelper';\n\n\nconst SELECTED_COLOR = '--token-simulation-grey-darken-30';\nconst NOT_SELECTED_COLOR = '--token-simulation-grey-lighten-56';\n\nimport {\n getBusinessObject,\n is,\n isSequenceFlow\n} from '../../simulator/util/ModelUtil';\n\nconst COLOR_ID = 'inclusive-gateway-settings';\n\n\nexport default function InclusiveGatewaySettings(\n eventBus, elementRegistry,\n elementColors, simulator, simulationStyles) {\n\n this._elementRegistry = elementRegistry;\n this._elementColors = elementColors;\n this._simulator = simulator;\n this._simulationStyles = simulationStyles;\n\n eventBus.on(TOGGLE_MODE_EVENT, event => {\n if (event.active) {\n this.setDefaults();\n } else {\n this.reset();\n }\n });\n}\n\nInclusiveGatewaySettings.prototype.setDefaults = function() {\n const inclusiveGateways = this._elementRegistry.filter(element => {\n return is(element, 'bpmn:InclusiveGateway');\n });\n\n inclusiveGateways.forEach(inclusiveGateway => {\n if (inclusiveGateway.outgoing.filter(isSequenceFlow).length > 1) {\n this._setGatewayDefaults(inclusiveGateway);\n }\n });\n};\n\nInclusiveGatewaySettings.prototype.reset = function() {\n const inclusiveGateways = this._elementRegistry.filter(element => {\n return is(element, 'bpmn:InclusiveGateway');\n });\n\n inclusiveGateways.forEach(inclusiveGateway => {\n if (inclusiveGateway.outgoing.filter(isSequenceFlow).length > 1) {\n this._resetGateway(inclusiveGateway);\n }\n });\n};\n\nInclusiveGatewaySettings.prototype.toggleSequenceFlow = function(gateway, sequenceFlow) {\n const activeOutgoing = this._getActiveOutgoing(gateway),\n defaultFlow = getDefaultFlow(gateway),\n nonDefaultFlows = getNonDefaultFlows(gateway);\n\n let newActiveOutgoing;\n if (activeOutgoing.includes(sequenceFlow)) {\n newActiveOutgoing = without(activeOutgoing, sequenceFlow);\n } else {\n newActiveOutgoing = without(activeOutgoing, defaultFlow).concat(sequenceFlow);\n }\n\n // make sure at least one flow is active\n if (!newActiveOutgoing.length) {\n\n // default flow if available\n if (defaultFlow) {\n newActiveOutgoing = [ defaultFlow ];\n } else {\n\n // or another flow which is not the one toggled\n newActiveOutgoing = [ nonDefaultFlows.find(flow => flow !== sequenceFlow) ];\n }\n }\n\n this._setActiveOutgoing(gateway, newActiveOutgoing);\n};\n\nInclusiveGatewaySettings.prototype._getActiveOutgoing = function(gateway) {\n const {\n activeOutgoing\n } = this._simulator.getConfig(gateway);\n\n return activeOutgoing;\n};\n\nInclusiveGatewaySettings.prototype._setActiveOutgoing = function(gateway, activeOutgoing) {\n this._simulator.setConfig(gateway, { activeOutgoing });\n\n const sequenceFlows = gateway.outgoing.filter(isSequenceFlow);\n\n // set colors\n sequenceFlows.forEach(outgoing => {\n\n const style = (!activeOutgoing || activeOutgoing.includes(outgoing)) ?\n SELECTED_COLOR : NOT_SELECTED_COLOR;\n const stroke = this._simulationStyles.get(style);\n\n this._elementColors.add(outgoing, COLOR_ID, {\n stroke\n });\n });\n};\n\nInclusiveGatewaySettings.prototype._setGatewayDefaults = function(gateway) {\n const sequenceFlows = gateway.outgoing.filter(isSequenceFlow);\n\n const defaultFlow = getDefaultFlow(gateway);\n const nonDefaultFlows = without(sequenceFlows, defaultFlow);\n\n this._setActiveOutgoing(gateway, nonDefaultFlows);\n};\n\nInclusiveGatewaySettings.prototype._resetGateway = function(gateway) {\n this._setActiveOutgoing(gateway, undefined);\n};\n\nInclusiveGatewaySettings.$inject = [\n 'eventBus',\n 'elementRegistry',\n 'elementColors',\n 'simulator',\n 'simulationStyles'\n];\n\nfunction getDefaultFlow(gateway) {\n const defaultFlow = getBusinessObject(gateway).default;\n\n if (!defaultFlow) {\n return;\n }\n\n return gateway.outgoing.find(flow => {\n const flowBo = getBusinessObject(flow);\n\n return flowBo === defaultFlow;\n });\n}\n\nfunction getNonDefaultFlows(gateway) {\n const defaultFlow = getDefaultFlow(gateway);\n\n return gateway.outgoing.filter(flow => {\n const flowBo = getBusinessObject(flow);\n\n return flowBo !== defaultFlow;\n });\n}\n\nfunction without(array, element) {\n return array.filter(arrayElement => arrayElement !== element);\n}\n","import InclusiveGatewaySettings from './InclusiveGatewaySettings';\nimport ElementColorsModule from '../element-colors';\nimport SimulationStylesModule from '../simulation-styles';\n\nexport default {\n __depends__: [\n ElementColorsModule,\n SimulationStylesModule\n ],\n inclusiveGatewaySettings: [ 'type', InclusiveGatewaySettings ]\n};","import {\r\n domify,\r\n classes as domClasses\r\n} from 'min-dom';\r\n\r\nimport {\r\n TOGGLE_MODE_EVENT\r\n} from '../../util/EventHelper';\r\n\r\n\r\nexport default function Palette(eventBus, canvas) {\r\n var self = this;\r\n\r\n this._canvas = canvas;\r\n\r\n this.entries = [];\r\n\r\n this._init();\r\n\r\n eventBus.on(TOGGLE_MODE_EVENT, function(context) {\r\n var active = context.active;\r\n\r\n if (active) {\r\n domClasses(self.container).remove('hidden');\r\n } else {\r\n domClasses(self.container).add('hidden');\r\n }\r\n });\r\n}\r\n\r\nPalette.prototype._init = function() {\r\n this.container = domify('
    ');\r\n\r\n this._canvas.getContainer().appendChild(this.container);\r\n};\r\n\r\nPalette.prototype.addEntry = function(entry, index) {\r\n var childIndex = 0;\r\n\r\n this.entries.forEach(function(entry) {\r\n if (index >= entry.index) {\r\n childIndex++;\r\n }\r\n });\r\n\r\n this.container.insertBefore(entry, this.container.childNodes[childIndex]);\r\n\r\n this.entries.push({\r\n entry: entry,\r\n index: index\r\n });\r\n};\r\n\r\nPalette.$inject = [ 'eventBus', 'canvas' ];","import Palette from './Palette';\n\nexport default {\n __init__: [\n 'tokenSimulationPalette'\n ],\n tokenSimulationPalette: [ 'type', Palette ]\n};","import SimulatorModule from './simulator';\nimport AnimationModule from './animation';\nimport ColoredScopesModule from './features/colored-scopes';\nimport ContextPadsModule from './features/context-pads';\nimport SimulationStateModule from './features/simulation-state';\nimport ShowScopesModule from './features/show-scopes';\nimport LogModule from './features/log';\nimport ElementSupportModule from './features/element-support';\nimport PauseSimulationModule from './features/pause-simulation';\nimport ResetSimulationModule from './features/reset-simulation';\nimport TokenCountModule from './features/token-count';\nimport SetAnimationSpeedModule from './features/set-animation-speed';\n\nimport ExclusiveGatewaySettingsModule from './features/exclusive-gateway-settings';\nimport NeutralElementColors from './features/neutral-element-colors';\nimport InclusiveGatewaySettingsModule from './features/inclusive-gateway-settings';\nimport TokenSimulationPaletteModule from './features/palette';\n\nexport default {\n __depends__: [\n SimulatorModule,\n AnimationModule,\n ColoredScopesModule,\n ContextPadsModule,\n SimulationStateModule,\n ShowScopesModule,\n LogModule,\n ElementSupportModule,\n PauseSimulationModule,\n ResetSimulationModule,\n TokenCountModule,\n SetAnimationSpeedModule,\n ExclusiveGatewaySettingsModule,\n NeutralElementColors,\n InclusiveGatewaySettingsModule,\n TokenSimulationPaletteModule\n ]\n};","import {\r\n TOGGLE_MODE_EVENT\r\n} from '../../util/EventHelper';\r\n\r\nconst HIGH_PRIORITY = 10001;\r\n\r\n\r\nexport default function DisableModeling(\r\n eventBus,\r\n contextPad,\r\n dragging,\r\n directEditing,\r\n editorActions,\r\n modeling,\r\n palette) {\r\n\r\n let modelingDisabled = false;\r\n\r\n eventBus.on(TOGGLE_MODE_EVENT, HIGH_PRIORITY, event => {\r\n\r\n modelingDisabled = event.active;\r\n\r\n if (modelingDisabled) {\r\n directEditing.cancel();\r\n dragging.cancel();\r\n }\r\n\r\n palette._update();\r\n });\r\n\r\n function intercept(obj, fnName, cb) {\r\n const fn = obj[fnName];\r\n obj[fnName] = function() {\r\n return cb.call(this, fn, arguments);\r\n };\r\n }\r\n\r\n function ignoreIfModelingDisabled(obj, fnName) {\r\n intercept(obj, fnName, function(fn, args) {\r\n if (modelingDisabled) {\r\n return;\r\n }\r\n\r\n return fn.apply(this, args);\r\n });\r\n }\r\n\r\n function throwIfModelingDisabled(obj, fnName) {\r\n intercept(obj, fnName, function(fn, args) {\r\n if (modelingDisabled) {\r\n throw new Error('model is read-only');\r\n }\r\n\r\n return fn.apply(this, args);\r\n });\r\n }\r\n\r\n ignoreIfModelingDisabled(dragging, 'init');\r\n\r\n ignoreIfModelingDisabled(directEditing, 'activate');\r\n\r\n ignoreIfModelingDisabled(dragging, 'init');\r\n\r\n ignoreIfModelingDisabled(directEditing, 'activate');\r\n\r\n throwIfModelingDisabled(modeling, 'moveShape');\r\n throwIfModelingDisabled(modeling, 'updateAttachment');\r\n throwIfModelingDisabled(modeling, 'moveElements');\r\n throwIfModelingDisabled(modeling, 'moveConnection');\r\n throwIfModelingDisabled(modeling, 'layoutConnection');\r\n throwIfModelingDisabled(modeling, 'createConnection');\r\n throwIfModelingDisabled(modeling, 'createShape');\r\n throwIfModelingDisabled(modeling, 'createLabel');\r\n throwIfModelingDisabled(modeling, 'appendShape');\r\n throwIfModelingDisabled(modeling, 'removeElements');\r\n throwIfModelingDisabled(modeling, 'distributeElements');\r\n throwIfModelingDisabled(modeling, 'removeShape');\r\n throwIfModelingDisabled(modeling, 'removeConnection');\r\n throwIfModelingDisabled(modeling, 'replaceShape');\r\n throwIfModelingDisabled(modeling, 'pasteElements');\r\n throwIfModelingDisabled(modeling, 'alignElements');\r\n throwIfModelingDisabled(modeling, 'resizeShape');\r\n throwIfModelingDisabled(modeling, 'createSpace');\r\n throwIfModelingDisabled(modeling, 'updateWaypoints');\r\n throwIfModelingDisabled(modeling, 'reconnectStart');\r\n throwIfModelingDisabled(modeling, 'reconnectEnd');\r\n\r\n intercept(editorActions, 'trigger', function(fn, args) {\r\n const action = args[0];\r\n\r\n if (modelingDisabled && isAnyAction([\r\n 'undo',\r\n 'redo',\r\n 'copy',\r\n 'paste',\r\n 'removeSelection',\r\n 'spaceTool',\r\n 'lassoTool',\r\n 'globalConnectTool',\r\n 'distributeElements',\r\n 'alignElements',\r\n 'directEditing',\r\n ], action)) {\r\n return;\r\n }\r\n\r\n return fn.apply(this, args);\r\n });\r\n}\r\n\r\nDisableModeling.$inject = [\r\n 'eventBus',\r\n 'contextPad',\r\n 'dragging',\r\n 'directEditing',\r\n 'editorActions',\r\n 'modeling',\r\n 'palette'\r\n];\r\n\r\n\r\n// helpers //////////\r\n\r\nfunction isAnyAction(actions, action) {\r\n return actions.indexOf(action) > -1;\r\n}","import DisableModeling from './DisableModeling';\n\nexport default {\n __init__: [\n 'disableModeling'\n ],\n disableModeling: [ 'type', DisableModeling ]\n};","import {\r\n domify,\r\n classes as domClasses,\r\n event as domEvent,\r\n query as domQuery\r\n} from 'min-dom';\r\n\r\nimport {\r\n TOGGLE_MODE_EVENT\r\n} from '../../../util/EventHelper';\r\n\r\nimport {\r\n ToggleOffIcon,\r\n ToggleOnIcon\r\n} from '../../../icons';\r\n\r\n\r\nexport default function ToggleMode(\r\n eventBus, canvas, selection,\r\n contextPad) {\r\n\r\n this._eventBus = eventBus;\r\n this._canvas = canvas;\r\n this._selection = selection;\r\n this._contextPad = contextPad;\r\n\r\n this._active = false;\r\n\r\n eventBus.on('import.parse.start', () => {\r\n\r\n if (this._active) {\r\n this.toggleMode(false);\r\n\r\n eventBus.once('import.done', () => {\r\n this.toggleMode(true);\r\n });\r\n }\r\n });\r\n\r\n eventBus.on('diagram.init', () => {\r\n this._canvasParent = this._canvas.getContainer().parentNode;\r\n this._palette = domQuery('.djs-palette', this._canvas.getContainer());\r\n\r\n this._init();\r\n });\r\n}\r\n\r\nToggleMode.prototype._init = function() {\r\n this._container = domify(`\r\n
    \r\n Token Simulation ${ ToggleOffIcon() }\r\n
    \r\n `);\r\n\r\n domEvent.bind(this._container, 'click', () => this.toggleMode());\r\n\r\n this._canvas.getContainer().appendChild(this._container);\r\n};\r\n\r\nToggleMode.prototype.toggleMode = function(active = !this._active) {\r\n\r\n if (active === this._active) {\r\n return;\r\n }\r\n\r\n if (active) {\r\n this._container.innerHTML = `Token Simulation ${ ToggleOnIcon() }`;\r\n\r\n domClasses(this._canvasParent).add('simulation');\r\n domClasses(this._palette).add('hidden');\r\n } else {\r\n this._container.innerHTML = `Token Simulation ${ ToggleOffIcon() }`;\r\n\r\n domClasses(this._canvasParent).remove('simulation');\r\n domClasses(this._palette).remove('hidden');\r\n\r\n const elements = this._selection.get();\r\n\r\n if (elements.length === 1) {\r\n this._contextPad.open(elements[0]);\r\n }\r\n }\r\n\r\n this._eventBus.fire(TOGGLE_MODE_EVENT, {\r\n active\r\n });\r\n\r\n this._active = active;\r\n};\r\n\r\nToggleMode.$inject = [\r\n 'eventBus',\r\n 'canvas',\r\n 'selection',\r\n 'contextPad'\r\n];","import ToggleMode from './ToggleMode';\n\nexport default {\n __init__: [\n 'toggleMode'\n ],\n toggleMode: [ 'type', ToggleMode ]\n};","import { TOGGLE_MODE_EVENT } from '../../util/EventHelper';\n\nexport default function EditorActions(\n eventBus,\n toggleMode,\n pauseSimulation,\n resetSimulation,\n editorActions,\n injector\n) {\n var active = false;\n\n editorActions.register({\n toggleTokenSimulation: function() {\n toggleMode.toggleMode();\n }\n });\n\n editorActions.register({\n togglePauseTokenSimulation: function() {\n active && pauseSimulation.toggle();\n }\n });\n\n editorActions.register({\n resetTokenSimulation: function() {\n active && resetSimulation.resetSimulation();\n }\n });\n\n const log = injector.get('log', false);\n\n log && editorActions.register({\n toggleTokenSimulationLog: function() {\n log.toggle();\n }\n });\n\n eventBus.on(TOGGLE_MODE_EVENT, (event) => {\n active = event.active;\n });\n}\n\nEditorActions.$inject = [\n 'eventBus',\n 'toggleMode',\n 'pauseSimulation',\n 'resetSimulation',\n 'editorActions',\n 'injector'\n];","import EditorActions from './EditorActions';\n\nexport default {\n __init__: [\n 'tokenSimulationEditorActions'\n ],\n tokenSimulationEditorActions: [ 'type', EditorActions ]\n};","import {\n TOGGLE_MODE_EVENT\n} from '../../util/EventHelper';\n\nconst VERY_HIGH_PRIORITY = 10000;\n\n\nexport default function KeyboardBindings(eventBus, injector) {\n\n var editorActions = injector.get('editorActions', false),\n keyboard = injector.get('keyboard', false);\n\n if (!keyboard || !editorActions) {\n return;\n }\n\n\n var isActive = false;\n\n\n function handleKeyEvent(keyEvent) {\n if (isKey([ 't', 'T' ], keyEvent)) {\n editorActions.trigger('toggleTokenSimulation');\n\n return true;\n }\n\n if (!isActive) {\n return;\n }\n\n if (isKey([ 'l', 'L' ], keyEvent)) {\n editorActions.trigger('toggleTokenSimulationLog');\n\n return true;\n }\n\n // see https://developer.mozilla.org/de/docs/Web/API/KeyboardEvent/key/Key_Values#Whitespace_keys\n if (isKey([ ' ', 'Spacebar' ], keyEvent)) {\n editorActions.trigger('togglePauseTokenSimulation');\n\n return true;\n }\n\n if (isKey([ 'r', 'R' ], keyEvent)) {\n editorActions.trigger('resetTokenSimulation');\n\n return true;\n }\n }\n\n\n eventBus.on('keyboard.init', function() {\n\n keyboard.addListener(VERY_HIGH_PRIORITY, function(event) {\n var keyEvent = event.keyEvent;\n\n handleKeyEvent(keyEvent);\n });\n\n });\n\n eventBus.on(TOGGLE_MODE_EVENT, function(context) {\n var active = context.active;\n\n if (active) {\n isActive = true;\n } else {\n isActive = false;\n }\n });\n\n}\n\nKeyboardBindings.$inject = [ 'eventBus', 'injector' ];\n\n\n// helpers //////////\n\nfunction isKey(keys, event) {\n return keys.indexOf(event.key) > -1;\n}","import KeyboardBindings from './KeyboardBindings';\n\nexport default {\n __init__: [\n 'tokenSimulationKeyboardBindings'\n ],\n tokenSimulationKeyboardBindings: [ 'type', KeyboardBindings ]\n};","import BaseModule from './base';\nimport DisableModelingModule from './features/disable-modeling';\n\nimport ToggleModeModule from './features/toggle-mode/modeler';\nimport TokenSimulationEditorActionsModule from './features/editor-actions';\nimport TokenSimulationKeyboardBindingsModule from './features/keyboard-bindings';\n\nexport default {\n __depends__: [\n BaseModule,\n DisableModelingModule,\n ToggleModeModule,\n TokenSimulationEditorActionsModule,\n TokenSimulationKeyboardBindingsModule\n ]\n};","const CLASS_PATTERN = /^class[ {]/;\n\n\n/**\n * @param {function} fn\n *\n * @return {boolean}\n */\nfunction isClass(fn) {\n return CLASS_PATTERN.test(fn.toString());\n}\n\n/**\n * @param {any} obj\n *\n * @return {boolean}\n */\nfunction isArray(obj) {\n return Array.isArray(obj);\n}\n\n/**\n * @param {any} obj\n * @param {string} prop\n *\n * @return {boolean}\n */\nfunction hasOwnProp(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\n/**\n * @typedef {import('./index.js').InjectAnnotated } InjectAnnotated\n */\n\n/**\n * @template T\n *\n * @params {[...string[], T] | ...string[], T} args\n *\n * @return {T & InjectAnnotated}\n */\nfunction annotate(...args) {\n\n if (args.length === 1 && isArray(args[0])) {\n args = args[0];\n }\n\n args = [ ...args ];\n\n const fn = args.pop();\n\n fn.$inject = args;\n\n return fn;\n}\n\n\n// Current limitations:\n// - can't put into \"function arg\" comments\n// function /* (no parenthesis like this) */ (){}\n// function abc( /* xx (no parenthesis like this) */ a, b) {}\n//\n// Just put the comment before function or inside:\n// /* (((this is fine))) */ function(a, b) {}\n// function abc(a) { /* (((this is fine))) */}\n//\n// - can't reliably auto-annotate constructor; we'll match the\n// first constructor(...) pattern found which may be the one\n// of a nested class, too.\n\nconst CONSTRUCTOR_ARGS = /constructor\\s*[^(]*\\(\\s*([^)]*)\\)/m;\nconst FN_ARGS = /^(?:async\\s+)?(?:function\\s*[^(]*)?(?:\\(\\s*([^)]*)\\)|(\\w+))/m;\nconst FN_ARG = /\\/\\*([^*]*)\\*\\//m;\n\n/**\n * @param {unknown} fn\n *\n * @return {string[]}\n */\nfunction parseAnnotations(fn) {\n\n if (typeof fn !== 'function') {\n throw new Error(`Cannot annotate \"${fn}\". Expected a function!`);\n }\n\n const match = fn.toString().match(isClass(fn) ? CONSTRUCTOR_ARGS : FN_ARGS);\n\n // may parse class without constructor\n if (!match) {\n return [];\n }\n\n const args = match[1] || match[2];\n\n return args && args.split(',').map(arg => {\n const argMatch = arg.match(FN_ARG);\n return (argMatch && argMatch[1] || arg).trim();\n }) || [];\n}\n\n/**\n * @typedef { import('./index.js').ModuleDeclaration } ModuleDeclaration\n * @typedef { import('./index.js').ModuleDefinition } ModuleDefinition\n * @typedef { import('./index.js').InjectorContext } InjectorContext\n *\n * @typedef { import('./index.js').TypedDeclaration } TypedDeclaration\n */\n\n/**\n * Create a new injector with the given modules.\n *\n * @param {ModuleDefinition[]} modules\n * @param {InjectorContext} [_parent]\n */\nfunction Injector(modules, _parent) {\n\n const parent = _parent || /** @type InjectorContext */ ({\n get: function(name, strict) {\n currentlyResolving.push(name);\n\n if (strict === false) {\n return null;\n } else {\n throw error(`No provider for \"${ name }\"!`);\n }\n }\n });\n\n const currentlyResolving = [];\n const providers = this._providers = Object.create(parent._providers || null);\n const instances = this._instances = Object.create(null);\n\n const self = instances.injector = this;\n\n const error = function(msg) {\n const stack = currentlyResolving.join(' -> ');\n currentlyResolving.length = 0;\n return new Error(stack ? `${ msg } (Resolving: ${ stack })` : msg);\n };\n\n /**\n * Return a named service.\n *\n * @param {string} name\n * @param {boolean} [strict=true] if false, resolve missing services to null\n *\n * @return {any}\n */\n function get(name, strict) {\n if (!providers[name] && name.includes('.')) {\n\n const parts = name.split('.');\n let pivot = get(/** @type { string } */ (parts.shift()));\n\n while (parts.length) {\n pivot = pivot[/** @type { string } */ (parts.shift())];\n }\n\n return pivot;\n }\n\n if (hasOwnProp(instances, name)) {\n return instances[name];\n }\n\n if (hasOwnProp(providers, name)) {\n if (currentlyResolving.indexOf(name) !== -1) {\n currentlyResolving.push(name);\n throw error('Cannot resolve circular dependency!');\n }\n\n currentlyResolving.push(name);\n instances[name] = providers[name][0](providers[name][1]);\n currentlyResolving.pop();\n\n return instances[name];\n }\n\n return parent.get(name, strict);\n }\n\n function fnDef(fn, locals) {\n\n if (typeof locals === 'undefined') {\n locals = {};\n }\n\n if (typeof fn !== 'function') {\n if (isArray(fn)) {\n fn = annotate(fn.slice());\n } else {\n throw error(`Cannot invoke \"${ fn }\". Expected a function!`);\n }\n }\n\n /**\n * @type {string[]}\n */\n const inject = fn.$inject || parseAnnotations(fn);\n const dependencies = inject.map(dep => {\n if (hasOwnProp(locals, dep)) {\n return locals[dep];\n } else {\n return get(dep);\n }\n });\n\n return {\n fn: fn,\n dependencies\n };\n }\n\n /**\n * Instantiate the given type, injecting dependencies.\n *\n * @template T\n *\n * @param { Function | [...string[], Function ]} type\n *\n * @return T\n */\n function instantiate(type) {\n const {\n fn,\n dependencies\n } = fnDef(type);\n\n // instantiate var args constructor\n const Constructor = Function.prototype.bind.call(fn, null, ...dependencies);\n\n return new Constructor();\n }\n\n /**\n * Invoke the given function, injecting dependencies. Return the result.\n *\n * @template T\n *\n * @param { Function | [...string[], Function ]} func\n * @param { Object } [context]\n * @param { Object } [locals]\n *\n * @return {T} invocation result\n */\n function invoke(func, context, locals) {\n const {\n fn,\n dependencies\n } = fnDef(func, locals);\n\n return fn.apply(context, dependencies);\n }\n\n /**\n * @param {Injector} childInjector\n *\n * @return {Function}\n */\n function createPrivateInjectorFactory(childInjector) {\n return annotate(key => childInjector.get(key));\n }\n\n /**\n * @param {ModuleDefinition[]} modules\n * @param {string[]} [forceNewInstances]\n *\n * @return {Injector}\n */\n function createChild(modules, forceNewInstances) {\n if (forceNewInstances && forceNewInstances.length) {\n const fromParentModule = Object.create(null);\n const matchedScopes = Object.create(null);\n\n const privateInjectorsCache = [];\n const privateChildInjectors = [];\n const privateChildFactories = [];\n\n let provider;\n let cacheIdx;\n let privateChildInjector;\n let privateChildInjectorFactory;\n\n for (let name in providers) {\n provider = providers[name];\n\n if (forceNewInstances.indexOf(name) !== -1) {\n if (provider[2] === 'private') {\n cacheIdx = privateInjectorsCache.indexOf(provider[3]);\n if (cacheIdx === -1) {\n privateChildInjector = provider[3].createChild([], forceNewInstances);\n privateChildInjectorFactory = createPrivateInjectorFactory(privateChildInjector);\n privateInjectorsCache.push(provider[3]);\n privateChildInjectors.push(privateChildInjector);\n privateChildFactories.push(privateChildInjectorFactory);\n fromParentModule[name] = [ privateChildInjectorFactory, name, 'private', privateChildInjector ];\n } else {\n fromParentModule[name] = [ privateChildFactories[cacheIdx], name, 'private', privateChildInjectors[cacheIdx] ];\n }\n } else {\n fromParentModule[name] = [ provider[2], provider[1] ];\n }\n matchedScopes[name] = true;\n }\n\n if ((provider[2] === 'factory' || provider[2] === 'type') && provider[1].$scope) {\n /* jshint -W083 */\n forceNewInstances.forEach(scope => {\n if (provider[1].$scope.indexOf(scope) !== -1) {\n fromParentModule[name] = [ provider[2], provider[1] ];\n matchedScopes[scope] = true;\n }\n });\n }\n }\n\n forceNewInstances.forEach(scope => {\n if (!matchedScopes[scope]) {\n throw new Error('No provider for \"' + scope + '\". Cannot use provider from the parent!');\n }\n });\n\n modules.unshift(fromParentModule);\n }\n\n return new Injector(modules, self);\n }\n\n const factoryMap = {\n factory: invoke,\n type: instantiate,\n value: function(value) {\n return value;\n }\n };\n\n /**\n * @param {ModuleDefinition} moduleDefinition\n * @param {Injector} injector\n */\n function createInitializer(moduleDefinition, injector) {\n\n const initializers = moduleDefinition.__init__ || [];\n\n return function() {\n initializers.forEach(initializer => {\n\n // eagerly resolve component (fn or string)\n if (typeof initializer === 'string') {\n injector.get(initializer);\n } else {\n injector.invoke(initializer);\n }\n });\n };\n }\n\n /**\n * @param {ModuleDefinition} moduleDefinition\n */\n function loadModule(moduleDefinition) {\n\n const moduleExports = moduleDefinition.__exports__;\n\n // private module\n if (moduleExports) {\n const nestedModules = moduleDefinition.__modules__;\n\n const clonedModule = Object.keys(moduleDefinition).reduce((clonedModule, key) => {\n\n if (key !== '__exports__' && key !== '__modules__' && key !== '__init__' && key !== '__depends__') {\n clonedModule[key] = moduleDefinition[key];\n }\n\n return clonedModule;\n }, Object.create(null));\n\n const childModules = (nestedModules || []).concat(clonedModule);\n\n const privateInjector = createChild(childModules);\n const getFromPrivateInjector = annotate(function(key) {\n return privateInjector.get(key);\n });\n\n moduleExports.forEach(function(key) {\n providers[key] = [ getFromPrivateInjector, key, 'private', privateInjector ];\n });\n\n // ensure child injector initializes\n const initializers = (moduleDefinition.__init__ || []).slice();\n\n initializers.unshift(function() {\n privateInjector.init();\n });\n\n moduleDefinition = Object.assign({}, moduleDefinition, {\n __init__: initializers\n });\n\n return createInitializer(moduleDefinition, privateInjector);\n }\n\n // normal module\n Object.keys(moduleDefinition).forEach(function(key) {\n\n if (key === '__init__' || key === '__depends__') {\n return;\n }\n\n const typeDeclaration = /** @type { TypedDeclaration } */ (\n moduleDefinition[key]\n );\n\n if (typeDeclaration[2] === 'private') {\n providers[key] = typeDeclaration;\n return;\n }\n\n const type = typeDeclaration[0];\n const value = typeDeclaration[1];\n\n providers[key] = [ factoryMap[type], arrayUnwrap(type, value), type ];\n });\n\n return createInitializer(moduleDefinition, self);\n }\n\n /**\n * @param {ModuleDefinition[]} moduleDefinitions\n * @param {ModuleDefinition} moduleDefinition\n *\n * @return {ModuleDefinition[]}\n */\n function resolveDependencies(moduleDefinitions, moduleDefinition) {\n\n if (moduleDefinitions.indexOf(moduleDefinition) !== -1) {\n return moduleDefinitions;\n }\n\n moduleDefinitions = (moduleDefinition.__depends__ || []).reduce(resolveDependencies, moduleDefinitions);\n\n if (moduleDefinitions.indexOf(moduleDefinition) !== -1) {\n return moduleDefinitions;\n }\n\n return moduleDefinitions.concat(moduleDefinition);\n }\n\n /**\n * @param {ModuleDefinition[]} moduleDefinitions\n *\n * @return { () => void } initializerFn\n */\n function bootstrap(moduleDefinitions) {\n\n const initializers = moduleDefinitions\n .reduce(resolveDependencies, [])\n .map(loadModule);\n\n let initialized = false;\n\n return function() {\n\n if (initialized) {\n return;\n }\n\n initialized = true;\n\n initializers.forEach(initializer => initializer());\n };\n }\n\n // public API\n this.get = get;\n this.invoke = invoke;\n this.instantiate = instantiate;\n this.createChild = createChild;\n\n // setup\n this.init = bootstrap(modules);\n}\n\n\n// helpers ///////////////\n\nfunction arrayUnwrap(type, value) {\n if (type !== 'value' && isArray(value)) {\n value = annotate(value.slice());\n }\n\n return value;\n}\n\nexport { Injector, annotate, parseAnnotations };\n//# sourceMappingURL=index.js.map\n","var DEFAULT_RENDER_PRIORITY = 1000;\n\n/**\n * @typedef {import('../core/Types').ElementLike} Element\n * @typedef {import('../core/Types').ConnectionLike} Connection\n * @typedef {import('../core/Types').ShapeLike} Shape\n *\n * @typedef {import('../core/EventBus').default} EventBus\n */\n\n/**\n * The base implementation of shape and connection renderers.\n *\n * @param {EventBus} eventBus\n * @param {number} [renderPriority=1000]\n */\nexport default function BaseRenderer(eventBus, renderPriority) {\n var self = this;\n\n renderPriority = renderPriority || DEFAULT_RENDER_PRIORITY;\n\n eventBus.on([ 'render.shape', 'render.connection' ], renderPriority, function(evt, context) {\n var type = evt.type,\n element = context.element,\n visuals = context.gfx,\n attrs = context.attrs;\n\n if (self.canRender(element)) {\n if (type === 'render.shape') {\n return self.drawShape(visuals, element, attrs);\n } else {\n return self.drawConnection(visuals, element, attrs);\n }\n }\n });\n\n eventBus.on([ 'render.getShapePath', 'render.getConnectionPath' ], renderPriority, function(evt, element) {\n if (self.canRender(element)) {\n if (evt.type === 'render.getShapePath') {\n return self.getShapePath(element);\n } else {\n return self.getConnectionPath(element);\n }\n }\n });\n}\n\n/**\n * Checks whether an element can be rendered.\n *\n * @param {Element} element The element to be rendered.\n *\n * @return {boolean} Whether the element can be rendered.\n */\nBaseRenderer.prototype.canRender = function(element) {};\n\n/**\n * Draws a shape.\n *\n * @param {SVGElement} visuals The SVG element to draw the shape into.\n * @param {Shape} shape The shape to be drawn.\n *\n * @return {SVGElement} The SVG element of the shape drawn.\n */\nBaseRenderer.prototype.drawShape = function(visuals, shape) {};\n\n/**\n * Draws a connection.\n *\n * @param {SVGElement} visuals The SVG element to draw the connection into.\n * @param {Connection} connection The connection to be drawn.\n *\n * @return {SVGElement} The SVG element of the connection drawn.\n */\nBaseRenderer.prototype.drawConnection = function(visuals, connection) {};\n\n/**\n * Gets the SVG path of the graphical representation of a shape.\n *\n * @param {Shape} shape The shape.\n *\n * @return {string} The SVG path of the shape.\n */\nBaseRenderer.prototype.getShapePath = function(shape) {};\n\n/**\n * Gets the SVG path of the graphical representation of a connection.\n *\n * @param {Connection} connection The connection.\n *\n * @return {string} The SVG path of the connection.\n */\nBaseRenderer.prototype.getConnectionPath = function(connection) {};\n","import {\n isNumber\n} from 'min-dash';\n\nimport {\n attr as svgAttr,\n create as svgCreate\n} from 'tiny-svg';\n\n\n/**\n * @typedef {(string|number)[]} Component\n *\n * @typedef {import('../util/Types').Point} Point\n */\n\n/**\n * @param {Component[] | Component[][]} elements\n *\n * @return {string}\n */\nexport function componentsToPath(elements) {\n return elements.flat().join(',').replace(/,?([A-z]),?/g, '$1');\n}\n\n/**\n * @param {Point[]} points\n *\n * @return {string}\n */\nexport function toSVGPoints(points) {\n var result = '';\n\n for (var i = 0, p; (p = points[i]); i++) {\n result += p.x + ',' + p.y + ' ';\n }\n\n return result;\n}\n\n/**\n * @param {Point} point\n *\n * @return {Component[]}\n */\nfunction move(point) {\n return [ 'M', point.x, point.y ];\n}\n\n/**\n * @param {Point} point\n *\n * @return {Component[]}\n */\nfunction lineTo(point) {\n return [ 'L', point.x, point.y ];\n}\n\n/**\n * @param {Point} p1\n * @param {Point} p2\n * @param {Point} p3\n *\n * @return {Component[]}\n */\nfunction curveTo(p1, p2, p3) {\n return [ 'C', p1.x, p1.y, p2.x, p2.y, p3.x, p3.y ];\n}\n\n/**\n * @param {Point[]} waypoints\n * @param {number} [cornerRadius]\n * @return {Component[][]}\n */\nfunction drawPath(waypoints, cornerRadius) {\n const pointCount = waypoints.length;\n\n const path = [ move(waypoints[0]) ];\n\n for (let i = 1; i < pointCount; i++) {\n\n const pointBefore = waypoints[i - 1];\n const point = waypoints[i];\n const pointAfter = waypoints[i + 1];\n\n if (!pointAfter || !cornerRadius) {\n path.push(lineTo(point));\n\n continue;\n }\n\n const effectiveRadius = Math.min(\n cornerRadius,\n vectorLength(point.x - pointBefore.x, point.y - pointBefore.y),\n vectorLength(pointAfter.x - point.x, pointAfter.y - point.y)\n );\n\n if (!effectiveRadius) {\n path.push(lineTo(point));\n\n continue;\n }\n\n const beforePoint = getPointAtLength(point, pointBefore, effectiveRadius);\n const beforePoint2 = getPointAtLength(point, pointBefore, effectiveRadius * .5);\n\n const afterPoint = getPointAtLength(point, pointAfter, effectiveRadius);\n const afterPoint2 = getPointAtLength(point, pointAfter, effectiveRadius * .5);\n\n path.push(lineTo(beforePoint));\n path.push(curveTo(beforePoint2, afterPoint2, afterPoint));\n }\n\n return path;\n}\n\nfunction getPointAtLength(start, end, length) {\n\n const deltaX = end.x - start.x;\n const deltaY = end.y - start.y;\n\n const totalLength = vectorLength(deltaX, deltaY);\n\n const percent = length / totalLength;\n\n return {\n x: start.x + deltaX * percent,\n y: start.y + deltaY * percent\n };\n}\n\nfunction vectorLength(x, y) {\n return Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));\n}\n\n/**\n * @param {Point[]} points\n * @param {number|Object} [attrs]\n * @param {number} [radius]\n *\n * @return {SVGElement}\n */\nexport function createLine(points, attrs, radius) {\n\n if (isNumber(attrs)) {\n radius = attrs;\n attrs = null;\n }\n\n if (!attrs) {\n attrs = {};\n }\n\n const line = svgCreate('path', attrs);\n\n if (isNumber(radius)) {\n line.dataset.cornerRadius = String(radius);\n }\n\n return updateLine(line, points);\n}\n\n/**\n * @param {SVGElement} gfx\n * @param {Point[]} points\n *\n * @return {SVGElement}\n */\nexport function updateLine(gfx, points) {\n\n const cornerRadius = parseInt(gfx.dataset.cornerRadius, 10) || 0;\n\n svgAttr(gfx, {\n d: componentsToPath(drawPath(points, cornerRadius))\n });\n\n return gfx;\n}\n","import {\n assign,\n filter,\n find,\n isArray,\n isNumber,\n isObject,\n isUndefined,\n groupBy,\n forEach\n} from 'min-dash';\n\n/**\n * @typedef {import('../model/Types').Connection} Connection\n * @typedef {import('../model/Types').Element} Element\n * @typedef {import('../model/Types').Shape} Shape\n *\n * @typedef {import('../util/Types').Rect} Rect\n *\n * @typedef { {\n * allShapes: Record,\n * allConnections: Record,\n * topLevel: Record,\n * enclosedConnections: Record,\n * enclosedElements: Record\n * } } Closure\n */\n\n/**\n * Get parent elements.\n *\n * @param {Element[]} elements\n *\n * @return {Element[]}\n */\nexport function getParents(elements) {\n\n // find elements that are not children of any other elements\n return filter(elements, function(element) {\n return !find(elements, function(e) {\n return e !== element && getParent(element, e);\n });\n });\n}\n\n\nfunction getParent(element, parent) {\n if (!parent) {\n return;\n }\n\n if (element === parent) {\n return parent;\n }\n\n if (!element.parent) {\n return;\n }\n\n return getParent(element.parent, parent);\n}\n\n\n/**\n * Adds an element to a collection and returns true if the\n * element was added.\n *\n * @param {Object[]} elements\n * @param {Object} element\n * @param {boolean} [unique]\n */\nexport function add(elements, element, unique) {\n var canAdd = !unique || elements.indexOf(element) === -1;\n\n if (canAdd) {\n elements.push(element);\n }\n\n return canAdd;\n}\n\n\n/**\n * Iterate over each element in a collection, calling the iterator function `fn`\n * with (element, index, recursionDepth).\n *\n * Recurse into all elements that are returned by `fn`.\n *\n * @param {Element|Element[]} elements\n * @param {(element: Element, index: number, depth: number) => Element[] | boolean | undefined} fn\n * @param {number} [depth] maximum recursion depth\n */\nexport function eachElement(elements, fn, depth) {\n\n depth = depth || 0;\n\n if (!isArray(elements)) {\n elements = [ elements ];\n }\n\n forEach(elements, function(s, i) {\n var filter = fn(s, i, depth);\n\n if (isArray(filter) && filter.length) {\n eachElement(filter, fn, depth + 1);\n }\n });\n}\n\n\n/**\n * Collects self + child elements up to a given depth from a list of elements.\n *\n * @param {Element|Element[]} elements the elements to select the children from\n * @param {boolean} unique whether to return a unique result set (no duplicates)\n * @param {number} maxDepth the depth to search through or -1 for infinite\n *\n * @return {Element[]} found elements\n */\nexport function selfAndChildren(elements, unique, maxDepth) {\n var result = [],\n processedChildren = [];\n\n eachElement(elements, function(element, i, depth) {\n add(result, element, unique);\n\n var children = element.children;\n\n // max traversal depth not reached yet\n if (maxDepth === -1 || depth < maxDepth) {\n\n // children exist && children not yet processed\n if (children && add(processedChildren, children, unique)) {\n return children;\n }\n }\n });\n\n return result;\n}\n\n/**\n * Return self + direct children for a number of elements\n *\n * @param {Element[]} elements to query\n * @param {boolean} [allowDuplicates] to allow duplicates in the result set\n *\n * @return {Element[]} the collected elements\n */\nexport function selfAndDirectChildren(elements, allowDuplicates) {\n return selfAndChildren(elements, !allowDuplicates, 1);\n}\n\n\n/**\n * Return self + ALL children for a number of elements\n *\n * @param {Element[]} elements to query\n * @param {boolean} [allowDuplicates] to allow duplicates in the result set\n *\n * @return {Element[]} the collected elements\n */\nexport function selfAndAllChildren(elements, allowDuplicates) {\n return selfAndChildren(elements, !allowDuplicates, -1);\n}\n\n\n/**\n * Gets the the closure for all selected elements,\n * their enclosed children and connections.\n *\n * @param {Element[]} elements\n * @param {boolean} [isTopLevel=true]\n * @param {Closure} [closure]\n *\n * @return {Closure} newClosure\n */\nexport function getClosure(elements, isTopLevel, closure) {\n\n if (isUndefined(isTopLevel)) {\n isTopLevel = true;\n }\n\n if (isObject(isTopLevel)) {\n closure = isTopLevel;\n isTopLevel = true;\n }\n\n\n closure = closure || {};\n\n var allShapes = copyObject(closure.allShapes),\n allConnections = copyObject(closure.allConnections),\n enclosedElements = copyObject(closure.enclosedElements),\n enclosedConnections = copyObject(closure.enclosedConnections);\n\n var topLevel = copyObject(\n closure.topLevel,\n isTopLevel && groupBy(elements, function(e) { return e.id; })\n );\n\n\n function handleConnection(c) {\n if (topLevel[c.source.id] && topLevel[c.target.id]) {\n topLevel[c.id] = [ c ];\n }\n\n // not enclosed as a child, but maybe logically\n // (connecting two moved elements?)\n if (allShapes[c.source.id] && allShapes[c.target.id]) {\n enclosedConnections[c.id] = enclosedElements[c.id] = c;\n }\n\n allConnections[c.id] = c;\n }\n\n function handleElement(element) {\n\n enclosedElements[element.id] = element;\n\n if (element.waypoints) {\n\n // remember connection\n enclosedConnections[element.id] = allConnections[element.id] = element;\n } else {\n\n // remember shape\n allShapes[element.id] = element;\n\n // remember all connections\n forEach(element.incoming, handleConnection);\n\n forEach(element.outgoing, handleConnection);\n\n // recurse into children\n return element.children;\n }\n }\n\n eachElement(elements, handleElement);\n\n return {\n allShapes: allShapes,\n allConnections: allConnections,\n topLevel: topLevel,\n enclosedConnections: enclosedConnections,\n enclosedElements: enclosedElements\n };\n}\n\n/**\n * Returns the surrounding bbox for all elements in\n * the array or the element primitive.\n *\n * @param {Element|Element[]} elements\n * @param {boolean} [stopRecursion=false]\n *\n * @return {Rect}\n */\nexport function getBBox(elements, stopRecursion) {\n\n stopRecursion = !!stopRecursion;\n if (!isArray(elements)) {\n elements = [ elements ];\n }\n\n var minX,\n minY,\n maxX,\n maxY;\n\n forEach(elements, function(element) {\n\n // If element is a connection the bbox must be computed first\n var bbox = element;\n if (element.waypoints && !stopRecursion) {\n bbox = getBBox(element.waypoints, true);\n }\n\n var x = bbox.x,\n y = bbox.y,\n height = bbox.height || 0,\n width = bbox.width || 0;\n\n if (x < minX || minX === undefined) {\n minX = x;\n }\n if (y < minY || minY === undefined) {\n minY = y;\n }\n\n if ((x + width) > maxX || maxX === undefined) {\n maxX = x + width;\n }\n if ((y + height) > maxY || maxY === undefined) {\n maxY = y + height;\n }\n });\n\n return {\n x: minX,\n y: minY,\n height: maxY - minY,\n width: maxX - minX\n };\n}\n\n\n/**\n * Returns all elements that are enclosed from the bounding box.\n *\n * * If bbox.(width|height) is not specified the method returns\n * all elements with element.x/y > bbox.x/y\n * * If only bbox.x or bbox.y is specified, method return all elements with\n * e.x > bbox.x or e.y > bbox.y\n *\n * @param {Element[]} elements List of Elements to search through\n * @param {Rect} bbox the enclosing bbox.\n *\n * @return {Element[]} enclosed elements\n */\nexport function getEnclosedElements(elements, bbox) {\n\n var filteredElements = {};\n\n forEach(elements, function(element) {\n\n var e = element;\n\n if (e.waypoints) {\n e = getBBox(e);\n }\n\n if (!isNumber(bbox.y) && (e.x > bbox.x)) {\n filteredElements[element.id] = element;\n }\n if (!isNumber(bbox.x) && (e.y > bbox.y)) {\n filteredElements[element.id] = element;\n }\n if (e.x > bbox.x && e.y > bbox.y) {\n if (isNumber(bbox.width) && isNumber(bbox.height) &&\n e.width + e.x < bbox.width + bbox.x &&\n e.height + e.y < bbox.height + bbox.y) {\n\n filteredElements[element.id] = element;\n } else if (!isNumber(bbox.width) || !isNumber(bbox.height)) {\n filteredElements[element.id] = element;\n }\n }\n });\n\n return filteredElements;\n}\n\n/**\n * Get the element's type\n *\n * @param {Element} element\n *\n * @return {'connection' | 'shape' | 'root'}\n */\nexport function getType(element) {\n\n if ('waypoints' in element) {\n return 'connection';\n }\n\n if ('x' in element) {\n return 'shape';\n }\n\n return 'root';\n}\n\n/**\n * @param {Element} element\n *\n * @return {boolean}\n */\nexport function isFrameElement(element) {\n return !!(element && element.isFrame);\n}\n\n// helpers ///////////////////////////////\n\nfunction copyObject(src1, src2) {\n return assign({}, src1 || {}, src2 || {});\n}\n","import inherits from 'inherits-browser';\n\nimport BaseRenderer from './BaseRenderer';\n\nimport {\n componentsToPath,\n createLine\n} from '../util/RenderUtil';\n\nimport {\n append as svgAppend,\n attr as svgAttr,\n create as svgCreate\n} from 'tiny-svg';\n\nimport { assign } from 'min-dash';\n\nimport {\n isFrameElement\n} from '../util/Elements';\n\n/**\n * @typedef {import('../core/EventBus').default} EventBus\n * @typedef {import('./Styles').default} Styles\n */\n\n// apply default renderer with lowest possible priority\n// so that it only kicks in if noone else could render\nvar DEFAULT_RENDER_PRIORITY = 1;\n\n/**\n * The default renderer used for shapes and connections.\n *\n * @param {EventBus} eventBus\n * @param {Styles} styles\n */\nexport default function DefaultRenderer(eventBus, styles) {\n\n BaseRenderer.call(this, eventBus, DEFAULT_RENDER_PRIORITY);\n\n this.CONNECTION_STYLE = styles.style([ 'no-fill' ], { strokeWidth: 5, stroke: 'fuchsia' });\n this.SHAPE_STYLE = styles.style({ fill: 'white', stroke: 'fuchsia', strokeWidth: 2 });\n this.FRAME_STYLE = styles.style([ 'no-fill' ], { stroke: 'fuchsia', strokeDasharray: 4, strokeWidth: 2 });\n}\n\ninherits(DefaultRenderer, BaseRenderer);\n\n\n/**\n * @private\n */\nDefaultRenderer.prototype.canRender = function() {\n return true;\n};\n\n/**\n * @private\n */\nDefaultRenderer.prototype.drawShape = function drawShape(visuals, element, attrs) {\n var rect = svgCreate('rect');\n\n svgAttr(rect, {\n x: 0,\n y: 0,\n width: element.width || 0,\n height: element.height || 0\n });\n\n if (isFrameElement(element)) {\n svgAttr(rect, assign({}, this.FRAME_STYLE, attrs || {}));\n } else {\n svgAttr(rect, assign({}, this.SHAPE_STYLE, attrs || {}));\n }\n\n svgAppend(visuals, rect);\n\n return rect;\n};\n\n/**\n * @private\n */\nDefaultRenderer.prototype.drawConnection = function drawConnection(visuals, connection, attrs) {\n\n var line = createLine(connection.waypoints, assign({}, this.CONNECTION_STYLE, attrs || {}));\n svgAppend(visuals, line);\n\n return line;\n};\n\n/**\n * @private\n */\nDefaultRenderer.prototype.getShapePath = function getShapePath(shape) {\n\n var x = shape.x,\n y = shape.y,\n width = shape.width,\n height = shape.height;\n\n var shapePath = [\n [ 'M', x, y ],\n [ 'l', width, 0 ],\n [ 'l', 0, height ],\n [ 'l', -width, 0 ],\n [ 'z' ]\n ];\n\n return componentsToPath(shapePath);\n};\n\n/**\n * @private\n */\nDefaultRenderer.prototype.getConnectionPath = function getConnectionPath(connection) {\n var waypoints = connection.waypoints;\n\n var idx, point, connectionPath = [];\n\n for (idx = 0; (point = waypoints[idx]); idx++) {\n\n // take invisible docking into account\n // when creating the path\n point = point.original || point;\n\n connectionPath.push([ idx === 0 ? 'M' : 'L', point.x, point.y ]);\n }\n\n return componentsToPath(connectionPath);\n};\n\nDefaultRenderer.$inject = [ 'eventBus', 'styles' ];\n","import DefaultRenderer from './DefaultRenderer';\nimport Styles from './Styles';\n\n/**\n * @type { import('didi').ModuleDeclaration }\n */\nexport default {\n __init__: [ 'defaultRenderer' ],\n defaultRenderer: [ 'type', DefaultRenderer ],\n styles: [ 'type', Styles ]\n};\n","import {\n isArray,\n assign,\n reduce\n} from 'min-dash';\n\n\n/**\n * A component that manages shape styles\n */\nexport default function Styles() {\n\n var defaultTraits = {\n\n 'no-fill': {\n fill: 'none'\n },\n 'no-border': {\n strokeOpacity: 0.0\n },\n 'no-events': {\n pointerEvents: 'none'\n }\n };\n\n var self = this;\n\n /**\n * Builds a style definition from a className, a list of traits and an object\n * of additional attributes.\n *\n * @param {string} className\n * @param {string[]} [traits]\n * @param {Object} [additionalAttrs]\n *\n * @return {Object} the style definition\n */\n this.cls = function(className, traits, additionalAttrs) {\n var attrs = this.style(traits, additionalAttrs);\n\n return assign(attrs, { 'class': className });\n };\n\n /**\n * Builds a style definition from a list of traits and an object of additional\n * attributes.\n *\n * @param {string[]} [traits]\n * @param {Object} additionalAttrs\n *\n * @return {Object} the style definition\n */\n this.style = function(traits, additionalAttrs) {\n\n if (!isArray(traits) && !additionalAttrs) {\n additionalAttrs = traits;\n traits = [];\n }\n\n var attrs = reduce(traits, function(attrs, t) {\n return assign(attrs, defaultTraits[t] || {});\n }, {});\n\n return additionalAttrs ? assign(attrs, additionalAttrs) : attrs;\n };\n\n\n /**\n * Computes a style definition from a list of traits and an object of\n * additional attributes, with custom style definition object.\n *\n * @param {Object} custom\n * @param {string[]} [traits]\n * @param {Object} defaultStyles\n *\n * @return {Object} the style definition\n */\n this.computeStyle = function(custom, traits, defaultStyles) {\n if (!isArray(traits)) {\n defaultStyles = traits;\n traits = [];\n }\n\n return self.style(traits || [], assign({}, defaultStyles, custom || {}));\n };\n}\n","/**\n * Failsafe remove an element from a collection\n *\n * @param {Array} [collection]\n * @param {Object} [element]\n *\n * @return {number} the previous index of the element\n */\nexport function remove(collection, element) {\n\n if (!collection || !element) {\n return -1;\n }\n\n var idx = collection.indexOf(element);\n\n if (idx !== -1) {\n collection.splice(idx, 1);\n }\n\n return idx;\n}\n\n/**\n * Fail save add an element to the given connection, ensuring\n * it does not yet exist.\n *\n * @param {Array} collection\n * @param {Object} element\n * @param {number} [idx]\n */\nexport function add(collection, element, idx) {\n\n if (!collection || !element) {\n return;\n }\n\n if (typeof idx !== 'number') {\n idx = -1;\n }\n\n var currentIdx = collection.indexOf(element);\n\n if (currentIdx !== -1) {\n\n if (currentIdx === idx) {\n\n // nothing to do, position has not changed\n return;\n } else {\n\n if (idx !== -1) {\n\n // remove from current position\n collection.splice(currentIdx, 1);\n } else {\n\n // already exists in collection\n return;\n }\n }\n }\n\n if (idx !== -1) {\n\n // insert at specified position\n collection.splice(idx, 0, element);\n } else {\n\n // push to end\n collection.push(element);\n }\n}\n\n\n/**\n * Fail save get the index of an element in a collection.\n *\n * @param {Array} collection\n * @param {Object} element\n *\n * @return {number} the index or -1 if collection or element do\n * not exist or the element is not contained.\n */\nexport function indexOf(collection, element) {\n\n if (!collection || !element) {\n return -1;\n }\n\n return collection.indexOf(element);\n}\n","import {\n every\n} from 'min-dash';\n\n/**\n * @typedef {import('../util/Types').Axis} Axis\n * @typedef {import('../util/Types').Point} Point\n * @typedef {import('../util/Types').Rect} Rect\n */\n\n/**\n * Computes the distance between two points.\n *\n * @param {Point} a\n * @param {Point} b\n *\n * @return {number} The distance between the two points.\n */\nexport function pointDistance(a, b) {\n if (!a || !b) {\n return -1;\n }\n\n return Math.sqrt(\n Math.pow(a.x - b.x, 2) +\n Math.pow(a.y - b.y, 2)\n );\n}\n\n\n/**\n * Returns true if the point r is on the line between p and q.\n *\n * @param {Point} p\n * @param {Point} q\n * @param {Point} r\n * @param {number} [accuracy=5] The accuracy with which to check (lower is better).\n *\n * @return {boolean}\n */\nexport function pointsOnLine(p, q, r, accuracy) {\n\n if (typeof accuracy === 'undefined') {\n accuracy = 5;\n }\n\n if (!p || !q || !r) {\n return false;\n }\n\n var val = (q.x - p.x) * (r.y - p.y) - (q.y - p.y) * (r.x - p.x),\n dist = pointDistance(p, q);\n\n // @see http://stackoverflow.com/a/907491/412190\n return Math.abs(val / dist) <= accuracy;\n}\n\n\nvar ALIGNED_THRESHOLD = 2;\n\n/**\n * Check whether two points are horizontally or vertically aligned.\n *\n * @param {Point[]|Point} a\n * @param {Point} [b]\n *\n * @return {string|boolean} If and how the two points are aligned ('h', 'v' or `false`).\n */\nexport function pointsAligned(a, b) {\n var points = Array.from(arguments).flat();\n\n const axisMap = {\n 'x': 'v',\n 'y': 'h'\n };\n\n for (const [ axis, orientation ] of Object.entries(axisMap)) {\n if (pointsAlignedOnAxis(axis, points)) {\n return orientation;\n }\n }\n\n return false;\n}\n\n/**\n * @param {Axis} axis\n * @param {Point[]} points\n *\n * @return {boolean}\n */\nexport function pointsAlignedOnAxis(axis, points) {\n const referencePoint = points[0];\n\n return every(points, function(point) {\n return Math.abs(referencePoint[axis] - point[axis]) <= ALIGNED_THRESHOLD;\n });\n}\n\n/**\n * Returns true if the point p is inside the rectangle rect\n *\n * @param {Point} p\n * @param {Rect} rect\n * @param {number} tolerance\n *\n * @return {boolean}\n */\nexport function pointInRect(p, rect, tolerance) {\n tolerance = tolerance || 0;\n\n return p.x > rect.x - tolerance &&\n p.y > rect.y - tolerance &&\n p.x < rect.x + rect.width + tolerance &&\n p.y < rect.y + rect.height + tolerance;\n}\n\n/**\n * Returns a point in the middle of points p and q\n *\n * @param {Point} p\n * @param {Point} q\n *\n * @return {Point} The mid point between the two points.\n */\nexport function getMidPoint(p, q) {\n return {\n x: Math.round(p.x + ((q.x - p.x) / 2.0)),\n y: Math.round(p.y + ((q.y - p.y) / 2.0))\n };\n}\n","/**\n * This file contains source code adapted from Snap.svg (licensed Apache-2.0).\n *\n * @see https://github.com/adobe-webplatform/Snap.svg/blob/master/src/path.js\n */\n\n/* eslint no-fallthrough: \"off\" */\n\nvar p2s = /,?([a-z]),?/gi,\n toFloat = parseFloat,\n math = Math,\n PI = math.PI,\n mmin = math.min,\n mmax = math.max,\n pow = math.pow,\n abs = math.abs,\n pathCommand = /([a-z])[\\s,]*((-?\\d*\\.?\\d*(?:e[-+]?\\d+)?[\\s]*,?[\\s]*)+)/ig,\n pathValues = /(-?\\d*\\.?\\d*(?:e[-+]?\\d+)?)[\\s]*,?[\\s]*/ig;\n\nvar isArray = Array.isArray || function(o) { return o instanceof Array; };\n\nfunction hasProperty(obj, property) {\n return Object.prototype.hasOwnProperty.call(obj, property);\n}\n\nfunction clone(obj) {\n\n if (typeof obj == 'function' || Object(obj) !== obj) {\n return obj;\n }\n\n var res = new obj.constructor;\n\n for (var key in obj) {\n if (hasProperty(obj, key)) {\n res[key] = clone(obj[key]);\n }\n }\n\n return res;\n}\n\nfunction repush(array, item) {\n for (var i = 0, ii = array.length; i < ii; i++) if (array[i] === item) {\n return array.push(array.splice(i, 1)[0]);\n }\n}\n\nfunction cacher(f) {\n\n function newf() {\n\n var arg = Array.prototype.slice.call(arguments, 0),\n args = arg.join('\\u2400'),\n cache = newf.cache = newf.cache || {},\n count = newf.count = newf.count || [];\n\n if (hasProperty(cache, args)) {\n repush(count, args);\n return cache[args];\n }\n\n count.length >= 1e3 && delete cache[count.shift()];\n count.push(args);\n cache[args] = f(...arguments);\n\n return cache[args];\n }\n return newf;\n}\n\nfunction parsePathString(pathString) {\n\n if (!pathString) {\n return null;\n }\n\n var pth = paths(pathString);\n\n if (pth.arr) {\n return clone(pth.arr);\n }\n\n var paramCounts = { a: 7, c: 6, h: 1, l: 2, m: 2, q: 4, s: 4, t: 2, v: 1, z: 0 },\n data = [];\n\n if (isArray(pathString) && isArray(pathString[0])) { // rough assumption\n data = clone(pathString);\n }\n\n if (!data.length) {\n\n String(pathString).replace(pathCommand, function(a, b, c) {\n var params = [],\n name = b.toLowerCase();\n\n c.replace(pathValues, function(a, b) {\n b && params.push(+b);\n });\n\n if (name == 'm' && params.length > 2) {\n data.push([ b, ...params.splice(0, 2) ]);\n name = 'l';\n b = b == 'm' ? 'l' : 'L';\n }\n\n while (params.length >= paramCounts[name]) {\n data.push([ b, ...params.splice(0, paramCounts[name]) ]);\n if (!paramCounts[name]) {\n break;\n }\n }\n });\n }\n\n data.toString = paths.toString;\n pth.arr = clone(data);\n\n return data;\n}\n\nfunction paths(ps) {\n var p = paths.ps = paths.ps || {};\n\n if (p[ps]) {\n p[ps].sleep = 100;\n } else {\n p[ps] = {\n sleep: 100\n };\n }\n\n setTimeout(function() {\n for (var key in p) {\n if (hasProperty(p, key) && key != ps) {\n p[key].sleep--;\n !p[key].sleep && delete p[key];\n }\n }\n });\n\n return p[ps];\n}\n\nfunction rectBBox(x, y, width, height) {\n\n if (arguments.length === 1) {\n y = x.y;\n width = x.width;\n height = x.height;\n x = x.x;\n }\n\n return {\n x: x,\n y: y,\n width: width,\n height: height,\n x2: x + width,\n y2: y + height\n };\n}\n\nfunction pathToString() {\n return this.join(',').replace(p2s, '$1');\n}\n\nfunction pathClone(pathArray) {\n var res = clone(pathArray);\n res.toString = pathToString;\n return res;\n}\n\nfunction findDotsAtSegment(p1x, p1y, c1x, c1y, c2x, c2y, p2x, p2y, t) {\n var t1 = 1 - t,\n t13 = pow(t1, 3),\n t12 = pow(t1, 2),\n t2 = t * t,\n t3 = t2 * t,\n x = t13 * p1x + t12 * 3 * t * c1x + t1 * 3 * t * t * c2x + t3 * p2x,\n y = t13 * p1y + t12 * 3 * t * c1y + t1 * 3 * t * t * c2y + t3 * p2y;\n\n return {\n x: fixError(x),\n y: fixError(y)\n };\n}\n\nfunction bezierBBox(points) {\n\n var bbox = curveBBox(...points);\n\n return rectBBox(\n bbox.x0,\n bbox.y0,\n bbox.x1 - bbox.x0,\n bbox.y1 - bbox.y0\n );\n}\n\nfunction isPointInsideBBox(bbox, x, y) {\n return x >= bbox.x &&\n x <= bbox.x + bbox.width &&\n y >= bbox.y &&\n y <= bbox.y + bbox.height;\n}\n\nfunction isBBoxIntersect(bbox1, bbox2) {\n bbox1 = rectBBox(bbox1);\n bbox2 = rectBBox(bbox2);\n return isPointInsideBBox(bbox2, bbox1.x, bbox1.y)\n || isPointInsideBBox(bbox2, bbox1.x2, bbox1.y)\n || isPointInsideBBox(bbox2, bbox1.x, bbox1.y2)\n || isPointInsideBBox(bbox2, bbox1.x2, bbox1.y2)\n || isPointInsideBBox(bbox1, bbox2.x, bbox2.y)\n || isPointInsideBBox(bbox1, bbox2.x2, bbox2.y)\n || isPointInsideBBox(bbox1, bbox2.x, bbox2.y2)\n || isPointInsideBBox(bbox1, bbox2.x2, bbox2.y2)\n || (bbox1.x < bbox2.x2 && bbox1.x > bbox2.x\n || bbox2.x < bbox1.x2 && bbox2.x > bbox1.x)\n && (bbox1.y < bbox2.y2 && bbox1.y > bbox2.y\n || bbox2.y < bbox1.y2 && bbox2.y > bbox1.y);\n}\n\nfunction base3(t, p1, p2, p3, p4) {\n var t1 = -3 * p1 + 9 * p2 - 9 * p3 + 3 * p4,\n t2 = t * t1 + 6 * p1 - 12 * p2 + 6 * p3;\n return t * t2 - 3 * p1 + 3 * p2;\n}\n\nfunction bezlen(x1, y1, x2, y2, x3, y3, x4, y4, z) {\n\n if (z == null) {\n z = 1;\n }\n\n z = z > 1 ? 1 : z < 0 ? 0 : z;\n\n var z2 = z / 2,\n n = 12,\n Tvalues = [ -.1252,.1252,-.3678,.3678,-.5873,.5873,-.7699,.7699,-.9041,.9041,-.9816,.9816 ],\n Cvalues = [ 0.2491,0.2491,0.2335,0.2335,0.2032,0.2032,0.1601,0.1601,0.1069,0.1069,0.0472,0.0472 ],\n sum = 0;\n\n for (var i = 0; i < n; i++) {\n var ct = z2 * Tvalues[i] + z2,\n xbase = base3(ct, x1, x2, x3, x4),\n ybase = base3(ct, y1, y2, y3, y4),\n comb = xbase * xbase + ybase * ybase;\n\n sum += Cvalues[i] * math.sqrt(comb);\n }\n\n return z2 * sum;\n}\n\n\nfunction intersectLines(x1, y1, x2, y2, x3, y3, x4, y4) {\n\n if (\n mmax(x1, x2) < mmin(x3, x4) ||\n mmin(x1, x2) > mmax(x3, x4) ||\n mmax(y1, y2) < mmin(y3, y4) ||\n mmin(y1, y2) > mmax(y3, y4)\n ) {\n return;\n }\n\n var nx = (x1 * y2 - y1 * x2) * (x3 - x4) - (x1 - x2) * (x3 * y4 - y3 * x4),\n ny = (x1 * y2 - y1 * x2) * (y3 - y4) - (y1 - y2) * (x3 * y4 - y3 * x4),\n denominator = (x1 - x2) * (y3 - y4) - (y1 - y2) * (x3 - x4);\n\n if (!denominator) {\n return;\n }\n\n var px = fixError(nx / denominator),\n py = fixError(ny / denominator),\n px2 = +px.toFixed(2),\n py2 = +py.toFixed(2);\n\n if (\n px2 < +mmin(x1, x2).toFixed(2) ||\n px2 > +mmax(x1, x2).toFixed(2) ||\n px2 < +mmin(x3, x4).toFixed(2) ||\n px2 > +mmax(x3, x4).toFixed(2) ||\n py2 < +mmin(y1, y2).toFixed(2) ||\n py2 > +mmax(y1, y2).toFixed(2) ||\n py2 < +mmin(y3, y4).toFixed(2) ||\n py2 > +mmax(y3, y4).toFixed(2)\n ) {\n return;\n }\n\n return { x: px, y: py };\n}\n\nfunction fixError(number) {\n return Math.round(number * 100000000000) / 100000000000;\n}\n\nfunction findBezierIntersections(bez1, bez2, justCount) {\n var bbox1 = bezierBBox(bez1),\n bbox2 = bezierBBox(bez2);\n\n if (!isBBoxIntersect(bbox1, bbox2)) {\n return justCount ? 0 : [];\n }\n\n // As an optimization, lines will have only 1 segment\n\n var l1 = bezlen(...bez1),\n l2 = bezlen(...bez2),\n n1 = isLine(bez1) ? 1 : ~~(l1 / 5) || 1,\n n2 = isLine(bez2) ? 1 : ~~(l2 / 5) || 1,\n dots1 = [],\n dots2 = [],\n xy = {},\n res = justCount ? 0 : [];\n\n for (var i = 0; i < n1 + 1; i++) {\n var p = findDotsAtSegment(...bez1, i / n1);\n dots1.push({ x: p.x, y: p.y, t: i / n1 });\n }\n\n for (i = 0; i < n2 + 1; i++) {\n p = findDotsAtSegment(...bez2, i / n2);\n dots2.push({ x: p.x, y: p.y, t: i / n2 });\n }\n\n for (i = 0; i < n1; i++) {\n\n for (var j = 0; j < n2; j++) {\n var di = dots1[i],\n di1 = dots1[i + 1],\n dj = dots2[j],\n dj1 = dots2[j + 1],\n ci = abs(di1.x - di.x) < .01 ? 'y' : 'x',\n cj = abs(dj1.x - dj.x) < .01 ? 'y' : 'x',\n is = intersectLines(di.x, di.y, di1.x, di1.y, dj.x, dj.y, dj1.x, dj1.y),\n key;\n\n if (is) {\n key = is.x.toFixed(9) + '#' + is.y.toFixed(9);\n\n if (xy[key]) {\n continue;\n }\n\n xy[key] = true;\n\n var t1 = di.t + abs((is[ci] - di[ci]) / (di1[ci] - di[ci])) * (di1.t - di.t),\n t2 = dj.t + abs((is[cj] - dj[cj]) / (dj1[cj] - dj[cj])) * (dj1.t - dj.t);\n\n if (t1 >= 0 && t1 <= 1 && t2 >= 0 && t2 <= 1) {\n\n if (justCount) {\n res++;\n } else {\n res.push({\n x: is.x,\n y: is.y,\n t1: t1,\n t2: t2\n });\n }\n }\n }\n }\n }\n\n return res;\n}\n\n\n/**\n * Find or counts the intersections between two SVG paths.\n *\n * Returns a number in counting mode and a list of intersections otherwise.\n *\n * A single intersection entry contains the intersection coordinates (x, y)\n * as well as additional information regarding the intersecting segments\n * on each path (segment1, segment2) and the relative location of the\n * intersection on these segments (t1, t2).\n *\n * The path may be an SVG path string or a list of path components\n * such as `[ [ 'M', 0, 10 ], [ 'L', 20, 0 ] ]`.\n *\n * @example\n *\n * var intersections = findPathIntersections(\n * 'M0,0L100,100',\n * [ [ 'M', 0, 100 ], [ 'L', 100, 0 ] ]\n * );\n *\n * // intersections = [\n * // { x: 50, y: 50, segment1: 1, segment2: 1, t1: 0.5, t2: 0.5 }\n * // ]\n *\n * @param {String|Array} path1\n * @param {String|Array} path2\n * @param {Boolean} [justCount=false]\n *\n * @return {Array|Number}\n */\nexport default function findPathIntersections(path1, path2, justCount) {\n path1 = pathToCurve(path1);\n path2 = pathToCurve(path2);\n\n var x1, y1, x2, y2, x1m, y1m, x2m, y2m, bez1, bez2,\n res = justCount ? 0 : [];\n\n for (var i = 0, ii = path1.length; i < ii; i++) {\n var pi = path1[i];\n\n if (pi[0] == 'M') {\n x1 = x1m = pi[1];\n y1 = y1m = pi[2];\n } else {\n\n if (pi[0] == 'C') {\n bez1 = [ x1, y1, ...pi.slice(1) ];\n x1 = bez1[6];\n y1 = bez1[7];\n } else {\n bez1 = [ x1, y1, x1, y1, x1m, y1m, x1m, y1m ];\n x1 = x1m;\n y1 = y1m;\n }\n\n for (var j = 0, jj = path2.length; j < jj; j++) {\n var pj = path2[j];\n\n if (pj[0] == 'M') {\n x2 = x2m = pj[1];\n y2 = y2m = pj[2];\n } else {\n\n if (pj[0] == 'C') {\n bez2 = [ x2, y2, ...pj.slice(1) ];\n x2 = bez2[6];\n y2 = bez2[7];\n } else {\n bez2 = [ x2, y2, x2, y2, x2m, y2m, x2m, y2m ];\n x2 = x2m;\n y2 = y2m;\n }\n\n var intr = findBezierIntersections(bez1, bez2, justCount);\n\n if (justCount) {\n res += intr;\n } else {\n\n for (var k = 0, kk = intr.length; k < kk; k++) {\n intr[k].segment1 = i;\n intr[k].segment2 = j;\n intr[k].bez1 = bez1;\n intr[k].bez2 = bez2;\n }\n\n res = res.concat(intr);\n }\n }\n }\n }\n }\n\n return res;\n}\n\n\nfunction pathToAbsolute(pathArray) {\n var pth = paths(pathArray);\n\n if (pth.abs) {\n return pathClone(pth.abs);\n }\n\n if (!isArray(pathArray) || !isArray(pathArray && pathArray[0])) { // rough assumption\n pathArray = parsePathString(pathArray);\n }\n\n if (!pathArray || !pathArray.length) {\n return [ [ 'M', 0, 0 ] ];\n }\n\n var res = [],\n x = 0,\n y = 0,\n mx = 0,\n my = 0,\n start = 0,\n pa0;\n\n if (pathArray[0][0] == 'M') {\n x = +pathArray[0][1];\n y = +pathArray[0][2];\n mx = x;\n my = y;\n start++;\n res[0] = [ 'M', x, y ];\n }\n\n for (var r, pa, i = start, ii = pathArray.length; i < ii; i++) {\n res.push(r = []);\n pa = pathArray[i];\n pa0 = pa[0];\n\n if (pa0 != pa0.toUpperCase()) {\n r[0] = pa0.toUpperCase();\n\n switch (r[0]) {\n case 'A':\n r[1] = pa[1];\n r[2] = pa[2];\n r[3] = pa[3];\n r[4] = pa[4];\n r[5] = pa[5];\n r[6] = +pa[6] + x;\n r[7] = +pa[7] + y;\n break;\n case 'V':\n r[1] = +pa[1] + y;\n break;\n case 'H':\n r[1] = +pa[1] + x;\n break;\n case 'M':\n mx = +pa[1] + x;\n my = +pa[2] + y;\n default:\n for (var j = 1, jj = pa.length; j < jj; j++) {\n r[j] = +pa[j] + ((j % 2) ? x : y);\n }\n }\n } else {\n for (var k = 0, kk = pa.length; k < kk; k++) {\n r[k] = pa[k];\n }\n }\n pa0 = pa0.toUpperCase();\n\n switch (r[0]) {\n case 'Z':\n x = +mx;\n y = +my;\n break;\n case 'H':\n x = r[1];\n break;\n case 'V':\n y = r[1];\n break;\n case 'M':\n mx = r[r.length - 2];\n my = r[r.length - 1];\n default:\n x = r[r.length - 2];\n y = r[r.length - 1];\n }\n }\n\n res.toString = pathToString;\n pth.abs = pathClone(res);\n\n return res;\n}\n\nfunction isLine(bez) {\n return (\n bez[0] === bez[2] &&\n bez[1] === bez[3] &&\n bez[4] === bez[6] &&\n bez[5] === bez[7]\n );\n}\n\nfunction lineToCurve(x1, y1, x2, y2) {\n return [\n x1, y1, x2,\n y2, x2, y2\n ];\n}\n\nfunction qubicToCurve(x1, y1, ax, ay, x2, y2) {\n var _13 = 1 / 3,\n _23 = 2 / 3;\n\n return [\n _13 * x1 + _23 * ax,\n _13 * y1 + _23 * ay,\n _13 * x2 + _23 * ax,\n _13 * y2 + _23 * ay,\n x2,\n y2\n ];\n}\n\nfunction arcToCurve(x1, y1, rx, ry, angle, large_arc_flag, sweep_flag, x2, y2, recursive) {\n\n // for more information of where this math came from visit:\n // http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes\n var _120 = PI * 120 / 180,\n rad = PI / 180 * (+angle || 0),\n res = [],\n xy,\n rotate = cacher(function(x, y, rad) {\n var X = x * math.cos(rad) - y * math.sin(rad),\n Y = x * math.sin(rad) + y * math.cos(rad);\n\n return { x: X, y: Y };\n });\n\n if (!recursive) {\n xy = rotate(x1, y1, -rad);\n x1 = xy.x;\n y1 = xy.y;\n xy = rotate(x2, y2, -rad);\n x2 = xy.x;\n y2 = xy.y;\n\n var x = (x1 - x2) / 2,\n y = (y1 - y2) / 2;\n\n var h = (x * x) / (rx * rx) + (y * y) / (ry * ry);\n\n if (h > 1) {\n h = math.sqrt(h);\n rx = h * rx;\n ry = h * ry;\n }\n\n var rx2 = rx * rx,\n ry2 = ry * ry,\n k = (large_arc_flag == sweep_flag ? -1 : 1) *\n math.sqrt(abs((rx2 * ry2 - rx2 * y * y - ry2 * x * x) / (rx2 * y * y + ry2 * x * x))),\n cx = k * rx * y / ry + (x1 + x2) / 2,\n cy = k * -ry * x / rx + (y1 + y2) / 2,\n f1 = math.asin(((y1 - cy) / ry).toFixed(9)),\n f2 = math.asin(((y2 - cy) / ry).toFixed(9));\n\n f1 = x1 < cx ? PI - f1 : f1;\n f2 = x2 < cx ? PI - f2 : f2;\n f1 < 0 && (f1 = PI * 2 + f1);\n f2 < 0 && (f2 = PI * 2 + f2);\n\n if (sweep_flag && f1 > f2) {\n f1 = f1 - PI * 2;\n }\n if (!sweep_flag && f2 > f1) {\n f2 = f2 - PI * 2;\n }\n } else {\n f1 = recursive[0];\n f2 = recursive[1];\n cx = recursive[2];\n cy = recursive[3];\n }\n\n var df = f2 - f1;\n\n if (abs(df) > _120) {\n var f2old = f2,\n x2old = x2,\n y2old = y2;\n\n f2 = f1 + _120 * (sweep_flag && f2 > f1 ? 1 : -1);\n x2 = cx + rx * math.cos(f2);\n y2 = cy + ry * math.sin(f2);\n res = arcToCurve(x2, y2, rx, ry, angle, 0, sweep_flag, x2old, y2old, [ f2, f2old, cx, cy ]);\n }\n\n df = f2 - f1;\n\n var c1 = math.cos(f1),\n s1 = math.sin(f1),\n c2 = math.cos(f2),\n s2 = math.sin(f2),\n t = math.tan(df / 4),\n hx = 4 / 3 * rx * t,\n hy = 4 / 3 * ry * t,\n m1 = [ x1, y1 ],\n m2 = [ x1 + hx * s1, y1 - hy * c1 ],\n m3 = [ x2 + hx * s2, y2 - hy * c2 ],\n m4 = [ x2, y2 ];\n\n m2[0] = 2 * m1[0] - m2[0];\n m2[1] = 2 * m1[1] - m2[1];\n\n if (recursive) {\n return [ m2, m3, m4 ].concat(res);\n } else {\n res = [ m2, m3, m4 ].concat(res).join().split(',');\n var newres = [];\n\n for (var i = 0, ii = res.length; i < ii; i++) {\n newres[i] = i % 2 ? rotate(res[i - 1], res[i], rad).y : rotate(res[i], res[i + 1], rad).x;\n }\n\n return newres;\n }\n}\n\n// Returns bounding box of cubic bezier curve.\n// Source: http://blog.hackers-cafe.net/2009/06/how-to-calculate-bezier-curves-bounding.html\n// Original version: NISHIO Hirokazu\n// Modifications: https://github.com/timo22345\nfunction curveBBox(x0, y0, x1, y1, x2, y2, x3, y3) {\n var tvalues = [],\n bounds = [ [], [] ],\n a, b, c, t, t1, t2, b2ac, sqrtb2ac;\n\n for (var i = 0; i < 2; ++i) {\n\n if (i == 0) {\n b = 6 * x0 - 12 * x1 + 6 * x2;\n a = -3 * x0 + 9 * x1 - 9 * x2 + 3 * x3;\n c = 3 * x1 - 3 * x0;\n } else {\n b = 6 * y0 - 12 * y1 + 6 * y2;\n a = -3 * y0 + 9 * y1 - 9 * y2 + 3 * y3;\n c = 3 * y1 - 3 * y0;\n }\n\n if (abs(a) < 1e-12) {\n\n if (abs(b) < 1e-12) {\n continue;\n }\n\n t = -c / b;\n\n if (0 < t && t < 1) {\n tvalues.push(t);\n }\n\n continue;\n }\n\n b2ac = b * b - 4 * c * a;\n sqrtb2ac = math.sqrt(b2ac);\n\n if (b2ac < 0) {\n continue;\n }\n\n t1 = (-b + sqrtb2ac) / (2 * a);\n\n if (0 < t1 && t1 < 1) {\n tvalues.push(t1);\n }\n\n t2 = (-b - sqrtb2ac) / (2 * a);\n\n if (0 < t2 && t2 < 1) {\n tvalues.push(t2);\n }\n }\n\n var j = tvalues.length,\n jlen = j,\n mt;\n\n while (j--) {\n t = tvalues[j];\n mt = 1 - t;\n bounds[0][j] = (mt * mt * mt * x0) + (3 * mt * mt * t * x1) + (3 * mt * t * t * x2) + (t * t * t * x3);\n bounds[1][j] = (mt * mt * mt * y0) + (3 * mt * mt * t * y1) + (3 * mt * t * t * y2) + (t * t * t * y3);\n }\n\n bounds[0][jlen] = x0;\n bounds[1][jlen] = y0;\n bounds[0][jlen + 1] = x3;\n bounds[1][jlen + 1] = y3;\n bounds[0].length = bounds[1].length = jlen + 2;\n\n return {\n x0: mmin(...bounds[0]),\n y0: mmin(...bounds[1]),\n x1: mmax(...bounds[0]),\n y1: mmax(...bounds[1])\n };\n}\n\nfunction pathToCurve(path) {\n\n var pth = paths(path);\n\n // return cached curve, if existing\n if (pth.curve) {\n return pathClone(pth.curve);\n }\n\n var curvedPath = pathToAbsolute(path),\n attrs = { x: 0, y: 0, bx: 0, by: 0, X: 0, Y: 0, qx: null, qy: null },\n processPath = function(path, d, pathCommand) {\n var nx, ny;\n\n if (!path) {\n return [ 'C', d.x, d.y, d.x, d.y, d.x, d.y ];\n }\n\n !(path[0] in { T: 1, Q: 1 }) && (d.qx = d.qy = null);\n\n switch (path[0]) {\n case 'M':\n d.X = path[1];\n d.Y = path[2];\n break;\n case 'A':\n path = [ 'C', ...arcToCurve(d.x, d.y, ...path.slice(1)) ];\n break;\n case 'S':\n if (pathCommand == 'C' || pathCommand == 'S') {\n\n // In 'S' case we have to take into account, if the previous command is C/S.\n nx = d.x * 2 - d.bx;\n\n // And reflect the previous\n ny = d.y * 2 - d.by;\n\n // command's control point relative to the current point.\n }\n else {\n\n // or some else or nothing\n nx = d.x;\n ny = d.y;\n }\n path = [ 'C', nx, ny, ...path.slice(1) ];\n break;\n case 'T':\n if (pathCommand == 'Q' || pathCommand == 'T') {\n\n // In 'T' case we have to take into account, if the previous command is Q/T.\n d.qx = d.x * 2 - d.qx;\n\n // And make a reflection similar\n d.qy = d.y * 2 - d.qy;\n\n // to case 'S'.\n }\n else {\n\n // or something else or nothing\n d.qx = d.x;\n d.qy = d.y;\n }\n path = [ 'C', ...qubicToCurve(d.x, d.y, d.qx, d.qy, path[1], path[2]) ];\n break;\n case 'Q':\n d.qx = path[1];\n d.qy = path[2];\n path = [ 'C', ...qubicToCurve(d.x, d.y, path[1], path[2], path[3], path[4]) ];\n break;\n case 'L':\n path = [ 'C', ...lineToCurve(d.x, d.y, path[1], path[2]) ];\n break;\n case 'H':\n path = [ 'C', ...lineToCurve(d.x, d.y, path[1], d.y) ];\n break;\n case 'V':\n path = [ 'C', ...lineToCurve(d.x, d.y, d.x, path[1]) ];\n break;\n case 'Z':\n path = [ 'C', ...lineToCurve(d.x, d.y, d.X, d.Y) ];\n break;\n }\n\n return path;\n },\n\n fixArc = function(pp, i) {\n\n if (pp[i].length > 7) {\n pp[i].shift();\n var pi = pp[i];\n\n while (pi.length) {\n pathCommands[i] = 'A'; // if created multiple C:s, their original seg is saved\n pp.splice(i++, 0, [ 'C', ...pi.splice(0, 6) ]);\n }\n\n pp.splice(i, 1);\n ii = curvedPath.length;\n }\n },\n\n pathCommands = [], // path commands of original path p\n pfirst = '', // temporary holder for original path command\n pathCommand = ''; // holder for previous path command of original path\n\n for (var i = 0, ii = curvedPath.length; i < ii; i++) {\n curvedPath[i] && (pfirst = curvedPath[i][0]); // save current path command\n\n if (pfirst != 'C') // C is not saved yet, because it may be result of conversion\n {\n pathCommands[i] = pfirst; // Save current path command\n i && (pathCommand = pathCommands[i - 1]); // Get previous path command pathCommand\n }\n curvedPath[i] = processPath(curvedPath[i], attrs, pathCommand); // Previous path command is inputted to processPath\n\n if (pathCommands[i] != 'A' && pfirst == 'C') pathCommands[i] = 'C'; // A is the only command\n // which may produce multiple C:s\n // so we have to make sure that C is also C in original path\n\n fixArc(curvedPath, i); // fixArc adds also the right amount of A:s to pathCommands\n\n var seg = curvedPath[i],\n seglen = seg.length;\n\n attrs.x = seg[seglen - 2];\n attrs.y = seg[seglen - 1];\n attrs.bx = toFloat(seg[seglen - 4]) || attrs.x;\n attrs.by = toFloat(seg[seglen - 3]) || attrs.y;\n }\n\n // cache curve\n pth.curve = pathClone(curvedPath);\n\n return curvedPath;\n}","import {\n has,\n isNil,\n isObject\n} from 'min-dash';\n\n/**\n * Checks whether a value is an instance of Connection.\n *\n * @param {any} value\n *\n * @return {boolean}\n */\nexport function isConnection(value) {\n return isObject(value) && has(value, 'waypoints');\n}\n\n/**\n * Checks whether a value is an instance of Label.\n *\n * @param {any} value\n *\n * @return {boolean}\n */\nexport function isLabel(value) {\n return isObject(value) && has(value, 'labelTarget');\n}\n\n/**\n * Checks whether a value is an instance of Root.\n *\n * @param {any} value\n *\n * @return {boolean}\n */\nexport function isRoot(value) {\n return isObject(value) && isNil(value.parent);\n}","import {\n isObject,\n sortBy\n} from 'min-dash';\n\nimport {\n pointDistance,\n pointsOnLine\n} from '../util/Geometry';\n\nimport intersectPaths from 'path-intersection';\n\nimport { isConnection } from '../util/ModelUtil';\n\n/**\n * @typedef {import('../core/Types').ElementLike} Element\n * @typedef {import('../core/Types').ConnectionLike} Connection\n *\n * @typedef {import('../util/Types').DirectionTRBL} DirectionTRBL\n * @typedef {import('../util/Types').Intersection} Intersection\n * @typedef {import('../util/Types').Point} Point\n * @typedef {import('../util/Types').Rect} Rect\n * @typedef {import('../util/Types').RectTRBL} RectTRBL\n */\n\n/**\n * @param {Rect} bounds\n *\n * @returns {Rect}\n */\nexport function roundBounds(bounds) {\n return {\n x: Math.round(bounds.x),\n y: Math.round(bounds.y),\n width: Math.round(bounds.width),\n height: Math.round(bounds.height)\n };\n}\n\n/**\n * @param {Point} point\n *\n * @returns {Point}\n */\nexport function roundPoint(point) {\n\n return {\n x: Math.round(point.x),\n y: Math.round(point.y)\n };\n}\n\n\n/**\n * Convert the given bounds to a { top, left, bottom, right } descriptor.\n *\n * @param {Point|Rect} bounds\n *\n * @return {RectTRBL}\n */\nexport function asTRBL(bounds) {\n return {\n top: bounds.y,\n right: bounds.x + (bounds.width || 0),\n bottom: bounds.y + (bounds.height || 0),\n left: bounds.x\n };\n}\n\n\n/**\n * Convert a { top, left, bottom, right } to an objects bounds.\n *\n * @param {RectTRBL} trbl\n *\n * @return {Rect}\n */\nexport function asBounds(trbl) {\n return {\n x: trbl.left,\n y: trbl.top,\n width: trbl.right - trbl.left,\n height: trbl.bottom - trbl.top\n };\n}\n\n\n/**\n * Get the mid of the given bounds or point.\n *\n * @param {Point|Rect} bounds\n *\n * @return {Point}\n */\nexport function getBoundsMid(bounds) {\n return roundPoint({\n x: bounds.x + (bounds.width || 0) / 2,\n y: bounds.y + (bounds.height || 0) / 2\n });\n}\n\n\n/**\n * Get the mid of the given Connection.\n *\n * @param {Connection} connection\n *\n * @return {Point}\n */\nexport function getConnectionMid(connection) {\n var waypoints = connection.waypoints;\n\n // calculate total length and length of each segment\n var parts = waypoints.reduce(function(parts, point, index) {\n\n var lastPoint = waypoints[index - 1];\n\n if (lastPoint) {\n var lastPart = parts[parts.length - 1];\n\n var startLength = lastPart && lastPart.endLength || 0;\n var length = distance(lastPoint, point);\n\n parts.push({\n start: lastPoint,\n end: point,\n startLength: startLength,\n endLength: startLength + length,\n length: length\n });\n }\n\n return parts;\n }, []);\n\n var totalLength = parts.reduce(function(length, part) {\n return length + part.length;\n }, 0);\n\n // find which segement contains middle point\n var midLength = totalLength / 2;\n\n var i = 0;\n var midSegment = parts[i];\n\n while (midSegment.endLength < midLength) {\n midSegment = parts[++i];\n }\n\n // calculate relative position on mid segment\n var segmentProgress = (midLength - midSegment.startLength) / midSegment.length;\n\n var midPoint = {\n x: midSegment.start.x + (midSegment.end.x - midSegment.start.x) * segmentProgress,\n y: midSegment.start.y + (midSegment.end.y - midSegment.start.y) * segmentProgress\n };\n\n return midPoint;\n}\n\n\n/**\n * Get the mid of the given Element.\n *\n * @param {Element} element\n *\n * @return {Point}\n */\nexport function getMid(element) {\n if (isConnection(element)) {\n return getConnectionMid(element);\n }\n\n return getBoundsMid(element);\n}\n\n// orientation utils //////////////////////\n\n/**\n * Get orientation of the given rectangle with respect to\n * the reference rectangle.\n *\n * A padding (positive or negative) may be passed to influence\n * horizontal / vertical orientation and intersection.\n *\n * @param {Rect} rect\n * @param {Rect} reference\n * @param {Point|number} padding\n *\n * @return {DirectionTRBL|Intersection} the orientation; one of top, top-left, left, ..., bottom, right or intersect.\n */\nexport function getOrientation(rect, reference, padding) {\n\n padding = padding || 0;\n\n // make sure we can use an object, too\n // for individual { x, y } padding\n if (!isObject(padding)) {\n padding = { x: padding, y: padding };\n }\n\n\n var rectOrientation = asTRBL(rect),\n referenceOrientation = asTRBL(reference);\n\n var top = rectOrientation.bottom + padding.y <= referenceOrientation.top,\n right = rectOrientation.left - padding.x >= referenceOrientation.right,\n bottom = rectOrientation.top - padding.y >= referenceOrientation.bottom,\n left = rectOrientation.right + padding.x <= referenceOrientation.left;\n\n var vertical = top ? 'top' : (bottom ? 'bottom' : null),\n horizontal = left ? 'left' : (right ? 'right' : null);\n\n if (horizontal && vertical) {\n return vertical + '-' + horizontal;\n } else {\n return horizontal || vertical || 'intersect';\n }\n}\n\n\n// intersection utils //////////////////////\n\n/**\n * Get intersection between an element and a line path.\n *\n * @param {string} elementPath\n * @param {string} linePath\n * @param {boolean} cropStart Whether to crop start or end.\n *\n * @return {Point}\n */\nexport function getElementLineIntersection(elementPath, linePath, cropStart) {\n\n var intersections = getIntersections(elementPath, linePath);\n\n // recognize intersections\n // only one -> choose\n // two close together -> choose first\n // two or more distinct -> pull out appropriate one\n // none -> ok (fallback to point itself)\n if (intersections.length === 1) {\n return roundPoint(intersections[0]);\n } else if (intersections.length === 2 && pointDistance(intersections[0], intersections[1]) < 1) {\n return roundPoint(intersections[0]);\n } else if (intersections.length > 1) {\n\n // sort by intersections based on connection segment +\n // distance from start\n intersections = sortBy(intersections, function(i) {\n var distance = Math.floor(i.t2 * 100) || 1;\n\n distance = 100 - distance;\n\n distance = (distance < 10 ? '0' : '') + distance;\n\n // create a sort string that makes sure we sort\n // line segment ASC + line segment position DESC (for cropStart)\n // line segment ASC + line segment position ASC (for cropEnd)\n return i.segment2 + '#' + distance;\n });\n\n return roundPoint(intersections[cropStart ? 0 : intersections.length - 1]);\n }\n\n return null;\n}\n\n\nexport function getIntersections(a, b) {\n return intersectPaths(a, b);\n}\n\n\nexport function filterRedundantWaypoints(waypoints) {\n\n // alter copy of waypoints, not original\n waypoints = waypoints.slice();\n\n var idx = 0,\n point,\n previousPoint,\n nextPoint;\n\n while (waypoints[idx]) {\n point = waypoints[idx];\n previousPoint = waypoints[idx - 1];\n nextPoint = waypoints[idx + 1];\n\n if (pointDistance(point, nextPoint) === 0 ||\n pointsOnLine(previousPoint, nextPoint, point)) {\n\n // remove point, if overlapping with {nextPoint}\n // or on line with {previousPoint} -> {point} -> {nextPoint}\n waypoints.splice(idx, 1);\n } else {\n idx++;\n }\n }\n\n return waypoints;\n}\n\n// helpers //////////////////////\n\nfunction distance(a, b) {\n return Math.sqrt(Math.pow(a.x - b.x, 2) + Math.pow(a.y - b.y, 2));\n}","import {\n isNumber,\n assign,\n forEach,\n every,\n debounce,\n bind,\n reduce,\n find\n} from 'min-dash';\n\nimport {\n assignStyle\n} from 'min-dom';\n\nimport {\n add as collectionAdd,\n remove as collectionRemove\n} from '../util/Collections';\n\nimport {\n getType,\n getBBox as getBoundingBox\n} from '../util/Elements';\n\nimport { asTRBL } from '../layout/LayoutUtil';\n\nimport {\n append as svgAppend,\n attr as svgAttr,\n classes as svgClasses,\n create as svgCreate,\n transform as svgTransform,\n remove as svgRemove\n} from 'tiny-svg';\n\nimport { createMatrix as createMatrix } from 'tiny-svg';\n\n\n/**\n * @typedef {import('./Types').ConnectionLike} ConnectionLike\n * @typedef {import('./Types').RootLike} RootLike\n * @typedef {import('./Types').ParentLike } ParentLike\n * @typedef {import('./Types').ShapeLike} ShapeLike\n *\n * @typedef { {\n * container?: HTMLElement;\n * deferUpdate?: boolean;\n * width?: number;\n * height?: number;\n * } } CanvasConfig\n * @typedef { {\n * group: SVGElement;\n * index: number;\n * visible: boolean;\n * } } CanvasLayer\n * @typedef { {\n * [key: string]: CanvasLayer;\n * } } CanvasLayers\n * @typedef { {\n * rootElement: ShapeLike;\n * layer: CanvasLayer;\n * } } CanvasPlane\n * @typedef { {\n * scale: number;\n * inner: Rect;\n * outer: Dimensions;\n * } & Rect } CanvasViewbox\n *\n * @typedef {import('./ElementRegistry').default} ElementRegistry\n * @typedef {import('./EventBus').default} EventBus\n * @typedef {import('./GraphicsFactory').default} GraphicsFactory\n *\n * @typedef {import('../util/Types').Dimensions} Dimensions\n * @typedef {import('../util/Types').Point} Point\n * @typedef {import('../util/Types').Rect} Rect\n * @typedef {import('../util/Types').RectTRBL} RectTRBL\n * @typedef {import('../util/Types').ScrollDelta} ScrollDelta\n */\n\nfunction round(number, resolution) {\n return Math.round(number * resolution) / resolution;\n}\n\nfunction ensurePx(number) {\n return isNumber(number) ? number + 'px' : number;\n}\n\nfunction findRoot(element) {\n while (element.parent) {\n element = element.parent;\n }\n\n return element;\n}\n\n/**\n * Creates a HTML container element for a SVG element with\n * the given configuration\n *\n * @param {CanvasConfig} options\n *\n * @return {HTMLElement} the container element\n */\nfunction createContainer(options) {\n\n options = assign({}, { width: '100%', height: '100%' }, options);\n\n const container = options.container || document.body;\n\n // create a
    around the svg element with the respective size\n // this way we can always get the correct container size\n // (this is impossible for elements at the moment)\n const parent = document.createElement('div');\n parent.setAttribute('class', 'djs-container djs-parent');\n\n assignStyle(parent, {\n position: 'relative',\n overflow: 'hidden',\n width: ensurePx(options.width),\n height: ensurePx(options.height)\n });\n\n container.appendChild(parent);\n\n return parent;\n}\n\nfunction createGroup(parent, cls, childIndex) {\n const group = svgCreate('g');\n svgClasses(group).add(cls);\n\n const index = childIndex !== undefined ? childIndex : parent.childNodes.length - 1;\n\n // must ensure second argument is node or _null_\n // cf. https://developer.mozilla.org/en-US/docs/Web/API/Node/insertBefore\n parent.insertBefore(group, parent.childNodes[index] || null);\n\n return group;\n}\n\nconst BASE_LAYER = 'base';\n\n// render plane contents behind utility layers\nconst PLANE_LAYER_INDEX = 0;\nconst UTILITY_LAYER_INDEX = 1;\n\n\nconst REQUIRED_MODEL_ATTRS = {\n shape: [ 'x', 'y', 'width', 'height' ],\n connection: [ 'waypoints' ]\n};\n\n/**\n * The main drawing canvas.\n *\n * @class\n * @constructor\n *\n * @emits Canvas#canvas.init\n *\n * @param {CanvasConfig|null} config\n * @param {EventBus} eventBus\n * @param {GraphicsFactory} graphicsFactory\n * @param {ElementRegistry} elementRegistry\n */\nexport default function Canvas(config, eventBus, graphicsFactory, elementRegistry) {\n this._eventBus = eventBus;\n this._elementRegistry = elementRegistry;\n this._graphicsFactory = graphicsFactory;\n\n /**\n * @type {number}\n */\n this._rootsIdx = 0;\n\n /**\n * @type {CanvasLayers}\n */\n this._layers = {};\n\n /**\n * @type {CanvasPlane[]}\n */\n this._planes = [];\n\n /**\n * @type {RootLike|null}\n */\n this._rootElement = null;\n\n this._init(config || {});\n}\n\nCanvas.$inject = [\n 'config.canvas',\n 'eventBus',\n 'graphicsFactory',\n 'elementRegistry'\n];\n\n/**\n * Creates a element that is wrapped into a
    .\n * This way we are always able to correctly figure out the size of the svg element\n * by querying the parent node.\n\n * (It is not possible to get the size of a svg element cross browser @ 2014-04-01)\n\n *
    \n * \n * ...\n * \n *
    \n *\n * @param {CanvasConfig} config\n */\nCanvas.prototype._init = function(config) {\n\n const eventBus = this._eventBus;\n\n // html container\n const container = this._container = createContainer(config);\n\n const svg = this._svg = svgCreate('svg');\n svgAttr(svg, { width: '100%', height: '100%' });\n\n svgAppend(container, svg);\n\n const viewport = this._viewport = createGroup(svg, 'viewport');\n\n // debounce canvas.viewbox.changed events when deferUpdate is set\n // to help with potential performance issues\n if (config.deferUpdate) {\n this._viewboxChanged = debounce(bind(this._viewboxChanged, this), 300);\n }\n\n eventBus.on('diagram.init', () => {\n\n /**\n * An event indicating that the canvas is ready to be drawn on.\n *\n * @memberOf Canvas\n *\n * @event canvas.init\n *\n * @type {Object}\n * @property {SVGElement} svg the created svg element\n * @property {SVGElement} viewport the direct parent of diagram elements and shapes\n */\n eventBus.fire('canvas.init', {\n svg: svg,\n viewport: viewport\n });\n\n });\n\n // reset viewbox on shape changes to\n // recompute the viewbox\n eventBus.on([\n 'shape.added',\n 'connection.added',\n 'shape.removed',\n 'connection.removed',\n 'elements.changed',\n 'root.set'\n ], () => {\n delete this._cachedViewbox;\n });\n\n eventBus.on('diagram.destroy', 500, this._destroy, this);\n eventBus.on('diagram.clear', 500, this._clear, this);\n};\n\nCanvas.prototype._destroy = function() {\n this._eventBus.fire('canvas.destroy', {\n svg: this._svg,\n viewport: this._viewport\n });\n\n const parent = this._container.parentNode;\n\n if (parent) {\n parent.removeChild(this._container);\n }\n\n delete this._svg;\n delete this._container;\n delete this._layers;\n delete this._planes;\n delete this._rootElement;\n delete this._viewport;\n};\n\nCanvas.prototype._clear = function() {\n\n const allElements = this._elementRegistry.getAll();\n\n // remove all elements\n allElements.forEach(element => {\n const type = getType(element);\n\n if (type === 'root') {\n this.removeRootElement(element);\n } else {\n this._removeElement(element, type);\n }\n });\n\n // remove all planes\n this._planes = [];\n this._rootElement = null;\n\n // force recomputation of view box\n delete this._cachedViewbox;\n};\n\n/**\n * Returns the default layer on which\n * all elements are drawn.\n *\n * @return {SVGElement} The SVG element of the layer.\n */\nCanvas.prototype.getDefaultLayer = function() {\n return this.getLayer(BASE_LAYER, PLANE_LAYER_INDEX);\n};\n\n/**\n * Returns a layer that is used to draw elements\n * or annotations on it.\n *\n * Non-existing layers retrieved through this method\n * will be created. During creation, the optional index\n * may be used to create layers below or above existing layers.\n * A layer with a certain index is always created above all\n * existing layers with the same index.\n *\n * @param {string} name The name of the layer.\n * @param {number} [index] The index of the layer.\n *\n * @return {SVGElement} The SVG element of the layer.\n */\nCanvas.prototype.getLayer = function(name, index) {\n\n if (!name) {\n throw new Error('must specify a name');\n }\n\n let layer = this._layers[name];\n\n if (!layer) {\n layer = this._layers[name] = this._createLayer(name, index);\n }\n\n // throw an error if layer creation / retrival is\n // requested on different index\n if (typeof index !== 'undefined' && layer.index !== index) {\n throw new Error('layer <' + name + '> already created at index <' + index + '>');\n }\n\n return layer.group;\n};\n\n/**\n * For a given index, return the number of layers that have a higher index and\n * are visible.\n *\n * This is used to determine the node a layer should be inserted at.\n *\n * @param {number} index\n *\n * @return {number}\n */\nCanvas.prototype._getChildIndex = function(index) {\n return reduce(this._layers, function(childIndex, layer) {\n if (layer.visible && index >= layer.index) {\n childIndex++;\n }\n\n return childIndex;\n }, 0);\n};\n\n/**\n * Creates a given layer and returns it.\n *\n * @param {string} name\n * @param {number} [index=0]\n *\n * @return {CanvasLayer}\n */\nCanvas.prototype._createLayer = function(name, index) {\n\n if (typeof index === 'undefined') {\n index = UTILITY_LAYER_INDEX;\n }\n\n const childIndex = this._getChildIndex(index);\n\n return {\n group: createGroup(this._viewport, 'layer-' + name, childIndex),\n index: index,\n visible: true\n };\n};\n\n\n/**\n * Shows a given layer.\n *\n * @param {string} name The name of the layer.\n *\n * @return {SVGElement} The SVG element of the layer.\n */\nCanvas.prototype.showLayer = function(name) {\n\n if (!name) {\n throw new Error('must specify a name');\n }\n\n const layer = this._layers[name];\n\n if (!layer) {\n throw new Error('layer <' + name + '> does not exist');\n }\n\n const viewport = this._viewport;\n const group = layer.group;\n const index = layer.index;\n\n if (layer.visible) {\n return group;\n }\n\n const childIndex = this._getChildIndex(index);\n\n viewport.insertBefore(group, viewport.childNodes[childIndex] || null);\n\n layer.visible = true;\n\n return group;\n};\n\n/**\n * Hides a given layer.\n *\n * @param {string} name The name of the layer.\n *\n * @return {SVGElement} The SVG element of the layer.\n */\nCanvas.prototype.hideLayer = function(name) {\n\n if (!name) {\n throw new Error('must specify a name');\n }\n\n const layer = this._layers[name];\n\n if (!layer) {\n throw new Error('layer <' + name + '> does not exist');\n }\n\n const group = layer.group;\n\n if (!layer.visible) {\n return group;\n }\n\n svgRemove(group);\n\n layer.visible = false;\n\n return group;\n};\n\n\nCanvas.prototype._removeLayer = function(name) {\n\n const layer = this._layers[name];\n\n if (layer) {\n delete this._layers[name];\n\n svgRemove(layer.group);\n }\n};\n\n/**\n * Returns the currently active layer. Can be null.\n *\n * @return {CanvasLayer|null} The active layer of `null`.\n */\nCanvas.prototype.getActiveLayer = function() {\n const plane = this._findPlaneForRoot(this.getRootElement());\n\n if (!plane) {\n return null;\n }\n\n return plane.layer;\n};\n\n\n/**\n * Returns the plane which contains the given element.\n *\n * @param {ShapeLike|ConnectionLike|string} element The element or its ID.\n *\n * @return {RootLike|undefined} The root of the element.\n */\nCanvas.prototype.findRoot = function(element) {\n if (typeof element === 'string') {\n element = this._elementRegistry.get(element);\n }\n\n if (!element) {\n return;\n }\n\n const plane = this._findPlaneForRoot(\n findRoot(element)\n ) || {};\n\n return plane.rootElement;\n};\n\n/**\n * Return a list of all root elements on the diagram.\n *\n * @return {(RootLike)[]} The list of root elements.\n */\nCanvas.prototype.getRootElements = function() {\n return this._planes.map(function(plane) {\n return plane.rootElement;\n });\n};\n\nCanvas.prototype._findPlaneForRoot = function(rootElement) {\n return find(this._planes, function(plane) {\n return plane.rootElement === rootElement;\n });\n};\n\n\n/**\n * Returns the html element that encloses the\n * drawing canvas.\n *\n * @return {HTMLElement} The HTML element of the container.\n */\nCanvas.prototype.getContainer = function() {\n return this._container;\n};\n\n\n// markers //////////////////////\n\nCanvas.prototype._updateMarker = function(element, marker, add) {\n let container;\n\n if (!element.id) {\n element = this._elementRegistry.get(element);\n }\n\n element.markers = element.markers || new Set();\n\n // we need to access all\n container = this._elementRegistry._elements[element.id];\n\n if (!container) {\n return;\n }\n\n forEach([ container.gfx, container.secondaryGfx ], function(gfx) {\n if (gfx) {\n\n // invoke either addClass or removeClass based on mode\n if (add) {\n element.markers.add(marker);\n svgClasses(gfx).add(marker);\n } else {\n element.markers.delete(marker);\n svgClasses(gfx).remove(marker);\n }\n }\n });\n\n /**\n * An event indicating that a marker has been updated for an element\n *\n * @event element.marker.update\n * @type {Object}\n * @property {Element} element the shape\n * @property {SVGElement} gfx the graphical representation of the shape\n * @property {string} marker\n * @property {boolean} add true if the marker was added, false if it got removed\n */\n this._eventBus.fire('element.marker.update', { element: element, gfx: container.gfx, marker: marker, add: !!add });\n};\n\n\n/**\n * Adds a marker to an element (basically a css class).\n *\n * Fires the element.marker.update event, making it possible to\n * integrate extension into the marker life-cycle, too.\n *\n * @example\n *\n * ```javascript\n * canvas.addMarker('foo', 'some-marker');\n *\n * const fooGfx = canvas.getGraphics('foo');\n *\n * fooGfx; // ... \n * ```\n *\n * @param {ShapeLike|ConnectionLike|string} element The element or its ID.\n * @param {string} marker The marker.\n */\nCanvas.prototype.addMarker = function(element, marker) {\n this._updateMarker(element, marker, true);\n};\n\n\n/**\n * Remove a marker from an element.\n *\n * Fires the element.marker.update event, making it possible to\n * integrate extension into the marker life-cycle, too.\n *\n * @param {ShapeLike|ConnectionLike|string} element The element or its ID.\n * @param {string} marker The marker.\n */\nCanvas.prototype.removeMarker = function(element, marker) {\n this._updateMarker(element, marker, false);\n};\n\n/**\n * Check whether an element has a given marker.\n *\n * @param {ShapeLike|ConnectionLike|string} element The element or its ID.\n * @param {string} marker The marker.\n */\nCanvas.prototype.hasMarker = function(element, marker) {\n if (!element.id) {\n element = this._elementRegistry.get(element);\n }\n\n if (!element.markers) {\n return false;\n }\n\n return element.markers.has(marker);\n};\n\n/**\n * Toggles a marker on an element.\n *\n * Fires the element.marker.update event, making it possible to\n * integrate extension into the marker life-cycle, too.\n *\n * @param {ShapeLike|ConnectionLike|string} element The element or its ID.\n * @param {string} marker The marker.\n */\nCanvas.prototype.toggleMarker = function(element, marker) {\n if (this.hasMarker(element, marker)) {\n this.removeMarker(element, marker);\n } else {\n this.addMarker(element, marker);\n }\n};\n\n/**\n * Returns the current root element.\n *\n * Supports two different modes for handling root elements:\n *\n * 1. if no root element has been added before, an implicit root will be added\n * and returned. This is used in applications that don't require explicit\n * root elements.\n *\n * 2. when root elements have been added before calling `getRootElement`,\n * root elements can be null. This is used for applications that want to manage\n * root elements themselves.\n *\n * @return {RootLike} The current root element.\n */\nCanvas.prototype.getRootElement = function() {\n const rootElement = this._rootElement;\n\n // can return null if root elements are present but none was set yet\n if (rootElement || this._planes.length) {\n return rootElement;\n }\n\n return this.setRootElement(this.addRootElement(null));\n};\n\n/**\n * Adds a given root element and returns it.\n *\n * @param {RootLike} [rootElement] The root element to be added.\n *\n * @return {RootLike} The added root element or an implicit root element.\n */\nCanvas.prototype.addRootElement = function(rootElement) {\n const idx = this._rootsIdx++;\n\n if (!rootElement) {\n rootElement = {\n id: '__implicitroot_' + idx,\n children: [],\n isImplicit: true\n };\n }\n\n const layerName = rootElement.layer = 'root-' + idx;\n\n this._ensureValid('root', rootElement);\n\n const layer = this.getLayer(layerName, PLANE_LAYER_INDEX);\n\n this.hideLayer(layerName);\n\n this._addRoot(rootElement, layer);\n\n this._planes.push({\n rootElement: rootElement,\n layer: layer\n });\n\n return rootElement;\n};\n\n/**\n * Removes a given root element and returns it.\n *\n * @param {RootLike|string} rootElement element or element ID\n *\n * @return {RootLike|undefined} removed element\n */\nCanvas.prototype.removeRootElement = function(rootElement) {\n\n if (typeof rootElement === 'string') {\n rootElement = this._elementRegistry.get(rootElement);\n }\n\n const plane = this._findPlaneForRoot(rootElement);\n\n if (!plane) {\n return;\n }\n\n // hook up life-cycle events\n this._removeRoot(rootElement);\n\n // clean up layer\n this._removeLayer(rootElement.layer);\n\n // clean up plane\n this._planes = this._planes.filter(function(plane) {\n return plane.rootElement !== rootElement;\n });\n\n // clean up active root\n if (this._rootElement === rootElement) {\n this._rootElement = null;\n }\n\n return rootElement;\n};\n\n\n/**\n * Sets a given element as the new root element for the canvas\n * and returns the new root element.\n *\n * @param {RootLike} rootElement The root element to be set.\n *\n * @return {RootLike} The set root element.\n */\nCanvas.prototype.setRootElement = function(rootElement) {\n\n if (rootElement === this._rootElement) {\n return rootElement;\n }\n\n let plane;\n\n if (!rootElement) {\n throw new Error('rootElement required');\n }\n\n plane = this._findPlaneForRoot(rootElement);\n\n // give set add semantics for backwards compatibility\n if (!plane) {\n rootElement = this.addRootElement(rootElement);\n }\n\n this._setRoot(rootElement);\n\n return rootElement;\n};\n\n\nCanvas.prototype._removeRoot = function(element) {\n const elementRegistry = this._elementRegistry,\n eventBus = this._eventBus;\n\n // simulate element remove event sequence\n eventBus.fire('root.remove', { element: element });\n eventBus.fire('root.removed', { element: element });\n\n elementRegistry.remove(element);\n};\n\n\nCanvas.prototype._addRoot = function(element, gfx) {\n const elementRegistry = this._elementRegistry,\n eventBus = this._eventBus;\n\n // resemble element add event sequence\n eventBus.fire('root.add', { element: element });\n\n elementRegistry.add(element, gfx);\n\n eventBus.fire('root.added', { element: element, gfx: gfx });\n};\n\n\nCanvas.prototype._setRoot = function(rootElement, layer) {\n\n const currentRoot = this._rootElement;\n\n if (currentRoot) {\n\n // un-associate previous root element \n this._elementRegistry.updateGraphics(currentRoot, null, true);\n\n // hide previous layer\n this.hideLayer(currentRoot.layer);\n }\n\n if (rootElement) {\n\n if (!layer) {\n layer = this._findPlaneForRoot(rootElement).layer;\n }\n\n // associate element with \n this._elementRegistry.updateGraphics(rootElement, this._svg, true);\n\n // show root layer\n this.showLayer(rootElement.layer);\n }\n\n this._rootElement = rootElement;\n\n this._eventBus.fire('root.set', { element: rootElement });\n};\n\nCanvas.prototype._ensureValid = function(type, element) {\n if (!element.id) {\n throw new Error('element must have an id');\n }\n\n if (this._elementRegistry.get(element.id)) {\n throw new Error('element <' + element.id + '> already exists');\n }\n\n const requiredAttrs = REQUIRED_MODEL_ATTRS[type];\n\n const valid = every(requiredAttrs, function(attr) {\n return typeof element[attr] !== 'undefined';\n });\n\n if (!valid) {\n throw new Error(\n 'must supply { ' + requiredAttrs.join(', ') + ' } with ' + type);\n }\n};\n\nCanvas.prototype._setParent = function(element, parent, parentIndex) {\n collectionAdd(parent.children, element, parentIndex);\n element.parent = parent;\n};\n\n/**\n * Adds an element to the canvas.\n *\n * This wires the parent <-> child relationship between the element and\n * a explicitly specified parent or an implicit root element.\n *\n * During add it emits the events\n *\n * * <{type}.add> (element, parent)\n * * <{type}.added> (element, gfx)\n *\n * Extensions may hook into these events to perform their magic.\n *\n * @param {string} type\n * @param {ConnectionLike|ShapeLike} element\n * @param {ShapeLike} [parent]\n * @param {number} [parentIndex]\n *\n * @return {ConnectionLike|ShapeLike} The added element.\n */\nCanvas.prototype._addElement = function(type, element, parent, parentIndex) {\n\n parent = parent || this.getRootElement();\n\n const eventBus = this._eventBus,\n graphicsFactory = this._graphicsFactory;\n\n this._ensureValid(type, element);\n\n eventBus.fire(type + '.add', { element: element, parent: parent });\n\n this._setParent(element, parent, parentIndex);\n\n // create graphics\n const gfx = graphicsFactory.create(type, element, parentIndex);\n\n this._elementRegistry.add(element, gfx);\n\n // update its visual\n graphicsFactory.update(type, element, gfx);\n\n eventBus.fire(type + '.added', { element: element, gfx: gfx });\n\n return element;\n};\n\n/**\n * Adds a shape to the canvas.\n *\n * @param {ShapeLike} shape The shape to be added\n * @param {ParentLike} [parent] The shape's parent.\n * @param {number} [parentIndex] The index at which to add the shape to the parent's children.\n *\n * @return {ShapeLike} The added shape.\n */\nCanvas.prototype.addShape = function(shape, parent, parentIndex) {\n return this._addElement('shape', shape, parent, parentIndex);\n};\n\n/**\n * Adds a connection to the canvas.\n *\n * @param {ConnectionLike} connection The connection to be added.\n * @param {ParentLike} [parent] The connection's parent.\n * @param {number} [parentIndex] The index at which to add the connection to the parent's children.\n *\n * @return {ConnectionLike} The added connection.\n */\nCanvas.prototype.addConnection = function(connection, parent, parentIndex) {\n return this._addElement('connection', connection, parent, parentIndex);\n};\n\n\n/**\n * Internal remove element\n */\nCanvas.prototype._removeElement = function(element, type) {\n\n const elementRegistry = this._elementRegistry,\n graphicsFactory = this._graphicsFactory,\n eventBus = this._eventBus;\n\n element = elementRegistry.get(element.id || element);\n\n if (!element) {\n\n // element was removed already\n return;\n }\n\n eventBus.fire(type + '.remove', { element: element });\n\n graphicsFactory.remove(element);\n\n // unset parent <-> child relationship\n collectionRemove(element.parent && element.parent.children, element);\n element.parent = null;\n\n eventBus.fire(type + '.removed', { element: element });\n\n elementRegistry.remove(element);\n\n return element;\n};\n\n\n/**\n * Removes a shape from the canvas.\n *\n * @fires ShapeRemoveEvent\n * @fires ShapeRemovedEvent\n *\n * @param {ShapeLike|string} shape The shape or its ID.\n *\n * @return {ShapeLike} The removed shape.\n */\nCanvas.prototype.removeShape = function(shape) {\n\n /**\n * An event indicating that a shape is about to be removed from the canvas.\n *\n * @memberOf Canvas\n *\n * @event ShapeRemoveEvent\n * @type {Object}\n * @property {ShapeLike} element The shape.\n * @property {SVGElement} gfx The graphical element.\n */\n\n /**\n * An event indicating that a shape has been removed from the canvas.\n *\n * @memberOf Canvas\n *\n * @event ShapeRemovedEvent\n * @type {Object}\n * @property {ShapeLike} element The shape.\n * @property {SVGElement} gfx The graphical element.\n */\n return this._removeElement(shape, 'shape');\n};\n\n\n/**\n * Removes a connection from the canvas.\n *\n * @fires ConnectionRemoveEvent\n * @fires ConnectionRemovedEvent\n *\n * @param {ConnectionLike|string} connection The connection or its ID.\n *\n * @return {ConnectionLike} The removed connection.\n */\nCanvas.prototype.removeConnection = function(connection) {\n\n /**\n * An event indicating that a connection is about to be removed from the canvas.\n *\n * @memberOf Canvas\n *\n * @event ConnectionRemoveEvent\n * @type {Object}\n * @property {ConnectionLike} element The connection.\n * @property {SVGElement} gfx The graphical element.\n */\n\n /**\n * An event indicating that a connection has been removed from the canvas.\n *\n * @memberOf Canvas\n *\n * @event ConnectionRemovedEvent\n * @type {Object}\n * @property {ConnectionLike} element The connection.\n * @property {SVGElement} gfx The graphical element.\n */\n return this._removeElement(connection, 'connection');\n};\n\n\n/**\n * Returns the graphical element of an element.\n *\n * @param {ShapeLike|ConnectionLike|string} element The element or its ID.\n * @param {boolean} [secondary=false] Whether to return the secondary graphical element.\n *\n * @return {SVGElement} The graphical element.\n */\nCanvas.prototype.getGraphics = function(element, secondary) {\n return this._elementRegistry.getGraphics(element, secondary);\n};\n\n\n/**\n * Perform a viewbox update via a given change function.\n *\n * @param {Function} changeFn\n */\nCanvas.prototype._changeViewbox = function(changeFn) {\n\n // notify others of the upcoming viewbox change\n this._eventBus.fire('canvas.viewbox.changing');\n\n // perform actual change\n changeFn.apply(this);\n\n // reset the cached viewbox so that\n // a new get operation on viewbox or zoom\n // triggers a viewbox re-computation\n this._cachedViewbox = null;\n\n // notify others of the change; this step\n // may or may not be debounced\n this._viewboxChanged();\n};\n\nCanvas.prototype._viewboxChanged = function() {\n this._eventBus.fire('canvas.viewbox.changed', { viewbox: this.viewbox() });\n};\n\n\n/**\n * Gets or sets the view box of the canvas, i.e. the\n * area that is currently displayed.\n *\n * The getter may return a cached viewbox (if it is currently\n * changing). To force a recomputation, pass `false` as the first argument.\n *\n * @example\n *\n * ```javascript\n * canvas.viewbox({ x: 100, y: 100, width: 500, height: 500 })\n *\n * // sets the visible area of the diagram to (100|100) -> (600|100)\n * // and and scales it according to the diagram width\n *\n * const viewbox = canvas.viewbox(); // pass `false` to force recomputing the box.\n *\n * console.log(viewbox);\n * // {\n * // inner: Dimensions,\n * // outer: Dimensions,\n * // scale,\n * // x, y,\n * // width, height\n * // }\n *\n * // if the current diagram is zoomed and scrolled, you may reset it to the\n * // default zoom via this method, too:\n *\n * const zoomedAndScrolledViewbox = canvas.viewbox();\n *\n * canvas.viewbox({\n * x: 0,\n * y: 0,\n * width: zoomedAndScrolledViewbox.outer.width,\n * height: zoomedAndScrolledViewbox.outer.height\n * });\n * ```\n *\n * @param {Rect} [box] The viewbox to be set.\n *\n * @return {CanvasViewbox} The set viewbox.\n */\nCanvas.prototype.viewbox = function(box) {\n\n if (box === undefined && this._cachedViewbox) {\n return this._cachedViewbox;\n }\n\n const viewport = this._viewport,\n outerBox = this.getSize();\n let innerBox,\n matrix,\n activeLayer,\n transform,\n scale,\n x, y;\n\n if (!box) {\n\n // compute the inner box based on the\n // diagrams active layer. This allows us to exclude\n // external components, such as overlays\n\n activeLayer = this._rootElement ? this.getActiveLayer() : null;\n innerBox = activeLayer && activeLayer.getBBox() || {};\n\n transform = svgTransform(viewport);\n matrix = transform ? transform.matrix : createMatrix();\n scale = round(matrix.a, 1000);\n\n x = round(-matrix.e || 0, 1000);\n y = round(-matrix.f || 0, 1000);\n\n box = this._cachedViewbox = {\n x: x ? x / scale : 0,\n y: y ? y / scale : 0,\n width: outerBox.width / scale,\n height: outerBox.height / scale,\n scale: scale,\n inner: {\n width: innerBox.width || 0,\n height: innerBox.height || 0,\n x: innerBox.x || 0,\n y: innerBox.y || 0\n },\n outer: outerBox\n };\n\n return box;\n } else {\n\n this._changeViewbox(function() {\n scale = Math.min(outerBox.width / box.width, outerBox.height / box.height);\n\n const matrix = this._svg.createSVGMatrix()\n .scale(scale)\n .translate(-box.x, -box.y);\n\n svgTransform(viewport, matrix);\n });\n }\n\n return box;\n};\n\n\n/**\n * Gets or sets the scroll of the canvas.\n *\n * @param {ScrollDelta} [delta] The scroll to be set.\n *\n * @return {Point}\n */\nCanvas.prototype.scroll = function(delta) {\n\n const node = this._viewport;\n let matrix = node.getCTM();\n\n if (delta) {\n this._changeViewbox(function() {\n delta = assign({ dx: 0, dy: 0 }, delta || {});\n\n matrix = this._svg.createSVGMatrix().translate(delta.dx, delta.dy).multiply(matrix);\n\n setCTM(node, matrix);\n });\n }\n\n return { x: matrix.e, y: matrix.f };\n};\n\n/**\n * Scrolls the viewbox to contain the given element.\n * Optionally specify a padding to be applied to the edges.\n *\n * @param {ShapeLike|ConnectionLike|string} element The element to scroll to or its ID.\n * @param {RectTRBL|number} [padding=100] The padding to be applied. Can also specify top, bottom, left and right.\n */\nCanvas.prototype.scrollToElement = function(element, padding) {\n let defaultPadding = 100;\n\n if (typeof element === 'string') {\n element = this._elementRegistry.get(element);\n }\n\n // set to correct rootElement\n const rootElement = this.findRoot(element);\n\n if (rootElement !== this.getRootElement()) {\n this.setRootElement(rootElement);\n }\n\n // element is rootElement, do not change viewport\n if (rootElement === element) {\n return;\n }\n\n if (!padding) {\n padding = {};\n }\n if (typeof padding === 'number') {\n defaultPadding = padding;\n }\n\n padding = {\n top: padding.top || defaultPadding,\n right: padding.right || defaultPadding,\n bottom: padding.bottom || defaultPadding,\n left: padding.left || defaultPadding\n };\n\n const elementBounds = getBoundingBox(element),\n elementTrbl = asTRBL(elementBounds),\n viewboxBounds = this.viewbox(),\n zoom = this.zoom();\n let dx, dy;\n\n // shrink viewboxBounds with padding\n viewboxBounds.y += padding.top / zoom;\n viewboxBounds.x += padding.left / zoom;\n viewboxBounds.width -= (padding.right + padding.left) / zoom;\n viewboxBounds.height -= (padding.bottom + padding.top) / zoom;\n\n const viewboxTrbl = asTRBL(viewboxBounds);\n\n const canFit = elementBounds.width < viewboxBounds.width && elementBounds.height < viewboxBounds.height;\n\n if (!canFit) {\n\n // top-left when element can't fit\n dx = elementBounds.x - viewboxBounds.x;\n dy = elementBounds.y - viewboxBounds.y;\n\n } else {\n\n const dRight = Math.max(0, elementTrbl.right - viewboxTrbl.right),\n dLeft = Math.min(0, elementTrbl.left - viewboxTrbl.left),\n dBottom = Math.max(0, elementTrbl.bottom - viewboxTrbl.bottom),\n dTop = Math.min(0, elementTrbl.top - viewboxTrbl.top);\n\n dx = dRight || dLeft;\n dy = dBottom || dTop;\n\n }\n\n this.scroll({ dx: -dx * zoom, dy: -dy * zoom });\n};\n\n/**\n * Gets or sets the current zoom of the canvas, optionally zooming to the\n * specified position.\n *\n * The getter may return a cached zoom level. Call it with `false` as the first\n * argument to force recomputation of the current level.\n *\n * @param {number|'fit-viewport'} [newScale] The new zoom level, either a number,\n * i.e. 0.9, or `fit-viewport` to adjust the size to fit the current viewport.\n * @param {Point} [center] The reference point { x: ..., y: ...} to zoom to.\n *\n * @return {number} The set zoom level.\n */\nCanvas.prototype.zoom = function(newScale, center) {\n\n if (!newScale) {\n return this.viewbox(newScale).scale;\n }\n\n if (newScale === 'fit-viewport') {\n return this._fitViewport(center);\n }\n\n let outer,\n matrix;\n\n this._changeViewbox(function() {\n\n if (typeof center !== 'object') {\n outer = this.viewbox().outer;\n\n center = {\n x: outer.width / 2,\n y: outer.height / 2\n };\n }\n\n matrix = this._setZoom(newScale, center);\n });\n\n return round(matrix.a, 1000);\n};\n\nfunction setCTM(node, m) {\n const mstr = 'matrix(' + m.a + ',' + m.b + ',' + m.c + ',' + m.d + ',' + m.e + ',' + m.f + ')';\n node.setAttribute('transform', mstr);\n}\n\nCanvas.prototype._fitViewport = function(center) {\n\n const vbox = this.viewbox(),\n outer = vbox.outer,\n inner = vbox.inner;\n let newScale,\n newViewbox;\n\n // display the complete diagram without zooming in.\n // instead of relying on internal zoom, we perform a\n // hard reset on the canvas viewbox to realize this\n //\n // if diagram does not need to be zoomed in, we focus it around\n // the diagram origin instead\n\n if (inner.x >= 0 &&\n inner.y >= 0 &&\n inner.x + inner.width <= outer.width &&\n inner.y + inner.height <= outer.height &&\n !center) {\n\n newViewbox = {\n x: 0,\n y: 0,\n width: Math.max(inner.width + inner.x, outer.width),\n height: Math.max(inner.height + inner.y, outer.height)\n };\n } else {\n\n newScale = Math.min(1, outer.width / inner.width, outer.height / inner.height);\n newViewbox = {\n x: inner.x + (center ? inner.width / 2 - outer.width / newScale / 2 : 0),\n y: inner.y + (center ? inner.height / 2 - outer.height / newScale / 2 : 0),\n width: outer.width / newScale,\n height: outer.height / newScale\n };\n }\n\n this.viewbox(newViewbox);\n\n return this.viewbox(false).scale;\n};\n\n\nCanvas.prototype._setZoom = function(scale, center) {\n\n const svg = this._svg,\n viewport = this._viewport;\n\n const matrix = svg.createSVGMatrix();\n const point = svg.createSVGPoint();\n\n let centerPoint,\n originalPoint,\n currentMatrix,\n scaleMatrix,\n newMatrix;\n\n currentMatrix = viewport.getCTM();\n\n const currentScale = currentMatrix.a;\n\n if (center) {\n centerPoint = assign(point, center);\n\n // revert applied viewport transformations\n originalPoint = centerPoint.matrixTransform(currentMatrix.inverse());\n\n // create scale matrix\n scaleMatrix = matrix\n .translate(originalPoint.x, originalPoint.y)\n .scale(1 / currentScale * scale)\n .translate(-originalPoint.x, -originalPoint.y);\n\n newMatrix = currentMatrix.multiply(scaleMatrix);\n } else {\n newMatrix = matrix.scale(scale);\n }\n\n setCTM(this._viewport, newMatrix);\n\n return newMatrix;\n};\n\n\n/**\n * Returns the size of the canvas.\n *\n * @return {Dimensions} The size of the canvas.\n */\nCanvas.prototype.getSize = function() {\n return {\n width: this._container.clientWidth,\n height: this._container.clientHeight\n };\n};\n\n\n/**\n * Returns the absolute bounding box of an element.\n *\n * The absolute bounding box may be used to display overlays in the callers\n * (browser) coordinate system rather than the zoomed in/out canvas coordinates.\n *\n * @param {ShapeLike|ConnectionLike} element The element.\n *\n * @return {Rect} The element's absolute bounding box.\n */\nCanvas.prototype.getAbsoluteBBox = function(element) {\n const vbox = this.viewbox();\n let bbox;\n\n // connection\n // use svg bbox\n if (element.waypoints) {\n const gfx = this.getGraphics(element);\n\n bbox = gfx.getBBox();\n }\n\n // shapes\n // use data\n else {\n bbox = element;\n }\n\n const x = bbox.x * vbox.scale - vbox.x * vbox.scale;\n const y = bbox.y * vbox.scale - vbox.y * vbox.scale;\n\n const width = bbox.width * vbox.scale;\n const height = bbox.height * vbox.scale;\n\n return {\n x: x,\n y: y,\n width: width,\n height: height\n };\n};\n\n/**\n * Fires an event so other modules can react to the canvas resizing.\n */\nCanvas.prototype.resized = function() {\n\n // force recomputation of view box\n delete this._cachedViewbox;\n\n this._eventBus.fire('canvas.resized');\n};\n","var ELEMENT_ID = 'data-element-id';\n\nimport { attr as svgAttr } from 'tiny-svg';\n\n/**\n * @typedef {import('./Types').ElementLike} ElementLike\n *\n * @typedef {import('./EventBus').default} EventBus\n *\n * @typedef { (element: ElementLike, gfx: SVGElement) => boolean|any } ElementRegistryFilterCallback\n * @typedef { (element: ElementLike, gfx: SVGElement) => any } ElementRegistryForEachCallback\n */\n\n/**\n * A registry that keeps track of all shapes in the diagram.\n *\n * @class\n * @constructor\n *\n * @param {EventBus} eventBus\n */\nexport default function ElementRegistry(eventBus) {\n\n /**\n * @type { {\n * [id: string]: {\n * element: ElementLike;\n * gfx?: SVGElement;\n * secondaryGfx?: SVGElement;\n * }\n * } }\n */\n this._elements = {};\n\n this._eventBus = eventBus;\n}\n\nElementRegistry.$inject = [ 'eventBus' ];\n\n/**\n * Add an element and its graphical representation(s) to the registry.\n *\n * @param {ElementLike} element The element to be added.\n * @param {SVGElement} gfx The primary graphical representation.\n * @param {SVGElement} [secondaryGfx] The secondary graphical representation.\n */\nElementRegistry.prototype.add = function(element, gfx, secondaryGfx) {\n\n var id = element.id;\n\n this._validateId(id);\n\n // associate dom node with element\n svgAttr(gfx, ELEMENT_ID, id);\n\n if (secondaryGfx) {\n svgAttr(secondaryGfx, ELEMENT_ID, id);\n }\n\n this._elements[id] = { element: element, gfx: gfx, secondaryGfx: secondaryGfx };\n};\n\n/**\n * Remove an element from the registry.\n *\n * @param {ElementLike|string} element\n */\nElementRegistry.prototype.remove = function(element) {\n var elements = this._elements,\n id = element.id || element,\n container = id && elements[id];\n\n if (container) {\n\n // unset element id on gfx\n svgAttr(container.gfx, ELEMENT_ID, '');\n\n if (container.secondaryGfx) {\n svgAttr(container.secondaryGfx, ELEMENT_ID, '');\n }\n\n delete elements[id];\n }\n};\n\n/**\n * Update an elements ID.\n *\n * @param {ElementLike|string} element The element or its ID.\n * @param {string} newId The new ID.\n */\nElementRegistry.prototype.updateId = function(element, newId) {\n\n this._validateId(newId);\n\n if (typeof element === 'string') {\n element = this.get(element);\n }\n\n this._eventBus.fire('element.updateId', {\n element: element,\n newId: newId\n });\n\n var gfx = this.getGraphics(element),\n secondaryGfx = this.getGraphics(element, true);\n\n this.remove(element);\n\n element.id = newId;\n\n this.add(element, gfx, secondaryGfx);\n};\n\n/**\n * Update the graphical representation of an element.\n *\n * @param {ElementLike|string} filter The element or its ID.\n * @param {SVGElement} gfx The new graphical representation.\n * @param {boolean} [secondary=false] Whether to update the secondary graphical representation.\n */\nElementRegistry.prototype.updateGraphics = function(filter, gfx, secondary) {\n var id = filter.id || filter;\n\n var container = this._elements[id];\n\n if (secondary) {\n container.secondaryGfx = gfx;\n } else {\n container.gfx = gfx;\n }\n\n if (gfx) {\n svgAttr(gfx, ELEMENT_ID, id);\n }\n\n return gfx;\n};\n\n/**\n * Get the element with the given ID or graphical representation.\n *\n * @example\n *\n * ```javascript\n * elementRegistry.get('SomeElementId_1');\n *\n * elementRegistry.get(gfx);\n * ```\n *\n * @param {string|SVGElement} filter The elements ID or graphical representation.\n *\n * @return {ElementLike|undefined} The element.\n */\nElementRegistry.prototype.get = function(filter) {\n var id;\n\n if (typeof filter === 'string') {\n id = filter;\n } else {\n id = filter && svgAttr(filter, ELEMENT_ID);\n }\n\n var container = this._elements[id];\n return container && container.element;\n};\n\n/**\n * Return all elements that match a given filter function.\n *\n * @param {ElementRegistryFilterCallback} fn The filter function.\n *\n * @return {ElementLike[]} The matching elements.\n */\nElementRegistry.prototype.filter = function(fn) {\n\n var filtered = [];\n\n this.forEach(function(element, gfx) {\n if (fn(element, gfx)) {\n filtered.push(element);\n }\n });\n\n return filtered;\n};\n\n/**\n * Return the first element that matches the given filter function.\n *\n * @param {ElementRegistryFilterCallback} fn The filter function.\n *\n * @return {ElementLike|undefined} The matching element.\n */\nElementRegistry.prototype.find = function(fn) {\n var map = this._elements,\n keys = Object.keys(map);\n\n for (var i = 0; i < keys.length; i++) {\n var id = keys[i],\n container = map[id],\n element = container.element,\n gfx = container.gfx;\n\n if (fn(element, gfx)) {\n return element;\n }\n }\n};\n\n/**\n * Get all elements.\n *\n * @return {ElementLike[]} All elements.\n */\nElementRegistry.prototype.getAll = function() {\n return this.filter(function(e) { return e; });\n};\n\n/**\n * Execute a given function for each element.\n *\n * @param {ElementRegistryForEachCallback} fn The function to execute.\n */\nElementRegistry.prototype.forEach = function(fn) {\n\n var map = this._elements;\n\n Object.keys(map).forEach(function(id) {\n var container = map[id],\n element = container.element,\n gfx = container.gfx;\n\n return fn(element, gfx);\n });\n};\n\n/**\n * Return the graphical representation of an element.\n *\n * @example\n *\n * ```javascript\n * elementRegistry.getGraphics('SomeElementId_1');\n *\n * elementRegistry.getGraphics(rootElement); // \n *\n * elementRegistry.getGraphics(rootElement, true); // \n * ```\n *\n * @param {ElementLike|string} filter The element or its ID.\n * @param {boolean} [secondary=false] Whether to return the secondary graphical representation.\n *\n * @return {SVGElement} The graphical representation.\n */\nElementRegistry.prototype.getGraphics = function(filter, secondary) {\n var id = filter.id || filter;\n\n var container = this._elements[id];\n return container && (secondary ? container.secondaryGfx : container.gfx);\n};\n\n/**\n * Validate an ID and throw an error if invalid.\n *\n * @param {string} id\n *\n * @throws {Error} Error indicating that the ID is invalid or already assigned.\n */\nElementRegistry.prototype._validateId = function(id) {\n if (!id) {\n throw new Error('element must have an id');\n }\n\n if (this._elements[id]) {\n throw new Error('element with id ' + id + ' already added');\n }\n};\n","/**\n * Extends a collection with {@link Refs} aware methods\n *\n * @param {Array} collection\n * @param {Refs} refs instance\n * @param {Object} property represented by the collection\n * @param {Object} target object the collection is attached to\n *\n * @return {RefsCollection} the extended array\n */\nfunction extend(collection, refs, property, target) {\n var inverseProperty = property.inverse;\n\n /**\n * Removes the given element from the array and returns it.\n *\n * @method RefsCollection#remove\n *\n * @param {Object} element the element to remove\n */\n Object.defineProperty(collection, 'remove', {\n value: function (element) {\n var idx = this.indexOf(element);\n if (idx !== -1) {\n this.splice(idx, 1);\n\n // unset inverse\n refs.unset(element, inverseProperty, target);\n }\n return element;\n }\n });\n\n /**\n * Returns true if the collection contains the given element\n *\n * @method RefsCollection#contains\n *\n * @param {Object} element the element to check for\n */\n Object.defineProperty(collection, 'contains', {\n value: function (element) {\n return this.indexOf(element) !== -1;\n }\n });\n\n /**\n * Adds an element to the array, unless it exists already (set semantics).\n *\n * @method RefsCollection#add\n *\n * @param {Object} element the element to add\n * @param {Number} optional index to add element to\n * (possibly moving other elements around)\n */\n Object.defineProperty(collection, 'add', {\n value: function (element, idx) {\n var currentIdx = this.indexOf(element);\n if (typeof idx === 'undefined') {\n if (currentIdx !== -1) {\n // element already in collection (!)\n return;\n }\n\n // add to end of array, as no idx is specified\n idx = this.length;\n }\n\n // handle already in collection\n if (currentIdx !== -1) {\n // remove element from currentIdx\n this.splice(currentIdx, 1);\n }\n\n // add element at idx\n this.splice(idx, 0, element);\n if (currentIdx === -1) {\n // set inverse, unless element was\n // in collection already\n refs.set(element, inverseProperty, target);\n }\n }\n });\n\n // a simple marker, identifying this element\n // as being a refs collection\n Object.defineProperty(collection, '__refs_collection', {\n value: true\n });\n return collection;\n}\n\n/**\n * Checks if a given collection is extended\n *\n * @param {Array} collection\n *\n * @return {boolean}\n */\nfunction isExtended(collection) {\n return collection.__refs_collection === true;\n}\n\nvar collection = {\n __proto__: null,\n extend: extend,\n isExtended: isExtended\n};\n\nfunction hasOwnProperty(e, property) {\n return Object.prototype.hasOwnProperty.call(e, property.name || property);\n}\nfunction defineCollectionProperty(ref, property, target) {\n var collection = extend(target[property.name] || [], ref, property, target);\n Object.defineProperty(target, property.name, {\n enumerable: property.enumerable,\n value: collection\n });\n if (collection.length) {\n collection.forEach(function (o) {\n ref.set(o, property.inverse, target);\n });\n }\n}\nfunction defineProperty(ref, property, target) {\n var inverseProperty = property.inverse;\n var _value = target[property.name];\n Object.defineProperty(target, property.name, {\n configurable: property.configurable,\n enumerable: property.enumerable,\n get: function () {\n return _value;\n },\n set: function (value) {\n // return if we already performed all changes\n if (value === _value) {\n return;\n }\n var old = _value;\n\n // temporary set null\n _value = null;\n if (old) {\n ref.unset(old, inverseProperty, target);\n }\n\n // set new value\n _value = value;\n\n // set inverse value\n ref.set(_value, inverseProperty, target);\n }\n });\n}\n\n/**\n * Creates a new references object defining two inversly related\n * attribute descriptors a and b.\n *\n *

    \n * When bound to an object using {@link Refs#bind} the references\n * get activated and ensure that add and remove operations are applied\n * reversely, too.\n *

    \n *\n *

    \n * For attributes represented as collections {@link Refs} provides the\n * {@link RefsCollection#add}, {@link RefsCollection#remove} and {@link RefsCollection#contains} extensions\n * that must be used to properly hook into the inverse change mechanism.\n *

    \n *\n * @class Refs\n *\n * @classdesc A bi-directional reference between two attributes.\n *\n * @param {Refs.AttributeDescriptor} a property descriptor\n * @param {Refs.AttributeDescriptor} b property descriptor\n *\n * @example\n *\n * var refs = Refs({ name: 'wheels', collection: true, enumerable: true }, { name: 'car' });\n *\n * var car = { name: 'toyota' };\n * var wheels = [{ pos: 'front-left' }, { pos: 'front-right' }];\n *\n * refs.bind(car, 'wheels');\n *\n * car.wheels // []\n * car.wheels.add(wheels[0]);\n * car.wheels.add(wheels[1]);\n *\n * car.wheels // [{ pos: 'front-left' }, { pos: 'front-right' }]\n *\n * wheels[0].car // { name: 'toyota' };\n * car.wheels.remove(wheels[0]);\n *\n * wheels[0].car // undefined\n */\nfunction Refs(a, b) {\n if (!(this instanceof Refs)) {\n return new Refs(a, b);\n }\n\n // link\n a.inverse = b;\n b.inverse = a;\n this.props = {};\n this.props[a.name] = a;\n this.props[b.name] = b;\n}\n\n/**\n * Binds one side of a bi-directional reference to a\n * target object.\n *\n * @memberOf Refs\n *\n * @param {Object} target\n * @param {String} property\n */\nRefs.prototype.bind = function (target, property) {\n if (typeof property === 'string') {\n if (!this.props[property]) {\n throw new Error('no property <' + property + '> in ref');\n }\n property = this.props[property];\n }\n if (property.collection) {\n defineCollectionProperty(this, property, target);\n } else {\n defineProperty(this, property, target);\n }\n};\nRefs.prototype.ensureRefsCollection = function (target, property) {\n var collection = target[property.name];\n if (!isExtended(collection)) {\n defineCollectionProperty(this, property, target);\n }\n return collection;\n};\nRefs.prototype.ensureBound = function (target, property) {\n if (!hasOwnProperty(target, property)) {\n this.bind(target, property);\n }\n};\nRefs.prototype.unset = function (target, property, value) {\n if (target) {\n this.ensureBound(target, property);\n if (property.collection) {\n this.ensureRefsCollection(target, property).remove(value);\n } else {\n target[property.name] = undefined;\n }\n }\n};\nRefs.prototype.set = function (target, property, value) {\n if (target) {\n this.ensureBound(target, property);\n if (property.collection) {\n this.ensureRefsCollection(target, property).add(value);\n } else {\n target[property.name] = value;\n }\n }\n};\n\n/**\n * An attribute descriptor to be used specify an attribute in a {@link Refs} instance\n *\n * @typedef {Object} Refs.AttributeDescriptor\n * @property {String} name\n * @property {boolean} [collection=false]\n * @property {boolean} [enumerable=false]\n */\n\nexport { collection as Collection, Refs };\n","import { assign } from 'min-dash';\nimport inherits from 'inherits-browser';\n\nimport { Refs } from 'object-refs';\n\nvar parentRefs = new Refs({ name: 'children', enumerable: true, collection: true }, { name: 'parent' }),\n labelRefs = new Refs({ name: 'labels', enumerable: true, collection: true }, { name: 'labelTarget' }),\n attacherRefs = new Refs({ name: 'attachers', collection: true }, { name: 'host' }),\n outgoingRefs = new Refs({ name: 'outgoing', collection: true }, { name: 'source' }),\n incomingRefs = new Refs({ name: 'incoming', collection: true }, { name: 'target' });\n\n/**\n * @typedef {import('./Types').Element} Element\n * @typedef {import('./Types').Shape} Shape\n * @typedef {import('./Types').Root} Root\n * @typedef {import('./Types').Label} Label\n * @typedef {import('./Types').Connection} Connection\n */\n\n/**\n * The basic graphical representation\n *\n * @class\n * @constructor\n */\nfunction ElementImpl() {\n\n /**\n * The object that backs up the shape\n *\n * @name Element#businessObject\n * @type Object\n */\n Object.defineProperty(this, 'businessObject', {\n writable: true\n });\n\n\n /**\n * Single label support, will mapped to multi label array\n *\n * @name Element#label\n * @type Object\n */\n Object.defineProperty(this, 'label', {\n get: function() {\n return this.labels[0];\n },\n set: function(newLabel) {\n\n var label = this.label,\n labels = this.labels;\n\n if (!newLabel && label) {\n labels.remove(label);\n } else {\n labels.add(newLabel, 0);\n }\n }\n });\n\n /**\n * The parent shape\n *\n * @name Element#parent\n * @type Shape\n */\n parentRefs.bind(this, 'parent');\n\n /**\n * The list of labels\n *\n * @name Element#labels\n * @type Label\n */\n labelRefs.bind(this, 'labels');\n\n /**\n * The list of outgoing connections\n *\n * @name Element#outgoing\n * @type Array\n */\n outgoingRefs.bind(this, 'outgoing');\n\n /**\n * The list of incoming connections\n *\n * @name Element#incoming\n * @type Array\n */\n incomingRefs.bind(this, 'incoming');\n}\n\n\n/**\n * A graphical object\n *\n * @class\n * @constructor\n *\n * @extends ElementImpl\n */\nfunction ShapeImpl() {\n ElementImpl.call(this);\n\n /**\n * Indicates frame shapes\n *\n * @name ShapeImpl#isFrame\n * @type boolean\n */\n\n /**\n * The list of children\n *\n * @name ShapeImpl#children\n * @type Element[]\n */\n parentRefs.bind(this, 'children');\n\n /**\n * @name ShapeImpl#host\n * @type Shape\n */\n attacherRefs.bind(this, 'host');\n\n /**\n * @name ShapeImpl#attachers\n * @type Shape\n */\n attacherRefs.bind(this, 'attachers');\n}\n\ninherits(ShapeImpl, ElementImpl);\n\n\n/**\n * A root graphical object\n *\n * @class\n * @constructor\n *\n * @extends ElementImpl\n */\nfunction RootImpl() {\n ElementImpl.call(this);\n\n /**\n * The list of children\n *\n * @name RootImpl#children\n * @type Element[]\n */\n parentRefs.bind(this, 'children');\n}\n\ninherits(RootImpl, ShapeImpl);\n\n\n/**\n * A label for an element\n *\n * @class\n * @constructor\n *\n * @extends ShapeImpl\n */\nfunction LabelImpl() {\n ShapeImpl.call(this);\n\n /**\n * The labeled element\n *\n * @name LabelImpl#labelTarget\n * @type Element\n */\n labelRefs.bind(this, 'labelTarget');\n}\n\ninherits(LabelImpl, ShapeImpl);\n\n\n/**\n * A connection between two elements\n *\n * @class\n * @constructor\n *\n * @extends ElementImpl\n */\nfunction ConnectionImpl() {\n ElementImpl.call(this);\n\n /**\n * The element this connection originates from\n *\n * @name ConnectionImpl#source\n * @type Element\n */\n outgoingRefs.bind(this, 'source');\n\n /**\n * The element this connection points to\n *\n * @name ConnectionImpl#target\n * @type Element\n */\n incomingRefs.bind(this, 'target');\n}\n\ninherits(ConnectionImpl, ElementImpl);\n\n\nvar types = {\n connection: ConnectionImpl,\n shape: ShapeImpl,\n label: LabelImpl,\n root: RootImpl\n};\n\n/**\n * Creates a root element.\n *\n * @overlord\n *\n * @example\n *\n * ```javascript\n * import * as Model from 'diagram-js/lib/model';\n *\n * const root = Model.create('root', {\n * x: 100,\n * y: 100,\n * width: 100,\n * height: 100\n * });\n * ```\n *\n * @param {'root'} type\n * @param {any} [attrs]\n *\n * @return {Root}\n */\n\n/**\n * Creates a connection.\n *\n * @overlord\n *\n * @example\n *\n * ```javascript\n * import * as Model from 'diagram-js/lib/model';\n *\n * const connection = Model.create('connection', {\n * waypoints: [\n * { x: 100, y: 100 },\n * { x: 200, y: 100 }\n * ]\n * });\n * ```\n *\n * @param {'connection'} type\n * @param {any} [attrs]\n *\n * @return {Connection}\n */\n\n/**\n * Creates a shape.\n *\n * @overlord\n *\n * @example\n *\n * ```javascript\n * import * as Model from 'diagram-js/lib/model';\n *\n * const shape = Model.create('shape', {\n * x: 100,\n * y: 100,\n * width: 100,\n * height: 100\n * });\n * ```\n *\n * @param {'shape'} type\n * @param {any} [attrs]\n *\n * @return {Shape}\n */\n\n/**\n * Creates a label.\n *\n * @example\n *\n * ```javascript\n * import * as Model from 'diagram-js/lib/model';\n *\n * const label = Model.create('label', {\n * x: 100,\n * y: 100,\n * width: 100,\n * height: 100,\n * labelTarget: shape\n * });\n * ```\n *\n * @param {'label'} type\n * @param {Object} [attrs]\n *\n * @return {Label}\n */\nexport function create(type, attrs) {\n var Type = types[type];\n if (!Type) {\n throw new Error('unknown type: <' + type + '>');\n }\n return assign(new Type(), attrs);\n}\n\n/**\n * Checks whether an object is a model instance.\n *\n * @param {any} obj\n *\n * @return {boolean}\n */\nexport function isModelElement(obj) {\n return obj instanceof ElementImpl;\n}","import {\n create\n} from '../model';\n\nimport { assign } from 'min-dash';\n\n/**\n * @typedef {import('../model/Types').Element} Element\n * @typedef {import('../model/Types').Connection} Connection\n * @typedef {import('../model/Types').Label} Label\n * @typedef {import('../model/Types').Root} Root\n * @typedef {import('../model/Types').Shape} Shape\n */\n\n/**\n * A factory for model elements.\n *\n * @template {Connection} [T=Connection]\n * @template {Label} [U=Label]\n * @template {Root} [V=Root]\n * @template {Shape} [W=Shape]\n */\nexport default function ElementFactory() {\n this._uid = 12;\n}\n\n/**\n * Create a root element.\n *\n * @param {Partial} [attrs]\n *\n * @return {V} The created root element.\n */\nElementFactory.prototype.createRoot = function(attrs) {\n return this.create('root', attrs);\n};\n\n/**\n * Create a label.\n *\n * @param {Partial