UNPKG

dmn-js

Version:

A dmn toolkit and web modeler

17 lines 513 kB
/*! dmn-js - dmn-navigated-viewer v17.5.0 | Copyright (c) 2014-present, camunda Services GmbH | bpmn.io/license */
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).DmnJS=t()}(this,(function(){"use strict";const e=Object.prototype.toString,t=Object.prototype.hasOwnProperty;function n(e){return void 0===e}function i(e){return void 0!==e}function r(e){return null==e}function o(t){return"[object Array]"===e.call(t)}function s(t){return"[object Object]"===e.call(t)}function a(t){return"[object Number]"===e.call(t)}function l(t){const n=e.call(t);return"[object Function]"===n||"[object AsyncFunction]"===n||"[object GeneratorFunction]"===n||"[object AsyncGeneratorFunction]"===n||"[object Proxy]"===n}function c(t){return"[object String]"===e.call(t)}function h(e,n){return!r(e)&&t.call(e,n)}function u(e,t){const n=w(t);let i;return d(e,(function(e,t){if(n(e,t))return i=e,!1})),i}function p(e,t){const n=w(t);let i=[];return d(e,(function(e,t){n(e,t)&&i.push(e)})),i}function d(e,t){let i,r;if(n(e))return;const s=o(e)?x:b;for(let n in e)if(h(e,n)&&(i=e[n],r=t(i,s(n)),!1===r))return i}function f(e,t,n){return d(e,(function(e,i){n=t(n,e,i)})),n}function g(e,t){return!!f(e,(function(e,n,i){return e&&t(n,i)}),!0)}function m(e,t){let n=[];return d(e,(function(e,i){n.push(t(e,i))})),n}function y(e,t){t=function(e){return l(e)?e:t=>t[e]}(t);let n=[];return d(e,(function(e,i){let r=t(e,i),o={d:r,v:e};for(var s=0;s<n.length;s++){let{d:e}=n[s];if(r<e)return void n.splice(s,0,o)}n.push(o)})),m(n,(e=>e.v))}function v(e){return function(t){return g(e,(function(e,n){return t[n]===e}))}}function w(e){return l(e)?e:t=>t===e}function b(e){return e}function x(e){return Number(e)}function _(e,t){let n,i,r,o;function s(n){let s=Date.now(),c=n?0:o+t-s;if(c>0)return a(c);e.apply(r,i),l()}function a(e){n=setTimeout(s,e)}function l(){n&&clearTimeout(n),n=o=i=r=void 0}function c(...e){o=Date.now(),i=e,r=this,n||a(t)}return c.flush=function(){n&&s(!0),l()},c.cancel=l,c}function k(e,t){return e.bind(t)}function S(e,...t){return Object.assign(e,...t)}var C="__fn",E=Array.prototype.slice;function M(){this._listeners={},this.on("diagram.destroy",1,this._destroy,this)}function A(){}function T(){}function R(e,t){this.model=e,this.properties=t}M.prototype.on=function(e,t,n,i){if(e=o(e)?e:[e],l(t)&&(i=n,n=t,t=1e3),!a(t))throw new Error("priority must be a number");var r=n;i&&((r=k(n,i))[C]=n[C]||n);var s=this;e.forEach((function(e){s._addListener(e,{priority:t,callback:r,next:null})}))},M.prototype.once=function(e,t,n,i){var r=this;if(l(t)&&(i=n,n=t,t=1e3),!a(t))throw new Error("priority must be a number");function o(){o.__isTomb=!0;var t=n.apply(i,arguments);return r.off(e,o),t}o[C]=n,this.on(e,t,o)},M.prototype.off=function(e,t){e=o(e)?e:[e];var n=this;e.forEach((function(e){n._removeListener(e,t)}))},M.prototype.createEvent=function(e){var t=new A;return t.init(e),t},M.prototype.fire=function(e,t){var n,i,r,o;if(o=E.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 A?t:this.createEvent(t),o[0]=n;var s=n.type;e!==s&&(n.type=e);try{r=this._invokeListeners(n,o,i)}finally{e!==s&&(n.type=s)}return void 0===r&&n.defaultPrevented&&(r=!1),r}},M.prototype.handleError=function(e){return!1===this.fire("error",{error:e})},M.prototype._destroy=function(){this._listeners={}},M.prototype._invokeListeners=function(e,t,n){for(var i;n&&!e.cancelBubble;)i=this._invokeListener(e,t,n),n=n.next;return i},M.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},M.prototype._addListener=function(e,t){var n,i=this._getListeners(e);if(i){for(;i;){if(i.priority<t.priority)return t.next=i,void(n?n.next=t:this._setListeners(e,t));n=i,i=i.next}n.next=t}else this._setListeners(e,t)},M.prototype._getListeners=function(e){return this._listeners[e]},M.prototype._setListeners=function(e,t){this._listeners[e]=t},M.prototype._removeListener=function(e,t){var n,i,r,o=this._getListeners(e);if(t)for(;o;)n=o.next,(r=o.callback)!==t&&r[C]!==t||(i?i.next=n:this._setListeners(e,n)),i=o,o=n;else this._setListeners(e,null)},A.prototype.stopPropagation=function(){this.cancelBubble=!0},A.prototype.preventDefault=function(){this.defaultPrevented=!0},A.prototype.init=function(e){S(this,e||{})},T.prototype.get=function(e){return this.$model.properties.get(this,e)},T.prototype.set=function(e,t){this.$model.properties.set(this,e,t)},R.prototype.createType=function(e){var t=this.model,n=this.properties,i=Object.create(T.prototype);d(e.properties,(function(e){e.isMany||void 0===e.default||(i[e.name]=e.default)})),n.defineModel(i,t),n.defineDescriptor(i,e);var r=e.ns.name;function o(e){n.define(this,"$type",{value:r,enumerable:!0}),n.define(this,"$attrs",{value:{}}),n.define(this,"$parent",{writable:!0}),d(e,k((function(e,t){this.set(t,e)}),this))}return o.prototype=i,o.hasType=i.$instanceOf=this.model.hasType,n.defineModel(o,t),n.defineDescriptor(o,e),o};var D={String:!0,Boolean:!0,Integer:!0,Real:!0,Element:!0},O={String:function(e){return e},Boolean:function(e){return"true"===e},Integer:function(e){return parseInt(e,10)},Real:function(e){return parseFloat(e)}};function N(e,t){var n=O[e];return n?n(t):t}function q(e){return!!D[e]}function L(e){return!!O[e]}function B(e,t){var n,i,r=e.split(/:/);if(1===r.length)n=e,i=t;else{if(2!==r.length)throw new Error("expected <prefix:localName> or <localName>, got "+e);n=r[1],i=r[0]}return{name:e=(i?i+":":"")+n,prefix:i,localName:n}}function P(e){this.ns=e,this.name=e.name,this.allTypes=[],this.allTypesByName={},this.properties=[],this.propertiesByName={}}function I(e,t){this.packageMap={},this.typeMap={},this.packages=[],this.properties=t,d(e,k(this.registerPackage,this))}function F(e,t,n){var i=t[n];if(i in e)throw new Error("package with "+n+" <"+i+"> already defined")}function j(e){this.model=e}function V(e,t,n){Object.defineProperty(e,t.name,{enumerable:!t.isReference,writable:!0,value:n,configurable:!0})}function $(e){return e.replace(/^:/,"")}function z(e,t={}){this.properties=new j(this),this.factory=new R(this,this.properties),this.registry=new I(e,this.properties),this.typeCache={},this.config=t}P.prototype.build=function(){return function(e,t){let n={},i=Object(e);return d(t,(function(t){t in i&&(n[t]=e[t])})),n}(this,["ns","name","allTypes","allTypesByName","properties","propertiesByName","bodyProperty","idProperty"])},P.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)},P.prototype.replaceProperty=function(e,t,n){var i=e.ns,r=this.properties,o=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=r.indexOf(e);if(-1===a)throw new Error("property <"+i.name+"> not found in property list");r.splice(a,1),this.addProperty(t,n?void 0:a,s),o[i.name]=o[i.localName]=t},P.prototype.redefineProperty=function(e,t,n){var i=e.ns.prefix,r=t.split("#"),o=B(r[0],i),s=B(r[1],o.prefix).name,a=this.propertiesByName[s];if(!a)throw new Error("refined property <"+s+"> not found");this.replaceProperty(a,e,n),delete e.redefines},P.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},P.prototype.removeNamedProperty=function(e){var t=e.ns,n=this.propertiesByName;delete n[t.name],delete n[t.localName]},P.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},P.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},P.prototype.assertNotTrait=function(e){if((e.extends||[]).length)throw new Error(`cannot create <${e.name}> extending <${e.extends}>`)},P.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")},P.prototype.hasProperty=function(e){return this.propertiesByName[e]},P.prototype.addTrait=function(e,t){t&&this.assertNotTrait(e);var n=this.allTypesByName,i=this.allTypes,r=e.name;r in n||(d(e.properties,k((function(n){n=S({},n,{name:n.ns.localName,inherited:t}),Object.defineProperty(n,"definedBy",{value:e});var i=n.replaces,r=n.redefines;i||r?this.redefineProperty(n,i||r,i):(n.isBody&&this.setBodyProperty(n),n.isId&&this.setIdProperty(n),this.addProperty(n))}),this)),i.push(e),n[r]=e)},I.prototype.getPackage=function(e){return this.packageMap[e]},I.prototype.getPackages=function(){return this.packages},I.prototype.registerPackage=function(e){e=S({},e);var t=this.packageMap;F(t,e,"prefix"),F(t,e,"uri"),d(e.types,k((function(t){this.registerType(t,e)}),this)),t[e.uri]=t[e.prefix]=e,this.packages.push(e)},I.prototype.registerType=function(e,t){var n=B((e=S({},e,{superClass:(e.superClass||[]).slice(),extends:(e.extends||[]).slice(),properties:(e.properties||[]).slice(),meta:S(e.meta||{})})).name,t.prefix),i=n.name,r={};d(e.properties,k((function(e){var t=B(e.name,n.prefix),i=t.name;q(e.type)||(e.type=B(e.type,t.prefix).name),S(e,{ns:t,name:i}),r[i]=e}),this)),S(e,{ns:n,name:i,propertiesByName:r}),d(e.extends,k((function(e){var t=B(e,n.prefix),r=this.typeMap[t.name];r.traits=r.traits||[],r.traits.push(i)}),this)),this.definePackage(e,t),this.typeMap[i]=e},I.prototype.mapTypes=function(e,t,n){var i=q(e.name)?{name:e.name}:this.typeMap[e.name],r=this;function o(n,i){var o=B(n,q(n)?"":e.prefix);r.mapTypes(o,t,i)}function s(e){return o(e,!0)}if(!i)throw new Error("unknown type <"+e.name+">");d(i.superClass,n?s:function(e){return o(e,!1)}),t(i,!n),d(i.traits,s)},I.prototype.getEffectiveDescriptor=function(e){var t=B(e),n=new P(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},I.prototype.definePackage=function(e,t){this.properties.define(e,"$pkg",{value:t})},j.prototype.set=function(e,t,n){if(!c(t)||!t.length)throw new TypeError("property name must be a non-empty string");var i=this.getProperty(e,t),r=i&&i.name;void 0===n?i?delete e[r]:delete e.$attrs[$(t)]:i?r in e?e[r]=n:V(e,i,n):e.$attrs[$(t)]=n},j.prototype.get=function(e,t){var n=this.getProperty(e,t);if(!n)return e.$attrs[$(t)];var i=n.name;return!e[i]&&n.isMany&&V(e,n,[]),e[i]},j.prototype.define=function(e,t,n){if(!n.writable){var i=n.value;delete(n=S({},n,{get:function(){return i}})).value}Object.defineProperty(e,t,n)},j.prototype.defineDescriptor=function(e,t){this.define(e,"$descriptor",{value:t})},j.prototype.defineModel=function(e,t){this.define(e,"$model",{value:t})},j.prototype.getProperty=function(e,t){var n=this.model,i=n.getPropertyDescriptor(e,t);if(i)return i;if(t.includes(":"))return null;const r=n.config.strict;if(void 0!==r){const n=new TypeError(`unknown property <${t}> on <${e.$type}>`);if(r)throw n;"undefined"!=typeof console&&console.warn(n)}return null},z.prototype.create=function(e,t){var n=this.getType(e);if(!n)throw new Error("unknown type <"+e+">");return new n(t)},z.prototype.getType=function(e){var t=this.typeCache,n=c(e)?e:e.ns.name,i=t[n];return i||(e=this.registry.getEffectiveDescriptor(n),i=t[n]=this.factory.createType(e)),i},z.prototype.createAny=function(e,t,o){var a=B(e),l={$type:e,$instanceOf:function(e){return e===this.$type},get:function(e){return this[e]},set:function(e,t){!function(e,t,o){let s=e;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=s[e];i(l)&&r(c)&&(c=s[e]=isNaN(+l)?{}:[]),n(l)?n(o)?delete s[e]:s[e]=o:s=c}))}(this,[e],t)}},c={name:e,isGeneric:!0,ns:{prefix:a.prefix,localName:a.localName,uri:t}};return this.properties.defineDescriptor(l,c),this.properties.defineModel(l,this),this.properties.define(l,"get",{enumerable:!1,writable:!0}),this.properties.define(l,"set",{enumerable:!1,writable:!0}),this.properties.define(l,"$parent",{enumerable:!1,writable:!0}),this.properties.define(l,"$instanceOf",{enumerable:!1,writable:!0}),d(o,(function(e,t){s(e)&&void 0!==e.value?l[e.name]=e.value:l[t]=e})),l},z.prototype.getPackage=function(e){return this.registry.getPackage(e)},z.prototype.getPackages=function(){return this.registry.getPackages()},z.prototype.getElementDescriptor=function(e){return e.$descriptor},z.prototype.hasType=function(e,t){return void 0===t&&(t=e,e=this),t in e.$model.getElementDescriptor(e).allTypesByName},z.prototype.getPropertyDescriptor=function(e,t){return this.getElementDescriptor(e).propertiesByName[t]},z.prototype.getTypeDescriptor=function(e){return this.registry.typeMap[e]};var W=String.fromCharCode,H=Object.prototype.hasOwnProperty,U=/&#(\d+);|&#x([0-9a-f]+);|&(\w+);/gi,G={amp:"&",apos:"'",gt:">",lt:"<",quot:'"'};function K(e,t,n,i){return i?H.call(G,i)?G[i]:"&"+i+";":W(t||parseInt(n,16))}function X(e){return e.length>3&&-1!==e.indexOf("&")?e.replace(U,K):e}Object.keys(G).forEach((function(e){G[e.toUpperCase()]=G[e]}));var Y="non-whitespace outside of root node";function J(e){return new Error(e)}function Q(e){return"missing namespace for prefix <"+e+">"}function Z(e){return{get:e,enumerable:!0}}function ee(e){var t,n={};for(t in e)n[t]=e[t];return n}function te(e){return e+"$uri"}function ne(){return{line:0,column:0}}function ie(e){throw e}function re(e){if(!this)return new re(e);var t,n,i,r,o,s,a,l,c,h=e&&e.proxy,u=ie,p=ne,d=!1,f=!1,g=null,m=!1;function y(e){e instanceof Error||(e=J(e)),g=e,u(e,p)}function v(e){o&&(e instanceof Error||(e=J(e)),o(e,p))}this.on=function(e,c){if("function"!=typeof c)throw J("required args <name, cb>");switch(e){case"openTag":n=c;break;case"text":t=c;break;case"closeTag":i=c;break;case"error":u=c;break;case"warn":o=c;break;case"cdata":r=c;break;case"attention":l=c;break;case"question":a=c;break;case"comment":s=c;break;default:throw J("unsupported event: "+e)}return this},this.ns=function(e){if(void 0===e&&(e={}),"object"!=typeof e)throw J("required args <nsMap={}>");var t,n={};for(t in e)n[t]=e[t];return f=!0,c=n,this},this.parse=function(e){if("string"!=typeof e)throw J("required args <xml=string>");return g=null,function(e){var o,u,g,w,b,x,_,k,S,C,E,M=f?[]:null,A=f?function(e){var t,n,i={};for(t in e)i[n=e[t]]=n,i[te(n)]=t;return i}(c):null,T=[],R=0,D=!1,O=!1,N=0,q=0,L="",B=0;function P(){if(null!==E)return E;var e,t,n,i,r,o,s,a,l,h,u,p=f&&A.xmlns,g=f&&d?[]:null,m=B,y=L,w=y.length,b={},x={};e:for(;m<w;m++)if(l=!1,!(32===(h=y.charCodeAt(m))||h<14&&h>8)){for((h<65||h>122||h>90&&h<97)&&95!==h&&58!==h&&(v("illegal first char attribute name"),l=!0),u=m+1;u<w;u++)if(!((h=y.charCodeAt(u))>96&&h<123||h>64&&h<91||h>47&&h<59||46===h||45===h||95===h)){if(32===h||h<14&&h>8){v("missing attribute value"),m=u;continue e}if(61===h)break;v("illegal attribute name char"),l=!0}if("xmlns:xmlns"===(a=y.substring(m,u))&&(v("illegal declaration of xmlns"),l=!0),34===(h=y.charCodeAt(u+1)))-1===(u=y.indexOf('"',m=u+2))&&-1!==(u=y.indexOf("'",m))&&(v("attribute value quote missmatch"),l=!0);else if(39===h)-1===(u=y.indexOf("'",m=u+2))&&-1!==(u=y.indexOf('"',m))&&(v("attribute value quote missmatch"),l=!0);else for(v("missing attribute value quotes"),l=!0,u+=1;u<w&&!(32===(h=y.charCodeAt(u+1))||h<14&&h>8);u++);for(-1===u&&(v("missing closing quotes"),u=w,l=!0),l||(o=y.substring(m,u)),m=u;u+1<w&&!(32===(h=y.charCodeAt(u+1))||h<14&&h>8);u++)m===u&&(v("illegal character after attribute end"),l=!0);if(m=u+1,!l)if(a in x)v("attribute <"+a+"> already defined");else if(x[a]=!0,f)if(d){if(null!==(r="xmlns"===a?"xmlns":120===a.charCodeAt(0)&&"xmlns:"===a.substr(0,6)?a.substr(6):null)){if(e=X(o),t=te(r),!(s=c[e])){if("xmlns"===r||t in A&&A[t]!==e)do{s="ns"+R++}while(void 0!==A[s]);else s=r;c[e]=s}A[r]!==s&&(i||(A=ee(A),i=!0),A[r]=s,"xmlns"===r&&(A[te(s)]=e,p=s),A[t]=e),b[a]=o;continue}g.push(a,o)}else-1!==(h=a.indexOf(":"))?(n=A[a.substring(0,h)])?b[a=p===n?a.substr(h+1):n+a.substr(h)]=o:v(Q(a.substring(0,h))):b[a]=o;else b[a]=o}if(d)for(m=0,w=g.length;m<w;m++){if(a=g[m++],o=g[m],-1!==(h=a.indexOf(":"))){if(!(n=A[a.substring(0,h)])){v(Q(a.substring(0,h)));continue}a=p===n?a.substr(h+1):n+a.substr(h)}b[a]=o}return E=b}function I(){for(var t,n,i=/(\r\n|\r|\n)/g,r=0,o=0,s=0,a=q;N>=s&&(t=i.exec(e))&&!((a=t[0].length+t.index)>N);)r+=1,s=a;return-1==N?(o=a,n=e.substring(q)):0===q?n=e.substring(q,N):(o=N-s,n=-1==q?e.substring(N):e.substring(N,q+1)),{data:n,line:r,column:o}}p=I,h&&(C=Object.create({},{name:Z((function(){return k})),originalName:Z((function(){return S})),attrs:Z(P),ns:Z((function(){return A}))}));for(;-1!==q;){if(-1===(N=60===e.charCodeAt(q)?q:e.indexOf("<",q)))return T.length?y("unexpected end of file"):0===q?y("missing start tag"):void(q<e.length&&e.substring(q).trim()&&v(Y));if(q!==N)if(T.length){if(t&&(t(e.substring(q,N),X,p),m))return}else if(e.substring(q,N).trim()&&(v(Y),m))return;if(33===(b=e.charCodeAt(N+1))){if(91===(w=e.charCodeAt(N+2))&&"CDATA["===e.substr(N+3,6)){if(-1===(q=e.indexOf("]]>",N)))return y("unclosed cdata");if(r&&(r(e.substring(N+9,q),p),m))return;q+=3;continue}if(45===w&&45===e.charCodeAt(N+3)){if(-1===(q=e.indexOf("--\x3e",N)))return y("unclosed comment");if(s&&(s(e.substring(N+4,q),X,p),m))return;q+=3;continue}}if(63!==b){for(u=N+1;;u++){if(x=e.charCodeAt(u),isNaN(x))return q=-1,y("unclosed tag");if(34===x)u=-1!==(w=e.indexOf('"',u+1))?w:u;else if(39===x)u=-1!==(w=e.indexOf("'",u+1))?w:u;else if(62===x){q=u;break}}if(33!==b){if(E={},47===b){if(D=!1,O=!0,!T.length)return y("missing open tag");if(u=k=T.pop(),w=N+2+u.length,e.substring(N+2,w)!==u)return y("closing tag mismatch");for(;w<q;w++)if(!(32===(b=e.charCodeAt(w))||b>8&&b<14))return y("close tag")}else{if(47===e.charCodeAt(q-1)?(u=k=e.substring(N+1,q-1),D=!0,O=!0):(u=k=e.substring(N+1,q),D=!0,O=!1),!(b>96&&b<123||b>64&&b<91||95===b||58===b))return y("illegal first char nodeName");for(w=1,g=u.length;w<g;w++)if(!((b=u.charCodeAt(w))>96&&b<123||b>64&&b<91||b>47&&b<59||45===b||95===b||46==b)){if(32===b||b<14&&b>8){k=u.substring(0,w),E=null;break}return y("invalid nodeName")}O||T.push(k)}if(f){if(o=A,D&&(O||M.push(o),null===E&&(d=-1!==u.indexOf("xmlns",w))&&(B=w,L=u,P(),d=!1)),S=k,-1!==(b=k.indexOf(":"))){if(!(_=A[k.substring(0,b)]))return y("missing namespace on <"+S+">");k=k.substr(b+1)}else _=A.xmlns;_&&(k=_+":"+k)}if(D&&(B=w,L=u,n&&(h?n(C,X,O,p):n(k,P,X,O,p),m)))return;if(O){if(i&&(i(h?C:k,X,D,p),m))return;f&&(A=D?o:M.pop())}q+=1}else{if(l&&(l(e.substring(N,q+1),X,p),m))return;q+=1}}else{if(-1===(q=e.indexOf("?>",N)))return y("unclosed question");if(a&&(a(e.substring(N,q+2),p),m))return;q+=2}}}(e),p=ne,m=!1,g},this.stop=function(){m=!0}}function oe(e){return e.xml&&"lowerCase"===e.xml.tagAlias}var se={xsi:"http://www.w3.org/2001/XMLSchema-instance",xml:"http://www.w3.org/XML/1998/namespace"},ae="property";function le(e){return e.xml&&e.xml.serialize}function ce(e,t){return oe(t)?e.prefix+":"+((n=e.localName).charAt(0).toUpperCase()+n.slice(1)):e.name;var n}function he(e){return new Error(e)}function ue(e){return e.$descriptor}function pe(e){S(this,e),this.elementsById={},this.references=[],this.warnings=[],this.addReference=function(e){this.references.push(e)},this.addElement=function(e){if(!e)throw he("expected element");var t,n=this.elementsById,i=ue(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 he("duplicate ID <"+t+">");n[t]=e}},this.addWarning=function(e){this.warnings.push(e)}}function de(){}function fe(){}function ge(){}function me(e,t){this.property=e,this.context=t}function ye(e,t){this.element=t,this.propertyDesc=e}function ve(){}function we(e,t,n){this.model=e,this.type=e.getType(t),this.context=n}function be(e,t,n){we.call(this,e,t,n)}function xe(e,t,n){this.model=e,this.context=n}function _e(e){e instanceof z&&(e={model:e}),S(this,{lax:!1},e)}de.prototype.handleEnd=function(){},de.prototype.handleText=function(){},de.prototype.handleNode=function(){},fe.prototype=Object.create(de.prototype),fe.prototype.handleNode=function(){return this},ge.prototype=Object.create(de.prototype),ge.prototype.handleText=function(e){this.body=(this.body||"")+e},me.prototype=Object.create(ge.prototype),me.prototype.handleNode=function(e){if(this.element)throw he("expected no sub nodes");return this.element=this.createReference(e),this},me.prototype.handleEnd=function(){this.element.id=this.body},me.prototype.createReference=function(e){return{property:this.property.ns.name,id:""}},ye.prototype=Object.create(ge.prototype),ye.prototype.handleEnd=function(){var e=this.body||"",t=this.element,n=this.propertyDesc;e=N(n.type,e),n.isMany?t.get(n.name).push(e):t.set(n.name,e)},ve.prototype=Object.create(ge.prototype),ve.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},we.prototype=Object.create(ve.prototype),we.prototype.addReference=function(e){this.context.addReference(e)},we.prototype.handleText=function(e){if(!ue(this.element).bodyProperty)throw he("unexpected body text <"+e+">");ge.prototype.handleText.call(this,e)},we.prototype.handleEnd=function(){var e=this.body,t=this.element,n=ue(t).bodyProperty;n&&void 0!==e&&(e=N(n.type,e),t.set(n.name,e))},we.prototype.createElement=function(e){var t,n=e.attributes,i=this.type,r=ue(i),o=this.context,s=new i({}),a=this.model;return d(n,(function(e,n){var i=r.propertiesByName[n];i&&i.isReference?i.isMany?d(e.split(" "),(function(e){o.addReference({element:s,property:i.ns.name,id:e})})):o.addReference({element:s,property:i.ns.name,id:e}):(i?e=N(i.type,e):"xmlns"===n?n=":"+n:(t=B(n,r.ns.prefix),a.getPackage(t.prefix)&&o.addWarning({message:"unknown attribute <"+n+">",element:s,property:n,value:e})),s.set(n,e))})),s},we.prototype.getPropertyForNode=function(e){var t=B(e.name),n=this.type,i=this.model,r=ue(n),o=t.name,s=r.propertiesByName[o];if(s&&!s.isAttr){const t=function(e){const t=le(e);return t!==ae&&(t||null)}(s);if(t){const n=e.attributes[t];if(n){const t=function(e,t,n){const i=B(e,t.xmlns),r=B(`${t[i.prefix]||i.prefix}:${i.localName}`);return function(e,t){var n=e.name,i=e.localName,r=t&&t.xml&&t.xml.typePrefix;return r&&0===i.indexOf(r)?e.prefix+":"+i.slice(r.length):n}(r,n.getPackage(r.prefix))}(n,e.ns,i);return S({},s,{effectiveType:ue(i.getType(t)).name})}}return s}var a=i.getPackage(t.prefix);if(a){const e=ce(t,a),n=i.getType(e);if(s=u(r.properties,(function(e){return!e.isVirtual&&!e.isReference&&!e.isAttribute&&n.hasType(e.type)})))return S({},s,{effectiveType:ue(n).name})}else if(s=u(r.properties,(function(e){return!e.isReference&&!e.isAttribute&&"Element"===e.type})))return s;throw he("unrecognized element <"+t.name+">")},we.prototype.toString=function(){return"ElementDescriptor["+ue(this.type).name+"]"},we.prototype.valueHandler=function(e,t){return new ye(e,t)},we.prototype.referenceHandler=function(e){return new me(e,this.context)},we.prototype.handler=function(e){return"Element"===e?new xe(this.model,e,this.context):new we(this.model,e,this.context)},we.prototype.handleChild=function(e){var t,n,i,r;if(t=this.getPropertyForNode(e),i=this.element,L(n=t.effectiveType||t.type))return this.valueHandler(t,i);var o=(r=t.isReference?this.referenceHandler(t).handleNode(e):this.handler(n).handleNode(e)).element;return void 0!==o&&(t.isMany?i.get(t.name).push(o):i.set(t.name,o),t.isReference?(S(o,{element:i}),this.context.addReference(o)):o.$parent=i),r},be.prototype=Object.create(we.prototype),be.prototype.createElement=function(e){var t=e.name,n=B(t),i=this.model,r=this.type,o=i.getPackage(n.prefix),s=o&&ce(n,o)||t;if(!r.hasType(s))throw he("unexpected element <"+e.originalName+">");return we.prototype.createElement.call(this,e)},xe.prototype=Object.create(ve.prototype),xe.prototype.createElement=function(e){var t=e.name,n=B(t).prefix,i=e.ns[n+"$uri"],r=e.attributes;return this.model.createAny(t,i,r)},xe.prototype.handleChild=function(e){var t=new xe(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},xe.prototype.handleEnd=function(){this.body&&(this.element.$body=this.body)},_e.prototype.fromXML=function(e,t,n){var i=t.rootHandler;t instanceof we?(i=t,t={}):"string"==typeof t?(i=this.handler(t),t={}):"string"==typeof i&&(i=this.handler(i));var r=this.model,o=this.lax,s=new pe(S({},t,{rootHandler:i})),a=new re({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(),r=i.line,o=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: "+r+"\n\tcolumn: "+o+"\n\tnested error: "+e.message;if(n)return s.addWarning({message:l,error:e}),!0;throw he(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 g=r.getPackages().reduce((function(e,t){return e[t.uri]=t.prefix,e}),Object.entries(se).reduce((function(e,[t,n]){return e[n]=t,e}),r.config&&r.config.nsMap||{}));return a.ns(g).on("openTag",(function(e,t,n,i){var r=e.attrs||{},s=Object.keys(r).reduce((function(e,n){var i=t(r[n]);return e[n]=i,e}),{});!function(e,t){var n=l.peek();try{l.push(n.handleNode(e))}catch(e){c(e,t,o)&&l.push(new fe)}}({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 r;try{a.parse(e),function(){var e,t,n=s.elementsById,i=s.references;for(e=0;t=i[e];e++){var r=t.element,o=n[t.id],a=ue(r).propertiesByName[t.property];if(o||s.addWarning({message:"unresolved reference <"+t.id+">",element:t.element,property:t.property,value:t.id}),a.isMany){var l=r.get(a.name),c=l.indexOf(t);-1===c&&(c=l.length),o?l[c]=o:l.splice(c,1)}else r.set(a.name,o)}}()}catch(e){r=e}var o=i.element;r||o||(r=he("failed to parse document as <"+i.type.$descriptor.name+">"));var l=s.warnings,c=s.references,h=s.elementsById;return r?(r.warnings=l,n(r)):t({rootElement:o,elementsById:h,references:c,warnings:l})}))},_e.prototype.handler=function(e){return new be(this.model,e)};var ke=/<|>|'|"|&|\n\r|\n/g,Se=/<|>|&/g;function Ce(e){this.prefixMap={},this.uriMap={},this.used={},this.wellknown=[],this.custom=[],this.parent=e,this.defaultPrefixMap=e&&e.defaultPrefixMap||{}}function Ee(e,t){return oe(t)?function(e){return e.charAt(0).toLowerCase()+e.slice(1)}(e):e}function Me(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}function Ae(e){return c(e)?e:(e.prefix?e.prefix+":":"")+e.localName}Ce.prototype.mapDefaultPrefixes=function(e){this.defaultPrefixMap=e},Ce.prototype.defaultUriByPrefix=function(e){return this.defaultPrefixMap[e]},Ce.prototype.byUri=function(e){return this.uriMap[e]||this.parent&&this.parent.byUri(e)},Ce.prototype.add=function(e,t){this.uriMap[e.uri]=e,t?this.wellknown.push(e):this.custom.push(e),this.mapPrefix(e.prefix,e.uri)},Ce.prototype.uriByPrefix=function(e){return this.prefixMap[e||"xmlns"]||this.parent&&this.parent.uriByPrefix(e)},Ce.prototype.mapPrefix=function(e,t){this.prefixMap[e||"xmlns"]=t},Ce.prototype.getNSKey=function(e){return void 0!==e.prefix?e.uri+"|"+e.prefix:e.uri},Ce.prototype.logUsed=function(e){var t=e.uri,n=this.getNSKey(e);this.used[n]=this.byUri(t),this.parent&&this.parent.logUsed(e)},Ce.prototype.getUsed=function(e){return[].concat(this.wellknown,this.custom).filter((e=>{var t=this.getNSKey(e);return this.used[t]}))};var Te={"\n":"#10","\n\r":"#10",'"':"#34","'":"#39","<":"#60",">":"#62","&":"#38"},Re={"<":"lt",">":"gt","&":"amp"};function De(e,t,n){return(e=c(e)?e:""+e).replace(t,(function(e){return"&"+n[e]+";"}))}function Oe(e){this.tagName=e}function Ne(){}function qe(e){this.tagName=e}function Le(e,t){this.body=[],this.attrs=[],this.parent=e,this.propertyDescriptor=t}function Be(e,t,n){Le.call(this,e,t),this.serialization=n}function Pe(){this.value="",this.write=function(e){this.value+=e}}function Ie(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 Fe(e){return e=S({format:!1,preamble:!0},e||{}),{toXML:function(t,n){var i=n||new Pe,r=new Ie(i,e.format);e.preamble&&r.append('<?xml version="1.0" encoding="UTF-8"?>\n');var o=new Le,s=t.$model;if(o.getNamespaces().mapDefaultPrefixes(function(e){const t=e.config&&e.config.nsMap||{},n={};for(const e in se)n[e]=se[e];for(const e in t){n[t[e]]=e}for(const t of e.getPackages())n[t.prefix]=t.uri;return n}(s)),o.build(t).serializeTo(r),!n)return i.value}}}function je(e,t){z.call(this,e,t)}Oe.prototype.build=function(e){return this.element=e,this},Oe.prototype.serializeTo=function(e){e.appendIndent().append("<"+this.tagName+">"+this.element.id+"</"+this.tagName+">").appendNewLine()},Ne.prototype.serializeValue=Ne.prototype.serializeTo=function(e){e.append(this.escape?De(this.value,Se,Re):this.value)},Ne.prototype.build=function(e,t){return this.value=t,"String"===e.type&&-1!==t.search(Se)&&(this.escape=!0),this},Me(qe,Ne),qe.prototype.serializeTo=function(e){e.appendIndent().append("<"+this.tagName+">"),this.serializeValue(e),e.append("</"+this.tagName+">").appendNewLine()},Le.prototype.build=function(e){this.element=e;var t,n,i=e.$descriptor,r=this.propertyDescriptor,o=i.isGeneric;return t=o?this.parseGenericNsAttributes(e):this.parseNsAttributes(e),this.ns=r?this.nsPropertyTagName(r):this.nsTagName(i),this.tagName=this.addTagName(this.ns),o?this.parseGenericContainments(e):(n=function(e){return p(e.$descriptor.properties,(function(t){var n=t.name;if(t.isVirtual)return!1;if(!h(e,n))return!1;var i=e[n];return i!==t.default&&null!==i&&(!t.isMany||i.length)}))}(e),this.parseAttributes(p(n,(function(e){return e.isAttr}))),this.parseContainments(function(e){return p(e,(function(e){return!e.isAttr}))}(n))),this.parseGenericAttributes(e,t),this},Le.prototype.nsTagName=function(e){return function(e,t){return t.isGeneric?S({localName:t.ns.localName},e):S({localName:Ee(t.ns.localName,t.$pkg)},e)}(this.logNamespaceUsed(e.ns),e)},Le.prototype.nsPropertyTagName=function(e){return function(e,t){return S({localName:t.ns.localName},e)}(this.logNamespaceUsed(e.ns),e)},Le.prototype.isLocalNs=function(e){return e.uri===this.ns.uri},Le.prototype.nsAttributeName=function(e){var t;if(t=c(e)?B(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}:S({localName:t.localName},n)},Le.prototype.parseGenericNsAttributes=function(e){return Object.entries(e).filter((([t,n])=>!t.startsWith("$")&&this.parseNsAttribute(e,t,n))).map((([e,t])=>({name:e,value:t})))},Le.prototype.parseGenericContainments=function(e){var t=e.$body;t&&this.body.push((new Ne).build({type:"String"},t));var n=e.$children;n&&d(n,(e=>{this.body.push(new Le(this).build(e))}))},Le.prototype.parseNsAttribute=function(e,t,n){var i,r=e.$model,o=B(t);if("xmlns"===o.prefix&&(i={prefix:o.localName,uri:n}),o.prefix||"xmlns"!==o.localName||(i={uri:n}),!i)return{name:t,value:n};if(r&&r.getPackage(n))this.logNamespace(i,!0,!0);else{var s=this.logNamespaceUsed(i,!0);this.getNamespaces().logUsed(s)}},Le.prototype.parseNsAttributes=function(e){var t=this,n=e.$attrs,i=[];return d(n,(function(n,r){var o=t.parseNsAttribute(e,r,n);o&&i.push(o)})),i},Le.prototype.parseGenericAttributes=function(e,t){var n=this;d(t,(function(t){try{n.addAttribute(n.nsAttributeName(t.name),t.value)}catch(n){"undefined"!=typeof console&&console.warn(`missing namespace information for <${t.name}=${t.value}> on`,e,n)}}))},Le.prototype.parseContainments=function(e){var t=this,n=this.body,i=this.element;d(e,(function(e){var r=i.get(e.name),o=e.isReference;if(e.isMany||(r=[r]),e.isBody)n.push((new Ne).build(e,r[0]));else if(L(e.type))d(r,(function(i){n.push(new qe(t.addTagName(t.nsPropertyTagName(e))).build(e,i))}));else if(o)d(r,(function(i){n.push(new Oe(t.addTagName(t.nsPropertyTagName(e))).build(i))}));else{var s=le(e);d(r,(function(i){var r;r=s?s===ae?new Le(t,e):new Be(t,e,s):new Le(t),n.push(r.build(i))}))}}))},Le.prototype.getNamespaces=function(e){var t,n=this.namespaces,i=this.parent;return n||(t=i&&i.getNamespaces(),e||!t?this.namespaces=n=new Ce(t):n=t),n},Le.prototype.logNamespace=function(e,t,n){var i=this.getNamespaces(n),r=e.uri,o=e.prefix;return i.byUri(r)&&!n||i.add(e,t),i.mapPrefix(o,r),e},Le.prototype.logNamespaceUsed=function(e,t){var n,i,r,o=this.getNamespaces(t),s=e.prefix,a=e.uri;if(!s&&!a)return{localName:e.localName};if(r=o.defaultUriByPrefix(s),!(a=a||r||o.uriByPrefix(s)))throw new Error("no namespace uri given for prefix <"+s+">");if((e=o.byUri(a))||s||(e=this.logNamespace({uri:a},r===a,!0)),!e){for(n=s,i=1;o.uriByPrefix(n);)n=s+"_"+i++;e=this.logNamespace({prefix:n,uri:a},r===a)}return s&&o.mapPrefix(s,a),e},Le.prototype.parseAttributes=function(e){var t=this,n=this.element;d(e,(function(e){var i=n.get(e.name);if(e.isReference)if(e.isMany){var r=[];d(i,(function(e){r.push(e.id)})),i=r.join(" ")}else i=i.id;t.addAttribute(t.nsAttributeName(e),i)}))},Le.prototype.addTagName=function(e){var t=this.logNamespaceUsed(e);return this.getNamespaces().logUsed(t),Ae(e)},Le.prototype.addAttribute=function(e,t){var n=this.attrs;c(t)&&(t=De(t,ke,Te));var i=function(e,t){const n=w(t);let i=o(e)?-1:void 0;return d(e,(function(e,t){if(n(e,t))return i=t,!1})),i}(n,(function(t){return t.name.localName===e.localName&&t.name.uri===e.uri&&t.name.prefix===e.prefix})),r={name:e,value:t};-1!==i?n.splice(i,1,r):n.push(r)},Le.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)),d(t,(function(t){e.append(" ").append(Ae(t.name)).append('="').append(t.value).append('"')}))},Le.prototype.serializeTo=function(e){var t=this.body[0],n=t&&t.constructor!==Ne;e.appendIndent().append("<"+this.tagName),this.serializeAttributes(e),e.append(t?">":" />"),t&&(n&&e.appendNewLine().indent(),d(this.body,(function(t){t.serializeTo(e)})),n&&e.unindent().appendIndent(),e.append("</"+this.tagName+">")),e.appendNewLine()},Me(Be,Le),Be.prototype.parseNsAttributes=function(e){var t=Le.prototype.parseNsAttributes.call(this,e).filter((e=>e.name!==this.serialization)),n=e.$descriptor;if(n.name===this.propertyDescriptor.type)return t;var i=this.typeNs=this.nsTagName(n);this.getNamespaces().logUsed(this.typeNs);var r=e.$model.getPackage(i.uri),o=r.xml&&r.xml.typePrefix||"";return this.addAttribute(this.nsAttributeName(this.serialization),(i.prefix?i.prefix+":":"")+o+n.ns.localName),t},Be.prototype.isLocalNs=function(e){return e.uri===(this.typeNs||this.ns).uri},je.prototype=Object.create(z.prototype),je.prototype.fromXML=function(e,t,n){c(t)||(n=t,t="dmn:Definitions");var i=new _e(S({model:this,lax:!0},n)),r=i.handler(t);return i.fromXML(e,r)},je.prototype.toXML=function(e,t){var n=new Fe(t);return new Promise((function(t,i){try{return t({xml:n.toXML(e)})}catch(e){return i(e)}}))};var Ve={dc:{name:"DC",prefix:"dc",uri:"http://www.omg.org/spec/DMN/20180521/DC/",types:[{name:"Dimension",properties:[{name:"width",isAttr:!0,type:"Real"},{name:"height",isAttr:!0,type:"Real"}]},{name:"Bounds",properties:[{name:"height",isAttr:!0,type:"Real"},{name:"width",isAttr:!0,type:"Real"},{name:"x",isAttr:!0,type:"Real"},{name:"y",isAttr:!0,type:"Real"}]},{name:"Point",properties:[{name:"x",isAttr:!0,type:"Real"},{name:"y",isAttr:!0,type:"Real"}]},{name:"Color",properties:[{name:"red",type:"UML_Standard_Profile.mdzip:eee_1045467100323_917313_65"},{name:"green",type:"UML_Standard_Profile.mdzip:eee_1045467100323_917313_65"},{name:"blue",type:"UML_Standard_Profile.mdzip:eee_1045467100323_917313_65"}]}],associations:[],enumerations:[{name:"AlignmentKind",literalValues:[{name:"start"},{name:"center"},{name:"end"}]}]},di:{name:"DI",prefix:"di",uri:"http://www.omg.org/spec/DMN/20180521/DI/",types:[{name:"DiagramElement",isAbstract:!0,properties:[{name:"extension",type:"Extension"},{name:"id",isAttr:!0,isId:!0,type:"String"},{name:"style",isReference:!0,type:"Style",xml:{serialize:"property"}},{name:"sharedStyle",isReference:!0,isVirtual:!0,type:"Style"}]},{name:"Diagram",superClass:["DiagramElement"],properties:[{name:"name",isAttr:!0,type:"String"},{name:"documentation",isAttr:!0,type:"String"},{name:"resolution",isAttr:!0,type:"Real"}]},{name:"Shape",isAbstract:!0,properties:[{name:"bounds",type:"dc:Bounds"}],superClass:["DiagramElement"]},{name:"Edge",isAbstract:!0,properties:[{name:"waypoint",type:"dc:Point",isMany:!0,xml:{serialize:"property"}}],superClass:["DiagramElement"]},{name:"Style",isAbstract:!0,properties:[{name:"id",isAttr:!0,isId:!0,type:"String"}]},{name:"Extension",properties:[{name:"values",isMany:!0,type:"Element"}]}],associations:[],enumerations:[],xml:{tagAlias:"lowerCase"}},dmn:{name:"DMN",prefix:"dmn",uri:"https://www.omg.org/spec/DMN/20191111/MODEL/",types:[{name:"AuthorityRequirement",superClass:["DMNElement"],properties:[{name:"requiredAuthority",type:"DMNElementReference",xml:{serialize:"property"}},{name:"requiredDecision",type:"DMNElementReference",xml:{serialize:"property"}},{name:"requiredInput",type:"DMNElementReference",xml:{serialize:"property"}}]},{name:"ItemDefinition",superClass:["NamedElement"],properties:[{name:"typeRef",type:"String"},{name:"allowedValues",type:"UnaryTests",xml:{serialize:"property"}},{name:"typeLanguage",type:"String",isAttr:!0},{name:"itemComponent",type:"ItemDefinition",isMany:!0,xml:{serialize:"property"}},{name:"functionItem",type:"FunctionItem"},{name:"isCollection",isAttr:!0,type:"Boolean"}]},{name:"Definitions",superClass:["NamedElement"],properties:[{name:"import",type:"Import",isMany:!0},{name:"itemDefinition",type:"ItemDefinition",isMany:!0},{name:"drgElement",type:"DRGElement",isMany:!0},{name:"artifact",type:"Artifact",isMany:!0},{name:"elementCollection",type:"ElementCollection",isMany:!0},{name:"businessContextElement",type:"BusinessContextElement",isMany:!0},{name:"namespace",type:"String",isAttr:!0},{name:"expressionLanguage",type:"String",isAttr:!0},{name:"typeLanguage",type:"String",isAttr:!0},{name:"exporter",isAttr:!0,type:"String"},{name:"exporterVersion",isAttr:!0,type:"String"},{name:"dmnDI",type:"dmndi:DMNDI"}]},{name:"KnowledgeSource",superClass:["DRGElement"],properties:[{name:"authorityRequirement",type:"AuthorityRequirement",isMany:!0},{name:"type",type:"String"},{name:"owner",type:"DMNElementReference",xml:{serialize:"property"}},{name:"locationURI",type:"String",isAttr:!0}]},{name:"DecisionRule",superClass:["DMNElement"],properties:[{name:"inputEntry",type:"UnaryTests",isMany:!0,xml:{serialize:"property"}},{name:"outputEntry",type:"LiteralExpression",isMany:!0,xml:{serialize:"property"}},{name:"annotationEntry",type:"RuleAnnotation",isMany:!0,xml:{serialize:"property"}}]},{name:"Expression",isAbstract:!0,superClass:["DMNElement"],properties:[{name:"typeRef",isAttr:!0,type:"String"}]},{name:"InformationItem",superClass:["NamedElement"],properties:[{name:"typeRef",isAttr:!0,type:"String"}]},{name:"Decision",superClass:["DRGElement"],properties:[{name:"question",type:"String",xml:{serialize:"property"}},{name:"allowedAnswers",type:"String",xml:{serialize:"property"}},{name:"variable",type:"InformationItem",xml:{serialize:"property"}},{name:"informationRequirement",type:"InformationRequirement",isMany:!0},{name:"knowledgeRequirement",type:"KnowledgeRequirement",isMany:!0},{name:"authorityRequirement",type:"AuthorityRequirement",isMany:!0},{name:"supportedObjective",isMany:!0,type:"DMNElementReference",xml:{serialize:"property"}},{name:"impactedPerformanceIndicator",type:"DMNElementReference",isMany:!0,xml:{serialize:"property"}},{name:"decisionMaker",type:"DMNElementReference",isMany:!0,xml:{serialize:"property"}},{name:"decisionOwner",type:"DMNElementReference",isMany:!0,xml:{serialize:"property"}},{name:"usingProcess",isMany:!0,type:"DMNElementReference",xml:{serialize:"property"}},{name:"usingTask",isMany:!0,type:"DMNElementReference",xml:{serialize:"property"}},{name:"decisionLogic",type:"Expression"}]},{name:"Invocation",superClass:["Expression"],properties:[{name:"calledFunction",type:"Expression"},{name:"binding",type:"Binding",isMany:!0}]},{name:"OrganisationalUnit",superClass:["BusinessContextElement"],properties:[{name:"decisionMade",type:"Decision",isReference:!0,isMany:!0},{name:"decisionOwned",type:"Decision",isReference:!0,isMany:!0}]},{name:"Import",superClass:["NamedElement"],properties:[{name:"importType",type:"String",isAttr:!0},{name:"locationURI",type:"String",isAttr:!0},{name:"namespace",type:"String",isAttr:!0}]},{name:"InformationRequirement",superClass:["DMNElement"],properties:[{name:"requiredDecision",type:"DMNElementReference",xml:{serialize:"property"}},{name:"requiredInput",type:"DMNElementReference",xml:{serialize:"property"}}]},{name:"ElementCollection",superClass:["NamedElement"],properties:[{name:"drgElement",type:"DMNElementReference",isMany:!0,xml:{serialize:"property"}}]},{name:"DRGElement",isAbstract:!0,superClass:["NamedElement"],properties:[]},{name:"InputData",superClass:["DRGElement"],properties:[{name:"variable",type:"InformationItem",xml:{serialize:"property"}}]},{name:"DMNElement",isAbstract:!0,properties:[{name:"description",type:"String"},{name:"extensionElements",type:"ExtensionElements"},{name:"id",type:"String",isAttr:!0,isId:!0},{name:"extensionAttribute",type:"ExtensionAttribute",isMany:!0},{name:"label",isAttr:!0,type:"String"}]},{name:"InputClause",superClass:["DMNElement"],properties:[{name:"inputExpression",type:"LiteralExpression",xml:{serialize:"property"}},{name:"inputValues",type:"UnaryTests",xml:{serialize:"property"}}]},{name:"DecisionTable",superClass:["Expression"],properties:[{name:"input",type:"InputClause",isMany:!0,xml:{serialize:"property"}},{name:"output",type:"OutputClause",isMany:!0,xml:{serialize:"property"}},{name:"annotation",type:"RuleAnnotationClause",isMany:!0,xml:{serialize:"property"}},{name:"rule",type:"DecisionRule",isMany:!0,xml:{serialize:"property"}},{name:"hitPolicy",type:"HitPolicy",isAttr:!0,default:"UNIQUE"},{name:"aggregation",type:"BuiltinAggregator",isAttr:!0},{name:"preferredOrientation",type:"DecisionTableOrientation",isAttr:!0},{name:"outputLabel",isAttr:!0,type:"String"}]},{name:"LiteralExpression",superClass:["Expression"],properties:[{name:"expressionLanguage",type:"String",isAttr:!0},{name:"text",type:"String"},{name:"importedValues",type:"ImportedValues"}]},{name:"Binding",properties:[{name:"parameter",type:"InformationItem",xml:{serialize:"property"}},{name:"bindingFormula",type:"Expression"}]},{name:"KnowledgeRequirement",superClass:["DMNElement"],properties:[{name:"requiredKnowledge",type:"DMNElementReference",xml:{serialize:"property"}}]},{name:"BusinessKnowledgeModel",superClass:["Invocable"],properties:[{name:"encapsulatedLogic",type:"FunctionDefinition",xml:{serialize:"property"}},{name:"knowledgeRequirement",type:"KnowledgeRequirement",isMany:!0},{name:"authorityRequirement",type:"AuthorityRequirement",isMany:!0}]},{name:"BusinessContextElement",isAbstract:!0,superClass:["NamedElement"],properties:[{name:"URI",type:"String",isAttr:!0}]},{name:"PerformanceIndicator",superClass:["BusinessContextElement"],properties:[{name:"impactingDecision",type:"DMNElementReference",isMany:!0,xml:{serialize:"property"}}]},{name:"FunctionDefinition",superClass:["Expression"],properties:[{name:"formalParameter",type:"InformationItem",isMany:!0,xml:{serialize:"property"}},{name:"body",type:"Expression"},{name:"kind",type:"FunctionKind",isAttr:!0}]},{name:"Context",superClass:["Expression"],properties:[{name:"contextEntry",type:"ContextEntry",isMany:!0}]},{name:"ContextEntry",superClass:["DMNElement"],properties:[{name:"variable",type:"InformationItem",xml:{serialize:"property"}},{name:"value",type:"Expression"}]},{name:"List",superClass:["Expression"],properties:[{name:"elements",isMany:!0,type:"Expression"}]},{name:"Relation",superClass:["Expression"],properties:[{name:"column",type:"InformationItem",isMany:!0,xml:{serialize:"property"}},{name:"row",type:"List",isMany:!0,xml:{serialize:"property"}}]},{name:"OutputClause",superClass:["DMNElement"],properties:[{name:"outputValues",type:"UnaryTests",xml:{serialize:"property"}},{name:"defaultOutputEntry",type:"LiteralExpression",xml:{serialize:"property"}},{name:"name",isAttr:!0,type:"String"},{name:"typeRef",isAttr:!0,type:"String"}]},{name:"UnaryTests",superClass:["Expression"],properties:[{name:"text",type:"String"},{name:"expressionLanguage",type:"String",isAttr:!0}]},{name:"NamedElement",isAbstract:!0,superClass:["DMNElement"],properties:[{name:"name",isAttr:!0,type:"String"}]},{name:"ImportedValues",superClass:["Import"],properties:[{name:"importedElement",type:"String"},{name:"expressionLanguage",type:"String",isAttr:!0}]},{name:"DecisionService",superClass:["Invocable"],properties:[{name:"outputDecision",type:"DMNElementReference",isMany:!0,xml:{serialize:"property"}},{name:"encapsulatedDecision",type:"DMNElementReference",isMany:!0,xml:{serialize:"property"}},{name:"inputDecision",type:"DMNElementReference",isMany:!0,xml:{serialize:"property"}},{name:"inputData",type:"DMNElementReference",isMany:!0,xml:{serialize:"property"}}]},{name:"ExtensionElements",properties:[{name:"values",type:"Element",isMany:!0}]},{name:"ExtensionAttribute",properties:[{name:"value",type:"Element"},{name:"valueRef",type:"Element",isAttr:!0,isReference:!0},{name:"name",isAttr:!0,type:"String"}]},{name:"Element",isAbstract:!0,properties:[{name:"extensionAttribute",type:"ExtensionAttribute",isAttr:!0,isReference:!0},{name:"elements",type:"ExtensionElements",isAttr:!0,isReference:!0}]},{name:"Artifact",isAbstract:!0,superClass:["DMNElement"],properties:[]},{name:"Association",superClass:["Artifact"],properties:[{name:"sourceRef",type:"DMNElementReference",xml:{serialize:"property"}},{name:"targetRef",type:"DMNElementReference",xml:{serialize:"property"}},{name:"associationDirection",type:"AssociationDirection",isAttr:!0}]},{name:"TextAnnotation",superClass:["Artifact"],properties:[{name:"text",type:"String"},{name:"textFormat",isAttr:!0,type:"String",default:"text/plain"}]},{name:"RuleAnnotationClause",properties:[{name:"name",isAttr:!0,type:"String"}]},{name:"RuleAnnotation",properties:[{name:"text",type:"String"}]},{name:"Invocable",isAbstract:!0,superClass:["DRGElement"],properties:[{name:"variable",type:"InformationItem",xml:{serialize:"property"}}]},{name:"Group",superClass:["Artifact"],properties:[{name:"name",isAttr:!0,type:"String"}]},{name:"FunctionItem",superClass:["DMNElement"],properties:[{name:"parameters",isMany:!0,type:"InformationItem",xml:{serialize:"property"}},{name:"outputTypeRef",isAttr:!0,type:"String"}]},{name:"DMNElementReference",properties:[{isAttr:!0,name:"href",type:"String"}]}],enumerations:[{name:"HitPolicy",literalValues:[{name:"UNIQUE"},{name:"FIRST"},{name:"PRIORITY"},{name:"ANY"},{name:"COLLECT"},{name:"RULE ORDER"},{name:"OUTPUT ORDER"}]},{name:"BuiltinAggregator",literalValues:[{name:"SUM"},{name:"COUNT"},{name:"MIN"},{name:"MAX"}]},{name:"DecisionTableOrientation",literalValues:[{name:"Rule-as-Row"},{name:"Rule-as-Column"},{name:"CrossTable"}]},{name:"AssociationDirection",literalValues:[{name:"None"},{name:"One"},{name:"Both"}]},{name:"FunctionKind",literalValues:[{name:"FEEL"},{name:"Java"},{name:"PMML"}]}],associations:[],xml:{tagAlias:"lowerCase"}},dmndi:{name:"DMNDI",prefix:"dmndi",uri:"https://www.omg.org/spec/DMN/20191111/DMNDI/",types:[{name:"DMNDI",properties:[{name:"diagrams",type:"DMNDiagram",isMany:!0},{name:"styles",type:"DMNStyle",isMany:!0}]},{name:"DMNStyle",superClass:["di:Style"],properties:[{name:"fillColor",type:"dc:Color",isAttr:!0},{name:"strokeColor",type:"dc:Color",isAttr:!0},{name:"fontColor",type:"dc:Color",isAttr:!0},{name:"fontSize",isAttr:!0,type:"Real"},{name:"fontFamily",isAttr:!0,type:"String"},{name:"fontItalic",isAttr:!0,type:"Boolean"},{name:"fontBold",isAttr:!0,type:"Boolean"},{name:"fontUnderline",isAttr:!0,type:"Boolean"},{name:"fontStrikeThrough",isAttr:!0,type:"Boolean"},{name:"labelHorizontalAlignment",type:"dc:AlignmentKind",isAttr:!0},{name:"labelVerticalAlignment",type:"dc:AlignmentKind",isAttr:!0}]},{name:"DMNDiagram",superClass:["di:Diagram"],properties:[{name:"dmnElementRef",type:"dmn:DMNElement",isAttr:!0,isReference:!0},{name:"size",type:"Size"},{name:"localStyle",type:"DMNStyle",isVirtual:!0},{name:"sharedStyle",type:"DMNStyle",isVirtual:!0,isReference:!0,redefines:"di:DiagramElement#sharedStyle"},{name:"diagramElements",type:"DMNDiagramElement",isMany:!0}]},{name:"DMNDiagramElement",isAbstract:!0,superClass:["di:DiagramElement"],properties:[{name:"dmnElementRef",type:"dmn:DMNElement",isAttr:!0,isReference:!0},{name:"sharedStyle",type:"DMNStyle",isVirtual:!0,isReference:!0,redefines:"di:DiagramElement#sharedStyle"},{name:"localStyle",type:"DMNStyle",isVirtual:!0},{name:"label",type:"DMNLabel"}]},{name:"DMNLabel",superClass:["di:Shape"],properties:[{name:"text",type:"Text"}]},{name:"DMNShape",superClass:["di:Shape","DMNDiagramElement"],properties:[{name:"isListedInputData",isAttr:!0,type:"Boolean"},{name:"decisionServiceDividerLine",type:"DMNDecisionServiceDividerLine"},{name:"isCollapsed",isAttr:!0,type:"Boolean"}]},{name:"DMNEdge",superClass:["di:Edge","DMNDiagramElement"],properties:[{name:"sourceElement",type:"DMNDiagramElement",isAttr:!0,isReference:!0},{name:"targetElement",type:"DMNDiagramElement",isAttr:!0,isReference:!0}]},{name:"DMNDecisionServiceDividerLine",superClass:["di:Edge"]},{name:"Text",properties:[{name:"text",isBody:!0,type:"String"}]},{name:"Size",superClass:["dc:Dimension"]}],associations:[],enumerations:[]},biodi:{name:"bpmn.io DI for DMN",uri:"http://bpmn.io/schema/dmn/biodi/2.0",prefix:"biodi",xml:{tagAlias:"lowerCase"},types:[{name:"DecisionTable",isAbstract:!0,extends:["dmn:DecisionTable"],properties:[{name:"annotationsWidth",isAttr:!0,type:"Integer"}]},{name:"OutputClause",isAbstract:!0,extends:["dmn:OutputClause"],properties:[{name:"width",isAttr:!0,type:"Integer"}]},{name:"InputClause",isAbstract:!0,extends:["dmn:InputClause"],properties:[{name:"width",isAttr:!0,type:"Integer"}]}]}};function $e(e,t){return new je(S({},Ve,e),t)}function ze(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 We=Object.prototype.toString,He=Object.prototype.hasOwnProperty;function Ue(e,t){return He.call(e,t)}function Ge(e,t){let n,i;if(void 0===e)return;const r=function(e){return"[object Array]"===We.call(e)}(e)?Xe:Ke;for(let o in e)if(Ue(e,o)&&(n=e[o],i=t(n,r(o)),!1===i))return n}function Ke(e){return e}function Xe(e){return Number(e)}function Ye(e,...t){const n=e.style;return Ge(t,(function(e){e&&Ge(e,(function(e,t){n[t]=e}))})),e}function Je(e,t,n){return 2==arguments.length?e.getAttribute(t):null===n?e.removeAttribute(t):(e.setAttribute(t,n),e)}const Qe=Object.prototype.toString;function Ze(e){return new et(e)}function et(e){if(!e||!e.nodeType)throw new Error("A DOM element reference is required");this.el=e,this.list=e.classList}function tt(e){for(var t;t=e.firstChild;)e.removeChild(t);return e}function nt(e,t,n){var i=n?e:e.parentNode;return i&&"function"==typeof i.closest&&i.closest(t)||null}et.prototype.add=function(e){return this.list.add(e),this},et.prototype.remove=function(e){return"[object RegExp]"==Qe.call(e)?this.removeMatching(e):(this.list.remove(e),this)},et.prototype.removeMatching=function(e){const t=this.array();for(let n=0;n<t.length;n++)e.test(t[n])&&this.remove(t[n]);return this},et.prototype.toggle=function(e,t){return void 0!==t?t!==this.list.toggle(e,t)&&this.list.toggle(e):this.list.toggle(e),this},et.prototype.array=function(){return Array.from(this.list)},et.prototype.has=et.prototype.contains=function(e){return this.list.contains(e)};var it,rt,ot,st={};function at(){it=window.addEventListener?"addEventListener":"attachEvent",rt=window.removeEventListener?"removeEventListener":"detachEvent",ot="addEventListener"!==it?"on":""}var lt=ze({__proto__:null,bind:st.bind=function(e,t,n,i){return it||at(),e[it](ot+t,n,i||!1),n},unbind:st.unbind=function(e,t,n,i){return rt||at(),e[rt](ot+t,n,i||!1),n},default:st},[st]),ct=["focus","blur"];var ht,ut={bind:function(e,t,n,i,r){return-1!==ct.indexOf(n)&&(r=!0),lt.bind(e,n,(function(n){var r=n.target||n.srcElement;n.delegateTarget=nt(r,t,!0),n.delegateTarget&&i.call(e,n)}),r)},unbind:function(e,t,n,i){return-1!==ct.indexOf(t)&&(i=!0),lt.unbind(e,t,n,i)}},pt=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 r=Object.prototype.hasOwnProperty.call(ft,i)?ft[i]:ft._default,o=r[0],s=r[1],a=r[2],l=t.createElement("div");l.innerHTML=s+e+a;for(;o--;)l=l.lastChild;if(l.firstChild==l.lastChild)return l.removeChild(l.firstChild);var c=t.createDocumentFragment();for(;l.firstChild;)c.appendChild(l.removeChild(l.firstChild));return c},dt=!1;"undefined"!=typeof document&&((ht=document.createElement("div")).innerHTML='  <link/><table></table><a href="/a">a</a><input type="checkbox"/>',dt=!ht.getElementsByTagName("link").length,ht=void 0);var ft={legend:[1,"<fieldset>","</fieldset>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],_default:dt?[1,"X<div>","</div>"]:[0,"",""]};ft.td=ft.th=[3,"<table><tbody><tr>","</tr></tbody></table>"],ft.option=ft.optgroup=[1,'<select multiple="multiple">',"</select>"],ft.thead=ft.tbody=ft.colgroup=ft.caption=ft.tfoot=[1,"<table>","</table>"],ft.polyline=ft.ellipse=ft.polygon=ft.circle=ft.text=ft.line=ft.path=ft.rect=ft.g=[1,'<svg xmlns="http://www.w3.org/2000/svg" version="1.1">',"</svg>"];var gt=pt;function mt(e,t){return(t=t||document).querySelector(e)}function yt(e){e.parentNode&&e.parentNode.removeChild(e)}function vt(e){return function(){if(!window.Promise)throw new Error("Promises is not supported in this environment. Please polyfill Promise.");var t=arguments.length;if(!(t>=1&&l(arguments[t-1])))return e.apply(this,arguments);var n=arguments[t-1];console.warn(new Error("Passing callbacks to "+function(e){return e.replace("bound ","")}(e.name)+" is deprecated and will be removed in a future major release. Please switch to promises: https://bpmn.io/l/moving-to-promises.html"));var i=Array.prototype.slice.call(arguments,0,-1);e.apply(this,i).then((function(e){var t=Object.keys(e)[0];return n(null,e[t])}),(function(e){return n(e,e.warnings)}))}}const wt={width:"100%",height:"100%",position:"relative"};class bt{constructor(e={}){this._eventBus=new M,this._viewsChanged=_(this._viewsChanged,0),this._views=[],this._viewers={},this.open=vt(this.open.bind(this)),this.importXML=vt(this.importXML.bind(this)),this.saveXML=vt(this.saveXML.bind(this)),this._init(e)}importXML(e,t){var n=this;return t=t||{open:!0},new Promise((function(r,o){var s=n._activeView;n._clear().then((()=>{var a;e=n._emit("import.parse.start",{xml:e})||e,n._moddle.fromXML(e,"dmn:Definitions").then((e=>{var l=e.rootElement,c=e.references,h=e.elementsById;if(a=e.warnings,l=n._emit("import.parse.complete",i({error:null,definitions:l,elementsById:h,references:c,warnings:a}))||l,n._setDefinitions(l),!t.open)return n._emit("import.done",{error:null,warnings:a}),void r({warnings:a});var u=n._getInitialView(n._views,s);if(!u){var p=new Error("no displayable contents");return n._emit("import.done",{error:p,warnings:a}),p.warnings=a,o(p)}n.open(u).then((e=>({warnings:e.warnings}))).catch((e=>({error:e,warnings:e.warnings}))).then((e=>{var t=[].concat(a,e.warnings);n._emit("import.done",{error:e.error,warnings:t}),e.error?(e.error.warnings=t,o(e.error)):r({warnings:t})}))})).catch((t=>(a=t.warnings,t=function(e,t){if("failed to parse document as <dmn:Definitions>"!==e.message)return null;var n=-1!==t.indexOf('"http://www.omg.org/spec/DMN/20151101/dmn.xsd"')?"1.1":-1!==t.indexOf('"http://www.omg.org/spec/DMN/20180521/MODEL/"')&&"1.2";if(!n)return null;return e=new Error("unsupported DMN "+n+" file detected; only DMN 1.3 files can be opened"),console.error("Cannot open what looks like a DMN "+n+" diagram. Please refer to https://bpmn.io/l/dmn-compatibility.html to learn how to make the toolkit compatible with older DMN files",e),e}(t,e)||function(e){var t=/unparsable content <([^>]+)> detected([\s\S]*)$/.exec(e.message);if(!t)return null;return e.message="unparsable content <"+t[1]+"> detected; this may indicate an invalid DMN 1.3 diagram file"+t[2],e}(t)||t,n._emit("import.parse.complete",i({error:t,warnings:a})),n._emit("import.done",{error:t,warnings:a}),t.warnings=a,o(t))))})).catch((e=>(n._emit("import.done",{error:e,warnings:[]}),e.warnings=[],o(e))))}));function i(e){var t=n._eventBus.createEvent(e);return Object.defineProperty(t,"context",{enumerable:!0,get:function(){return console.warn(new Error("import.parse.complete <context> is deprecated and will be removed in future library versions")),{warnings:e.warnings,references:e.references,elementsById:e.elementsById}}}),t}}getDefinitions(){return this._definitions}getActiveView(){return this._activeView}getActiveViewer(){var e=this.getActiveView();return e&&this._getViewer(e)}getView(e){return this._views.filter((function(t){return t.element===e}))[0]}getViews(){return this._views}saveXML(e){var t=this;e=e||{};var n=this._definitions;return new Promise((function(i,r){n?(n=t._emit("saveXML.start",{definitions:n})||n,t._moddle.toXML(n,e).then((function(e){var n=e.xml;return{xml:n=t._emit("saveXML.serialized",{xml:n})||n}})).catch((e=>({error:e}))).then((e=>{t._emit("saveXML.done",e),e.error?r(e.error):i({xml:e.xml})}))):r(new Error("no definitions loaded"))}))}on(...e){this._eventBus.on(...e)}off(...e){this._eventBus.off(...e)}once(...e){this._eventBus.once(...e)}attachTo(e){e.get&&e.constructor.prototype.jquery&&(e=e.get(0)),"string"==typeof e&&(e=mt(e)),e.appendChild(this._container),this._emit("attach",{})}detach(){this._emit("detach",{}),yt(this._container)}destroy(){Object.keys(this._viewers).forEach((e=>{St(this._viewers[e],"destroy")})),yt(this._container)}_init(e){this._options=e,this._moddle=this._createModdle(e),this._viewers={},this._views=[];const t=gt('<div class="dmn-js-parent"></div>'),n=S({},wt,e);S(t.style,{width:xt(n.width),height:xt(n.height),position:n.position}),this._container=t,e.container&&this.attachTo(e.container)}_clear(){return this._switchView(null)}open(e){return this._switchView(e)}_setDefinitions(e){this._definitions=e,this._updateViews()}_viewsChanged=()=>{this._emit("views.changed",{views:this._views,activeView:this._activeView})};_updateViews(){var e=this._definitions;if(!e)return this._views=[],void this._switchView(null);var t=this._getViewProviders(),n=[e,...e.drgElement||[]],i=this._views,r=[];for(var o of n){var s=u(t,(function(e){return"string"==typeof e.opens?e.opens===o.$type:e.opens(o)}));if(s){var a={element:o,id:o.id,name:o.name,type:s.id};r.push(a)}}var l,c=this._activeView;if(!c||(l=u(r,(function(e){return _t(c,e)}))||this._getInitialView(r),l)){var h=!_t(c,l)||kt(c,l),p=i.length!==r.length||!g(r,(function(e){return u(i,(function(t){return _t(t,e)&&!kt(t,e)}))}));this._activeView=l,this._views=r,(h||p)&&this._viewsChanged()}else this._switchView(null)}_getInitialView(e,t){var n;return t&&(n=u(e,(function(e){return _t(e,t)}))||u(e,(function(e){return e.type===t}))),n||e[0]}_switchView(e){var t=this;return new Promise((function(n,i){var r,o=(e,r)=>{t._viewsChanged(),e?i(e):n(r)},s=t.getActiveView(),a=e&&t._getViewer(e),l=e&&e.element;if(s&&(r=t._getViewer(s))!==a&&(St(r,"clear"),r.detach()),t._activeView=e,a)return r!==a&&a.attachTo(t._container),t._emit("import.render.start",{view:e,element:l}),void a.open(l).then((n=>{t._emit("import.render.complete",{view:e,error:null,warnings:n.warnings}),o(null,n)})).catch((n=>{t._emit("import.render.complete",{view:e,error:n,warnings:n.warnings}),o(n,null)}));o()}))}_getViewer(e){var t=e.type,n=this._viewers[t];return n||(n=this._viewers[t]=this._createViewer(e.type),this._emit("viewer.created",{type:t,viewer:n})),n}_createViewer(e){var t=u(this._getViewProviders(),(function(t){return t.id===e}));if(!t)throw new Error("no provider for view type <"+e+">");var n=t.constructor,i=this._options[e]||{};return new n({...this._options.common||{},...i,additionalModules:[...i.additionalModules||[],{_parent:["value",this],moddle:["value",this._moddle]}]})}_emit(...e){return this._eventBus.fire(...e)}_createModdle(e){return new $e(e.moddleExtensions)}_getViewProviders(){return[]}}function xt(e){return e+(a(e)?"px":"")}function _t(e,t){return i(e)?!!i(t)&&(e.element===t.element||e.id===t.id):!i(t)}function kt(e,t){return!e||!t||e.name!==t.name}function St(e,t){l(e[t])&&e[t]()}function Ct(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}const Et=/^class[ {]/;function Mt(e){return Array.isArray(e)}function At(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Tt(...e){1===e.length&&Mt(e[0])&&(e=e[0]);const t=(e=[...e]).pop();return t.$inject=e,t}const Rt=/constructor\s*[^(]*\(\s*([^)]*)\)/m,Dt=/^(?:async\s+)?(?:function\s*[^(]*)?(?:\(\s*([^)]*)\)|(\w+))/m,Ot=/\/\*([^*]*)\*\//m;function Nt(e){if("function"!=typeof e)throw new Error(`Cannot annotate "${e}". Expected a function!`);const t=e.toString().match(function(e){return Et.test(e.toString())}(e)?Rt:Dt);if(!t)return[];const n=t[1]||t[2];return n&&n.split(",").map((e=>{const t=e.match(Ot);return(t&&t[1]||e).trim()}))||[]}function qt(e,t){const n=t||{get:function(e,t){if(i.push(e),!1===t)return null;throw a(`No provider for "${e}"!`)}},i=[],r=this._providers=Object.create(n._providers||null),o=this._instances=Object.create(null),s=o.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(!r[e]&&e.includes(".")){const t=e.split(".");let n=l(t.shift());for(;t.length;)n=n[t.shift()];return n}if(At(o,e))return o[e];if(At(r,e)){if(-1!==i.indexOf(e))throw i.push(e),a("Cannot resolve circular dependency!");return i.push(e),o[e]=r[e][0](r[e][1]),i.pop(),o[e]}return n.get(e,t)}function c(e,t){if(void 0===t&&(t={}),"function"!=typeof e){if(!Mt(e))throw a(`Cannot invoke "${e}". Expected a function!`);e=Tt(e.slice())}return{fn:e,dependencies:(e.$inject||Nt(e)).map((e=>At(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:r}=c(e,n);return i.apply(t,r)}function p(e){return Tt((t=>e.get(t)))}function d(e,t){if(t&&t.length){const n=Object.create(null),i=Object.create(null),o=[],s=[],a=[];let l,c,h,u;for(let e in r)l=r[e],-1!==t.indexOf(e)&&("private"===l[2]?(c=o.indexOf(l[3]),-1===c?(h=l[3].createChild([],t),u=p(h),o.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 qt(e,s)}const f={factory:u,type:h,value:function(e){return e}};function g(e,t){const n=e.__init__||[];return function(){n.forEach((e=>{"string"==typeof e?t.get(e):t.invoke(e)}))}}function m(e){const t=e.__exports__;if(t){const n=e.__modules__,i=Object.keys(e).reduce(((t,n)=>("__exports__"!==n&&"__modules__"!==n&&"__init__"!==n&&"__depends__"!==n&&(t[n]=e[n]),t)),Object.create(null)),o=d((n||[]).concat(i)),s=Tt((function(e){return o.get(e)}));t.forEach((function(e){r[e]=[s,e,"private",o]}));const a=(e.__init__||[]).slice();return a.unshift((function(){o.init()})),g(e=Object.assign({},e,{__init__:a}),o)}return Object.keys(e).forEach((function(t){if("__init__"===t||"__depends__"===t)return;const n=e[t];if("private"===n[2])return void(r[t]=n);const i=n[0],o=n[1];r[t]=[f[i],Lt(i,o),i]})),g(e,s)}function y(e,t){return-1!==e.indexOf(t)||-1!==(e=(t.__depends__||[]).reduce(y,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(y,[]).map(m);let n=!1;return function(){n||(n=!0,t.forEach((e=>e())))}}(e)}function Lt(e,t){return"value"!==e&&Mt(t)&&(t=Tt(t.slice())),t}var Bt=1e3;function Pt(e,t){var n=this;t=t||Bt,e.on(["render.shape","render.connection"],t,(function(e,t){var i=e.type,r=t.element,o=t.gfx,s=t.attrs;if(n.canRender(r))return"render.shape"===i?n.drawShape(o,r,s):n.drawConnection(o,r,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 It(e,t){return function(e,t){t.appendChild(function(e,t){if(e.ownerDocument!==t.ownerDocument)try{return t.ownerDocument.importNode(e,!0)}catch(e){}return e}(e,t))}(t,e),e}Pt.prototype.canRender=function(e){},Pt.prototype.drawShape=function(e,t){},Pt.prototype.drawConnection=function(e,t){},Pt.prototype.getShapePath=function(e){},Pt.prototype.getConnectionPath=function(e){};var Ft=2,jt={"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":Ft,"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":Ft,"text-anchor":1,"text-decoration":1,"text-rendering":1,"unicode-bidi":1,visibility:1,"word-spacing":1,"writing-mode":1};function Vt(e,t,n){var i=t.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase(),r=jt[i];r?(r===Ft&&"number"==typeof n&&(n=String(n)+"px"),e.style[i]=n):e.setAttributeNS(null,t,n)}function $t(e,t,n){if("string"==typeof t){if(void 0===n)return function(e,t){return jt[t]?e.style[t]:e.getAttributeNS(null,t)}(e,t);Vt(e,t,n)}else!function(e,t){var n,i,r=Object.keys(t);for(n=0;i=r[n];n++)Vt(e,i,t[i])}(e,t);return e}const zt=Object.prototype.toString;function Wt(e){return new Ht(e)}function Ht(e){if(!e||!e.nodeType)throw new Error("A DOM element reference is required");this.el=e,this.list=e.classList}Ht.prototype.add=function(e){return this.list.add(e),this},Ht.prototype.remove=function(e){return"[object RegExp]"==zt.call(e)?this.removeMatching(e):(this.list.remove(e),this)},Ht.prototype.removeMatching=function(e){const t=this.array();for(let n=0;n<t.length;n++)e.test(t[n])&&this.remove(t[n]);return this},Ht.prototype.toggle=function(e,t){return void 0!==t?t!==this.list.toggle(e,t)&&this.list.toggle(e):this.list.toggle(e),this},Ht.prototype.array=function(){return Array.from(this.list)},Ht.prototype.has=Ht.prototype.contains=function(e){return this.list.contains(e)};var Ut={svg:"http://www.w3.org/2000/svg"},Gt='<svg xmlns="'+Ut.svg+'"';function Kt(e){var t=!1;"<svg"===e.substring(0,4)?-1===e.indexOf(Ut.svg)&&(e=Gt+e.substring(4)):(e=Gt+">"+e+"</svg>",t=!0);var n=function(e){var t;return(t=new DOMParser).async=!1,t.parseFromString(e,"text/xml")}(e);if(!t)return n;for(var i=document.createDocumentFragment(),r=n.firstChild;r.firstChild;)i.appendChild(r.firstChild);return i}function Xt(e,t){var n;return"<"===(e=e.trim()).charAt(0)?(n=Kt(e).firstChild,n=document.importNode(n,!0)):n=document.createElementNS(Ut.svg,e),t&&$t(n,t),n}var Yt=null;function Jt(){return null===Yt&&(Yt=Xt("svg")),Yt}function Qt(e,t){var n,i,r=Object.keys(t);for(n=0;i=r[n];n++)e[i]=t[i];return e}var Zt=/([&<>]{1})/g,en=/([&<>\n\r"]{1})/g,tn={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"'"};function nn(e,t){return e.replace(t,(function(e,t){return tn[t]||t}))}function rn(e,t){var n,i,r,o,s;switch(e.nodeType){case 3:t.push(nn(e.textContent,Zt));break;case 1:if(t.push("<",e.tagName),e.hasAttributes())for(n=0,i=(r=e.attributes).length;n<i;++n)o=r.item(n),t.push(" ",o.name,'="',nn(o.value,en),'"');if(e.hasChildNodes()){for(t.push(">"),n=0,i=(s=e.childNodes).length;n<i;++n)rn(s.item(n),t);t.push("</",e.tagName,">")}else t.push("/>");break;case 8:t.push("\x3c!--",nn(e.nodeValue,Zt),"--\x3e");break;case 4:t.push("<![CDATA[",e.nodeValue,"]]>");break;default:throw new Error("unable to handle node "+e.nodeType)}return t}function on(e,t){return function(e){for(var t=e.firstChild,n=[];t;)rn(t,n),t=t.nextSibling;return n.join("")}(e)}function sn(e){var t=e.parentNode;return t&&t.removeChild(e),e}function an(e,t){return t instanceof SVGMatrix?e.createSVGTransformFromMatrix(t):t}function ln(e,t){var n=e.transform.baseVal;return t&&(Array.isArray(t)||(t=[t]),function(e,t){var n,i;for(e.clear(),n=0;i=t[n];n++)e.appendItem(an(e,i))}(n,t)),n.consolidate()}function cn(e){return e.flat().join(",").replace(/,?([A-z]),?/g,"$1")}function hn(e){return["L",e.x,e.y]}function un(e,t){const n=e.length,i=[(r=e[0],["M",r.x,r.y])];var r,o,s,a;for(let r=1;r<n;r++){const n=e[r-1],l=e[r],c=e[r+1];if(!c||!t){i.push(hn(l));continue}const h=Math.min(t,dn(l.x-n.x,l.y-n.y),dn(c.x-l.x,c.y-l.y));if(!h){i.push(hn(l));continue}const u=pn(l,n,h),p=pn(l,n,.5*h),d=pn(l,c,h),f=pn(l,c,.5*h);i.push(hn(u)),i.push((s=f,a=d,["C",(o=p).x,o.y,s.x,s.y,a.x,a.y]))}return i}function pn(e,t,n){const i=t.x-e.x,r=t.y-e.y,o=n/dn(i,r);return{x:e.x+i*o,y:e.y+r*o}}function dn(e,t){return Math.sqrt(Math.pow(e,2)+Math.pow(t,2))}function fn(e,t,n){a(t)&&(n=t,t=null),t||(t={});const i=Xt("path",t);return a(n)&&(i.dataset.cornerRadius=String(n)),gn(i,e)}function gn(e,t){return $t(e,{d:cn(un(t,parseInt(e.dataset.cornerRadius,10)||0))}),e}function mn(e,t){var n,i,r,s;return t=!!t,o(e)||(e=[e]),d(e,(function(e){var o=e;e.waypoints&&!t&&(o=mn(e.waypoints,!0));var a=o.x,l=o.y,c=o.height||0,h=o.width||0;(a<n||void 0===n)&&(n=a),(l<i||void 0===i)&&(i=l),(a+h>r||void 0===r)&&(r=a+h),(l+c>s||void 0===s)&&(s=l+c)})),{x:n,y:i,height:s-i,width:r-n}}function yn(e){return!(!e||!e.isFrame)}function vn(e,t){Pt.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})}Ct(vn,Pt),vn.prototype.canRender=function(){return!0},vn.prototype.drawShape=function(e,t,n){var i=Xt("rect");return $t(i,{x:0,y:0,width:t.width||0,height:t.height||0}),yn(t)?$t(i,S({},this.FRAME_STYLE,n||{})):$t(i,S({},this.SHAPE_STYLE,n||{})),It(e,i),i},vn.prototype.drawConnection=function(e,t,n){var i=fn(t.waypoints,S({},this.CONNECTION_STYLE,n||{}));return It(e,i),i},vn.prototype.getShapePath=function(e){var t=e.x,n=e.y,i=e.width;return cn([["M",t,n],["l",i,0],["l",0,e.height],["l",-i,0],["z"]])},vn.prototype.getConnectionPath=function(e){var t,n,i=e.waypoints,r=[];for(t=0;n=i[t];t++)n=n.original||n,r.push([0===t?"M":"L",n.x,n.y]);return cn(r)},vn.$inject=["eventBus","styles"];var wn={__init__:["defaultRenderer"],defaultRenderer:["type",vn],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 S(this.style(t,n),{class:e})},this.style=function(t,n){o(t)||n||(n=t,t=[]);var i=f(t,(function(t,n){return S(t,e[n]||{})}),{});return n?S(i,n):i},this.computeStyle=function(e,n,i){return o(n)||(i=n,n=[]),t.style(n||[],S({},i,e||{}))}}]};function bn(e){return{top:e.y,right:e.x+(e.width||0),bottom:e.y+(e.height||0),left:e.x}}function xn(e,t){return Math.round(e*t)/t}function _n(e){return a(e)?e+"px":e}function kn(e,t,n){const i=Xt("g");Wt(i).add(t);const r=void 0!==n?n:e.childNodes.length-1;return e.insertBefore(i,e.childNodes[r]||null),i}const Sn={shape:["x","y","width","height"],connection:["waypoints"]};function Cn(e,t,n,i){this._eventBus=t,this._elementRegistry=i,this._graphicsFactory=n,this._rootsIdx=0,this._layers={},this._planes=[],this._rootElement=null,this._focused=!1,this._init(e||{})}function En(e,t){const n="matrix("+t.a+","+t.b+","+t.c+","+t.d+","+t.e+","+t.f+")";e.setAttribute("transform",n)}Cn.$inject=["config.canvas","eventBus","graphicsFactory","elementRegistry"],Cn.prototype._init=function(e){const t=this._eventBus,n=this._container=function(e){const t=(e=S({},{width:"100%",height:"100%"},e)).container||document.body,n=document.createElement("div");return n.setAttribute("class","djs-container djs-parent"),Ye(n,{position:"relative",overflow:"hidden",width:_n(e.width),height:_n(e.height)}),t.appendChild(n),n}(e),i=this._svg=Xt("svg");$t(i,{width:"100%",height:"100%"}),Je(i,"tabindex",0),t.on("element.hover",(()=>{this.restoreFocus()})),i.addEventListener("focusin",(()=>{this._focused=!0,t.fire("canvas.focus.changed",{focused:!0})})),i.addEventListener("focusout",(()=>{this._focused=!1,t.fire("canvas.focus.changed",{focused:!1})})),It(n,i);const r=this._viewport=kn(i,"viewport");e.deferUpdate&&(this._viewboxChanged=_(k(this._viewboxChanged,this),300)),t.on("diagram.init",(()=>{t.fire("canvas.init",{svg:i,viewport:r})})),t.on(["shape.added","connection.added","shape.removed","connection.removed","elements.changed","root.set"],(()=>{delete this._cachedViewbox})),t.on("diagram.destroy",500,this._destroy,this),t.on("diagram.clear",500,this._clear,this)},Cn.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},Cn.prototype._clear=function(){this._elementRegistry.getAll().forEach((e=>{const t=function(e){return"waypoints"in e?"connection":"x"in e?"shape":"root"}(e);"root"===t?this.removeRootElement(e):this._removeElement(e,t)})),this._planes=[],this._rootElement=null,delete this._cachedViewbox},Cn.prototype.focus=function(){this._svg.focus({preventScroll:!0})},Cn.prototype.restoreFocus=function(){document.activeElement===document.body&&this.focus()},Cn.prototype.isFocused=function(){return this._focused},Cn.prototype.getDefaultLayer=function(){return this.getLayer("base",0)},Cn.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},Cn.prototype._getChildIndex=function(e){return f(this._layers,(function(t,n){return n.visible&&e>=n.index&&t++,t}),0)},Cn.prototype._createLayer=function(e,t){void 0===t&&(t=1);const n=this._getChildIndex(t);return{group:kn(this._viewport,"layer-"+e,n),index:t,visible:!0}},Cn.prototype.showLayer=function(e){if(!e)throw new Error("must specify a name");const t=this._layers[e];if(!t)throw new Error("layer <"+e+"> does not exist");const n=this._viewport,i=t.group,r=t.index;if(t.visible)return i;const o=this._getChildIndex(r);return n.insertBefore(i,n.childNodes[o]||null),t.visible=!0,i},Cn.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?(sn(n),t.visible=!1,n):n},Cn.prototype._removeLayer=function(e){const t=this._layers[e];t&&(delete this._layers[e],sn(t.group))},Cn.prototype.getActiveLayer=function(){const e=this._findPlaneForRoot(this.getRootElement());return e?e.layer:null},Cn.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},Cn.prototype.getRootElements=function(){return this._planes.map((function(e){return e.rootElement}))},Cn.prototype._findPlaneForRoot=function(e){return u(this._planes,(function(t){return t.rootElement===e}))},Cn.prototype.getContainer=function(){return this._container},Cn.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&&(d([i.gfx,i.secondaryGfx],(function(i){i&&(n?(e.markers.add(t),Wt(i).add(t)):(e.markers.delete(t),Wt(i).remove(t)))})),this._eventBus.fire("element.marker.update",{element:e,gfx:i.gfx,marker:t,add:!!n}))},Cn.prototype.addMarker=function(e,t){this._updateMarker(e,t,!0)},Cn.prototype.removeMarker=function(e,t){this._updateMarker(e,t,!1)},Cn.prototype.hasMarker=function(e,t){return e.id||(e=this._elementRegistry.get(e)),!!e.markers&&e.markers.has(t)},Cn.prototype.toggleMarker=function(e,t){this.hasMarker(e,t)?this.removeMarker(e,t):this.addMarker(e,t)},Cn.prototype.getRootElement=function(){const e=this._rootElement;return e||this._planes.length?e:this.setRootElement(this.addRootElement(null))},Cn.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},Cn.prototype.removeRootElement=function(e){"string"==typeof e&&(e=this._elementRegistry.get(e));if(this._findPlaneForRoot(e))return this._removeRoot(e),this._removeLayer(e.layer),this._planes=this._planes.filter((function(t){return t.rootElement!==e})),this._rootElement===e&&(this._rootElement=null),e},Cn.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},Cn.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)},Cn.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})},Cn.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})},Cn.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=Sn[e],i=g(n,(function(e){return void 0!==t[e]}));if(!i)throw new Error("must supply { "+n.join(", ")+" } with "+e)},Cn.prototype._setParent=function(e,t,n){!function(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)}}(t.children,e,n),e.parent=t},Cn.prototype._addElement=function(e,t,n,i){n=n||this.getRootElement();const r=this._eventBus,o=this._graphicsFactory;this._ensureValid(e,t),r.fire(e+".add",{element:t,parent:n}),this._setParent(t,n,i);const s=o.create(e,t,i);return this._elementRegistry.add(t,s),o.update(e,t,s),r.fire(e+".added",{element:t,gfx:s}),t},Cn.prototype.addShape=function(e,t,n){return this._addElement("shape",e,t,n)},Cn.prototype.addConnection=function(e,t,n){return this._addElement("connection",e,t,n)},Cn.prototype._removeElement=function(e,t){const n=this._elementRegistry,i=this._graphicsFactory,r=this._eventBus;if(e=n.get(e.id||e))return r.fire(t+".remove",{element:e}),i.remove(e),function(e,t){if(!e||!t)return-1;var n=e.indexOf(t);-1!==n&&e.splice(n,1)}(e.parent&&e.parent.children,e),e.parent=null,r.fire(t+".removed",{element:e}),n.remove(e),e},Cn.prototype.removeShape=function(e){return this._removeElement(e,"shape")},Cn.prototype.removeConnection=function(e){return this._removeElement(e,"connection")},Cn.prototype.getGraphics=function(e,t){return this._elementRegistry.getGraphics(e,t)},Cn.prototype._changeViewbox=function(e){this._eventBus.fire("canvas.viewbox.changing"),e.apply(this),this._cachedViewbox=null,this._viewboxChanged()},Cn.prototype._viewboxChanged=function(){this._eventBus.fire("canvas.viewbox.changed",{viewbox:this.viewbox()})},Cn.prototype.viewbox=function(e){if(void 0===e&&this._cachedViewbox)return structuredClone(this._cachedViewbox);const t=this._viewport,n=this.getSize();let i,r,o,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);ln(t,i)})),e):(o=this._rootElement?this.getActiveLayer():null,i=o&&o.getBBox()||{},s=ln(t),r=s?s.matrix:function(e,t,n,i,r,o){var s=Jt().createSVGMatrix();switch(arguments.length){case 0:return s;case 1:return Qt(s,e);case 6:return Qt(s,{a:e,b:t,c:n,d:i,e:r,f:o})}}(),a=xn(r.a,1e3),l=xn(-r.e||0,1e3),c=xn(-r.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})},Cn.prototype.scroll=function(e){const t=this._viewport;let n=t.getCTM();return e&&this._changeViewbox((function(){e=S({dx:0,dy:0},e||{}),n=this._svg.createSVGMatrix().translate(e.dx,e.dy).multiply(n),En(t,n)})),{x:n.e,y:n.f}},Cn.prototype.scrollToElement=function(e,t){let n=100;"string"==typeof e&&(e=this._elementRegistry.get(e));const i=this.findRoot(e);if(i!==this.getRootElement()&&this.setRootElement(i),i===e)return;t||(t={}),"number"==typeof t&&(n=t),t={top:t.top||n,right:t.right||n,bottom:t.bottom||n,left:t.left||n};const r=mn(e),o=bn(r),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=bn(s);if(r.width<s.width&&r.height<s.height){const e=Math.max(0,o.right-h.right),t=Math.min(0,o.left-h.left),n=Math.max(0,o.bottom-h.bottom),i=Math.min(0,o.top-h.top);l=e||t,c=n||i}else l=r.x-s.x,c=r.y-s.y;this.scroll({dx:-l*a,dy:-c*a})},Cn.prototype.zoom=function(e,t){if(!e)return this.viewbox(e).scale;if("fit-viewport"===e)return this._fitViewport(t);let n,i;return this._changeViewbox((function(){"object"!=typeof t&&(n=this.viewbox().outer,t={x:n.width/2,y:n.height/2}),i=this._setZoom(e,t)})),xn(i.a,1e3)},Cn.prototype._fitViewport=function(e){const t=this.viewbox(),n=t.outer,i=t.inner;let r,o;return i.x>=0&&i.y>=0&&i.x+i.width<=n.width&&i.y+i.height<=n.height&&!e?o={x:0,y:0,width:Math.max(i.width+i.x,n.width),height:Math.max(i.height+i.y,n.height)}:(r=Math.min(1,n.width/i.width,n.height/i.height),o={x:i.x+(e?i.width/2-n.width/r/2:0),y:i.y+(e?i.height/2-n.height/r/2:0),width:n.width/r,height:n.height/r}),this.viewbox(o),this.viewbox(!1).scale},Cn.prototype._setZoom=function(e,t){const n=this._svg,i=this._viewport,r=n.createSVGMatrix(),o=n.createSVGPoint();let s,a,l,c,h;l=i.getCTM();const u=l.a;return t?(s=S(o,t),a=s.matrixTransform(l.inverse()),c=r.translate(a.x,a.y).scale(1/u*e).translate(-a.x,-a.y),h=l.multiply(c)):h=r.scale(e),En(this._viewport,h),h},Cn.prototype.getSize=function(){return{width:this._container.clientWidth,height:this._container.clientHeight}},Cn.prototype.getAbsoluteBBox=function(e){const t=this.viewbox();let n;if(e.waypoints){n=this.getGraphics(e).getBBox()}else n=e;return{x:n.x*t.scale-t.x*t.scale,y:n.y*t.scale-t.y*t.scale,width:n.width*t.scale,height:n.height*t.scale}},Cn.prototype.resized=function(){delete this._cachedViewbox,this._eventBus.fire("canvas.resized")};var Mn="data-element-id";function An(e){this._elements={},this._eventBus=e}function Tn(e,t,n){var i=function(e,t,n,i){var r=n.inverse;return Object.defineProperty(e,"remove",{value:function(e){var n=this.indexOf(e);return-1!==n&&(this.splice(n,1),t.unset(e,r,i)),e}}),Object.defineProperty(e,"contains",{value:function(e){return-1!==this.indexOf(e)}}),Object.defineProperty(e,"add",{value:function(e,n){var o=this.indexOf(e);if(void 0===n){if(-1!==o)return;n=this.length}-1!==o&&this.splice(o,1),this.splice(n,0,e),-1===o&&t.set(e,r,i)}}),Object.defineProperty(e,"__refs_collection",{value:!0}),e}(n[t.name]||[],e,t,n);Object.defineProperty(n,t.name,{enumerable:t.enumerable,value:i}),i.length&&i.forEach((function(i){e.set(i,t.inverse,n)}))}function Rn(e,t){if(!(this instanceof Rn))return new Rn(e,t);e.inverse=t,t.inverse=e,this.props={},this.props[e.name]=e,this.props[t.name]=t}An.$inject=["eventBus"],An.prototype.add=function(e,t,n){var i=e.id;this._validateId(i),$t(t,Mn,i),n&&$t(n,Mn,i),this._elements[i]={element:e,gfx:t,secondaryGfx:n}},An.prototype.remove=function(e){var t=this._elements,n=e.id||e,i=n&&t[n];i&&($t(i.gfx,Mn,""),i.secondaryGfx&&$t(i.secondaryGfx,Mn,""),delete t[n])},An.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)},An.prototype.updateGraphics=function(e,t,n){var i=e.id||e,r=this._elements[i];return n?r.secondaryGfx=t:r.gfx=t,t&&$t(t,Mn,i),t},An.prototype.get=function(e){var t;t="string"==typeof e?e:e&&$t(e,Mn);var n=this._elements[t];return n&&n.element},An.prototype.filter=function(e){var t=[];return this.forEach((function(n,i){e(n,i)&&t.push(n)})),t},An.prototype.find=function(e){for(var t=this._elements,n=Object.keys(t),i=0;i<n.length;i++){var r=t[n[i]],o=r.element;if(e(o,r.gfx))return o}},An.prototype.getAll=function(){return this.filter((function(e){return e}))},An.prototype.forEach=function(e){var t=this._elements;Object.keys(t).forEach((function(n){var i=t[n],r=i.element,o=i.gfx;return e(r,o)}))},An.prototype.getGraphics=function(e,t){var n=e.id||e,i=this._elements[n];return i&&(t?i.secondaryGfx:i.gfx)},An.prototype._validateId=function(e){if(!e)throw new Error("element must have an id");if(this._elements[e])throw new Error("element with id "+e+" already added")},Rn.prototype.bind=function(e,t){if("string"==typeof t){if(!this.props[t])throw new Error("no property <"+t+"> in ref");t=this.props[t]}t.collection?Tn(this,t,e):function(e,t,n){var i=t.inverse,r=n[t.name];Object.defineProperty(n,t.name,{configurable:t.configurable,enumerable:t.enumerable,get:function(){return r},set:function(t){if(t!==r){var o=r;r=null,o&&e.unset(o,i,n),r=t,e.set(r,i,n)}}})}(this,t,e)},Rn.prototype.ensureRefsCollection=function(e,t){var n=e[t.name];return function(e){return!0===e.__refs_collection}(n)||Tn(this,t,e),n},Rn.prototype.ensureBound=function(e,t){(function(e,t){return Object.prototype.hasOwnProperty.call(e,t.name||t)})(e,t)||this.bind(e,t)},Rn.prototype.unset=function(e,t,n){e&&(this.ensureBound(e,t),t.collection?this.ensureRefsCollection(e,t).remove(n):e[t.name]=void 0)},Rn.prototype.set=function(e,t,n){e&&(this.ensureBound(e,t),t.collection?this.ensureRefsCollection(e,t).add(n):e[t.name]=n)};var Dn=new Rn({name:"children",enumerable:!0,collection:!0},{name:"parent"}),On=new Rn({name:"labels",enumerable:!0,collection:!0},{name:"labelTarget"}),Nn=new Rn({name:"attachers",collection:!0},{name:"host"}),qn=new Rn({name:"outgoing",collection:!0},{name:"source"}),Ln=new Rn({name:"incoming",collection:!0},{name:"target"});function Bn(){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)}}),Dn.bind(this,"parent"),On.bind(this,"labels"),qn.bind(this,"outgoing"),Ln.bind(this,"incoming")}function Pn(){Bn.call(this),Dn.bind(this,"children"),Nn.bind(this,"host"),Nn.bind(this,"attachers")}function In(){Bn.call(this),Dn.bind(this,"children")}function Fn(){Pn.call(this),On.bind(this,"labelTarget")}function jn(){Bn.call(this),qn.bind(this,"source"),Ln.bind(this,"target")}Ct(Pn,Bn),Ct(In,Pn),Ct(Fn,Pn),Ct(jn,Bn);var Vn={connection:jn,shape:Pn,label:Fn,root:In};function $n(){this._uid=12}function zn(e,t,n){var i=Jt().createSVGTransform();i.setTranslate(t,n),ln(e,i)}function Wn(e,t){this._eventBus=e,this._elementRegistry=t}function Hn(e,t,n){var i=n||t.firstChild;e!==i&&t.insertBefore(e,i)}$n.prototype.createRoot=function(e){return this.create("root",e)},$n.prototype.createLabel=function(e){return this.create("label",e)},$n.prototype.createShape=function(e){return this.create("shape",e)},$n.prototype.createConnection=function(e){return this.create("connection",e)},$n.prototype.create=function(e,t){return(t=S({},t||{})).id||(t.id=e+"_"+this._uid++),function(e,t){var n=Vn[e];if(!n)throw new Error("unknown type: <"+e+">");return S(new n,t)}(e,t)},Wn.$inject=["eventBus","elementRegistry"],Wn.prototype._getChildrenContainer=function(e){var t,n=this._elementRegistry.getGraphics(e);return e.parent?(t=function(e){return e.parentNode.childNodes[1]}(n),t||(Wt(t=Xt("g")).add("djs-children"),It(n.parentNode,t))):t=n,t},Wn.prototype._clear=function(e){var t=function(e){return e.childNodes[0]}(e);return tt(t),t},Wn.prototype._createContainer=function(e,t,n,i){var r=Xt("g");Wt(r).add("djs-group"),void 0!==n?Hn(r,t,t.childNodes[n]):It(t,r);var o=Xt("g");Wt(o).add("djs-element"),Wt(o).add("djs-"+e),i&&Wt(o).add("djs-frame"),It(r,o);var s=Xt("g");return Wt(s).add("djs-visual"),It(o,s),o},Wn.prototype.create=function(e,t,n){var i=this._getChildrenContainer(t.parent);return this._createContainer(e,i,n,yn(t))},Wn.prototype.updateContainments=function(e){var t,n=this,i=this._elementRegistry;t=f(e,(function(e,t){return t.parent&&(e[t.parent.id]=t.parent),e}),{}),d(t,(function(e){var t=e.children;if(t){var r=n._getChildrenContainer(e);d(t.slice().reverse(),(function(e){Hn(i.getGraphics(e).parentNode,r)}))}}))},Wn.prototype.drawShape=function(e,t,n={}){return this._eventBus.fire("render.shape",{gfx:e,element:t,attrs:n})},Wn.prototype.getShapePath=function(e){return this._eventBus.fire("render.getShapePath",e)},Wn.prototype.drawConnection=function(e,t,n={}){return this._eventBus.fire("render.connection",{gfx:e,element:t,attrs:n})},Wn.prototype.getConnectionPath=function(e){return this._eventBus.fire("render.getConnectionPath",e)},Wn.prototype.update=function(e,t,n){if(t.parent){var i=this._clear(n);if("shape"===e)this.drawShape(i,t),zn(n,t.x,t.y);else{if("connection"!==e)throw new Error("unknown type: "+e);this.drawConnection(i,t)}t.hidden?$t(n,"display","none"):$t(n,"display","block")}},Wn.prototype.remove=function(e){sn(this._elementRegistry.getGraphics(e).parentNode)};var Un={__depends__:[wn],__init__:["canvas"],canvas:["type",Cn],elementRegistry:["type",An],elementFactory:["type",$n],eventBus:["type",M],graphicsFactory:["type",Wn]};function Gn(e){return function(e){var t=new qt(e);return t.init(),t}([{config:["value",e=e||{}]},Un].concat(e.modules||[]))}function Kn(e,t){this._injector=t||Gn(e),this.get("eventBus").fire("diagram.init")}function Xn(e,t){var n=Yn(e);return n&&"function"==typeof n.$instanceOf&&n.$instanceOf(t)}function Yn(e){return e&&e.businessObject||e}function Jn(e){var t=Yn(e);if(Xn(t,"dmn:Decision"))return t.get("decisionLogic");if(Xn(t,"dmn:BusinessKnowledgeModel")){var n=t.get("encapsulatedLogic");return n&&n.get("body")}}Kn.prototype.get=function(e,t){return this._injector.get(e,t)},Kn.prototype.invoke=function(e,t,n){return this._injector.invoke(e,t,n)},Kn.prototype.destroy=function(){this.get("eventBus").fire("diagram.destroy")},Kn.prototype.clear=function(){this.get("eventBus").fire("diagram.clear")};var Qn=new Rn({name:"dmnElementRef",enumerable:!0},{name:"di",configurable:!0});function Zn(e,t){var n=[];function i(t){try{var n=t.di&&function(t){if(t.gfx)throw new Error("already rendered "+t.id);return e.element(t)}(t);return n}catch(e){s(e.message,{element:t,error:e})}}function r(e){var t,n;(n=(t=e).dmnElementRef)?n.di?s("multiple DI elements defined for element",{element:n}):(Qn.bind(n,"di"),n.di=t):s("no DMN element referenced in element",{element:t})}function o(e){n.push(e)}function s(t,n){e.error(t,n)}return{handleDefinitions:function(t,s){var a=t.dmnDI;if(!a)throw new Error("no dmndi:DMNDI");var l,c=a.diagrams||[];if(s&&-1===c.indexOf(s))throw new Error("diagram not part of dmndi:DMNDI");if(!s&&c&&c.length&&(s=c[0]),!s)throw new Error("no diagram to display");t.di=s,function(e){d(e.diagramElements,r)}(s),l=t,e.root(l),d(t.get("drgElement"),(function(e){i(e),function(e){d(["informationRequirement","knowledgeRequirement","authorityRequirement"],(function(t){d(e[t],(function(e){o((function(){i(e)}))}))}))}(e)})),function(e){d(e,(function(e){Xn(e,"dmn:Association")?function(e){o((function(){i(e)}))}(e):i(e)}))}(t.get("artifact")),d(n,(function(e){e()}))}}}var ei="$NO_OP",ti="a runtime error occured! Use Inferno in development environment to find the error.",ni=!("undefined"==typeof window||!window.document),ii=Array.isArray;function ri(e){var t=typeof e;return"string"===t||"number"===t}function oi(e){return ui(e)||hi(e)}function si(e){return hi(e)||!1===e||function(e){return!0===e}(e)||ui(e)}function ai(e){return"function"==typeof e}function li(e){return"string"==typeof e}function ci(e){return"number"==typeof e}function hi(e){return null===e}function ui(e){return void 0===e}function pi(e){throw e||(e=ti),new Error("Inferno Error: "+e)}function di(e){console.error(e)}function fi(e,t){var n={};if(e)for(var i in e)n[i]=e[i];if(t)for(var r in t)n[r]=t[r];return n}function gi(e){var t;if(ii(e))t="Array("+(e.length>3?e.slice(0,3).toString()+",...":e.toString())+")";else if(ri(e))t="Text("+e+")";else if(si(e))t="InvalidVNode("+e+")";else{var n=e.flags;if(481&n)t="<"+e.type+(e.className?' class="'+e.className+'"':"")+">";else if(16&n)t="Text("+e.children+")";else if(1024&n)t="Portal*";else{var i=e.type;t="<"+(i.name||i.displayName||i.constructor.name||(i.toString().match(/^function\s*([^\s(]+)/)||[])[1])+" />"}}return">> "+t+"\n"}function mi(e,t){for(var n={},i=0,r=e.length;i<r;i++){var o=e[i];if(ii(o))return"Encountered ARRAY in mount, array must be flattened, or normalize used. Location: \n"+gi(o);if(si(o)){if(t)return"Encountered invalid node when preparing to keyed algorithm. Location: \n"+gi(o);if(0!==Object.keys(n).length)return"Encountered invalid node with mixed keys. Location: \n"+gi(o)}else{"object"==typeof o&&(o.isValidated=!0);var s=o.key;if(!oi(s)&&!ri(s))return"Encountered child vNode where key property is not string or number. Location: \n"+gi(o);var a=o.children,l=o.childFlags;if(!si(a)){var c=void 0;if(12&l?c=mi(a,8&o.childFlags):2===l&&(c=mi([a],8&o.childFlags)),c)return c+=gi(o)}if(t&&oi(s))return"Encountered child without key during keyed algorithm. If this error points to Array make sure children is flat list. Location: \n"+gi(o);if(t||!oi(s)){if(n[s])return"Encountered two children with same key: {"+s+"}. Location: \n"+gi(o);n[s]=!0}else if(0!==Object.keys(n).length)return"Encountered children with key missing. Location: \n"+gi(o)}}}function yi(e){if(!(1&e.childFlags)&&(64&e.flags&&pi("input elements can't have children."),128&e.flags&&pi("textarea elements can't have children."),481&e.flags)){var t=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"],n=e.type.toLowerCase();"media"===n&&pi("media elements can't have children.");var i=t.indexOf(n);-1!==i&&pi(t[i]+" elements can't have children.")}}function vi(e){if(!1===e.isValidated&&e.children&&481&e.flags){var t=mi(Array.isArray(e.children)?e.children:[e.children],(8&e.childFlags)>0);t&&pi(t+gi(e))}e.isValidated=!0}var wi="$";function bi(e,t,n,i,r,o,s,a){return{childFlags:e,children:t,className:n,dom:null,flags:i,isValidated:!1,key:void 0===r?null:r,parentVNode:null,props:void 0===o?null:o,ref:void 0===s?null:s,type:a}}function xi(e,t,n,i,r,o,s,a){14&e&&pi("Creating Component vNodes using createVNode is not allowed. Use Inferno.createComponentVNode method.");var l=void 0===r?1:r,c=bi(l,i,n,e,s,o,a,t);return 0===l&&Ai(c,c.children),yi(c),c}function _i(e,t,n,i,r){1&e&&pi("Creating element vNodes using createComponentVNode is not allowed. Use Inferno.createVNode method."),(2&e)>0&&(e=t.prototype&&ai(t.prototype.render)?4:8);var o=t.defaultProps;if(!oi(o))for(var s in n||(n={}),o)ui(n[s])&&(n[s]=o[s]);if((8&e)>0){var a=t.defaultHooks;if(!oi(a))if(r)for(var l in a)ui(r[l])&&(r[l]=a[l]);else r=a}var c=bi(1,null,null,e,i,n,r,t),h=Ti.createVNode;return ai(h)&&h(c),c}function ki(e,t){return bi(1,oi(e)?"":e,null,16,t,null,null,null)}function Si(e){var t=e.props;if(t){var n=e.flags;481&n&&(void 0!==t.children&&oi(e.children)&&Ai(e,t.children),void 0!==t.className&&(e.className=t.className||null,t.className=void 0)),void 0!==t.key&&(e.key=t.key,t.key=void 0),void 0!==t.ref&&(e.ref=8&n?fi(e.ref,t.ref):t.ref,t.ref=void 0)}return e}function Ci(e){var t,n=e.flags;if(14&n){var i,r=e.props;if(!hi(r))for(var o in i={},r)i[o]=r[o];t=_i(n,e.type,i,e.key,e.ref)}else 481&n?t=xi(n,e.type,e.className,e.children,e.childFlags,e.props,e.key,e.ref):16&n?t=ki(e.children,e.key):1024&n&&(t=e);return t}function Ei(){return ki("",null)}function Mi(e,t,n,i){for(var r=e.length;n<r;n++){var o=e[n];if(!si(o)){var s=i+wi+n;if(ii(o))Mi(o,t,0,s);else{if(ri(o))o=ki(o,s);else{var a=o.key,l=li(a)&&a[0]===wi;hi(o.dom)&&!l||(o=Ci(o)),hi(a)||l?o.key=s:o.key=i+a}t.push(o)}}}}function Ai(e,t){var n,i=1;if(si(t))n=t;else if(li(t))i=2,n=ki(t);else if(ci(t))i=2,n=ki(t+"");else if(ii(t)){var r=t.length;if(0===r)n=null,i=1;else{(Object.isFrozen(t)||!0===t.$)&&(t=t.slice()),i=8;for(var o=0;o<r;o++){var s=t[o];if(si(s)||ii(s)){n=n||t.slice(0,o),Mi(t,n,o,"");break}if(ri(s))(n=n||t.slice(0,o)).push(ki(s,wi+o));else{var a=s.key,l=hi(s.dom),c=hi(a),h=!c&&li(a)&&a[0]===wi;!l||c||h?(n=n||t.slice(0,o),l&&!h||(s=Ci(s)),(c||h)&&(s.key=wi+o),n.push(s)):n&&n.push(s)}}(n=n||t).$=!0}}else n=t,hi(t.dom)||(n=Ci(t)),i=2;return e.children=n,e.childFlags=i,yi(e),e}var Ti={afterRender:null,beforeRender:null,createVNode:null,renderComplete:null},Ri="http://www.w3.org/1999/xlink",Di="http://www.w3.org/XML/1998/namespace",Oi="http://www.w3.org/2000/svg",Ni={"xlink:actuate":Ri,"xlink:arcrole":Ri,"xlink:href":Ri,"xlink:role":Ri,"xlink:show":Ri,"xlink:title":Ri,"xlink:type":Ri,"xml:base":Di,"xml:lang":Di,"xml:space":Di},qi={},Li=[];function Bi(e,t){e.appendChild(t)}function Pi(e,t,n){oi(n)?Bi(e,t):e.insertBefore(t,n)}function Ii(e,t,n){e.replaceChild(t,n)}function Fi(e){for(var t;void 0!==(t=e.shift());)t()}Object.freeze(qi);var ji={},Vi={};function $i(e,t,n){var i=ji[e],r=n.$EV;t?(i||(Vi[e]=function(e){var t=function(t){var n=t.type,i="click"===n||"dblclick"===n;if(i&&0!==t.button)return t.stopPropagation(),!1;t.stopPropagation=Wi;var r={dom:document};Object.defineProperty(t,"currentTarget",{configurable:!0,get:function(){return r.dom}}),function(e,t,n,i){var r=function(e){return ai(e.composedPath)?e.composedPath()[0]:e.target}(e);for(;!hi(r);){if(t&&r.disabled)return;var o=r.$EV;if(o){var s=o[n];if(s&&(i.dom=r,s.event?s.event(s.data,e):s(e),e.cancelBubble))return}r=r.parentNode}}(t,i,e,r)};return document.addEventListener(zi(e),t),t}(e),ji[e]=0),r||(r=n.$EV={}),r[e]||ji[e]++,r[e]=t):r&&r[e]&&(ji[e]--,1===i&&(document.removeEventListener(zi(e),Vi[e]),Vi[e]=null),r[e]=t)}function zi(e){return e.substr(2).toLowerCase()}function Wi(){this.cancelBubble=!0,this.immediatePropagationStopped||this.stopImmediatePropagation()}function Hi(e,t){var n=document.createElement("i");return n.innerHTML=t,n.innerHTML===e.innerHTML}function Ui(e,t,n){if(e[t]){var i=e[t];i.event?i.event(i.data,n):i(n)}else{var r=t.toLowerCase();e[r]&&e[r](n)}}function Gi(e,t){var n=function(n){n.stopPropagation();var i=this.$V;if(i){var r=i.props||qi,o=i.dom;if(li(e))Ui(r,e,n);else for(var s=0;s<e.length;s++)Ui(r,e[s],n);if(ai(t)){var a=this.$V,l=a.props||qi;t(l,o,!1,a)}}};return Object.defineProperty(n,"wrapped",{configurable:!1,enumerable:!1,value:!0,writable:!1}),n}function Ki(e){return"checkbox"===e||"radio"===e}var Xi=Gi("onInput",Qi),Yi=Gi(["onClick","onChange"],Qi);function Ji(e){e.stopPropagation()}function Qi(e,t){var n=e.type,i=e.value,r=e.checked,o=e.multiple,s=e.defaultValue,a=!oi(i);n&&n!==t.type&&t.setAttribute("type",n),oi(o)||o===t.multiple||(t.multiple=o),oi(s)||a||(t.defaultValue=s+""),Ki(n)?(a&&(t.value=i),oi(r)||(t.checked=r)):a&&t.value!==i?(t.defaultValue=i,t.value=i):oi(r)||(t.checked=r)}function Zi(e,t){if("optgroup"===e.type){var n=e.children,i=e.childFlags;if(12&i)for(var r=0,o=n.length;r<o;r++)er(n[r],t);else 2===i&&er(n,t)}else er(e,t)}function er(e,t){var n=e.props||qi,i=e.dom;i.value=n.value,ii(t)&&-1!==t.indexOf(n.value)||n.value===t?i.selected=!0:oi(t)&&oi(n.selected)||(i.selected=n.selected||!1)}Ji.wrapped=!0;var tr=Gi("onChange",nr);function nr(e,t,n,i){var r=Boolean(e.multiple);oi(e.multiple)||r===t.multiple||(t.multiple=r);var o=i.childFlags;if(!(1&o)){var s=i.children,a=e.value;if(n&&oi(a)&&(a=e.defaultValue),12&o)for(var l=0,c=s.length;l<c;l++)Zi(s[l],a);else 2===o&&Zi(s,a)}}var ir=Gi("onInput",or),rr=Gi("onChange");function or(e,t,n){var i=e.value,r=t.value;if(oi(i)){if(n){var o=e.defaultValue;oi(o)||o===r||(t.defaultValue=o,t.value=o)}}else r!==i&&(t.defaultValue=i,t.value=i)}function sr(e,t,n,i,r,o){64&e?Qi(i,n):256&e?nr(i,n,r,t):128&e&&or(i,n,r),o&&(n.$V=t)}function ar(e,t,n){64&e?function(e,t){Ki(t.type)?(e.onchange=Yi,e.onclick=Ji):e.oninput=Xi}(t,n):256&e?function(e){e.onchange=tr}(t):128&e&&function(e,t){e.oninput=ir,t.onChange&&(e.onchange=rr)}(t,n)}function lr(e){return e.type&&Ki(e.type)?!oi(e.checked):!oi(e.value)}function cr(e,t){hr(e),t&&e.dom&&(!function(e,t){e.removeChild(t)}(t,e.dom),e.dom=null)}function hr(e){var t=e.flags;if(481&t){var n=e.ref,i=e.props;ai(n)&&n(null);var r=e.children,o=e.childFlags;if(12&o?ur(r):2===o&&hr(r),!hi(i))for(var s in i)switch(s){case"onClick":case"onDblClick":case"onFocusIn":case"onFocusOut":case"onKeyDown":case"onKeyPress":case"onKeyUp":case"onMouseDown":case"onMouseMove":case"onMouseUp":case"onSubmit":case"onTouchEnd":case"onTouchMove":case"onTouchStart":$i(s,null,e.dom)}}else{var a=e.children;if(a)if(14&t){var l=e.ref;4&t?(ai(a.componentWillUnmount)&&a.componentWillUnmount(),ai(l)&&l(null),a.$UN=!0,a.$LI&&hr(a.$LI)):(!oi(l)&&ai(l.onComponentWillUnmount)&&l.onComponentWillUnmount(e.dom,e.props||qi),hr(a))}else 1024&t&&cr(a,e.type)}}function ur(e){for(var t=0,n=e.length;t<n;t++)hr(e[t])}function pr(e,t){ur(t),e.textContent=""}function dr(e,t){switch(e){case"animationIterationCount":case"borderImageOutset":case"borderImageSlice":case"borderImageWidth":case"boxFlex":case"boxFlexGroup":case"boxOrdinalGroup":case"columnCount":case"fillOpacity":case"flex":case"flexGrow":case"flexNegative":case"flexOrder":case"flexPositive":case"flexShrink":case"floodOpacity":case"fontWeight":case"gridColumn":case"gridRow":case"lineClamp":case"lineHeight":case"opacity":case"order":case"orphans":case"stopOpacity":case"strokeDasharray":case"strokeDashoffset":case"strokeMiterlimit":case"strokeOpacity":case"strokeWidth":case"tabSize":case"widows":case"zIndex":case"zoom":return t;default:return t+"px"}}function fr(e,t,n,i,r,o,s){switch(e){case"onClick":case"onDblClick":case"onFocusIn":case"onFocusOut":case"onKeyDown":case"onKeyPress":case"onKeyUp":case"onMouseDown":case"onMouseMove":case"onMouseUp":case"onSubmit":case"onTouchEnd":case"onTouchMove":case"onTouchStart":$i(e,n,i);break;case"children":case"childrenType":case"className":case"defaultValue":case"key":case"multiple":case"ref":break;case"autoFocus":i.autofocus=!!n;break;case"allowfullscreen":case"autoplay":case"capture":case"checked":case"controls":case"default":case"disabled":case"hidden":case"indeterminate":case"loop":case"muted":case"novalidate":case"open":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"selected":i[e]=!!n;break;case"defaultChecked":case"value":case"volume":if(o&&"value"===e)return;var a=oi(n)?"":n;i[e]!==a&&(i[e]=a);break;case"dangerouslySetInnerHTML":var l=t&&t.__html||"",c=n&&n.__html||"";l!==c&&(oi(c)||Hi(i,c)||(hi(s)||(12&s.childFlags?ur(s.children):2===s.childFlags&&hr(s.children),s.children=null,s.childFlags=1),i.innerHTML=c));break;default:"o"===e[0]&&"n"===e[1]?function(e,t,n){var i=e.toLowerCase();if(ai(t)||oi(t)){var r=n[i];r&&r.wrapped||(n[i]=t)}else{var o=t.event;o&&ai(o)?n[i]=function(e,t){return function(n){e(t.data,n)}}(o,t):pi('an event on a VNode "'+e+'". was not a function or a valid linkEvent.')}}(e,n,i):oi(n)?i.removeAttribute(e):"style"===e?function(e,t,n){var i,r,o=n.style;if(li(t))o.cssText=t;else if(oi(e)||li(e))for(i in t)r=t[i],o[i]=ci(r)?dr(i,r):r;else{for(i in t)(r=t[i])!==e[i]&&(o[i]=ci(r)?dr(i,r):r);for(i in e)oi(t[i])&&(o[i]="")}}(t,n,i):r&&Ni[e]?i.setAttributeNS(Ni[e],e,n):i.setAttribute(e,n)}}function gr(e,t,n,i,r){var o=!1,s=(448&t)>0;for(var a in s&&(o=lr(n))&&ar(t,i,n),n)fr(a,null,n[a],i,r,o,null);s&&sr(t,e,i,n,!0,o)}function mr(e,t,n,i){var r=new t(n,i);if(e.children=r,r.$V=e,r.$BS=!1,r.context=i,r.props===qi&&(r.props=n),r.$UN=!1,ai(r.componentWillMount)){if(r.$BR=!0,r.componentWillMount(),r.$PSS){var o=r.state,s=r.$PS;if(hi(o))r.state=s;else for(var a in s)o[a]=s[a];r.$PSS=!1,r.$PS=null}r.$BR=!1}ai(Ti.beforeRender)&&Ti.beforeRender(r);var l,c=yr(r.render(n,r.state,i),e);return ai(r.getChildContext)&&(l=r.getChildContext()),oi(l)?r.$CX=i:r.$CX=fi(i,l),ai(Ti.afterRender)&&Ti.afterRender(r),r.$LI=c,r}function yr(e,t){return ii(e)&&pi("a valid Inferno VNode (or null) must be returned from a component render. You may have returned an array or an invalid object."),si(e)?e=Ei():ri(e)?e=ki(e,null):(e.dom&&(e=Ci(e)),14&e.flags&&(e.parentVNode=t)),e}function vr(e,t,n,i){var r=e.flags;return 481&r?br(e,t,n,i):14&r?function(e,t,n,i,r){var o,s=e.type,a=e.props||qi,l=e.ref;if(r){var c=mr(e,s,a,n);e.dom=o=vr(c.$LI,null,c.$CX,i),_r(e,l,c),c.$UPD=!1}else{var h=yr(s(a,n),e);e.children=h,e.dom=o=vr(h,null,n,i),kr(a,l,o)}hi(t)||Bi(t,o);return o}(e,t,n,i,(4&r)>0):512&r||16&r?wr(e,t):1024&r?(vr(e.children,e.type,n,!1),e.dom=wr(Ei(),t)):void pi("object"==typeof e?"mount() received an object that's not a valid VNode, you should stringify it first, fix createVNode flags or call normalizeChildren. Object: \""+JSON.stringify(e)+'".':'mount() expects a valid VNode, instead it received an object with the type "'+typeof e+'".')}function wr(e,t){var n=e.dom=document.createTextNode(e.children);return hi(t)||Bi(t,n),n}function br(e,t,n,i){var r=e.flags,o=e.children,s=e.props,a=e.className,l=e.ref,c=e.childFlags;i=i||(32&r)>0;var h=function(e,t){return t?document.createElementNS(Oi,e):document.createElement(e)}(e.type,i);if(e.dom=h,oi(a)||""===a||(i?h.setAttribute("class",a):h.className=a),vi(e),hi(t)||Bi(t,h),!(1&c)){var u=!0===i&&"foreignObject"!==e.type;2===c?vr(o,h,n,u):12&c&&xr(o,h,n,u)}return hi(s)||gr(e,r,s,h,i),li(l)&&pi('string "refs" are not supported in Inferno 1.0. Use callback "refs" instead.'),ai(l)&&Sr(h,l),h}function xr(e,t,n,i){for(var r=0,o=e.length;r<o;r++){var s=e[r];hi(s.dom)||(e[r]=s=Ci(s)),vr(s,t,n,i)}}function _r(e,t,n){ai(t)?t(n):ri(t)?pi('string "refs" are not supported in Inferno 1.0. Use callback "refs" instead.'):!oi(t)&&"object"==typeof t&&4&e.flags&&pi("functional component lifecycle events are not supported on ES2015 class components."),ai(n.componentDidMount)&&Li.push(function(e){return function(){e.$UPD=!0,e.componentDidMount(),e.$UPD=!1}}(n))}function kr(e,t,n){oi(t)||(ai(t.onComponentWillMount)&&t.onComponentWillMount(e),ai(t.onComponentDidMount)&&Li.push(function(e,t,n){return function(){return e.onComponentDidMount(t,n)}}(t,n,e)))}function Sr(e,t){Li.push((function(){return t(e)}))}function Cr(e,t,n,i){var r=e.children,o=e.props,s=e.className,a=e.flags,l=e.ref;if(i=i||(32&a)>0,1!==t.nodeType||t.tagName.toLowerCase()!==e.type){di("Inferno hydration: Server-side markup doesn't match client-side markup or Initial render target is not empty");var c=br(e,null,n,i);e.dom=c,Ii(t.parentNode,c,t)}else{e.dom=t;var h=t.firstChild,u=e.childFlags;if(1&u)hi(t.firstChild)||function(e,t){return Boolean(t&&t.dangerouslySetInnerHTML&&t.dangerouslySetInnerHTML.__html&&Hi(e,t.dangerouslySetInnerHTML.__html))}(t,o)||(t.textContent="",448&a&&(t.defaultValue=""));else{for(var p=null;h;)p=h.nextSibling,8===h.nodeType&&("!"===h.data?t.replaceChild(document.createTextNode(""),h):t.removeChild(h)),h=p;if(h=t.firstChild,2===u)hi(h)?vr(r,t,n,i):(p=h.nextSibling,Er(r,h,n,i),h=p);else if(12&u)for(var d=0,f=r.length;d<f;d++){var g=r[d];hi(h)?vr(g,t,n,i):(p=h.nextSibling,Er(g,h,n,i),h=p)}for(;h;)p=h.nextSibling,t.removeChild(h),h=p}hi(o)||gr(e,a,o,t,i),oi(s)?""!==t.className&&t.removeAttribute("class"):i?t.setAttribute("class",s):t.className=s,ai(l)?Sr(t,l):li(l)&&pi('string "refs" are not supported in Inferno 1.0. Use callback "refs" instead.')}}function Er(e,t,n,i){var r=e.flags;14&r?function(e,t,n,i,r){var o=e.type,s=e.ref,a=e.props||qi;if(r){var l=mr(e,o,a,n),c=l.$LI;Er(c,t,l.$CX,i),e.dom=c.dom,_r(e,s,l),l.$UPD=!1}else{var h=yr(o(a,n),e);Er(h,t,n,i),e.children=h,e.dom=h.dom,kr(a,s,t)}}(e,t,n,i,(4&r)>0):481&r?Cr(e,t,n,i):16&r?function(e,t){if(3!==t.nodeType){var n=wr(e,null);e.dom=n,Ii(t.parentNode,n,t)}else{var i=e.children;t.nodeValue!==i&&(t.nodeValue=i),e.dom=t}}(e,t):512&r?e.dom=t:(pi('hydrate() expects a valid VNode, instead it received an object with the type "'+typeof e+'".'),pi())}function Mr(e,t,n,i,r){hr(e),Ii(n,vr(t,null,i,r),e.dom)}function Ar(e,t,n,i,r){var o=0|t.flags;e.flags!==o||2048&o?Mr(e,t,n,i,r):481&o?function(e,t,n,i,r,o){var s=t.type;if(e.type!==s)Mr(e,t,n,i,r);else{var a,l=e.dom,c=e.props,h=t.props,u=!1,p=!1;if(t.dom=l,r=r||(32&o)>0,c!==h){var d=c||qi;if((a=h||qi)!==qi)for(var f in(u=(448&o)>0)&&(p=lr(a)),a){var g=d[f],m=a[f];g!==m&&fr(f,g,m,l,r,p,e)}if(d!==qi)for(var y in d)a.hasOwnProperty(y)||oi(d[y])||fr(y,d[y],null,l,r,p,e)}var v=e.children,w=t.children,b=t.ref,x=e.className,_=t.className;vi(t),4096&o?function(e,t){e.textContent!==t.children&&(e.textContent=t.children)}(l,w):Tr(e.childFlags,t.childFlags,v,w,l,i,r&&"foreignObject"!==s),u&&sr(o,t,l,a,!1,p),x!==_&&(oi(_)?l.removeAttribute("class"):r?l.setAttribute("class",_):l.className=_),ai(b)&&e.ref!==b?Sr(l,b):li(b)&&pi('string "refs" are not supported in Inferno 1.0. Use callback "refs" instead.')}}(e,t,n,i,r,o):14&o?function(e,t,n,i,r,o){var s=t.type,a=e.key,l=t.key;if(e.type!==s||a!==l)Mr(e,t,n,i,r);else{var c=t.props||qi;if(o){var h=e.children;h.$UPD=!0,h.$V=t,Rr(h,h.state,t,c,n,i,r,!1,!1),h.$UPD=!1}else{var u=!0,p=e.props,d=t.ref,f=!oi(d),g=e.children;if(t.dom=e.dom,t.children=g,f&&ai(d.onComponentShouldUpdate)&&(u=d.onComponentShouldUpdate(p,c)),!1!==u){f&&ai(d.onComponentWillUpdate)&&d.onComponentWillUpdate(p,c);var m=s(c,i);m!==ei&&(Ar(g,m=yr(m,t),n,i,r),t.children=m,t.dom=m.dom,f&&ai(d.onComponentDidUpdate)&&d.onComponentDidUpdate(p,c))}else 14&g.flags&&(g.parentVNode=t)}}}(e,t,n,i,r,(4&o)>0):16&o?function(e,t){var n=t.children,i=e.dom;n!==e.children&&(i.nodeValue=n);t.dom=i}(e,t):512&o?t.dom=e.dom:function(e,t,n){var i=e.type,r=t.type,o=t.children;if(Tr(e.childFlags,t.childFlags,e.children,o,i,n,!1),t.dom=e.dom,i!==r&&!si(o)){var s=o.dom;i.removeChild(s),r.appendChild(s)}}(e,t,i)}function Tr(e,t,n,i,r,o,s){switch(e){case 2:switch(t){case 2:Ar(n,i,r,o,s);break;case 1:cr(n,r);break;default:cr(n,r),xr(i,r,o,s)}break;case 1:switch(t){case 2:vr(i,r,o,s);break;case 1:break;default:xr(i,r,o,s)}break;default:if(12&t){var a=n.length,l=i.length;0===a?l>0&&xr(i,r,o,s):0===l?pr(r,n):8===t&&8===e?function(e,t,n,i,r,o,s){var a,l,c=o-1,h=s-1,u=0,p=e[u],d=t[u];e:{for(;p.key===d.key;){if(d.dom&&(t[u]=d=Ci(d)),Ar(p,d,n,i,r),e[u]=d,++u>c||u>h)break e;p=e[u],d=t[u]}for(p=e[c],d=t[h];p.key===d.key;){if(d.dom&&(t[h]=d=Ci(d)),Ar(p,d,n,i,r),e[c]=d,h--,u>--c||u>h)break e;p=e[c],d=t[h]}}if(u>c){if(u<=h)for(var f=(l=h+1)<s?t[l].dom:null;u<=h;)(d=t[u]).dom&&(t[u]=d=Ci(d)),u++,Pi(n,vr(d,null,i,r),f)}else if(u>h)for(;u<=c;)cr(e[u++],n);else{var g=u,m=u,y=c-u+1,v=h-u+1,w=[];for(a=0;a<v;a++)w.push(0);var b=y===o,x=!1,_=0,k=0;if(s<4||(y|v)<32)for(a=g;a<=c;a++)if(p=e[a],k<v){for(u=m;u<=h;u++)if(d=t[u],p.key===d.key){if(w[u-m]=a+1,b)for(b=!1;a>g;)cr(e[g++],n);_>u?x=!0:_=u,d.dom&&(t[u]=d=Ci(d)),Ar(p,d,n,i,r),k++;break}!b&&u>h&&cr(p,n)}else b||cr(p,n);else{var S={};for(a=m;a<=h;a++)S[t[a].key]=a;for(a=g;a<=c;a++)if(p=e[a],k<v)if(void 0!==(u=S[p.key])){if(b)for(b=!1;a>g;)cr(e[g++],n);d=t[u],w[u-m]=a+1,_>u?x=!0:_=u,d.dom&&(t[u]=d=Ci(d)),Ar(p,d,n,i,r),k++}else b||cr(p,n);else b||cr(p,n)}if(b)pr(n,e),xr(t,n,i,r);else if(x){var C=function(e){var t,n,i,r,o,s=e.slice(),a=[0],l=e.length;for(t=0;t<l;t++){var c=e[t];if(0!==c){if(e[n=a[a.length-1]]<c){s[t]=n,a.push(t);continue}for(i=0,r=a.length-1;i<r;)e[a[o=(i+r)/2|0]]<c?i=o+1:r=o;c<e[a[i]]&&(i>0&&(s[t]=a[i-1]),a[i]=t)}}i=a.length,r=a[i-1];for(;i-- >0;)a[i]=r,r=s[r];return a}(w);for(u=C.length-1,a=v-1;a>=0;a--)0===w[a]?((d=t[_=a+m]).dom&&(t[_]=d=Ci(d)),l=_+1,Pi(n,vr(d,null,i,r),l<s?t[l].dom:null)):u<0||a!==C[u]?(l=(_=a+m)+1,Pi(n,(d=t[_]).dom,l<s?t[l].dom:null)):u--}else if(k!==v)for(a=v-1;a>=0;a--)0===w[a]&&((d=t[_=a+m]).dom&&(t[_]=d=Ci(d)),l=_+1,Pi(n,vr(d,null,i,r),l<s?t[l].dom:null))}}(n,i,r,o,s,a,l):function(e,t,n,i,r,o,s){for(var a,l,c=o>s?s:o,h=0;h<c;h++)a=t[h],l=e[h],a.dom&&(a=t[h]=Ci(a)),Ar(l,a,n,i,r),e[h]=a;if(o<s)for(h=c;h<s;h++)(a=t[h]).dom&&(a=t[h]=Ci(a)),vr(a,n,i,r);else if(o>s)for(h=c;h<o;h++)cr(e[h],n)}(n,i,r,o,s,a,l)}else 1===t?pr(r,n):2===t&&(pr(r,n),vr(i,r,o,s))}}function Rr(e,t,n,i,r,o,s,a,l){var c,h=e.state,u=e.props;if(n.children=e,e.$UN)di("Inferno Error: Can only update a mounted or mounting component. This usually means you called setState() or forceUpdate() on an unmounted component. This is a no-op.");else{if(u!==i||i===qi){if(!l&&ai(e.componentWillReceiveProps)){if(e.$BR=!0,e.componentWillReceiveProps(i,o),e.$UN)return;e.$BR=!1}e.$PSS&&(t=fi(t,e.$PS),e.$PSS=!1,e.$PS=null)}var p=Boolean(e.shouldComponentUpdate);if(a||!p||p&&e.shouldComponentUpdate(i,t,o)){ai(e.componentWillUpdate)&&(e.$BS=!0,e.componentWillUpdate(i,t,o),e.$BS=!1),e.props=i,e.state=t,e.context=o,ai(Ti.beforeRender)&&Ti.beforeRender(e),c=e.render(i,t,o),ai(Ti.afterRender)&&Ti.afterRender(e);var d,f=c!==ei;if(ai(e.getChildContext)&&(d=e.getChildContext()),d=oi(d)?o:fi(o,d),e.$CX=d,f){var g=e.$LI,m=yr(c,n);Ar(g,m,r,d,s),e.$LI=m,ai(e.componentDidUpdate)&&e.componentDidUpdate(u,h)}}else e.props=i,e.state=t,e.context=o;n.dom=e.$LI.dom}}ni&&null===document.body&&di('Inferno warning: you cannot initialize inferno without "document.body". Wait on "DOMContentLoaded" event, add script to bottom of body, or use async/defer attributes on script tag.');var Dr=ni?document.body:null;function Or(e,t,n){if(Dr===t&&pi('you cannot render() to the "document.body". Use an empty element as a container instead.'),e!==ei){var i=t.$V;return oi(i)?si(e)||(e.dom&&(e=Ci(e)),hi(t.firstChild)?(vr(e,t,qi,!1),t.$V=e):function(e,t,n){var i=t.firstChild;if(!hi(i))for(si(e)||Er(e,i,qi,!1),i=t.firstChild;i=i.nextSibling;)t.removeChild(i);Li.length>0&&Fi(Li),t.$V=e,ai(n)&&n()}(e,t),i=e):oi(e)?(cr(i,t),t.$V=null):(e.dom&&(e=Ci(e)),Ar(i,e,t,qi,!1),i=t.$V=e),Li.length>0&&Fi(Li),ai(n)&&n(),ai(Ti.renderComplete)&&Ti.renderComplete(i),i&&14&i.flags?i.children:void 0}}var Nr="undefined"==typeof Promise?null:Promise.resolve(),qr="undefined"==typeof requestAnimationFrame?setTimeout:requestAnimationFrame.bind(window);function Lr(e,t,n,i){ai(t)&&(t=t(e.state,e.props,e.context));var r,o=e.$PS;if(oi(o))e.$PS=t;else for(var s in t)o[s]=t[s];if(e.$PSS||e.$BR)e.$PSS=!0,e.$BR&&ai(n)&&Li.push(n.bind(e));else if(e.$UPD){var a=e.$QU;hi(a)&&(a=e.$QU=[],r=function(e,t){return function(){e.$QU=null,e.$UPD=!0,Br(e,!1,(function(){for(var n=0,i=t.length;n<i;n++)t[n].call(e)})),e.$UPD=!1}}(e,a),Nr?Nr.then(r):qr(r)),ai(n)&&a.push(n)}else e.$PSS=!0,e.$UPD=!0,Br(e,i,n),e.$UPD=!1}function Br(e,t,n){if(!e.$UN){if(t||!e.$BR){e.$PSS=!1;var i=e.$PS,r=fi(e.state,i),o=e.props,s=e.context;e.$PS=null;var a=e.$V,l=e.$LI;if(Rr(e,r,a,o,l.dom&&l.dom.parentNode,s,(32&a.flags)>0,t,!0),e.$UN)return;if(!(1024&e.$LI.flags))for(var c=e.$LI.dom;!hi(a=a.parentVNode);)(14&a.flags)>0&&(a.dom=c);Li.length>0&&Fi(Li)}else e.state=e.$PS,e.$PS=null;ai(n)&&n.call(e)}}var Pr=function(){function e(e,t){this.state=null,this.props=void 0,this.context=void 0,this.refs=void 0,this.$BR=!1,this.$BS=!0,this.$PSS=!1,this.$PS=null,this.$LI=null,this.$V=null,this.$UN=!1,this.$CX=null,this.$UPD=!0,this.$QU=null,this.props=e||qi,this.context=t||qi}var t=e.prototype;return t.forceUpdate=function(e){this.$UN||Lr(this,{},e,!0)},t.setState=function(e,t){this.$UN||(this.$BS?pi("cannot update state via setState() in componentWillUpdate() or constructor."):Lr(this,e,t,!1))},t.render=function(e,t,n){},e}();Pr.defaultProps=void 0;var Ir=function(){};console.info("Inferno is in development mode."),-1===(Ir.name||Ir.toString()).indexOf("testFn")&&di("It looks like you're using a minified copy of the development build of Inferno. When deploying Inferno apps to production, make sure to use the production build which skips development warnings and is faster. See http://infernojs.org for more details.");var Fr='<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14.02 5.57" width="53" height="21" style="vertical-align:middle"><path fill="#000000" d="M1.88.92v.14c0 .41-.13.68-.4.8.33.14.46.44.46.86v.33c0 .61-.33.95-.95.95H0V0h.95c.65 0 .93.3.93.92zM.63.57v1.06h.24c.24 0 .38-.1.38-.43V.98c0-.28-.1-.4-.32-.4zm0 1.63v1.22h.36c.2 0 .32-.1.32-.39v-.35c0-.37-.12-.48-.4-.48H.63zM4.18.99v.52c0 .64-.31.98-.94.98h-.3V4h-.62V0h.92c.63 0 .94.35.94.99zM2.94.57v1.35h.3c.2 0 .3-.09.3-.37v-.6c0-.29-.1-.38-.3-.38h-.3zm2.89 2.27L6.25 0h.88v4h-.6V1.12L6.1 3.99h-.6l-.46-2.82v2.82h-.55V0h.87zM8.14 1.1V4h-.56V0h.79L9 2.4V0h.56v4h-.64zm2.49 2.29v.6h-.6v-.6zM12.12 1c0-.63.33-1 .95-1 .61 0 .95.37.95 1v2.04c0 .64-.34 1-.95 1-.62 0-.95-.37-.95-1zm.62 2.08c0 .28.13.39.33.39s.32-.1.32-.4V.98c0-.29-.12-.4-.32-.4s-.33.11-.33.4z"/><path fill="#000000" d="M0 4.53h14.02v1.04H0zM11.08 0h.63v.62h-.63zm.63 4V1h-.63v2.98z"/></svg>';
/**
   * Adds the project logo to the diagram container as
   * required by the bpmn.io license.
   *
   * @see http://bpmn.io/license
   *
   * @param {Element} container
   */function jr(e){var t=gt('<a href="http://bpmn.io" target="_blank" class="bjs-powered-by" title="Powered by bpmn.io" style="position: absolute; bottom: 15px; right: 15px; z-index: 100;">'+Fr+"</a>");e.appendChild(t),lt.bind(t,"click",(function(e){!function(){zr||(zr=gt(Wr),ut.bind(zr,".backdrop","click",(function(e){document.body.removeChild(zr)})));document.body.appendChild(zr)}(),e.preventDefault()}))}class Vr extends Pr{constructor(e,t){super(e,t),this.node=null}componentDidMount(){jr(this.node)}render(){return xi(1,"div",null,null,1,null,null,(e=>this.node=e))}}function $r(e){return e.join(";")}var zr,Wr='<div class="bjs-powered-by-lightbox" style="'+$r(["z-index: 1001","position: fixed","top: 0","left: 0","right: 0","bottom: 0"])+'"><div class="backdrop" style="'+$r(["width: 100%","height: 100%","background: rgba(40,40,40,0.2)"])+'"></div><div class="notice" style="'+$r(["position: absolute","left: 50%","top: 40%","transform: translate(-50%)","width: 260px","padding: 10px","background: white","box-shadow: 0 1px 4px rgba(0,0,0,0.3)","font-family: Helvetica, Arial, sans-serif","font-size: 14px","display: flex","line-height: 1.3"])+'"><a href="https://bpmn.io" target="_blank" rel="noopener" style="margin: 15px 20px 15px 10px; align-self: center;">'+Fr+'</a><span>Web-based tooling for BPMN, DMN and CMMN diagrams powered by <a href="https://bpmn.io" target="_blank" rel="noopener">bpmn.io</a>.</span></div></div>';var Hr=function(e,t){return e(t={exports:{}},t.exports),t.exports}((function(e){var t=e.exports=function(e,n){if(n||(n=16),void 0===e&&(e=128),e<=0)return"0";for(var i=Math.log(Math.pow(2,e))/Math.log(n),r=2;i===1/0;r*=2)i=Math.log(Math.pow(2,e/r))/Math.log(n)*r;var o=i-Math.floor(i),s="";for(r=0;r<Math.floor(i);r++){s=Math.floor(Math.random()*n).toString(n)+s}if(o){var a=Math.pow(n,o);s=Math.floor(Math.random()*a).toString(n)+s}var l=parseInt(s,n);return l!==1/0&&l>=Math.pow(2,e)?t(e,n):s};t.rack=function(e,n,i){var r=function(r){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(o,a));return o[a]=r,a},o=r.hats={};return r.get=function(e){return r.hats[e]},r.set=function(e,t){return r.hats[e]=t,r},r.bits=e||128,r.base=n||16,r}}));function Ur(e){if(!(this instanceof Ur))return new Ur(e);e=e||[128,36,1],this._seed=e.length?Hr.rack(e[0],e[1],e[2]):e}Ur.prototype.next=function(e){return this._seed(e||!0)},Ur.prototype.nextPrefixed=function(e,t){var n;do{n=e+this.next(!0)}while(this.assigned(n));return this.claim(n,t),n},Ur.prototype.claim=function(e,t){this._seed.set(e,t||!0)},Ur.prototype.assigned=function(e){return this._seed.get(e)||!1},Ur.prototype.unclaim=function(e){delete this._seed.hats[e]},Ur.prototype.clear=function(){var e,t=this._seed.hats;for(e in t)this.unclaim(e)};var Gr=new Ur,Kr="hsl(225, 10%, 15%)";function Xr(e,t,n,i,r,o){Pt.call(this,t);var a=Gr.next(),l=i.computeStyle,c={},h=e&&e.defaultFillColor||"white",u=e&&e.defaultStrokeColor||Kr,p=e&&e.defaultLabelColor;function d(e,t,n){var i=e+"-"+Jr(t)+"-"+Jr(n)+"-"+a;return c[i]||function(e,t,n,i){if("association-start"===t){var r=Xt("path");$t(r,{d:"M 11 5 L 1 10 L 11 15"}),f(e,{element:r,attrs:{fill:"none",stroke:i,strokeWidth:1.5},ref:{x:1,y:10},scale:.5})}else if("association-end"===t){var o=Xt("path");$t(o,{d:"M 1 5 L 11 10 L 1 15"}),f(e,{element:o,attrs:{fill:"none",stroke:i,strokeWidth:1.5},ref:{x:12,y:10},scale:.5})}else if("information-requirement-end"===t){var s=Xt("path");$t(s,{d:"M 1 5 L 11 10 L 1 15 Z"}),f(e,{element:s,attrs:{fill:i,stroke:"none"},ref:{x:11,y:10},scale:1})}else if("knowledge-requirement-end"===t){var a=Xt("path");$t(a,{d:"M 1 3 L 11 10 L 1 17"}),f(e,{element:a,attrs:{fill:"none",stroke:i,strokeWidth:2},ref:{x:11,y:10},scale:.8})}else if("authority-requirement-end"===t){var l=Xt("circle");$t(l,{cx:3,cy:3,r:3}),f(e,{element:l,attrs:{fill:i,stroke:"none"},ref:{x:3,y:3},scale:.9})}}(i,e,0,n),"url(#"+i+")"}function f(e,t){var n=S({strokeWidth:1,strokeLinecap:"round",strokeDasharray:"none"},t.attrs),i=t.ref||{x:0,y:0},r=t.scale||1;"none"===n.strokeDasharray&&(n.strokeDasharray=[1e4,1]);var s=Xt("marker");$t(t.element,n),It(s,t.element),$t(s,{id:e,viewBox:"0 0 20 20",refX:i.x,refY:i.y,markerWidth:20*r,markerHeight:20*r,orient:"auto"});var a=mt("defs",o._svg);a||(a=Xt("defs"),It(o._svg,a)),It(a,s),c[e]=s}function g(e,t,n,i,r,o){s(r)&&(o=r,r=0),r=r||0,o=l(o,{stroke:Kr,strokeWidth:2,fill:"white"});var a=Xt("rect");return $t(a,{x:r,y:r,width:t-2*r,height:n-2*r,rx:i,ry:i}),$t(a,o),It(e,a),a}function m(e,t,n){var i=r.createText(t||"",n);return Je(i,"class","djs-label"),It(e,i),i}function y(e,t,n,i){var r=function(e){return Yn(e).name}(t);return m(e,r,i=S({box:t,align:n,padding:5,style:{fill:eo(t,p,u)}},i))}function v(e,t,n){n=l(n,["no-fill"],{strokeWidth:2,stroke:Kr});var i=Xt("path");return $t(i,{d:t}),$t(i,n),It(e,i),i}var w={"dmn:Decision":function(e,t){var n=g(e,t.width,t.height,0,{stroke:Qr(t,u),fill:Zr(t,h)});return y(e,t,"center-middle"),n},"dmn:KnowledgeSource":function(e,t){var i=v(e,n.getScaledPath("KNOWLEDGE_SOURCE",{xScaleFactor:1.021,yScaleFactor:1,containerWidth:t.width,containerHeight:t.height,position:{mx:0,my:.075}}),{strokeWidth:2,fill:Zr(t,h),stroke:Qr(t,u)});return y(e,t,"center-middle"),i},"dmn:BusinessKnowledgeModel":function(e,t){var i=v(e,n.getScaledPath("BUSINESS_KNOWLEDGE_MODEL",{xScaleFactor:1,yScaleFactor:1,containerWidth:t.width,containerHeight:t.height,position:{mx:0,my:.3}}),{strokeWidth:2,fill:Zr(t,h),stroke:Qr(t,u)});return y(e,t,"center-middle"),i},"dmn:InputData":function(e,t){var n=g(e,t.width,t.height,22,{stroke:Qr(t,u),fill:Zr(t,h)});return y(e,t,"center-middle"),n},"dmn:TextAnnotation":function(e,t){var i=g(e,t.width,t.height,0,0,{fill:"none",stroke:"none"});return v(e,n.getScaledPath("TEXT_ANNOTATION",{xScaleFactor:1,yScaleFactor:1,containerWidth:t.width,containerHeight:t.height,position:{mx:0,my:0}}),{stroke:Qr(t,u)}),m(e,Yr(t).text||"",{style:{fill:eo(t,p,u)},box:t,align:"left-top",padding:5}),i},"dmn:Association":function(e,t){var n=Yr(t),i=Zr(t,h),r=Qr(t,u),o={stroke:r,strokeDasharray:"0.5, 5",strokeLinecap:"round",strokeLinejoin:"round",fill:"none"};return"One"!==n.associationDirection&&"Both"!==n.associationDirection||(o.markerEnd=d("association-end",i,r)),"Both"===n.associationDirection&&(o.markerStart=d("association-start",i,r)),b(e,t.waypoints,o)},"dmn:InformationRequirement":function(e,t){var n=Zr(t,h),i=Qr(t,u),r={stroke:i,strokeWidth:1,strokeLinecap:"round",strokeLinejoin:"round",markerEnd:d("information-requirement-end",n,i)};return b(e,t.waypoints,r)},"dmn:KnowledgeRequirement":function(e,t){var n=Zr(t,h),i=Qr(t,u),r={stroke:i,strokeWidth:1,strokeDasharray:5,strokeLinecap:"round",strokeLinejoin:"round",markerEnd:d("knowledge-requirement-end",n,i)};return b(e,t.waypoints,r)},"dmn:AuthorityRequirement":function(e,t){var n=Zr(t,h),i=Qr(t,u),r={stroke:i,strokeWidth:1.5,strokeDasharray:5,strokeLinecap:"round",strokeLinejoin:"round",markerEnd:d("authority-requirement-end",n,i)};return b(e,t.waypoints,r)}};function b(e,t,n){var i=fn(t,n=l(n,["no-fill"],{stroke:Kr,strokeWidth:2,fill:"none"}));return It(e,i),i}this.canRender=function(e){return Xn(e,"dmn:DMNElement")||Xn(e,"dmn:InformationRequirement")||Xn(e,"dmn:KnowledgeRequirement")||Xn(e,"dmn:AuthorityRequirement")},this.drawShape=function(e,t){var n=w[t.type];return n?n(e,t):Pt.prototype.drawShape.apply(this,[e,t])},this.drawConnection=function(e,t){var n=t.type,i=w[n];return i?i(e,t):Pt.prototype.drawConnection.apply(this,[e,t])}}function Yr(e){return e.businessObject}function Jr(e){return e.replace(/[^0-9a-zA-z]+/g,"_")}function Qr(e,t){return t}function Zr(e,t){return t}function eo(e,t,n){return t||Qr(0,n)}Ct(Xr,Pt),Xr.$inject=["config.drdRenderer","eventBus","pathMap","styles","textRenderer","canvas"];var to=0,no={width:150,height:50};function io(e,t){var n;t.textContent=e;try{var i,r=""===e;return t.textContent=r?"dummy":e,i={width:(n=t.getBBox()).width+2*n.x,height:n.height},r&&(i.width=0),i}catch(e){return console.log(e),{width:0,height:0}}}function ro(e,t,n){for(var i,r=e.shift(),o=r;;){if((i=io(o,n)).width=o?i.width:0," "===o||""===o||i.width<Math.round(t)||o.length<2)return oo(e,o,r,i);o=ao(o,i.width,t)}}function oo(e,t,n,i){if(t.length<n.length){var r=n.slice(t.length).trim();e.unshift(r)}return{width:i.width,height:i.height,text:t}}var so="­";function ao(e,t,n){var i=Math.max(e.length*(n/t),1),r=function(e,t){var n,i=e.split(/(\s|-|\u00AD)/g),r=[],o=0;if(i.length>1)for(;n=i.shift();){if(!(n.length+o<t)){"-"!==n&&n!==so||r.pop();break}r.push(n),o+=n.length}var s=r[r.length-1];return s&&s===so&&(r[r.length-1]="-"),r.join("")}(e,i);return r||(r=e.slice(0,Math.max(Math.round(i-1),1))),r}function lo(e){this._config=S({},{size:no,padding:to,style:{},align:"center-top"},e||{})}lo.prototype.createText=function(e,t){return this.layoutText(e,t).element},lo.prototype.getDimensions=function(e,t){return this.layoutText(e,t).dimensions},lo.prototype.layoutText=function(e,t){var n=S({},this._config.size,t.box),i=S({},this._config.style,t.style),r=function(e){var t=e.split("-");return{horizontal:t[0]||"center",vertical:t[1]||"top"}}(t.align||this._config.align),o=function(e){return s(e)?S({top:0,left:0,right:0,bottom:0},e):{top:e,left:e,right:e,bottom:e}}(void 0!==t.padding?t.padding:this._config.padding),a=t.fitBox||!1,l=function(e){if("fontSize"in e&&"lineHeight"in e)return e.lineHeight*parseInt(e.fontSize,10)}(i),c=e.split(/\u00AD?\r?\n/),h=[],u=n.width-o.left-o.right,p=Xt("text");for($t(p,{x:0,y:0}),$t(p,i),It(function(){var e=document.getElementById("helper-svg");return e||($t(e=Xt("svg"),{id:"helper-svg"}),Ye(e,{visibility:"hidden",position:"fixed",width:0,height:0}),document.body.appendChild(e)),e}(),p);c.length;)h.push(ro(c,u,p));"middle"===r.vertical&&(o.top=o.bottom=0);var g=f(h,(function(e,t,n){return e+(l||t.height)}),0)+o.top+o.bottom,m=f(h,(function(e,t,n){return t.width>e?t.width:e}),0),y=o.top;"middle"===r.vertical&&(y+=(n.height-g)/2),y-=(l||h[0].height)/4;var v=Xt("text");return $t(v,i),d(h,(function(e){var t;switch(y+=l||e.height,r.horizontal){case"left":t=o.left;break;case"right":t=(a?m:u)-o.right-e.width;break;default:t=Math.max(((a?m:u)-e.width)/2+o.left,0)}var n=Xt("tspan");$t(n,{x:t,y:y}),n.textContent=e.text,It(v,n)})),sn(p),{dimensions:{width:m,height:g},element:v}};function co(e){var t=S({fontFamily:"Arial, sans-serif",fontSize:12,fontWeight:"normal",lineHeight:1.2},e&&e.defaultStyle||{}),n=parseInt(t.fontSize,10)-1,i=S({},t,{fontSize:n},e&&e.externalStyle||{}),r=new lo({style:t});this.getExternalLabelBounds=function(e,t){var n=r.getDimensions(t,{box:{width:90,height:30,x:e.width/2+e.x,y:e.height/2+e.y},style:i});return{x:Math.round(e.x+e.width/2-n.width/2),y:Math.round(e.y),width:Math.ceil(n.width),height:Math.ceil(n.height)}},this.getTextAnnotationBounds=function(e,n){var i=r.getDimensions(n,{box:e,style:t,align:"left-top",padding:5});return{x:e.x,y:e.y,width:e.width,height:Math.max(30,Math.round(i.height))}},this.createText=function(e,t){return r.createText(e,t||{})},this.getDefaultStyle=function(){return t},this.getExternalStyle=function(){return i}}co.$inject=["config.textRenderer"];var ho=/\{([^{}]+)\}/g,uo=/(?:(?:^|\.)(.+?)(?=\[|\.|$|\()|\[('|")(.+?)\2\])(\(\))?/g;var po={__init__:["drdRenderer"],drdRenderer:["type",Xr],textRenderer:["type",co],pathMap:["type",function(){this.pathMap={KNOWLEDGE_SOURCE:{d:"m {mx},{my} l 0,{e.y0} c {e.x0},{e.y1} {e.x1},-{e.y2} {e.x2},-{e.y3} c {e.x3},-{e.y4} {e.x4},{e.y5} {e.x5},{e.y6} l 0,-{e.y7}z",width:100,height:65,widthElements:[29.8,48.4,67.2,12.2,19.8,30.8],heightElements:[55.3,19.7,4.2,6.7,2.3,1.6,6.2,54.6]},BUSINESS_KNOWLEDGE_MODEL:{d:"m {mx},{my} l {e.x0},-{e.y0} l {e.x1},0 l 0,{e.y1} l -{e.x2},{e.y2} l -{e.x3},0z",width:125,height:45,widthElements:[13.8,109.2,13.8,109.1],heightElements:[13.2,29.8,13.2]},TEXT_ANNOTATION:{d:"m {mx}, {my} m 10,0 l -10,0 l 0,{e.y0} l 10,0",width:10,height:30,widthElements:[10],heightElements:[30]}},this.getRawPath=function(e){return this.pathMap[e].d},this.getScaledPath=function(e,t){var n,i,r=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 o={};if(t.position){for(var s=t.containerHeight/r.height*t.yScaleFactor,a=t.containerWidth/r.width*t.xScaleFactor,l=0;l<r.heightElements.length;l++)o["y"+l]=r.heightElements[l]*s;for(var c=0;c<r.widthElements.length;c++)o["x"+c]=r.widthElements[c]*a}var h,u,p=(h=r.d,u={mx:n,my:i,e:o},String(h).replace(ho,(function(e,t){return function(e,t,n){var i=n;return t.replace(uo,(function(e,t,n,r,o){t=t||r,i&&(t in i&&(i=i[t]),"function"==typeof i&&o&&(i=i()))})),i=(null==i||i==n?e:i)+""}(e,t,u)})));return p}}]};function fo(e,t,n,i){this._eventBus=e,this._canvas=t,this._elementRegistry=i,this._elementFactory=n}function go(e,t){return S({id:e.id,type:e.$type,businessObject:e},t)}function mo(e){return e.split("#").pop()}fo.$inject=["eventBus","canvas","elementFactory","elementRegistry"],fo.prototype.root=function(e){var t=this._elementFactory.createRoot(go(e));return this._canvas.setRootElement(t),t},fo.prototype.add=function(e){var t,n,i,r,o,s,a=this._elementFactory,l=this._canvas,c=this._eventBus,h=e.di;if(h.$instanceOf("dmndi:DMNShape"))s=h.bounds,o=go(e,{x:Math.round(s.x),y:Math.round(s.y),width:Math.round(s.width),height:Math.round(s.height)}),t=a.createShape(o),l.addShape(t),c.fire("drdElement.added",{element:t,di:h});else{if(!h.$instanceOf("dmndi:DMNEdge"))throw new Error("unknown di for element "+e.id);n=function(e){var t=e.waypoint;if(t)return m(t,(function(e){var t={x:e.x,y:e.y};return S({original:t},t)}))}(h),i=this._getSource(e),r=this._getTarget(e),i&&r&&(o=go(e,{hidden:!1,source:i,target:r,waypoints:n}),t=a.createConnection(o),l.addConnection(t),c.fire("drdElement.added",{element:t,di:h}))}return t},fo.prototype._getSource=function(e){var t,n;if(Xn(e,"dmn:Association")?n=e.sourceRef:Xn(e,"dmn:InformationRequirement")?n=e.requiredDecision||e.requiredInput:Xn(e,"dmn:KnowledgeRequirement")?n=e.requiredKnowledge:Xn(e,"dmn:AuthorityRequirement")&&(n=e.requiredDecision||e.requiredInput||e.requiredAuthority),n&&(t=n.href),t)return this._getShape(mo(t))},fo.prototype._getTarget=function(e){return Xn(e,"dmn:Association")?e.targetRef&&this._getShape(mo(e.targetRef.href)):this._getShape(e.$parent.id)},fo.prototype._getShape=function(e){return this._elementRegistry.get(e)};var yo={__depends__:[po,{drdImporter:["type",fo]}]};var vo={translate:["value",function(e,t){return t=t||{},e.replace(/{([^}]+)}/g,(function(e,n){return t[n]||"{"+n+"}"}))}]};function wo(e){return e.originalEvent||e.srcEvent}function bo(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 xo(e,t){return(wo(e)||e).button===t}function _o(e){return xo(e,0)}function ko(e){return!0}function So(e){return _o(e)||function(e){return xo(e,1)}(e)}function Co(e,t,n){var i=this;function r(n,i,r){var o,s;(function(e,t){var n=l[e]||_o;return!n(t)})(n,i)||(r?s=t.getGraphics(r):(o=i.delegateTarget||i.target)&&(s=o,r=t.get(s)),s&&r&&!1===e.fire(n,{element:r,gfx:s,originalEvent:i})&&(i.stopPropagation(),i.preventDefault()))}var o={};function s(e){return o[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":ko,"element.mousedown":So,"element.mouseup":So,"element.click":So,"element.dblclick":So};var c="svg, .djs-element";function h(e,t,n,i){var s=o[n]=function(e){r(n,e)};i&&(l[n]=i),s.$delegate=ut.bind(e,c,t,s)}function u(e,t,n){var i=s(n);i&&ut.unbind(e,t,i.$delegate)}e.on("canvas.destroy",(function(e){!function(e){d(a,(function(t,n){u(e,n,t)}))}(e.svg)})),e.on("canvas.init",(function(e){!function(e){d(a,(function(t,n){h(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 p=m("djs-hit djs-hit-stroke"),f=m("djs-hit djs-hit-click-stroke"),g={all:m("djs-hit djs-hit-all"),"click-stroke":f,stroke:p,"no-move":m("djs-hit djs-hit-no-move")};function m(e,t){return t=S({stroke:"white",strokeWidth:15},t||{}),n.cls(e,["no-fill","no-border"],t)}function y(e,t){var n=g[t];if(!n)throw new Error("invalid hit type <"+t+">");return $t(e,n),e}function v(e,t){It(e,t)}this.removeHits=function(e){var t;d((t=".djs-hit",(e||document).querySelectorAll(t)),sn)},this.createDefaultHit=function(e,t){var n,i=e.waypoints,r=e.isFrame;return i?this.createWaypointsHit(t,i):(n=r?"stroke":"all",this.createBoxHit(t,n,{width:e.width,height:e.height}))},this.createWaypointsHit=function(e,t){var n=fn(t);return y(n,"stroke"),v(e,n),n},this.createBoxHit=function(e,t,n){n=S({x:0,y:0},n);var i=Xt("rect");return y(i,t),$t(i,n),v(e,i),i},this.updateDefaultHit=function(e,t){var n=mt(".djs-hit",t);if(n)return e.waypoints?gn(n,e.waypoints):$t(n,{width:e.width,height:e.height}),n},this.fire=r,this.triggerMouseEvent=function(e,t,n){var i=a[e];if(!i)throw new Error("unmapped DOM event name <"+e+">");return r(i,t,n)},this.mouseHandler=s,this.registerEvent=h,this.unregisterEvent=u}Co.$inject=["eventBus","elementRegistry","styles"];var Eo={__init__:["interactionEvents"],interactionEvents:["type",Co]};function Mo(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)}))}Mo.$inject=["eventBus","canvas"],Mo.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})}},Mo.prototype.get=function(){return this._selectedElements},Mo.prototype.isSelected=function(e){return-1!==this._selectedElements.indexOf(e)},Mo.prototype.select=function(e,t){var n=this._selectedElements,i=n.slice();o(e)||(e=e?[e]:[]);var r=this._canvas,s=r.getRootElement();e=e.filter((function(e){var t=r.findRoot(e);return s===t})),t?d(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 Ao="hover",To="selected";function Ro(e,t){function n(t,n){e.addMarker(t,n)}function i(t,n){e.removeMarker(t,n)}this._canvas=e,t.on("element.hover",(function(e){n(e.element,Ao)})),t.on("element.out",(function(e){i(e.element,Ao)})),t.on("selection.changed",(function(e){var t=e.oldSelection,r=e.newSelection;d(t,(function(e){-1===r.indexOf(e)&&i(e,To)})),d(r,(function(e){-1===t.indexOf(e)&&n(e,To)}))}))}function Do(e,t,n,i){e.on("create.end",500,(function(e){var n=e.context,i=n.canExecute,r=n.elements,s=(n.hints||{}).autoSelect;if(i){if(!1===s)return;o(s)?t.select(s):t.select(r.filter(Oo))}})),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||[],r=i.get(e.context.shape.id);u(n,(function(e){return r.id===e.id}))||t.select(r)})),e.on("element.click",(function(e){if(_o(e)){var i=e.element;i===n.getRootElement()&&(i=null);var r=t.isSelected(i),o=t.get().length>1,s=function(e){var t=wo(e)||e;return _o(e)&&t.shiftKey}(e);if(r&&o)return s?t.deselect(i):t.select(i);r?t.deselect(i):t.select(i,s)}}))}function Oo(e){return!e.hidden}Ro.$inject=["canvas","eventBus"],Do.$inject=["eventBus","selection","canvas","elementRegistry"];var No={__init__:["selectionVisuals","selectionBehavior"],__depends__:[Eo],selection:["type",Mo],selectionVisuals:["type",Ro],selectionBehavior:["type",Do]};function qo(e){this._counter=0,this._prefix=(e?e+"-":"")+Math.floor(1e9*Math.random())+"-"}qo.prototype.next=function(){return this._prefix+ ++this._counter};var Lo=new qo("ov");function Bo(e,t,n,i){var r,o;this._eventBus=t,this._canvas=n,this._elementRegistry=i,this._ids=Lo,this._overlayDefaults=S({show:null,scale:!0},e&&e.defaults),this._overlays={},this._overlayContainers=[],this._overlayRoot=(r=n.getContainer(),Ye(o=gt('<div class="djs-overlay-container" />'),{position:"absolute",width:0,height:0}),r.insertBefore(o,r.firstChild),o),this._init()}function Po(e,t,n){Ye(e,{left:t+"px",top:n+"px"})}function Io(e,t){e.style.display=!1===t?"none":""}function Fo(e,t){e.style["transform-origin"]="top left",["","-ms-","-webkit-"].forEach((function(n){e.style[n+"transform"]=t}))}Bo.$inject=["config.overlays","eventBus","canvas","elementRegistry"],Bo.prototype.get=function(e){if(c(e)&&(e={id:e}),c(e.element)&&(e.element=this._elementRegistry.get(e.element)),e.element){var t=this._getOverlayContainer(e.element,!0);return t?e.type?p(t.overlays,v({type:e.type})):t.overlays.slice():[]}return e.type?p(this._overlays,v({type:e.type})):e.id?this._overlays[e.id]:null},Bo.prototype.add=function(e,t,n){if(s(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=S({},this._overlayDefaults,n,{id:i,type:t,element:e,html:n.html}),this._addOverlay(n),i},Bo.prototype.remove=function(e){var t=this.get(e)||[];o(t)||(t=[t]);var n=this;d(t,(function(e){var t=n._getOverlayContainer(e.element,!0);if(e&&(yt(e.html),yt(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)}}))},Bo.prototype.isShown=function(){return"none"!==this._overlayRoot.style.display},Bo.prototype.show=function(){Io(this._overlayRoot)},Bo.prototype.hide=function(){Io(this._overlayRoot,!1)},Bo.prototype.clear=function(){this._overlays={},this._overlayContainers=[],tt(this._overlayRoot)},Bo.prototype._updateOverlayContainer=function(e){var t=e.element,n=e.html,i=t.x,r=t.y;if(t.waypoints){var o=mn(t);i=o.x,r=o.y}Po(n,i,r),Je(e.html,"data-container-id",t.id)},Bo.prototype._updateOverlay=function(e){var t,n,i=e.position,r=e.htmlContainer,o=e.element,s=i.left,a=i.top;void 0!==i.right&&(t=o.waypoints?mn(o).width:o.width,s=-1*i.right+t);void 0!==i.bottom&&(n=o.waypoints?mn(o).height:o.height,a=-1*i.bottom+n);Po(r,s||0,a||0),this._updateOverlayVisibilty(e,this._canvas.viewbox())},Bo.prototype._createOverlayContainer=function(e){var t=gt('<div class="djs-overlays" />');Ye(t,{position:"absolute"}),this._overlayRoot.appendChild(t);var n={html:t,element:e,overlays:[]};return this._updateOverlayContainer(n),this._overlayContainers.push(n),n},Bo.prototype._updateRoot=function(e){var t=e.scale||1,n="matrix("+[t,0,0,t,-1*e.x*t,-1*e.y*t].join(",")+")";Fo(this._overlayRoot,n)},Bo.prototype._getOverlayContainer=function(e,t){var n=u(this._overlayContainers,(function(t){return t.element===e}));return n||t?n:this._createOverlayContainer(e)},Bo.prototype._addOverlay=function(e){var t,n,i=e.id,r=e.element,o=e.html;o.get&&o.constructor.prototype.jquery&&(o=o.get(0)),c(o)&&(o=gt(o)),n=this._getOverlayContainer(r),Ye(t=gt('<div class="djs-overlay" data-overlay-id="'+i+'">'),{position:"absolute"}),t.appendChild(o),e.type&&Ze(t).add("djs-overlay-"+e.type),Io(t,this._canvas.findRoot(r)===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())},Bo.prototype._updateOverlayVisibilty=function(e,t){var n=e.show,r=this._canvas.findRoot(e.element),o=n&&n.minZoom,s=n&&n.maxZoom,a=e.htmlContainer,l=!0;(r!==this._canvas.getRootElement()||n&&(i(o)&&o>t.scale||i(s)&&s<t.scale))&&(l=!1),Io(a,l),this._updateOverlayScale(e,t)},Bo.prototype._updateOverlayScale=function(e,t){var n,r,o,s=e.scale,a=e.htmlContainer,l="";!0!==s&&(!1===s?(n=1,r=1):(n=s.min,r=s.max),i(n)&&t.scale<n&&(o=(1/t.scale||1)*n),i(r)&&t.scale>r&&(o=(1/t.scale||1)*r)),i(o)&&(l="scale("+o+","+o+")"),Fo(a,l)},Bo.prototype._updateOverlaysVisibilty=function(e){var t=this;d(this._overlays,(function(n){t._updateOverlayVisibilty(n,e)}))},Bo.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;d(t.get({element:n}),(function(e){t.remove(e.id)}));var i=t._getOverlayContainer(n);if(i){yt(i.html);var r=t._overlayContainers.indexOf(i);-1!==r&&t._overlayContainers.splice(r,1)}})),e.on("element.changed",500,(function(e){var n=e.element,i=t._getOverlayContainer(n,!0);i&&(d(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&&Ze(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)};var jo={__init__:["overlays"],overlays:["type",Bo]};function Vo(e,t,n){this._eventBus=e,this._canvas=t,this._translate=n,e.on("diagram.init",(function(){this._init()}),this),e.on("import.done",(function(e){e.error||this.update()}),this),this.HTML_MARKUP='<div class="dmn-definitions"><div class="dmn-definitions-name" title="'+this._translate("Definition name")+'" spellcheck="false"></div><div class="dmn-definitions-id" title="'+this._translate("Definition ID")+'" spellcheck="false"></div></div>'}function $o(e,t){function n(e,n){Ze(t.getContainer()).toggle(e,n)}e.on("palette.create",(function(){n("with-palette",!0)})),e.on("palette.changed",(function(e){n("with-palette-two-column",e.twoColumn)}))}Vo.$inject=["eventBus","canvas","translate"],Vo.prototype._init=function(){var e=this._canvas,t=this._eventBus,n=e.getContainer(),i=this._container=gt(this.HTML_MARKUP);n.appendChild(i),this.nameElement=mt(".dmn-definitions-name",this._container),this.idElement=mt(".dmn-definitions-id",this._container),ut.bind(i,".dmn-definitions-name, .dmn-definitions-id","mousedown",(function(e){e.stopPropagation()})),t.fire("definitionIdView.create",{html:i})},Vo.prototype.update=function(){var e=this._canvas.getRootElement().businessObject;this.nameElement.textContent=e.name,this.idElement.textContent=e.id},$o.$inject=["eventBus","canvas"];var zo={__depends__:[vo],__init__:["definitionPropertiesView","definitionPropertiesPaletteAdapter"],definitionPropertiesView:["type",Vo],definitionPropertiesPaletteAdapter:["type",$o]},Wo=[{className:"dmn-icon-decision-table",matches:function(e){var t=Yn(e);return Xn(t,"dmn:Decision")&&Xn(t.decisionLogic,"dmn:DecisionTable")},title:"Open decision table"},{className:"dmn-icon-literal-expression",matches:function(e){return Xn(Jn(e),"dmn:LiteralExpression")},title:"Open literal expression"}];class Ho{constructor(e,t,n,i,r){this._injector=e,this._eventBus=t,this._overlays=n,this._translate=r,this._config=i||{enabled:!0},t.on(["shape.added"],(({element:e})=>{for(let t=0;t<Wo.length;t++){const{matches:n,className:i,title:r}=Wo[t];n&&n(e)&&this.addOverlay(e,i,r)}}))}addOverlay(e,t,n){const i=!1!==this._config.enabled,r=this._getOverlayNode(t,n,i),o=this._overlays.add(e,{position:{top:2,left:2},html:r});i&&(Ze(r).add("interactive"),this.bindEventListener(e,r,o))}_getOverlayNode(e,t,n){const i=document.createElement("div");if(i.className="drill-down-overlay",!n){const t=document.createElement("span");return t.className=e,i.appendChild(t),i}const r=document.createElement("button");return r.type="button",r.className=e,r.title=this._translate(t),i.appendChild(r),i}bindEventListener(e,t,n){const i=this._overlays,r=this._eventBus,o=i._overlayRoot;ut.bind(o,'[data-overlay-id="'+n+'"]',"click",(()=>{!1!==r.fire("drillDown.click",{element:e})&&this.drillDown(e)}))}drillDown(e){const t=this._injector.get("_parent",!1);if(!t)return!1;const n=t.getView(e.businessObject);return!!n&&(t.open(n),!0)}}Ho.$inject=["injector","eventBus","overlays","config.drillDown","translate"];var Uo={__depends__:[jo,vo],__init__:["drillDown"],drillDown:["type",Ho]};
/**
   * The code in the <project-logo></project-logo> area
   * must not be changed.
   *
   * @see http://bpmn.io/license for more information.
   */function Go(e){this._container=this._createContainer(),jr(this._container),this._init(this._container,e)}function Ko(e,t){return{x:e.x-t.x,y:e.y-t.y}}function Xo(e){return Math.log(e)/Math.log(10)}function Yo(e,t){var n=Xo(e.min),i=Xo(e.max);return(Math.abs(n)+Math.abs(i))/t}Ct(Go,Kn),Go.prototype.saveSVG=vt((function(e){var t=this;return new Promise((function(e){var n=t.get("canvas"),i=n.getActiveLayer(),r=mt("defs",n._svg),o=on(i),s=r&&r.outerHTML||"",a=i.getBBox();e({svg:'<?xml version="1.0" encoding="utf-8"?>\n\x3c!-- created with dmn-js / http://bpmn.io --\x3e\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="'+a.width+'" height="'+a.height+'" viewBox="'+a.x+" "+a.y+" "+a.width+" "+a.height+'" version="1.1">'+s+o+"</svg>"})}))})),Go.prototype.getModules=function(){return this._modules},Go.prototype.destroy=function(){Kn.prototype.destroy.call(this),yt(this._container)},Go.prototype.on=function(e,t,n,i){return this.get("eventBus").on(e,t,n,i)},Go.prototype.off=function(e,t){this.get("eventBus").off(e,t)},Go.prototype._init=function(e,t){var{additionalModules:n,canvas:i,...r}=t,o={...r,canvas:{...i,container:e},modules:[...[{drd:["value",this]}],...t.modules||this.getModules(),...n||[]]};Kn.call(this,o),t&&t.container&&this.attachTo(t.container)},Go.prototype._emit=function(e,t){return this.get("eventBus").fire(e,t)},Go.prototype._createContainer=function(){return gt('<div class="dmn-drd-container"></div>')},Go.prototype.open=function(e){var t=this;return new Promise(((n,i)=>{var r;try{return t._definitions&&t.clear(),t._definitions=e,function(e,t,n){var i,r=e.get("drdImporter"),o=e.get("eventBus"),s=[];o.fire("import.start",{definitions:t});try{!function(e){new Zn({root:function(e){return r.root(e)},element:function(e,t){return r.add(e,t)},error:function(e,t){s.push({message:e,context:t})}}).handleDefinitions(e)}(t)}catch(e){i=e}o.fire("import.done",{error:i,warnings:s}),n(i,s)}(t,e,(function(e,t){e?(e.warnings=t||[],i(e)):n({warnings:t||[]})}))}catch(e){r=e}r?(r.warnings=r.warnings||[],i(r)):n({warnings:[]})}))},Go.prototype.attachTo=function(e){if(!e)throw new Error("parentNode required");this.detach();var t=this._container;e.appendChild(t),this._emit("attach",{}),this.get("canvas").resized()},Go.prototype.detach=function(){var e=this._container,t=e.parentNode;t&&(this._emit("detach",{}),t.removeChild(e))},Go.prototype._modules=[yo,vo,No,jo,zo,Uo];var Jo=Math.sign||function(e){return e>=0?1:-1},Qo={min:.2,max:4};function Zo(e,t,n){e=e||{},this._enabled=!1,this._canvas=n,this._container=n._container,this._handleWheel=k(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)}))}Zo.$inject=["config.zoomScroll","eventBus","canvas"],Zo.prototype.scroll=function(e){this._canvas.scroll(e)},Zo.prototype.reset=function(){this._canvas.zoom("fit-viewport")},Zo.prototype.zoom=function(e,t){var n=Yo(Qo,20);this._totalDelta+=e,Math.abs(this._totalDelta)>.1&&(this._zoom(e,t,n),this._totalDelta=0)},Zo.prototype._handleWheel=function(e){if(!nt(e.target,".djs-scrollable",!0)){var t=this._container;e.preventDefault();var n,i=e.ctrlKey||/mac/i.test(navigator.platform)&&e.metaKey,r=e.shiftKey,o=-1*this._scale;if(o*=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))*Jo(e.deltaY)*o,this.zoom(n,a)}else n=r?{dx:o*e.deltaY,dy:0}:{dx:o*e.deltaX,dy:o*e.deltaY},this.scroll(n)}},Zo.prototype.stepZoom=function(e,t){var n=Yo(Qo,10);this._zoom(e,t,n)},Zo.prototype._zoom=function(e,t,n){var i=this._canvas,r=e>0?1:-1,o=Xo(i.zoom()),s=Math.round(o/n)*n;s+=n*r;var a,l,c=Math.pow(10,s);i.zoom((a=Qo,l=c,Math.max(a.min,Math.min(a.max,l))),t)},Zo.prototype.toggle=function(e){var t=this._container,n=this._handleWheel,i=this._enabled;return void 0===e&&(e=!i),i!==e&&lt[e?"bind":"unbind"](t,"wheel",n,!1),this._enabled=e,e},Zo.prototype._init=function(e){this.toggle(e)};var es={__init__:["zoomScroll"],zoomScroll:["type",Zo]},ts=/^djs-cursor-.*$/;function ns(e){var t=Ze(document.body);t.removeMatching(ts),e&&t.add("djs-cursor-"+e)}var is=5e3;function rs(e,t){var n;function i(i){var r,o=n.start,s=n.button,a=bo(i),l=Ko(a,o);(!n.dragging&&(r=l,Math.sqrt(Math.pow(r.x,2)+Math.pow(r.y,2))>15)&&(n.dragging=!0,0===s&&function(e,t){function n(){return!1}t=t||"element.click",e.once(t,is,n)}(e),ns("grab")),n.dragging)&&(l=Ko(a,n.last||n.start),t.scroll({dx:l.x,dy:l.y}),n.last=a);i.preventDefault()}function r(e){lt.unbind(document,"mousemove",i),lt.unbind(document,"mouseup",r),n=null,ns(null)}e.on("element.mousedown",500,(function(e){return function(e){if(nt(e.target,".djs-draggable"))return;var t=e.button;if(t>=2||e.ctrlKey||e.shiftKey||e.altKey)return;return n={button:t,start:bo(e)},lt.bind(document,"mousemove",i),lt.bind(document,"mouseup",r),!0}(e.originalEvent)})),this.isActive=function(){return!!n}}rs.$inject=["eventBus","canvas"];var os={__init__:["moveCanvas"],moveCanvas:["type",rs]},ss={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};function as(e,t){return-1!==(e=o(e)?e:[e]).indexOf(t.key)||-1!==e.indexOf(t.code)}function ls(e,t,n,i){this._open=!1,this._results={},this._eventMaps=[],this._cachedRootElement=null,this._cachedSelection=null,this._cachedViewbox=null,this._canvas=e,this._eventBus=t,this._selection=n,this._translate=i,this._container=this._getBoxHtml(),this._searchInput=mt(ls.INPUT_SELECTOR,this._container),this._resultsContainer=mt(ls.RESULTS_CONTAINER_SELECTOR,this._container),this._canvas.getContainer().appendChild(this._container),t.on(["canvas.destroy","diagram.destroy","drag.init","elements.changed"],this.close,this)}function cs(e,t,n){var i=function(e){var t="";return e.forEach((function(e){var n,i=(n=""+(n=e.value||e.matched||e.normal))&&n.replace(/[&<>"']/g,(function(e){return ss[e]})),r=e.match||e.matched;t+=r?'<b class="'+ls.RESULT_HIGHLIGHT_CLASS+'">'+i+"</b>":i})),""!==t?t:null}(t),r=gt(n);r.innerHTML=i,e.appendChild(r)}ls.$inject=["canvas","eventBus","selection","translate"],ls.prototype._bindEvents=function(){var e=this;function t(t,n,i,r){e._eventMaps.push({el:t,type:i,listener:ut.bind(t,n,i,r)})}t(document,"html","click",(function(t){e.close(!1)})),t(this._container,ls.INPUT_SELECTOR,"click",(function(e){e.stopPropagation(),e.delegateTarget.focus()})),t(this._container,ls.RESULT_SELECTOR,"mouseover",(function(t){t.stopPropagation(),e._scrollToNode(t.delegateTarget),e._preselect(t.delegateTarget)})),t(this._container,ls.RESULT_SELECTOR,"click",(function(t){t.stopPropagation(),e._select(t.delegateTarget)})),t(this._container,ls.INPUT_SELECTOR,"keydown",(function(e){as("ArrowUp",e)&&e.preventDefault(),as("ArrowDown",e)&&e.preventDefault()})),t(this._container,ls.INPUT_SELECTOR,"keyup",(function(t){if(as("Escape",t))return e.close();if(as("Enter",t)){var n=e._getCurrentResult();return n?e._select(n):e.close(!1)}return as("ArrowUp",t)?e._scrollToDirection(!0):as("ArrowDown",t)?e._scrollToDirection():void(as(["ArrowLeft","ArrowRight"],t)||e._search(t.delegateTarget.value))}))},ls.prototype._unbindEvents=function(){this._eventMaps.forEach((function(e){ut.unbind(e.el,e.type,e.listener)}))},ls.prototype._search=function(e){var t=this;if(this._clearResults(),e&&""!==e){var n=this._searchProvider.find(e);if((n=n.filter((function(e){return!t._canvas.getRootElements().includes(e.element)}))).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=mt(ls.RESULT_SELECTOR,this._resultsContainer);this._scrollToNode(i),this._preselect(i)}else this._selection.select(null)}},ls.prototype._scrollToDirection=function(e){var t=this._getCurrentResult();if(t){var n=e?t.previousElementSibling:t.nextElementSibling;n&&(this._scrollToNode(n),this._preselect(n))}},ls.prototype._scrollToNode=function(e){if(e&&e!==this._getCurrentResult()){var t=e.offsetTop,n=this._resultsContainer.scrollTop,i=t-this._resultsContainer.clientHeight+e.clientHeight;t<n?this._resultsContainer.scrollTop=t:n<i&&(this._resultsContainer.scrollTop=i)}},ls.prototype._clearResults=function(){tt(this._resultsContainer),this._results={},this._eventBus.fire("searchPad.cleared")},ls.prototype._getCurrentResult=function(){return mt(ls.RESULT_SELECTED_SELECTOR,this._resultsContainer)},ls.prototype._createResultNode=function(e,t){var n=gt(ls.RESULT_HTML);return e.primaryTokens.length>0&&cs(n,e.primaryTokens,ls.RESULT_PRIMARY_HTML),cs(n,e.secondaryTokens,ls.RESULT_SECONDARY_HTML),Je(n,ls.RESULT_ID_ATTRIBUTE,t),this._resultsContainer.appendChild(n),n},ls.prototype.registerProvider=function(e){this._searchProvider=e},ls.prototype.open=function(){if(!this._searchProvider)throw new Error("no search provider registered");this.isOpen()||(this._cachedRootElement=this._canvas.getRootElement(),this._cachedSelection=this._selection.get(),this._cachedViewbox=this._canvas.viewbox(),this._selection.select(null),this._bindEvents(),this._open=!0,Ze(this._canvas.getContainer()).add("djs-search-open"),Ze(this._container).add("open"),this._searchInput.focus(),this._eventBus.fire("searchPad.opened"))},ls.prototype.close=function(e=!0){this.isOpen()&&(e&&(this._cachedRootElement&&this._canvas.setRootElement(this._cachedRootElement),this._cachedSelection&&this._selection.select(this._cachedSelection),this._cachedViewbox&&this._canvas.viewbox(this._cachedViewbox),this._eventBus.fire("searchPad.restored")),this._cachedRootElement=null,this._cachedSelection=null,this._cachedViewbox=null,this._unbindEvents(),this._open=!1,Ze(this._canvas.getContainer()).remove("djs-search-open"),Ze(this._container).remove("open"),this._clearResults(),this._searchInput.value="",this._searchInput.blur(),this._eventBus.fire("searchPad.closed"),this._canvas.restoreFocus())},ls.prototype.toggle=function(){this.isOpen()?this.close():this.open()},ls.prototype.isOpen=function(){return this._open},ls.prototype._preselect=function(e){var t=this._getCurrentResult();if(e!==t){t&&Ze(t).remove(ls.RESULT_SELECTED_CLASS);var n=Je(e,ls.RESULT_ID_ATTRIBUTE),i=this._results[n].element;Ze(e).add(ls.RESULT_SELECTED_CLASS),this._canvas.scrollToElement(i,{top:300}),this._selection.select(i),this._eventBus.fire("searchPad.preselected",i)}},ls.prototype._select=function(e){var t=Je(e,ls.RESULT_ID_ATTRIBUTE),n=this._results[t].element;this._cachedSelection=null,this._cachedViewbox=null,this.close(!1),this._canvas.scrollToElement(n,{top:300}),this._selection.select(n),this._eventBus.fire("searchPad.selected",n)},ls.prototype._getBoxHtml=function(){const e=gt(ls.BOX_HTML),t=mt(ls.INPUT_SELECTOR,e);return t&&t.setAttribute("aria-label",this._translate("Search in diagram")),e},ls.CONTAINER_SELECTOR=".djs-search-container",ls.INPUT_SELECTOR=".djs-search-input input",ls.RESULTS_CONTAINER_SELECTOR=".djs-search-results",ls.RESULT_SELECTOR=".djs-search-result",ls.RESULT_SELECTED_CLASS="djs-search-result-selected",ls.RESULT_SELECTED_SELECTOR="."+ls.RESULT_SELECTED_CLASS,ls.RESULT_ID_ATTRIBUTE="data-result-id",ls.RESULT_HIGHLIGHT_CLASS="djs-search-highlight",ls.BOX_HTML='<div class="djs-search-container djs-scrollable">\n  <div class="djs-search-input">\n    <svg class="djs-search-icon" width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">\n      <path fill-rule="evenodd" clip-rule="evenodd" d="M9.0325 8.5H9.625L13.3675 12.25L12.25 13.3675L8.5 9.625V9.0325L8.2975 8.8225C7.4425 9.5575 6.3325 10 5.125 10C2.4325 10 0.25 7.8175 0.25 5.125C0.25 2.4325 2.4325 0.25 5.125 0.25C7.8175 0.25 10 2.4325 10 5.125C10 6.3325 9.5575 7.4425 8.8225 8.2975L9.0325 8.5ZM1.75 5.125C1.75 6.9925 3.2575 8.5 5.125 8.5C6.9925 8.5 8.5 6.9925 8.5 5.125C8.5 3.2575 6.9925 1.75 5.125 1.75C3.2575 1.75 1.75 3.2575 1.75 5.125Z" fill="#22242A"/>\n    </svg>\n    <input type="text" spellcheck="false" />\n  </div>\n  <div class="djs-search-results" />\n</div>',ls.RESULT_HTML='<div class="djs-search-result"></div>',ls.RESULT_PRIMARY_HTML='<div class="djs-search-result-primary"></div>',ls.RESULT_SECONDARY_HTML='<p class="djs-search-result-secondary"></p>';var hs={__depends__:[vo,jo,No],searchPad:["type",ls]};function us(e){var t=e.businessObject,n=function(e){return Xn(e,"dmn:Decision")||Xn(e,"dmn:BusinessKnowledgeModel")||Xn(e,"dmn:InputData")||Xn(e,"dmn:KnowledgeSource")?"name":Xn(e,"dmn:TextAnnotation")?"text":void 0}(t);if(n)return t[n]||""}function ps(e,t,n){this._elementRegistry=e,this._canvas=n,t.registerProvider(this)}function ds(e){return p(e,(function(e){return!!e.matched})).length>0}function fs(e,t){const n=[],i=e;if(!e)return n;e=e.toLowerCase(),t=t.toLowerCase();const r=e.indexOf(t);return r>-1?(0!==r&&n.push({normal:i.substr(0,r)}),n.push({matched:i.substr(r,t.length)}),t.length+r<e.length&&n.push({normal:i.substr(t.length+r,e.length)})):n.push({normal:i}),n}ps.$inject=["elementRegistry","searchPad","canvas"],ps.prototype.find=function(e){const t=this._canvas.getRootElement();let n=this._elementRegistry.filter((function(e){return!e.labelTarget}));return n=p(n,(function(e){return e!==t})),n=m(n,(function(t){return{primaryTokens:fs(us(t),e),secondaryTokens:fs(t.id,e),element:t}})),n=p(n,(function(e){return ds(e.primaryTokens)||ds(e.secondaryTokens)})),n=y(n,(function(e){return us(e.element)+e.element.id})),n};var gs={__depends__:[hs],__init__:["dmnSearch"],dmnSearch:["type",ps]};function ms(e){Go.call(this,e)}Ct(ms,Go),ms.prototype._navigationModules=[es,os,gs],ms.prototype._modules=[].concat(ms.prototype._modules,ms.prototype._navigationModules);class ys{constructor(e){S(this,e),ws(this,"businessObject",{writable:!0})}}const vs={root:class extends ys{constructor(e){super(e),ws(this,"rows",{enumerable:!0,value:this.rows||[]}),ws(this,"cols",{enumerable:!0,value:this.cols||[]})}},row:class extends ys{constructor(e){super(e),ws(this,"root",{writable:!0}),ws(this,"cells",{enumerable:!0,value:this.cells||[]})}},col:class extends ys{constructor(e){super(e),ws(this,"root",{writable:!0}),ws(this,"cells",{enumerable:!0,value:this.cells||[]})}},cell:class extends ys{constructor(e){super(e),ws(this,"row",{writable:!0}),ws(this,"col",{writable:!0})}}};function ws(e,t,n){Object.defineProperty(e,t,n)}let bs=class{constructor(e){this._eventBus=e,this._elements={},e.on("table.clear",this.clear.bind(this))}add(e,t){const{id:n}=e;this._elements[n]=e}remove(e){const t=e.id||e;delete this._elements[t]}get(e){return this._elements[e]}getAll(){return xs(this._elements)}forEach(e){xs(this._elements).forEach((t=>e(t)))}filter(e){return xs(this._elements).filter((t=>e(t)))}clear(){this._elements={}}updateId(e,t){this._validateId(t),"string"==typeof e&&(e=this.get(e)),this._eventBus.fire("element.updateId",{element:e,newId:t}),this.remove(e),e.id=t,this.add(e)}_validateId(e){if(!e)throw new Error("element must have an id");if(this._elements[e])throw new Error("element with id "+e+" already added")}};function xs(e){return Object.keys(e).map((function(t){return e[t]}))}bs.$inject=["eventBus"];let _s=class{constructor(e){this._listeners={},e.on("elements.changed",(({elements:e})=>{this.elementsChanged(e)})),e.on("root.remove",(t=>{const n=t.root.id;this._listeners[n]&&e.once("root.add",(e=>{const t=e.root.id;this.updateId(n,t)}))})),e.on("element.updateId",(({element:e,newId:t})=>{this.updateId(e.id,t)}))}elementsChanged(e){const t={},n=e.length;for(let i=0;i<n;i++){const{id:n}=e[i];if(t[n])return;t[n]=!0;const r=this._listeners[n]&&this._listeners[n].length;if(r)for(let e=0;e<r;e++)this._listeners[n][e]&&this._listeners[n][e]()}}onElementsChanged(e,t){this._listeners[e]||(this._listeners[e]=[]),this._listeners[e][this._listeners[e].length]=t}offElementsChanged(e,t){if(this._listeners[e])if(t){const n=this._listeners[e].indexOf(t);-1!==n&&this._listeners[e].splice(n,1)}else this._listeners[e].length=0}updateId(e,t){this._listeners[e]&&(this._listeners[t]=this._listeners[e],delete this._listeners[e])}};_s.$inject=["eventBus"];class ks extends Pr{constructor(e){super(e);const t=this._injector=e.injector;this._sheet=t.get("sheet"),this._changeSupport=t.get("changeSupport"),this._components=t.get("components"),this._eventBus=t.get("eventBus");const n=t.get("throttle");this.onElementsChanged=this.onElementsChanged.bind(this),this.onScroll=n(this.onScroll.bind(this))}onElementsChanged(){this.forceUpdate()}onScroll(){this._eventBus.fire("sheet.scroll")}getChildContext(){return{changeSupport:this._changeSupport,components:this._components,injector:this._injector}}componentWillMount(){const{id:e}=this._sheet.getRoot();this._changeSupport.onElementsChanged(e,this.onElementsChanged)}componentWillUnmount(){const{id:e}=this._sheet.getRoot();this._changeSupport.offElementsChanged(e,this.onElementsChanged)}render(){const{rows:e,cols:t}=this._sheet.getRoot(),n=this._components.getComponents("table.before"),i=this._components.getComponents("table.after"),r=this._components.getComponent("table.head"),o=this._components.getComponent("table.body"),s=this._components.getComponent("table.foot");return xi(1,"div","tjs-container",[n&&n.map(((e,t)=>_i(2,e,null,t))),xi(1,"div","tjs-table-container",xi(1,"table","tjs-table",[r&&_i(2,r,{rows:e,cols:t}),o&&_i(2,o,{rows:e,cols:t}),s&&_i(2,s,{rows:e,cols:t})],0),2,{onScroll:this.onScroll}),i&&i.map(((e,t)=>_i(2,e,null,t)))],0)}}let Ss=class{constructor(e,t,n,i,r){const{container:o}=n;this._container=o,i.on("root.added",(()=>{Or(_i(2,ks,{injector:r}),o)})),i.on("root.remove",(()=>{Or(null,o)}))}getContainer(){return this._container}};Ss.$inject=["changeSupport","components","config.renderer","eventBus","injector"];var Cs={__init__:["changeSupport","components","renderer"],changeSupport:["type",_s],components:["type",class{constructor(){this._listeners={}}getComponent(e,t){const n=this._listeners[e];if(!n)return;let i;for(let e=0;e<n.length&&(i=n[e].callback(t),!i);e++);return i}getComponents(e,t){const n=this._listeners[e],i=[];if(!n)return i;for(let e=0;e<n.length;e++){const r=n[e].callback(t);r&&i.push(r)}return i.length,i}onGetComponent(e,t,n){if(l(t)&&(n=t,t=1e3),!a(t))throw new Error("priority must be a number");const i=this._getListeners(e);let r,o;const s={priority:t,callback:n};for(o=0;r=i[o];o++)if(r.priority<t)return void i.splice(o,0,s);i.push(s)}offGetComponent(e,t){const n=this._getListeners(e);let i,r,o;if(t)for(o=n.length-1;i=n[o];o--)r=i.callback,r===t&&n.splice(o,1);else n.length=0}_getListeners(e){let t=this._listeners[e];return t||(this._listeners[e]=t=[]),t}}],renderer:["type",Ss]};class Es{constructor(e,t){this._elementRegistry=e,this._eventBus=t,this._root=null,t.on("table.clear",(()=>{this.setRoot(null)}))}setRoot(e){if(this._root){const e=this._root;this._eventBus.fire("root.remove",{root:e}),this._root=null,this._eventBus.fire("root.removed",{root:e})}e&&this._eventBus.fire("root.add",{root:e}),this._root=e,e&&this._eventBus.fire("root.added",{root:e})}getRoot(){return this._root||this.setRoot({id:"__implicitroot",rows:[],cols:[]}),this._root}addRow(e,t){const n=this.getRoot();if(n.cols.length!=e.cells.length)throw new Error("number of cells is not equal to number of cols");return void 0===t&&(t=n.rows.length),Ms(t,n.rows,e),e.root=n,this._elementRegistry.add(e),e.cells.forEach(((i,r)=>{this._elementRegistry.add(i),i.row=e,i.col=n.cols[r],Ms(t,n.cols[r].cells,i)})),this._eventBus.fire("row.add",{row:e}),e}removeRow(e){const t=this.getRoot();"string"==typeof e&&(e=this._elementRegistry.get(e));const n=t.rows.indexOf(e);-1!==n&&(As(n,t.rows),e.root=void 0,this._elementRegistry.remove(e),e.cells.forEach(((e,i)=>{this._elementRegistry.remove(e),e.col=void 0,As(n,t.cols[i].cells)})),this._eventBus.fire("row.remove",{row:e}))}addCol(e,t){const n=this.getRoot();if(this._elementRegistry.add(e),n.rows.length!=e.cells.length)throw new Error("number of cells is not equal to number of rows");return void 0===t&&(t=n.cols.length),Ms(t,n.cols,e),e.root=n,e.cells.forEach(((i,r)=>{this._elementRegistry.add(i),i.col=e,i.row=n.rows[r],Ms(t,n.rows[r].cells,i)})),this._eventBus.fire("col.add",{col:e}),e}removeCol(e){const t=this.getRoot();"string"==typeof e&&(e=this._elementRegistry.get(e));const n=t.cols.indexOf(e);-1!==n&&(As(n,t.cols),e.root=void 0,this._elementRegistry.remove(e),e.cells.forEach(((e,i)=>{this._elementRegistry.remove(e),e.row=void 0,As(n,t.rows[i].cells)})),this._eventBus.fire("col.remove",{col:e}))}resized(){this._eventBus.fire("sheet.resized")}}function Ms(e,t,n){return t.splice(e,0,n)}function As(e,t){return t.splice(e,1)}function Ts(e=!0){const t="number"==typeof e?e:e?300:0;return t?e=>function(e,t){let n=!1;return function(...i){n||(e(...i),n=!0,setTimeout((()=>{n=!1}),t))}}(e,t):e=>e}Es.$inject=["elementRegistry","eventBus"],Ts.$inject=["config.throttle"];var Rs={__depends__:[Cs],__init__:["elementFactory","sheet"],elementFactory:["type",class{constructor(){this._uid=12}create(e,t={}){return t.id||(t.id=e+"_"+this._uid++),function(e,t){const n=vs[e];if(!n)throw new Error("unknown type "+e);return new n(t)}(e,t)}createRoot(e){return this.create("root",e)}createRow(e){return this.create("row",e)}createCol(e){return this.create("col",e)}createCell(e){return this.create("cell",e)}}],elementRegistry:["type",bs],eventBus:["type",M],sheet:["type",Es],throttle:["factory",Ts]};class Ds{constructor(e={}){let{injector:t}=e;if(!t){let{modules:n,config:i}=this._init(e);t=function(e,t){const n=[{config:["value",e]},Rs].concat(t||[]),i=new qt(n);return i.init(),i}(i,n)}this.get=t.get,this.invoke=t.invoke,this.get("eventBus").fire("table.init"),this.get("eventBus").fire("diagram.init")}_init(e){let{modules:t,...n}=e;return{modules:t,config:n}}destroy(){const e=this.get("eventBus");e.fire("table.destroy"),e.fire("diagram.destroy")}clear(){const e=this.get("eventBus");e.fire("table.clear"),e.fire("diagram.clear")}}function Os(e){if(!e)return"<null>";const t=e.id?` id="${e.id}"`:"";return`<${e.$type}${t} />`}function Ns(e,t){function n(t,n,i){if(t.gfx)throw new Error(`already rendered ${Os(t)}`);return e.element(t,n,i)}function i(e,t,i){d(e,(function(e){n(e,t,i)}))}function r(e,t,i){d(e,(function(e){n(e,t,i)}))}return{handleDecision:function(t){t.id||(t.id="decision");const o=t.decisionLogic;if(!o)throw new Error(`no table for ${Os(t)}`);{if(!o.output)throw new Error(`missing output for ${Os(o)}`);const t=(c=o,e.table(c));o.input&&i(o.input,t,o),i(o.output,t,o),s=o.rule,a=t,l=o,d(s,(function(e){n(e,a,l),r(e.inputEntry,e),r(e.outputEntry,e)}))}var s,a,l,c}}}function qs(e,t){const{elements:n,index:i}=e;return i[t]?e:{elements:[...n,t],index:{...i,[t]:!0}}}function Ls(...e){let t={elements:[],index:{}};return e.forEach((function(e){const n=typeof e;"string"===n&&e.length>0?t=qs(t,e):"object"===n&&null!==e&&Object.keys(e).forEach((function(n){e[n]&&(t=qs(t,n))}))})),function(e,t){return e.elements.join(t)}(t," ")}function Bs(e){return Ps(e.constructor,e)}function Ps(e,t){const n=e.$inject;if(!n)return;const{injector:i}=t.context,r=[...n,function(...e){for(const i in e){const r=n[i],o=e[i];t[r]=o}}];i.invoke(r)}function Is(e,t){Object.keys(t).forEach((function(n){if("$inject"===n||"__init"===n)return;const i=t[n];"constructor"===n&&i.call(e,e.props,e.context);const r=e[n];if(void 0!==r){if("function"!=typeof r)throw new Error(`failed to mixin <${n}>: cannot combine with non-fn component value`);e[n]=function(e,...t){return function(...n){let i;return t.forEach((function(t){if(i=t.call(e,...n),void 0!==i)return!1})),i}.bind(e)}(e,r,i)}else e[n]=i.bind(e)})),"$inject"in t&&Ps(t,e),"__init"in t&&t.__init.call(e,e.props,e.context)}const Fs={getSelectionClasses(){const{selected:e,selectedSecondary:t,focussed:n}=this.state;return Ls({selected:e,"selected-secondary":t,focussed:n})},selectionChanged(e){this.setState(e)},componentWillUpdate(e){e.elementId!==this.props.elementId&&this.updateSelectionSubscription(!1)},componentDidUpdate(e){e.elementId!==this.props.elementId&&this.updateSelectionSubscription(!0)},componentDidMount(){this.updateSelectionSubscription(!0)},componentWillUnmount(){this.updateSelectionSubscription(!1)},updateSelectionSubscription(e){const{elementId:t}=this.props;t&&t&&this.eventBus[e?"on":"off"](`selection.${t}.changed`,this.selectionChanged)},$inject:["eventBus"]};class js extends Pr{constructor(e,t){super(e,t),Is(this,Fs),Bs(this)}getRenderProps(...e){const{className:t,elementId:n,coords:i,...r}=this.props,o={className:Ls(...e,this.getSelectionClasses(),t)};return n&&(o["data-element-id"]=n),i&&(o["data-coords"]=i),{...o,...r}}}class Vs extends js{constructor(e,t){super(e,t),this.state={}}render(){const{children:e}=this.props;return Si(xi(1,"td",null,e,0,{...this.getRenderProps("cell")}))}}const $s={slotFill(e,t){const{type:n,context:i,...r}=e,o=this.components.getComponent(n,i)||t;return o?Si(_i(2,o,{...i,...r})):null},slotFills(e){const{type:t,context:n,...i}=e;return this.components.getComponents(t,n).map((e=>Si(_i(2,e,{...n,...i}))))},$inject:["components"]};class zs extends Pr{constructor(e,t){super(e,t),Is(this,$s),Bs(this)}componentDidMount(){this.changeSupport.onElementsChanged(this.getRoot(),this.onElementsChanged)}componentWillUnmount(){this.changeSupport.offElementsChanged(this.getRoot(),this.onElementsChanged)}onElementsChanged=()=>{this.forceUpdate()};getRoot(){return this.sheet.getRoot()}render(){const e=(this.getRoot().businessObject.get("annotationsWidth")||400)+"px";return xi(1,"th","annotation header",[this.slotFills({type:"cell-inner",context:{cellType:"annotations",col:this.sheet.getRoot(),minWidth:400}}),this.translate("Annotations")],0,{style:{width:e}})}}function Ws(e){const{row:t}=e,{id:n,description:i}=t.businessObject;return _i(2,Vs,{className:"annotation",elementId:n,children:i||"-"})}function Hs(e){e.onGetComponent("cell",(({cellType:e})=>"after-label-cells"===e?zs:"after-rule-cells"===e?Ws:void 0))}zs.$inject=["changeSupport","sheet","translate"],Hs.$inject=["components"];var Us={__init__:["annotationsProvider"],annotationsProvider:["type",Hs]};function Gs(e,t){return S({id:e.id,type:e.$type,businessObject:e},t)}class Ks{constructor(e,t,n){this._elementFactory=e,this._eventBus=t,this._sheet=n}add(e){let t;if(Xn(e,"dmn:DecisionTable"))t=this._elementFactory.createRoot(Gs(e)),this._sheet.setRoot(t);else if(Xn(e,"dmn:InputClause"))t=this._elementFactory.createCol(Gs(e)),this._sheet.addCol(t);else if(Xn(e,"dmn:OutputClause"))t=this._elementFactory.createCol(Gs(e)),this._sheet.addCol(t);else if(Xn(e,"dmn:DecisionRule")){e.inputEntry||(e.inputEntry=[]),e.outputEntry||(e.outputEntry=[]);const n=[...e.inputEntry,...e.outputEntry].map((e=>this._elementFactory.createCell(Gs(e))));t=this._elementFactory.createRow(S(Gs(e),{cells:n})),this._sheet.addRow(t)}return this._eventBus.fire("dmnElement.added",{element:t}),t}}Ks.$inject=["elementFactory","eventBus","sheet"];var Xs={__depends__:[{__depends__:[vo],tableImporter:["type",Ks]},Cs]};class Ys extends Pr{constructor(e,t){super(e,t),Is(this,$s),this._sheet=t.injector.get("sheet"),this._changeSupport=t.changeSupport}onElementsChanged=()=>{this.forceUpdate()};componentWillMount(){const e=this._sheet.getRoot();this._changeSupport.onElementsChanged(e.id,this.onElementsChanged)}componentWillUnmount(){const e=this._sheet.getRoot();this._changeSupport.offElementsChanged(e.id,this.onElementsChanged)}render(){const e=this._sheet.getRoot();if(!Xn(e,"dmn:DMNElement"))return null;const t=Yn(e),n=t.input,i=t.output;return xi(1,"thead",null,xi(1,"tr",null,[xi(1,"th","index-column"),this.slotFills({type:"cell",context:{cellType:"before-label-cells"}}),n&&n.map(((e,t)=>{const i=e.width||"192px";return this.slotFill({type:"cell",context:{cellType:"input-header",input:e,index:t,inputsLength:n.length,width:i},key:e.id},Js)})),i.map(((e,t)=>this.slotFill({type:"cell",context:{cellType:"output-header",output:e,index:t,outputsLength:i.length},key:e.id},Qs))),this.slotFills({type:"cell",context:{cellType:"after-label-cells"}})],0),2)}}function Js(e,t){const{input:n,className:i,index:r}=e,{label:o,inputExpression:s,inputValues:a}=n,l=t.injector.get("translate");return xi(1,"th",(i||"")+" input-cell",[xi(1,"div","clause",l(0===r?"When":"And"),0),o?xi(1,"div","input-label",o,0,{title:l("Input label: ")+o}):xi(1,"div","input-expression",s.text,0,{title:l("Input expression: ")+s.text}),xi(1,"div","input-variable",a&&a.text||s.typeRef,0,{title:a&&a.text?l("Input values"):l("Input type")})],0,{"data-col-id":n.id},n.id)}function Qs(e,t){const{output:n,className:i,index:r}=e,{label:o,name:s,outputValues:a,typeRef:l}=n,c=t.injector.get("translate");return xi(1,"th",(i||"")+" output-cell",[xi(1,"div","clause",c(0===r?"Then":"And"),0),o?xi(1,"div","output-label",o,0,{title:c("Output label")}):xi(1,"div","output-name",s,0,{title:c("Output name")}),xi(1,"div","output-variable",a&&a.text||l,0,{title:a&&a.text?c("Output values"):c("Output type")})],0,null,n.id)}function Zs(e){e.onGetComponent("table.head",(()=>Ys))}Zs.$inject=["components"];var ea={__init__:["decisionTableHeadProvider"],decisionTableHeadProvider:["type",Zs]};class ta extends Pr{constructor(e,t){super(e,t),this._translate=t.injector.get("translate"),Bs(this)}render(){const e=this.sheet.getRoot();if(!Xn(e,"dmn:DMNElement"))return null;const{name:t}=e.businessObject.$parent,n=this.components.getComponent("hit-policy")||na;return xi(1,"div","decision-table-properties",[xi(1,"div","decision-table-name",t,0,{title:this._translate("Decision name: ")+t}),xi(1,"div","decision-table-header-separator"),_i(2,n)],4)}}function na(){return null}ta.$inject=["sheet","components"];class ia{constructor(e){e.onGetComponent("table.before",500,(()=>ta))}}ia.$inject=["components"];var ra={__init__:["decisionTableProperties"],decisionTableProperties:["type",ia]};class oa extends Pr{render(){const{row:e,rowIndex:t}=this.props,{components:n}=this.context,i=n.getComponents("cell-inner",{cellType:"rule-index",row:e,rowIndex:t});return xi(1,"td","rule-index",[i&&i.map((n=>_i(2,n,{row:e,rowIndex:t}))),t+1],0,{"data-element-id":e.id,"data-row-id":e.id})}}class sa{constructor(e){e.onGetComponent("cell",(({cellType:e})=>{if("before-rule-cells"===e)return oa}))}}sa.$inject=["components"];var aa={__init__:["decisionRuleIndices"],decisionRuleIndices:["type",sa]};const la=[{label:"FEEL",value:"feel"}];class ca{constructor(e){this._injector=e;const t=e.get("config.expressionLanguages")||{};this._config={options:la,defaults:{editor:"feel"}},t.options&&(this._config.options=t.options);const n=this._getLegacyDefaults();S(this._config.defaults,n,t.defaults)}getDefault(e){const{defaults:t}=this._config,n=t[e]||t.editor;return this._getLanguageByValue(n)||this.getAll()[0]}getLabel(e){const t=this._getLanguageByValue(e);return t?t.label:e}getAll(){return this._config.options}_getLegacyDefaults(){const e={},t=this._injector,n=t.get("config.defaultInputExpressionLanguage"),i=t.get("config.defaultOutputExpressionLanguage");return n&&(e.inputCell=n),i&&(e.outputCell=i),e}_getLanguageByValue(e){return u(this.getAll(),(t=>e===t.value))}}ca.$inject=["injector"];var ha={__init__:["expressionLanguages"],expressionLanguages:["type",ca]};class ua{constructor(e){this._feelLanguageContext=e}getConfig(){return this._feelLanguageContext}}ua.$inject=["config.feelLanguageContext"];var pa={__init__:["feelLanguageContext"],feelLanguageContext:["type",ua]};class da extends Pr{render({rows:e,cols:t}){const{components:n}=this.context;return xi(1,"tbody",null,e.map(((e,i)=>{const r=n.getComponent("row",{rowType:"rule"});return r&&_i(2,r,{row:e,rowIndex:i,cols:t},e.id)})),0)}}class fa extends Pr{constructor(e,t){super(e,t),Is(this,$s)}render(){const{row:e,rowIndex:t,cols:n}=this.props,{cells:i}=e;return xi(1,"tr",null,[this.slotFills({type:"cell",context:{cellType:"before-rule-cells",row:e,rowIndex:t}}),i.map(((i,r)=>this.slotFill({type:"cell",context:{cellType:"rule",cell:i,rowIndex:t,colIndex:r},key:i.id,row:e,col:n[r]}))),this.slotFills({type:"cell",context:{cellType:"after-rule-cells",row:e,rowIndex:t}})],0)}}class ga extends Pr{render(){const{cell:e,row:t,col:n}=this.props;return Xn(e,"dmn:UnaryTests")?_i(2,Vs,{className:"input-cell",elementId:e.id,"data-row-id":t.id,"data-col-id":n.id,children:e.businessObject.text}):_i(2,Vs,{className:"output-cell",elementId:e.id,"data-row-id":t.id,"data-col-id":n.id,children:e.businessObject.text})}}class ma{constructor(e){e.onGetComponent("table.body",(()=>da)),e.onGetComponent("row",(({rowType:e})=>{if("rule"===e)return fa})),e.onGetComponent("cell",(({cellType:e})=>{if("rule"===e)return ga}))}}ma.$inject=["components"];var ya={__depends__:[ha,pa],__init__:["decisionRules"],decisionRules:["type",ma]};const va=[{label:"Unique",value:{hitPolicy:"UNIQUE",aggregation:void 0},explanation:"No overlap is possible and all rules are disjoint. Only a single rule can be matched"},{label:"First",value:{hitPolicy:"FIRST",aggregation:void 0},explanation:"Rules may overlap. The first matching rule will be chosen"},{label:"Priority",value:{hitPolicy:"PRIORITY",aggregation:void 0},explanation:"Rules may overlap. The one with the highest priority will be chosen"},{label:"Any",value:{hitPolicy:"ANY",aggregation:void 0},explanation:"Rules may overlap. Their output have to match"},{label:"Collect",value:{hitPolicy:"COLLECT",aggregation:void 0},explanation:"Collects the values of all matching rules"},{label:"Collect (Sum)",value:{hitPolicy:"COLLECT",aggregation:"SUM"},explanation:"Collects the values of all matching rules and sums up to a single value"},{label:"Collect (Min)",value:{hitPolicy:"COLLECT",aggregation:"MIN"},explanation:"Collects the values of all matching rules and uses the lowest value"},{label:"Collect (Max)",value:{hitPolicy:"COLLECT",aggregation:"MAX"},explanation:"Collects the values of all matching rules and uses the highest value"},{label:"Collect (Count)",value:{hitPolicy:"COLLECT",aggregation:"COUNT"},explanation:"Collects the values of all matching rules and counts the number of them"},{label:"Rule order",value:{hitPolicy:"RULE ORDER",aggregation:void 0},explanation:"Collects the values of all matching rules in rule order"},{label:"Output order",value:{hitPolicy:"OUTPUT ORDER",aggregation:void 0},explanation:"Collects the values of all matching rules in decreasing output priority order"}];class wa extends Pr{constructor(e,t){super(e,t),this._translate=t.injector.get("translate"),Bs(this)}getRoot(){return this.sheet.getRoot()}render(){const e=this.getRoot().businessObject,{aggregation:t,hitPolicy:n}=e,i=u(va,(e=>{return i=e.value,r={aggregation:t,hitPolicy:n},i.hitPolicy===r.hitPolicy&&i.aggregation===r.aggregation;var i,r}));return xi(1,"div","hit-policy header",[xi(1,"label","dms-label",this._translate("Hit policy:"),0),xi(1,"span","hit-policy-value",this._translate(i.label),0)],4,{title:this._translate(i.explanation)})}}function ba(e){e.onGetComponent("hit-policy",(()=>wa))}wa.$inject=["sheet"],ba.$inject=["components"];var xa={__init__:["hitPolicyProvider"],hitPolicyProvider:["type",ba]};let _a=class extends Pr{constructor(e,t){super(e,t);const{injector:n}=t;this._translate=n.get("translate"),this._eventBus=n.get("eventBus")}onClick=()=>{this._eventBus.fire("showDrd")};render(){return xi(1,"div","view-drd",xi(1,"button","view-drd-button",this._translate("View DRD"),0,{type:"button",onClick:this.onClick}),2,null,null,(e=>this.node=e))}},ka=class{constructor(e,t,n,i){this._injector=n,this._sheet=i,e.onGetComponent("table.before",(()=>{if(this.canViewDrd())return _a})),t.on("showDrd",(()=>{const e=n.get("_parent",!1),t=Sa(i.getRoot());if(!t)return;const r=e.getView(t);e.open(r)}))}canViewDrd(){const e=this._injector.get("_parent",!1);if(!e)return!1;const t=Sa(this._sheet.getRoot());return!!e.getView(t)}};function Sa(e){const{businessObject:t}=e;if(!t)return;return t.$parent.$parent}ka.$inject=["components","eventBus","injector","sheet"];var Ca={__init__:["viewDrd"],viewDrd:["type",ka]};let Ea=class{constructor(e){e.onGetComponent("table.before",(()=>Vr))}};Ea.$inject=["components"];var Ma={__init__:["poweredBy"],poweredBy:["type",Ea]};let Aa=class e extends Ds{constructor(t={}){const n=e._createContainer();super(S(t,{renderer:{container:n}})),this._container=n}open(e){var t=this;return new Promise(((n,i)=>{var r;try{return t._decision&&t.clear(),t._decision=e,function(e,t,n){const i=e.get("tableImporter"),r=e.get("eventBus"),o=e.get("sheet");e.get("modeling",!1);let s,a=[];r.fire("import.render.start",{decision:t});try{!function(e){new Ns({create:(e,t,n,r)=>i.create(e,t,n,r),table:e=>i.add(e),element:(e,t,n)=>i.add(e,t,n),error(e,t){a.push({message:e,context:t})}}).handleDecision(e)}(t)}catch(e){s=e}r.fire("import.render.complete",{error:s,warnings:a}),r.fire("elements.changed",{elements:[o.getRoot()]}),n(s,a)}(t,e,(function(e,t){e?(e.warnings=t||[],i(e)):n({warnings:t||[]})}))}catch(e){r=e}r?(r.warnings=r.warnings||[],i(r)):n({warnings:[]})}))}_init(e){let{modules:t,additionalModules:n,...i}=e,r=t||this.getModules();return{modules:[Ma,...r,...n||[],...[{decisionTable:["value",this]}]],config:i}}on(e,t,n,i){return this.get("eventBus").on(e,t,n,i)}off(e,t){this.get("eventBus").off(e,t)}_emit(e,t){return this.get("eventBus").fire(e,t)}attachTo(e){if(!e)throw new Error("parentNode required");this.detach();const t=this._container;e.appendChild(t),this._emit("attach",{})}detach(){const e=this._container;e.parentNode&&(this._emit("detach",{}),yt(e))}destroy(){super.destroy(),this.detach()}getModules(){return e._getModules()}static _getModules(){return[Us,Xs,vo,ea,ra,aa,ya,xa,Ca]}static _createContainer(){return gt('<div class="dmn-decision-table-container"></div>')}};class Ta{constructor(e){this._listeners={},e.on("elements.changed",(({elements:e})=>{this.elementsChanged(e)})),e.on("element.updateId",(({element:e,newId:t})=>{this.updateId(e.id,t)}))}elementsChanged(e){const t={},n=e.length;for(let i=0;i<n;i++){const{id:n}=e[i];if(t[n])return;t[n]=!0;const r=this._listeners[n]&&this._listeners[n].length;if(r)for(let e=0;e<r;e++)this._listeners[n][e]&&this._listeners[n][e]()}}onElementsChanged(e,t){this._listeners[e]||(this._listeners[e]=[]),this._listeners[e][this._listeners[e].length]=t}offElementsChanged(e,t){if(this._listeners[e])if(t){const n=this._listeners[e].indexOf(t);-1!==n&&this._listeners[e].splice(n,1)}else this._listeners[e].length=0}updateId(e,t){this._listeners[e]&&(this._listeners[t]=this._listeners[e],delete this._listeners[e])}}Ta.$inject=["eventBus"];class Ra extends Pr{constructor(e){super(e);const t=this._injector=e.injector;this._changeSupport=t.get("changeSupport"),this._components=t.get("components"),this._renderer=t.get("renderer")}getChildContext(){return{changeSupport:this._changeSupport,components:this._components,renderer:this._renderer,injector:this._injector}}render(){const e=this._components.getComponents("viewer");return xi(1,"div","viewer-container",e&&e.map(((e,t)=>_i(2,e,null,t))),0)}}class Da{constructor(e,t,n,i,r){const{container:o}=n;this._container=o,i.on("renderer.mount",(()=>{Or(_i(2,Ra,{injector:r}),o)})),i.on("renderer.unmount",(()=>{Or(null,o)}))}getContainer(){return this._container}}Da.$inject=["changeSupport","components","config.renderer","eventBus","injector"];var Oa={__init__:["changeSupport","components","renderer"],changeSupport:["type",Ta],components:["type",class{constructor(){this._listeners={}}getComponent(e,t){const n=this._listeners[e];if(!n)return;let i;for(let e=0;e<n.length&&(i=n[e].callback(t),!i);e++);return i}getComponents(e,t){const n=this._listeners[e];if(!n)return;const i=[];for(let e=0;e<n.length;e++){const r=n[e].callback(t);r&&i.push(r)}return i.length?i:void 0}onGetComponent(e,t,n){if(l(t)&&(n=t,t=1e3),!a(t))throw new Error("priority must be a number");const i=this._getListeners(e);let r,o;const s={priority:t,callback:n};for(o=0;r=i[o];o++)if(r.priority<t)return void i.splice(o,0,s);i.push(s)}offGetComponent(e,t){const n=this._getListeners(e);let i,r,o;if(t)for(o=n.length-1;i=n[o];o--)r=i.callback,r===t&&n.splice(o,1);else n.length=0}_getListeners(e){let t=this._listeners[e];return t||(this._listeners[e]=t=[]),t}}],eventBus:["type",M],renderer:["type",Da]};let Na=class{constructor(e={}){let{injector:t}=e;if(!t){let{modules:n,config:i}=this._init(e);t=function(e,t){const n=[{config:["value",e]},Oa].concat(t||[]),i=new qt(n);return i.init(),i}(i,n)}this.get=t.get,this.invoke=t.invoke,this.get("eventBus").fire("viewer.init")}_init(e){let{modules:t,...n}=e;return{modules:t,config:n}}destroy(){this.get("eventBus").fire("viewer.destroy")}clear(){this.get("eventBus").fire("viewer.clear")}};class qa{constructor(e,t){this._eventBus=t,this._viewer=e}getDecision(){return this._viewer.getDecision()}updateId(e,t){if(e!==this.getDecision())throw new Error("element !== decision");this._eventBus.fire("element.updateId",{element:e,newId:t}),e.id=t}}qa.$inject=["viewer","eventBus"];var La={__init__:["elementRegistry"],elementRegistry:["type",qa]};class Ba extends Pr{constructor(e,t){super(e,t),this._viewer=t.injector.get("viewer")}render(){const{name:e}=this._viewer.getDecision();return xi(1,"div","decision-properties",xi(1,"h3","decision-name",e,0),2)}}let Pa=class{constructor(e){e.onGetComponent("viewer",1500,(()=>Ba))}};Pa.$inject=["components"];var Ia={__init__:["decisionProperties"],decisionProperties:["type",Pa]};class Fa extends Pr{constructor(e,t){super(e,t),this._translate=t.injector.get("translate"),this._viewer=t.injector.get("viewer")}render(){const{decisionLogic:e,variable:t}=this._viewer.getDecision();return xi(1,"div","literal-expression-properties",xi(1,"table",null,[xi(1,"tr",null,[xi(1,"td",null,this._translate("Variable name:"),0),xi(1,"td",null,xi(1,"span",null,t.name||"-",0),2)],4),xi(1,"tr",null,[xi(1,"td",null,this._translate("Variable type:"),0),xi(1,"td",null,xi(1,"span",null,this._translate(t.typeRef||"")||"-",0),2)],4),xi(1,"tr",null,[xi(1,"td",null,this._translate("Expression language:"),0),xi(1,"td",null,xi(1,"span",null,e.expressionLanguage||"-",0),2)],4)],4),2)}}class ja{constructor(e){e.onGetComponent("viewer",500,(()=>Fa))}}ja.$inject=["components"];var Va={__depends__:[],__init__:["literalExpressionProperties"],literalExpressionProperties:["type",ja]};let $a=class{constructor(e){e.onGetComponent("viewer",2e3,(()=>Vr))}};$a.$inject=["components"];var za={__init__:["poweredBy"],poweredBy:["type",$a]};class Wa extends Pr{constructor(e,t){super(e,t),this._viewer=t.injector.get("viewer")}render(){const{text:e}=this._viewer.getDecision().decisionLogic;return xi(1,"div","textarea",xi(1,"div","content",e,0),2)}}class Ha{constructor(e){e.onGetComponent("viewer",(()=>Wa))}}Ha.$inject=["components"];var Ua={__init__:["textarea"],textarea:["type",Ha]};let Ga=class extends Pr{constructor(e,t){super(e,t);const{injector:n}=t;this._translate=n.get("translate"),this._eventBus=n.get("eventBus")}onClick=()=>{this._eventBus.fire("showDrd")};render(){return xi(1,"div","view-drd",xi(1,"button","view-drd-button",this._translate("View DRD"),0,{type:"button",onClick:this.onClick}),2,null,null,(e=>this.node=e))}};Ga.$inject=["translate"];let Ka=class{constructor(e,t,n,i){this._injector=i,this._viewer=t,e.onGetComponent("viewer",2e3,(()=>{if(this.canViewDrd())return Ga})),n.on("showDrd",(()=>{const e=i.get("_parent",!1),t=this.getDefinitions(),n=e.getView(t);e.open(n)}))}canViewDrd(){const e=this._injector.get("_parent",!1);if(!e)return;const t=this.getDefinitions();return!!e.getView(t)}getDefinitions(){return this._viewer.getDecision().$parent}};Ka.$inject=["components","viewer","eventBus","injector"];var Xa={__init__:["viewDrd"],viewDrd:["type",Ka]};let Ya=class e extends Na{constructor(t={}){const n=e._createContainer();super(S(t,{renderer:{container:n}})),this._container=n}open(e){var t=this;return new Promise((function(n,i){var r;try{t._decision&&(t.clear(),t.get("eventBus").fire("renderer.unmount")),t._decision=e,t.get("eventBus").fire("import",e),t.get("eventBus").fire("renderer.mount")}catch(e){r=e}r?(r.warnings=r.warnings||[],i(r)):n({warnings:[]})}))}_init(e){let{modules:t,additionalModules:n,...i}=e;return{modules:[...t||this.getModules(),...n||[],...[{viewer:["value",this]}]],config:i}}on(e,t,n,i){return this.get("eventBus").on(e,t,n,i)}off(e,t){this.get("eventBus").off(e,t)}_emit(e,t){return this.get("eventBus").fire(e,t)}getDecision(){return this._decision}attachTo(e){if(!e)throw new Error("parentNode required");this.detach(),e.appendChild(this._container),this._emit("attach",{})}detach(){const e=this._container;e.parentNode&&(this._emit("detach",{}),yt(e))}destroy(){super.destroy(),this.detach()}getModules(){return e._getModules()}static _getModules(){return[La,vo,Ia,Va,za,Ua,Xa]}static _createContainer(){return gt('<div class="dmn-literal-expression-container"></div>')}};function Ja(e,{injector:t}){const n=t.get("components").getComponents("header");return xi(1,"div","dmn-boxed-expression-section dmn-boxed-expression-header",n&&n.map(((e,t)=>_i(2,e,null,t))),0)}function Qa(e,{injector:t}){const n=t.get("components").getComponents("body");return xi(1,"div","dmn-boxed-expression-section dmn-boxed-expression-body",n&&n.map(((e,t)=>_i(2,e,null,t))),0)}function Za(e,{injector:t}){const n=t.get("components").getComponents("footer");return xi(1,"div","dmn-boxed-expression-section dmn-boxed-expression-footer",n&&n.map(((e,t)=>_i(2,e,null,t))),0)}var el={__init__:["viewRenderer","tableJsSupport"],viewRenderer:["type",class{static $inject=["components"];constructor(e){e.onGetComponent("viewer",(()=>Ja)),e.onGetComponent("viewer",(()=>Qa)),e.onGetComponent("viewer",(()=>Za))}}],tableJsSupport:["type",class{static $inject=["components"];constructor(e){e.onGetComponent("viewer",(()=>{const t=e.getComponents("table.before")||[];return()=>xi(1,"div",null,t.map(((e,t)=>_i(2,e,null,t))),0)}))}}]};class tl{constructor(e){e.onGetComponent("viewer",2e3,(()=>Vr))}}tl.$inject=["components"];var nl={__init__:["poweredBy"],poweredBy:["type",tl]};function il({expression:e},t){return xi(1,"div","textarea",xi(1,"div","content",t.injector.get("literalExpression").getText(e),0),2)}class rl{getText(e){return e.get("text")}}var ol={__init__:["literalExpressionComponent"],literalExpressionComponent:["type",class{static $inject=["components"];constructor(e){e.onGetComponent("expression",(({expression:e})=>{if(Xn(e,"dmn:LiteralExpression"))return il}))}}],literalExpression:["type",rl]};function sl({expression:e},t){const n=t.injector.get("functionDefinition"),i=n.getKind(e),r=n.getParameters(e),o=n.getBody(e);return xi(1,"div","function-definition",[_i(2,ll,{kind:i}),_i(2,cl,{parameters:r}),_i(2,ul,{expression:o})],4)}const al={FEEL:"F",Java:"J",PMML:"P"};function ll({kind:e},t){const n=t.injector.get("translate");return xi(1,"div","function-definition-kind",al[e],0,{title:n("Function kind: {kind}",{kind:e})})}function cl({parameters:e}){return xi(1,"div","function-definition-parameters",xi(1,"div",null,[ki("("),e.reduce(((e,t)=>e.concat(_i(2,hl,{parameter:t}),", ")),[]).slice(0,-1),ki(")")],0),2)}function hl({parameter:e}){const{name:t,typeRef:n}=e,i=t||"<unnamed>";return xi(1,"span",null,n?`${i}: ${n}`:i,0)}function ul({expression:e},t){return xi(1,"div","function-definition-body",_i(2,t.components.getComponent("expression",{expression:e}),{expression:e}),2)}var pl={__init__:["functionDefinitionComponent"],functionDefinition:["type",class{getParameters(e){return e.get("formalParameter")}getBody(e){return e.get("body")}getKind(e){return e.get("kind")||"FEEL"}}],functionDefinitionComponent:["type",class{static $inject=["components"];constructor(e){e.onGetComponent("expression",(({expression:e})=>{if(Xn(e,"dmn:FunctionDefinition"))return sl}))}}]};class dl extends Pr{constructor(e,t){super(e,t);const{injector:n}=t;this._translate=n.get("translate"),this._eventBus=n.get("eventBus")}onClick=()=>{this._eventBus.fire("showDrd")};render(){return xi(1,"div","view-drd",xi(1,"button","view-drd-button",this._translate("View DRD"),0,{type:"button",onClick:this.onClick}),2,null,null,(e=>this.node=e))}}dl.$inject=["translate"];class fl{constructor(e,t,n){this._injector=n,e.onGetComponent("viewer",2e3,(()=>{if(this.canViewDrd())return dl})),t.on("showDrd",(()=>{const e=n.get("_parent",!1),t=e.getDefinitions(),i=e.getView(t);e.open(i)}))}canViewDrd(){const e=this._injector.get("_parent",!1);if(!e)return;const t=e.getDefinitions();return!!e.getView(t)}}fl.$inject=["components","eventBus","injector"];var gl={__init__:["viewDrd"],viewDrd:["type",fl]};function ml(e,t){const n=t.injector.get("viewer"),{name:i}=n.getRootElement();return xi(1,"div","element-properties",xi(1,"h2","element-name",i,0),2)}class yl{constructor(e){e.onGetComponent("header",(()=>ml))}}yl.$inject=["components"];var vl={__init__:["elementProperties"],elementProperties:["type",yl]};function wl(e,{injector:t}){const n=t.get("components"),i=function(e){if(Xn(e,"dmn:Decision"))return e.get("decisionLogic");if(Xn(e,"dmn:BusinessKnowledgeModel"))return e.get("encapsulatedLogic")}(t.get("viewer").getRootElement());return _i(2,n.getComponent("expression",{expression:i}),{expression:i})}function bl({expression:e}){return xi(1,"div",null,xi(1,"span",null,[ki("Expression of type "),e.$type,ki(" is not supported.")],0,{style:"color:red;"}),2)}var xl={__init__:["elementLogic"],elementLogic:["type",class{static $inject=["components"];constructor(e){e.onGetComponent("body",(()=>wl)),e.onGetComponent("expression",100,(()=>bl))}}]};function _l(e,t){const n=t.injector.get("elementVariable"),i=t.injector.get("translate"),r=n.getName(),o=n.getType();return xi(1,"div","element-variable",[xi(1,"h2",null,ki("Result"),2),xi(1,"div","element-variable-name",[xi(1,"span","element-variable-name-label",i("Variable name"),0),xi(1,"span",null,r,0)],4),xi(1,"div","element-variable-type",[xi(1,"span","element-variable-type-label",i("Variable type"),0),xi(1,"span",null,o,0)],4)],4)}var kl={__init__:["elementVariableComponent"],elementVariable:["type",class{static $inject=["viewer"];constructor(e){this._viewer=e}getName(){const e=this.getVariable(),t=this._getElement();return(e?e.get("name"):null)||t.get("name")}getType(){const e=this.getVariable();return e?e.get("typeRef"):"Any"}_getElement(){return this._viewer.getRootElement()}getVariable(){return this._getElement().get("variable")}}],elementVariableComponent:["type",class{static $inject=["components"];constructor(e){e.onGetComponent("footer",(()=>_l))}}]};let Sl=class e extends Na{constructor(t={}){const n=e._createContainer();super(S(t,{renderer:{container:n}})),this._container=n}open(e){const t=this.get("eventBus");return new Promise(((n,i)=>{let r;try{this.getRootElement()&&(this.clear(),t.fire("renderer.unmount")),this._setRootElement(e),t.fire("import",e),t.fire("renderer.mount")}catch(e){r=e}r?(r.warnings=r.warnings||[],i(r)):n({warnings:[]})}))}_init(e){let{modules:t,additionalModules:n,...i}=e;return{modules:[...t||this.getModules(),...n||[],...[{viewer:["value",this]}]],config:i}}on(e,t,n,i){return this.get("eventBus").on(e,t,n,i)}off(e,t){this.get("eventBus").off(e,t)}_emit(e,t){return this.get("eventBus").fire(e,t)}getRootElement(){return this._root}_setRootElement(e){this._root=e}attachTo(e){if(!e)throw new Error("parentNode required");this.detach(),e.appendChild(this._container),this._emit("attach",{})}detach(){const e=this._container;e.parentNode&&(this._emit("detach",{}),yt(e))}destroy(){super.destroy(),this.detach()}getModules(){return[el,vo,nl,gl,vl,xl,pl,ol,kl]}static _createContainer(){return gt('<div class="dmn-boxed-expression-container"></div>')}};window.getSelection();var Cl,El={exports:{}};!function(){if(Cl)return El.exports;function e(e,t){return{start:e,end:void 0===t?e:t}}Cl=1,El.exports=function(t,n,i){var r=t.start,o=r,s=(i.length,n.length);i.length,n.length;var a=n.substring(r);return i.lastIndexOf(a)===i.length-a.length&&(n=n.substring(0,n.length-a.length),i=i.substring(0,i.length-a.length)),s=function(e,t){var n,i,r,o=0,s=0;t.length>e.length?(i=t,r=e):(i=e,r=t);for(;o<i.length;)i.charAt(o)!==r.charAt(s)?(n||(n={l_start:o,s_start:s}),o++):(n&&!n.complete&&(n.l_end=o,n.s_end=s,n.complete=!0),s++,o++);n&&!n.complete&&(n.complete=!0,n.s_end=r.length,n.l_end=i.length);if(!n)return;return t.length>e.length?{newStart:n.l_start,newEnd:n.l_end,type:"add"}:{newStart:n.s_start,newEnd:n.s_end,type:t.length<e.length?"remove":"replace"}}(n,i),s&&(o="remove"===s.type?s.newStart:s.newEnd),e(o)},El.exports.range=e,El.exports}();let Ml=[],Al=[];function Tl(e){if(e<768)return!1;for(let t=0,n=Ml.length;;){let i=t+n>>1;if(e<Ml[i])n=i;else{if(!(e>=Al[i]))return!0;t=i+1}if(t==n)return!1}}function Rl(e){return e>=127462&&e<=127487}(()=>{let e="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 t=0,n=0;t<e.length;t++)(t%2?Al:Ml).push(n+=e[t])})();const Dl=8205;function Ol(e,t,n=!0,i=!0){return(n?Nl:ql)(e,t,i)}function Nl(e,t,n){if(t==e.length)return t;t&&Bl(e.charCodeAt(t))&&Pl(e.charCodeAt(t-1))&&t--;let i=Ll(e,t);for(t+=Il(i);t<e.length;){let r=Ll(e,t);if(i==Dl||r==Dl||n&&Tl(r))t+=Il(r),i=r;else{if(!Rl(r))break;{let n=0,i=t-2;for(;i>=0&&Rl(Ll(e,i));)n++,i-=2;if(n%2==0)break;t+=2}}}return t}function ql(e,t,n){for(;t>0;){let i=Nl(e,t-2,n);if(i<t)return i;t--}return 0}function Ll(e,t){let n=e.charCodeAt(t);if(!Pl(n)||t+1==e.length)return n;let i=e.charCodeAt(t+1);return Bl(i)?i-56320+(n-55296<<10)+65536:n}function Bl(e){return e>=56320&&e<57344}function Pl(e){return e>=55296&&e<56320}function Il(e){return e<65536?1:2}class Fl{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]=Kl(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),Vl.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]=Kl(this,e,t);let n=[];return this.decompose(e,t,n,0),Vl.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 Wl(this),r=new Wl(e);for(let e=t,o=t;;){if(i.next(e),r.next(e),e=0,i.lineBreak!=r.lineBreak||i.done!=r.done||i.value!=r.value)return!1;if(o+=i.value.length,i.done||o>=n)return!0}}iter(e=1){return new Wl(this,e)}iterRange(e,t=this.length){return new Hl(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 Ul(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 jl(e):Vl.from(jl.split(e,[])):Fl.empty}}class jl extends Fl{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 r=0;;r++){let o=this.text[r],s=i+o.length;if((t?n:s)>=e)return new Gl(i,s,n,o);i=s+1,n++}}decompose(e,t,n,i){let r=e<=0&&t>=this.length?this:new jl(zl(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(1&i){let e=n.pop(),t=$l(r.text,e.text.slice(),0,r.length);if(t.length<=32)n.push(new jl(t,e.length+r.length));else{let e=t.length>>1;n.push(new jl(t.slice(0,e)),new jl(t.slice(e)))}}else n.push(r)}replace(e,t,n){if(!(n instanceof jl))return super.replace(e,t,n);[e,t]=Kl(this,e,t);let i=$l(this.text,$l(n.text,zl(this.text,0,e)),t),r=this.length+n.length-(t-e);return i.length<=32?new jl(i,r):Vl.from(jl.split(i,[]),r)}sliceString(e,t=this.length,n="\n"){[e,t]=Kl(this,e,t);let i="";for(let r=0,o=0;r<=t&&o<this.text.length;o++){let s=this.text[o],a=r+s.length;r>e&&o&&(i+=n),e<a&&t>r&&(i+=s.slice(Math.max(0,e-r),t-r)),r=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 r of e)n.push(r),i+=r.length+1,32==n.length&&(t.push(new jl(n,i)),n=[],i=-1);return i>-1&&t.push(new jl(n,i)),t}}class Vl extends Fl{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 r=0;;r++){let o=this.children[r],s=i+o.length,a=n+o.lines-1;if((t?a:s)>=e)return o.lineInner(e,t,n,i);i=s+1,n=a+1}}decompose(e,t,n,i){for(let r=0,o=0;o<=t&&r<this.children.length;r++){let s=this.children[r],a=o+s.length;if(e<=a&&t>=o){let r=i&((o<=e?1:0)|(a>=t?2:0));o>=e&&a<=t&&!r?n.push(s):s.decompose(e-o,t-o,n,r)}o=a+1}}replace(e,t,n){if([e,t]=Kl(this,e,t),n.lines<this.lines)for(let i=0,r=0;i<this.children.length;i++){let o=this.children[i],s=r+o.length;if(e>=r&&t<=s){let a=o.replace(e-r,t-r,n),l=this.lines-o.lines+a.lines;if(a.lines<l>>4&&a.lines>l>>6){let r=this.children.slice();return r[i]=a,new Vl(r,this.length-(t-e)+n.length)}return super.replace(r,s,a)}r=s+1}return super.replace(e,t,n)}sliceString(e,t=this.length,n="\n"){[e,t]=Kl(this,e,t);let i="";for(let r=0,o=0;r<this.children.length&&o<=t;r++){let s=this.children[r],a=o+s.length;o>e&&r&&(i+=n),e<a&&t>o&&(i+=s.sliceString(e-o,t-o,n)),o=a+1}return i}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(e,t){if(!(e instanceof Vl))return 0;let n=0,[i,r,o,s]=t>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;i+=t,r+=t){if(i==o||r==s)return n;let a=this.children[i],l=e.children[r];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 jl(n,t)}let i=Math.max(32,n>>5),r=i<<1,o=i>>1,s=[],a=0,l=-1,c=[];function h(e){let t;if(e.lines>r&&e instanceof Vl)for(let t of e.children)h(t);else e.lines>o&&(a>o||!a)?(u(),s.push(e)):e instanceof jl&&a&&(t=c[c.length-1])instanceof jl&&e.lines+t.lines<=32?(a+=e.lines,l+=e.length+1,c[c.length-1]=new jl(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]:Vl.from(c,l)),l=-1,a=c.length=0)}for(let t of e)h(t);return u(),1==s.length?s[0]:new Vl(s,t)}}function $l(e,t,n=0,i=1e9){for(let r=0,o=0,s=!0;o<e.length&&r<=i;o++){let a=e[o],l=r+a.length;l>=n&&(l>i&&(a=a.slice(0,i-r)),r<n&&(a=a.slice(n-r)),s?(t[t.length-1]+=a,s=!1):t.push(a)),r=l+1}return t}function zl(e,t,n){return $l(e,[""],t,n)}Fl.empty=new jl([""],0);class Wl{constructor(e,t=1){this.dir=t,this.done=!1,this.lineBreak=!1,this.value="",this.nodes=[e],this.offsets=[t>0?1:(e instanceof jl?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],r=this.offsets[n],o=r>>1,s=i instanceof jl?i.text.length:i.children.length;if(o==(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&r)==(t>0?0:1)){if(this.offsets[n]+=t,0==e)return this.lineBreak=!0,this.value="\n",this;e--}else if(i instanceof jl){let r=i.text[o+(t<0?-1:0)];if(this.offsets[n]+=t,r.length>Math.max(0,e))return this.value=0==e?r:t>0?r.slice(e):r.slice(0,r.length-e),this;e-=r.length}else{let r=i.children[o+(t<0?-1:0)];e>r.length?(e-=r.length,this.offsets[n]+=t):(t<0&&this.offsets[n]--,this.nodes.push(r),this.offsets.push(t>0?1:(r instanceof jl?r.text.length:r.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}}class Hl{constructor(e,t,n){this.value="",this.done=!1,this.cursor=new Wl(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 Ul{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&&(Fl.prototype[Symbol.iterator]=function(){return this.iter()},Wl.prototype[Symbol.iterator]=Hl.prototype[Symbol.iterator]=Ul.prototype[Symbol.iterator]=function(){return this});class Gl{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 Kl(e,t,n){return[t=Math.max(0,Math.min(e.length,t)),Math.max(t,Math.min(e.length,n))]}function Xl(e,t,n=!0,i=!0){return Ol(e,t,n,i)}const Yl=/\r\n?|\n/;var Jl=function(e){return e[e.Simple=0]="Simple",e[e.TrackDel=1]="TrackDel",e[e.TrackBefore=2]="TrackBefore",e[e.TrackAfter=3]="TrackAfter",e}(Jl||(Jl={}));class Ql{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;t<this.sections.length;t+=2)e+=this.sections[t];return e}get newLength(){let e=0;for(let t=0;t<this.sections.length;t+=2){let n=this.sections[t+1];e+=n<0?this.sections[t]:n}return e}get empty(){return 0==this.sections.length||2==this.sections.length&&this.sections[1]<0}iterGaps(e){for(let t=0,n=0,i=0;t<this.sections.length;){let r=this.sections[t++],o=this.sections[t++];o<0?(e(n,i,r),i+=r):i+=o,n+=r}}iterChangedRanges(e,t=!1){nc(this,e,t)}get invertedDesc(){let e=[];for(let t=0;t<this.sections.length;){let n=this.sections[t++],i=this.sections[t++];i<0?e.push(n,i):e.push(i,n)}return new Ql(e)}composeDesc(e){return this.empty?e:e.empty?this:rc(this,e)}mapDesc(e,t=!1){return e.empty?this:ic(this,e,t)}mapPos(e,t=-1,n=Jl.Simple){let i=0,r=0;for(let o=0;o<this.sections.length;){let s=this.sections[o++],a=this.sections[o++],l=i+s;if(a<0){if(l>e)return r+(e-i);r+=s}else{if(n!=Jl.Simple&&l>=e&&(n==Jl.TrackDel&&i<e&&l>e||n==Jl.TrackBefore&&i<e||n==Jl.TrackAfter&&l>e))return null;if(l>e||l==e&&t<0&&!s)return e==i||t<0?r:r+a;r+=a}i=l}if(e>i)throw new RangeError(`Position ${e} is out of range for changeset of length ${i}`);return r}touchesRange(e,t=e){for(let n=0,i=0;n<this.sections.length&&i<=t;){let r=i+this.sections[n++];if(this.sections[n++]>=0&&i<=t&&r>=e)return!(i<e&&r>t)||"cover";i=r}return!1}toString(){let e="";for(let t=0;t<this.sections.length;){let n=this.sections[t++],i=this.sections[t++];e+=(e?" ":"")+n+(i>=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 Ql(e)}static create(e){return new Ql(e)}}class Zl extends Ql{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 nc(this,((t,n,i,r,o)=>e=e.replace(i,i+(n-t),o)),!1),e}mapDesc(e,t=!1){return ic(this,e,t,!0)}invert(e){let t=this.sections.slice(),n=[];for(let i=0,r=0;i<t.length;i+=2){let o=t[i],s=t[i+1];if(s>=0){t[i]=s,t[i+1]=o;let a=i>>1;for(;n.length<a;)n.push(Fl.empty);n.push(o?e.slice(r,r+o):Fl.empty)}r+=o}return new Zl(t,n)}compose(e){return this.empty?e:e.empty?this:rc(this,e,!0)}map(e,t=!1){return e.empty?this:ic(this,e,t,!0)}iterChanges(e,t=!1){nc(this,e,t)}get desc(){return Ql.create(this.sections)}filter(e){let t=[],n=[],i=[],r=new oc(this);e:for(let o=0,s=0;;){let a=o==e.length?1e9:e[o++];for(;s<a||s==a&&0==r.len;){if(r.done)break e;let e=Math.min(r.len,a-s);ec(i,e,-1);let o=-1==r.ins?-1:0==r.off?r.ins:0;ec(t,e,o),o>0&&tc(n,t,r.text),r.forward(e),s+=e}let l=e[o++];for(;s<l;){if(r.done)break e;let e=Math.min(r.len,l-s);ec(t,e,-1),ec(i,e,-1==r.ins?-1:0==r.off?r.ins:0),r.forward(e),s+=e}}return{changes:new Zl(t,n),filtered:Ql.create(i)}}toJSON(){let e=[];for(let t=0;t<this.sections.length;t+=2){let n=this.sections[t],i=this.sections[t+1];i<0?e.push(n):0==i?e.push([n]):e.push([n].concat(this.inserted[t>>1].toJSON()))}return e}static of(e,t,n){let i=[],r=[],o=0,s=null;function a(e=!1){if(!e&&!i.length)return;o<t&&ec(i,t-o,-1);let n=new Zl(i,r);s=s?s.compose(n.map(s)):n,i=[],r=[],o=0}return function e(l){if(Array.isArray(l))for(let t of l)e(t);else if(l instanceof Zl){if(l.length!=t)throw new RangeError(`Mismatched change set length (got ${l.length}, expected ${t})`);a(),s=s?s.compose(l.map(s)):l}else{let{from:e,to:s=e,insert:c}=l;if(e>s||e<0||s>t)throw new RangeError(`Invalid change range ${e} to ${s} (in doc of length ${t})`);let h=c?"string"==typeof c?Fl.of(c.split(n||Yl)):c:Fl.empty,u=h.length;if(e==s&&0==u)return;e<o&&a(),e>o&&ec(i,e-o,-1),ec(i,s-e,u),tc(r,i,h),o=s}}(e),a(!s),s}static empty(e){return new Zl(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;i<e.length;i++){let r=e[i];if("number"==typeof r)t.push(r,-1);else{if(!Array.isArray(r)||"number"!=typeof r[0]||r.some(((e,t)=>t&&"string"!=typeof e)))throw new RangeError("Invalid JSON representation of ChangeSet");if(1==r.length)t.push(r[0],0);else{for(;n.length<i;)n.push(Fl.empty);n[i]=Fl.of(r.slice(1)),t.push(r[0],n[i].length)}}}return new Zl(t,n)}static createSet(e,t){return new Zl(e,t)}}function ec(e,t,n,i=!1){if(0==t&&n<=0)return;let r=e.length-2;r>=0&&n<=0&&n==e[r+1]?e[r]+=t:r>=0&&0==t&&0==e[r]?e[r+1]+=n:i?(e[r]+=t,e[r+1]+=n):e.push(t,n)}function tc(e,t,n){if(0==n.length)return;let i=t.length-2>>1;if(i<e.length)e[e.length-1]=e[e.length-1].append(n);else{for(;e.length<i;)e.push(Fl.empty);e.push(n)}}function nc(e,t,n){let i=e.inserted;for(let r=0,o=0,s=0;s<e.sections.length;){let a=e.sections[s++],l=e.sections[s++];if(l<0)r+=a,o+=a;else{let c=r,h=o,u=Fl.empty;for(;c+=a,h+=l,l&&i&&(u=u.append(i[s-2>>1])),!(n||s==e.sections.length||e.sections[s+1]<0);)a=e.sections[s++],l=e.sections[s++];t(r,c,o,h,u),r=c,o=h}}}function ic(e,t,n,i=!1){let r=[],o=i?[]:null,s=new oc(e),a=new oc(t);for(let e=-1;;){if(s.done&&a.len||a.done&&s.len)throw new Error("Mismatched change set lengths");if(-1==s.ins&&-1==a.ins){let e=Math.min(s.len,a.len);ec(r,e,-1),s.forward(e),a.forward(e)}else if(a.ins>=0&&(s.ins<0||e==s.i||0==s.off&&(a.len<s.len||a.len==s.len&&!n))){let t=a.len;for(ec(r,a.ins,-1);t;){let n=Math.min(s.len,t);s.ins>=0&&e<s.i&&s.len<=n&&(ec(r,0,s.ins),o&&tc(o,r,s.text),e=s.i),s.forward(n),t-=n}a.next()}else{if(!(s.ins>=0)){if(s.done&&a.done)return o?Zl.createSet(r,o):Ql.create(r);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.len<n))break;n-=a.len,a.next()}ec(r,t,e<s.i?s.ins:0),o&&e<s.i&&tc(o,r,s.text),e=s.i,s.forward(s.len-n)}}}}function rc(e,t,n=!1){let i=[],r=n?[]:null,o=new oc(e),s=new oc(t);for(let e=!1;;){if(o.done&&s.done)return r?Zl.createSet(i,r):Ql.create(i);if(0==o.ins)ec(i,o.len,0,e),o.next();else if(0!=s.len||s.done){if(o.done||s.done)throw new Error("Mismatched change set lengths");{let t=Math.min(o.len2,s.len),n=i.length;if(-1==o.ins){let n=-1==s.ins?-1:s.off?0:s.ins;ec(i,t,n,e),r&&n&&tc(r,i,s.text)}else-1==s.ins?(ec(i,o.off?0:o.len,t,e),r&&tc(r,i,o.textBit(t))):(ec(i,o.off?0:o.len,s.off?0:s.ins,e),r&&!s.off&&tc(r,i,s.text));e=(o.ins>t||s.ins>=0&&s.len>t)&&(e||i.length>n),o.forward2(t),s.forward(t)}}else ec(i,0,s.ins,e),r&&tc(r,i,s.text),s.next()}}class oc{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i<e.length?(this.len=e[this.i++],this.ins=e[this.i++]):(this.len=0,this.ins=-2),this.off=0}get done(){return-2==this.ins}get len2(){return this.ins<0?this.len:this.ins}get text(){let{inserted:e}=this.set,t=this.i-2>>1;return t>=e.length?Fl.empty:e[t]}textBit(e){let{inserted:t}=this.set,n=this.i-2>>1;return n>=t.length&&!e?Fl.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 sc{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 sc(n,i,this.flags)}extend(e,t=e){if(e<=this.anchor&&t>=this.anchor)return ac.range(e,t);let n=Math.abs(e-this.anchor)>Math.abs(t-this.anchor)?e:t;return ac.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 ac.range(e.anchor,e.head)}static create(e,t,n){return new sc(e,t,n)}}class ac{constructor(e,t){this.ranges=e,this.mainIndex=t}map(e,t=-1){return e.empty?this:ac.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;n<this.ranges.length;n++)if(!this.ranges[n].eq(e.ranges[n],t))return!1;return!0}get main(){return this.ranges[this.mainIndex]}asSingle(){return 1==this.ranges.length?this:new ac([this.main],0)}addRange(e,t=!0){return ac.create([e].concat(this.ranges),t?0:this.mainIndex+1)}replaceRange(e,t=this.mainIndex){let n=this.ranges.slice();return n[t]=e,ac.create(n,this.mainIndex)}toJSON(){return{ranges:this.ranges.map((e=>e.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 ac(e.ranges.map((e=>sc.fromJSON(e))),e.main)}static single(e,t=e){return new ac([ac.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;i<e.length;i++){let r=e[i];if(r.empty?r.from<=n:r.from<n)return ac.normalized(e.slice(),t);n=r.to}return new ac(e,t)}static cursor(e,t=0,n,i){return sc.create(e,e,(0==t?0:t<0?8:16)|(null==n?7:Math.min(6,n))|(null!=i?i:16777215)<<6)}static range(e,t,n,i){let r=(null!=n?n:16777215)<<6|(null==i?7:Math.min(6,i));return t<e?sc.create(t,e,48|r):sc.create(e,t,(t>e?8:0)|r)}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;n<e.length;n++){let i=e[n],r=e[n-1];if(i.empty?i.from<=r.to:i.from<r.to){let o=r.from,s=Math.max(i.to,r.to);n<=t&&t--,e.splice(--n,2,i.anchor>i.head?ac.range(s,o):ac.range(o,s))}}return new ac(e,t)}}function lc(e,t){for(let n of e.ranges)if(n.to>t)throw new RangeError("Selection points outside of document")}let cc=0;class hc{constructor(e,t,n,i,r){this.combine=e,this.compareInput=t,this.compare=n,this.isStatic=i,this.id=cc++,this.default=e([]),this.extensions="function"==typeof r?r(this):r}get reader(){return this}static define(e={}){return new hc(e.combine||(e=>e),e.compareInput||((e,t)=>e===t),e.compare||(e.combine?(e,t)=>e===t:uc),!!e.static,e.enables)}of(e){return new pc([],this,0,e)}compute(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new pc(e,this,1,t)}computeN(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new pc(e,this,2,t)}from(e,t){return t||(t=e=>e),this.compute([e],(n=>t(n.field(e))))}}function uc(e,t){return e==t||e.length==t.length&&e.every(((e,n)=>e===t[n]))}class pc{constructor(e,t,n,i){this.dependencies=e,this.facet=t,this.type=n,this.value=i,this.id=cc++}dynamicSlot(e){var t;let n=this.value,i=this.facet.compareInput,r=this.id,o=e[r]>>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[o]=n(e),1),update(e,t){if(a&&t.docChanged||l&&(t.docChanged||t.selection)||fc(e,c)){let t=n(e);if(s?!dc(t,e.values[o],i):!i(t,e.values[o]))return e.values[o]=t,1}return 0},reconfigure:(e,t)=>{let a,l=t.config.address[r];if(null!=l){let r=Tc(t,l);if(this.dependencies.every((n=>n instanceof hc?t.facet(n)===e.facet(n):!(n instanceof yc)||t.field(n,!1)==e.field(n,!1)))||(s?dc(a=n(e),r,i):i(a=n(e),r)))return e.values[o]=r,0}else a=n(e);return e.values[o]=a,1}}}}function dc(e,t,n){if(e.length!=t.length)return!1;for(let i=0;i<e.length;i++)if(!n(e[i],t[i]))return!1;return!0}function fc(e,t){let n=!1;for(let i of t)1&Ac(e,i)&&(n=!0);return n}function gc(e,t,n){let i=n.map((t=>e[t.id])),r=n.map((e=>e.type)),o=i.filter((e=>!(1&e))),s=e[t.id]>>1;function a(e){let n=[];for(let t=0;t<i.length;t++){let o=Tc(e,i[t]);if(2==r[t])for(let e of o)n.push(e);else n.push(o)}return t.combine(n)}return{create(e){for(let t of i)Ac(e,t);return e.values[s]=a(e),1},update(e,n){if(!fc(e,o))return 0;let i=a(e);return t.compare(i,e.values[s])?0:(e.values[s]=i,1)},reconfigure(e,r){let o=fc(e,i),l=r.config.facets[t.id],c=r.facet(t);if(l&&!o&&uc(n,l))return e.values[s]=c,0;let h=a(e);return t.compare(h,c)?(e.values[s]=c,0):(e.values[s]=h,1)}}}const mc=hc.define({static:!0});class yc{constructor(e,t,n,i,r){this.id=e,this.createF=t,this.updateF=n,this.compareF=i,this.spec=r,this.provides=void 0}static define(e){let t=new yc(cc++,e.create,e.update,e.compare||((e,t)=>e===t),e);return e.provide&&(t.provides=e.provide(t)),t}create(e){let t=e.facet(mc).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],r=this.updateF(i,n);return this.compareF(i,r)?0:(e.values[t]=r,1)},reconfigure:(e,n)=>{let i,r=e.facet(mc),o=n.facet(mc);return(i=r.find((e=>e.field==this)))&&i!=o.find((e=>e.field==this))?(e.values[t]=i.create(e),1):null!=n.config.address[this.id]?(e.values[t]=n.field(this),0):(e.values[t]=this.create(e),1)}}}init(e){return[this,mc.of({field:this,create:e})]}get extension(){return this}}const vc=4,wc=3,bc=2,xc=1;function _c(e){return t=>new Sc(t,e)}const kc={highest:_c(0),high:_c(xc),default:_c(bc),low:_c(wc),lowest:_c(vc)};class Sc{constructor(e,t){this.inner=e,this.prec=t}}class Cc{of(e){return new Ec(this,e)}reconfigure(e){return Cc.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}}class Ec{constructor(e,t){this.compartment=e,this.inner=t}}class Mc{constructor(e,t,n,i,r,o){for(this.base=e,this.compartments=t,this.dynamicSlots=n,this.address=i,this.staticValues=r,this.facets=o,this.statusTemplate=[];this.statusTemplate.length<n.length;)this.statusTemplate.push(0)}staticFacet(e){let t=this.address[e.id];return null==t?e.default:this.staticValues[t>>1]}static resolve(e,t,n){let i=[],r=Object.create(null),o=new Map;for(let n of function(e,t,n){let i=[[],[],[],[],[]],r=new Map;function o(e,s){let a=r.get(e);if(null!=a){if(a<=s)return;let t=i[a].indexOf(e);t>-1&&i[a].splice(t,1),e instanceof Ec&&n.delete(e.compartment)}if(r.set(e,s),Array.isArray(e))for(let t of e)o(t,s);else if(e instanceof Ec){if(n.has(e.compartment))throw new RangeError("Duplicate use of compartment in extensions");let i=t.get(e.compartment)||e.inner;n.set(e.compartment,i),o(i,s)}else if(e instanceof Sc)o(e.inner,e.prec);else if(e instanceof yc)i[s].push(e),e.provides&&o(e.provides,s);else if(e instanceof pc)i[s].push(e),e.facet.extensions&&o(e.facet.extensions,bc);else{let t=e.extension;if(!t)throw new Error(`Unrecognized extension value in extension set (${e}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);o(t,s)}}return o(e,bc),i.reduce(((e,t)=>e.concat(t)))}(e,t,o))n instanceof yc?i.push(n):(r[n.facet.id]||(r[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 r){let t=r[e],i=t[0].facet,o=c&&c[e]||[];if(t.every((e=>0==e.type)))if(s[i.id]=a.length<<1|1,uc(o,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=>gc(e,i,t)))}}let h=l.map((e=>e(s)));return new Mc(e,o,h,s,a,r)}}function Ac(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 r=e.computeSlot(e,e.config.dynamicSlots[n]);return e.status[n]=2|r}function Tc(e,t){return 1&t?e.config.staticValues[t>>1]:e.values[t>>1]}const Rc=hc.define(),Dc=hc.define({combine:e=>e.some((e=>e)),static:!0}),Oc=hc.define({combine:e=>e.length?e[0]:void 0,static:!0}),Nc=hc.define(),qc=hc.define(),Lc=hc.define(),Bc=hc.define({combine:e=>!!e.length&&e[0]});class Pc{constructor(e,t){this.type=e,this.value=t}static define(){return new Ic}}class Ic{of(e){return new Pc(this,e)}}class Fc{constructor(e){this.map=e}of(e){return new jc(this,e)}}class jc{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 jc(this.type,t)}is(e){return this.type==e}static define(e={}){return new Fc(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}}jc.reconfigure=jc.define(),jc.appendConfig=jc.define();class Vc{constructor(e,t,n,i,r,o){this.startState=e,this.changes=t,this.selection=n,this.effects=i,this.annotations=r,this.scrollIntoView=o,this._doc=null,this._state=null,n&&lc(n,t.newLength),r.some((e=>e.type==Vc.time))||(this.annotations=r.concat(Vc.time.of(Date.now())))}static create(e,t,n,i,r,o){return new Vc(e,t,n,i,r,o)}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(Vc.userEvent);return!(!t||!(t==e||t.length>e.length&&t.slice(0,e.length)==e&&"."==t[e.length]))}}function $c(e,t){let n=[];for(let i=0,r=0;;){let o,s;if(i<e.length&&(r==t.length||t[r]>=e[i]))o=e[i++],s=e[i++];else{if(!(r<t.length))return n;o=t[r++],s=t[r++]}!n.length||n[n.length-1]<o?n.push(o,s):n[n.length-1]<s&&(n[n.length-1]=s)}}function zc(e,t,n){var i;let r,o,s;return n?(r=t.changes,o=Zl.empty(t.changes.length),s=e.changes.compose(t.changes)):(r=t.changes.map(e.changes),o=e.changes.mapDesc(t.changes,!0),s=e.changes.compose(r)),{changes:s,selection:t.selection?t.selection.map(o):null===(i=e.selection)||void 0===i?void 0:i.map(r),effects:jc.mapEffects(e.effects,r).concat(jc.mapEffects(t.effects,o)),annotations:e.annotations.length?e.annotations.concat(t.annotations):t.annotations,scrollIntoView:e.scrollIntoView||t.scrollIntoView}}function Wc(e,t,n){let i=t.selection,r=Gc(t.annotations);return t.userEvent&&(r=r.concat(Vc.userEvent.of(t.userEvent))),{changes:t.changes instanceof Zl?t.changes:Zl.of(t.changes||[],n,e.facet(Oc)),selection:i&&(i instanceof ac?i:ac.single(i.anchor,i.head)),effects:Gc(t.effects),annotations:r,scrollIntoView:!!t.scrollIntoView}}function Hc(e,t,n){let i=Wc(e,t.length?t[0]:{},e.doc.length);t.length&&!1===t[0].filter&&(n=!1);for(let r=1;r<t.length;r++){!1===t[r].filter&&(n=!1);let o=!!t[r].sequential;i=zc(i,Wc(e,t[r],o?i.changes.newLength:e.doc.length),o)}let r=Vc.create(e,i.changes,i.selection,i.effects,i.annotations,i.scrollIntoView);return function(e){let t=e.startState,n=t.facet(Lc),i=e;for(let r=n.length-1;r>=0;r--){let o=n[r](e);o&&Object.keys(o).length&&(i=zc(i,Wc(t,o,e.changes.newLength),!0))}return i==e?e:Vc.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(Nc)){let t=i(e);if(!1===t){n=!1;break}Array.isArray(t)&&(n=!0===n?t:$c(n,t))}if(!0!==n){let i,r;if(!1===n)r=e.changes.invertedDesc,i=Zl.empty(t.doc.length);else{let t=e.changes.filter(n);i=t.changes,r=t.filtered.mapDesc(t.changes).invertedDesc}e=Vc.create(t,i,e.selection&&e.selection.map(r),jc.mapEffects(e.effects,r),e.annotations,e.scrollIntoView)}let i=t.facet(qc);for(let n=i.length-1;n>=0;n--){let r=i[n](e);e=r instanceof Vc?r:Array.isArray(r)&&1==r.length&&r[0]instanceof Vc?r[0]:Hc(t,Gc(r),!1)}return e}(r):r)}Vc.time=Pc.define(),Vc.userEvent=Pc.define(),Vc.addToHistory=Pc.define(),Vc.remote=Pc.define();const Uc=[];function Gc(e){return null==e?Uc:Array.isArray(e)?e:[e]}var Kc=function(e){return e[e.Word=0]="Word",e[e.Space=1]="Space",e[e.Other=2]="Other",e}(Kc||(Kc={}));const Xc=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let Yc;try{Yc=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch(e){}function Jc(e){return t=>{if(!/\S/.test(t))return Kc.Space;if(function(e){if(Yc)return Yc.test(e);for(let t=0;t<e.length;t++){let n=e[t];if(/\w/.test(n)||n>"€"&&(n.toUpperCase()!=n.toLowerCase()||Xc.test(n)))return!0}return!1}(t))return Kc.Word;for(let n=0;n<e.length;n++)if(t.indexOf(e[n])>-1)return Kc.Word;return Kc.Other}}class Qc{constructor(e,t,n,i,r,o){this.config=e,this.doc=t,this.selection=n,this.values=i,this.status=e.statusTemplate.slice(),this.computeSlot=r,o&&(o._state=this);for(let e=0;e<this.config.dynamicSlots.length;e++)Ac(this,e<<1);this.computeSlot=null}field(e,t=!0){let n=this.config.address[e.id];if(null!=n)return Ac(this,n),Tc(this,n);if(t)throw new RangeError("Field is not present in this state")}update(...e){return Hc(this,e,!0)}applyTransaction(e){let t,n=this.config,{base:i,compartments:r}=n;for(let t of e.effects)t.is(Cc.reconfigure)?(n&&(r=new Map,n.compartments.forEach(((e,t)=>r.set(t,e))),n=null),r.set(t.value.compartment,t.value.extension)):t.is(jc.reconfigure)?(n=null,i=t.value):t.is(jc.appendConfig)&&(n=null,i=Gc(i).concat(t.value));if(n)t=e.startState.values.slice();else{n=Mc.resolve(i,r,this),t=new Qc(n,this.doc,this.selection,n.dynamicSlots.map((()=>null)),((e,t)=>t.reconfigure(e,this)),null).values}let o=e.startState.facet(Dc)?e.newSelection:e.newSelection.asSingle();new Qc(n,e.newDoc,o,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:ac.cursor(t.from+e.length)})))}changeByRange(e){let t=this.selection,n=e(t.ranges[0]),i=this.changes(n.changes),r=[n.range],o=Gc(n.effects);for(let n=1;n<t.ranges.length;n++){let s=e(t.ranges[n]),a=this.changes(s.changes),l=a.map(i);for(let e=0;e<n;e++)r[e]=r[e].map(l);let c=i.mapDesc(a,!0);r.push(s.range.map(c)),i=i.compose(l),o=jc.mapEffects(o,l).concat(jc.mapEffects(Gc(s.effects),c))}return{changes:i,selection:ac.create(r,t.mainIndex),effects:o}}changes(e=[]){return e instanceof Zl?e:Zl.of(e,this.doc.length,this.facet(Qc.lineSeparator))}toText(e){return Fl.of(e.split(this.facet(Qc.lineSeparator)||Yl))}sliceDoc(e=0,t=this.doc.length){return this.doc.sliceString(e,t,this.lineBreak)}facet(e){let t=this.config.address[e.id];return null==t?e.default:(Ac(this,t),Tc(this,t))}toJSON(e){let t={doc:this.sliceDoc(),selection:this.selection.toJSON()};if(e)for(let n in e){let i=e[n];i instanceof yc&&null!=this.config.address[i.id]&&(t[n]=i.spec.toJSON(this.field(e[n]),this))}return t}static fromJSON(e,t={},n){if(!e||"string"!=typeof e.doc)throw new RangeError("Invalid JSON representation for EditorState");let i=[];if(n)for(let t in n)if(Object.prototype.hasOwnProperty.call(e,t)){let r=n[t],o=e[t];i.push(r.init((e=>r.spec.fromJSON(o,e))))}return Qc.create({doc:e.doc,selection:ac.fromJSON(e.selection),extensions:t.extensions?i.concat([t.extensions]):i})}static create(e={}){let t=Mc.resolve(e.extensions||[],new Map),n=e.doc instanceof Fl?e.doc:Fl.of((e.doc||"").split(t.staticFacet(Qc.lineSeparator)||Yl)),i=e.selection?e.selection instanceof ac?e.selection:ac.single(e.selection.anchor,e.selection.head):ac.single(0);return lc(i,n.length),t.staticFacet(Dc)||(i=i.asSingle()),new Qc(t,n,i,t.dynamicSlots.map((()=>null)),((e,t)=>t.create(e)),null)}get tabSize(){return this.facet(Qc.tabSize)}get lineBreak(){return this.facet(Qc.lineSeparator)||"\n"}get readOnly(){return this.facet(Bc)}phrase(e,...t){for(let t of this.facet(Qc.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 r of this.facet(Rc))for(let o of r(this,t,n))Object.prototype.hasOwnProperty.call(o,e)&&i.push(o[e]);return i}charCategorizer(e){return Jc(this.languageDataAt("wordChars",e).join(""))}wordAt(e){let{text:t,from:n,length:i}=this.doc.lineAt(e),r=this.charCategorizer(e),o=e-n,s=e-n;for(;o>0;){let e=Xl(t,o,!1);if(r(t.slice(e,o))!=Kc.Word)break;o=e}for(;s<i;){let e=Xl(t,s);if(r(t.slice(s,e))!=Kc.Word)break;s=e}return o==s?null:ac.range(o+n,s+n)}}function Zc(e,t,n={}){let i={};for(let t of e)for(let e of Object.keys(t)){let r=t[e],o=i[e];if(void 0===o)i[e]=r;else if(o===r||void 0===r);else{if(!Object.hasOwnProperty.call(n,e))throw new Error("Config merge conflict for field "+e);i[e]=n[e](o,r)}}for(let e in t)void 0===i[e]&&(i[e]=t[e]);return i}Qc.allowMultipleSelections=Dc,Qc.tabSize=hc.define({combine:e=>e.length?e[0]:4}),Qc.lineSeparator=Oc,Qc.readOnly=Bc,Qc.phrases=hc.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]))}}),Qc.languageData=Rc,Qc.changeFilter=Nc,Qc.transactionFilter=qc,Qc.transactionExtender=Lc,Cc.reconfigure=jc.define();class eh{eq(e){return this==e}range(e,t=e){return th.create(e,t,this)}}eh.prototype.startSide=eh.prototype.endSide=0,eh.prototype.point=!1,eh.prototype.mapMode=Jl.TrackDel;let th=class e{constructor(e,t,n){this.from=e,this.to=t,this.value=n}static create(t,n,i){return new e(t,n,i)}};function nh(e,t){return e.from-t.from||e.value.startSide-t.value.startSide}class ih{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 r=n?this.to:this.from;for(let o=i,s=r.length;;){if(o==s)return o;let i=o+s>>1,a=r[i]-e||(n?this.value[i].endSide:this.value[i].startSide)-t;if(i==o)return a>=0?o:s;a>=0?s=i:o=i+1}}between(e,t,n,i){for(let r=this.findIndex(t,-1e9,!0),o=this.findIndex(n,1e9,!1,r);r<o;r++)if(!1===i(this.from[r]+e,this.to[r]+e,this.value[r]))return!1}map(e,t){let n=[],i=[],r=[],o=-1,s=-1;for(let a=0;a<this.value.length;a++){let l,c,h=this.value[a],u=this.from[a]+e,p=this.to[a]+e;if(u==p){let e=t.mapPos(u,h.startSide,h.mapMode);if(null==e)continue;if(l=c=e,h.startSide!=h.endSide&&(c=t.mapPos(u,h.endSide),c<l))continue}else if(l=t.mapPos(u,h.startSide),c=t.mapPos(p,h.endSide),l>c||l==c&&h.startSide>0&&h.endSide<=0)continue;(c-l||h.endSide-h.startSide)<0||(o<0&&(o=l),h.point&&(s=Math.max(s,c-l)),n.push(h),i.push(l-o),r.push(c-o))}return{mapped:n.length?new ih(i,r,n,s):null,pos:o}}}class rh{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 rh(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:r=this.length}=e,o=e.filter;if(0==t.length&&!o)return this;if(n&&(t=t.slice().sort(nh)),this.isEmpty)return t.length?rh.of(t):this;let s=new ah(this,null,-1).goto(0),a=0,l=[],c=new oh;for(;s.value||a<t.length;)if(a<t.length&&(s.from-t[a].from||s.startSide-t[a].value.startSide)>=0){let e=t[a++];c.addInner(e.from,e.to,e.value)||l.push(e)}else 1==s.rangeIndex&&s.chunkIndex<this.chunk.length&&(a==t.length||this.chunkEnd(s.chunkIndex)<t[a].from)&&(!o||i>this.chunkEnd(s.chunkIndex)||r<this.chunkPos[s.chunkIndex])&&c.addChunk(this.chunkPos[s.chunkIndex],this.chunk[s.chunkIndex])?s.nextChunk():((!o||i>s.to||r<s.from||o(s.from,s.to,s.value))&&(c.addInner(s.from,s.to,s.value)||l.push(th.create(s.from,s.to,s.value))),s.next());return c.finishInner(this.nextLayer.isEmpty&&!l.length?rh.empty:this.nextLayer.update({add:l,filter:o,filterFrom:i,filterTo:r}))}map(e){if(e.empty||this.isEmpty)return this;let t=[],n=[],i=-1;for(let r=0;r<this.chunk.length;r++){let o=this.chunkPos[r],s=this.chunk[r],a=e.touchesRange(o,o+s.length);if(!1===a)i=Math.max(i,s.maxPoint),t.push(s),n.push(e.mapPos(o));else if(!0===a){let{mapped:r,pos:a}=s.map(o,e);r&&(i=Math.max(i,r.maxPoint),t.push(r),n.push(a))}}let r=this.nextLayer.map(e);return 0==t.length?r:new rh(n,t,r||rh.empty,i)}between(e,t,n){if(!this.isEmpty){for(let i=0;i<this.chunk.length;i++){let r=this.chunkPos[i],o=this.chunk[i];if(t>=r&&e<=r+o.length&&!1===o.between(r,e-r,t-r,n))return}this.nextLayer.between(e,t,n)}}iter(e=0){return lh.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,t=0){return lh.from(e).goto(t)}static compare(e,t,n,i,r=-1){let o=e.filter((e=>e.maxPoint>0||!e.isEmpty&&e.maxPoint>=r)),s=t.filter((e=>e.maxPoint>0||!e.isEmpty&&e.maxPoint>=r)),a=sh(o,s,n),l=new hh(o,a,r),c=new hh(s,a,r);n.iterGaps(((e,t,n)=>uh(l,e,c,t,n,i))),n.empty&&0==n.length&&uh(l,0,c,0,0,i)}static eq(e,t,n=0,i){null==i&&(i=999999999);let r=e.filter((e=>!e.isEmpty&&t.indexOf(e)<0)),o=t.filter((t=>!t.isEmpty&&e.indexOf(t)<0));if(r.length!=o.length)return!1;if(!r.length)return!0;let s=sh(r,o),a=new hh(r,s,0).goto(n),l=new hh(o,s,0).goto(n);for(;;){if(a.to!=l.to||!ph(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,r=-1){let o=new hh(e,null,r).goto(t),s=t,a=o.openStart;for(;;){let e=Math.min(o.to,n);if(o.point){let n=o.activeForPoint(o.to),r=o.pointFrom<t?n.length+1:o.point.startSide<0?n.length:Math.min(n.length,a);i.point(s,e,o.point,n,r,o.pointRank),a=Math.min(o.openEnd(e),n.length)}else e>s&&(i.span(s,e,o.active,a),a=o.openEnd(e));if(o.to>n)return a+(o.point&&o.to>n?1:0);s=o.to,o.next()}}static of(e,t=!1){let n=new oh;for(let i of e instanceof th?[e]:t?function(e){if(e.length>1)for(let t=e[0],n=1;n<e.length;n++){let i=e[n];if(nh(t,i)>0)return e.slice().sort(nh);t=i}return e}(e):e)n.add(i.from,i.to,i.value);return n.finish()}static join(e){if(!e.length)return rh.empty;let t=e[e.length-1];for(let n=e.length-2;n>=0;n--)for(let i=e[n];i!=rh.empty;i=i.nextLayer)t=new rh(i.chunkPos,i.chunk,t,Math.max(i.maxPoint,t.maxPoint));return t}}rh.empty=new rh([],[],null,-1),rh.empty.nextLayer=rh.empty;class oh{finishChunk(e){this.chunks.push(new ih(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 oh)).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(rh.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),0==this.chunks.length)return e;let t=rh.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,t}}function sh(e,t,n){let i=new Map;for(let t of e)for(let e=0;e<t.chunk.length;e++)t.chunk[e].maxPoint<=0&&i.set(t.chunk[e],t.chunkPos[e]);let r=new Set;for(let e of t)for(let t=0;t<e.chunk.length;t++){let o=i.get(e.chunk[t]);null==o||(n?n.mapPos(o):o)!=e.chunkPos[t]||(null==n?void 0:n.touchesRange(o,o+e.chunk[t].length))||r.add(e.chunk[t])}return r}class ah{constructor(e,t,n,i=0){this.layer=e,this.skip=t,this.minPoint=n,this.rank=i}get startSide(){return this.value?this.value.startSide:0}get endSide(){return this.value?this.value.endSide:0}goto(e,t=-1e9){return this.chunkIndex=this.rangeIndex=0,this.gotoInner(e,t,!1),this}gotoInner(e,t,n){for(;this.chunkIndex<this.layer.chunk.length;){let t=this.layer.chunk[this.chunkIndex];if(!(this.skip&&this.skip.has(t)||this.layer.chunkEnd(this.chunkIndex)<e||t.maxPoint<this.minPoint))break;this.chunkIndex++,n=!1}if(this.chunkIndex<this.layer.chunk.length){let i=this.layer.chunk[this.chunkIndex].findIndex(e-this.layer.chunkPos[this.chunkIndex],t,!0);(!n||this.rangeIndex<i)&&this.setRangeIndex(i)}this.next()}forward(e,t){(this.to-e||this.endSide-t)<0&&this.gotoInner(e,t,!0)}next(){for(;;){if(this.chunkIndex==this.layer.chunk.length){this.from=this.to=1e9,this.value=null;break}{let e=this.layer.chunkPos[this.chunkIndex],t=this.layer.chunk[this.chunkIndex],n=e+t.from[this.rangeIndex];if(this.from=n,this.to=e+t.to[this.rangeIndex],this.value=t.value[this.rangeIndex],this.setRangeIndex(this.rangeIndex+1),this.minPoint<0||this.value.point&&this.to-this.from>=this.minPoint)break}}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex<this.layer.chunk.length&&this.skip.has(this.layer.chunk[this.chunkIndex]);)this.chunkIndex++;this.rangeIndex=0}else this.rangeIndex=e}nextChunk(){this.chunkIndex++,this.rangeIndex=0,this.next()}compare(e){return this.from-e.from||this.startSide-e.startSide||this.rank-e.rank||this.to-e.to||this.endSide-e.endSide}}class lh{constructor(e){this.heap=e}static from(e,t=null,n=-1){let i=[];for(let r=0;r<e.length;r++)for(let o=e[r];!o.isEmpty;o=o.nextLayer)o.maxPoint>=n&&i.push(new ah(o,t,n,r));return 1==i.length?i[0]:new lh(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--)ch(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--)ch(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(),ch(this.heap,0)}}}function ch(e,t){for(let n=e[t];;){let i=1+(t<<1);if(i>=e.length)break;let r=e[i];if(i+1<e.length&&r.compare(e[i+1])>=0&&(r=e[i+1],i++),n.compare(r)<0)break;e[i]=n,e[t]=r,t=i}}class hh{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=lh.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){dh(this.active,e),dh(this.activeTo,e),dh(this.activeRank,e),this.minActive=gh(this.active,this.activeTo)}addActive(e){let t=0,{value:n,to:i,rank:r}=this.cursor;for(;t<this.activeRank.length&&(r-this.activeRank[t]||i-this.activeTo[t])>0;)t++;fh(this.active,t,n),fh(this.activeTo,t,i),fh(this.activeRank,t,r),e&&fh(e,t,this.cursor.from),this.minActive=gh(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&&dh(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<this.cursor.to)){this.point=e,this.pointFrom=this.cursor.from,this.pointRank=this.cursor.rank,this.to=this.cursor.to,this.endSide=e.endSide,this.cursor.next(),this.forward(this.to,this.endSide);break}this.cursor.next()}else this.addActive(n),this.cursor.next()}}}if(n){this.openStart=0;for(let t=n.length-1;t>=0&&n[t]<e;t--)this.openStart++}}activeForPoint(e){if(!this.active.length)return this.active;let t=[];for(let n=this.active.length-1;n>=0&&!(this.activeRank[n]<this.pointRank);n--)(this.activeTo[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 uh(e,t,n,i,r,o){e.goto(t),n.goto(i);let s=i+r,a=i,l=i-t;for(;;){let t=e.to+l-n.to,i=t||e.endSide-n.endSide,r=i<0?e.to+l:n.to,c=Math.min(r,s);if(e.point||n.point?e.point&&n.point&&(e.point==n.point||e.point.eq(n.point))&&ph(e.activeForPoint(e.to),n.activeForPoint(n.to))||o.comparePoint(a,c,e.point,n.point):c>a&&!ph(e.active,n.active)&&o.compareRange(a,c,e.active,n.active),r>s)break;(t||e.openEnd!=n.openEnd)&&o.boundChange&&o.boundChange(r),a=r,i<=0&&e.next(),i>=0&&n.next()}}function ph(e,t){if(e.length!=t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!=t[n]&&!e[n].eq(t[n]))return!1;return!0}function dh(e,t){for(let n=t,i=e.length-1;n<i;n++)e[n]=e[n+1];e.pop()}function fh(e,t,n){for(let n=e.length-1;n>=t;n--)e[n+1]=e[n];e[t]=n}function gh(e,t){let n=-1,i=1e9;for(let r=0;r<t.length;r++)(t[r]-i||e[r].endSide-e[n].endSide)<0&&(n=r,i=t[r]);return n}const mh="undefined"==typeof Symbol?"__ͼ":Symbol.for("ͼ"),yh="undefined"==typeof Symbol?"__styleSet"+Math.floor(1e8*Math.random()):Symbol("styleSet"),vh="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:{};class wh{constructor(e,t){this.rules=[];let{finish:n}=t||{};function i(e){return/^@/.test(e)?[e]:e.split(/,\s*/)}function r(e,t,o,s){let a=[],l=/^@(\w+)\b/.exec(e[0]),c=l&&"keyframes"==l[1];if(l&&null==t)return o.push(e[0]+";");for(let n in t){let s=t[n];if(/&/.test(n))r(n.split(/,\s*/).map((t=>e.map((e=>t.replace(/&/,e))))).reduce(((e,t)=>e.concat(t))),s,o);else if(s&&"object"==typeof s){if(!l)throw new RangeError("The value of a property ("+n+") should be a primitive value.");r(i(n),s,a,c)}else null!=s&&a.push(n.replace(/_.*/,"").replace(/[A-Z]/g,(e=>"-"+e.toLowerCase()))+": "+s+";")}(a.length||c)&&o.push((!n||l||s?e:e.map(n)).join(", ")+" {"+a.join(" ")+"}")}for(let t in e)r(i(t),e[t],this.rules)}getRules(){return this.rules.join("\n")}static newName(){let e=vh[mh]||1;return vh[mh]=e+1,"ͼ"+e.toString(36)}static mount(e,t,n){let i=e[yh],r=n&&n.nonce;i?r&&i.setNonce(r):i=new xh(e,r),i.mount(Array.isArray(t)?t:[t],e)}}let bh=new Map;class xh{constructor(e,t){let n=e.ownerDocument||e,i=n.defaultView;if(!e.head&&e.adoptedStyleSheets&&i.CSSStyleSheet){let t=bh.get(n);if(t)return e[yh]=t;this.sheet=new i.CSSStyleSheet,bh.set(n,this)}else this.styleTag=n.createElement("style"),t&&this.styleTag.setAttribute("nonce",t);this.modules=[],e[yh]=this}mount(e,t){let n=this.sheet,i=0,r=0;for(let t=0;t<e.length;t++){let o=e[t],s=this.modules.indexOf(o);if(s<r&&s>-1&&(this.modules.splice(s,1),r--,s=-1),-1==s){if(this.modules.splice(r++,0,o),n)for(let e=0;e<o.rules.length;e++)n.insertRule(o.rules[e],i++)}else{for(;r<s;)i+=this.modules[r++].rules.length;i+=o.rules.length,r++}}if(n)t.adoptedStyleSheets.indexOf(this.sheet)<0&&(t.adoptedStyleSheets=[this.sheet,...t.adoptedStyleSheets]);else{let e="";for(let t=0;t<this.modules.length;t++)e+=this.modules[t].getRules()+"\n";this.styleTag.textContent=e;let n=t.head||t;this.styleTag.parentNode!=n&&n.insertBefore(this.styleTag,n.firstChild)}}setNonce(e){this.styleTag&&this.styleTag.getAttribute("nonce")!=e&&this.styleTag.setAttribute("nonce",e)}}for(var _h={8:"Backspace",9:"Tab",10:"Enter",12:"NumLock",13:"Enter",16:"Shift",17:"Control",18:"Alt",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",44:"PrintScreen",45:"Insert",46:"Delete",59:";",61:"=",91:"Meta",92:"Meta",106:"*",107:"+",108:",",109:"-",110:".",111:"/",144:"NumLock",145:"ScrollLock",160:"Shift",161:"Shift",162:"Control",163:"Control",164:"Alt",165:"Alt",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},kh={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},Sh=0;Sh<10;Sh++)_h[48+Sh]=_h[96+Sh]=String(Sh);for(Sh=1;Sh<=24;Sh++)_h[Sh+111]="F"+Sh;for(Sh=65;Sh<=90;Sh++)_h[Sh]=String.fromCharCode(Sh+32),kh[Sh]=String.fromCharCode(Sh);for(var Ch in _h)kh.hasOwnProperty(Ch)||(kh[Ch]=_h[Ch]);let Eh="undefined"!=typeof navigator?navigator:{userAgent:"",vendor:"",platform:""},Mh="undefined"!=typeof document?document:{documentElement:{style:{}}};const Ah=/Edge\/(\d+)/.exec(Eh.userAgent),Th=/MSIE \d/.test(Eh.userAgent),Rh=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(Eh.userAgent),Dh=!!(Th||Rh||Ah),Oh=!Dh&&/gecko\/(\d+)/i.test(Eh.userAgent),Nh=!Dh&&/Chrome\/(\d+)/.exec(Eh.userAgent),qh="webkitFontSmoothing"in Mh.documentElement.style,Lh=!Dh&&/Apple Computer/.test(Eh.vendor),Bh=Lh&&(/Mobile\/\w+/.test(Eh.userAgent)||Eh.maxTouchPoints>2);var Ph={mac:Bh||/Mac/.test(Eh.platform),windows:/Win/.test(Eh.platform),linux:/Linux|X11/.test(Eh.platform),ie:Dh,ie_version:Th?Mh.documentMode||6:Rh?+Rh[1]:Ah?+Ah[1]:0,gecko:Oh,gecko_version:Oh?+(/Firefox\/(\d+)/.exec(Eh.userAgent)||[0,0])[1]:0,chrome:!!Nh,chrome_version:Nh?+Nh[1]:0,ios:Bh,android:/Android\b/.test(Eh.userAgent),webkit:qh,webkit_version:qh?+(/\bAppleWebKit\/(\d+)/.exec(Eh.userAgent)||[0,0])[1]:0,safari:Lh,safari_version:Lh?+(/\bVersion\/(\d+(\.\d+)?)/.exec(Eh.userAgent)||[0,0])[1]:0,tabSize:null!=Mh.documentElement.style.tabSize?"tab-size":"-moz-tab-size"};function Ih(e,t){for(let n in e)"class"==n&&t.class?t.class+=" "+e.class:"style"==n&&t.style?t.style+=";"+e.style:t[n]=e[n];return t}const Fh=Object.create(null);function jh(e,t,n){if(e==t)return!0;e||(e=Fh),t||(t=Fh);let i=Object.keys(e),r=Object.keys(t);if(i.length-0!=r.length-0)return!1;for(let o of i)if(o!=n&&(-1==r.indexOf(o)||e[o]!==t[o]))return!1;return!0}function Vh(e,t,n){let i=!1;if(t)for(let r in t)n&&r in n||(i=!0,"style"==r?e.style.cssText="":e.removeAttribute(r));if(n)for(let r in n)t&&t[r]==n[r]||(i=!0,"style"==r?e.style.cssText=n[r]:e.setAttribute(r,n[r]));return i}function $h(e){let t=Object.create(null);for(let n=0;n<e.attributes.length;n++){let i=e.attributes[n];t[i.name]=i.value}return t}class zh{eq(e){return!1}updateDOM(e,t){return!1}compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}get estimatedHeight(){return-1}get lineBreaks(){return 0}ignoreEvent(e){return!0}coordsAt(e,t,n){return null}get isHidden(){return!1}get editable(){return!1}destroy(e){}}var Wh=function(e){return e[e.Text=0]="Text",e[e.WidgetBefore=1]="WidgetBefore",e[e.WidgetAfter=2]="WidgetAfter",e[e.WidgetRange=3]="WidgetRange",e}(Wh||(Wh={}));class Hh extends eh{constructor(e,t,n,i){super(),this.startSide=e,this.endSide=t,this.widget=n,this.spec=i}get heightRelevant(){return!1}static mark(e){return new Uh(e)}static widget(e){let t=Math.max(-1e4,Math.min(1e4,e.side||0)),n=!!e.block;return t+=n&&!e.inlineOrder?t>0?3e8:-4e8:t>0?1e8:-1e8,new Kh(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:r,end:o}=Xh(e,i);t=(r?i?-3e8:-1:5e8)-1,n=1+(o?i?2e8:1:-6e8)}return new Kh(e,t,n,i,e.widget||null,!0)}static line(e){return new Gh(e)}static set(e,t=!1){return rh.of(e,t)}hasHeight(){return!!this.widget&&this.widget.estimatedHeight>-1}}Hh.none=rh.empty;class Uh extends Hh{constructor(e){let{start:t,end:n}=Xh(e);super(t?-1:5e8,n?1:-6e8,null,e),this.tagName=e.tagName||"span",this.attrs=e.class&&e.attributes?Ih(e.attributes,{class:e.class}):e.class?{class:e.class}:e.attributes||Fh}eq(e){return this==e||e instanceof Uh&&this.tagName==e.tagName&&jh(this.attrs,e.attrs)}range(e,t=e){if(e>=t)throw new RangeError("Mark decorations may not be empty");return super.range(e,t)}}Uh.prototype.point=!1;class Gh extends Hh{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof Gh&&this.spec.class==e.spec.class&&jh(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)}}Gh.prototype.mapMode=Jl.TrackBefore,Gh.prototype.point=!0;class Kh extends Hh{constructor(e,t,n,i,r,o){super(t,n,r,e),this.block=i,this.isReplace=o,this.mapMode=i?t<=0?Jl.TrackBefore:Jl.TrackAfter:Jl.TrackDel}get type(){return this.startSide!=this.endSide?Wh.WidgetRange:this.startSide<=0?Wh.WidgetBefore:Wh.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(e){return e instanceof Kh&&(t=this.widget,n=e.widget,t==n||!!(t&&n&&t.compare(n)))&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide;var t,n}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 Xh(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 Yh(e,t,n,i=0){let r=n.length-1;r>=0&&n[r]+i>=e?n[r]=Math.max(n[r],t):n.push(e,t)}Kh.prototype.point=!0;class Jh extends eh{constructor(e,t){super(),this.tagName=e,this.attributes=t}eq(e){return e==this||e instanceof Jh&&this.tagName==e.tagName&&jh(this.attributes,e.attributes)}static create(e){return new Jh(e.tagName,e.attributes||Fh)}static set(e,t=!1){return rh.of(e,t)}}function Qh(e){let t;return t=11==e.nodeType?e.getSelection?e:e.ownerDocument:e,t.getSelection()}function Zh(e,t){return!!t&&(e==t||e.contains(1!=t.nodeType?t.parentNode:t))}function eu(e,t){if(!t.anchorNode)return!1;try{return Zh(e,t.anchorNode)}catch(e){return!1}}function tu(e){return 3==e.nodeType?fu(e,0,e.nodeValue.length).getClientRects():1==e.nodeType?e.getClientRects():[]}function nu(e,t,n,i){return!!n&&(ou(e,t,n,i,-1)||ou(e,t,n,i,1))}function iu(e){for(var t=0;;t++)if(!(e=e.previousSibling))return t}function ru(e){return 1==e.nodeType&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(e.nodeName)}function ou(e,t,n,i,r){for(;;){if(e==n&&t==i)return!0;if(t==(r<0?0:su(e))){if("DIV"==e.nodeName)return!1;let n=e.parentNode;if(!n||1!=n.nodeType)return!1;t=iu(e)+(r<0?0:1),e=n}else{if(1!=e.nodeType)return!1;if(1==(e=e.childNodes[t+(r<0?-1:0)]).nodeType&&"false"==e.contentEditable)return!1;t=r<0?su(e):0}}}function su(e){return 3==e.nodeType?e.nodeValue.length:e.childNodes.length}function au(e,t){let n=t?e.left:e.right;return{left:n,right:n,top:e.top,bottom:e.bottom}}function lu(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 cu(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}}Jh.prototype.startSide=Jh.prototype.endSide=-1;class hu{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?su(t):0),n,Math.min(e.focusOffset,n?su(n):0))}set(e,t,n,i){this.anchorNode=e,this.anchorOffset=t,this.focusNode=n,this.focusOffset=i}}let uu,pu=null;function du(e){if(e.setActive)return e.setActive();if(pu)return e.focus(pu);let t=[];for(let n=e;n&&(t.push(n,n.scrollTop,n.scrollLeft),n!=n.ownerDocument);n=n.parentNode);if(e.focus(null==pu?{get preventScroll(){return pu={preventScroll:!0},!0}}:void 0),!pu){pu=!1;for(let e=0;e<t.length;){let n=t[e++],i=t[e++],r=t[e++];n.scrollTop!=i&&(n.scrollTop=i),n.scrollLeft!=r&&(n.scrollLeft=r)}}}function fu(e,t,n=t){let i=uu||(uu=document.createRange());return i.setEnd(e,n),i.setStart(e,t),i}function gu(e,t,n,i){let r={key:t,code:t,keyCode:n,which:n,cancelable:!0};i&&({altKey:r.altKey,ctrlKey:r.ctrlKey,shiftKey:r.shiftKey,metaKey:r.metaKey}=i);let o=new KeyboardEvent("keydown",r);o.synthetic=!0,e.dispatchEvent(o);let s=new KeyboardEvent("keyup",r);return s.synthetic=!0,e.dispatchEvent(s),o.defaultPrevented||s.defaultPrevented}function mu(e){return e.scrollTop>Math.max(1,e.scrollHeight-e.clientHeight-4)}function yu(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=su(n)}else{if(!n.parentNode||ru(n))return null;i=iu(n),n=n.parentNode}}}function vu(e,t){for(let n=e,i=t;;){if(3==n.nodeType&&i<n.nodeValue.length)return{node:n,offset:i};if(1==n.nodeType&&i<n.childNodes.length){if("false"==n.contentEditable)return null;n=n.childNodes[i],i=0}else{if(!n.parentNode||ru(n))return null;i=iu(n)+1,n=n.parentNode}}}Ph.safari&&Ph.safari_version>=26&&(pu=!1);class wu{constructor(e,t,n=!0){this.node=e,this.offset=t,this.precise=n}static before(e,t){return new wu(e.parentNode,iu(e),t)}static after(e,t){return new wu(e.parentNode,iu(e)+1,t)}}var bu=function(e){return e[e.LTR=0]="LTR",e[e.RTL=1]="RTL",e}(bu||(bu={}));const xu=bu.LTR,_u=bu.RTL;function ku(e){let t=[];for(let n=0;n<e.length;n++)t.push(1<<+e[n]);return t}const Su=ku("88888888888888888888888888888888888666888888787833333333337888888000000000000000000000000008888880000000000000000000000000088888888888888888888888888888888888887866668888088888663380888308888800000000000000000000000800000000000000000000000000000008"),Cu=ku("4444448826627288999999999992222222222222222222222222222222222222222222222229999999999999999999994444444444644222822222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222999999949999999229989999223333333333"),Eu=Object.create(null),Mu=[];for(let e of["()","[]","{}"]){let t=e.charCodeAt(0),n=e.charCodeAt(1);Eu[t]=n,Eu[n]=-t}function Au(e){return e<=247?Su[e]:1424<=e&&e<=1524?2:1536<=e&&e<=1785?Cu[e-1536]:1774<=e&&e<=2220?4:8192<=e&&e<=8204?256:64336<=e&&e<=65023?4:1}const Tu=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac\ufb50-\ufdff]/;class Ru{get dir(){return this.level%2?_u:xu}constructor(e,t,n){this.from=e,this.to=t,this.level=n}side(e,t){return this.dir==t==e?this.to:this.from}forward(e,t){return e==(this.dir==t)}static find(e,t,n,i){let r=-1;for(let o=0;o<e.length;o++){let s=e[o];if(s.from<=t&&s.to>=t){if(s.level==n)return o;(r<0||(0!=i?i<0?s.from<t:s.to>t:e[r].level>s.level))&&(r=o)}}if(r<0)throw new RangeError("Index out of range");return r}}function Du(e,t){if(e.length!=t.length)return!1;for(let n=0;n<e.length;n++){let i=e[n],r=t[n];if(i.from!=r.from||i.to!=r.to||i.direction!=r.direction||!Du(i.inner,r.inner))return!1}return!0}const Ou=[];function Nu(e,t,n,i,r,o,s){let a=i%2?2:1;if(i%2==r%2)for(let l=t,c=0;l<n;){let t=!0,h=!1;if(c==o.length||l<o[c].from){let e=Ou[l];e!=a&&(t=!1,h=16==e)}let u=t||1!=a?null:[],p=t?i:i+1,d=l;e:for(;;)if(c<o.length&&d==o[c].from){if(h)break e;let f=o[c];if(!t)for(let e=f.to,t=c+1;;){if(e==n)break e;if(!(t<o.length&&o[t].from==e)){if(Ou[e]==a)break e;break}e=o[t++].to}if(c++,u)u.push(f);else{f.from>l&&s.push(new Ru(l,f.from,p)),qu(e,f.direction==xu!=!(p%2)?i+1:i,r,f.inner,f.from,f.to,s),l=f.to}d=f.to}else{if(d==n||(t?Ou[d]!=a:Ou[d]==a))break;d++}u?Nu(e,l,d,i+1,r,u,s):l<d&&s.push(new Ru(l,d,p)),l=d}else for(let l=n,c=o.length;l>t;){let n=!0,h=!1;if(!c||l>o[c-1].to){let e=Ou[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==o[c-1].to){if(h)break e;let f=o[--c];if(!n)for(let e=f.from,n=c;;){if(e==t)break e;if(!n||o[n-1].to!=e){if(Ou[e-1]==a)break e;break}e=o[--n].from}if(u)u.push(f);else{f.to<l&&s.push(new Ru(f.to,l,p)),qu(e,f.direction==xu!=!(p%2)?i+1:i,r,f.inner,f.from,f.to,s),l=f.from}d=f.from}else{if(d==t||(n?Ou[d-1]!=a:Ou[d-1]==a))break;d--}u?Nu(e,d,l,i+1,r,u,s):d<l&&s.push(new Ru(d,l,p)),l=d}}function qu(e,t,n,i,r,o,s){let a=t%2?2:1;!function(e,t,n,i,r){for(let o=0;o<=i.length;o++){let s=o?i[o-1].to:t,a=o<i.length?i[o].from:n,l=o?256:r;for(let t=s,n=l,i=l;t<a;t++){let r=Au(e.charCodeAt(t));512==r?r=n:8==r&&4==i&&(r=16),Ou[t]=4==r?2:r,7&r&&(i=r),n=r}for(let e=s,t=l,i=l;e<a;e++){let r=Ou[e];if(128==r)e<a-1&&t==Ou[e+1]&&24&t?r=Ou[e]=t:Ou[e]=256;else if(64==r){let r=e+1;for(;r<a&&64==Ou[r];)r++;let o=e&&8==t||r<n&&8==Ou[r]?1==i?1:8:256;for(let t=e;t<r;t++)Ou[t]=o;e=r-1}else 8==r&&1==i&&(Ou[e]=1);t=r,7&r&&(i=r)}}}(e,r,o,i,a),function(e,t,n,i,r){let o=1==r?2:1;for(let s=0,a=0,l=0;s<=i.length;s++){let c=s?i[s-1].to:t,h=s<i.length?i[s].from:n;for(let t,n,i,s=c;s<h;s++)if(n=Eu[t=e.charCodeAt(s)])if(n<0){for(let e=a-3;e>=0;e-=3)if(Mu[e+1]==-n){let t=Mu[e+2],n=2&t?r:4&t?1&t?o:r:0;n&&(Ou[s]=Ou[Mu[e]]=n),a=e;break}}else{if(189==Mu.length)break;Mu[a++]=s,Mu[a++]=t,Mu[a++]=l}else if(2==(i=Ou[s])||1==i){let e=i==r;l=e?0:1;for(let t=a-3;t>=0;t-=3){let n=Mu[t+2];if(2&n)break;if(e)Mu[t+2]|=2;else{if(4&n)break;Mu[t+2]|=4}}}}}(e,r,o,i,a),function(e,t,n,i){for(let r=0,o=i;r<=n.length;r++){let s=r?n[r-1].to:e,a=r<n.length?n[r].from:t;for(let l=s;l<a;){let s=Ou[l];if(256==s){let s=l+1;for(;;)if(s==a){if(r==n.length)break;s=n[r++].to,a=r<n.length?n[r].from:t}else{if(256!=Ou[s])break;s++}let c=1==o,h=c==(1==(s<t?Ou[s]:i))?c?1:2:i;for(let t=s,i=r,o=i?n[i-1].to:e;t>l;)t==o&&(t=n[--i].from,o=i?n[i-1].to:e),Ou[--t]=h;l=s}else o=s,l++}}}(r,o,i,a),Nu(e,r,o,t,n,i,s)}function Lu(e){return[new Ru(0,e,0)]}let Bu="";function Pu(e,t,n,i,r){var o;let s=i.head-e.from,a=Ru.find(t,s,null!==(o=i.bidiLevel)&&void 0!==o?o:-1,i.assoc),l=t[a],c=l.side(r,n);if(s==c){let e=a+=r?1:-1;if(e<0||e>=t.length)return null;l=t[a=e],s=l.side(!r,n),c=l.side(r,n)}let h=Xl(e.text,s,l.forward(r,n));(h<l.from||h>l.to)&&(h=c),Bu=e.text.slice(Math.min(s,h),Math.max(s,h));let u=a==(r?t.length-1:0)?null:t[a+(r?1:-1)];return u&&h==c&&u.level+(r?0:1)<l.level?ac.cursor(u.side(!r,n)+e.from,u.forward(r,n)?1:-1,u.level):ac.cursor(h+e.from,l.forward(r,n)?-1:1,l.level)}function Iu(e,t,n){for(let i=t;i<n;i++){let t=Au(e.charCodeAt(i));if(1==t)return xu;if(2==t||4==t)return _u}return xu}const Fu=hc.define(),ju=hc.define(),Vu=hc.define(),$u=hc.define(),zu=hc.define(),Wu=hc.define(),Hu=hc.define(),Uu=hc.define(),Gu=hc.define(),Ku=hc.define({combine:e=>e.some((e=>e))}),Xu=hc.define({combine:e=>e.some((e=>e))}),Yu=hc.define();class Ju{constructor(e,t="nearest",n="nearest",i=5,r=5,o=!1){this.range=e,this.y=t,this.x=n,this.yMargin=i,this.xMargin=r,this.isSnapshot=o}map(e){return e.empty?this:new Ju(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 Ju(ac.cursor(e.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}}const Qu=jc.define({map:(e,t)=>e.map(t)}),Zu=jc.define();function ep(e,t,n){let i=e.facet($u);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 tp=hc.define({combine:e=>!e.length||e[0]});let np=0;const ip=hc.define({combine:e=>e.filter(((t,n)=>{for(let i=0;i<n;i++)if(e[i].plugin==t.plugin)return!1;return!0}))});class rp{constructor(e,t,n,i,r){this.id=e,this.create=t,this.domEventHandlers=n,this.domEventObservers=i,this.baseExtensions=r(this),this.extension=this.baseExtensions.concat(ip.of({plugin:this,arg:void 0}))}of(e){return this.baseExtensions.concat(ip.of({plugin:this,arg:e}))}static define(e,t){const{eventHandlers:n,eventObservers:i,provide:r,decorations:o}=t||{};return new rp(np++,e,n,i,(e=>{let t=[];return o&&t.push(lp.of((t=>{let n=t.plugin(e);return n?o(n):Hh.none}))),r&&t.push(r(e)),t}))}static fromClass(e,t){return rp.define(((t,n)=>new e(t,n)),t)}}class op{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}get plugin(){return this.spec&&this.spec.plugin}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(ep(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.plugin.create(e,this.spec.arg)}catch(t){ep(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){ep(e.state,t,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}}const sp=hc.define(),ap=hc.define(),lp=hc.define(),cp=hc.define(),hp=hc.define(),up=hc.define(),pp=hc.define();function dp(e,t){let n=e.state.facet(pp);if(!n.length)return n;let i=n.map((t=>t instanceof Function?t(e):t)),r=[];return rh.spans(i,t.from,t.to,{point(){},span(e,n,i,o){let s=e-t.from,a=n-t.from,l=r;for(let e=i.length-1;e>=0;e--,o--){let n,r=i[e].spec.bidiIsolate;if(null==r&&(r=Iu(t.text,s,a)),o>0&&l.length&&(n=l[l.length-1]).to==s&&n.direction==r)n.to=a,l=n.inner;else{let e={from:s,to:a,direction:r,inner:[]};l.push(e),l=e.inner}}}}),r}const fp=hc.define();function gp(e){let t=0,n=0,i=0,r=0;for(let o of e.state.facet(fp)){let s=o(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&&(r=Math.max(r,s.bottom)))}return{left:t,right:n,top:i,bottom:r}}const mp=hc.define();class yp{constructor(e,t,n,i){this.fromA=e,this.toA=t,this.fromB=n,this.toB=i}join(e){return new yp(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.toA<n.fromA)break;n=n.join(i),e.splice(t-1,1)}}return e.splice(t,0,n),e}static extendWithRanges(e,t){if(0==t.length)return e;let n=[];for(let i=0,r=0,o=0;;){let s=i<e.length?e[i].fromB:1e9,a=r<t.length?t[r]:1e9,l=Math.min(s,a);if(1e9==l)break;let c=l+o,h=l,u=c;for(;;)if(r<t.length&&t[r]<=h){let n=t[r+1];r+=2,h=Math.max(h,n);for(let t=i;t<e.length&&e[t].fromB<=h;t++)o=e[t].toA-e[t].toB;u=Math.max(u,n+o)}else{if(!(i<e.length&&e[i].fromB<=h))break;{let t=e[i++];h=Math.max(h,t.toB),u=Math.max(u,t.toA),o=t.toA-t.toB}}n.push(new yp(c,u,l,h))}return n}}class vp{constructor(e,t,n){this.view=e,this.state=t,this.transactions=n,this.flags=0,this.startState=e.state,this.changes=Zl.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,r)=>i.push(new yp(e,t,n,r)))),this.changedRanges=i}static create(e,t,n){return new vp(e,t,n)}get viewportChanged(){return(4&this.flags)>0}get viewportMoved(){return(8&this.flags)>0}get heightChanged(){return(2&this.flags)>0}get geometryChanged(){return this.docChanged||(18&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}}const wp=[];class bp{constructor(e,t,n=0){this.dom=e,this.length=t,this.flags=n,this.parent=null,e.cmTile=this}get breakAfter(){return 1&this.flags}get children(){return wp}isWidget(){return!1}get isHidden(){return!1}isComposite(){return!1}isLine(){return!1}isText(){return!1}isBlock(){return!1}get domAttrs(){return null}sync(e){if(this.flags|=2,4&this.flags){this.flags&=-5;let e=this.domAttrs;e&&function(e,t){for(let n=e.attributes.length-1;n>=0;n--){let i=e.attributes[n].name;null==t[i]&&e.removeAttribute(i)}for(let n in t){let i=t[n];"style"==n?e.style.cssText=i:e.getAttribute(n)!=i&&e.setAttribute(n,i)}}(this.dom,e)}}toString(){return this.constructor.name+(this.children.length?`(${this.children})`:"")+(this.breakAfter?"#":"")}destroy(){this.parent=null}setDOM(e){this.dom=e,e.cmTile=this}get posAtStart(){return this.parent?this.parent.posBefore(this):0}get posAtEnd(){return this.posAtStart+this.length}posBefore(e,t=this.posAtStart){let n=t;for(let t of this.children){if(t==e)return n;n+=t.length+t.breakAfter}throw new RangeError("Invalid child in posBefore")}posAfter(e){return this.posBefore(e)+e.length}covers(e){return!0}coordsIn(e,t){return null}domPosFor(e,t){let n=iu(this.dom),i=this.length?e>0:t>0;return new wu(this.parent.dom,n+(i?1:0),0==e||e==this.length)}markDirty(e){this.flags&=-3,e&&(this.flags|=4),this.parent&&2&this.parent.flags&&this.parent.markDirty(!1)}get overrideDOMText(){return null}get root(){for(let e=this;e;e=e.parent)if(e instanceof kp)return e;return null}static get(e){return e.cmTile}}class xp extends bp{constructor(e){super(e,0),this._children=[]}isComposite(){return!0}get children(){return this._children}get lastChild(){return this.children.length?this.children[this.children.length-1]:null}append(e){this.children.push(e),e.parent=this}sync(e){if(2&this.flags)return;super.sync(e);let t,n=this.dom,i=null,r=(null==e?void 0:e.node)==n?e:null,o=0;for(let s of this.children){if(s.sync(e),o+=s.length+s.breakAfter,t=i?i.nextSibling:n.firstChild,r&&t!=s.dom&&(r.written=!0),s.dom.parentNode==n)for(;t&&t!=s.dom;)t=_p(t);else n.insertBefore(s.dom,t);i=s.dom}for(t=i?i.nextSibling:n.firstChild,r&&t&&(r.written=!0);t;)t=_p(t);this.length=o}}function _p(e){let t=e.nextSibling;return e.parentNode.removeChild(e),t}class kp extends xp{constructor(e,t){super(t),this.view=e}owns(e){for(;e;e=e.parent)if(e==this)return!0;return!1}isBlock(){return!0}nearest(e){for(;;){if(!e)return null;let t=bp.get(e);if(t&&this.owns(t))return t;e=e.parentNode}}blockTiles(e){for(let t=[],n=this,i=0,r=0;;)if(i==n.children.length){if(!t.length)return;n=n.parent,n.breakAfter&&r++,i=t.pop()}else{let o=n.children[i++];if(o instanceof Sp)t.push(i),n=o,i=0;else{let t=r+o.length,n=e(o,r);if(void 0!==n)return n;r=t+o.breakAfter}}}resolveBlock(e,t){let n,i,r=-1,o=-1;if(this.blockTiles(((s,a)=>{let l=a+s.length;if(e>=a&&e<=l){if(s.isWidget()&&t>=-1&&t<=1){if(32&s.flags)return!0;16&s.flags&&(n=void 0)}(a<e||e==l&&(t<-1?s.length:s.covers(1)))&&(!n||!s.isWidget()&&n.isWidget())&&(n=s,r=e-a),(l>e||e==a&&(t>1?s.length:s.covers(-1)))&&(!i||!s.isWidget()&&i.isWidget())&&(i=s,o=e-a)}})),!n&&!i)throw new Error("No tile at position "+e);return n&&t<0||!i?{tile:n,offset:r}:{tile:i,offset:o}}}class Sp extends xp{constructor(e,t){super(e),this.wrapper=t}isBlock(){return!0}covers(e){return!!this.children.length&&(e<0?this.children[0].covers(-1):this.lastChild.covers(1))}get domAttrs(){return this.wrapper.attributes}static of(e,t){let n=new Sp(t||document.createElement(e.tagName),e);return t||(n.flags|=4),n}}class Cp extends xp{constructor(e,t){super(e),this.attrs=t}isLine(){return!0}static start(e,t,n){let i=new Cp(t||document.createElement("div"),e);return t&&n||(i.flags|=4),i}get domAttrs(){return this.attrs}resolveInline(e,t,n){let i=null,r=-1,o=null,s=-1;!function e(a,l){for(let c=0,h=0;c<a.children.length&&h<=l;c++){let u=a.children[c],p=h+u.length;p>=l&&(u.isComposite()?e(u,l-h):(!o||o.isHidden&&(t>0||n&&Ep(o,u)))&&(p>l||32&u.flags)?(o=u,s=l-h):(h<l||16&u.flags&&!u.isHidden)&&(i=u,r=l-h)),h=p}}(this,e);let a=(t<0?i:o)||i||o;return a?{tile:a,offset:a==i?r:s}:null}coordsIn(e,t){let n=this.resolveInline(e,t,!0);return n?n.tile.coordsIn(Math.max(0,n.offset),t):function(e){let t=e.dom.lastChild;if(!t)return e.dom.getBoundingClientRect();let n=tu(t);return n[n.length-1]||null}(this)}domIn(e,t){let n=this.resolveInline(e,t);if(n){let{tile:e,offset:i}=n;if(this.dom.contains(e.dom))return e.isText()?new wu(e.dom,Math.min(e.dom.nodeValue.length,i)):e.domPosFor(i,t);let r=n.tile.parent,o=!1;for(let e of r.children){if(o)return new wu(e.dom,0);e==n.tile&&(o=!0)}}return new wu(this.dom,0)}}function Ep(e,t){let n=e.coordsIn(0,1),i=t.coordsIn(0,1);return n&&i&&i.top<n.bottom}class Mp extends xp{constructor(e,t){super(e),this.mark=t}get domAttrs(){return this.mark.attrs}static of(e,t){let n=new Mp(t||document.createElement(e.tagName),e);return t||(n.flags|=4),n}}class Ap extends bp{constructor(e,t){super(e,t.length),this.text=t}sync(e){2&this.flags||(super.sync(e),this.dom.nodeValue!=this.text&&(e&&e.node==this.dom&&(e.written=!0),this.dom.nodeValue=this.text))}isText(){return!0}toString(){return JSON.stringify(this.text)}coordsIn(e,t){let n=this.dom.nodeValue.length;e>n&&(e=n);let i=e,r=e,o=0;0==e&&t<0||e==n&&t>=0?Ph.chrome||Ph.gecko||(e?(i--,o=1):r<n&&(r++,o=-1)):t<0?i--:r<n&&r++;let s=fu(this.dom,i,r).getClientRects();if(!s.length)return null;let a=s[(o?o<0:t>=0)?0:s.length-1];return Ph.safari&&!o&&0==a.width&&(a=Array.prototype.find.call(s,(e=>e.width))||a),o?au(a,o<0):a||null}static of(e,t){let n=new Ap(t||document.createTextNode(e),e);return t||(n.flags|=2),n}}class Tp extends bp{constructor(e,t,n,i){super(e,t,i),this.widget=n}isWidget(){return!0}get isHidden(){return this.widget.isHidden}covers(e){return!(48&this.flags)&&(this.flags&(e<0?64:128))>0}coordsIn(e,t){return this.coordsInWidget(e,t,!1)}coordsInWidget(e,t,n){let i=this.widget.coordsAt(this.dom,e,t);if(i)return i;if(n)return au(this.dom.getBoundingClientRect(),this.length?0==e:t<=0);{let t=this.dom.getClientRects(),n=null;if(!t.length)return null;let i=!!(16&this.flags)||!(32&this.flags)&&e>0;for(let r=i?t.length-1:0;n=t[r],!(e>0?0==r:r==t.length-1||n.top<n.bottom);r+=i?-1:1);return au(n,!i)}}get overrideDOMText(){if(!this.length)return Fl.empty;let{root:e}=this;if(!e)return Fl.empty;let t=this.posAtStart;return e.view.state.doc.slice(t,t+this.length)}destroy(){super.destroy(),this.widget.destroy(this.dom)}static of(e,t,n,i,r){return r||(r=e.toDOM(t),e.editable||(r.contentEditable="false")),new Tp(r,n,e,i)}}class Rp extends bp{constructor(e){let t=document.createElement("img");t.className="cm-widgetBuffer",t.setAttribute("aria-hidden","true"),super(t,0,e)}get isHidden(){return!1}get overrideDOMText(){return Fl.empty}coordsIn(e){return this.dom.getBoundingClientRect()}}class Dp{constructor(e){this.index=0,this.beforeBreak=!1,this.parents=[],this.tile=e}advance(e,t,n){let{tile:i,index:r,beforeBreak:o,parents:s}=this;for(;e||t>0;)if(i.isComposite())if(o){if(!e)break;n&&n.break(),e--,o=!1}else if(r==i.children.length){if(!e&&!s.length)break;n&&n.leave(i),o=!!i.breakAfter,({tile:i,index:r}=s.pop()),r++}else{let a=i.children[r],l=a.breakAfter;!(t>0?a.length<=e:a.length<e)||n&&!1===n.skip(a,0,a.length)&&a.isComposite?(s.push({tile:i,index:r}),i=a,r=0,n&&a.isComposite()&&n.enter(a)):(o=!!l,r++,e-=a.length)}else if(r==i.length)o=!!i.breakAfter,({tile:i,index:r}=s.pop()),r++;else{if(!e)break;{let t=Math.min(e,i.length-r);n&&n.skip(i,r,r+t),e-=t,r+=t}}return this.tile=i,this.index=r,this.beforeBreak=o,this}get root(){return this.parents.length?this.parents[0].tile:this.tile}}class Op{constructor(e,t,n,i){this.from=e,this.to=t,this.wrapper=n,this.rank=i}}class Np{constructor(e,t,n){this.cache=e,this.root=t,this.blockWrappers=n,this.curLine=null,this.lastBlock=null,this.afterWidget=null,this.pos=0,this.wrappers=[],this.wrapperPos=0}addText(e,t,n,i){var r;this.flushBuffer();let o=this.ensureMarks(t,n),s=o.lastChild;if(!s||!s.isText()||8&s.flags)o.append(i||Ap.of(e,null===(r=this.cache.find(Ap))||void 0===r?void 0:r.dom));else{this.cache.reused.set(s,2),(o.children[o.children.length-1]=new Ap(s.dom,s.text+e)).parent=o}this.pos+=e.length,this.afterWidget=null}addComposition(e,t){let n=this.curLine;n.dom!=t.line.dom&&(n.setDOM(this.cache.reused.has(t.line)?jp(t.line.dom):t.line.dom),this.cache.reused.set(t.line,2));let i=n;for(let e=t.marks.length-1;e>=0;e--){let n=t.marks[e],r=i.lastChild;if(r instanceof Mp&&r.mark.eq(n.mark))r.dom!=n.dom&&r.setDOM(jp(n.dom)),i=r;else{if(this.cache.reused.get(n)){let e=bp.get(n.dom);e&&e.setDOM(jp(n.dom))}let e=Mp.of(n.mark,n.dom);i.append(e),i=e}this.cache.reused.set(n,2)}let r=new Ap(e.text,e.text.nodeValue);r.flags|=8,i.append(r)}addInlineWidget(e,t,n){let i=this.afterWidget&&48&e.flags&&(48&this.afterWidget.flags)==(48&e.flags);i||this.flushBuffer();let r=this.ensureMarks(t,n);i||16&e.flags||r.append(this.getBuffer(1)),r.append(e),this.pos+=e.length,this.afterWidget=e}addMark(e,t,n){this.flushBuffer(),this.ensureMarks(t,n).append(e),this.pos+=e.length,this.afterWidget=null}addBlockWidget(e){this.getBlockPos().append(e),this.pos+=e.length,this.lastBlock=e,this.endLine()}continueWidget(e){(this.afterWidget||this.lastBlock).length+=e,this.pos+=e}addLineStart(e,t){var n;e||(e=Fp);let i=Cp.start(e,t||(null===(n=this.cache.find(Cp))||void 0===n?void 0:n.dom),!!t);this.getBlockPos().append(this.lastBlock=this.curLine=i)}addLine(e){this.getBlockPos().append(e),this.pos+=e.length,this.lastBlock=e,this.endLine()}addBreak(){this.lastBlock.flags|=1,this.endLine(),this.pos++}addLineStartIfNotCovered(e){this.blockPosCovered()||this.addLineStart(e)}ensureLine(e){this.curLine||this.addLineStart(e)}ensureMarks(e,t){var n;let i=this.curLine;for(let r=e.length-1;r>=0;r--){let o,s=e[r];if(t>0&&(o=i.lastChild)&&o instanceof Mp&&o.mark.eq(s))i=o,t--;else{let e=Mp.of(s,null===(n=this.cache.find(Mp,(e=>e.mark.eq(s))))||void 0===n?void 0:n.dom);i.append(e),i=e,t=0}}return i}endLine(){if(this.curLine){this.flushBuffer();let e=this.curLine.lastChild;e&&Ip(this.curLine,!1)&&("BR"==e.dom.nodeName||!e.isWidget()||Ph.ios&&Ip(this.curLine,!0))||this.curLine.append(this.cache.findWidget($p,0,32)||new Tp($p.toDOM(),0,$p,32)),this.curLine=this.afterWidget=null}}updateBlockWrappers(){this.wrapperPos>this.pos+1e4&&(this.blockWrappers.goto(this.pos),this.wrappers.length=0);for(let e=this.wrappers.length-1;e>=0;e--)this.wrappers[e].to<this.pos&&this.wrappers.splice(e,1);for(let e=this.blockWrappers;e.value&&e.from<=this.pos;e.next())if(e.to>=this.pos){let t=new Op(e.from,e.to,e.value,e.rank),n=this.wrappers.length;for(;n>0&&(this.wrappers[n-1].rank-t.rank||this.wrappers[n-1].to-t.to)<0;)n--;this.wrappers.splice(n,0,t)}this.wrapperPos=this.pos}getBlockPos(){var e;this.updateBlockWrappers();let t=this.root;for(let n of this.wrappers){let i=t.lastChild;if(n.from<this.pos&&i instanceof Sp&&i.wrapper.eq(n.wrapper))t=i;else{let i=Sp.of(n.wrapper,null===(e=this.cache.find(Sp,(e=>e.wrapper.eq(n.wrapper))))||void 0===e?void 0:e.dom);t.append(i),t=i}}return t}blockPosCovered(){let e=this.lastBlock;return null!=e&&!e.breakAfter&&(!e.isWidget()||(160&e.flags)>0)}getBuffer(e){let t=2|(e<0?16:32),n=this.cache.find(Rp,void 0,1);return n&&(n.flags=t),n||new Rp(t)}flushBuffer(){!this.afterWidget||32&this.afterWidget.flags||(this.afterWidget.parent.append(this.getBuffer(-1)),this.afterWidget=null)}}class qp{constructor(e){this.skipCount=0,this.text="",this.textOff=0,this.cursor=e.iter()}skip(e){this.textOff+e<=this.text.length?this.textOff+=e:(this.skipCount+=e-(this.text.length-this.textOff),this.text="",this.textOff=0)}next(e){if(this.textOff==this.text.length){let{value:t,lineBreak:n,done:i}=this.cursor.next(this.skipCount);if(this.skipCount=0,i)throw new Error("Ran out of text content when drawing inline views");this.text=t;let r=this.textOff=Math.min(e,t.length);return n?null:t.slice(0,r)}let t=Math.min(this.text.length,this.textOff+e),n=this.text.slice(this.textOff,t);return this.textOff=t,n}}const Lp=[Tp,Cp,Ap,Mp,Rp,Sp,kp];for(let e=0;e<Lp.length;e++)Lp[e].bucket=e;class Bp{constructor(e){this.view=e,this.buckets=Lp.map((()=>[])),this.index=Lp.map((()=>0)),this.reused=new Map}add(e){let t=e.constructor.bucket,n=this.buckets[t];n.length<6?n.push(e):n[this.index[t]=(this.index[t]+1)%6]=e}find(e,t,n=2){let i=e.bucket,r=this.buckets[i],o=this.index[i];for(let e=r.length-1;e>=0;e--){let s=(e+o)%r.length,a=r[s];if((!t||t(a))&&!this.reused.has(a))return r.splice(s,1),s<o&&this.index[i]--,this.reused.set(a,n),a}return null}findWidget(e,t,n){let i=this.buckets[0];if(i.length)for(let r=0,o=0;;r++){if(r==i.length){if(o)return null;o=1,r=0}let s=i[r];if(!this.reused.has(s)&&(0==o?s.widget.compare(e):s.widget.constructor==e.constructor&&e.updateDOM(s.dom,this.view)))return i.splice(r,1),r<this.index[0]&&this.index[0]--,this.reused.set(s,1),s.length=t,s.flags=-498&s.flags|n,s}}reuse(e){return this.reused.set(e,1),e}maybeReuse(e,t=2){if(!this.reused.has(e))return this.reused.set(e,t),e.dom}}class Pp{constructor(e,t,n,i,r){this.view=e,this.decorations=i,this.disallowBlockEffectsFor=r,this.openWidget=!1,this.openMarks=0,this.cache=new Bp(e),this.text=new qp(e.state.doc),this.builder=new Np(this.cache,new kp(e,e.contentDOM),rh.iter(n)),this.cache.reused.set(t,2),this.old=new Dp(t)}run(e,t){let n=t&&this.getCompositionContext(t.text);for(let i=0,r=0,o=0;;){let s=o<e.length?e[o++]:null,a=s?s.fromA:this.old.root.length;if(a>i){let e=a-i;this.preserve(e,!o,!s),i=a,r+=e}if(!s)break;this.forward(s.fromA,s.toA),t&&s.fromA<=t.range.fromA&&s.toA>=t.range.toA?(this.emit(r,t.range.fromB),this.builder.addComposition(t,n),this.emit(t.range.toB,s.toB)):this.emit(r,s.toB),r=s.toB,i=s.toA}return this.builder.curLine&&this.builder.endLine(),this.builder.root}preserve(e,t,n){let i=function(e){let t=[];for(let n=e.parents.length;n>1;n--){let i=n==e.parents.length?e.tile:e.parents[n].tile;i instanceof Mp&&t.push(i.mark)}return t}(this.old),r=this.openMarks;this.old.advance(e,n?1:-1,{skip:(e,t,n)=>{if(e.isWidget())if(this.openWidget)this.builder.continueWidget(n-t);else{let o=n>0||t<e.length?Tp.of(e.widget,this.view,n-t,496&e.flags,this.cache.maybeReuse(e)):this.cache.reuse(e);256&o.flags?(o.flags&=-2,this.builder.addBlockWidget(o)):(this.builder.addInlineWidget(o,i,r),r=i.length)}else if(e.isText())t||n!=e.length?(this.cache.add(e),this.builder.addText(e.text.slice(t,n),i,r)):this.builder.addText(e.text,i,r,this.cache.reuse(e)),r=i.length;else if(e.isLine())e.flags&=-2,this.cache.reused.set(e,1),this.builder.addLine(e);else if(e instanceof Rp)this.cache.add(e);else{if(!(e instanceof Mp))return!1;this.builder.addMark(e,i,r),this.cache.reused.set(e,1),r=i.length}this.openWidget=!1},enter:e=>{e.isLine()?this.builder.addLineStart(e.attrs,this.cache.maybeReuse(e)):(this.cache.add(e),e instanceof Mp&&i.unshift(e.mark)),this.openWidget=!1},leave:e=>{e.isLine()?i.length&&(i.length=r=0):e instanceof Mp&&(i.shift(),r=Math.min(r,i.length))},break:()=>{this.builder.addBreak(),this.openWidget=!1}}),this.text.skip(e)}emit(e,t){let n=null,i=this.builder,r=0,o=rh.spans(this.decorations,e,t,{point:(e,t,o,s,a,l)=>{if(o instanceof Kh){if(this.disallowBlockEffectsFor[l]){if(o.block)throw new RangeError("Block decorations may not be specified via plugins");if(t>this.view.state.doc.lineAt(e).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}if(r=s.length,a>s.length)i.continueWidget(t-e);else{let r=o.widget||(o.block?Vp.block:Vp.inline),l=function(e){let t=e.isReplace?(e.startSide<0?64:0)|(e.endSide>0?128:0):e.startSide>0?32:16;e.block&&(t|=256);return t}(o),c=this.cache.findWidget(r,t-e,l)||Tp.of(r,this.view,t-e,l);o.block?(o.startSide>0&&i.addLineStartIfNotCovered(n),i.addBlockWidget(c)):(i.ensureLine(n),i.addInlineWidget(c,s,a))}n=null}else n=function(e,t){let n=t.spec.attributes,i=t.spec.class;if(!n&&!i)return e;e||(e={class:"cm-line"});n&&Ih(n,e);i&&(e.class+=" "+i);return e}(n,o);t>e&&this.text.skip(t-e)},span:(e,t,r,o)=>{for(let s=e;s<t;){let e=this.text.next(Math.min(512,t-s));null==e?(i.addLineStartIfNotCovered(n),i.addBreak(),s++):(i.ensureLine(n),i.addText(e,r,o),s+=e.length),n=null}}});i.addLineStartIfNotCovered(n),this.openWidget=o>r,this.openMarks=o}forward(e,t){this.old.advance(t-e,1,{skip:(e,t,n)=>{(e.isText()||n==e.length)&&this.cache.add(e)},enter:e=>this.cache.add(e),leave:()=>{},break:()=>{}})}getCompositionContext(e){let t=[],n=null;for(let i=e.parentNode;;i=i.parentNode){let e=bp.get(i);if(i==this.view.contentDOM)break;e instanceof Mp?t.push(e):(null==e?void 0:e.isLine())?n=e:"DIV"!=i.nodeName||n||i==this.view.contentDOM?t.push(Mp.of(new Uh({tagName:i.nodeName.toLowerCase(),attributes:$h(i)}),i)):n=new Cp(i,Fp)}return{line:n,marks:t}}}function Ip(e,t){let n=e=>{for(let i of e.children)if((t?i.isText():i.length)||n(i))return!0;return!1};return n(e)}const Fp={class:"cm-line"};function jp(e){let t=bp.get(e);return t&&t.setDOM(e.cloneNode()),e}class Vp extends zh{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}}Vp.inline=new Vp("span"),Vp.block=new Vp("div");const $p=new class extends zh{toDOM(){return document.createElement("br")}get isHidden(){return!0}get editable(){return!0}};class zp{constructor(e){this.view=e,this.decorations=[],this.blockWrappers=[],this.dynamicDecorationMap=[!1],this.domChanged=null,this.hasComposition=null,this.editContextFormatting=Hh.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.updateDeco(),this.tile=new kp(e,e.contentDOM),this.updateInner([new yp(0,0,0,e.state.doc.length)],null)}update(e){var t;let n=e.changedRanges;this.minWidth>0&&n.length&&(n.every((({fromA:e,toA:t})=>t<this.minWidthFrom||e>this.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;t&&e.iterChangedRanges(((e,i)=>{e<t.to&&i>t.from&&(n=!0)}));return n}(e.changes,this.hasComposition)||e.selectionSet||(i=e.state.selection.main.head));let r=i>-1?function(e,t,n){let i=Hp(e,n);if(!i)return null;let{node:r,from:o,to:s}=i,a=r.nodeValue;if(/[\n\r]/.test(a))return null;if(e.state.doc.sliceString(i.from,i.to)!=a)return null;let l=t.invertedDesc;return{range:new yp(l.mapPos(o),l.mapPos(s),o,s),text:r}}(this.view,e.changes,i):null;if(this.domChanged=null,this.hasComposition){let{from:t,to:i}=this.hasComposition;n=new yp(t,i,e.changes.mapPos(t,-1),e.changes.mapPos(i,1)).addToSet(n.slice())}this.hasComposition=r?{from:r.range.fromB,to:r.range.toB}:null,(Ph.ie||Ph.chrome)&&!r&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let o=this.decorations,s=this.blockWrappers;this.updateDeco();let a=function(e,t,n){let i=new Up;return rh.compare(e,t,n,i),i.changes}(o,this.decorations,e.changes);a.length&&(n=yp.extendWithRanges(n,a));let l=function(e,t,n){let i=new Gp;return rh.compare(e,t,n,i),i.changes}(s,this.blockWrappers,e.changes);return l.length&&(n=yp.extendWithRanges(n,l)),r&&!n.some((e=>e.fromA<=r.range.fromA&&e.toA>=r.range.toA))&&(n=r.range.addToSet(n.slice())),!(2&this.tile.flags&&0==n.length)&&(this.updateInner(n,r),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,t){this.view.viewState.mustMeasureContent=!0;let{observer:n}=this.view;n.ignore((()=>{if(t||e.length){let n=this.tile,i=new Pp(this.view,n,this.blockWrappers,this.decorations,this.dynamicDecorationMap);this.tile=i.run(e,t),Wp(n,i.cache.reused)}this.tile.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.tile.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let i=Ph.chrome||Ph.ios?{node:n.selectionRange.focusNode,written:!1}:void 0;this.tile.sync(i),!i||!i.written&&n.selectionRange.focusNode==i.node&&this.tile.dom.contains(i.node)||(this.forceSelection=!0),this.tile.dom.style.height=""}));let i=[];if(this.view.viewport.from||this.view.viewport.to<this.view.state.doc.length)for(let e of this.tile.children)e.isWidget()&&e.widget instanceof Kp&&i.push(e.dom);n.updateGaps(i)}updateEditContextFormatting(e){this.editContextFormatting=this.editContextFormatting.map(e.changes);for(let t of e.transactions)for(let e of t.effects)e.is(Zu)&&(this.editContextFormatting=e.value)}updateSelection(e=!1,t=!1){!e&&this.view.observer.selectionRange.focusNode||this.view.observer.readSelectionRange();let{dom:n}=this.tile,i=this.view.root.activeElement,r=i==n,o=!r&&!(this.view.state.facet(tp)||n.tabIndex>-1)&&eu(n,this.view.observer.selectionRange)&&!(i&&n.contains(i));if(!(r||t||o))return;let s=this.forceSelection;this.forceSelection=!1;let a,l,c=this.view.state.selection.main;if(c.empty?l=a=this.inlineDOMNearPos(c.anchor,c.assoc||1):(l=this.inlineDOMNearPos(c.head,c.head==c.from?1:-1),a=this.inlineDOMNearPos(c.anchor,c.anchor==c.from?1:-1)),Ph.gecko&&c.empty&&!this.hasComposition&&(1==(h=a).node.nodeType&&h.node.firstChild&&(0==h.offset||"false"==h.node.childNodes[h.offset-1].contentEditable)&&(h.offset==h.node.childNodes.length||"false"==h.node.childNodes[h.offset].contentEditable))){let e=document.createTextNode("");this.view.observer.ignore((()=>a.node.insertBefore(e,a.node.childNodes[a.offset]||null))),a=l=new wu(e,0),s=!0}var h;let u=this.view.observer.selectionRange;!s&&u.focusNode&&(nu(a.node,a.offset,u.anchorNode,u.anchorOffset)&&nu(l.node,l.offset,u.focusNode,u.focusOffset)||this.suppressWidgetCursorChange(u,c))||(this.view.observer.ignore((()=>{Ph.android&&Ph.chrome&&n.contains(u.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}(u.focusNode,n)&&(n.blur(),n.focus({preventScroll:!0}));let e=Qh(this.view.root);if(e)if(c.empty){if(Ph.gecko){let e=function(e,t){return 1!=e.nodeType?0:(t&&"false"==e.childNodes[t-1].contentEditable?1:0)|(t<e.childNodes.length&&"false"==e.childNodes[t].contentEditable?2:0)}(a.node,a.offset);if(e&&3!=e){let t=(1==e?yu:vu)(a.node,a.offset);t&&(a=new wu(t.node,t.offset))}}e.collapse(a.node,a.offset),null!=c.bidiLevel&&void 0!==e.caretBidiLevel&&(e.caretBidiLevel=c.bidiLevel)}else if(e.extend){e.collapse(a.node,a.offset);try{e.extend(l.node,l.offset)}catch(e){}}else{let t=document.createRange();c.anchor>c.head&&([a,l]=[l,a]),t.setEnd(l.node,l.offset),t.setStart(a.node,a.offset),e.removeAllRanges(),e.addRange(t)}else;o&&this.view.root.activeElement==n&&(n.blur(),i&&i.focus())})),this.view.observer.setSelectionRange(a,l)),this.impreciseAnchor=a.precise?null:new wu(u.anchorNode,u.anchorOffset),this.impreciseHead=l.precise?null:new wu(u.focusNode,u.focusOffset)}suppressWidgetCursorChange(e,t){return this.hasComposition&&t.empty&&nu(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=Qh(e.root),{anchorNode:i,anchorOffset:r}=e.observer.selectionRange;if(!(n&&t.empty&&t.assoc&&n.modify))return;let o=this.lineAt(t.head);if(!o)return;let s=o.posAtStart;if(t.head==s||t.head==s+o.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,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,r)}posFromDOM(e,t){let n=this.tile.nearest(e);if(!n)return 2&this.tile.dom.compareDocumentPosition(e)?0:this.view.state.doc.length;let i=n.posAtStart;if(!n.isComposite())return n.isText()?e==n.dom?i+t:i+(t?n.length:0):i;{let r;if(e==n.dom)r=n.dom.childNodes[t];else{let i=0==su(e)?0:0==t?-1:1;for(;;){let t=e.parentNode;if(t==n.dom)break;0==i&&t.firstChild!=t.lastChild&&(i=e==t.firstChild?-1:1),e=t}r=i<0?e:e.nextSibling}if(r==n.dom.firstChild)return i;for(;r&&!bp.get(r);)r=r.nextSibling;if(!r)return i+n.length;for(let e=0,t=i;;e++){let i=n.children[e];if(i.dom==r)return t;t+=i.length+i.breakAfter}}}domAtPos(e,t){let{tile:n,offset:i}=this.tile.resolveBlock(e,t);return n.isWidget()?n.domPosFor(e,t):n.domIn(i,t)}inlineDOMNearPos(e,t){let n,i,r=-1,o=!1,s=-1,a=!1;return this.tile.blockTiles(((t,l)=>{if(t.isWidget()){if(32&t.flags&&n)return!0;16&t.flags&&(o=!0)}else{let c=l+t.length;if(l<=e&&(n=t,r=e-l,o=c<e),c>=e&&!i&&(i=t,s=e-l,a=l>e),l>e&&i)return!0}})),n||i?(o&&i?n=null:a&&n&&(i=null),n&&t<0||!i?n.domIn(r,t):i.domIn(s,t)):this.domAtPos(e,t)}coordsAt(e,t){let{tile:n,offset:i}=this.tile.resolveBlock(e,t);return n.isWidget()?n.widget instanceof Kp?null:n.coordsInWidget(i,t,!0):n.coordsIn(i,t)}lineAt(e){let{tile:t}=this.tile.resolveBlock(e,1);return t.isLine()?t:null}coordsForChar(e){let{tile:t,offset:n}=this.tile.resolveBlock(e,1);if(!t.isLine())return null;return function e(t,n){if(t.isComposite())for(let i of t.children){if(i.length>=n){let t=e(i,n);if(t)return t}if((n-=i.length)<0)break}else if(t.isText()&&n<t.length){let e=Xl(t.text,n);if(e==n)return null;let i=fu(t.dom,n,e).getClientRects();for(let e=0;e<i.length;e++){let t=i[e];if(e==i.length-1||t.top<t.bottom&&t.left<t.right)return t}}return null}(t,n)}measureVisibleLineHeights(e){let t=[],{from:n,to:i}=e,r=this.view.contentDOM.clientWidth,o=r>Math.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,s=-1,a=this.view.textDirection==bu.LTR,l=0,c=(e,h,u)=>{for(let p=0;p<e.children.length&&!(h>i);p++){let i=e.children[p],d=h+i.length,f=i.dom.getBoundingClientRect(),{height:g}=f;if(u&&!p&&(l+=f.top-u.top),i instanceof Sp)d>n&&c(i,h,f);else if(h>=n&&(l>0&&t.push(-l),t.push(g+l),l=0,o)){let e=i.dom.lastChild,t=e?tu(e):[];if(t.length){let e=t[t.length-1],n=a?e.right-f.left:f.right-e.left;n>s&&(s=n,this.minWidth=r,this.minWidthFrom=h,this.minWidthTo=d)}}u&&p==e.children.length-1&&(l+=u.bottom-f.bottom),h=d+i.breakAfter}};return c(this.tile,0,null),t}textDirectionAt(e){let{tile:t}=this.tile.resolveBlock(e,1);return"rtl"==getComputedStyle(t.dom).direction?bu.RTL:bu.LTR}measureTextSize(){let e=this.tile.blockTiles((e=>{if(e.isLine()&&e.children.length&&e.length<=20){let t,n=0;for(let i of e.children){if(!i.isText()||/[^ -~]/.test(i.text))return;let e=tu(i.dom);if(1!=e.length)return;n+=e[0].width,t=e[0].height}if(n)return{lineHeight:e.dom.getBoundingClientRect().height,charWidth:n/e.length,textHeight:t}}}));if(e)return e;let t,n,i,r=document.createElement("div");return r.className="cm-line",r.style.width="99999px",r.style.position="absolute",r.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore((()=>{this.tile.dom.appendChild(r);let e=tu(r.firstChild)[0];t=r.getBoundingClientRect().height,n=e&&e.width?e.width/27:7,i=e&&e.height?e.height:t,r.remove()})),{lineHeight:t,charWidth:n,textHeight:i}}computeBlockGapDeco(){let e=[],t=this.view.viewState;for(let n=0,i=0;;i++){let r=i==t.viewports.length?null:t.viewports[i],o=r?r.from-1:this.view.state.doc.length;if(o>n){let i=(t.lineBlockAt(o).bottom-t.lineBlockAt(n).top)/this.view.scaleY;e.push(Hh.replace({widget:new Kp(i),block:!0,inclusive:!0,isBlockGap:!0}).range(n,o))}if(!r)break;n=r.to+1}return Hh.set(e)}updateDeco(){let e=1,t=this.view.state.facet(lp).map((t=>(this.dynamicDecorationMap[e++]="function"==typeof t)?t(this.view):t)),n=!1,i=this.view.state.facet(hp).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(rh.join(i))),this.decorations=[this.editContextFormatting,...t,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];e<this.decorations.length;)this.dynamicDecorationMap[e++]=!1;this.blockWrappers=this.view.state.facet(cp).map((e=>"function"==typeof e?e(this.view):e))}scrollIntoView(e){if(e.isSnapshot){let t=this.view.viewState.lineBlockAt(e.range.head);return this.view.scrollDOM.scrollTop=t.top-e.yMargin,void(this.view.scrollDOM.scrollLeft=e.xMargin)}for(let t of this.view.state.facet(Yu))try{if(t(this.view,e.range,e))return!0}catch(e){ep(this.view.state,e,"scroll handler")}let t,{range:n}=e,i=this.coordsAt(n.head,n.empty?n.assoc:n.head>n.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 r=gp(this.view),o={left:i.left-r.left,top:i.top-r.top,right:i.right+r.right,bottom:i.bottom+r.bottom},{offsetWidth:s,offsetHeight:a}=this.view.scrollDOM;!function(e,t,n,i,r,o,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=lu(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}=cu(h,t)),e={left:t.left,right:t.left+h.clientWidth*d,top:t.top,bottom:t.top+h.clientHeight*f}}let g=0,m=0;if("nearest"==r)t.top<e.top?(m=t.top-(e.top+s),n>0&&t.bottom>e.bottom+m&&(m=t.bottom-e.bottom+s)):t.bottom>e.bottom&&(m=t.bottom-e.bottom+s,n<0&&t.top-m<e.top&&(m=t.top-(e.top+s)));else{let i=t.bottom-t.top,o=e.bottom-e.top;m=("center"==r&&i<=o?t.top+i/2-o/2:"start"==r||"center"==r&&n<0?t.top-s:t.bottom-o+s)-e.top}if("nearest"==i?t.left<e.left?(g=t.left-(e.left+o),n>0&&t.right>e.right+g&&(g=t.right-e.right+o)):t.right>e.right&&(g=t.right-e.right+o,n<0&&t.left<e.left+g&&(g=t.left-(e.left+o))):g=("center"==i?t.left+(t.right-t.left)/2-(e.right-e.left)/2:"start"==i==a?t.left-o:t.right-(e.right-e.left)+o)-e.left,g||m)if(p)c.scrollBy(g,m);else{let e=0,n=0;if(m){let e=h.scrollTop;h.scrollTop+=m/f,n=(h.scrollTop-e)*f}if(g){let t=h.scrollLeft;h.scrollLeft+=g/d,e=(h.scrollLeft-t)*d}t={left:t.left-e,top:t.top-n,right:t.right-e,bottom:t.bottom-n},e&&Math.abs(e-g)<1&&(i="nearest"),n&&Math.abs(n-m)<1&&(r="nearest")}if(p)break;(t.top<e.top||t.bottom>e.bottom||t.left<e.left||t.right>e.right)&&(t={left:Math.max(t.left,e.left),right:Math.min(t.right,e.right),top:Math.max(t.top,e.top),bottom:Math.min(t.bottom,e.bottom)}),h=h.assignedSlot||h.parentNode}else{if(11!=h.nodeType)break;h=h.host}}(this.view.scrollDOM,o,n.head<n.anchor?-1:1,e.x,e.y,Math.max(Math.min(e.xMargin,s),-s),Math.max(Math.min(e.yMargin,a),-a),this.view.textDirection==bu.LTR)}lineHasWidget(e){let t=e=>e.isWidget()||e.children.some(t);return t(this.tile.resolveBlock(e,1).tile)}destroy(){Wp(this.tile)}}function Wp(e,t){let n=null==t?void 0:t.get(e);if(1!=n){null==n&&e.destroy();for(let n of e.children)Wp(n,t)}}function Hp(e,t){let n=e.observer.selectionRange;if(!n.focusNode)return null;let i=yu(n.focusNode,n.focusOffset),r=vu(n.focusNode,n.focusOffset),o=i||r;if(r&&i&&r.node!=i.node){let t=bp.get(r.node);if(!t||t.isText()&&t.text!=r.node.nodeValue)o=r;else if(e.docView.lastCompositionAfterCursor){let e=bp.get(i.node);!e||e.isText()&&e.text!=i.node.nodeValue||(o=r)}}if(e.docView.lastCompositionAfterCursor=o!=i,!o)return null;let s=t-o.offset;return{from:s,to:s+o.node.nodeValue.length,node:o.node}}let Up=class{constructor(){this.changes=[]}compareRange(e,t){Yh(e,t,this.changes)}comparePoint(e,t){Yh(e,t,this.changes)}boundChange(e){Yh(e,e,this.changes)}};class Gp{constructor(){this.changes=[]}compareRange(e,t){Yh(e,t,this.changes)}comparePoint(){}boundChange(e){Yh(e,e,this.changes)}}class Kp extends zh{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}}function Xp(e,t,n,i,r){let o=Math.round((i-t.left)*e.defaultCharacterWidth);if(e.lineWrapping&&n.height>1.5*e.defaultLineHeight){let t=e.viewState.heightOracle.textHeight;o+=Math.floor((r-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,r=0;;){if(r>=t)return i;if(i==e.length)break;r+=9==e.charCodeAt(i)?n-r%n:1,i=Xl(e,i)}return!0===i?-1:e.length}(s,o,e.state.tabSize)}function Yp(e,t,n,i){let r=function(e,t,n){let i=e.lineBlockAt(t);if(Array.isArray(i.type)){let e;for(let r of i.type){if(r.from>t)break;if(!(r.to<t)){if(r.from<t&&r.to>t)return r;e&&(r.type!=Wh.Text||e.type==r.type&&!(n<0?r.from<t:r.to>t))||(e=r)}}return e||i}return i}(e,t.head,t.assoc||-1),o=i&&r.type==Wh.Text&&(e.lineWrapping||r.widgetLineBreaks)?e.coordsAtPos(t.assoc<0&&t.head>r.from?t.head-1:t.head):null;if(o){let t=e.dom.getBoundingClientRect(),i=e.textDirectionAt(r.from),s=e.posAtCoords({x:n==(i==bu.LTR)?t.right-1:t.left+1,y:(o.top+o.bottom)/2});if(null!=s)return ac.cursor(s,n?-1:1)}return ac.cursor(n?r.to:r.from,n?-1:1)}function Jp(e,t,n,i){let r=e.state.doc.lineAt(t.head),o=e.bidiSpans(r),s=e.textDirectionAt(r.from);for(let a=t,l=null;;){let t=Pu(r,o,s,a,n),c=Bu;if(!t){if(r.number==(n?e.state.doc.lines:1))return a;c="\n",r=e.state.doc.line(r.number+(n?1:-1)),o=e.bidiSpans(r),t=e.visualLineSide(r,!n)}if(l){if(!l(c))return a}else{if(!i)return t;l=i(c)}a=t}}function Qp(e,t,n){for(;;){let i=0;for(let r of e)r.between(t-1,t+1,((e,r,o)=>{if(t>e&&t<r){let o=i||n||(t-e<r-t?-1:1);t=o<0?e:r,i=o}}));if(!i)return t}}function Zp(e,t){let n=null;for(let i=0;i<t.ranges.length;i++){let r=t.ranges[i],o=null;if(r.empty){let t=Qp(e,r.from,0);t!=r.from&&(o=ac.cursor(t,-1))}else{let t=Qp(e,r.from,-1),n=Qp(e,r.to,1);t==r.from&&n==r.to||(o=ac.range(r.from==r.anchor?t:n,r.from==r.head?t:n))}o&&(n||(n=t.ranges.slice()),n[i]=o)}return n?ac.create(n,t.mainIndex):t}function ed(e,t,n){let i=Qp(e.state.facet(up).map((t=>t(e))),n.from,t.head>n.from?-1:1);return i==n.from?n:ac.cursor(i,i<n.from?1:-1)}class td{constructor(e,t){this.pos=e,this.assoc=t}}function nd(e,t,n,i){let r,o=e.contentDOM.getBoundingClientRect(),s=o.top+e.viewState.paddingTop,{x:a,y:l}=t,c=l-s;for(;;){if(c<0)return new td(0,1);if(c>e.viewState.docHeight)return new td(e.state.doc.length,-1);if(r=e.elementAtHeight(c),null==i)break;if(r.type==Wh.Text){let t=e.docView.coordsAt(i<0?r.from:r.to,i);if(t&&(i<0?t.top<=c+s:t.bottom>=c+s))break}let t=e.viewState.heightOracle.textHeight/2;c=i>0?r.bottom+t:r.top-t}if(e.viewport.from>=r.to||e.viewport.to<=r.from){if(n)return null;if(r.type==Wh.Text){let t=Xp(e,o,r,a,l);return new td(t,t==r.from?1:-1)}}return r.type!=Wh.Text?c<(r.top+r.bottom)/2?new td(r.from,1):new td(r.to,-1):id(e,e.docView.lineAt(r.from),r.from,a,l)}function id(e,t,n,i,r){let o=-1,s=null,a=1e9,l=1e9,c=r,h=r,u=(e,t)=>{for(let n=0;n<e.length;n++){let u=e[n];if(u.top==u.bottom)continue;let p=u.left>i?u.left-i:u.right<i?i-u.right:0,d=u.top>r?u.top-r:u.bottom<r?r-u.bottom:0;u.top<=h&&u.bottom>=c&&(c=Math.min(u.top,c),h=Math.max(u.bottom,h),d=0),(o<0||(d-l||p-a)<0)&&(o>=0&&l&&a<p&&s.top<=h-2&&s.bottom>=c+2?l=0:(o=t,a=p,l=d,s=u))}};if(t.isText()){for(let e=0;e<t.length;){let n=Xl(t.text,e);if(u(fu(t.dom,e,n).getClientRects(),e),!a&&!l)break;e=n}return i>(s.left+s.right)/2==(rd(e,o+n)==bu.LTR)?new td(n+Xl(t.text,o),-1):new td(n+o,1)}{if(!t.length)return new td(n,1);for(let e=0;e<t.children.length;e++){let n=t.children[e];if(!(48&n.flags)&&(u((1==n.dom.nodeType?n.dom:fu(n.dom,0,n.length)).getClientRects(),e),!a&&!l))break}let c=t.children[o],h=t.posBefore(c,n);return c.isComposite()||c.isText()?id(e,c,h,Math.max(s.left,Math.min(s.right,i)),r):i>(s.left+s.right)/2==(rd(e,o+n)==bu.LTR)?new td(h+c.length,-1):new td(h,1)}}function rd(e,t){let n=e.state.doc.lineAt(t);return e.bidiSpans(n)[Ru.find(e.bidiSpans(n),t-n.from,-1,1)].dir}const od="￿";class sd{constructor(e,t){this.points=e,this.text="",this.lineSeparator=t.facet(Qc.lineSeparator)}append(e){this.text+=e}lineBreak(){this.text+=od}readRange(e,t){if(!e)return this;let n=e.parentNode;for(let i=e;;){this.findPointBefore(n,i);let e=this.text.length;this.readNode(i);let r=bp.get(i),o=i.nextSibling;if(o==t){(null==r?void 0:r.breakAfter)&&!o&&this.lineBreak();break}let s=bp.get(o);(r&&s?r.breakAfter:(r?r.breakAfter:ru(i))||ru(o)&&("BR"!=i.nodeName||(null==r?void 0:r.isWidget()))&&this.text.length>e)&&!ld(o,t)&&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 r,o=-1,s=1;if(this.lineSeparator?(o=t.indexOf(this.lineSeparator,n),s=this.lineSeparator.length):(r=i.exec(t))&&(o=r.index,s=r[0].length),this.append(t.slice(n,o<0?t.length:o)),o<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=o+s}}readNode(e){let t=bp.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+(ad(e,n.node,n.offset)?t:0))}}function ad(e,t,n){for(;;){if(!t||n<su(t))return!1;if(t==e)return!0;n=iu(t)+1,t=t.parentNode}}function ld(e,t){let n;for(;e!=t&&e;e=e.nextSibling){let t=bp.get(e);if(!(null==t?void 0:t.isWidget()))return!1;t&&(n||(n=[])).push(t)}if(n)for(let e of n){let t=e.overrideDOMText;if(null==t?void 0:t.length)return!1}return!0}class cd{constructor(e,t){this.node=e,this.offset=t,this.pos=-1}}class hd{constructor(e,t,n,i){this.typeOver=i,this.bounds=null,this.text="",this.domChanged=t>-1;let{impreciseHead:r,impreciseAnchor:o}=e.docView;if(e.state.readOnly&&t>-1)this.newSel=null;else if(t>-1&&(this.bounds=ud(e.docView.tile,t,n,0))){let t=r||o?[]:function(e){let t=[];if(e.root.activeElement!=e.contentDOM)return t;let{anchorNode:n,anchorOffset:i,focusNode:r,focusOffset:o}=e.observer.selectionRange;n&&(t.push(new cd(n,i)),r==n&&o==i||t.push(new cd(r,o)));return t}(e),n=new sd(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?ac.single(n+t,i+t):null}(t,this.bounds.from)}else{let t=e.observer.selectionRange,n=r&&r.node==t.focusNode&&r.offset==t.focusOffset||!Zh(e.contentDOM,t.focusNode)?e.state.selection.main.head:e.docView.posFromDOM(t.focusNode,t.focusOffset),i=o&&o.node==t.anchorNode&&o.offset==t.anchorOffset||!Zh(e.contentDOM,t.anchorNode)?e.state.selection.main.anchor:e.docView.posFromDOM(t.anchorNode,t.anchorOffset),s=e.viewport;if((Ph.ios||Ph.chrome)&&e.state.selection.main.empty&&n!=i&&(s.from>0||s.to<e.state.doc.length)){let t=Math.min(n,i),r=Math.max(n,i),o=s.from-t,a=s.to-r;0!=o&&1!=o&&0!=t||0!=a&&-1!=a&&r!=e.state.doc.length||(n=0,i=e.state.doc.length)}e.inputState.composing>-1&&e.state.selection.ranges.length>1?this.newSel=e.state.selection.replaceRange(ac.range(i,n)):this.newSel=ac.single(i,n)}}}function ud(e,t,n,i){if(e.isComposite()){let r=-1,o=-1,s=-1,a=-1;for(let l=0,c=i,h=i;l<e.children.length;l++){let i=e.children[l],u=c+i.length;if(c<t&&u>n)return ud(i,t,n,c);if(u>=t&&-1==r&&(r=l,o=c),c>n&&i.dom.parentNode==e.dom){s=l,a=h;break}h=u,c=u+i.breakAfter}return{from:o,to:a<0?i+e.length:a,startDOM:(r?e.children[r-1].dom.nextSibling:null)||e.dom.firstChild,endDOM:s<e.children.length&&s>=0?e.children[s].dom:null}}return e.isText()?{from:i,to:i+e.length,startDOM:e.dom,endDOM:e.dom.nextSibling}:null}function pd(e,t){let n,{newSel:i}=t,r=e.state.selection.main,o=e.inputState.lastKeyTime>Date.now()-100?e.inputState.lastKeyCode:-1;if(t.bounds){let{from:i,to:s}=t.bounds,a=r.from,l=null;(8===o||Ph.android&&t.text.length<s-i)&&(a=r.to,l="end");let c=fd(e.state.doc.sliceString(i,s,od),t.text,a-i,l);c&&(Ph.chrome&&13==o&&c.toB==c.from+2&&t.text.slice(c.from,c.toB)==od+od&&c.toB--,n={from:i+c.from,to:i+c.toA,insert:Fl.of(t.text.slice(c.from,c.toB).split(od))})}else i&&(!e.hasFocus&&e.state.facet(tp)||i.main.eq(r))&&(i=null);if(!n&&!i)return!1;if(!n&&t.typeOver&&!r.empty&&i&&i.main.empty?n={from:r.from,to:r.to,insert:e.state.doc.slice(r.from,r.to)}:(Ph.mac||Ph.android)&&n&&n.from==n.to&&n.from==r.head-1&&/^\. ?$/.test(n.insert.toString())&&"off"==e.contentDOM.getAttribute("autocorrect")?(i&&2==n.insert.length&&(i=ac.single(i.main.anchor-1,i.main.head-1)),n={from:n.from,to:n.to,insert:Fl.of([n.insert.toString().replace("."," ")])}):n&&n.from>=r.from&&n.to<=r.to&&(n.from!=r.from||n.to!=r.to)&&r.to-r.from-(n.to-n.from)<=4?n={from:r.from,to:r.to,insert:e.state.doc.slice(r.from,n.from).append(n.insert).append(e.state.doc.slice(n.to,r.to))}:e.state.doc.lineAt(r.from).to<r.to&&e.docView.lineHasWidget(r.to)&&e.inputState.insertingTextAt>Date.now()-50?n={from:r.from,to:r.to,insert:e.state.toText(e.inputState.insertingText)}:Ph.chrome&&n&&n.from==n.to&&n.from==r.head&&"\n "==n.insert.toString()&&e.lineWrapping&&(i&&(i=ac.single(i.main.anchor-1,i.main.head-1)),n={from:r.from,to:r.to,insert:Fl.of([" "])}),n)return dd(e,n,i,o);if(i&&!i.main.eq(r)){let t=!1,n="select";return e.inputState.lastSelectionTime>Date.now()-50&&("select"==e.inputState.lastSelectionOrigin&&(t=!0),n=e.inputState.lastSelectionOrigin,"select.pointer"==n&&(i=Zp(e.state.facet(up).map((t=>t(e))),i))),e.dispatch({selection:i,scrollIntoView:t,userEvent:n}),!0}return!1}function dd(e,t,n,i=-1){if(Ph.ios&&e.inputState.flushIOSKey(t))return!0;let r=e.state.selection.main;if(Ph.android&&(t.to==r.to&&(t.from==r.from||t.from==r.from-1&&" "==e.state.sliceDoc(t.from,r.from))&&1==t.insert.length&&2==t.insert.lines&&gu(e.contentDOM,"Enter",13)||(t.from==r.from-1&&t.to==r.to&&0==t.insert.length||8==i&&t.insert.length<t.to-t.from&&t.to>r.head)&&gu(e.contentDOM,"Backspace",8)||t.from==r.from&&t.to==r.to+1&&0==t.insert.length&&gu(e.contentDOM,"Delete",46)))return!0;let o,s=t.insert.toString();e.inputState.composing>=0&&e.inputState.composing++;let a=()=>o||(o=function(e,t,n){let i,r=e.state,o=r.selection.main,s=-1;if(t.from==t.to&&t.from<o.from||t.from>o.to){let n=t.from<o.from?-1:1,i=n<0?o.from:o.to,a=Qp(r.facet(up).map((t=>t(e))),i,n);t.from==a&&(s=a)}if(s>-1)i={changes:t,selection:ac.cursor(t.from+t.insert.length,-1)};else if(t.from>=o.from&&t.to<=o.to&&t.to-t.from>=(o.to-o.from)/3&&(!n||n.main.empty&&n.main.from==t.from+t.insert.length)&&e.inputState.composing<0){let n=o.from<t.from?r.sliceDoc(o.from,t.from):"",s=o.to>t.to?r.sliceDoc(t.to,o.to):"";i=r.replaceSelection(e.state.toText(n+t.insert.sliceString(0,void 0,e.state.lineBreak)+s))}else{let s=r.changes(t),a=n&&n.main.to<=s.newLength?n.main:void 0;if(r.selection.ranges.length>1&&(e.inputState.composing>=0||e.inputState.compositionPendingChange)&&t.to<=o.to+10&&t.to>=o.to-10){let l,c=e.state.sliceDoc(t.from,t.to),h=n&&Hp(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(o.head);let u=o.to-t.to;i=r.changeByRange((n=>{if(n.from==o.from&&n.to==o.to)return{changes:s,range:a||n.map(s)};let i=n.to-u,h=i-c.length;if(e.state.sliceDoc(h,i)!=c||i>=l.from&&h<=l.to)return{range:n};let p=r.changes({from:h,to:i,insert:t.insert}),d=n.to-o.to;return{changes:p,range:a?ac.range(Math.max(0,a.anchor+d),Math.max(0,a.head+d)):n.map(p)}}))}else i={changes:s,selection:a&&r.selection.replaceRange(a)}}let a="input.type";(e.composing||e.inputState.compositionPendingChange&&e.inputState.compositionEndedAt>Date.now()-50)&&(e.inputState.compositionPendingChange=!1,a+=".compose",e.inputState.compositionFirstChange&&(a+=".start",e.inputState.compositionFirstChange=!1));return r.update(i,{userEvent:a,scrollIntoView:!0})}(e,t,n));return e.state.facet(Wu).some((n=>n(e,t.from,t.to,s,a)))||e.dispatch(a()),!0}function fd(e,t,n,i){let r=Math.min(e.length,t.length),o=0;for(;o<r&&e.charCodeAt(o)==t.charCodeAt(o);)o++;if(o==r&&e.length==t.length)return null;let s=e.length,a=t.length;for(;s>0&&a>0&&e.charCodeAt(s-1)==t.charCodeAt(a-1);)s--,a--;if("end"==i){n-=s+Math.max(0,o-Math.min(s,a))-o}if(s<o&&e.length<t.length){o-=n<=o&&n>=s?o-n:0,a=o+(a-s),s=o}else if(a<o){o-=n<=o&&n>=a?o-n:0,s=o+(s-a),a=o}return{from:o,toA:s,toB:a}}class gd{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.insertingText="",this.insertingTextAt=0,this.mouseSelection=null,this.draggedContent=null,this.handleEvent=this.handleEvent.bind(this),this.notifiedFocused=e.hasFocus,Ph.safari&&e.contentDOM.addEventListener("input",(()=>null)),Ph.gecko&&function(e){$d.has(e)||($d.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=bp.get(i))&&n.isWidget()&&n.widget.ignoreEvent(t))return!1;return!0})(this.view,e)&&!this.ignoreDuringComposition(e)&&("keydown"==e.type&&this.keydown(e)||(0!=this.view.updateState?Promise.resolve().then((()=>this.runHandlers(e.type,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=yd(e),n=this.handlers,i=this.view.contentDOM;for(let e in t)if("scroll"!=e){let r=!t[e].handlers.length,o=n[e];o&&r!=!o.handlers.length&&(i.removeEventListener(e,this.handleEvent),o=null),o||i.addEventListener(e,this.handleEvent,{passive:r})}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&&bd.indexOf(e.keyCode)<0&&(this.tabFocusMode=-1),Ph.android&&Ph.chrome&&!e.synthetic&&(13==e.keyCode||8==e.keyCode))return this.view.observer.delayAndroidKey(e.key,e.keyCode),!0;let t;return!Ph.ios||e.synthetic||e.altKey||e.metaKey||!((t=vd.find((t=>t.keyCode==e.keyCode)))&&!e.ctrlKey||wd.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.from<e.to&&/^\S+$/.test(e.insert.toString()))&&(this.pendingIOSKey=void 0,gu(this.view.contentDOM,t.key,t.keyCode,t instanceof KeyboardEvent?t:void 0)))}ignoreDuringComposition(e){return!(!/^key/.test(e.type)||e.synthetic)&&(this.composing>0||!!(Ph.safari&&!Ph.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 md(e,t){return(n,i)=>{try{return t.call(e,i,n)}catch(e){ep(n.state,e)}}}function yd(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,i=e&&e.plugin.domEventHandlers,r=e&&e.plugin.domEventObservers;if(i)for(let e in i){let r=i[e];r&&n(e).handlers.push(md(t.value,r))}if(r)for(let e in r){let i=r[e];i&&n(e).observers.push(md(t.value,i))}}for(let e in kd)n(e).handlers.push(kd[e]);for(let e in Sd)n(e).observers.push(Sd[e]);return t}const vd=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],wd="dthko",bd=[16,17,18,20,91,92,224,225];function xd(e){return.7*Math.max(0,e)+8}class _d{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 r=e.parentNode;r&&!(r==i.body||t&&n);)if(1==r.nodeType)!n&&r.scrollHeight>r.clientHeight&&(n=r),!t&&r.scrollWidth>r.clientWidth&&(t=r),r=r.assignedSlot||r.parentNode;else{if(11!=r.nodeType)break;r=r.host}return{x:t,y:n}}(e.contentDOM),this.atoms=e.state.facet(up).map((t=>t(e)));let r=e.contentDOM.ownerDocument;r.addEventListener("mousemove",this.move=this.move.bind(this)),r.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=t.shiftKey,this.multiple=e.state.facet(Qc.allowMultipleSelections)&&function(e,t){let n=e.state.facet(Fu);return n.length?n[0](t):Ph.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=Qh(e.root);if(!i||0==i.rangeCount)return!0;let r=i.getRangeAt(0).getClientRects();for(let e=0;e<r.length;e++){let n=r[e];if(n.left<=t.clientX&&n.right>=t.clientX&&n.top<=t.clientY&&n.bottom>=t.clientY)return!0}return!1}(e,t)||1!=Bd(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&&(t=this.startEvent,n=e,Math.max(Math.abs(t.clientX-n.clientX),Math.abs(t.clientY-n.clientY))<10))return;var t,n;this.select(this.lastEvent=e);let i=0,r=0,o=0,s=0,a=this.view.win.innerWidth,l=this.view.win.innerHeight;this.scrollParents.x&&({left:o,right:a}=this.scrollParents.x.getBoundingClientRect()),this.scrollParents.y&&({top:s,bottom:l}=this.scrollParents.y.getBoundingClientRect());let c=gp(this.view);e.clientX-c.left<=o+6?i=-xd(o-e.clientX):e.clientX+c.right>=a-6&&(i=xd(e.clientX-a)),e.clientY-c.top<=s+6?r=-xd(s-e.clientY):e.clientY+c.bottom>=l-6&&(r=xd(e.clientY-l)),this.setScrollSpeed(i,r)}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)}select(e){let{view:t}=this,n=Zp(this.atoms,this.style.get(e,this.extend,this.multiple));!this.mustSelect&&n.eq(t.state.selection,!1===this.dragging)||this.view.dispatch({selection:n,userEvent:"select.pointer"}),this.mustSelect=!1}update(e){e.transactions.some((e=>e.isUserEvent("input.type")))?this.destroy():this.style.update(e)&&setTimeout((()=>this.select(this.lastEvent)),20)}}const kd=Object.create(null),Sd=Object.create(null),Cd=Ph.ie&&Ph.ie_version<15||Ph.ios&&Ph.webkit_version<604;function Ed(e,t,n){for(let i of e.facet(t))n=i(n,e);return n}function Md(e,t){t=Ed(e.state,Uu,t);let n,{state:i}=e,r=1,o=i.toText(t),s=o.lines==i.selection.ranges.length;if(null!=Id&&i.selection.ranges.every((e=>e.empty))&&Id==o.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?o.line(r++).text:t)+i.lineBreak);return{changes:{from:a.from,insert:l},range:ac.cursor(n.from+l.length)}}))}else n=s?i.changeByRange((e=>{let t=o.line(r++);return{changes:{from:e.from,to:e.to,insert:t.text},range:ac.cursor(e.from+t.length)}})):i.replaceSelection(o);e.dispatch(n,{userEvent:"input.paste",scrollIntoView:!0})}function Ad(e,t,n,i){if(1==i)return ac.cursor(t,n);if(2==i)return function(e,t,n=1){let i=e.charCategorizer(t),r=e.doc.lineAt(t),o=t-r.from;if(0==r.length)return ac.cursor(t);0==o?n=1:o==r.length&&(n=-1);let s=o,a=o;n<0?s=Xl(r.text,o,!1):a=Xl(r.text,o);let l=i(r.text.slice(s,a));for(;s>0;){let e=Xl(r.text,s,!1);if(i(r.text.slice(e,s))!=l)break;s=e}for(;a<r.length;){let e=Xl(r.text,a);if(i(r.text.slice(a,e))!=l)break;a=e}return ac.range(s+r.from,a+r.from)}(e.state,t,n);{let n=e.docView.lineAt(t),i=e.state.doc.lineAt(n?n.posAtEnd:t),r=n?n.posAtStart:i.from,o=n?n.posAtEnd:i.to;return o<e.state.doc.length&&o==i.to&&o++,ac.range(r,o)}}Sd.scroll=e=>{e.inputState.lastScrollTop=e.scrollDOM.scrollTop,e.inputState.lastScrollLeft=e.scrollDOM.scrollLeft},kd.keydown=(e,t)=>(e.inputState.setSelectionOrigin("select"),27==t.keyCode&&0!=e.inputState.tabFocusMode&&(e.inputState.tabFocusMode=Date.now()+2e3),!1),Sd.touchstart=(e,t)=>{e.inputState.lastTouchTime=Date.now(),e.inputState.setSelectionOrigin("select.pointer")},Sd.touchmove=e=>{e.inputState.setSelectionOrigin("select.pointer")},kd.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(Vu))if(n=i(e,t),n)break;if(n||0!=t.button||(n=function(e,t){let n=Dd(e,t),i=Bd(t),r=e.state.selection;return{update(e){e.docChanged&&(n.pos=e.changes.mapPos(n.pos),r=r.map(e.changes))},get(t,o,s){let a,l=Dd(e,t),c=Ad(e,l.pos,l.bias,i);if(n.pos!=l.pos&&!o){let t=Ad(e,n.pos,n.bias,i),r=Math.min(t.from,c.from),o=Math.max(t.to,c.to);c=r<c.from?ac.range(r,o):ac.range(o,r)}return o?r.replaceRange(r.main.extend(c.from,c.to)):s&&1==i&&r.ranges.length>1&&(a=function(e,t){for(let n=0;n<e.ranges.length;n++){let{from:i,to:r}=e.ranges[n];if(i<=t&&r>=t)return ac.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}(r,l.pos))?a:s?r.addRange(c):ac.create([c])}}}(e,t)),n){let i=!e.hasFocus;e.inputState.startMouseSelection(new _d(e,t,n,i)),i&&e.observer.ignore((()=>{du(e.contentDOM);let t=e.root.activeElement;t&&!t.contains(e.contentDOM)&&t.blur()}));let r=e.inputState.mouseSelection;if(r)return r.start(t),!1===r.dragging}else e.inputState.setSelectionOrigin("select.pointer");return!1};let Td=(e,t,n)=>t>=n.top&&t<=n.bottom&&e>=n.left&&e<=n.right;function Rd(e,t,n,i){let r=e.docView.lineAt(t);if(!r)return 1;let o=t-r.posAtStart;if(0==o)return 1;if(o==r.length)return-1;let s=r.coordsIn(o,-1);if(s&&Td(n,i,s))return-1;let a=r.coordsIn(o,1);return a&&Td(n,i,a)?1:s&&s.bottom>=i?-1:1}function Dd(e,t){let n=e.posAtCoords({x:t.clientX,y:t.clientY},!1);return{pos:n,bias:Rd(e,n,t.clientX,t.clientY)}}const Od=Ph.ie&&Ph.ie_version<=11;let Nd=null,qd=0,Ld=0;function Bd(e){if(!Od)return e.detail;let t=Nd,n=Ld;return Nd=e,Ld=Date.now(),qd=!t||n>Date.now()-400&&Math.abs(t.clientX-e.clientX)<2&&Math.abs(t.clientY-e.clientY)<2?(qd+1)%3:1}function Pd(e,t,n,i){if(!(n=Ed(e.state,Uu,n)))return;let r=e.posAtCoords({x:t.clientX,y:t.clientY},!1),{draggedContent:o}=e.inputState,s=i&&o&&function(e,t){let n=e.state.facet(ju);return n.length?n[0](t):Ph.mac?!t.altKey:!t.ctrlKey}(e,t)?{from:o.from,to:o.to}:null,a={from:r,insert:n},l=e.state.changes(s?[s,a]:a);e.focus(),e.dispatch({changes:l,selection:{anchor:l.mapPos(r,-1),head:l.mapPos(r,1)},userEvent:s?"move.drop":"input.drop"}),e.inputState.draggedContent=null}kd.dragstart=(e,t)=>{let{selection:{main:n}}=e.state;if(t.target.draggable){let i=e.docView.tile.nearest(t.target);if(i&&i.isWidget()){let e=i.posAtStart,t=e+i.length;(e>=n.to||t<=n.from)&&(n=ac.range(e,t))}}let{inputState:i}=e;return i.mouseSelection&&(i.mouseSelection.dragging=!0),i.draggedContent=n,t.dataTransfer&&(t.dataTransfer.setData("Text",Ed(e.state,Gu,e.state.sliceDoc(n.from,n.to))),t.dataTransfer.effectAllowed="copyMove"),!1},kd.dragend=e=>(e.inputState.draggedContent=null,!1),kd.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),r=0,o=()=>{++r==n.length&&Pd(e,t,i.filter((e=>null!=e)).join(e.state.lineBreak),!1)};for(let e=0;e<n.length;e++){let t=new FileReader;t.onerror=o,t.onload=()=>{/[\x00-\x08\x0e-\x1f]{2}/.test(t.result)||(i[e]=t.result),o()},t.readAsText(n[e])}return!0}{let n=t.dataTransfer.getData("Text");if(n)return Pd(e,t,n,!0),!0}return!1},kd.paste=(e,t)=>{if(e.state.readOnly)return!0;e.observer.flush();let n=Cd?null:t.clipboardData;return n?(Md(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(),Md(e,n.value)}),50)}(e),!1)};let Id=null;kd.copy=kd.cut=(e,t)=>{let{text:n,ranges:i,linewise:r}=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 r=-1;for(let{from:i}of e.selection.ranges){let o=e.doc.lineAt(i);o.number>r&&(t.push(o.text),n.push({from:o.from,to:Math.min(e.doc.length,o.to+1)})),r=o.number}i=!0}return{text:Ed(e,Gu,t.join(e.lineBreak)),ranges:n,linewise:i}}(e.state);if(!n&&!r)return!1;Id=r?n:null,"cut"!=t.type||e.state.readOnly||e.dispatch({changes:i,scrollIntoView:!0,userEvent:"delete.cut"});let o=Cd?null:t.clipboardData;return o?(o.clearData(),o.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 Fd=Pc.define();function jd(e,t){let n=[];for(let i of e.facet(Hu)){let r=i(e,t);r&&n.push(r)}return n.length?e.update({effects:n,annotations:Fd.of(!0)}):null}function Vd(e){setTimeout((()=>{let t=e.hasFocus;if(t!=e.inputState.notifiedFocused){let n=jd(e.state,t);n?e.dispatch(n):e.update([])}}),10)}Sd.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),Vd(e)},Sd.blur=e=>{e.observer.clearSelectionRange(),Vd(e)},Sd.compositionstart=Sd.compositionupdate=e=>{e.observer.editContext||(null==e.inputState.compositionFirstChange&&(e.inputState.compositionFirstChange=!0),e.inputState.composing<0&&(e.inputState.composing=0))},Sd.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,Ph.chrome&&Ph.android?e.observer.flushSoon():e.inputState.compositionPendingChange?Promise.resolve().then((()=>e.observer.flush())):setTimeout((()=>{e.inputState.composing<0&&e.docView.hasComposition&&e.update([])}),50))},Sd.contextmenu=e=>{e.inputState.lastContextMenu=Date.now()},kd.beforeinput=(e,t)=>{var n,i;if("insertText"!=t.inputType&&"insertCompositionText"!=t.inputType||(e.inputState.insertingText=t.data,e.inputState.insertingTextAt=Date.now()),"insertReplacementText"==t.inputType&&e.observer.editContext){let i=null===(n=t.dataTransfer)||void 0===n?void 0:n.getData("text/plain"),r=t.getTargetRanges();if(i&&r.length){let t=r[0],n=e.posAtDOM(t.startContainer,t.startOffset),o=e.posAtDOM(t.endContainer,t.endOffset);return dd(e,{from:n,to:o,insert:e.state.toText(i)},null),!0}}let r;if(Ph.chrome&&Ph.android&&(r=vd.find((e=>e.inputType==t.inputType)))&&(e.observer.delayAndroidKey(r.key,r.keyCode),"Backspace"==r.key||"Delete"==r.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 Ph.ios&&"deleteContentForward"==t.inputType&&e.observer.flushSoon(),Ph.safari&&"insertText"==t.inputType&&e.inputState.composing>=0&&setTimeout((()=>Sd.compositionend(e,t)),20),!1};const $d=new Set;const zd=["pre-wrap","normal","pre-line","break-spaces"];let Wd=!1;function Hd(){Wd=!1}class Ud{constructor(e){this.lineWrapping=e,this.doc=Fl.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){if(!this.lineWrapping)return this.lineHeight;return(1+Math.max(0,Math.ceil((e-this.lineLength)/Math.max(1,this.lineLength-5))))*this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForWrapping(e){return zd.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let t=!1;for(let n=0;n<e.length;n++){let i=e[n];i<0?n++:this.heightSamples[Math.floor(10*i)]||(t=!0,this.heightSamples[Math.floor(10*i)]=!0)}return t}refresh(e,t,n,i,r,o){let s=zd.indexOf(e)>-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=r,a){this.heightSamples={};for(let e=0;e<o.length;e++){let t=o[e];t<0?e++:this.heightSamples[Math.floor(10*t)]=!0}}return a}}class Gd{constructor(e,t){this.from=e,this.heights=t,this.index=0}get more(){return this.index<this.heights.length}}class Kd{constructor(e,t,n,i,r){this.from=e,this.length=t,this.top=n,this.height=i,this._content=r}get type(){return"number"==typeof this._content?Wh.Text:Array.isArray(this._content)?this._content:this._content.type}get to(){return this.from+this.length}get bottom(){return this.top+this.height}get widget(){return this._content instanceof Kh?this._content.widget:null}get widgetLineBreaks(){return"number"==typeof this._content?this._content:0}join(e){let t=(Array.isArray(this._content)?this._content:[this]).concat(Array.isArray(e._content)?e._content:[e]);return new Kd(this.from,this.length+e.length,this.top,this.height+e.height,t)}}var Xd=function(e){return e[e.ByPos=0]="ByPos",e[e.ByHeight=1]="ByHeight",e[e.ByPosNoHeight=2]="ByPosNoHeight",e}(Xd||(Xd={}));const Yd=.001;class Jd{constructor(e,t,n=2){this.length=e,this.height=t,this.flags=n}get outdated(){return(2&this.flags)>0}set outdated(e){this.flags=(e?2:0)|-3&this.flags}setHeight(e){this.height!=e&&(Math.abs(this.height-e)>Yd&&(Wd=!0),this.height=e)}replace(e,t,n){return Jd.of(n)}decomposeLeft(e,t){t.push(this)}decomposeRight(e,t){t.push(this)}applyChanges(e,t,n,i){let r=this,o=n.doc;for(let s=i.length-1;s>=0;s--){let{fromA:a,toA:l,fromB:c,toB:h}=i[s],u=r.lineAt(a,Xd.ByPosNoHeight,n.setDoc(t),0,0),p=u.to>=l?u:r.lineAt(l,Xd.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--,a<u.from&&(u=r.lineAt(a,Xd.ByPosNoHeight,n,0,0));c+=u.from-a,a=u.from;let d=sf.build(n.setDoc(o),e,c,h);r=Qd(r,r.replace(a,l,d))}return r.updateHeight(n,0)}static empty(){return new tf(0,0,0)}static of(e){if(1==e.length)return e[0];let t=0,n=e.length,i=0,r=0;for(;;)if(t==n)if(i>2*r){let r=e[t-1];r.break?e.splice(--t,1,r.left,null,r.right):e.splice(--t,1,r.left,r.right),n+=1+r.break,i-=r.size}else{if(!(r>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,r-=t.size}}else if(i<r){let n=e[t++];n&&(i+=n.size)}else{let t=e[--n];t&&(r+=t.size)}let o=0;return null==e[t-1]?(o=1,t--):null==e[t]&&(o=1,n++),new rf(Jd.of(e.slice(0,t)),o,Jd.of(e.slice(n)))}}function Qd(e,t){return e==t?e:(e.constructor!=t.constructor&&(Wd=!0),t)}Jd.prototype.size=1;const Zd=Hh.replace({});class ef extends Jd{constructor(e,t,n){super(e,t),this.deco=n,this.spaceAbove=0}mainBlock(e,t){return new Kd(t,this.length,e+this.spaceAbove,this.height-this.spaceAbove,this.deco||0)}blockAt(e,t,n,i){return this.spaceAbove&&e<n+this.spaceAbove?new Kd(i,0,n,this.spaceAbove,Zd):this.mainBlock(n,i)}lineAt(e,t,n,i,r){let o=this.mainBlock(i,r);return this.spaceAbove?this.blockAt(0,n,i,r).join(o):o}forEachLine(e,t,n,i,r,o){e<=r+this.length&&t>=r&&o(this.lineAt(0,Xd.ByPos,n,i,r))}setMeasuredHeight(e){let t=e.heights[e.index++];t<0?(this.spaceAbove=-t,t=e.heights[e.index++]):this.spaceAbove=0,this.setHeight(t)}updateHeight(e,t=0,n=!1,i){return i&&i.from<=t&&i.more&&this.setMeasuredHeight(i),this.outdated=!1,this}toString(){return`block(${this.length})`}}class tf extends ef{constructor(e,t,n){super(e,t,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0,this.spaceAbove=n}mainBlock(e,t){return new Kd(t,this.length,e+this.spaceAbove,this.height-this.spaceAbove,this.breaks)}replace(e,t,n){let i=n[0];return 1==n.length&&(i instanceof tf||i instanceof nf&&4&i.flags)&&Math.abs(this.length-i.length)<10?(i instanceof nf?i=new tf(i.length,this.height,this.spaceAbove):i.height=this.height,this.outdated||(i.outdated=!1),i):Jd.of(n)}updateHeight(e,t=0,n=!1,i){return i&&i.from<=t&&i.more?this.setMeasuredHeight(i):(n||this.outdated)&&(this.spaceAbove=0,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 nf extends Jd{constructor(e){super(e,0)}heightMetrics(e,t){let n,i=e.doc.lineAt(t).number,r=e.doc.lineAt(t+this.length).number,o=r-i+1,s=0;if(e.lineWrapping){let t=Math.min(this.height,e.lineHeight*o);n=t/o,this.length>o+1&&(s=(this.height-t)/(this.length-o-1))}else n=this.height/o;return{firstLine:i,lastLine:r,perLine:n,perChar:s}}blockAt(e,t,n,i){let{firstLine:r,lastLine:o,perLine:s,perChar:a}=this.heightMetrics(t,i);if(t.lineWrapping){let r=i+(e<t.lineHeight?0:Math.round(Math.max(0,Math.min(1,(e-n)/this.height))*this.length)),o=t.doc.lineAt(r),l=s+o.length*a,c=Math.max(n,e-l/2);return new Kd(o.from,o.length,c,l,0)}{let i=Math.max(0,Math.min(o-r,Math.floor((e-n)/s))),{from:a,length:l}=t.doc.line(r+i);return new Kd(a,l,n+s*i,s,0)}}lineAt(e,t,n,i,r){if(t==Xd.ByHeight)return this.blockAt(e,n,i,r);if(t==Xd.ByPosNoHeight){let{from:t,to:i}=n.doc.lineAt(e);return new Kd(t,i-t,0,0,0)}let{firstLine:o,perLine:s,perChar:a}=this.heightMetrics(n,r),l=n.doc.lineAt(e),c=s+l.length*a,h=l.number-o,u=i+s*h+a*(l.from-r-h);return new Kd(l.from,l.length,Math.max(i,Math.min(u,i+this.height-c)),c,0)}forEachLine(e,t,n,i,r,o){e=Math.max(e,r),t=Math.min(t,r+this.length);let{firstLine:s,perLine:a,perChar:l}=this.heightMetrics(n,r);for(let c=e,h=i;c<=t;){let t=n.doc.lineAt(c);if(c==e){let n=t.number-s;h+=a*n+l*(e-r-n)}let i=a+l*t.length;o(new Kd(t.from,t.length,h,i,0)),h+=i,c=t.to+1}}replace(e,t,n){let i=this.length-t;if(i>0){let e=n[n.length-1];e instanceof nf?n[n.length-1]=new nf(e.length+i):n.push(null,new nf(i-1))}if(e>0){let t=n[0];t instanceof nf?n[0]=new nf(e+t.length):n.unshift(new nf(e-1),null)}return Jd.of(n)}decomposeLeft(e,t){t.push(new nf(e-1),null)}decomposeRight(e,t){t.push(null,new nf(this.length-e-1))}updateHeight(e,t=0,n=!1,i){let r=t+this.length;if(i&&i.from<=t+this.length&&i.more){let n=[],o=Math.max(t,i.from),s=-1;for(i.from>t&&n.push(new nf(i.from-t-1).updateHeight(e,t));o<=r&&i.more;){let t=e.doc.lineAt(o).length;n.length&&n.push(null);let r=i.heights[i.index++],a=0;r<0&&(a=-r,r=i.heights[i.index++]),-1==s?s=r:Math.abs(r-s)>=Yd&&(s=-2);let l=new tf(t,r,a);l.outdated=!1,n.push(l),o+=t+1}o<=r&&n.push(null,new nf(r-o).updateHeight(e,o));let a=Jd.of(n);return(s<0||Math.abs(a.height-this.height)>=Yd||Math.abs(s-this.heightMetrics(e,t).perLine)>=Yd)&&(Wd=!0),Qd(this,a)}return(n||this.outdated)&&(this.setHeight(e.heightForGap(t,t+this.length)),this.outdated=!1),this}toString(){return`gap(${this.length})`}}class rf extends Jd{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 r=n+this.left.height;return e<r?this.left.blockAt(e,t,n,i):this.right.blockAt(e,t,r,i+this.left.length+this.break)}lineAt(e,t,n,i,r){let o=i+this.left.height,s=r+this.left.length+this.break,a=t==Xd.ByHeight?e<o:e<s,l=a?this.left.lineAt(e,t,n,i,r):this.right.lineAt(e,t,n,o,s);if(this.break||(a?l.to<s:l.from>s))return l;let c=t==Xd.ByPosNoHeight?Xd.ByPosNoHeight:Xd.ByPos;return a?l.join(this.right.lineAt(s,c,n,o,s)):this.left.lineAt(s,c,n,i,r).join(l)}forEachLine(e,t,n,i,r,o){let s=i+this.left.height,a=r+this.left.length+this.break;if(this.break)e<a&&this.left.forEachLine(e,t,n,i,r,o),t>=a&&this.right.forEachLine(e,t,n,s,a,o);else{let l=this.lineAt(a,Xd.ByPos,n,i,r);e<l.from&&this.left.forEachLine(e,l.from-1,n,i,r,o),l.to>=e&&l.from<=t&&o(l),t>l.to&&this.right.forEachLine(l.to+1,t,n,s,a,o)}}replace(e,t,n){let i=this.left.length+this.break;if(t<i)return this.balanced(this.left.replace(e,t,n),this.right);if(e>this.left.length)return this.balanced(this.left,this.right.replace(e-i,t-i,n));let r=[];e>0&&this.decomposeLeft(e,r);let o=r.length;for(let e of n)r.push(e);if(e>0&&of(r,o-1),t<this.length){let e=r.length;this.decomposeRight(t,r),of(r,e)}return Jd.of(r)}decomposeLeft(e,t){let n=this.left.length;if(e<=n)return this.left.decomposeLeft(e,t);t.push(this.left),this.break&&(n++,e>=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);e<n&&this.left.decomposeRight(e,t),this.break&&e<i&&t.push(null),t.push(this.right)}balanced(e,t){return e.size>2*t.size||t.size>2*e.size?Jd.of(this.break?[e,null,t]:[e,t]):(this.left=Qd(this.left,e),this.right=Qd(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:r,right:o}=this,s=t+r.length+this.break,a=null;return i&&i.from<=t+r.length&&i.more?a=r=r.updateHeight(e,t,n,i):r.updateHeight(e,t,n),i&&i.from<=s+o.length&&i.more?a=o=o.updateHeight(e,s,n,i):o.updateHeight(e,s,n),a?this.balanced(r,o):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}}function of(e,t){let n,i;null==e[t]&&(n=e[t-1])instanceof nf&&(i=e[t+1])instanceof nf&&e.splice(t-1,3,new nf(n.length+1+i.length))}class sf{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 tf?n.length+=e-this.pos:(e>this.pos||!this.isCovered)&&this.nodes.push(new tf(e-this.pos,-1,0)),this.writtenTo=e,t>e&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=t}point(e,t,n){if(e<t||n.heightRelevant){let i=n.widget?n.widget.estimatedHeight:0,r=n.widget?n.widget.lineBreaks:0;i<0&&(i=this.oracle.lineHeight);let o=t-e;n.block?this.addBlock(new ef(o,i,n)):(o||r||i>=5)&&this.addLineDeco(i,r,o)}else t>e&&this.span(e,t);this.lineEnd>-1&&this.lineEnd<this.pos&&(this.lineEnd=this.oracle.doc.lineAt(this.pos).to)}enterLine(){if(this.lineStart>-1)return;let{from:e,to:t}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=t,this.writtenTo<e&&((this.writtenTo<e-1||null==this.nodes[this.nodes.length-1])&&this.nodes.push(this.blankContent(this.writtenTo,e-1)),this.nodes.push(null)),this.pos>e&&this.nodes.push(new tf(this.pos-e,-1,0)),this.writtenTo=this.pos}blankContent(e,t){let n=new nf(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 tf)return e;let t=new tf(0,-1,0);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 tf||this.isCovered?(this.writtenTo<this.pos||null==t)&&this.nodes.push(this.blankContent(this.writtenTo,this.pos)):this.nodes.push(new tf(0,-1,0));let n=e;for(let e of this.nodes)e instanceof tf&&e.updateHeight(this.oracle,n),n+=e?e.length:1;return this.nodes}static build(e,t,n,i){let r=new sf(n,e);return rh.spans(t,n,i,r,0),r.finish(n)}}class af{constructor(){this.changes=[]}compareRange(){}comparePoint(e,t,n,i){(e<t||n&&n.heightRelevant||i&&i.heightRelevant)&&Yh(e,t,this.changes,5)}}function lf(e,t){let n=e.getBoundingClientRect(),i=e.ownerDocument,r=i.defaultView||window,o=Math.max(0,n.left),s=Math.min(r.innerWidth,n.right),a=Math.max(0,n.top),l=Math.min(r.innerHeight,n.bottom);for(let t=e.parentNode;t&&t!=i.body;)if(1==t.nodeType){let n=t,i=window.getComputedStyle(n);if((n.scrollHeight>n.clientHeight||n.scrollWidth>n.clientWidth)&&"visible"!=i.overflow){let i=n.getBoundingClientRect();o=Math.max(o,i.left),s=Math.min(s,i.right),a=Math.max(a,i.top),l=Math.min(t==e.parentNode?r.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:o-n.left,right:Math.max(o,s)-n.left,top:a-(n.top+t),bottom:Math.max(a,l)-(n.top+t)}}function cf(e,t){let n=e.getBoundingClientRect();return{left:0,right:n.right-n.left,top:t,bottom:n.bottom-(n.top+t)}}class hf{constructor(e,t,n,i){this.from=e,this.to=t,this.size=n,this.displaySize=i}static same(e,t){if(e.length!=t.length)return!1;for(let n=0;n<e.length;n++){let i=e[n],r=t[n];if(i.from!=r.from||i.to!=r.to||i.size!=r.size)return!1}return!0}draw(e,t){return Hh.replace({widget:new uf(this.displaySize*(t?e.scaleY:e.scaleX),t)}).range(this.from,this.to)}}class uf extends zh{constructor(e,t){super(),this.size=e,this.vertical=t}eq(e){return e.size==this.size&&e.vertical==this.vertical}toDOM(){let e=document.createElement("div");return this.vertical?e.style.height=this.size+"px":(e.style.width=this.size+"px",e.style.height="2px",e.style.display="inline-block"),e}get estimatedHeight(){return this.vertical?this.size:-1}}class pf{constructor(e){this.state=e,this.pixelViewport={left:0,right:window.innerWidth,top:0,bottom:0},this.inView=!0,this.paddingTop=0,this.paddingBottom=0,this.contentDOMWidth=0,this.contentDOMHeight=0,this.editorHeight=0,this.editorWidth=0,this.scrollTop=0,this.scrolledToBottom=!1,this.scaleX=1,this.scaleY=1,this.scrollAnchorPos=0,this.scrollAnchorHeight=-1,this.scaler=mf,this.scrollTarget=null,this.printing=!1,this.mustMeasureContent=!0,this.defaultTextDirection=bu.LTR,this.visibleRanges=[],this.mustEnforceCursorAssoc=!1;let t=e.facet(ap).some((e=>"function"!=typeof e&&"cm-lineWrapping"==e.class));this.heightOracle=new Ud(t),this.stateDeco=e.facet(lp).filter((e=>"function"!=typeof e)),this.heightMap=Jd.empty().applyChanges(this.stateDeco,Fl.empty,this.heightOracle.setDoc(e.doc),[new yp(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=Hh.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 df(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?mf:new yf(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(vf(e,this.scaler))}))}update(e,t=null){this.state=e.state;let n=this.stateDeco;this.stateDeco=this.state.facet(lp).filter((e=>"function"!=typeof e));let i=e.changedRanges,r=yp.extendWithRanges(i,function(e,t,n){let i=new af;return rh.compare(e,t,n,i,0),i.changes}(n,this.stateDeco,e?e.changes:Zl.empty(this.state.doc.length))),o=this.heightMap.height,s=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollTop);Hd(),this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),r),(this.heightMap.height!=o||Wd)&&(e.flags|=2),s?(this.scrollAnchorPos=e.changes.mapPos(s.from,-1),this.scrollAnchorHeight=s.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=o);let a=r.length?this.mapViewport(this.viewport,e.changes):this.viewport;(t&&(t.range.head<a.from||t.range.head>a.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(e.changes),t&&(this.scrollTarget=t),!this.mustEnforceCursorAssoc&&e.selectionSet&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&!e.state.facet(Xu)&&(this.mustEnforceCursorAssoc=!0)}measure(e){let t=e.contentDOM,n=window.getComputedStyle(t),i=this.heightOracle,r=n.whiteSpace;this.defaultTextDirection="rtl"==n.direction?bu.RTL:bu.LTR;let o=this.heightOracle.mustRefreshForWrapping(r),s=t.getBoundingClientRect(),a=o||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}=cu(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|=16,o=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|=18),this.editorWidth!=e.scrollDOM.clientWidth&&(i.lineWrapping&&(a=!0),this.editorWidth=e.scrollDOM.clientWidth,l|=16);let p=e.scrollDOM.scrollTop*this.scaleY;this.scrollTop!=p&&(this.scrollAnchorHeight=-1,this.scrollTop=p),this.scrolledToBottom=mu(e.scrollDOM);let d=(this.printing?cf:lf)(t,this.paddingTop),f=d.top-this.pixelViewport.top,g=d.bottom-this.pixelViewport.bottom;this.pixelViewport=d;let m=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(m!=this.inView&&(this.inView=m,m&&(a=!0)),!this.inView&&!this.scrollTarget&&!function(e){let t=e.getBoundingClientRect(),n=e.ownerDocument.defaultView||window;return t.left<n.innerWidth&&t.right>0&&t.top<n.innerHeight&&t.bottom>0}(e.dom))return 0;let y=s.width;if(this.contentDOMWidth==y&&this.editorHeight==e.scrollDOM.clientHeight||(this.contentDOMWidth=s.width,this.editorHeight=e.scrollDOM.clientHeight,l|=16),a){let t=e.docView.measureVisibleLineHeights(this.viewport);if(i.mustRefreshForHeights(t)&&(o=!0),o||i.lineWrapping&&Math.abs(y-this.contentDOMWidth)>i.charWidth){let{lineHeight:n,charWidth:s,textHeight:a}=e.docView.measureTextSize();o=n>0&&i.refresh(r,n,s,a,Math.max(5,y/s),t),o&&(e.docView.minWidth=0,l|=16)}f>0&&g>0?c=Math.max(f,g):f<0&&g<0&&(c=Math.min(f,g)),Hd();for(let n of this.viewports){let r=n.from==this.viewport.from?t:e.docView.measureVisibleLineHeights(n);this.heightMap=(o?Jd.empty().applyChanges(this.stateDeco,Fl.empty,this.heightOracle,[new yp(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(i,0,o,new Gd(n.from,r))}Wd&&(l|=2)}let v=!this.viewportIsAppropriate(this.viewport,c)||this.scrollTarget&&(this.scrollTarget.range.head<this.viewport.from||this.scrollTarget.range.head>this.viewport.to);return v&&(2&l&&(l|=this.updateScaler()),this.viewport=this.getViewport(c,this.scrollTarget),l|=this.updateForViewport()),(2&l||v)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(o?[]: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,r=this.heightOracle,{visibleTop:o,visibleBottom:s}=this,a=new df(i.lineAt(o-1e3*n,Xd.ByHeight,r,0,0).from,i.lineAt(s+1e3*(1-n),Xd.ByHeight,r,0,0).to);if(t){let{head:e}=t.range;if(e<a.from||e>a.to){let n,o=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),s=i.lineAt(e,Xd.ByPos,r,0,0);n="center"==t.y?(s.top+s.bottom)/2-o/2:"start"==t.y||"nearest"==t.y&&e<a.from?s.top:s.bottom-o,a=new df(i.lineAt(n-500,Xd.ByHeight,r,0,0).from,i.lineAt(n+o+500,Xd.ByHeight,r,0,0).to)}}return a}mapViewport(e,t){let n=t.mapPos(e.from,-1),i=t.mapPos(e.to,1);return new df(this.heightMap.lineAt(n,Xd.ByPos,this.heightOracle,0,0).from,this.heightMap.lineAt(i,Xd.ByPos,this.heightOracle,0,0).to)}viewportIsAppropriate({from:e,to:t},n=0){if(!this.inView)return!0;let{top:i}=this.heightMap.lineAt(e,Xd.ByPos,this.heightOracle,0,0),{bottom:r}=this.heightMap.lineAt(t,Xd.ByPos,this.heightOracle,0,0),{visibleTop:o,visibleBottom:s}=this;return(0==e||i<=o-Math.max(10,Math.min(-n,250)))&&(t==this.state.doc.length||r>=s+Math.max(10,Math.min(n,250)))&&i>o-2e3&&r<s+2e3}mapLineGaps(e,t){if(!e.length||t.empty)return e;let n=[];for(let i of e)t.touchesRange(i.from,i.to)||n.push(new hf(t.mapPos(i.from),t.mapPos(i.to),i.size,i.displaySize));return n}ensureLineGaps(e,t){let n=this.heightOracle.lineWrapping,i=n?1e4:2e3,r=i>>1,o=i<<1;if(this.defaultTextDirection!=bu.LTR&&!n)return[];let s=[],a=(i,o,l,c)=>{if(o-i<r)return;let h=this.state.selection.main,u=[h.from];h.empty||u.push(h.to);for(let e of u)if(e>i&&e<o)return a(i,e-10,l,c),void a(e+10,o,l,c);let p=function(e,t){for(let n of e)if(t(n))return n;return}(e,(e=>e.from>=l.from&&e.to<=l.to&&Math.abs(e.from-i)<r&&Math.abs(e.to-o)<r&&!u.some((t=>e.from<t&&e.to>t))));if(!p){if(o<l.to&&t&&n&&t.visibleRanges.some((e=>e.from<=o&&e.to>=o))){let e=t.moveToLineBoundary(ac.cursor(o),!1,!0).head;e>i&&(o=e)}let e=this.gapSize(l,i,o,c);p=new hf(i,o,e,n||e<2e6?e:2e6)}s.push(p)},l=t=>{if(t.length<o||t.type!=Wh.Text)return;let r=function(e,t,n){let i=[],r=e,o=0;rh.spans(n,e,t,{span(){},point(e,t){e>r&&(i.push({from:r,to:e}),o+=e-r),r=t}},20),r<t&&(i.push({from:r,to:t}),o+=t-r);return{total:o,ranges:i}}(t.from,t.to,this.stateDeco);if(r.total<o)return;let s,l,c=this.scrollTarget?this.scrollTarget.range.head:null;if(n){let e,n,o=i/this.heightOracle.lineLength*this.heightOracle.lineHeight;if(null!=c){let i=gf(r,c),s=((this.visibleBottom-this.visibleTop)/2+o)/t.height;e=i-s,n=i+s}else e=(this.visibleTop-t.top-o)/t.height,n=(this.visibleBottom-t.top+o)/t.height;s=ff(r,e),l=ff(r,n)}else{let n=r.total*this.heightOracle.charWidth,o=i*this.heightOracle.charWidth,a=0;if(n>2e6)for(let n of e)n.from>=t.from&&n.from<t.to&&n.size!=n.displaySize&&n.from*this.heightOracle.charWidth+a<this.pixelViewport.left&&(a=n.size-n.displaySize);let h,u,p=this.pixelViewport.left+a,d=this.pixelViewport.right+a;if(null!=c){let e=gf(r,c),t=((d-p)/2+o)/n;h=e-t,u=e+t}else h=(p-o)/n,u=(d+o)/n;s=ff(r,h),l=ff(r,u)}s>t.from&&a(t.from,s,t,r),l<t.to&&a(l,t.to,t,r)};for(let e of this.viewportLines)Array.isArray(e.type)?e.type.forEach(l):l(e);return s}gapSize(e,t,n,i){let r=gf(i,n)-gf(i,t);return this.heightOracle.lineWrapping?e.height*r:i.total*this.heightOracle.charWidth*r}updateLineGaps(e){hf.same(e,this.lineGaps)||(this.lineGaps=e,this.lineGapDeco=Hh.set(e.map((e=>e.draw(this,this.heightOracle.lineWrapping)))))}computeVisibleRanges(e){let t=this.stateDeco;this.lineGaps.length&&(t=t.concat(this.lineGapDeco));let n=[];rh.spans(t,this.viewport.from,this.viewport.to,{span(e,t){n.push({from:e,to:t})},point(){}},20);let i=0;if(n.length!=this.visibleRanges.length)i=12;else for(let t=0;t<n.length&&!(8&i);t++){let r=this.visibleRanges[t],o=n[t];r.from==o.from&&r.to==o.to||(i|=4,e&&e.mapPos(r.from,-1)==o.from&&e.mapPos(r.to,1)==o.to||(i|=8))}return this.visibleRanges=n,i}lineBlockAt(e){return e>=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find((t=>t.from<=e&&t.to>=e))||vf(this.heightMap.lineAt(e,Xd.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))||vf(this.heightMap.lineAt(this.scaler.fromDOM(e),Xd.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 vf(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 df{constructor(e,t){this.from=e,this.to=t}}function ff({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:r}=t[e],o=r-n;if(i<=o)return n+i;i-=o}}function gf(e,t){let n=0;for(let{from:i,to:r}of e.ranges){if(t<=r){n+=t-i;break}n+=r-i}return n/e.total}const mf={toDOM:e=>e,fromDOM:e=>e,scale:1,eq(e){return e==this}};class yf{constructor(e,t,n){let i=0,r=0,o=0;this.viewports=n.map((({from:n,to:r})=>{let o=t.lineAt(n,Xd.ByPos,e,0,0).top,s=t.lineAt(r,Xd.ByPos,e,0,0).bottom;return i+=s-o,{from:n,to:r,top:o,bottom:s,domTop:0,domBottom:0}})),this.scale=(7e6-i)/(t.height-i);for(let e of this.viewports)e.domTop=o+(e.top-r)*this.scale,o=e.domBottom=e.domTop+(e.bottom-e.top),r=e.bottom}toDOM(e){for(let t=0,n=0,i=0;;t++){let r=t<this.viewports.length?this.viewports[t]:null;if(!r||e<r.top)return i+(e-n)*this.scale;if(e<=r.bottom)return r.domTop+(e-r.top);n=r.bottom,i=r.domBottom}}fromDOM(e){for(let t=0,n=0,i=0;;t++){let r=t<this.viewports.length?this.viewports[t]:null;if(!r||e<r.domTop)return n+(e-i)/this.scale;if(e<=r.domBottom)return r.top+(e-r.domTop);n=r.bottom,i=r.domBottom}}eq(e){return e instanceof yf&&(this.scale==e.scale&&this.viewports.length==e.viewports.length&&this.viewports.every(((t,n)=>t.from==e.viewports[n].from&&t.to==e.viewports[n].to)))}}function vf(e,t){if(1==t.scale)return e;let n=t.toDOM(e.top),i=t.toDOM(e.bottom);return new Kd(e.from,e.length,n,i-n,Array.isArray(e._content)?e._content.map((e=>vf(e,t))):e._content)}const wf=hc.define({combine:e=>e.join(" ")}),bf=hc.define({combine:e=>e.indexOf(!0)>-1}),xf=wh.newName(),_f=wh.newName(),kf=wh.newName(),Sf={"&light":"."+_f,"&dark":"."+kf};function Cf(e,t,n){return new wh(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 Ef=Cf("."+xf,{"&":{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:"#ddd"},".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",zIndex:200},".cm-gutters-before":{insetInlineStart:0},".cm-gutters-after":{insetInlineEnd:0},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",border:"0px solid #ddd","&.cm-gutters-before":{borderRightWidth:"1px"},"&.cm-gutters-after":{borderLeftWidth:"1px"}},"&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-dialog":{padding:"2px 19px 4px 6px",position:"relative","& label":{fontSize:"80%"}},".cm-dialog-close":{position:"absolute",top:"3px",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",fontSize:"14px",padding:"0"},".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",userSelect:"none"},".cm-highlightSpace":{backgroundImage:"radial-gradient(circle at 50% 55%, #aaa 20%, transparent 5%)",backgroundPosition:"center"},".cm-highlightTab":{backgroundImage:'url(\'data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="200" height="20"><path stroke="%23888" stroke-width="1" fill="none" d="M1 10H196L190 5M190 15L196 10M197 4L197 16"/></svg>\')',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"}},Sf),Mf={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},Af=Ph.ie&&Ph.ie_version<=11;class Tf{constructor(e){this.view=e,this.active=!1,this.editContext=null,this.selectionRange=new hu,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);(Ph.ie&&Ph.ie_version<=11||Ph.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||!Ph.android||!1===e.constructor.EDIT_CONTEXT||Ph.chrome&&Ph.chrome_version<126||(this.editContext=new Of(e),e.state.facet(tp)&&(e.contentDOM.editContext=this.editContext.editContext)),Af&&(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)<Date.now()-75&&this.onResize()})),this.resizeScroll.observe(e.scrollDOM)),this.addWindowListeners(this.win=e.win),this.start(),"function"==typeof IntersectionObserver&&(this.intersection=new IntersectionObserver((e=>{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(tp)?n.root.activeElement!=this.dom:!eu(this.dom,i))return;let r=i.anchorNode&&n.docView.tile.nearest(i.anchorNode);r&&r.isWidget()&&r.widget.ignoreEvent(e)?t||(this.selectionChanged=!1):(Ph.ie&&Ph.ie_version<=11||Ph.android&&Ph.chrome)&&!n.state.selection.main.empty&&i.focusNode&&nu(i.focusNode,i.focusOffset,i.anchorNode,i.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,t=Qh(e.root);if(!t)return!1;let n=Ph.safari&&11==e.root.nodeType&&e.root.activeElement==this.dom&&function(e,t){if(t.getComposedRanges){let n=t.getComposedRanges(e.root)[0];if(n)return Df(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?Df(e,n):null}(this.view,t)||t;if(!n||this.selectionRange.eq(n))return!1;let i=eu(this.dom,n);return i&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime<Date.now()-300&&function(e,t){let n=t.focusNode,i=t.focusOffset;if(!n||t.anchorNode!=n||t.anchorOffset!=i)return!1;for(i=Math.min(i,su(n));;)if(i){if(1!=n.nodeType)return!1;let e=n.childNodes[i-1];"false"==e.contentEditable?i--:(n=e,i=su(n))}else{if(n==e)return!0;i=iu(n),n=n.parentNode}}(this.dom,n)?(this.view.inputState.lastFocusTime=0,e.docView.updateSelection(),!1):(this.selectionRange.setRange(n),i&&(this.selectionChanged=!0),!0)}setSelectionRange(e,t){this.selectionRange.set(e.node,e.offset,t.node,t.offset),this.selectionChanged=!1}clearSelectionRange(){this.selectionRange.set(null,0,null,0)}listenForScroll(){this.parentCheck=-1;let e=0,t=null;for(let n=this.dom;n;)if(1==n.nodeType)!t&&e<this.scrollTargets.length&&this.scrollTargets[e]==n?e++:t||(t=this.scrollTargets.slice(0,e)),t&&t.push(n),n=n.assignedSlot||n.parentNode;else{if(11!=n.nodeType)break;n=n.host}if(e<this.scrollTargets.length&&!t&&(t=this.scrollTargets.slice(0,e)),t){for(let e of this.scrollTargets)e.removeEventListener("scroll",this.onScroll);for(let e of this.scrollTargets=t)e.addEventListener("scroll",this.onScroll)}}ignore(e){if(!this.active)return e();try{return this.stop(),e()}finally{this.start(),this.clear()}}start(){this.active||(this.observer.observe(this.dom,Mf),Af&&this.dom.addEventListener("DOMCharacterDataModified",this.onCharData),this.active=!0)}stop(){this.active&&(this.active=!1,this.observer.disconnect(),Af&&this.dom.removeEventListener("DOMCharacterDataModified",this.onCharData))}clear(){this.processRecords(),this.queue.length=0,this.selectionChanged=!1}delayAndroidKey(e,t){var n;if(!this.delayedAndroidKey){let e=()=>{let e=this.delayedAndroidKey;if(e){this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=e.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&e.force&&gu(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<Date.now()-50||!!(null===(n=this.delayedAndroidKey)||void 0===n?void 0:n.force)})}clearDelayedAndroidKey(){this.win.cancelAnimationFrame(this.flushingAndroidKey),this.delayedAndroidKey=null,this.flushingAndroidKey=-1}flushSoon(){this.delayedFlush<0&&(this.delayedFlush=this.view.win.requestAnimationFrame((()=>{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 r of e){let e=this.readMutation(r);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&&eu(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 r=new hd(this.view,e,t,n);return this.view.docView.domChanged={newSel:r.newSel?r.newSel.main:null},r}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=pd(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.tile.nearest(e.target);if(!t||t.isWidget())return null;if(t.markDirty("attributes"==e.type),"childList"==e.type){let n=Rf(t,e.previousSibling||e.target.previousSibling,-1),i=Rf(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(tp)!=e.state.facet(tp)&&(e.view.contentDOM.editContext=e.state.facet(tp)?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 Rf(e,t,n){for(;t;){let i=bp.get(t);if(i&&i.parent==e)return i;let r=t.parentNode;t=r!=e.dom?r:n>0?t.nextSibling:t.previousSibling}return null}function Df(e,t){let n=t.startContainer,i=t.startOffset,r=t.endContainer,o=t.endOffset,s=e.docView.domAtPos(e.state.selection.main.anchor,1);return nu(s.node,s.offset,r,o)&&([n,i,r,o]=[r,o,n,i]),{anchorNode:n,anchorOffset:i,focusNode:r,focusOffset:o}}class Of{constructor(e){this.from=0,this.to=0,this.pendingContextChange=null,this.handlers=Object.create(null),this.composing=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=n=>{let i=e.state.selection.main,{anchor:r,head:o}=i,s=this.toEditorPos(n.updateRangeStart),a=this.toEditorPos(n.updateRangeEnd);e.inputState.composing>=0&&!this.composing&&(this.composing={contextBase:n.updateRangeStart,editorBase:s,drifted:!1});let l=a-s>n.text.length;s==this.from&&r<this.from?s=r:a==this.to&&r>this.to&&(a=r);let c=fd(e.state.sliceDoc(s,a),n.text,(l?i.from:i.to)-s,l?"end":null);if(!c){let t=ac.single(this.toEditorPos(n.selectionStart),this.toEditorPos(n.selectionEnd));return void(t.main.eq(i)||e.dispatch({selection:t,userEvent:"select"}))}let h={from:c.from+s,to:c.toA+s,insert:Fl.of(n.text.slice(c.from,c.toB).split("\n"))};if((Ph.mac||Ph.android)&&h.from==o-1&&/^\. ?$/.test(n.text)&&"off"==e.contentDOM.getAttribute("autocorrect")&&(h={from:s,to:a,insert:Fl.of([n.text.replace("."," ")])}),this.pendingContextChange=h,!e.state.readOnly){let t=this.to-this.from+(h.to-h.from+h.insert.length);dd(e,h,ac.single(this.toEditorPos(n.selectionStart,t),this.toEditorPos(n.selectionEnd,t)))}this.pendingContextChange&&(this.revertPending(e.state),this.setSelection(e.state)),h.from<h.to&&!h.insert.length&&e.inputState.composing>=0&&!/[\\p{Alphabetic}\\p{Number}_]/.test(t.text.slice(Math.max(0,n.updateRangeStart-1),Math.min(t.text.length,n.updateRangeStart+1)))&&this.handlers.compositionend(n)},this.handlers.characterboundsupdate=n=>{let i=[],r=null;for(let t=this.toEditorPos(n.rangeStart),o=this.toEditorPos(n.rangeEnd);t<o;t++){let n=e.coordsForChar(t);r=n&&new DOMRect(n.left,n.top,n.right-n.left,n.bottom-n.top)||r||new DOMRect,i.push(r)}t.updateCharacterBounds(n.rangeStart,i)},this.handlers.textformatupdate=t=>{let n=[];for(let e of t.getTextFormats()){let t=e.underlineStyle,i=e.underlineThickness;if(!/none/i.test(t)&&!/none/i.test(i)){let r=this.toEditorPos(e.rangeStart),o=this.toEditorPos(e.rangeEnd);if(r<o){let e=`text-decoration: underline ${/^[a-z]/.test(t)?t+" ":"Dashed"==t?"dashed ":"Squiggle"==t?"wavy ":""}${/thin/i.test(i)?1:2}px`;n.push(Hh.mark({attributes:{style:e}}).range(r,o))}}}e.dispatch({effects:Zu.of(Hh.set(n))})},this.handlers.compositionstart=()=>{e.inputState.composing<0&&(e.inputState.composing=0,e.inputState.compositionFirstChange=!0)},this.handlers.compositionend=()=>{if(e.inputState.composing=-1,e.inputState.compositionFirstChange=null,this.composing){let{drifted:t}=this.composing;this.composing=null,t&&this.reset(e.state)}};for(let e in this.handlers)t.addEventListener(e,this.handlers[e]);this.measureReq={read:e=>{this.editContext.updateControlBounds(e.contentDOM.getBoundingClientRect());let t=Qh(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(((r,o,s,a,l)=>{if(n)return;let c=l.length-(o-r);if(i&&o>=i.to){if(i.from==r&&i.to==o&&i.insert.eq(l))return i=this.pendingContextChange=null,t+=c,void(this.to+=c);i=null,this.revertPending(e.state)}if(r+=t,(o+=t)<=this.from)this.from+=c,this.to+=c;else if(r<this.to){if(r<this.from||o>this.to||this.to-this.from+l.length>3e4)return void(n=!0);this.editContext.updateText(this.toContextPos(r),this.toContextPos(o),l.toString()),this.to+=c}t+=c})),i&&!n&&this.revertPending(e.state),!n}update(e){let t=this.pendingContextChange,n=e.startState.selection.main;this.composing&&(this.composing.drifted||!e.changes.touchesRange(n.from,n.to)&&e.transactions.some((e=>!e.isUserEvent("input.type")&&e.changes.touchesRange(this.from,this.to))))?(this.composing.drifted=!0,this.composing.editorBase=e.changes.mapPos(this.composing.editorBase)):this.applyEdits(e)&&this.rangeIsValid(e.state)?(e.docChanged||e.selectionSet||t)&&this.setSelection(e.state):(this.pendingContextChange=null,this.reset(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)}reset(e){this.resetRange(e),this.editContext.updateText(0,this.editContext.text.length,e.doc.sliceString(this.from,this.to)),this.setSelection(e)}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.to<e.doc.length&&this.to-t<500||this.to-this.from>3e4)}toEditorPos(e,t=this.to-this.from){e=Math.min(e,t);let n=this.composing;return n&&n.drifted?n.editorBase+(e-n.contextBase):e+this.from}toContextPos(e){let t=this.composing;return t&&t.drifted?t.contextBase+(e-t.editorBase):e-this.from}destroy(){for(let e in this.handlers)this.editContext.removeEventListener(e,this.handlers[e])}}class Nf{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&&this.inputState.composing>0}get compositionStarted(){return!!this.inputState&&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 pf(e.state||Qc.create(e)),e.scrollTo&&e.scrollTo.is(Qu)&&(this.viewState.scrollTarget=e.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(ip).map((e=>new op(e)));for(let e of this.plugins)e.update(this);this.observer=new Tf(this),this.inputState=new gd(this),this.inputState.ensureHandlers(this.plugins),this.docView=new zp(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 Vc?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,r=this.state;for(let t of e){if(t.startState!=r)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");r=t.state}if(this.destroyed)return void(this.viewState.state=r);let o=this.hasFocus,s=0,a=null;e.some((e=>e.annotation(Fd)))?(this.inputState.notifiedFocused=o,s=1):o!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=o,a=jd(r,o),a||(s=1));let l=this.observer.delayedAndroidKey,c=null;if(l?(this.observer.clearDelayedAndroidKey(),c=this.observer.readChange(),(c&&!this.state.doc.eq(r.doc)||!this.state.selection.eq(r.selection))&&(c=null)):this.observer.clear(),r.facet(Qc.phrases)!=this.state.facet(Qc.phrases))return this.setState(r);t=vp.create(this,r,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 Ju(e.empty?e:ac.cursor(e.head,e.head>e.anchor?-1:1))}for(let e of t.effects)e.is(Qu)&&(h=e.value.clip(this.state))}this.viewState.update(t,h),this.bidiCache=Bf.update(this.bidiCache,t.changes),t.empty||(this.updatePlugins(t),this.inputState.update(t)),n=this.docView.update(t),this.state.facet(mp)!=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(wf)!=t.state.facet(wf)&&(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(zu))try{e(t)}catch(e){ep(this.state,e,"update listener")}(a||c)&&Promise.resolve().then((()=>{a&&this.state==a.startState&&this.dispatch(a),c&&!pd(this,c)&&l.force&&gu(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 pf(e),this.plugins=e.facet(ip).map((e=>new op(e))),this.pluginMap.clear();for(let e of this.plugins)e.update(this);this.docView.destroy(),this.docView=new zp(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(ip),n=e.state.facet(ip);if(t!=n){let i=[];for(let r of n){let n=t.indexOf(r);if(n<0)i.push(new op(r));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<this.plugins.length;e++)this.plugins[e].update(this);t!=n&&this.inputState.ensureHandlers(this.plugins)}docViewUpdate(){for(let e of this.plugins){let t=e.value;if(t&&t.docViewUpdate)try{t.docViewUpdate(this)}catch(e){ep(this.state,e,"doc view update listener")}}}measure(e=!0){if(this.destroyed)return;if(this.measureScheduled>-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:r,scrollAnchorHeight:o}=this.viewState;Math.abs(i-this.viewState.scrollTop)>1&&(o=-1),this.viewState.scrollAnchorHeight=-1;try{for(let e=0;;e++){if(o<0)if(mu(n))r=-1,o=this.viewState.heightMap.height;else{let e=this.viewState.scrollAnchorAt(i);r=e.from,o=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 ep(this.state,e),Lf}})),c=vp.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;e<a.length;e++)if(l[e]!=Lf)try{let t=a[e];t.write&&t.write(l[e],this)}catch(e){ep(this.state,e)}if(h&&this.docView.updateSelection(!0),!c.viewportChanged&&0==this.measureRequests.length){if(this.viewState.editorHeight){if(this.viewState.scrollTarget){this.docView.scrollIntoView(this.viewState.scrollTarget),this.viewState.scrollTarget=null,o=-1;continue}{let e=(r<0?this.viewState.heightMap.height:this.viewState.lineBlockAt(r).top)-o;if(e>1||e<-1){i+=e,n.scrollTop=i/this.scaleY,o=-1;continue}}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(t&&!t.empty)for(let e of this.state.facet(zu))e(t)}get themeClasses(){return xf+" "+(this.state.facet(bf)?kf:_f)+" "+this.state.facet(wf)}updateAttrs(){let e=Pf(this,sp,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),t={spellcheck:"false",autocorrect:"off",autocapitalize:"off",writingsuggestions:"false",translate:"no",contenteditable:this.state.facet(tp)?"true":"false",class:"cm-content",style:`${Ph.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(t["aria-readonly"]="true"),Pf(this,ap,t);let n=this.observer.ignore((()=>{let n=Vh(this.contentDOM,this.contentAttrs,t),i=Vh(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)if(e.is(Nf.announce)){t&&(this.announceDOM.textContent=""),t=!1,this.announceDOM.appendChild(document.createElement("div")).textContent=e.value}}mountStyles(){this.styleModules=this.state.facet(mp);let e=this.state.facet(Nf.cspNonce);wh.mount(this.root,this.styleModules.concat(Ef).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;t<this.measureRequests.length;t++)if(this.measureRequests[t].key===e.key)return void(this.measureRequests[t]=e);this.measureRequests.push(e)}}plugin(e){let t=this.pluginMap.get(e);return(void 0===t||t&&t.plugin!=e)&&this.pluginMap.set(e,t=this.plugins.find((t=>t.plugin==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 ed(this,e,Jp(this,e,t,n))}moveByGroup(e,t){return ed(this,e,Jp(this,e,t,(t=>function(e,t,n){let i=e.state.charCategorizer(t),r=i(n);return e=>{let t=i(e);return r==Kc.Space&&(r=t),r==t}}(this,e.head,t))))}visualLineSide(e,t){let n=this.bidiSpans(e),i=this.textDirectionAt(e.from),r=n[t?n.length-1:0];return ac.cursor(r.side(t,i)+e.from,r.forward(!t,i)?1:-1)}moveToLineBoundary(e,t,n=!0){return Yp(this,e,t,n)}moveVertically(e,t,n){return ed(this,e,function(e,t,n,i){let r=t.head,o=n?1:-1;if(r==(n?e.state.doc.length:0))return ac.cursor(r,t.assoc);let s,a=t.goalColumn,l=e.contentDOM.getBoundingClientRect(),c=e.coordsAtPos(r,t.assoc||-1),h=e.documentTop;if(c)null==a&&(a=c.left-l.left),s=o<0?c.top:c.bottom;else{let t=e.viewState.lineBlockAt(r);null==a&&(a=Math.min(l.right-l.left,e.defaultCharacterWidth*(r-t.from))),s=(o<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=nd(e,{x:u,y:s+(p+t)*o},!1,o);return ac.cursor(n.pos,n.assoc,void 0,a)}}(this,e,t,n))}domAtPos(e,t=1){return this.docView.domAtPos(e,t)}posAtDOM(e,t=0){return this.docView.posFromDOM(e,t)}posAtCoords(e,t=!0){this.readMeasured();let n=nd(this,e,t);return n&&n.pos}posAndSideAtCoords(e,t=!0){return this.readMeasured(),nd(this,e,t)}coordsAtPos(e,t=1){this.readMeasured();let n=this.docView.coordsAt(e,t);if(!n||n.left==n.right)return n;let i=this.state.doc.lineAt(e),r=this.bidiSpans(i);return au(n,r[Ru.find(r,e-i.from,-1,t)].dir==bu.LTR==t>0)}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(Ku)||e<this.viewport.from||e>this.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(e))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>qf)return Lu(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||Du(i.isolates,t=dp(this,e))))return i.order;t||(t=dp(this,e));let i=function(e,t,n){if(!e)return[new Ru(0,0,t==_u?1:0)];if(t==xu&&!n.length&&!Tu.test(e))return Lu(e.length);if(n.length)for(;e.length>Ou.length;)Ou[Ou.length]=256;let i=[],r=t==xu?0:1;return qu(e,r,r,n,0,e.length,i),i}(e.text,n,t);return this.bidiCache.push(new Bf(e.from,e.to,n,t,!0,i)),i}get hasFocus(){var e;return(this.dom.ownerDocument.hasFocus()||Ph.safari&&(null===(e=this.inputState)||void 0===e?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore((()=>{du(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 Qu.of(new Ju("number"==typeof e?ac.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 Qu.of(new Ju(ac.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 rp.define((()=>({})),{eventHandlers:e})}static domEventObservers(e){return rp.define((()=>({})),{eventObservers:e})}static theme(e,t){let n=wh.newName(),i=[wf.of(n),mp.of(Cf(`.${n}`,e))];return t&&t.dark&&i.push(bf.of(!0)),i}static baseTheme(e){return kc.lowest(mp.of(Cf("."+xf,e,Sf)))}static findFromDOM(e){var t;let n=e.querySelector(".cm-content"),i=n&&bp.get(n)||bp.get(e);return(null===(t=null==i?void 0:i.root)||void 0===t?void 0:t.view)||null}}Nf.styleModule=mp,Nf.inputHandler=Wu,Nf.clipboardInputFilter=Uu,Nf.clipboardOutputFilter=Gu,Nf.scrollHandler=Yu,Nf.focusChangeEffect=Hu,Nf.perLineTextDirection=Ku,Nf.exceptionSink=$u,Nf.updateListener=zu,Nf.editable=tp,Nf.mouseSelectionStyle=Vu,Nf.dragMovesSelection=ju,Nf.clickAddsSelectionRange=Fu,Nf.decorations=lp,Nf.blockWrappers=cp,Nf.outerDecorations=hp,Nf.atomicRanges=up,Nf.bidiIsolatedRanges=pp,Nf.scrollMargins=fp,Nf.darkTheme=bf,Nf.cspNonce=hc.define({combine:e=>e.length?e[0]:""}),Nf.contentAttributes=ap,Nf.editorAttributes=sp,Nf.lineWrapping=Nf.contentAttributes.of({class:"cm-lineWrapping"}),Nf.announce=jc.define();const qf=4096,Lf={};class Bf{constructor(e,t,n,i,r,o){this.from=e,this.to=t,this.dir=n,this.isolates=i,this.fresh=r,this.order=o}static update(e,t){if(t.empty&&!e.some((e=>e.fresh)))return e;let n=[],i=e.length?e[e.length-1].dir:bu.LTR;for(let r=Math.max(0,e.length-10);r<e.length;r++){let o=e[r];o.dir!=i||t.touchesRange(o.from,o.to)||n.push(new Bf(t.mapPos(o.from,1),t.mapPos(o.to,-1),o.dir,o.isolates,!1,o.order))}return n}}function Pf(e,t,n){for(let i=e.state.facet(t),r=i.length-1;r>=0;r--){let t=i[r],o="function"==typeof t?t(e):t;o&&Ih(o,n)}return n}class If extends eh{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}}If.prototype.elementClass="",If.prototype.toDOM=void 0,If.prototype.mapMode=Jl.TrackBefore,If.prototype.startSide=If.prototype.endSide=-1,If.prototype.point=!0;const Ff=1024;let jf=0;class Vf{constructor(e,t){this.from=e,this.to=t}}class $f{constructor(e={}){this.id=jf++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")}),this.combine=e.combine||null}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return"function"!=typeof e&&(e=Hf.match(e)),t=>{let n=e(t);return void 0===n?null:[this,n]}}}$f.closedBy=new $f({deserialize:e=>e.split(" ")}),$f.openedBy=new $f({deserialize:e=>e.split(" ")}),$f.group=new $f({deserialize:e=>e.split(" ")}),$f.isolate=new $f({deserialize:e=>{if(e&&"rtl"!=e&&"ltr"!=e&&"auto"!=e)throw new RangeError("Invalid value for isolate: "+e);return e||"auto"}}),$f.contextHash=new $f({perNode:!0}),$f.lookAhead=new $f({perNode:!0}),$f.mounted=new $f({perNode:!0});class zf{constructor(e,t,n){this.tree=e,this.overlay=t,this.parser=n}static get(e){return e&&e.props&&e.props[$f.mounted.id]}}const Wf=Object.create(null);class Hf{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):Wf,n=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(null==e.name?8:0),i=new Hf(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($f.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($f.group),i=-1;i<(n?n.length:0);i++){let r=t[i<0?e.name:n[i]];if(r)return r}}}}Hf.none=new Hf("",Object.create(null),0,8);const Uf=new WeakMap,Gf=new WeakMap;var Kf;!function(e){e[e.ExcludeBuffers=1]="ExcludeBuffers",e[e.IncludeAnonymous=2]="IncludeAnonymous",e[e.IgnoreMounts=4]="IgnoreMounts",e[e.IgnoreOverlays=8]="IgnoreOverlays"}(Kf||(Kf={}));class Xf{constructor(e,t,n,i,r){if(this.type=e,this.children=t,this.positions=n,this.length=i,this.props=null,r&&r.length){this.props=Object.create(null);for(let[e,t]of r)this.props["number"==typeof e?e:e.id]=t}}toString(){let e=zf.get(this);if(e&&!e.overlay)return e.tree.toString();let t="";for(let e of this.children){let n=e.toString();n&&(t&&(t+=","),t+=n)}return this.type.name?(/\W/.test(this.type.name)&&!this.type.isError?JSON.stringify(this.type.name):this.type.name)+(t.length?"("+t+")":""):t}cursor(e=0){return new lg(this.topNode,e)}cursorAt(e,t=0,n=0){let i=Uf.get(this)||this.topNode,r=new lg(i);return r.moveTo(e,t),Uf.set(this,r._tree),r}get topNode(){return new tg(this,0,0,null)}resolve(e,t=0){let n=Zf(Uf.get(this)||this.topNode,e,t,!1);return Uf.set(this,n),n}resolveInner(e,t=0){let n=Zf(Gf.get(this)||this.topNode,e,t,!0);return Gf.set(this,n),n}resolveStack(e,t=0){return function(e,t,n){let i=e.resolveInner(t,n),r=null;for(let e=i instanceof tg?i:i.context.parent;e;e=e.parent)if(e.index<0){let o=e.parent;(r||(r=[i])).push(o.resolve(t,n)),e=o}else{let o=zf.get(e.tree);if(o&&o.overlay&&o.overlay[0].from<=t&&o.overlay[o.overlay.length-1].to>=t){let s=new tg(o.tree,o.overlay[0].from+e.from,-1,e);(r||(r=[i])).push(Zf(s,t,n,!1))}}return r?sg(r):i}(this,e,t)}iterate(e){let{enter:t,leave:n,from:i=0,to:r=this.length}=e,o=e.mode||0,s=(o&Kf.IncludeAnonymous)>0;for(let e=this.cursor(o|Kf.IncludeAnonymous);;){let o=!1;if(e.from<=r&&e.to>=i&&(!s&&e.type.isAnonymous||!1!==t(e))){if(e.firstChild())continue;o=!0}for(;o&&n&&(s||!e.type.isAnonymous)&&n(e),!e.nextSibling();){if(!e.parent())return;o=!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:pg(Hf.none,this.children,this.positions,0,this.children.length,0,this.length,((e,t,n)=>new Xf(this.type,e,t,n,this.propValues)),e.makeTree||((e,t,n)=>new Xf(Hf.none,e,t,n)))}static build(e){return function(e){var t;let{buffer:n,nodeSet:i,maxBufferLength:r=Ff,reused:o=[],minRepeatType:s=i.types.length}=e,a=Array.isArray(n)?new Yf(n,n.length):n,l=i.types,c=0,h=0;function u(e,t,n,v,w,b){let{id:x,start:_,end:k,size:S}=a,C=h,E=c;if(S<0){if(a.next(),-1==S){let t=o[x];return n.push(t),void v.push(_-e)}if(-3==S)return void(c=x);if(-4==S)return void(h=x);throw new RangeError(`Unrecognized record size: ${S}`)}let M,A,T=l[x],R=_-e;if(k-_<=r&&(A=m(a.pos-t,w))){let t=new Uint16Array(A.size-A.skip),n=a.pos-A.size,r=t.length;for(;a.pos>n;)r=y(A.start,t,r);M=new Jf(t,k-A.start,i),R=A.start-e}else{let e=a.pos-S;a.next();let t=[],n=[],i=x>=s?x:-1,o=0,l=k;for(;a.pos>e;)i>=0&&a.id==i&&a.size>=0?(a.end<=l-r&&(f(t,n,_,o,a.end,l,i,C,E),o=t.length,l=a.end),a.next()):b>2500?p(_,e,t,n):u(_,e,t,n,i,b+1);if(i>=0&&o>0&&o<t.length&&f(t,n,_,o,_,l,i,C,E),t.reverse(),n.reverse(),i>-1&&o>0){let e=d(T,E);M=pg(T,t,n,0,t.length,0,k-_,e,e)}else M=g(T,t,n,k-_,C-k,E)}n.push(M),v.push(R)}function p(e,t,n,o){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<c)break;c<0&&(c=n-r),s.push(e,t,n),l++,a.next()}}if(l){let t=new Uint16Array(4*l),r=s[s.length-2];for(let e=s.length-3,n=0;e>=0;e-=3)t[n++]=s[e],t[n++]=s[e+1]-r,t[n++]=s[e+2]-r,t[n++]=n;n.push(new Jf(t,s[2]-r,i)),o.push(r-e)}}function d(e,t){return(n,i,r)=>{let o,s,a=0,l=n.length-1;if(l>=0&&(o=n[l])instanceof Xf){if(!l&&o.type==e&&o.length==r)return o;(s=o.prop($f.lookAhead))&&(a=i[l]+o.length+s)}return g(e,n,i,r,a,t)}}function f(e,t,n,r,o,s,a,l,c){let h=[],u=[];for(;e.length>r;)h.push(e.pop()),u.push(t.pop()+n-o);e.push(g(i.types[a],h,u,s-o,l-s,c)),t.push(o-n)}function g(e,t,n,i,r,o,s){if(o){let e=[$f.contextHash,o];s=s?[e].concat(s):[e]}if(r>25){let e=[$f.lookAhead,r];s=s?[e].concat(s):[e]}return new Xf(e,t,n,i,s)}function m(e,t){let n=a.fork(),i=0,o=0,l=0,c=n.end-r,h={size:0,start:0,skip:0};e:for(let r=n.pos-e;n.pos>r;){let e=n.size;if(n.id==t&&e>=0){h.size=i,h.start=o,h.skip=l,l+=4,i+=4,n.next();continue}let a=n.pos-e;if(e<0||a<r||n.start<c)break;let u=n.id>=s?4:0,p=n.start;for(n.next();n.pos>a;){if(n.size<0){if(-3!=n.size&&-4!=n.size)break e;u+=4}else n.id>=s&&(u+=4);n.next()}o=p,i+=e,l+=u}return(t<0||i==e)&&(h.size=i,h.start=o,h.skip=l),h.size>4?h:void 0}function y(e,t,n){let{id:i,start:r,end:o,size:l}=a;if(a.next(),l>=0&&i<s){let s=n;if(l>4){let i=a.pos-(l-4);for(;a.pos>i;)n=y(e,t,n)}t[--n]=s,t[--n]=o-e,t[--n]=r-e,t[--n]=i}else-3==l?c=i:-4==l&&(h=i);return n}let v=[],w=[];for(;a.pos>0;)u(e.start||0,e.bufferStart||0,v,w,-1,0);let b=null!==(t=e.length)&&void 0!==t?t:v.length?w[0]+v[0].length:0;return new Xf(l[e.topID],v.reverse(),w.reverse(),b)}(e)}}Xf.empty=new Xf(Hf.none,[],[],0);class Yf{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 Yf(this.buffer,this.index)}}class Jf{constructor(e,t,n){this.buffer=e,this.length=t,this.set=n}get type(){return Hf.none}toString(){let e=[];for(let t=0;t<this.buffer.length;)e.push(this.childString(t)),t=this.buffer[t+3];return e.join(",")}childString(e){let t=this.buffer[e],n=this.buffer[e+3],i=this.set.types[t],r=i.name;if(/\W/.test(r)&&!i.isError&&(r=JSON.stringify(r)),n==(e+=4))return r;let o=[];for(;e<n;)o.push(this.childString(e)),e=this.buffer[e+3];return r+"("+o.join(",")+")"}findChild(e,t,n,i,r){let{buffer:o}=this,s=-1;for(let a=e;a!=t&&!(Qf(r,i,o[a+1],o[a+2])&&(s=a,n>0));a=o[a+3]);return s}slice(e,t,n){let i=this.buffer,r=new Uint16Array(t-e),o=0;for(let s=e,a=0;s<t;){r[a++]=i[s++],r[a++]=i[s++]-n;let t=r[a++]=i[s++]-n;r[a++]=i[s++]-e,o=Math.max(o,t)}return new Jf(r,o,this.set)}}function Qf(e,t,n,i){switch(e){case-2:return n<t;case-1:return i>=t&&n<t;case 0:return n<t&&i>t;case 1:return n<=t&&i>t;case 2:return i>t;case 4:return!0}}function Zf(e,t,n,i){for(var r;e.from==e.to||(n<1?e.from>=t:e.from>t)||(n>-1?e.to<=t:e.to<t);){let t=!i&&e instanceof tg&&e.index<0?null:e.parent;if(!t)return e;e=t}let o=i?0:Kf.IgnoreOverlays;if(i)for(let i=e,s=i.parent;s;i=s,s=i.parent)i instanceof tg&&i.index<0&&(null===(r=s.enter(t,n,o))||void 0===r?void 0:r.from)!=i.from&&(e=s);for(;;){let i=e.enter(t,n,o);if(!i)return e;e=i}}class eg{cursor(e=0){return new lg(this,e)}getChild(e,t=null,n=null){let i=ng(this,e,t,n);return i.length?i[0]:null}getChildren(e,t=null,n=null){return ng(this,e,t,n)}resolve(e,t=0){return Zf(this,e,t,!1)}resolveInner(e,t=0){return Zf(this,e,t,!0)}matchContext(e){return ig(this.parent,e)}enterUnfinishedNodesBefore(e){let t=this.childBefore(e),n=this;for(;t;){let e=t.lastChild;if(!e||e.to!=t.to)break;e.type.isError&&e.from==e.to?(n=t,t=e.prevSibling):t=e}return n}get node(){return this}get next(){return this.parent}}class tg extends eg{constructor(e,t,n,i){super(),this._tree=e,this.from=t,this.index=n,this._parent=i}get type(){return this._tree.type}get name(){return this._tree.type.name}get to(){return this.from+this._tree.length}nextChild(e,t,n,i,r=0){for(let o=this;;){for(let{children:s,positions:a}=o._tree,l=t>0?s.length:-1;e!=l;e+=t){let l=s[e],c=a[e]+o.from;if(Qf(i,n,c,c+l.length))if(l instanceof Jf){if(r&Kf.ExcludeBuffers)continue;let s=l.findChild(0,l.buffer.length,t,n-c,i);if(s>-1)return new og(new rg(o,l,e,c),null,s)}else if(r&Kf.IncludeAnonymous||!l.type.isAnonymous||cg(l)){let s;if(!(r&Kf.IgnoreMounts)&&(s=zf.get(l))&&!s.overlay)return new tg(s.tree,c,e,o);let a=new tg(l,c,e,o);return r&Kf.IncludeAnonymous||!a.type.isAnonymous?a:a.nextChild(t<0?l.children.length-1:0,t,n,i)}}if(r&Kf.IncludeAnonymous||!o.type.isAnonymous)return null;if(e=o.index>=0?o.index+t:t<0?-1:o._parent._tree.children.length,o=o._parent,!o)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)}prop(e){return this._tree.prop(e)}enter(e,t,n=0){let i;if(!(n&Kf.IgnoreOverlays)&&(i=zf.get(this._tree))&&i.overlay){let n=e-this.from;for(let{from:e,to:r}of i.overlay)if((t>0?e<=n:e<n)&&(t<0?r>=n:r>n))return new tg(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 ng(e,t,n,i){let r=e.cursor(),o=[];if(!r.firstChild())return o;if(null!=n)for(let e=!1;!e;)if(e=r.type.is(n),!r.nextSibling())return o;for(;;){if(null!=i&&r.type.is(i))return o;if(r.type.is(t)&&o.push(r.node),!r.nextSibling())return null==i?o:[]}}function ig(e,t,n=t.length-1){for(let i=e;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 rg{constructor(e,t,n,i){this.parent=e,this.buffer=t,this.index=n,this.start=i}}class og extends eg{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,r=i.findChild(this.index+4,i.buffer[this.index+3],e,t-this.context.start,n);return r<0?null:new og(this.context,this,r)}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)}prop(e){return this.type.prop(e)}enter(e,t,n=0){if(n&Kf.ExcludeBuffers)return null;let{buffer:i}=this.context,r=i.findChild(this.index+4,i.buffer[this.index+3],t>0?1:-1,e-this.context.start,t);return r<0?null:new og(this.context,this,r)}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 og(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 og(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,r=n.buffer[this.index+3];if(r>i){let o=n.buffer[this.index+1];e.push(n.slice(i,r,o)),t.push(0)}return new Xf(this.type,e,t,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}}function sg(e){if(!e.length)return null;let t=0,n=e[0];for(let i=1;i<e.length;i++){let r=e[i];(r.from>n.from||r.to<n.to)&&(n=r,t=i)}let i=n instanceof tg&&n.index<0?null:n.parent,r=e.slice();return i?r[t]=i:r.splice(t,1),new ag(r,n)}class ag{constructor(e,t){this.heads=e,this.node=t}get next(){return sg(this.heads)}}class lg{get name(){return this.type.name}constructor(e,t=0){if(this.mode=t,this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,e instanceof tg)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let t=e._parent;t;t=t._parent)this.stack.unshift(t.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return!!e&&(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0)}yieldBuf(e,t){this.index=e;let{start:n,buffer:i}=this.buffer;return this.type=t||i.set.types[i.buffer[e]],this.from=n+i.buffer[e+1],this.to=n+i.buffer[e+2],!0}yield(e){return!!e&&(e instanceof tg?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)))}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,t,n){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,t,n,this.mode));let{buffer:i}=this.buffer,r=i.findChild(this.index+4,i.buffer[this.index+3],e,t-this.buffer.start,n);return!(r<0)&&(this.stack.push(this.index),this.yieldBuf(r))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,t,n=this.mode){return this.buffer?!(n&Kf.ExcludeBuffers)&&this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,n))}parent(){if(!this.buffer)return this.yieldNode(this.mode&Kf.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&Kf.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return!!this._tree._parent&&this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode));let{buffer:t}=this.buffer,n=this.stack.length-1;if(e<0){let e=n<0?0:this.stack[n]+4;if(this.index!=e)return this.yieldBuf(t.findChild(e,this.index,-1,0,4))}else{let e=t.buffer[this.index+3];if(e<(n<0?t.buffer.length:t.buffer[this.stack[n]+3]))return this.yieldBuf(e)}return n<0&&this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode))}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let t,n,{buffer:i}=this;if(i){if(e>0){if(this.index<i.buffer.buffer.length)return!1}else for(let e=0;e<this.index;e++)if(i.buffer.buffer[e+3]<this.index)return!1;({index:t,parent:n}=i)}else({index:t,_parent:n}=this._tree);for(;n;({index:t,_parent:n}=n))if(t>-1)for(let i=t+e,r=e<0?-1:n._tree.children.length;i!=r;i+=e){let e=n._tree.children[i];if(this.mode&Kf.IncludeAnonymous||e instanceof Jf||!e.type.isAnonymous||cg(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<e))&&this.parent(););for(;this.enterChild(1,e,t););return this}get node(){if(!this.buffer)return this._tree;let e=this.bufferNode,t=null,n=0;if(e&&e.context==this.buffer)e:for(let i=this.index,r=this.stack.length;r>=0;){for(let o=e;o;o=o._parent)if(o.index==i){if(i==this.index)return o;t=o,n=r+1;break e}i=this.stack[--r]}for(let e=n;e<this.stack.length;e++)t=new og(this.buffer,t,this.stack[e]);return this.bufferNode=new og(this.buffer,t,this.index)}get tree(){return this.buffer?null:this._tree._tree}iterate(e,t){for(let n=0;;){let i=!1;if(this.type.isAnonymous||!1!==e(this)){if(this.firstChild()){n++;continue}this.type.isAnonymous||(i=!0)}for(;;){if(i&&t&&t(this),i=this.type.isAnonymous,!n)return;if(this.nextSibling())break;this.parent(),n--,i=!0}}}matchContext(e){if(!this.buffer)return ig(this.node.parent,e);let{buffer:t}=this.buffer,{types:n}=t.set;for(let i=e.length-1,r=this.stack.length-1;i>=0;r--){if(r<0)return ig(this._tree,e,i);let o=n[t.buffer[this.stack[r]]];if(!o.isAnonymous){if(e[i]&&e[i]!=o.name)return!1;i--}}return!0}}function cg(e){return e.children.some((e=>e instanceof Jf||!e.type.isAnonymous||cg(e)))}const hg=new WeakMap;function ug(e,t){if(!e.isAnonymous||t instanceof Jf||t.type!=e)return 1;let n=hg.get(t);if(null==n){n=1;for(let i of t.children){if(i.type!=e||!(i instanceof Xf)){n=1;break}n+=ug(e,i)}hg.set(t,n)}return n}function pg(e,t,n,i,r,o,s,a,l){let c=0;for(let n=i;n<r;n++)c+=ug(e,t[n]);let h=Math.ceil(1.5*c/8),u=[],p=[];return function t(n,i,r,s,a){for(let c=r;c<s;){let r=c,d=i[c],f=ug(e,n[c]);for(c++;c<s;c++){let t=ug(e,n[c]);if(f+t>=h)break;f+=t}if(c==r+1){if(f>h){let e=n[r];t(e.children,e.positions,0,e.children.length,i[r]+a);continue}u.push(n[r])}else{let t=i[c-1]+n[c-1].length-d;u.push(pg(e,n,i,r,c,d,t,null,l))}p.push(d+a-o)}}(t,n,i,r,0),(a||l)(u,p,s)}class dg{constructor(e,t,n,i,r=!1,o=!1){this.from=e,this.to=t,this.tree=n,this.offset=i,this.open=(r?1:0)|(o?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 dg(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=[],r=1,o=e.length?e[0]:null;for(let s=0,a=0,l=0;;s++){let c=s<t.length?t[s]:null,h=c?c.fromA:1e9;if(h-a>=n)for(;o&&o.from<h;){let t=o;if(a>=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 dg(e,n,t.tree,t.offset+l,s>0,!!c)}if(t&&i.push(t),o.to>h)break;o=r<e.length?e[r++]:null}if(!c)break;a=c.toA,l=c.toA-c.toB}return i}}class fg{startParse(e,t,n){return"string"==typeof e&&(e=new gg(e)),n=n?n.length?n.map((e=>new Vf(e.from,e.to))):[new Vf(0,0)]:[new Vf(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 gg{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)}}new $f({perNode:!0});let mg=0;class yg{constructor(e,t,n,i){this.name=e,this.set=t,this.base=n,this.modified=i,this.id=mg++}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 yg&&(t=e),null==t?void 0:t.base)throw new Error("Can not derive from a modified tag");let i=new yg(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 wg(e);return e=>e.modified.indexOf(t)>-1?e:wg.get(e.base||e,e.modified.concat(t).sort(((e,t)=>e.id-t.id)))}}let vg=0;class wg{constructor(e){this.name=e,this.instances=[],this.id=vg++}static get(e,t){if(!t.length)return e;let n=t[0].instances.find((n=>{return n.base==e&&(i=t,r=n.modified,i.length==r.length&&i.every(((e,t)=>e==r[t])));var i,r}));if(n)return n;let i=[],r=new yg(e.name,i,e,t);for(let e of t)e.instances.push(r);let o=function(e){let t=[[]];for(let n=0;n<e.length;n++)for(let i=0,r=t.length;i<r;i++)t.push(t[i].concat(e[n]));return t.sort(((e,t)=>t.length-e.length))}(t);for(let t of e.set)if(!t.modified.length)for(let e of o)i.push(wg.get(t,e));return r}}function bg(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=[],r=2,o=e;for(let t=0;;){if("..."==o&&t>0&&t+3==e.length){r=1;break}let i=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(o);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){r=0;break}if("/"!=s)throw new RangeError("Invalid path: "+e);o=e.slice(t)}let s=n.length-1,a=n[s];if(!a)throw new RangeError("Invalid path: "+e);let l=new _g(i,r,s>0?n.slice(0,s):null);t[a]=l.sort(t[a])}}return xg.add(t)}const xg=new $f({combine(e,t){let n,i,r;for(;e||t;){if(!e||t&&e.depth>=t.depth?(r=t,t=t.next):(r=e,e=e.next),n&&n.mode==r.mode&&!r.context&&!n.context)continue;let o=new _g(r.tags,r.mode,r.context);n?n.next=o:i=o,n=o}return i}});class _g{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<this.depth?(this.next=e,this):(e.next=this.sort(e.next),e)}get depth(){return this.context?this.context.length:0}}function kg(e,t){let n=Object.create(null);for(let t of e)if(Array.isArray(t.tag))for(let e of t.tag)n[e.id]=t.class;else n[t.tag.id]=t.class;let{scope:i,all:r=null}=t||{};return{style:e=>{let t=r;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 Sg(e,t,n,i=0,r=e.length){let o=new Cg(i,Array.isArray(t)?t:[t],n);o.highlightRange(e.cursor(),i,r,"",o.highlighters),o.flush(r)}_g.empty=new _g([],2,null);class Cg{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,r){let{type:o,from:s,to:a}=e;if(s>=n||a<=t)return;o.isTop&&(r=this.highlighters.filter((e=>!e.scope||e.scope(o))));let l=i,c=function(e){let t=e.type.prop(xg);for(;t&&t.context&&!e.matchContext(t.context);)t=t.next;return t||null}(e)||_g.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}(r,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($f.mounted);if(u&&u.overlay){let o=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<u.overlay.length?u.overlay[p]:null,g=f?f.from+s:a,m=Math.max(t,d),y=Math.min(n,g);if(m<y&&h)for(;e.from<y&&(this.highlightRange(e,m,y,i,r),this.startSpan(Math.min(y,e.to),l),!(e.to>=g)&&e.nextSibling()););if(!f||g>n)break;d=f.to+s,d>t&&(this.highlightRange(o.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,r),this.startSpan(Math.min(n,e.to),l)}}while(e.nextSibling());e.parent()}}}const Eg=yg.define,Mg=Eg(),Ag=Eg(),Tg=Eg(Ag),Rg=Eg(Ag),Dg=Eg(),Og=Eg(Dg),Ng=Eg(Dg),qg=Eg(),Lg=Eg(qg),Bg=Eg(),Pg=Eg(),Ig=Eg(),Fg=Eg(Ig),jg=Eg(),Vg={comment:Mg,lineComment:Eg(Mg),blockComment:Eg(Mg),docComment:Eg(Mg),name:Ag,variableName:Eg(Ag),typeName:Tg,tagName:Eg(Tg),propertyName:Rg,attributeName:Eg(Rg),className:Eg(Ag),labelName:Eg(Ag),namespace:Eg(Ag),macroName:Eg(Ag),literal:Dg,string:Og,docString:Eg(Og),character:Eg(Og),attributeValue:Eg(Og),number:Ng,integer:Eg(Ng),float:Eg(Ng),bool:Eg(Dg),regexp:Eg(Dg),escape:Eg(Dg),color:Eg(Dg),url:Eg(Dg),keyword:Bg,self:Eg(Bg),null:Eg(Bg),atom:Eg(Bg),unit:Eg(Bg),modifier:Eg(Bg),operatorKeyword:Eg(Bg),controlKeyword:Eg(Bg),definitionKeyword:Eg(Bg),moduleKeyword:Eg(Bg),operator:Pg,derefOperator:Eg(Pg),arithmeticOperator:Eg(Pg),logicOperator:Eg(Pg),bitwiseOperator:Eg(Pg),compareOperator:Eg(Pg),updateOperator:Eg(Pg),definitionOperator:Eg(Pg),typeOperator:Eg(Pg),controlOperator:Eg(Pg),punctuation:Ig,separator:Eg(Ig),bracket:Fg,angleBracket:Eg(Fg),squareBracket:Eg(Fg),paren:Eg(Fg),brace:Eg(Fg),content:qg,heading:Lg,heading1:Eg(Lg),heading2:Eg(Lg),heading3:Eg(Lg),heading4:Eg(Lg),heading5:Eg(Lg),heading6:Eg(Lg),contentSeparator:Eg(qg),list:Eg(qg),quote:Eg(qg),emphasis:Eg(qg),strong:Eg(qg),link:Eg(qg),monospace:Eg(qg),strikethrough:Eg(qg),inserted:Eg(),deleted:Eg(),changed:Eg(),invalid:Eg(),meta:jg,documentMeta:Eg(jg),annotation:Eg(jg),processingInstruction:Eg(jg),definition:yg.defineModifier("definition"),constant:yg.defineModifier("constant"),function:yg.defineModifier("function"),standard:yg.defineModifier("standard"),local:yg.defineModifier("local"),special:yg.defineModifier("special")};for(let e in Vg){let t=Vg[e];t instanceof yg&&(t.name=e)}var $g;kg([{tag:Vg.link,class:"tok-link"},{tag:Vg.heading,class:"tok-heading"},{tag:Vg.emphasis,class:"tok-emphasis"},{tag:Vg.strong,class:"tok-strong"},{tag:Vg.keyword,class:"tok-keyword"},{tag:Vg.atom,class:"tok-atom"},{tag:Vg.bool,class:"tok-bool"},{tag:Vg.url,class:"tok-url"},{tag:Vg.labelName,class:"tok-labelName"},{tag:Vg.inserted,class:"tok-inserted"},{tag:Vg.deleted,class:"tok-deleted"},{tag:Vg.literal,class:"tok-literal"},{tag:Vg.string,class:"tok-string"},{tag:Vg.number,class:"tok-number"},{tag:[Vg.regexp,Vg.escape,Vg.special(Vg.string)],class:"tok-string2"},{tag:Vg.variableName,class:"tok-variableName"},{tag:Vg.local(Vg.variableName),class:"tok-variableName tok-local"},{tag:Vg.definition(Vg.variableName),class:"tok-variableName tok-definition"},{tag:Vg.special(Vg.variableName),class:"tok-variableName2"},{tag:Vg.definition(Vg.propertyName),class:"tok-propertyName tok-definition"},{tag:Vg.typeName,class:"tok-typeName"},{tag:Vg.namespace,class:"tok-namespace"},{tag:Vg.className,class:"tok-className"},{tag:Vg.macroName,class:"tok-macroName"},{tag:Vg.propertyName,class:"tok-propertyName"},{tag:Vg.operator,class:"tok-operator"},{tag:Vg.comment,class:"tok-comment"},{tag:Vg.meta,class:"tok-meta"},{tag:Vg.invalid,class:"tok-invalid"},{tag:Vg.punctuation,class:"tok-punctuation"}]);const zg=new $f,Wg=new $f;class Hg{constructor(e,t,n=[],i=""){this.data=e,this.name=i,Qc.prototype.hasOwnProperty("tree")||Object.defineProperty(Qc.prototype,"tree",{get(){return Gg(this)}}),this.parser=t,this.extension=[nm.of(this),Qc.languageData.of(((e,t,n)=>{let i=Ug(e,t,n),r=i.type.prop(zg);if(!r)return[];let o=e.facet(r),s=i.type.prop(Wg);if(s){let r=i.resolve(t-i.from,n);for(let t of s)if(t.test(r,e)){let n=e.facet(t.facet);return"replace"==t.type?n:n.concat(o)}}return o}))].concat(n)}isActiveAt(e,t,n=-1){return Ug(e,t,n).type.prop(zg)==this.data}findRegions(e){let t=e.facet(nm);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(zg)==this.data)return void n.push({from:t,to:t+e.length});let r=e.prop($f.mounted);if(r){if(r.tree.prop(zg)==this.data){if(r.overlay)for(let e of r.overlay)n.push({from:e.from+t,to:e.to+t});else n.push({from:t,to:t+e.length});return}if(r.overlay){let e=n.length;if(i(r.tree,r.overlay[0].from+t),n.length>e)return}}for(let n=0;n<e.children.length;n++){let r=e.children[n];r instanceof Xf&&i(r,e.positions[n]+t)}};return i(Gg(e),0),n}get allowsNesting(){return!0}}function Ug(e,t,n){let i=e.facet(nm),r=Gg(e).topNode;if(!i||i.allowsNesting)for(let e=r;e;e=e.enter(t,n,Kf.ExcludeBuffers))e.type.isTop&&(r=e);return r}function Gg(e){let t=e.field(Hg.state,!1);return t?t.tree:Xf.empty}Hg.setState=jc.define();class Kg{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<n||t>=this.cursorPos?this.doc.sliceString(e,t):this.string.slice(e-n,t-n)}}let Xg=null;class Yg{constructor(e,t,n=[],i,r,o,s,a){this.parser=e,this.state=t,this.fragments=n,this.tree=i,this.treeLen=r,this.viewport=o,this.skipped=s,this.scheduleOn=a,this.parse=null,this.tempSkipped=[]}static create(e,t,n){return new Yg(e,t,[],Xf.empty,0,n,[],null)}startParse(){return this.parser.startParse(new Kg(this.state.doc),this.fragments)}work(e,t){return null!=t&&t>=this.state.doc.length&&(t=void 0),this.tree!=Xf.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.state.doc.length&&this.parse.stopAt(t);;){let i=this.parse.advance();if(i){if(this.fragments=this.withoutTempSkipped(dg.addTree(i,this.fragments,null!=this.parse.stoppedAt)),this.treeLen=null!==(n=this.parse.stoppedAt)&&void 0!==n?n:this.state.doc.length,this.tree=i,this.parse=null,!(this.treeLen<(null!=t?t:this.state.doc.length)))return!0;this.parse=this.startParse()}if(e())return!1}}))}takeTree(){let e,t;this.parse&&(e=this.parse.parsedPos)>=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(dg.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let t=Xg;Xg=this;try{return e()}finally{Xg=t}}withoutTempSkipped(e){for(let t;t=this.tempSkipped.pop();)e=Jg(e,t.from,t.to);return e}changes(e,t){let{fragments:n,tree:i,treeLen:r,viewport:o,skipped:s}=this;if(this.takeTree(),!e.empty){let t=[];if(e.iterChangedRanges(((e,n,i,r)=>t.push({fromA:e,toA:n,fromB:i,toB:r}))),n=dg.applyChanges(n,t),i=Xf.empty,r=0,o={from:e.mapPos(o.from,-1),to:e.mapPos(o.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);n<i&&s.push({from:n,to:i})}}}return new Yg(this.parser,t,n,i,r,o,s,this.scheduleOn)}updateViewport(e){if(this.viewport.from==e.from&&this.viewport.to==e.to)return!1;this.viewport=e;let t=this.skipped.length;for(let t=0;t<this.skipped.length;t++){let{from:n,to:i}=this.skipped[t];n<e.to&&i>e.from&&(this.fragments=Jg(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 fg{createParse(t,n,i){let r=i[0].from,o=i[i.length-1].to;return{parsedPos:r,advance(){let t=Xg;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=o,new Xf(Hf.none,[],[],o-r)},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 Xg}}function Jg(e,t,n){return dg.applyChanges(e,[{fromA:t,toA:n,fromB:t,toB:n}])}class Qg{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 Qg(t)}static init(e){let t=Math.min(3e3,e.doc.length),n=Yg.create(e.facet(nm).parser,e,{from:0,to:t});return n.work(20,t)||n.takeTree(),new Qg(n)}}Hg.state=yc.define({create:Qg.init,update(e,t){for(let e of t.effects)if(e.is(Hg.setState))return e.value;return t.startState.facet(nm)!=t.state.facet(nm)?Qg.init(t.state):e.apply(t)}});let Zg=e=>{let t=setTimeout((()=>e()),500);return()=>clearTimeout(t)};"undefined"!=typeof requestIdleCallback&&(Zg=e=>{let t=-1,n=setTimeout((()=>{t=requestIdleCallback(e,{timeout:400})}),100);return()=>t<0?clearTimeout(n):cancelIdleCallback(t)});const em="undefined"!=typeof navigator&&(null===($g=navigator.scheduling)||void 0===$g?void 0:$g.isInputPending)?()=>navigator.scheduling.isInputPending():null,tm=rp.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(Hg.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(Hg.state);t.tree==t.context.tree&&t.context.isDone(e.doc.length)||(this.working=Zg(this.work))}work(e){this.working=null;let t=Date.now();if(this.chunkEnd<t&&(this.chunkEnd<0||this.view.hasFocus)&&(this.chunkEnd=t+3e4,this.chunkBudget=3e3),this.chunkBudget<=0)return;let{state:n,viewport:{to:i}}=this.view,r=n.field(Hg.state);if(r.tree==r.context.tree&&r.context.isDone(i+1e5))return;let o=Date.now()+Math.min(this.chunkBudget,100,e&&!em?Math.max(25,e.timeRemaining()-5):1e9),s=r.context.treeLen<i&&n.doc.length>i+1e3,a=r.context.work((()=>em&&em()||Date.now()>o),i+(s?0:1e5));this.chunkBudget-=Date.now()-t,(a||this.chunkBudget<=0)&&(r.context.takeTree(),this.view.dispatch({effects:Hg.setState.of(new Qg(r.context))})),this.chunkBudget>0&&(!a||s)&&this.scheduleWork(),this.checkAsyncSchedule(r.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then((()=>this.scheduleWork())).catch((e=>ep(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()}}}),nm=hc.define({combine:e=>e.length?e[0]:null,enables:e=>[Hg.state,tm,Nf.contentAttributes.compute([e],(t=>{let n=t.facet(e);return n&&n.name?{"data-language":n.name}:{}}))]});class im{constructor(e,t){let n;function i(e){let t=wh.newName();return(n||(n=Object.create(null)))["."+t]=e,t}this.specs=e;const r="string"==typeof t.all?t.all:t.all?i(t.all):void 0,o=t.scope;this.scope=o instanceof Hg?e=>e.prop(zg)==o.data:o?e=>e==o:void 0,this.style=kg(e.map((e=>({tag:e.tag,class:e.class||i(Object.assign({},e,{tag:null}))}))),{all:r}).style,this.module=n?new wh(n):null,this.themeType=t.themeType}static define(e,t){return new im(e,t||{})}}const rm=hc.define(),om=hc.define({combine:e=>e.length?[e[0]]:null});function sm(e){let t=e.facet(rm);return t.length?t:e.facet(om)}class am{constructor(e){this.markCache=Object.create(null),this.tree=Gg(e.state),this.decorations=this.buildDeco(e,sm(e.state)),this.decoratedTo=e.viewport.to}update(e){let t=Gg(e.state),n=sm(e.state),i=n!=sm(e.startState),{viewport:r}=e.view,o=e.changes.mapPos(this.decoratedTo,1);t.length<r.to&&!i&&t.type==this.tree.type&&o>=r.to?(this.decorations=this.decorations.map(e.changes),this.decoratedTo=o):(t!=this.tree||e.viewportChanged||i)&&(this.tree=t,this.decorations=this.buildDeco(e.view,n),this.decoratedTo=r.to)}buildDeco(e,t){if(!t||!this.tree.length)return Hh.none;let n=new oh;for(let{from:i,to:r}of e.visibleRanges)Sg(this.tree,t,((e,t,i)=>{n.add(e,t,this.markCache[i]||(this.markCache[i]=Hh.mark({class:i})))}),i,r);return n.finish()}}const lm=kc.high(rp.fromClass(am,{decorations:e=>e.decorations}));Vg.meta,Vg.link,Vg.heading,Vg.emphasis,Vg.strong,Vg.strikethrough,Vg.keyword,Vg.atom,Vg.bool,Vg.url,Vg.contentSeparator,Vg.labelName,Vg.literal,Vg.inserted,Vg.string,Vg.deleted,Vg.regexp,Vg.escape,Vg.string,Vg.variableName,Vg.variableName,Vg.typeName,Vg.namespace,Vg.className,Vg.variableName,Vg.macroName,Vg.propertyName,Vg.comment,Vg.invalid;const cm=Object.create(null),hm=[Hf.none],um=[],pm=Object.create(null),dm=Object.create(null);for(let[e,t]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])dm[e]=gm(cm,t);function fm(e,t){um.indexOf(e)>-1||(um.push(e),console.warn(t))}function gm(e,t){let n=[];for(let i of t.split(" ")){let t=[];for(let n of i.split(".")){let i=e[n]||Vg[n];i?"function"==typeof i?t.length?t=t.map(i):fm(n,`Modifier ${n} used at start of tag`):t.length?fm(n,`Tag ${n} used as modifier`):t=Array.isArray(i)?i:[i]:fm(n,`Unknown highlighting tag ${n}`)}for(let e of t)n.push(e)}if(!n.length)return 0;let i=t.replace(/ /g,"_"),r=i+" "+n.map((e=>e.id)),o=pm[r];if(o)return o.id;let s=pm[r]=Hf.define({id:hm.length,name:i,props:[bg({[i]:n})]});return hm.push(s),s.id}bu.RTL,bu.LTR;const mm=hc.define({combine:e=>({sources:e.map((e=>e.source)).filter((e=>null!=e)),...Zc(e.map((e=>e.config)),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:()=>null},{delay:Math.max,markerFilter:ym,tooltipFilter:ym,needsRefresh:(e,t)=>e?t?n=>e(n)||t(n):e:t,hideOn:(e,t)=>e?t?(n,i,r)=>e(n,i,r)||t(n,i,r):e:t,autoPanel:(e,t)=>e||t})})});function ym(e,t){return e?t?(n,i)=>t(e(n,i),i):e:t}function vm(e){const t=[];return e.iterate({enter:e=>{const n=e.node;if(!n.type.isError)return;const i=n.parent,r=wm(n),o={from:n.from,to:n.to,severity:"error",type:"Syntax Error"};if(n.from!==n.to)o.message=`Unrecognized token in <${i.name}>`;else if(r)o.message=`Unrecognized token <${r.name}> in <${i.name}>`,o.to=r.to;else{const e=i.enterUnfinishedNodesBefore(n.to);o.message=`Incomplete <${(e||i).name}>`}t.push(o)}}),t}function wm(e){return e?e.nextSibling||wm(e.parent):null}var bm={create:e=>({enter(t){if("FilterExpression"!==t.name)return;const n=e.readContent(t.from,t.to);if(/\[\s*0\s*\]$/.test(n)){const{from:i,to:r}=t;e.report({from:i,to:r,message:"First item is accessed via [1]",severity:"warning",type:"first-item",actions:[{name:"fix",apply(t,o=i,s=r){e.updateContent(o,s,n.replace(/\[\s*0\s*\]$/,"[1]"))}}]})}}})};const xm=[bm];function _m(e){const{readContent:t,syntaxTree:n,updateContent:i}=e,r=[],o={readContent:t,report:e=>{r.push(e)},updateContent:i},s=xm.map((e=>e.create(o)));return n.iterate({enter:e=>{for(const t of s)t.enter&&t.enter(e)},leave:e=>{for(const t of s)t.leave&&t.leave(e)}}),r}!function(e,t={}){mm.of({source:e,config:t})}((e=>{if(0===e.state.doc.length)return[];const t=Gg(e.state),n=(i={syntaxTree:t,readContent:(t,n)=>e.state.sliceDoc(t,n),updateContent:(t,n,i)=>e.dispatch({changes:{from:t,to:n,insert:i}})},[...vm(i.syntaxTree),..._m(i)]);var i;return n.map((e=>({...e,source:e.type})))})),Nf.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-editor":{height:"100%"},"& .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}}),Nf.baseTheme({"& .variableName":{color:"#10f"},"& .number":{color:"#164"},"& .string":{color:"#a11"},"& .bool":{color:"#219"},"& .function":{color:"#aa3731",fontWeight:"bold"},"& .control":{color:"#708"}}),function(e,t){let n,i=[lm];e instanceof im&&(e.module&&i.push(Nf.styleModule.of(e.module)),n=e.themeType),n?i.push(rm.computeN([Nf.darkTheme],(t=>t.facet(Nf.darkTheme)==("dark"==n)?[e]:[]))):i.push(rm.of(e))}(im.define([{tag:Vg.variableName,class:"variableName"},{tag:Vg.name,class:"variableName"},{tag:Vg.number,class:"number"},{tag:Vg.string,class:"string"},{tag:Vg.bool,class:"bool"},{tag:Vg.function(Vg.variableName),class:"function"},{tag:Vg.function(Vg.special(Vg.variableName)),class:"function"},{tag:Vg.controlKeyword,class:"control"},{tag:Vg.operatorKeyword,class:"control"}])),hc.define(),hc.define(),hc.define(),hc.define(),[{name:"not",type:"function",params:[{name:"negand"}],info:'<p>Returns the logical negation of the given value.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">not(negand: boolean): boolean\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">not(true)\n// false\n\nnot(null)\n// null\n</code></pre>\n'},{name:"is defined",type:"function",params:[{name:"value"}],info:'<p><em>Camunda Extension</em></p>\n<p>Checks if a given value is not <code>null</code>. If the value is <code>null</code> then the function returns <code>false</code>.\nOtherwise, the function returns <code>true</code>.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">is defined(value: Any): boolean\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">is defined(1)\n// true\n\nis defined(null)\n// false\n\nis defined(x)\n// false - if no variable &quot;x&quot; exists\n\nis defined(x.y)\n// false - if no variable &quot;x&quot; exists or it doesn&#39;t have a property &quot;y&quot;\n</code></pre>\n<p>:::caution Breaking change</p>\n<p>This function worked differently in previous versions. It returned <code>true</code> if the value was <code>null</code>.\nSince this version, the function returns <code>false</code> if the value is <code>null</code>.</p>\n<p>:::</p>\n'},{name:"get or else",type:"function",params:[{name:"value"},{name:"default"}],info:'<p><em>Camunda Extension</em></p>\n<p>Return the provided value parameter if not <code>null</code>, otherwise return the default parameter</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">get or else(value: Any, default: Any): Any\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">get or else(&quot;this&quot;, &quot;default&quot;)\n// &quot;this&quot;\n\nget or else(null, &quot;default&quot;)\n// &quot;default&quot;\n\nget or else(null, null)\n// null\n</code></pre>\n'},{name:"assert",type:"function",params:[{name:"value"},{name:"condition"}],info:'<p><em>Camunda Extension</em></p>\n<p>Verify that the given condition is met. If the condition is <code>true</code>, the function returns the value.\nOtherwise, the evaluation fails with an error.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">assert(value: Any, condition: Any)\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">assert(x, x != null)\n// &quot;value&quot; - if x is &quot;value&quot;\n// error - if x is null or doesn&#39;t exist\n\nassert(x, x &gt;= 0)\n// 4 - if x is 4\n// error - if x is less than zero\n</code></pre>\n'},{name:"assert",type:"function",params:[{name:"value"},{name:"condition"},{name:"cause"}],info:'<p><em>Camunda Extension</em></p>\n<p>Verify that the given condition is met. If the condition is <code>true</code>, the function returns the value.\nOtherwise, the evaluation fails with an error containing the given message.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">assert(value: Any, condition: Any, cause: String)\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">assert(x, x != null, &quot;&#39;x&#39; should not be null&quot;)\n// &quot;value&quot; - if x is &quot;value&quot;\n// error(&#39;x&#39; should not be null) - if x is null or doesn&#39;t exist\n\nassert(x, x &gt;= 0, &quot;&#39;x&#39; should be positive&quot;)\n// 4 - if x is 4\n// error(&#39;x&#39; should be positive) - if x is less than zero\n</code></pre>\n'},{name:"get value",type:"function",params:[{name:"context"},{name:"key"}],info:'<p>Returns the value of the context entry with the given key.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">get value(context: context, key: string): Any\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">get value({foo: 123}, &quot;foo&quot;)\n// 123\n\nget value({a: 1}, &quot;b&quot;)\n// null\n</code></pre>\n'},{name:"get value",type:"function",params:[{name:"context"},{name:"keys"}],info:'<p><em>Camunda Extension</em></p>\n<p>Returns the value of the context entry for a context path defined by the given keys.</p>\n<p>If <code>keys</code> contains the keys <code>[k1, k2]</code> then it returns the value at the nested entry <code>k1.k2</code> of the context.</p>\n<p>If <code>keys</code> are empty or the nested entry defined by the keys doesn&#39;t exist in the context, it returns <code>null</code>.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">get value(context: context, keys: list&lt;string&gt;): Any\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">get value({x:1, y: {z:0}}, [&quot;y&quot;, &quot;z&quot;])\n// 0\n\nget value({x: {y: {z:0}}}, [&quot;x&quot;, &quot;y&quot;])\n// {z:0}\n\nget value({a: {b: 3}}, [&quot;b&quot;])\n// null\n</code></pre>\n'},{name:"get entries",type:"function",params:[{name:"context"}],info:'<p>Returns the entries of the context as a list of key-value-pairs.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">get entries(context: context): list&lt;context&gt;\n</code></pre>\n<p>The return value is a list of contexts. Each context contains two entries for &quot;key&quot; and &quot;value&quot;.</p>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">get entries({foo: 123})\n// [{key: &quot;foo&quot;, value: 123}]\n</code></pre>\n'},{name:"context put",type:"function",params:[{name:"context"},{name:"key"},{name:"value"}],info:'<p>Adds a new entry with the given key and value to the context. Returns a new context that includes the entry.</p>\n<p>If an entry for the same key already exists in the context, it overrides the value.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">context put(context: context, key: string, value: Any): context\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">context put({x:1}, &quot;y&quot;, 2)\n// {x:1, y:2}\n</code></pre>\n<p>:::info\nThe function <code>context put()</code> replaced the previous function <code>put()</code> (Camunda Extension). The\nprevious function is deprecated and should not be used anymore.\n:::</p>\n'},{name:"context put",type:"function",params:[{name:"context"},{name:"keys"},{name:"value"}],info:'<p>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.</p>\n<p>If <code>keys</code> contains the keys <code>[k1, k2]</code> then it adds the nested entry <code>k1.k2 = value</code> to the context.</p>\n<p>If an entry for the same keys already exists in the context, it overrides the value.</p>\n<p>If <code>keys</code> are empty, it returns <code>null</code>.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">context put(context: context, keys: list&lt;string&gt;, value: Any): context\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">context put({x:1}, [&quot;y&quot;], 2)\n// {x:1, y:2}\n\ncontext put({x:1, y: {z:0}}, [&quot;y&quot;, &quot;z&quot;], 2)\n// {x:1, y: {z:2}}\n\ncontext put({x:1}, [&quot;y&quot;, &quot;z&quot;], 2)\n// {x:1, y: {z:2}}\n</code></pre>\n'},{name:"context merge",type:"function",params:[{name:"contexts"}],info:'<p>Union the given contexts. Returns a new context that includes all entries of the given contexts.</p>\n<p>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.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">context merge(contexts: list&lt;context&gt;): context\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">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</code></pre>\n<p>:::info\nThe function <code>context merge()</code> replaced the previous function <code>put all()</code> (Camunda Extension). The\nprevious function is deprecated and should not be used anymore.\n:::</p>\n'},{name:"string",type:"function",params:[{name:"from"}],info:'<p>Returns the given value as a string representation.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">string(from: Any): string\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">string(1.1)\n// &quot;1.1&quot;\n\nstring(date(&quot;2012-12-25&quot;))\n// &quot;2012-12-25&quot;\n</code></pre>\n'},{name:"number",type:"function",params:[{name:"from"}],info:'<p>Parses the given string to a number.</p>\n<p>Returns <code>null</code> if the string is not a number.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">number(from: string): number\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">number(&quot;1500.5&quot;)\n// 1500.5\n</code></pre>\n'},{name:"context",type:"function",params:[{name:"entries"}],info:'<p>Constructs a context of the given list of key-value pairs. It is the reverse function to <a href="feel-built-in-functions-context.md#get-entriescontext">get entries()</a>.</p>\n<p>Each key-value pair must be a context with two entries: <code>key</code> and <code>value</code>. The entry with name <code>key</code> must have a value of the type <code>string</code>.</p>\n<p>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.</p>\n<p>Returns <code>null</code> if one of the entries is not a context or if a context doesn&#39;t contain the required entries.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">context(entries: list&lt;context&gt;): context\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">context([{&quot;key&quot;:&quot;a&quot;, &quot;value&quot;:1}, {&quot;key&quot;:&quot;b&quot;, &quot;value&quot;:2}])\n// {a:1, b:2}\n</code></pre>\n'},{name:"date",type:"function",params:[{name:"from"}],info:'<p>Returns a date from the given value.</p>\n<p>Returns <code>null</code> if the string is not a valid calendar date. For example, <code>&quot;2024-06-31&quot;</code> is invalid because June has\nonly 30 days.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">date(from: string): date\n</code></pre>\n<p>Parses the given string into a date.</p>\n<pre><code class="language-feel">date(from: date and time): date\n</code></pre>\n<p>Extracts the date component from the given date and time.</p>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">date(&quot;2018-04-29&quot;)\n// date(&quot;2018-04-29&quot;)\n\ndate(date and time(&quot;2012-12-25T11:00:00&quot;))\n// date(&quot;2012-12-25&quot;)\n</code></pre>\n'},{name:"date",type:"function",params:[{name:"year"},{name:"month"},{name:"day"}],info:'<p>Returns a date from the given components.</p>\n<p>Returns <code>null</code> if the components don&#39;t represent a valid calendar date. For example, <code>2024,6,31</code> is invalid because\nJune has only 30 days.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">date(year: number, month: number, day: number): date\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">date(2012, 12, 25)\n// date(&quot;2012-12-25&quot;)\n</code></pre>\n'},{name:"time",type:"function",params:[{name:"from"}],info:'<p>Returns a time from the given value.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">time(from: string): time\n</code></pre>\n<p>Parses the given string into a time.</p>\n<pre><code class="language-feel">time(from: date and time): time\n</code></pre>\n<p>Extracts the time component from the given date and time.</p>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">time(&quot;12:00:00&quot;)\n// time(&quot;12:00:00&quot;)\n\ntime(date and time(&quot;2012-12-25T11:00:00&quot;))\n// time(&quot;11:00:00&quot;)\n</code></pre>\n'},{name:"time",type:"function",params:[{name:"hour"},{name:"minute"},{name:"second"}],info:'<p>Returns a time from the given components.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">time(hour: number, minute: number, second: number): time\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">time(23, 59, 0)\n// time(&quot;23:59:00&quot;)\n</code></pre>\n'},{name:"time",type:"function",params:[{name:"hour"},{name:"minute"},{name:"second"},{name:"offset"}],info:'<p>Returns a time from the given components, including a timezone offset.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">time(hour: number, minute: number, second: number, offset: days and time duration): time\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">time(14, 30, 0, duration(&quot;PT1H&quot;))\n// time(&quot;14:30:00+01:00&quot;)\n</code></pre>\n'},{name:"date and time",type:"function",params:[{name:"from"}],info:'<p>Parses the given string into a date and time.</p>\n<p>Returns <code>null</code> if the string is not a valid calendar date. For example, <code>&quot;2024-06-31T10:00:00&quot;</code> is invalid because\nJune has only 30 days.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">date and time(from: string): date and time\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">date and time(&quot;2018-04-29T09:30:00&quot;)\n// date and time(&quot;2018-04-29T09:30:00&quot;)\n</code></pre>\n'},{name:"date and time",type:"function",params:[{name:"date"},{name:"time"}],info:'<p>Returns a date and time from the given components.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">date and time(date: date, time: time): date and time\n</code></pre>\n<pre><code class="language-feel">date and time(date: date and time, time: time): date and time\n</code></pre>\n<p>Returns a date and time value that consists of the date component of <code>date</code> combined with <code>time</code>.</p>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">date and time(date(&quot;2012-12-24&quot;),time(&quot;T23:59:00&quot;))\n// date and time(&quot;2012-12-24T23:59:00&quot;)\n\ndate and time(date and time(&quot;2012-12-25T11:00:00&quot;),time(&quot;T23:59:00&quot;))\n// date and time(&quot;2012-12-25T23:59:00&quot;)\n</code></pre>\n'},{name:"date and time",type:"function",params:[{name:"date"},{name:"timezone"}],info:'<p><em>Camunda Extension</em></p>\n<p>Returns the given date and time value at the given timezone.</p>\n<p>If <code>date</code> has a different timezone than <code>timezone</code> then it adjusts the time to match the local time of <code>timezone</code>.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">date and time(date: date and time, timezone: string): date and time\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">date and time(@&quot;2020-07-31T14:27:30@Europe/Berlin&quot;, &quot;America/Los_Angeles&quot;)\n// date and time(&quot;2020-07-31T05:27:30@America/Los_Angeles&quot;)\n\ndate and time(@&quot;2020-07-31T14:27:30&quot;, &quot;Z&quot;)\n// date and time(&quot;2020-07-31T12:27:30Z&quot;)\n</code></pre>\n'},{name:"duration",type:"function",params:[{name:"from"}],info:'<p>Parses the given string into a duration. The duration is either a days and time duration or a years and months duration.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">duration(from: string): days and time duration\n</code></pre>\n<pre><code class="language-feel">duration(from: string): years and months duration\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">duration(&quot;P5D&quot;)\n// duration(&quot;P5D&quot;)\n\nduration(&quot;P32Y&quot;)\n// duration(&quot;P32Y&quot;)\n</code></pre>\n'},{name:"years and months duration",type:"function",params:[{name:"from"},{name:"to"}],info:'<p>Returns the years and months duration between <code>from</code> and <code>to</code>.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">years and months duration(from: date, to: date): years and months duration\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">years and months duration(date(&quot;2011-12-22&quot;), date(&quot;2013-08-24&quot;))\n// duration(&quot;P1Y8M&quot;)\n</code></pre>\n'},{name:"list contains",type:"function",params:[{name:"list"},{name:"element"}],info:'<p>Returns <code>true</code> if the given list contains the element. Otherwise, returns <code>false</code>.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">list contains(list: list, element: Any): boolean\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">list contains([1,2,3], 2)\n// true\n</code></pre>\n'},{name:"count",type:"function",params:[{name:"list"}],info:'<p>Returns the number of elements of the given list.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">count(list: list): number\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">count([1,2,3])\n// 3\n</code></pre>\n'},{name:"min",type:"function",params:[{name:"list"}],info:'<p>Returns the minimum of the given list.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">min(list: list): Any\n</code></pre>\n<p>All elements in <code>list</code> should have the same type and be comparable.</p>\n<p>The parameter <code>list</code> can be passed as a list or as a sequence of elements.</p>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">min([1,2,3])\n// 1\n\nmin(1,2,3)\n// 1\n</code></pre>\n'},{name:"max",type:"function",params:[{name:"list"}],info:'<p>Returns the maximum of the given list.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">max(list: list): Any\n</code></pre>\n<p>All elements in <code>list</code> should have the same type and be comparable.</p>\n<p>The parameter <code>list</code> can be passed as a list or as a sequence of elements.</p>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">max([1,2,3])\n// 3\n\nmax(1,2,3)\n// 3\n</code></pre>\n'},{name:"sum",type:"function",params:[{name:"list"}],info:'<p>Returns the sum of the given list of numbers.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">sum(list: list&lt;number&gt;): number\n</code></pre>\n<p>The parameter <code>list</code> can be passed as a list or as a sequence of elements.</p>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">sum([1,2,3])\n// 6\n\nsum(1,2,3)\n// 6\n</code></pre>\n'},{name:"product",type:"function",params:[{name:"list"}],info:'<p>Returns the product of the given list of numbers.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">product(list: list&lt;number&gt;): number\n</code></pre>\n<p>The parameter <code>list</code> can be passed as a list or as a sequence of elements.</p>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">product([2, 3, 4])\n// 24\n\nproduct(2, 3, 4)\n// 24\n</code></pre>\n'},{name:"mean",type:"function",params:[{name:"list"}],info:'<p>Returns the arithmetic mean (i.e. average) of the given list of numbers.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">mean(list: list&lt;number&gt;): number\n</code></pre>\n<p>The parameter <code>list</code> can be passed as a list or as a sequence of elements.</p>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">mean([1,2,3])\n// 2\n\nmean(1,2,3)\n// 2\n</code></pre>\n'},{name:"median",type:"function",params:[{name:"list"}],info:'<p>Returns the median element of the given list of numbers.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">median(list: list&lt;number&gt;): number\n</code></pre>\n<p>The parameter <code>list</code> can be passed as a list or as a sequence of elements.</p>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">median(8, 2, 5, 3, 4)\n// 4\n\nmedian([6, 1, 2, 3])\n// 2.5\n</code></pre>\n'},{name:"stddev",type:"function",params:[{name:"list"}],info:'<p>Returns the standard deviation of the given list of numbers.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">stddev(list: list&lt;number&gt;): number\n</code></pre>\n<p>The parameter <code>list</code> can be passed as a list or as a sequence of elements.</p>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">stddev(2, 4, 7, 5)\n// 2.0816659994661326\n\nstddev([2, 4, 7, 5])\n// 2.0816659994661326\n</code></pre>\n'},{name:"mode",type:"function",params:[{name:"list"}],info:'<p>Returns the mode of the given list of numbers.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">mode(list: list&lt;number&gt;): number\n</code></pre>\n<p>The parameter <code>list</code> can be passed as a list or as a sequence of elements.</p>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">mode(6, 3, 9, 6, 6)\n// [6]\n\nmode([6, 1, 9, 6, 1])\n// [1, 6]\n</code></pre>\n'},{name:"all",type:"function",params:[{name:"list"}],info:'<p>Returns <code>false</code> if any element of the given list is <code>false</code>. Otherwise, returns <code>true</code>.</p>\n<p>If the given list is empty, it returns <code>true</code>.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">all(list: list&lt;boolean&gt;): boolean\n</code></pre>\n<p>The parameter <code>list</code> can be passed as a list or as a sequence of elements.</p>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">all([true,false])\n// false\n\nall(false,null,true)\n// false\n</code></pre>\n<p>:::info\nThe function <code>all()</code> replaced the previous function <code>and()</code>. The previous function is deprecated and\nshould not be used anymore.\n:::</p>\n'},{name:"any",type:"function",params:[{name:"list"}],info:'<p>Returns <code>true</code> if any element of the given list is <code>true</code>. Otherwise, returns <code>false</code>.</p>\n<p>If the given list is empty, it returns <code>false</code>.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">any(list: list&lt;boolean&gt;): boolean\n</code></pre>\n<p>The parameter <code>list</code> can be passed as a list or as a sequence of elements.</p>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">any([false,true])\n// true\n\nany(false,null,true)\n// true\n</code></pre>\n<p>:::info\nThe function <code>any()</code> replaced the previous function <code>or()</code>. The previous function is deprecated and\nshould not be used anymore.\n:::</p>\n'},{name:"sublist",type:"function",params:[{name:"list"},{name:"start position"}],info:'<p>Returns a partial list of the given value starting at <code>start position</code>.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">sublist(list: list, start position: number): list\n</code></pre>\n<p>The <code>start position</code> starts at the index <code>1</code>. The last position is <code>-1</code>.</p>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">sublist([1,2,3], 2)\n// [2,3]\n</code></pre>\n'},{name:"sublist",type:"function",params:[{name:"list"},{name:"start position"},{name:"length"}],info:'<p>Returns a partial list of the given value starting at <code>start position</code>.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">sublist(list: list, start position: number, length: number): list\n</code></pre>\n<p>The <code>start position</code> starts at the index <code>1</code>. The last position is <code>-1</code>.</p>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">sublist([1,2,3], 1, 2)\n// [1,2]\n</code></pre>\n'},{name:"append",type:"function",params:[{name:"list"},{name:"items"}],info:'<p>Returns the given list with all <code>items</code> appended.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">append(list: list, items: Any): list\n</code></pre>\n<p>The parameter <code>items</code> can be a single element or a sequence of elements.</p>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">append([1], 2, 3)\n// [1,2,3]\n</code></pre>\n'},{name:"concatenate",type:"function",params:[{name:"lists"}],info:'<p>Returns a list that includes all elements of the given lists.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">concatenate(lists: list): list\n</code></pre>\n<p>The parameter <code>lists</code> is a sequence of lists.</p>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">concatenate([1,2],[3])\n// [1,2,3]\n\nconcatenate([1],[2],[3])\n// [1,2,3]\n</code></pre>\n'},{name:"insert before",type:"function",params:[{name:"list"},{name:"position"},{name:"newItem"}],info:'<p>Returns the given list with <code>newItem</code> inserted at <code>position</code>.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">insert before(list: list, position: number, newItem: Any): list\n</code></pre>\n<p>The <code>position</code> starts at the index <code>1</code>. The last position is <code>-1</code>.</p>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">insert before([1,3],1,2)\n// [2,1,3]\n</code></pre>\n'},{name:"remove",type:"function",params:[{name:"list"},{name:"position"}],info:'<p>Returns the given list without the element at <code>position</code>.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">remove(list: list, position: number): list\n</code></pre>\n<p>The <code>position</code> starts at the index <code>1</code>. The last position is <code>-1</code>.</p>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">remove([1,2,3], 2)\n// [1,3]\n</code></pre>\n'},{name:"reverse",type:"function",params:[{name:"list"}],info:'<p>Returns the given list in revered order.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">reverse(list: list): list\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">reverse([1,2,3])\n// [3,2,1]\n</code></pre>\n'},{name:"index of",type:"function",params:[{name:"list"},{name:"match"}],info:'<p>Returns an ascending list of positions containing <code>match</code>.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">index of(list: list, match: Any): list&lt;number&gt;\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">index of([1,2,3,2],2)\n// [2,4]\n</code></pre>\n'},{name:"union",type:"function",params:[{name:"list"}],info:'<p>Returns a list that includes all elements of the given lists without duplicates.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">union(list: list): list\n</code></pre>\n<p>The parameter <code>list</code> is a sequence of lists.</p>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">union([1,2],[2,3])\n// [1,2,3]\n</code></pre>\n'},{name:"distinct values",type:"function",params:[{name:"list"}],info:'<p>Returns the given list without duplicates.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">distinct values(list: list): list\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">distinct values([1,2,3,2,1])\n// [1,2,3]\n</code></pre>\n'},{name:"duplicate values",type:"function",params:[{name:"list"}],info:'<p><em>Camunda Extension</em></p>\n<p>Returns all duplicate values of the given list.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">duplicate values(list: list): list\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">duplicate values([1,2,3,2,1])\n// [1,2]\n</code></pre>\n'},{name:"flatten",type:"function",params:[{name:"list"}],info:'<p>Returns a list that includes all elements of the given list without nested lists.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">flatten(list: list): list\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">flatten([[1,2],[[3]], 4])\n// [1,2,3,4]\n</code></pre>\n'},{name:"sort",type:"function",params:[{name:"list"},{name:"precedes"}],info:'<p>Returns the given list sorted by the <code>precedes</code> function.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">sort(list: list, precedes: function&lt;(Any, Any) -&gt; boolean&gt;): list\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">sort(list: [3,1,4,5,2], precedes: function(x,y) x &lt; y)\n// [1,2,3,4,5]\n</code></pre>\n'},{name:"string join",type:"function",params:[{name:"list"}],info:'<p>Joins a list of strings into a single string. This is similar to\nJava&#39;s <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/stream/Collectors.html#joining(java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence)">joining</a>\nfunction.</p>\n<p>If an item of the list is <code>null</code>, the item is ignored for the result string. If an item is\nneither a string nor <code>null</code>, the function returns <code>null</code> instead of a string.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">string join(list: list&lt;string&gt;): string\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">string join([&quot;a&quot;,&quot;b&quot;,&quot;c&quot;])\n// &quot;abc&quot;\n\nstring join([&quot;a&quot;,null,&quot;c&quot;])\n// &quot;ac&quot;\n\nstring join([])\n// &quot;&quot;\n</code></pre>\n'},{name:"string join",type:"function",params:[{name:"list"},{name:"delimiter"}],info:'<p>Joins a list of strings into a single string. This is similar to\nJava&#39;s <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/stream/Collectors.html#joining(java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence)">joining</a>\nfunction.</p>\n<p>If an item of the list is <code>null</code>, the item is ignored for the result string. If an item is\nneither a string nor <code>null</code>, the function returns <code>null</code> instead of a string.</p>\n<p>The resulting string contains a <code>delimiter</code> between each element.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">string join(list: list&lt;string&gt;, delimiter: string): string\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">string join([&quot;a&quot;], &quot;X&quot;)\n// &quot;a&quot;\n\nstring join([&quot;a&quot;,&quot;b&quot;,&quot;c&quot;], &quot;, &quot;)\n// &quot;a, b, c&quot;\n</code></pre>\n'},{name:"string join",type:"function",params:[{name:"list"},{name:"delimiter"},{name:"prefix"},{name:"suffix"}],info:'<p><em>Camunda Extension</em></p>\n<p>Joins a list of strings into a single string. This is similar to\nJava&#39;s <a href="https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/stream/Collectors.html#joining(java.lang.CharSequence,java.lang.CharSequence,java.lang.CharSequence)">joining</a>\nfunction.</p>\n<p>If an item of the list is <code>null</code>, the item is ignored for the result string. If an item is\nneither a string nor <code>null</code>, the function returns <code>null</code> instead of a string.</p>\n<p>The resulting string starts with <code>prefix</code>, contains a <code>delimiter</code> between each element, and ends\nwith <code>suffix</code>.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">string join(list: list&lt;string&gt;, delimiter: string, prefix: string, suffix: string): string\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">string join([&quot;a&quot;,&quot;b&quot;,&quot;c&quot;], &quot;, &quot;, &quot;[&quot;, &quot;]&quot;)\n// &quot;[a, b, c]&quot;\n</code></pre>\n'},{name:"is empty",type:"function",params:[{name:"list"}],info:'<p><em>Camunda Extension</em></p>\n<p>Returns <code>true</code> if the given list is empty. Otherwise, returns <code>false</code>.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">is empty(list: list): boolean\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">is empty([])\n// true\n\nis empty([1,2,3])\n// false\n</code></pre>\n'},{name:"partition",type:"function",params:[{name:"list"},{name:"size"}],info:'<p><em>Camunda Extension</em></p>\n<p>Returns consecutive sublists of a list, each of the same size (the final list may be smaller).</p>\n<p>If <code>size</code> is less than <code>0</code>, it returns <code>null</code>.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">partition(list: list, size: number): list\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">partition([1,2,3,4,5], 2)\n// [[1,2], [3,4], [5]]\n\npartition([], 2)\n// []\n\npartition([1,2], 0)\n// null\n</code></pre>\n'},{name:"fromAi",type:"function",params:[{name:"value"}],info:'<p><em>Camunda Extension</em></p>\n<p>Returns the unmodified <code>value</code> parameter.</p>\n<ul>\n<li>The purpose of this function is solely to tag the value as being generated by an AI integration.</li>\n<li>The actual handling is not performed by the FEEL engine, but by a custom integration such as a connector or a job worker.</li>\n</ul>\n<p>The main use case of this function is to be used in combination with\nthe <a href="../../../connectors/out-of-the-box-connectors/agentic-ai-aiagent.md">AI Agent connector</a>.</p>\n<p>See the following function overloads for additional function parameters.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">fromAi(value: Any): Any\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">fromAi(toolCall.searchQuery)\n// toolCall.searchQuery contents\n\nfromAi(toolCall.userId)\n// toolCall.userId contents\n\nfromAi(&quot;A&quot;)\n// &quot;A&quot; - does not make much sense and might be flagged as an error by the integration consuming the definition\n</code></pre>\n'},{name:"fromAi",type:"function",params:[{name:"value"},{name:"description"}],info:'<p><em>Camunda Extension</em></p>\n<p>Returns the unmodified <code>value</code> parameter.</p>\n<p>In addition to the previous overload, it also accepts an optional <code>description</code> parameter to provide a textual description of the value.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">fromAi(value: Any, description: string): Any\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">fromAi(toolCall.searchQuery, &quot;The search query used to find the best match.&quot;)\n// toolCall.searchQuery contents\n\nfromAi(toolCall.searchQuery, null)\n// toolCall.searchQuery contents\n</code></pre>\n'},{name:"fromAi",type:"function",params:[{name:"value"},{name:"description"},{name:"type"}],info:'<p><em>Camunda Extension</em></p>\n<p>Returns the unmodified <code>value</code> parameter.</p>\n<p>In addition to the previous overload, it also accepts an optional <code>type</code> parameter to provide type information about the value.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">fromAi(value: Any, description: string, type: string): Any\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">fromAi(toolCall.searchQuery, &quot;The search query used to find the best match.&quot;, &quot;string&quot;)\n// toolCall.searchQuery contents\n\nfromAi(toolCall.userId, &quot;The user&#39;s ID&quot;, &quot;number&quot;)\n// toolCall.userId contents\n\nfromAi(toolCall.userId, null, &quot;number&quot;)\n// toolCall.userId contents\n\nfromAi(value: toolCall.userId, type: &quot;number&quot;)\n// toolCall.userId contents\n</code></pre>\n'},{name:"fromAi",type:"function",params:[{name:"value"},{name:"description"},{name:"type"},{name:"schema"}],info:'<p><em>Camunda Extension</em></p>\n<p>Returns the unmodified <code>value</code> parameter.</p>\n<p>In addition to the previous overload, it also accepts an optional <code>schema</code> parameter to provide a (partial) <a href="https://json-schema.org/">JSON schema</a> for the value.</p>\n<ul>\n<li>The schema is not validated by the FEEL engine but might be by a custom integration consuming the information.</li>\n<li>From the engine side it is possible to specify both a <code>type</code> and a <code>schema</code>, and it depends on the integration as to which value takes precedence.</li>\n</ul>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">fromAi(value: Any, description: string, type: string, schema: context): Any\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">fromAi(toolCall.documentType, &quot;The document type to provide&quot;, &quot;string&quot;, {\n  enum: [&quot;invoice&quot;, &quot;receipt&quot;, &quot;contract&quot;]\n})\n// toolCall.documentType contents\n\nfromAi(value: toolCall.documentType, description: &quot;The document type to provide&quot;, schema: {\n  type: &quot;string&quot;,\n  enum: [&quot;invoice&quot;, &quot;receipt&quot;, &quot;contract&quot;]\n})\n// toolCall.documentType contents\n\nfromAi(toolCall.tags, &quot;Tags to apply to the blog post&quot;, &quot;array&quot;, {\n  items: {\n    type: &quot;string&quot;\n  }\n})\n// toolCall.tags contents\n</code></pre>\n'},{name:"fromAi",type:"function",params:[{name:"value"},{name:"description"},{name:"type"},{name:"schema"},{name:"options"}],info:'<p><em>Camunda Extension</em></p>\n<p>Returns the unmodified <code>value</code> parameter.</p>\n<p>In addition to the previous overload, it also accepts an optional <code>options</code> parameter to provide additional options for the integration handling the value definition.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">fromAi(value: Any, description: string, type: string, schema: context, options: context): Any\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">fromAi(toolCall.documentType, &quot;The document type to provide&quot;, &quot;string&quot;, null, {\n  strict: true,\n  required: false\n})\n// toolCall.documentType contents\n\nfromAi(value: toolCall.documentType, options: {\n  strict: true,\n  required: false\n})\n// toolCall.documentType contents\n</code></pre>\n'},{name:"decimal",type:"function",params:[{name:"n"},{name:"scale"}],info:'<p>Rounds the given value at the given scale.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">decimal(n: number, scale: number): number\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">decimal(1/3, 2)\n// .33\n\ndecimal(1.5, 0)\n// 2\n</code></pre>\n'},{name:"floor",type:"function",params:[{name:"n"}],info:'<p>Rounds the given value with rounding mode flooring.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">floor(n: number): number\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">floor(1.5)\n// 1\n\nfloor(-1.5)\n// -2\n</code></pre>\n'},{name:"floor",type:"function",params:[{name:"n"},{name:"scale"}],info:'<p>Rounds the given value with rounding mode flooring at the given scale.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">floor(n: number, scale: number): number\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">floor(-1.56, 1)\n// -1.6\n</code></pre>\n'},{name:"ceiling",type:"function",params:[{name:"n"}],info:'<p>Rounds the given value with rounding mode ceiling.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">ceiling(n: number): number\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">ceiling(1.5)\n// 2\n\nceiling(-1.5)\n// -1\n</code></pre>\n'},{name:"ceiling",type:"function",params:[{name:"n"},{name:"scale"}],info:'<p>Rounds the given value with rounding mode ceiling at the given scale.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">ceiling(n: number, scale: number): number\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">ceiling(-1.56, 1)\n// -1.5\n</code></pre>\n'},{name:"round up",type:"function",params:[{name:"n"},{name:"scale"}],info:'<p>Rounds the given value with the rounding mode round-up at the given scale.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">round up(n: number, scale: number): number\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">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</code></pre>\n'},{name:"round down",type:"function",params:[{name:"n"},{name:"scale"}],info:'<p>Rounds the given value with the rounding mode round-down at the given scale.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">round down(n: number, scale: number): number\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">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</code></pre>\n'},{name:"round half up",type:"function",params:[{name:"n"},{name:"scale"}],info:'<p>Rounds the given value with the rounding mode round-half-up at the given scale.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">round half up(n: number, scale: number): number\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">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</code></pre>\n'},{name:"round half down",type:"function",params:[{name:"n"},{name:"scale"}],info:'<p>Rounds the given value with the rounding mode round-half-down at the given scale.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">round half down(n: number, scale: number): number\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">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</code></pre>\n'},{name:"abs",type:"function",params:[{name:"number"}],info:'<p>Returns the absolute value of the given numeric value.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">abs(number: number): number\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">abs(10)\n// 10\n\nabs(-10)\n// 10\n</code></pre>\n'},{name:"modulo",type:"function",params:[{name:"dividend"},{name:"divisor"}],info:'<p>Returns the remainder of the division of dividend by divisor.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">modulo(dividend: number, divisor: number): number\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">modulo(12, 5)\n// 2\n</code></pre>\n'},{name:"sqrt",type:"function",params:[{name:"number"}],info:'<p>Returns the square root of the given value.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">sqrt(number: number): number\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">sqrt(16)\n// 4\n</code></pre>\n'},{name:"log",type:"function",params:[{name:"number"}],info:'<p>Returns the natural logarithm (base e) of the given value.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">log(number: number): number\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">log(10)\n// 2.302585092994046\n</code></pre>\n'},{name:"exp",type:"function",params:[{name:"number"}],info:'<p>Returns the Euler’s number e raised to the power of the given number .</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">exp(number: number): number\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">exp(5)\n// 148.4131591025766\n</code></pre>\n'},{name:"odd",type:"function",params:[{name:"number"}],info:'<p>Returns <code>true</code> if the given value is odd. Otherwise, returns <code>false</code>.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">odd(number: number): boolean\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">odd(5)\n// true\n\nodd(2)\n// false\n</code></pre>\n'},{name:"even",type:"function",params:[{name:"number"}],info:'<p>Returns <code>true</code> if the given is even. Otherwise, returns <code>false</code>.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">even(number: number): boolean\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">even(5)\n// false\n\neven(2)\n// true\n</code></pre>\n'},{name:"random number",type:"function",params:[],info:'<p><em>Camunda Extension</em></p>\n<p>Returns a random number between <code>0</code> and <code>1</code>.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">random number(): number\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">random number()\n// 0.9701618132579795\n</code></pre>\n'},{name:"before",type:"function",params:[{name:"point1"},{name:"point2"}],info:'<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">before(point1: Any, point2: Any): boolean\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">before(1, 10)\n// true\n\nbefore(10, 1)\n// false\n</code></pre>\n'},{name:"before",type:"function",params:[{name:"range"},{name:"point"}],info:'<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">before(range: range, point: Any): boolean\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">before([1..5], 10)\n// true\n</code></pre>\n'},{name:"before",type:"function",params:[{name:"point"},{name:"range"}],info:'<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">before(point: Any, range: range): boolean\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">before(1, [2..5])\n// true\n</code></pre>\n'},{name:"before",type:"function",params:[{name:"range1"},{name:"range2"}],info:'<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">before(range1: range, range2: range): boolean\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">before([1..5], [6..10])\n// true\n\nbefore([1..5),[5..10])\n// true\n</code></pre>\n'},{name:"after",type:"function",params:[{name:"point1"},{name:"point2"}],info:'<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">after(point1: Any, point2: Any): boolean\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">after(10, 1)\n// true\n\nafter(1, 10)\n// false\n</code></pre>\n'},{name:"after",type:"function",params:[{name:"range"},{name:"point"}],info:'<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">after(range: range, point: Any): boolean\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">after([1..5], 10)\n// false\n</code></pre>\n'},{name:"after",type:"function",params:[{name:"point"},{name:"range"}],info:'<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">after(point: Any, range: range): boolean\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">after(12, [2..5])\n// true\n</code></pre>\n'},{name:"after",type:"function",params:[{name:"range1"},{name:"range2"}],info:'<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">after(range1: range, range2: range): boolean\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">after([6..10], [1..5])\n// true\n\nafter([5..10], [1..5))\n// true\n</code></pre>\n'},{name:"meets",type:"function",params:[{name:"range1"},{name:"range2"}],info:'<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">meets(range1: range, range2: range): boolean\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">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</code></pre>\n'},{name:"met by",type:"function",params:[{name:"range1"},{name:"range2"}],info:'<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">met by(range1: range, range2: range): boolean\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">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</code></pre>\n'},{name:"overlaps",type:"function",params:[{name:"range1"},{name:"range2"}],info:'<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">overlaps(range1: range, range2: range): boolean\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">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</code></pre>\n'},{name:"overlaps before",type:"function",params:[{name:"range1"},{name:"range2"}],info:'<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">overlaps before(range1: range, range2: range): boolean\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">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</code></pre>\n'},{name:"overlaps after",type:"function",params:[{name:"range1"},{name:"range2"}],info:'<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">overlaps after(range1: range, range2: range): boolean\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">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</code></pre>\n'},{name:"finishes",type:"function",params:[{name:"point"},{name:"range"}],info:'<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">finishes(point: Any, range: range): boolean\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">finishes(5, [1..5])\n// true\n\nfinishes(10, [1..7])\n// false\n</code></pre>\n'},{name:"finishes",type:"function",params:[{name:"range1"},{name:"range2"}],info:'<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">finishes(range1: range, range2: range): boolean\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">finishes([3..5], [1..5])\n// true\n\nfinishes((1..5], [1..5))\n// false\n\nfinishes([5..10], [1..10))\n// false\n</code></pre>\n'},{name:"finished by",type:"function",params:[{name:"range"},{name:"point"}],info:'<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">finished by(range: range, point: Any): boolean\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">finished by([5..10], 10)\n// true\n\nfinished by([3..4], 2)\n// false\n</code></pre>\n'},{name:"finished by",type:"function",params:[{name:"range1"},{name:"range2"}],info:'<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">finished by(range1: range, range2: range): boolean\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">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</code></pre>\n'},{name:"includes",type:"function",params:[{name:"range"},{name:"point"}],info:'<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">includes(range: range, point: Any): boolean\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">includes([5..10], 6)\n// true\n\nincludes([3..4], 5)\n// false\n</code></pre>\n'},{name:"includes",type:"function",params:[{name:"range1"},{name:"range2"}],info:'<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">includes(range1: range, range2: range): boolean\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">includes([1..10], [4..6])\n// true\n\nincludes((5..8], [1..5))\n// false\n\nincludes([1..10], [1..5))\n// true\n</code></pre>\n'},{name:"during",type:"function",params:[{name:"point"},{name:"range"}],info:'<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">during(point: Any, range: range): boolean\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">during(5, [1..10])\n// true\n\nduring(12, [1..10])\n// false\n\nduring(1, (1..10])\n// false\n</code></pre>\n'},{name:"during",type:"function",params:[{name:"range1"},{name:"range2"}],info:'<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">during(range1: range, range2: range): boolean\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">during([4..6], [1..10))\n// true\n\nduring((1..5], (1..10])\n// true\n</code></pre>\n'},{name:"starts",type:"function",params:[{name:"point"},{name:"range"}],info:'<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">starts(point: Any, range: range): boolean\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">starts(1, [1..5])\n// true\n\nstarts(1, (1..8])\n// false\n</code></pre>\n'},{name:"starts",type:"function",params:[{name:"range1"},{name:"range2"}],info:'<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">starts(range1: range, range2: range): boolean\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">starts((1..5], [1..5])\n// false\n\nstarts([1..10], [1..5])\n// false\n\nstarts((1..5), (1..10))\n// true\n</code></pre>\n'},{name:"started by",type:"function",params:[{name:"range"},{name:"point"}],info:'<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">started by(range: range, point: Any): boolean\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">started by([1..10], 1)\n// true\n\nstarted by((1..10], 1)\n// false\n</code></pre>\n'},{name:"started by",type:"function",params:[{name:"range1"},{name:"range2"}],info:'<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">started by(range1: range, range2: range): boolean\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">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</code></pre>\n'},{name:"coincides",type:"function",params:[{name:"point1"},{name:"point2"}],info:'<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">coincides(point1: Any, point2: Any): boolean\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">coincides(5, 5)\n// true\n\ncoincides(3, 4)\n// false\n</code></pre>\n'},{name:"coincides",type:"function",params:[{name:"range1"},{name:"range2"}],info:'<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">coincides(range1: range, range2: range): boolean\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">coincides([1..5], [1..5])\n// true\n\ncoincides((1..5], [1..5))\n// false\n\ncoincides([1..5], [2..6])\n// false\n</code></pre>\n'},{name:"substring",type:"function",params:[{name:"string"},{name:"start position"}],info:'<p>Returns a substring of the given value starting at <code>start position</code>.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">substring(string: string, start position: number): string\n</code></pre>\n<p>The <code>start position</code> starts at the index <code>1</code>. The last position is <code>-1</code>.</p>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">substring(&quot;foobar&quot;, 3)\n// &quot;obar&quot;\n\nsubstring(&quot;foobar&quot;, -2)\n// &quot;ar&quot;\n</code></pre>\n'},{name:"substring",type:"function",params:[{name:"string"},{name:"start position"},{name:"length"}],info:'<p>Returns a substring of the given value, starting at <code>start position</code> with the given <code>length</code>. If <code>length</code> is greater than\nthe remaining characters of the value, it returns all characters from <code>start position</code> until the end.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">substring(string: string, start position: number, length: number): string\n</code></pre>\n<p>The <code>start position</code> starts at the index <code>1</code>. The last position is <code>-1</code>.</p>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">substring(&quot;foobar&quot;, 3, 3)\n// &quot;oba&quot;\n\nsubstring(&quot;foobar&quot;, -3, 2)\n// &quot;ba&quot;\n\nsubstring(&quot;foobar&quot;, 3, 10)\n// &quot;obar&quot;\n</code></pre>\n'},{name:"string length",type:"function",params:[{name:"string"}],info:'<p>Returns the number of characters in the given value.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">string length(string: string): number\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">string length(&quot;foo&quot;)\n// 3\n</code></pre>\n'},{name:"upper case",type:"function",params:[{name:"string"}],info:'<p>Returns the given value with all characters are uppercase.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">upper case(string: string): string\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">upper case(&quot;aBc4&quot;)\n// &quot;ABC4&quot;\n</code></pre>\n'},{name:"lower case",type:"function",params:[{name:"string"}],info:'<p>Returns the given value with all characters are lowercase.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">lower case(string: string): string\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">lower case(&quot;aBc4&quot;)\n// &quot;abc4&quot;\n</code></pre>\n'},{name:"substring before",type:"function",params:[{name:"string"},{name:"match"}],info:'<p>Returns a substring of the given value that contains all characters before <code>match</code>.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">substring before(string: string, match: string): string\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">substring before(&quot;foobar&quot;, &quot;bar&quot;)\n// &quot;foo&quot;\n</code></pre>\n'},{name:"substring after",type:"function",params:[{name:"string"},{name:"match"}],info:'<p>Returns a substring of the given value that contains all characters after <code>match</code>.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">substring after(string: string, match: string): string\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">substring after(&quot;foobar&quot;, &quot;ob&quot;)\n// &quot;ar&quot;\n</code></pre>\n'},{name:"contains",type:"function",params:[{name:"string"},{name:"match"}],info:'<p>Returns <code>true</code> if the given value contains the substring <code>match</code>. Otherwise, returns <code>false</code>.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">contains(string: string, match: string): boolean\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">contains(&quot;foobar&quot;, &quot;of&quot;)\n// false\n</code></pre>\n'},{name:"starts with",type:"function",params:[{name:"string"},{name:"match"}],info:'<p>Returns <code>true</code> if the given value starts with the substring <code>match</code>. Otherwise, returns <code>false</code>.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">starts with(string: string, match: string): boolean\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">starts with(&quot;foobar&quot;, &quot;fo&quot;)\n// true\n</code></pre>\n'},{name:"ends with",type:"function",params:[{name:"string"},{name:"match"}],info:'<p>Returns <code>true</code> if the given value ends with the substring <code>match</code>. Otherwise, returns <code>false</code>.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">ends with(string: string, match: string): boolean\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">ends with(&quot;foobar&quot;, &quot;r&quot;)\n// true\n</code></pre>\n'},{name:"matches",type:"function",params:[{name:"input"},{name:"pattern"}],info:'<p>Returns <code>true</code> if the given value matches the <code>pattern</code>. Otherwise, returns <code>false</code>.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">matches(input: string, pattern: string): boolean\n</code></pre>\n<p>The <code>pattern</code> is a string that contains a regular expression.</p>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">matches(&quot;foobar&quot;, &quot;^fo*bar&quot;)\n// true\n</code></pre>\n'},{name:"matches",type:"function",params:[{name:"input"},{name:"pattern"},{name:"flags"}],info:'<p>Returns <code>true</code> if the given value matches the <code>pattern</code>. Otherwise, returns <code>false</code>.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">matches(input: string, pattern: string, flags: string): boolean\n</code></pre>\n<p>The <code>pattern</code> is a string that contains a regular expression.</p>\n<p>The <code>flags</code> can contain one or more of the following characters:</p>\n<ul>\n<li><code>s</code> (dot-all)</li>\n<li><code>m</code> (multi-line)</li>\n<li><code>i</code> (case insensitive)</li>\n<li><code>x</code> (comments)</li>\n</ul>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">matches(&quot;FooBar&quot;, &quot;foo&quot;, &quot;i&quot;)\n// true\n</code></pre>\n'},{name:"replace",type:"function",params:[{name:"input"},{name:"pattern"},{name:"replacement"}],info:'<p>Returns the resulting string after replacing all occurrences of <code>pattern</code> with <code>replacement</code>.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">replace(input: string, pattern: string, replacement: string): string\n</code></pre>\n<p>The <code>pattern</code> is a string that contains a regular expression.</p>\n<p>The <code>replacement</code> can access the match groups by using <code>$</code> and the number of the group, for example,\n<code>$1</code> to access the first group.</p>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">replace(&quot;abcd&quot;, &quot;(ab)|(a)&quot;, &quot;[1=$1][2=$2]&quot;)\n// &quot;[1=ab][2=]cd&quot;\n\nreplace(&quot;0123456789&quot;, &quot;(\\d{3})(\\d{3})(\\d{4})&quot;, &quot;($1) $2-$3&quot;)\n// &quot;(012) 345-6789&quot;\n</code></pre>\n'},{name:"replace",type:"function",params:[{name:"input"},{name:"pattern"},{name:"replacement"},{name:"flags"}],info:'<p>Returns the resulting string after replacing all occurrences of <code>pattern</code> with <code>replacement</code>.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">replace(input: string, pattern: string, replacement: string, flags: string): string\n</code></pre>\n<p>The <code>pattern</code> is a string that contains a regular expression.</p>\n<p>The <code>replacement</code> can access the match groups by using <code>$</code> and the number of the group, for example,\n<code>$1</code> to access the first group.</p>\n<p>The <code>flags</code> can contain one or more of the following characters:</p>\n<ul>\n<li><code>s</code> (dot-all)</li>\n<li><code>m</code> (multi-line)</li>\n<li><code>i</code> (case insensitive)</li>\n<li><code>x</code> (comments)</li>\n</ul>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">replace(&quot;How do you feel?&quot;, &quot;Feel&quot;, &quot;FEEL&quot;, &quot;i&quot;)\n// &quot;How do you FEEL?&quot;\n</code></pre>\n'},{name:"split",type:"function",params:[{name:"string"},{name:"delimiter"}],info:'<p>Splits the given value into a list of substrings, breaking at each occurrence of the <code>delimiter</code> pattern.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">split(string: string, delimiter: string): list&lt;string&gt;\n</code></pre>\n<p>The <code>delimiter</code> is a string that contains a regular expression.</p>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">split(&quot;John Doe&quot;, &quot;\\s&quot; )\n// [&quot;John&quot;, &quot;Doe&quot;]\n\nsplit(&quot;a;b;c;;&quot;, &quot;;&quot;)\n// [&quot;a&quot;, &quot;b&quot;, &quot;c&quot;, &quot;&quot;, &quot;&quot;]\n</code></pre>\n'},{name:"extract",type:"function",params:[{name:"string"},{name:"pattern"}],info:'<p><em>Camunda Extension</em></p>\n<p>Returns all matches of the pattern in the given string. Returns an empty list if the pattern doesn&#39;t\nmatch.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">extract(string: string, pattern: string): list&lt;string&gt;\n</code></pre>\n<p>The <code>pattern</code> is a string that contains a regular expression.</p>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">extract(&quot;references are 1234, 1256, 1378&quot;, &quot;12[0-9]*&quot;)\n// [&quot;1234&quot;,&quot;1256&quot;]\n</code></pre>\n'},{name:"trim",type:"function",params:[{name:"string"}],info:'<p><em>Camunda Extension</em></p>\n<p>Returns the given string without leading and trailing spaces.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">trim(string: string): string\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">trim(&quot;  hello world  &quot;)\n// &quot;hello world&quot;\n\ntrim(&quot;hello   world &quot;)\n// &quot;hello   world&quot;\n</code></pre>\n'},{name:"uuid",type:"function",params:[],info:'<p><em>Camunda Extension</em></p>\n<p>Returns a UUID (Universally Unique Identifier) with 36 characters.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">uuid(): string\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">uuid()\n// &quot;7793aab1-d761-4d38-916b-b7270e309894&quot;\n</code></pre>\n'},{name:"to base64",type:"function",params:[{name:"value"}],info:'<p><em>Camunda Extension</em></p>\n<p>Returns the given string encoded in Base64 format.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">to base64(value: string): string\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">to base64(&quot;FEEL&quot;)\n// &quot;RkVFTA==&quot;\n</code></pre>\n'},{name:"is blank",type:"function",params:[{name:"string"}],info:'<p><em>Camunda Extension</em></p>\n<p>Returns <code>true</code> if the given string is blank (empty or contains only whitespaces).</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">is blank(string: string): boolean\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">is blank(&quot;&quot;)\n// true\n\nis blank(&quot; &quot;)\n// true\n\nis blank(&quot;hello world&quot;)\n// false\n</code></pre>\n'},{name:"now",type:"function",params:[],info:'<p>Returns the current date and time including the timezone.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">now(): date and time\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">now()\n// date and time(&quot;2020-07-31T14:27:30@Europe/Berlin&quot;)\n</code></pre>\n'},{name:"today",type:"function",params:[],info:'<p>Returns the current date.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">today(): date\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">today()\n// date(&quot;2020-07-31&quot;)\n</code></pre>\n'},{name:"day of week",type:"function",params:[{name:"date"}],info:'<p>Returns the day of the week according to the Gregorian calendar. Note that it always returns the English name of the day.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">day of week(date: date): string\n</code></pre>\n<pre><code class="language-feel">day of week(date: date and time): string\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">day of week(date(&quot;2019-09-17&quot;))\n// &quot;Tuesday&quot;\n\nday of week(date and time(&quot;2019-09-17T12:00:00&quot;))\n// &quot;Tuesday&quot;\n</code></pre>\n'},{name:"day of year",type:"function",params:[{name:"date"}],info:'<p>Returns the Gregorian number of the day within the year.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">day of year(date: date): number\n</code></pre>\n<pre><code class="language-feel">day of year(date: date and time): number\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">day of year(date(&quot;2019-09-17&quot;))\n// 260\n\nday of year(date and time(&quot;2019-09-17T12:00:00&quot;))\n// 260\n</code></pre>\n'},{name:"week of year",type:"function",params:[{name:"date"}],info:'<p>Returns the Gregorian number of the week within the year, according to ISO 8601.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">week of year(date: date): number\n</code></pre>\n<pre><code class="language-feel">week of year(date: date and time): number\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">week of year(date(&quot;2019-09-17&quot;))\n// 38\n\nweek of year(date and time(&quot;2019-09-17T12:00:00&quot;))\n// 38\n</code></pre>\n'},{name:"month of year",type:"function",params:[{name:"date"}],info:'<p>Returns the month of the year according to the Gregorian calendar. Note that it always returns the English name of the month.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">month of year(date: date): string\n</code></pre>\n<pre><code class="language-feel">month of year(date: date and time): string\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">month of year(date(&quot;2019-09-17&quot;))\n// &quot;September&quot;\n\nmonth of year(date and time(&quot;2019-09-17T12:00:00&quot;))\n// &quot;September&quot;\n</code></pre>\n'},{name:"abs",type:"function",params:[{name:"n"}],info:'<p>Returns the absolute value of a given duration.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">abs(n: days and time duration): days and time duration\n</code></pre>\n<pre><code class="language-feel">abs(n: years and months duration): years and months duration\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">abs(duration(&quot;-PT5H&quot;))\n// &quot;duration(&quot;PT5H&quot;)&quot;\n\nabs(duration(&quot;PT5H&quot;))\n// &quot;duration(&quot;PT5H&quot;)&quot;\n\nabs(duration(&quot;-P2M&quot;))\n// duration(&quot;P2M&quot;)\n</code></pre>\n'},{name:"last day of month",type:"function",params:[{name:"date"}],info:'<p><em>Camunda Extension</em></p>\n<p>Takes the month of the given date or date-time value and returns the last day of this month.</p>\n<p><strong>Function signature</strong></p>\n<pre><code class="language-feel">last day of month(date: date): date\n</code></pre>\n<pre><code class="language-feel">last day of month(date: date and time): date\n</code></pre>\n<p><strong>Examples</strong></p>\n<pre><code class="language-feel">last day of month(date(&quot;2022-10-01&quot;))\n// date(&quot;2022-10-31&quot;))\n\nlast day of month(date and time(&quot;2022-10-16T12:00:00&quot;))\n// date(&quot;2022-10-31&quot;))\n</code></pre>\n'}].map((e=>({...e,info:()=>gt(e.info)})));(class extends rl{constructor(e){super(),this._modeling=e}setText(e,t){this._modeling.updateProperties(e,{text:t})}}).$inject=["modeling"];function km(e){e.stopPropagation()}(class extends Pr{constructor(e,t){super(e,t),Bs(this);const{value:n}=e;this.state={value:n,optionsVisible:!1},this._portalEl=null}componentDidMount(){document.addEventListener("mousedown",this.onGlobalClick),document.addEventListener("focusin",this.onFocusChanged),this.keyboard.addListener(this.onKeyboard)}componentWillUnmount(){document.removeEventListener("focusin",this.onFocusChanged),document.removeEventListener("mousedown",this.onGlobalClick),this.keyboard.removeListener(this.onKeyboard),this.removePortalEl()}componentWillReceiveProps(e){const{value:t}=e;this.setState({value:t})}componentWillUpdate(e,t){const{optionsVisible:n}=t;n?this._portalEl||this.addPortalEl():this._portalEl&&this.removePortalEl()}componentDidUpdate(){const{optionsVisible:e}=this.state;if(!e||!this.inputNode)return;const t=this.getOptionsBounds();S(this._portalEl.style,t)}getOptionsBounds(){const e=this.renderer.getContainer(),{top:t,left:n,bottom:i}=e.getBoundingClientRect(),{top:r,left:o,width:s,height:a,bottom:l}=this.inputNode.getBoundingClientRect(),c=r+a-t+e.scrollTop,h={top:`${c}px`,left:`${o-n+e.scrollLeft}px`,width:`${s}px`,"max-height":`calc(100% - ${c}px)`};if(i-l<a){const e=i-r;h.bottom=`${e}px`,h["max-height"]=`calc(100% - ${e})`,delete h.top}return h}addPortalEl(){this._portalEl=gt('<div class="dms-select-options"></div>');this.renderer.getContainer().appendChild(this._portalEl),this._portalEl.addEventListener("mousedown",km)}removePortalEl(){this._portalEl&&(this._portalEl.removeEventListener("mousedown",km),yt(this._portalEl),this._portalEl=null)}onChange=e=>{this.setState({value:e});const{onChange:t}=this.props;"function"==typeof t&&t(e)};onInputClick=e=>{e.preventDefault(),e.stopPropagation(),this.setOptionsVisible(!this.state.optionsVisible),this.focusInput()};onInput=e=>{const{value:t}=e.target;this.onChange(t)};onOptionClick=(e,t)=>{t.preventDefault(),t.stopPropagation(),this.setOptionsVisible(!1),this.onChange(e),this.focusInput()};focusInput(){const e=this.inputNode;e.focus(),"selectionStart"in e&&(e.selectionStart=1e5)}checkClose(e){!this._portalEl||this._portalEl.contains(e)||this.parentNode.contains(e)||this.setOptionsVisible(!1)}onFocusChanged=e=>{this.checkClose(e.target)};onGlobalClick=e=>{this.checkClose(e.target)};select(e){const{options:t}=this.props,{value:n}=this.state;if(!t)return;const i=t.filter((e=>e.value===n))[0],r=i?t.indexOf(i):-1,o=-1===r?1===e?0:t.length-1:(r+e)%t.length,s=t[o<0?t.length+o:o];this.onChange(s.value)}setOptionsVisible(e){this.setState({optionsVisible:e})}onKeyDown=e=>{const{optionsVisible:t}=this.state;var n=e.which;40!==n&&38!==n||(e.stopPropagation(),e.preventDefault(),t?this.select(40===n?1:-1):this.setOptionsVisible(!0)),t&&(13!==n&&27!==n||(e.stopPropagation(),e.preventDefault(),this.setOptionsVisible(!1)))};onKeyboard=e=>{const{optionsVisible:t}=this.state;if(t)return 27===e?(this.setOptionsVisible(!1),!0):void 0};renderOptions(e,t){return xi(1,"div","options",e.map((e=>xi(1,"div",["option",t===e?"active":""].join(" "),e.label,0,{"data-value":e.value,onClick:t=>this.onOptionClick(e.value,t)}))),0)}render(){const{className:e,label:t,id:n,options:i,noInput:r,title:o}=this.props,{optionsVisible:s,value:a}=this.state,l=!!i&&i.filter((e=>e.value===a))[0],c=l?l.label:a;return xi(1,"div",[e||"","dms-input-select"].join(" "),[r?xi(1,"div","dms-input",c,0,{"aria-label":t,tabIndex:"0",onKeyDown:this.onKeyDown},null,(e=>this.inputNode=e)):xi(64,"input","dms-input",null,1,{"aria-label":t,onInput:this.onInput,onKeyDown:this.onKeyDown,spellCheck:"false",type:"text",value:a,id:n},null,(e=>this.inputNode=e)),xi(1,"span",["dms-input-select-icon",s?"dmn-icon-up":"dmn-icon-down"].join(" ")),s&&(h=this.renderOptions(i,l),u=this._portalEl,xi(1024,u,null,h,0,null,si(h)?null:h.key,null))],0,{title:o,onClick:this.onInputClick},null,(e=>this.parentNode=e));var h,u}}).$inject=["keyboard","renderer"];return class extends bt{_getViewProviders(){return[{id:"drd",constructor:ms,opens(e){return Xn(e,"dmn:Definitions")&&((t=e).dmnDI&&t.dmnDI.diagrams&&t.dmnDI.diagrams[0]);var t}},{id:"decisionTable",constructor:Aa,opens:e=>Xn(e,"dmn:Decision")&&Xn(e.decisionLogic,"dmn:DecisionTable")},{id:"literalExpression",constructor:Ya,opens:e=>Xn(e,"dmn:Decision")&&Xn(e.decisionLogic,"dmn:LiteralExpression")},{id:"boxedExpression",constructor:Sl,opens:e=>Xn(e,"dmn:BusinessKnowledgeModel")&&Jn(e)}]}}}));