/*! dmn-js - dmn-viewer v17.7.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=y(t);let i;return d(e,function(e,t){if(n(e,t))return i=e,!1}),i}function p(e,t){const n=y(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)?w:v;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){return function(t){return g(e,function(e,n){return t[n]===e})}}function y(e){return l(e)?e:t=>t===e}function v(e){return e}function w(e){return Number(e)}function b(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 x(e,t){return e.bind(t)}function k(e,...t){return Object.assign(e,...t)}var _="__fn",S=Array.prototype.slice;function C(){this._listeners={},this.on("diagram.destroy",1,this._destroy,this)}function E(){}function M(){}function A(e,t){this.model=e,this.properties=t}C.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=x(n,i))[_]=n[_]||n);var s=this;e.forEach(function(e){s._addListener(e,{priority:t,callback:r,next:null})})},C.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[_]=n,this.on(e,t,o)},C.prototype.off=function(e,t){e=o(e)?e:[e];var n=this;e.forEach(function(e){n._removeListener(e,t)})},C.prototype.createEvent=function(e){var t=new E;return t.init(e),t},C.prototype.fire=function(e,t){var n,i,r,o;if(o=S.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 E?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}},C.prototype.handleError=function(e){return!1===this.fire("error",{error:e})},C.prototype._destroy=function(){this._listeners={}},C.prototype._invokeListeners=function(e,t,n){for(var i;n&&!e.cancelBubble;)i=this._invokeListener(e,t,n),n=n.next;return i},C.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},C.prototype._addListener=function(e,t){var n,i=this._getListeners(e);if(i){for(;i;){if(i.priority or , got "+e);n=r[1],i=r[0]}return{name:e=(i?i+":":"")+n,prefix:i,localName:n}}function B(e){this.ns=e,this.name=e.name,this.allTypes=[],this.allTypesByName={},this.properties=[],this.propertiesByName={}}function P(e,t){this.packageMap={},this.typeMap={},this.packages=[],this.properties=t,d(e,x(this.registerPackage,this))}function L(e,t,n){var i=t[n];if(i in e)throw new Error("package with "+n+" <"+i+"> already defined")}function I(e){this.model=e}function F(e,t,n){Object.defineProperty(e,t.name,{enumerable:!t.isReference,writable:!0,value:n,configurable:!0})}function j(e){return e.replace(/^:/,"")}function V(e,t={}){this.properties=new I(this),this.factory=new A(this,this.properties),this.registry=new P(e,this.properties),this.typeCache={},this.config=t}B.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"])},B.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)},B.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},B.prototype.redefineProperty=function(e,t,n){var i=e.ns.prefix,r=t.split("#"),o=N(r[0],i),s=N(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},B.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},B.prototype.removeNamedProperty=function(e){var t=e.ns,n=this.propertiesByName;delete n[t.name],delete n[t.localName]},B.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},B.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},B.prototype.assertNotTrait=function(e){if((e.extends||[]).length)throw new Error(`cannot create <${e.name}> extending <${e.extends}>`)},B.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")},B.prototype.hasProperty=function(e){return this.propertiesByName[e]},B.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,x(function(n){n=k({},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)},P.prototype.getPackage=function(e){return this.packageMap[e]},P.prototype.getPackages=function(){return this.packages},P.prototype.registerPackage=function(e){e=k({},e);var t=this.packageMap;L(t,e,"prefix"),L(t,e,"uri"),d(e.types,x(function(t){this.registerType(t,e)},this)),t[e.uri]=t[e.prefix]=e,this.packages.push(e)},P.prototype.registerType=function(e,t){var n=N((e=k({},e,{superClass:(e.superClass||[]).slice(),extends:(e.extends||[]).slice(),properties:(e.properties||[]).slice(),meta:k(e.meta||{})})).name,t.prefix),i=n.name,r={};d(e.properties,x(function(e){var t=N(e.name,n.prefix),i=t.name;O(e.type)||(e.type=N(e.type,t.prefix).name),k(e,{ns:t,name:i}),r[i]=e},this)),k(e,{ns:n,name:i,propertiesByName:r}),d(e.extends,x(function(e){var t=N(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},P.prototype.mapTypes=function(e,t,n){var i=O(e.name)?{name:e.name}:this.typeMap[e.name],r=this;function o(n,i){var o=N(n,O(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)},P.prototype.getEffectiveDescriptor=function(e){var t=N(e),n=new B(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},P.prototype.definePackage=function(e,t){this.properties.define(e,"$pkg",{value:t})},I.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[j(t)]:i?r in e?e[r]=n:F(e,i,n):e.$attrs[j(t)]=n},I.prototype.get=function(e,t){var n=this.getProperty(e,t);if(!n)return e.$attrs[j(t)];var i=n.name;return!e[i]&&n.isMany&&F(e,n,[]),e[i]},I.prototype.define=function(e,t,n){if(!n.writable){var i=n.value;delete(n=k({},n,{get:function(){return i}})).value}Object.defineProperty(e,t,n)},I.prototype.defineDescriptor=function(e,t){this.define(e,"$descriptor",{value:t})},I.prototype.defineModel=function(e,t){this.define(e,"$model",{value:t})},I.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},V.prototype.create=function(e,t){var n=this.getType(e);if(!n)throw new Error("unknown type <"+e+">");return new n(t)},V.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},V.prototype.createAny=function(e,t,o){var a=N(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},V.prototype.getPackage=function(e){return this.registry.getPackage(e)},V.prototype.getPackages=function(){return this.registry.getPackages()},V.prototype.getElementDescriptor=function(e){return e.$descriptor},V.prototype.hasType=function(e,t){return void 0===t&&(t=e,e=this),t in e.$model.getElementDescriptor(e).allTypesByName},V.prototype.getPropertyDescriptor=function(e,t){return this.getElementDescriptor(e).propertiesByName[t]},V.prototype.getTypeDescriptor=function(e){return this.registry.typeMap[e]};var $=String.fromCharCode,W=Object.prototype.hasOwnProperty,z=/&#(\d+);|&#x([0-9a-f]+);|&(\w+);/gi,H={amp:"&",apos:"'",gt:">",lt:"<",quot:'"'};function U(e,t,n,i){return i?W.call(H,i)?H[i]:"&"+i+";":$(t||parseInt(n,16))}function G(e){return e.length>3&&-1!==e.indexOf("&")?e.replace(z,U):e}Object.keys(H).forEach(function(e){H[e.toUpperCase()]=H[e]});var K="non-whitespace outside of root node";function X(e){return new Error(e)}function J(e){return"missing namespace for prefix <"+e+">"}function Y(e){return{get:e,enumerable:!0}}function Q(e){var t,n={};for(t in e)n[t]=e[t];return n}function Z(e){return e+"$uri"}function ee(){return{line:0,column:0}}function te(e){throw e}function ne(e){if(!this)return new ne(e);var t,n,i,r,o,s,a,l,c,h=e&&e.proxy,u=te,p=ee,d=!1,f=!1,g=null,m=!1;function y(e){e instanceof Error||(e=X(e)),g=e,u(e,p)}function v(e){o&&(e instanceof Error||(e=X(e)),o(e,p))}this.on=function(e,c){if("function"!=typeof c)throw X("required args ");switch(e){case"openTag":n=c;break;case"text":t=c;break;case"closeTag":i=c;break;case"error":u=c;break;case"warn":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 X("unsupported event: "+e)}return this},this.ns=function(e){if(void 0===e&&(e={}),"object"!=typeof e)throw X("required args ");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 X("required args ");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[Z(n)]=t;return i}(c):null,T=[],R=0,D=!1,O=!1,q=0,N=0,B="",P=0;function L(){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=P,y=B,w=y.length,b={},x={};e:for(;m8)){for((h<65||h>122||h>90&&h<97)&&95!==h&&58!==h&&(v("illegal first char attribute name"),l=!0),u=m+1;u96&&h<123||h>64&&h<91||h>47&&h<59||46===h||45===h||95===h)){if(32===h||h<14&&h>8){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;u8);u++);for(-1===u&&(v("missing closing quotes"),u=w,l=!0),l||(o=y.substring(m,u)),m=u;u+18);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=G(o),t=Z(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=Q(A),i=!0),A[r]=s,"xmlns"===r&&(A[Z(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(J(a.substring(0,h))):b[a]=o;else b[a]=o}if(d)for(m=0,w=g.length;m=s&&(t=i.exec(e))&&!((a=t[0].length+t.index)>q);)r+=1,s=a;return-1==q?(o=a,n=e.substring(N)):0===N?n=e.substring(N,q):(o=q-s,n=-1==N?e.substring(q):e.substring(q,N+1)),{data:n,line:r,column:o}}p=I,h&&(C=Object.create({},{name:Y(function(){return _}),originalName:Y(function(){return S}),attrs:Y(L),ns:Y(function(){return A})}));for(;-1!==N;){if(-1===(q=60===e.charCodeAt(N)?N:e.indexOf("<",N)))return T.length?y("unexpected end of file"):0===N?y("missing start tag"):void(N",q)))return y("unclosed cdata");if(r&&(r(e.substring(q+9,N),p),m))return;N+=3;continue}if(45===w&&45===e.charCodeAt(q+3)){if(-1===(N=e.indexOf("--\x3e",q)))return y("unclosed comment");if(s&&(s(e.substring(q+4,N),G,p),m))return;N+=3;continue}}if(63!==b){for(u=q+1;;u++){if(x=e.charCodeAt(u),isNaN(x))return N=-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){N=u;break}}if(33!==b){if(E={},47===b){if(D=!1,O=!0,!T.length)return y("missing open tag");if(u=_=T.pop(),w=q+2+u.length,e.substring(q+2,w)!==u)return y("closing tag mismatch");for(;w8&&b<14))return y("close tag")}else{if(47===e.charCodeAt(N-1)?(u=_=e.substring(q+1,N-1),D=!0,O=!0):(u=_=e.substring(q+1,N),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;w96&&b<123||b>64&&b<91||b>47&&b<59||45===b||95===b||46==b)){if(32===b||b<14&&b>8){_=u.substring(0,w),E=null;break}return y("invalid nodeName")}O||T.push(_)}if(f){if(o=A,D&&(O||M.push(o),null===E&&(d=-1!==u.indexOf("xmlns",w))&&(P=w,B=u,L(),d=!1)),S=_,-1!==(b=_.indexOf(":"))){if(!(k=A[_.substring(0,b)]))return y("missing namespace on <"+S+">");_=_.substr(b+1)}else k=A.xmlns;k&&(_=k+":"+_)}if(D&&(P=w,B=u,n&&(h?n(C,G,O,p):n(_,L,G,O,p),m)))return;if(O){if(i&&(i(h?C:_,G,D,p),m))return;f&&(A=D?o:M.pop())}N+=1}else{if(l&&(l(e.substring(q,N+1),G,p),m))return;N+=1}}else{if(-1===(N=e.indexOf("?>",q)))return y("unclosed question");if(a&&(a(e.substring(q,N+2),p),m))return;N+=2}}}(e),p=ee,m=!1,g},this.stop=function(){m=!0}}function ie(e){return e.xml&&"lowerCase"===e.xml.tagAlias}var re={xsi:"http://www.w3.org/2001/XMLSchema-instance",xml:"http://www.w3.org/XML/1998/namespace"},oe="property";function se(e){return e.xml&&e.xml.serialize}function ae(e,t){return ie(t)?e.prefix+":"+((n=e.localName).charAt(0).toUpperCase()+n.slice(1)):e.name;var n}function le(e){return new Error(e)}function ce(e){return e.$descriptor}function he(e){k(this,e),this.elementsById={},this.references=[],this.warnings=[],this.addReference=function(e){this.references.push(e)},this.addElement=function(e){if(!e)throw le("expected element");var t,n=this.elementsById,i=ce(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 le("duplicate ID <"+t+">");n[t]=e}},this.addWarning=function(e){this.warnings.push(e)}}function ue(){}function pe(){}function de(){}function fe(e,t){this.property=e,this.context=t}function ge(e,t){this.element=t,this.propertyDesc=e}function me(){}function ye(e,t,n){this.model=e,this.type=e.getType(t),this.context=n}function ve(e,t,n){ye.call(this,e,t,n)}function we(e,t,n){this.model=e,this.context=n}function be(e){e instanceof V&&(e={model:e}),k(this,{lax:!1},e)}ue.prototype.handleEnd=function(){},ue.prototype.handleText=function(){},ue.prototype.handleNode=function(){},pe.prototype=Object.create(ue.prototype),pe.prototype.handleNode=function(){return this},de.prototype=Object.create(ue.prototype),de.prototype.handleText=function(e){this.body=(this.body||"")+e},fe.prototype=Object.create(de.prototype),fe.prototype.handleNode=function(e){if(this.element)throw le("expected no sub nodes");return this.element=this.createReference(e),this},fe.prototype.handleEnd=function(){this.element.id=this.body},fe.prototype.createReference=function(e){return{property:this.property.ns.name,id:""}},ge.prototype=Object.create(de.prototype),ge.prototype.handleEnd=function(){var e=this.body||"",t=this.element,n=this.propertyDesc;e=D(n.type,e),n.isMany?t.get(n.name).push(e):t.set(n.name,e)},me.prototype=Object.create(de.prototype),me.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},ye.prototype=Object.create(me.prototype),ye.prototype.addReference=function(e){this.context.addReference(e)},ye.prototype.handleText=function(e){if(!ce(this.element).bodyProperty)throw le("unexpected body text <"+e+">");de.prototype.handleText.call(this,e)},ye.prototype.handleEnd=function(){var e=this.body,t=this.element,n=ce(t).bodyProperty;n&&void 0!==e&&(e=D(n.type,e),t.set(n.name,e))},ye.prototype.createElement=function(e){var t,n=e.attributes,i=this.type,r=ce(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=D(i.type,e):"xmlns"===n?n=":"+n:(t=N(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},ye.prototype.getPropertyForNode=function(e){var t=N(e.name),n=this.type,i=this.model,r=ce(n),o=t.name,s=r.propertiesByName[o];if(s&&!s.isAttr){const t=function(e){const t=se(e);return t!==oe&&(t||null)}(s);if(t){const n=e.attributes[t];if(n){const t=function(e,t,n){const i=N(e,t.xmlns),r=N(`${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 k({},s,{effectiveType:ce(i.getType(t)).name})}}return s}var a=i.getPackage(t.prefix);if(a){const e=ae(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 k({},s,{effectiveType:ce(n).name})}else if(s=u(r.properties,function(e){return!e.isReference&&!e.isAttribute&&"Element"===e.type}))return s;throw le("unrecognized element <"+t.name+">")},ye.prototype.toString=function(){return"ElementDescriptor["+ce(this.type).name+"]"},ye.prototype.valueHandler=function(e,t){return new ge(e,t)},ye.prototype.referenceHandler=function(e){return new fe(e,this.context)},ye.prototype.handler=function(e){return"Element"===e?new we(this.model,e,this.context):new ye(this.model,e,this.context)},ye.prototype.handleChild=function(e){var t,n,i,r;if(t=this.getPropertyForNode(e),i=this.element,q(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?(k(o,{element:i}),this.context.addReference(o)):o.$parent=i),r},ve.prototype=Object.create(ye.prototype),ve.prototype.createElement=function(e){var t=e.name,n=N(t),i=this.model,r=this.type,o=i.getPackage(n.prefix),s=o&&ae(n,o)||t;if(!r.hasType(s))throw le("unexpected element <"+e.originalName+">");return ye.prototype.createElement.call(this,e)},we.prototype=Object.create(me.prototype),we.prototype.createElement=function(e){var t=e.name,n=N(t).prefix,i=e.ns[n+"$uri"],r=e.attributes;return this.model.createAny(t,i,r)},we.prototype.handleChild=function(e){var t=new we(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},we.prototype.handleEnd=function(){this.body&&(this.element.$body=this.body)},be.prototype.fromXML=function(e,t,n){var i=t.rootHandler;t instanceof ye?(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 he(k({},t,{rootHandler:i})),a=new ne({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 le(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(re).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 pe)}}({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=ce(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=le("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})})},be.prototype.handler=function(e){return new ve(this.model,e)};var xe=/<|>|'|"|&|\n\r|\n/g,ke=/<|>|&/g;function _e(e){this.prefixMap={},this.uriMap={},this.used={},this.wellknown=[],this.custom=[],this.parent=e,this.defaultPrefixMap=e&&e.defaultPrefixMap||{}}function Se(e,t){return ie(t)?function(e){return e.charAt(0).toLowerCase()+e.slice(1)}(e):e}function Ce(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}function Ee(e){return c(e)?e:(e.prefix?e.prefix+":":"")+e.localName}_e.prototype.mapDefaultPrefixes=function(e){this.defaultPrefixMap=e},_e.prototype.defaultUriByPrefix=function(e){return this.defaultPrefixMap[e]},_e.prototype.byUri=function(e){return this.uriMap[e]||this.parent&&this.parent.byUri(e)},_e.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)},_e.prototype.uriByPrefix=function(e){return this.prefixMap[e||"xmlns"]||this.parent&&this.parent.uriByPrefix(e)},_e.prototype.mapPrefix=function(e,t){this.prefixMap[e||"xmlns"]=t},_e.prototype.getNSKey=function(e){return void 0!==e.prefix?e.uri+"|"+e.prefix:e.uri},_e.prototype.logUsed=function(e){var t=e.uri,n=this.getNSKey(e);this.used[n]=this.byUri(t),this.parent&&this.parent.logUsed(e)},_e.prototype.getUsed=function(e){return[].concat(this.wellknown,this.custom).filter(e=>{var t=this.getNSKey(e);return this.used[t]})};var Me={"\n":"#10","\n\r":"#10",'"':"#34","'":"#39","<":"#60",">":"#62","&":"#38"},Ae={"<":"lt",">":"gt","&":"amp"};function Te(e,t,n){return(e=c(e)?e:""+e).replace(t,function(e){return"&"+n[e]+";"})}function Re(e){this.tagName=e}function De(){}function Oe(e){this.tagName=e}function qe(e,t){this.body=[],this.attrs=[],this.parent=e,this.propertyDescriptor=t}function Ne(e,t,n){qe.call(this,e,t),this.serialization=n}function Be(){this.value="",this.write=function(e){this.value+=e}}function Pe(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 Le(e){return e=k({format:!1,preamble:!0},e||{}),{toXML:function(t,n){var i=n||new Be,r=new Pe(i,e.format);e.preamble&&r.append('\n');var o=new qe,s=t.$model;if(o.getNamespaces().mapDefaultPrefixes(function(e){const t=e.config&&e.config.nsMap||{},n={};for(const e in re)n[e]=re[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 Ie(e,t){V.call(this,e,t)}Re.prototype.build=function(e){return this.element=e,this},Re.prototype.serializeTo=function(e){e.appendIndent().append("<"+this.tagName+">"+this.element.id+"").appendNewLine()},De.prototype.serializeValue=De.prototype.serializeTo=function(e){e.append(this.escape?Te(this.value,ke,Ae):this.value)},De.prototype.build=function(e,t){return this.value=t,"String"===e.type&&-1!==t.search(ke)&&(this.escape=!0),this},Ce(Oe,De),Oe.prototype.serializeTo=function(e){e.appendIndent().append("<"+this.tagName+">"),this.serializeValue(e),e.append("").appendNewLine()},qe.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},qe.prototype.nsTagName=function(e){return function(e,t){return t.isGeneric?k({localName:t.ns.localName},e):k({localName:Se(t.ns.localName,t.$pkg)},e)}(this.logNamespaceUsed(e.ns),e)},qe.prototype.nsPropertyTagName=function(e){return function(e,t){return k({localName:t.ns.localName},e)}(this.logNamespaceUsed(e.ns),e)},qe.prototype.isLocalNs=function(e){return e.uri===this.ns.uri},qe.prototype.nsAttributeName=function(e){var t;if(t=c(e)?N(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}:k({localName:t.localName},n)},qe.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}))},qe.prototype.parseGenericContainments=function(e){var t=e.$body;t&&this.body.push((new De).build({type:"String"},t));var n=e.$children;n&&d(n,e=>{this.body.push(new qe(this).build(e))})},qe.prototype.parseNsAttribute=function(e,t,n){var i,r=e.$model,o=N(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)}},qe.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},qe.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)}})},qe.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 De).build(e,r[0]));else if(q(e.type))d(r,function(i){n.push(new Oe(t.addTagName(t.nsPropertyTagName(e))).build(e,i))});else if(o)d(r,function(i){n.push(new Re(t.addTagName(t.nsPropertyTagName(e))).build(i))});else{var s=se(e);d(r,function(i){var r;r=s?s===oe?new qe(t,e):new Ne(t,e,s):new qe(t),n.push(r.build(i))})}})},qe.prototype.getNamespaces=function(e){var t,n=this.namespaces,i=this.parent;return n||(t=i&&i.getNamespaces(),e||!t?this.namespaces=n=new _e(t):n=t),n},qe.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},qe.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},qe.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)})},qe.prototype.addTagName=function(e){var t=this.logNamespaceUsed(e);return this.getNamespaces().logUsed(t),Ee(e)},qe.prototype.addAttribute=function(e,t){var n=this.attrs;c(t)&&(t=Te(t,xe,Me));var i=function(e,t){const n=y(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)},qe.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(Ee(t.name)).append('="').append(t.value).append('"')})},qe.prototype.serializeTo=function(e){var t=this.body[0],n=t&&t.constructor!==De;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("")),e.appendNewLine()},Ce(Ne,qe),Ne.prototype.parseNsAttributes=function(e){var t=qe.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},Ne.prototype.isLocalNs=function(e){return e.uri===(this.typeNs||this.ns).uri},Ie.prototype=Object.create(V.prototype),Ie.prototype.fromXML=function(e,t,n){c(t)||(n=t,t="dmn:Definitions");var i=new be(k({model:this,lax:!0},n)),r=i.handler(t);return i.fromXML(e,r)},Ie.prototype.toXML=function(e,t){var n=new Le(t);return new Promise(function(t,i){try{return t({xml:n.toXML(e)})}catch(e){return i(e)}})};var Fe={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 je(e,t){return new Ie(k({},Fe,e),t)}const Ve={legend:[1,"
","
"],tr:[2,"","
"],col:[2,"","
"],_default:[0,"",""]};function $e(e,t=globalThis.document){if("string"!=typeof e)throw new TypeError("String expected");const n=/^$/s.exec(e);if(n)return t.createComment(n[1]);const i=/<([\w:]+)/.exec(e)?.[1];if(!i)return t.createTextNode(e);if(e=e.trim(),"body"===i){const n=t.createElement("html");n.innerHTML=e;const{lastChild:i}=n;return i.remove(),i}let[r,o,s]=Object.hasOwn(Ve,i)?Ve[i]:Ve._default,a=t.createElement("div");for(a.innerHTML=o+e+s;r--;)a=a.lastChild;if(a.firstChild===a.lastChild){const{firstChild:e}=a;return e.remove(),e}const l=t.createDocumentFragment();return l.append(...a.childNodes),l}function We(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)}function ze(e,...t){const n=e.style;return d(t,function(e){e&&d(e,function(e,t){n[t]=e})}),e}function He(e,t,n){return 2==arguments.length?e.getAttribute(t):null===n?e.removeAttribute(t):(e.setAttribute(t,n),e)}Ve.td=Ve.th=[3,"","
"],Ve.option=Ve.optgroup=[1,'"],Ve.thead=Ve.tbody=Ve.colgroup=Ve.caption=Ve.tfoot=[1,"","
"],Ve.polyline=Ve.ellipse=Ve.polygon=Ve.circle=Ve.text=Ve.line=Ve.path=Ve.rect=Ve.g=[1,'',""];const Ue=Object.prototype.toString;function Ge(e){return new Ke(e)}function Ke(e){if(!e||!e.nodeType)throw new Error("A DOM element reference is required");this.el=e,this.list=e.classList}function Xe(e){for(var t;t=e.firstChild;)e.removeChild(t);return e}function Je(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}Ke.prototype.add=function(e){return this.list.add(e),this},Ke.prototype.remove=function(e){return"[object RegExp]"==Ue.call(e)?this.removeMatching(e):(this.list.remove(e),this)},Ke.prototype.removeMatching=function(e){const t=this.array();for(let n=0;n=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 st={width:"100%",height:"100%",position:"relative"};class at{constructor(e={}){this._eventBus=new C,this._viewsChanged=b(this._viewsChanged,0),this._views=[],this._viewers={},this.open=ot(this.open.bind(this)),this.importXML=ot(this.importXML.bind(this)),this.saveXML=ot(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 "!==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 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=it(e)),e.appendChild(this._container),this._emit("attach",{})}detach(){this._emit("detach",{}),rt(this._container)}destroy(){Object.keys(this._viewers).forEach(e=>{ut(this._viewers[e],"destroy")}),rt(this._container)}_init(e){this._options=e,this._moddle=this._createModdle(e),this._viewers={},this._views=[];const t=$e('
'),n=k({},st,e);k(t.style,{width:lt(n.width),height:lt(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 ct(c,e)})||this._getInitialView(r),l)){var h=!ct(c,l)||ht(c,l),p=i.length!==r.length||!g(r,function(e){return u(i,function(t){return ct(t,e)&&!ht(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 ct(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&&(ut(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 je(e.moddleExtensions)}_getViewProviders(){return[]}}function lt(e){return e+(a(e)?"px":"")}function ct(e,t){return i(e)?!!i(t)&&(e.element===t.element||e.id===t.id):!i(t)}function ht(e,t){return!e||!t||e.name!==t.name}function ut(e,t){l(e[t])&&e[t]()}const pt=/^class[ {]/;function dt(e){return Array.isArray(e)}function ft(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function gt(...e){1===e.length&&dt(e[0])&&(e=e[0]);const t=(e=[...e]).pop();return t.$inject=e,t}const mt=/constructor\s*[^(]*\(\s*([^)]*)\)/m,yt=/^(?:async\s+)?(?:function\s*[^(]*)?(?:\(\s*([^)]*)\)|(\w+))/m,vt=/\/\*([^*]*)\*\//m;function wt(e){if("function"!=typeof e)throw new Error(`Cannot annotate "${e}". Expected a function!`);const t=e.toString().match(function(e){return pt.test(e.toString())}(e)?mt:yt);if(!t)return[];const n=t[1]||t[2];return n&&n.split(",").map(e=>{const t=e.match(vt);return(t&&t[1]||e).trim()})||[]}function bt(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(ft(o,e))return o[e];if(ft(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(!dt(e))throw a(`Cannot invoke "${e}". Expected a function!`);e=gt(e.slice())}return{fn:e,dependencies:(e.$inject||wt(e)).map(e=>ft(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 gt(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 bt(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=gt(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],xt(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 xt(e,t){return"value"!==e&&dt(t)&&(t=gt(t.slice())),t}function kt(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}function _t(e,t){var n=this;t=t||1e3,e.on(["render.shape","render.connection"],t,function(e,t){var i=e.type,r=t.element,o=t.gfx,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 St(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}_t.prototype.canRender=function(e){},_t.prototype.drawShape=function(e,t){},_t.prototype.drawConnection=function(e,t){},_t.prototype.getShapePath=function(e){},_t.prototype.getConnectionPath=function(e){};var Ct={"alignment-baseline":1,"baseline-shift":1,clip:1,"clip-path":1,"clip-rule":1,color:1,"color-interpolation":1,"color-interpolation-filters":1,"color-profile":1,"color-rendering":1,cursor:1,direction:1,display:1,"dominant-baseline":1,"enable-background":1,fill:1,"fill-opacity":1,"fill-rule":1,filter:1,"flood-color":1,"flood-opacity":1,font:1,"font-family":1,"font-size":2,"font-size-adjust":1,"font-stretch":1,"font-style":1,"font-variant":1,"font-weight":1,"glyph-orientation-horizontal":1,"glyph-orientation-vertical":1,"image-rendering":1,kerning:1,"letter-spacing":1,"lighting-color":1,marker:1,"marker-end":1,"marker-mid":1,"marker-start":1,mask:1,opacity:1,overflow:1,"pointer-events":1,"shape-rendering":1,"stop-color":1,"stop-opacity":1,stroke:1,"stroke-dasharray":1,"stroke-dashoffset":1,"stroke-linecap":1,"stroke-linejoin":1,"stroke-miterlimit":1,"stroke-opacity":1,"stroke-width":2,"text-anchor":1,"text-decoration":1,"text-rendering":1,"unicode-bidi":1,visibility:1,"word-spacing":1,"writing-mode":1};function Et(e,t,n){var i=t.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase(),r=Ct[i];r?(2===r&&"number"==typeof n&&(n=String(n)+"px"),e.style[i]=n):e.setAttributeNS(null,t,n)}function Mt(e,t,n){if("string"==typeof t){if(void 0===n)return function(e,t){return Ct[t]?e.style[t]:e.getAttributeNS(null,t)}(e,t);Et(e,t,n)}else!function(e,t){var n,i,r=Object.keys(t);for(n=0;i=r[n];n++)Et(e,i,t[i])}(e,t);return e}const At=Object.prototype.toString;function Tt(e){return new Rt(e)}function Rt(e){if(!e||!e.nodeType)throw new Error("A DOM element reference is required");this.el=e,this.list=e.classList}Rt.prototype.add=function(e){return this.list.add(e),this},Rt.prototype.remove=function(e){return"[object RegExp]"==At.call(e)?this.removeMatching(e):(this.list.remove(e),this)},Rt.prototype.removeMatching=function(e){const t=this.array();for(let n=0;n"+e+"",t=!0);var n=function(e){var t;return(t=new DOMParser).async=!1,t.parseFromString(e,"text/xml")}(e);if(!t)return n;for(var i=document.createDocumentFragment(),r=n.firstChild;r.firstChild;)i.appendChild(r.firstChild);return i}function Nt(e,t){var n;return"<"===(e=e.trim()).charAt(0)?(n=qt(e).firstChild,n=document.importNode(n,!0)):n=document.createElementNS(Dt,e),t&&Mt(n,t),n}var Bt=null;function Pt(){return null===Bt&&(Bt=Nt("svg")),Bt}function Lt(e,t){var n,i,r=Object.keys(t);for(n=0;i=r[n];n++)e[i]=t[i];return e}var It=/([&<>]{1})/g,Ft=/([&<>\n\r"]{1})/g,jt={"&":"&","<":"<",">":">",'"':"'"};function Vt(e,t){return e.replace(t,function(e,t){return jt[t]||t})}function $t(e,t){var n,i,r,o,s;switch(e.nodeType){case 3:t.push(Vt(e.textContent,It));break;case 1:if(t.push("<",e.tagName),e.hasAttributes())for(n=0,i=(r=e.attributes).length;n"),n=0,i=(s=e.childNodes).length;n")}else t.push("/>");break;case 8:t.push("\x3c!--",Vt(e.nodeValue,It),"--\x3e");break;case 4:t.push("");break;default:throw new Error("unable to handle node "+e.nodeType)}return t}function Wt(e,t){return function(e){for(var t=e.firstChild,n=[];t;)$t(t,n),t=t.nextSibling;return n.join("")}(e)}function zt(e){var t=e.parentNode;return t&&t.removeChild(e),e}function Ht(e,t){return t instanceof SVGMatrix?e.createSVGTransformFromMatrix(t):t}function Ut(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(Ht(e,i))}(n,t)),n.consolidate()}function Gt(e){return e.flat().join(",").replace(/,?([A-Za-z]),?/g,"$1")}function Kt(e){return["L",e.x,e.y]}function Xt(e,t,n){return["C",e.x,e.y,t.x,t.y,n.x,n.y]}function Jt(e,t){const n=e.length,i=[(r=e[0],["M",r.x,r.y])];var r;for(let r=1;rr||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 nn(e){return!(!e||!e.isFrame)}function rn(e,t){_t.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})}kt(rn,_t),rn.prototype.canRender=function(){return!0},rn.prototype.drawShape=function(e,t,n){var i=Nt("rect");return Mt(i,{x:0,y:0,width:t.width||0,height:t.height||0}),nn(t)?Mt(i,k({},this.FRAME_STYLE,n||{})):Mt(i,k({},this.SHAPE_STYLE,n||{})),St(e,i),i},rn.prototype.drawConnection=function(e,t,n){var i=Zt(t.waypoints,k({},this.CONNECTION_STYLE,n||{}));return St(e,i),i},rn.prototype.getShapePath=function(e){var t=e.x,n=e.y,i=e.width;return Gt([["M",t,n],["l",i,0],["l",0,e.height],["l",-i,0],["z"]])},rn.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 Gt(r)},rn.$inject=["eventBus","styles"];var on={__init__:["defaultRenderer"],defaultRenderer:["type",rn],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 k(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 k(t,e[n]||{})},{});return n?k(i,n):i},this.computeStyle=function(e,n,i){return o(n)||(i=n,n=[]),t.style(n||[],k({},i,e||{}))}}]};function sn(e){return{top:e.y,right:e.x+(e.width||0),bottom:e.y+(e.height||0),left:e.x}}function an(e,t){return Math.round(e*t)/t}function ln(e){return a(e)?e+"px":e}function cn(e,t,n){const i=Nt("g");Tt(i).add(t);const r=void 0!==n?n:e.childNodes.length-1;return e.insertBefore(i,e.childNodes[r]||null),i}const hn={shape:["x","y","width","height"],connection:["waypoints"]};function un(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 pn(e,t){const n="matrix("+t.a+","+t.b+","+t.c+","+t.d+","+t.e+","+t.f+")";e.setAttribute("transform",n)}un.$inject=["config.canvas","eventBus","graphicsFactory","elementRegistry"],un.prototype._init=function(e){const t=this._eventBus,n=this._container=function(e){const t=(e=k({},{width:"100%",height:"100%"},e)).container||document.body,n=document.createElement("div");return n.setAttribute("class","djs-container djs-parent"),ze(n,{position:"relative",overflow:"hidden",width:ln(e.width),height:ln(e.height)}),t.appendChild(n),n}(e),i=this._svg=Nt("svg");Mt(i,{width:"100%",height:"100%"}),He(i,"tabindex",0),e.autoFocus&&t.on("element.hover",()=>{this.restoreFocus()}),t.on("element.mousedown",500,e=>{this.focus()}),i.addEventListener("focusin",()=>{this._setFocused(!0)}),i.addEventListener("focusout",()=>{this._setFocused(!1)}),St(n,i);const r=this._viewport=cn(i,"viewport");e.deferUpdate&&(this._viewboxChanged=b(x(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)},un.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},un.prototype._setFocused=function(e){e!=this._focused&&(this._focused=e,this._eventBus.fire("canvas.focus.changed",{focused:e}))},un.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},un.prototype.focus=function(){this._svg.focus({preventScroll:!0}),this._setFocused(!0)},un.prototype.restoreFocus=function(){document.activeElement===document.body&&this.focus()},un.prototype.isFocused=function(){return this._focused},un.prototype.getDefaultLayer=function(){return this.getLayer("base",0)},un.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},un.prototype._getChildIndex=function(e){return f(this._layers,function(t,n){return n.visible&&e>=n.index&&t++,t},0)},un.prototype._createLayer=function(e,t){void 0===t&&(t=1);const n=this._getChildIndex(t);return{group:cn(this._viewport,"layer-"+e,n),index:t,visible:!0}},un.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},un.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?(zt(n),t.visible=!1,n):n},un.prototype._removeLayer=function(e){const t=this._layers[e];t&&(delete this._layers[e],zt(t.group))},un.prototype.getActiveLayer=function(){const e=this._findPlaneForRoot(this.getRootElement());return e?e.layer:null},un.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},un.prototype.getRootElements=function(){return this._planes.map(function(e){return e.rootElement})},un.prototype._findPlaneForRoot=function(e){return u(this._planes,function(t){return t.rootElement===e})},un.prototype.getContainer=function(){return this._container},un.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),Tt(i).add(t)):(e.markers.delete(t),Tt(i).remove(t)))}),this._eventBus.fire("element.marker.update",{element:e,gfx:i.gfx,marker:t,add:!!n}))},un.prototype.addMarker=function(e,t){this._updateMarker(e,t,!0)},un.prototype.removeMarker=function(e,t){this._updateMarker(e,t,!1)},un.prototype.hasMarker=function(e,t){return e.id||(e=this._elementRegistry.get(e)),!!e.markers&&e.markers.has(t)},un.prototype.toggleMarker=function(e,t){this.hasMarker(e,t)?this.removeMarker(e,t):this.addMarker(e,t)},un.prototype.getRootElement=function(){const e=this._rootElement;return e||this._planes.length?e:this.setRootElement(this.addRootElement(null))},un.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},un.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},un.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},un.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)},un.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})},un.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})},un.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=hn[e],i=g(n,function(e){return void 0!==t[e]});if(!i)throw new Error("must supply { "+n.join(", ")+" } with "+e)},un.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},un.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},un.prototype.addShape=function(e,t,n){return this._addElement("shape",e,t,n)},un.prototype.addConnection=function(e,t,n){return this._addElement("connection",e,t,n)},un.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},un.prototype.removeShape=function(e){return this._removeElement(e,"shape")},un.prototype.removeConnection=function(e){return this._removeElement(e,"connection")},un.prototype.getGraphics=function(e,t){return this._elementRegistry.getGraphics(e,t)},un.prototype._changeViewbox=function(e){this._eventBus.fire("canvas.viewbox.changing"),e.apply(this),this._cachedViewbox=null,this._viewboxChanged()},un.prototype._viewboxChanged=function(){this._eventBus.fire("canvas.viewbox.changed",{viewbox:this.viewbox()})},un.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);Ut(t,i)}),e):(o=this._rootElement?this.getActiveLayer():null,i=o&&o.getBBox()||{},s=Ut(t),r=s?s.matrix:function(e,t,n,i,r,o){var s=Pt().createSVGMatrix();switch(arguments.length){case 0:return s;case 1:return Lt(s,e);case 6:return Lt(s,{a:e,b:t,c:n,d:i,e:r,f:o})}}(),a=an(r.a,1e3),l=an(-r.e||0,1e3),c=an(-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})},un.prototype.scroll=function(e){const t=this._viewport;let n=t.getCTM();return e&&this._changeViewbox(function(){e=k({dx:0,dy:0},e||{}),n=this._svg.createSVGMatrix().translate(e.dx,e.dy).multiply(n),pn(t,n)}),{x:n.e,y:n.f}},un.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=tn(e),o=sn(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=sn(s);if(r.width=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},un.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=k(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),pn(this._viewport,h),h},un.prototype.getSize=function(){return{width:this._container.clientWidth,height:this._container.clientHeight}},un.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}},un.prototype.resized=function(){delete this._cachedViewbox,this._eventBus.fire("canvas.resized")};var dn="data-element-id";function fn(e){this._elements={},this._eventBus=e}function gn(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 mn(e,t){if(!(this instanceof mn))return new mn(e,t);e.inverse=t,t.inverse=e,this.props={},this.props[e.name]=e,this.props[t.name]=t}fn.$inject=["eventBus"],fn.prototype.add=function(e,t,n){var i=e.id;this._validateId(i),Mt(t,dn,i),n&&Mt(n,dn,i),this._elements[i]={element:e,gfx:t,secondaryGfx:n}},fn.prototype.remove=function(e){var t=this._elements,n=e.id||e,i=n&&t[n];i&&(Mt(i.gfx,dn,""),i.secondaryGfx&&Mt(i.secondaryGfx,dn,""),delete t[n])},fn.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)},fn.prototype.updateGraphics=function(e,t,n){var i=e.id||e,r=this._elements[i];return n?r.secondaryGfx=t:r.gfx=t,t&&Mt(t,dn,i),t},fn.prototype.get=function(e){var t;t="string"==typeof e?e:e&&Mt(e,dn);var n=this._elements[t];return n&&n.element},fn.prototype.filter=function(e){var t=[];return this.forEach(function(n,i){e(n,i)&&t.push(n)}),t},fn.prototype.find=function(e){for(var t=this._elements,n=Object.keys(t),i=0;i in ref");t=this.props[t]}t.collection?gn(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)},mn.prototype.ensureRefsCollection=function(e,t){var n=e[t.name];return function(e){return!0===e.__refs_collection}(n)||gn(this,t,e),n},mn.prototype.ensureBound=function(e,t){(function(e,t){return Object.prototype.hasOwnProperty.call(e,t.name||t)})(e,t)||this.bind(e,t)},mn.prototype.unset=function(e,t,n){e&&(this.ensureBound(e,t),t.collection?this.ensureRefsCollection(e,t).remove(n):e[t.name]=void 0)},mn.prototype.set=function(e,t,n){e&&(this.ensureBound(e,t),t.collection?this.ensureRefsCollection(e,t).add(n):e[t.name]=n)};var yn=new mn({name:"children",enumerable:!0,collection:!0},{name:"parent"}),vn=new mn({name:"labels",enumerable:!0,collection:!0},{name:"labelTarget"}),wn=new mn({name:"attachers",collection:!0},{name:"host"}),bn=new mn({name:"outgoing",collection:!0},{name:"source"}),xn=new mn({name:"incoming",collection:!0},{name:"target"});function kn(){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)}}),yn.bind(this,"parent"),vn.bind(this,"labels"),bn.bind(this,"outgoing"),xn.bind(this,"incoming")}function _n(){kn.call(this),yn.bind(this,"children"),wn.bind(this,"host"),wn.bind(this,"attachers")}function Sn(){kn.call(this),yn.bind(this,"children")}function Cn(){_n.call(this),vn.bind(this,"labelTarget")}function En(){kn.call(this),bn.bind(this,"source"),xn.bind(this,"target")}kt(_n,kn),kt(Sn,_n),kt(Cn,_n),kt(En,kn);var Mn={connection:En,shape:_n,label:Cn,root:Sn};function An(){this._uid=12}function Tn(e,t,n){var i=Pt().createSVGTransform();i.setTranslate(t,n),Ut(e,i)}function Rn(e,t){this._eventBus=e,this._elementRegistry=t}function Dn(e,t,n){var i=n||t.firstChild;e!==i&&t.insertBefore(e,i)}An.prototype.createRoot=function(e){return this.create("root",e)},An.prototype.createLabel=function(e){return this.create("label",e)},An.prototype.createShape=function(e){return this.create("shape",e)},An.prototype.createConnection=function(e){return this.create("connection",e)},An.prototype.create=function(e,t){return(t=k({},t||{})).id||(t.id=e+"_"+this._uid++),function(e,t){var n=Mn[e];if(!n)throw new Error("unknown type: <"+e+">");return k(new n,t)}(e,t)},Rn.$inject=["eventBus","elementRegistry"],Rn.prototype._getChildrenContainer=function(e){var t,n=this._elementRegistry.getGraphics(e);return e.parent?(t=function(e){return e.parentNode.childNodes[1]}(n),t||(Tt(t=Nt("g")).add("djs-children"),St(n.parentNode,t))):t=n,t},Rn.prototype._clear=function(e){var t=function(e){return e.childNodes[0]}(e);return Xe(t),t},Rn.prototype._createContainer=function(e,t,n,i){var r=Nt("g");Tt(r).add("djs-group"),void 0!==n?Dn(r,t,t.childNodes[n]):St(t,r);var o=Nt("g");Tt(o).add("djs-element"),Tt(o).add("djs-"+e),i&&Tt(o).add("djs-frame"),St(r,o);var s=Nt("g");return Tt(s).add("djs-visual"),St(o,s),o},Rn.prototype.create=function(e,t,n){var i=this._getChildrenContainer(t.parent);return this._createContainer(e,i,n,nn(t))},Rn.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){Dn(i.getGraphics(e).parentNode,r)})}})},Rn.prototype.drawShape=function(e,t,n={}){return this._eventBus.fire("render.shape",{gfx:e,element:t,attrs:n})},Rn.prototype.getShapePath=function(e){return this._eventBus.fire("render.getShapePath",e)},Rn.prototype.drawConnection=function(e,t,n={}){return this._eventBus.fire("render.connection",{gfx:e,element:t,attrs:n})},Rn.prototype.getConnectionPath=function(e){return this._eventBus.fire("render.getConnectionPath",e)},Rn.prototype.update=function(e,t,n){if(t.parent){var i=this._clear(n);if("shape"===e)this.drawShape(i,t),Tn(n,t.x,t.y);else{if("connection"!==e)throw new Error("unknown type: "+e);this.drawConnection(i,t)}t.hidden?Mt(n,"display","none"):Mt(n,"display","block")}},Rn.prototype.remove=function(e){zt(this._elementRegistry.getGraphics(e).parentNode)};var On={__depends__:[on],__init__:["canvas"],canvas:["type",un],elementRegistry:["type",fn],elementFactory:["type",An],eventBus:["type",C],graphicsFactory:["type",Rn]};function qn(e){return function(e){var t=new bt(e);return t.init(),t}([{config:["value",e=e||{}]},On].concat(e.modules||[]))}function Nn(e,t){this._injector=t||qn(e),this.get("eventBus").fire("diagram.init")}function Bn(e,t){var n=Pn(e);return n&&"function"==typeof n.$instanceOf&&n.$instanceOf(t)}function Pn(e){return e&&e.businessObject||e}function Ln(e){var t=Pn(e);if(Bn(t,"dmn:Decision"))return t.get("decisionLogic");if(Bn(t,"dmn:BusinessKnowledgeModel")){var n=t.get("encapsulatedLogic");return n&&n.get("body")}}Nn.prototype.get=function(e,t){return this._injector.get(e,t)},Nn.prototype.invoke=function(e,t,n){return this._injector.invoke(e,t,n)},Nn.prototype.destroy=function(){this.get("eventBus").fire("diagram.destroy")},Nn.prototype.clear=function(){this.get("eventBus").fire("diagram.clear")};var In=new mn({name:"dmnElementRef",enumerable:!0},{name:"di",configurable:!0});function Fn(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}):(In.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){Bn(e,"dmn:Association")?function(e){o(function(){i(e)})}(e):i(e)})}(t.get("artifact")),d(n,function(e){e()})}}}var jn="$NO_OP",Vn=!("undefined"==typeof window||!window.document),$n=Array.isArray;function Wn(e){var t=typeof e;return"string"===t||"number"===t}function zn(e){return Jn(e)||Xn(e)}function Hn(e){return Xn(e)||!1===e||function(e){return!0===e}(e)||Jn(e)}function Un(e){return"function"==typeof e}function Gn(e){return"string"==typeof e}function Kn(e){return"number"==typeof e}function Xn(e){return null===e}function Jn(e){return void 0===e}function Yn(e){throw e||(e="a runtime error occured! Use Inferno in development environment to find the error."),new Error("Inferno Error: "+e)}function Qn(e){console.error(e)}function Zn(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 ei(e){var t;if($n(e))t="Array("+(e.length>3?e.slice(0,3).toString()+",...":e.toString())+")";else if(Wn(e))t="Text("+e+")";else if(Hn(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 ti(e,t){for(var n={},i=0,r=e.length;i0);t&&Yn(t+ei(e))}e.isValidated=!0}var ri="$";function oi(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 si(e,t,n,i,r,o,s,a){14&e&&Yn("Creating Component vNodes using createVNode is not allowed. Use Inferno.createComponentVNode method.");var l=void 0===r?1:r,c=oi(l,i,n,e,s,o,a,t);return 0===l&&di(c,c.children),ni(c),c}function ai(e,t,n,i,r){1&e&&Yn("Creating element vNodes using createComponentVNode is not allowed. Use Inferno.createVNode method."),(2&e)>0&&(e=t.prototype&&Un(t.prototype.render)?4:8);var o=t.defaultProps;if(!zn(o))for(var s in n||(n={}),o)Jn(n[s])&&(n[s]=o[s]);if((8&e)>0){var a=t.defaultHooks;if(!zn(a))if(r)for(var l in a)Jn(r[l])&&(r[l]=a[l]);else r=a}var c=oi(1,null,null,e,i,n,r,t),h=fi.createVNode;return Un(h)&&h(c),c}function li(e,t){return oi(1,zn(e)?"":e,null,16,t,null,null,null)}function ci(e){var t=e.props;if(t){var n=e.flags;481&n&&(void 0!==t.children&&zn(e.children)&&di(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?Zn(e.ref,t.ref):t.ref,t.ref=void 0)}return e}function hi(e){var t,n=e.flags;if(14&n){var i,r=e.props;if(!Xn(r))for(var o in i={},r)i[o]=r[o];t=ai(n,e.type,i,e.key,e.ref)}else 481&n?t=si(n,e.type,e.className,e.children,e.childFlags,e.props,e.key,e.ref):16&n?t=li(e.children,e.key):1024&n&&(t=e);return t}function ui(){return li("",null)}function pi(e,t,n,i){for(var r=e.length;n0;for(var a in s&&(o=Ui(n))&&Hi(t,i,n),n)Qi(a,null,n[a],i,r,o,null);s&&zi(t,e,i,n,!0,o)}function er(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===vi&&(r.props=n),r.$UN=!1,Un(r.componentWillMount)){if(r.$BR=!0,r.componentWillMount(),r.$PSS){var o=r.state,s=r.$PS;if(Xn(o))r.state=s;else for(var a in s)o[a]=s[a];r.$PSS=!1,r.$PS=null}r.$BR=!1}Un(fi.beforeRender)&&fi.beforeRender(r);var l,c=tr(r.render(n,r.state,i),e);return Un(r.getChildContext)&&(l=r.getChildContext()),zn(l)?r.$CX=i:r.$CX=Zn(i,l),Un(fi.afterRender)&&fi.afterRender(r),r.$LI=c,r}function tr(e,t){return $n(e)&&Yn("a valid Inferno VNode (or null) must be returned from a component render. You may have returned an array or an invalid object."),Hn(e)?e=ui():Wn(e)?e=li(e,null):(e.dom&&(e=hi(e)),14&e.flags&&(e.parentVNode=t)),e}function nr(e,t,n,i){var r=e.flags;return 481&r?rr(e,t,n,i):14&r?function(e,t,n,i,r){var o,s=e.type,a=e.props||vi,l=e.ref;if(r){var c=er(e,s,a,n);e.dom=o=nr(c.$LI,null,c.$CX,i),sr(e,l,c),c.$UPD=!1}else{var h=tr(s(a,n),e);e.children=h,e.dom=o=nr(h,null,n,i),ar(a,l,o)}Xn(t)||bi(t,o);return o}(e,t,n,i,(4&r)>0):512&r||16&r?ir(e,t):1024&r?(nr(e.children,e.type,n,!1),e.dom=ir(ui(),t)):void Yn("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 ir(e,t){var n=e.dom=document.createTextNode(e.children);return Xn(t)||bi(t,n),n}function rr(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("http://www.w3.org/2000/svg",e):document.createElement(e)}(e.type,i);if(e.dom=h,zn(a)||""===a||(i?h.setAttribute("class",a):h.className=a),ii(e),Xn(t)||bi(t,h),!(1&c)){var u=!0===i&&"foreignObject"!==e.type;2===c?nr(o,h,n,u):12&c&&or(o,h,n,u)}return Xn(s)||Zi(e,r,s,h,i),Gn(l)&&Yn('string "refs" are not supported in Inferno 1.0. Use callback "refs" instead.'),Un(l)&&lr(h,l),h}function or(e,t,n,i){for(var r=0,o=e.length;r0,1!==t.nodeType||t.tagName.toLowerCase()!==e.type){Qn("Inferno hydration: Server-side markup doesn't match client-side markup or Initial render target is not empty");var c=rr(e,null,n,i);e.dom=c,ki(t.parentNode,c,t)}else{e.dom=t;var h=t.firstChild,u=e.childFlags;if(1&u)Xn(t.firstChild)||function(e,t){return Boolean(t&&t.dangerouslySetInnerHTML&&t.dangerouslySetInnerHTML.__html&&Ti(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)Xn(h)?nr(r,t,n,i):(p=h.nextSibling,hr(r,h,n,i),h=p);else if(12&u)for(var d=0,f=r.length;d0):481&r?cr(e,t,n,i):16&r?function(e,t){if(3!==t.nodeType){var n=ir(e,null);e.dom=n,ki(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:(Yn('hydrate() expects a valid VNode, instead it received an object with the type "'+typeof e+'".'),Yn())}function ur(e,t,n,i,r){Ki(e),ki(n,nr(t,null,i,r),e.dom)}function pr(e,t,n,i,r){var o=0|t.flags;e.flags!==o||2048&o?ur(e,t,n,i,r):481&o?function(e,t,n,i,r,o){var s=t.type;if(e.type!==s)ur(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||vi;if((a=h||vi)!==vi)for(var f in(u=(448&o)>0)&&(p=Ui(a)),a){var g=d[f],m=a[f];g!==m&&Qi(f,g,m,l,r,p,e)}if(d!==vi)for(var y in d)a.hasOwnProperty(y)||zn(d[y])||Qi(y,d[y],null,l,r,p,e)}var v=e.children,w=t.children,b=t.ref,x=e.className,k=t.className;ii(t),4096&o?function(e,t){e.textContent!==t.children&&(e.textContent=t.children)}(l,w):dr(e.childFlags,t.childFlags,v,w,l,i,r&&"foreignObject"!==s),u&&zi(o,t,l,a,!1,p),x!==k&&(zn(k)?l.removeAttribute("class"):r?l.setAttribute("class",k):l.className=k),Un(b)&&e.ref!==b?lr(l,b):Gn(b)&&Yn('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)ur(e,t,n,i,r);else{var c=t.props||vi;if(o){var h=e.children;h.$UPD=!0,h.$V=t,fr(h,h.state,t,c,n,i,r,!1,!1),h.$UPD=!1}else{var u=!0,p=e.props,d=t.ref,f=!zn(d),g=e.children;if(t.dom=e.dom,t.children=g,f&&Un(d.onComponentShouldUpdate)&&(u=d.onComponentShouldUpdate(p,c)),!1!==u){f&&Un(d.onComponentWillUpdate)&&d.onComponentWillUpdate(p,c);var m=s(c,i);m!==jn&&(pr(g,m=tr(m,t),n,i,r),t.children=m,t.dom=m.dom,f&&Un(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(dr(e.childFlags,t.childFlags,e.children,o,i,n,!1),t.dom=e.dom,i!==r&&!Hn(o)){var s=o.dom;i.removeChild(s),r.appendChild(s)}}(e,t,i)}function dr(e,t,n,i,r,o,s){switch(e){case 2:switch(t){case 2:pr(n,i,r,o,s);break;case 1:Gi(n,r);break;default:Gi(n,r),or(i,r,o,s)}break;case 1:switch(t){case 2:nr(i,r,o,s);break;case 1:break;default:or(i,r,o,s)}break;default:if(12&t){var a=n.length,l=i.length;0===a?l>0&&or(i,r,o,s):0===l?Ji(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=hi(d)),pr(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=hi(d)),pr(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)h)for(;u<=c;)Gi(e[u++],n);else{var g=u,m=u,y=c-u+1,v=h-u+1,w=[];for(a=0;ag;)Gi(e[g++],n);k>u?x=!0:k=u,d.dom&&(t[u]=d=hi(d)),pr(p,d,n,i,r),_++;break}!b&&u>h&&Gi(p,n)}else b||Gi(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],_g;)Gi(e[g++],n);d=t[u],w[u-m]=a+1,k>u?x=!0:k=u,d.dom&&(t[u]=d=hi(d)),pr(p,d,n,i,r),_++}else b||Gi(p,n);else b||Gi(p,n)}if(b)Ji(n,e),or(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;t0&&(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[k=a+m]).dom&&(t[k]=d=hi(d)),l=k+1,xi(n,nr(d,null,i,r),l=0;a--)0===w[a]&&((d=t[k=a+m]).dom&&(t[k]=d=hi(d)),l=k+1,xi(n,nr(d,null,i,r),ls?s:o,h=0;hs)for(h=c;h0&&_i(wi),t.$V=e,Un(n)&&n()}(e,t),i=e):zn(e)?(Gi(i,t),t.$V=null):(e.dom&&(e=hi(e)),pr(i,e,t,vi,!1),i=t.$V=e),wi.length>0&&_i(wi),Un(n)&&n(),Un(fi.renderComplete)&&fi.renderComplete(i),i&&14&i.flags?i.children:void 0}}var yr="undefined"==typeof Promise?null:Promise.resolve(),vr="undefined"==typeof requestAnimationFrame?setTimeout:requestAnimationFrame.bind(window);function wr(e,t,n,i){Un(t)&&(t=t(e.state,e.props,e.context));var r,o=e.$PS;if(zn(o))e.$PS=t;else for(var s in t)o[s]=t[s];if(e.$PSS||e.$BR)e.$PSS=!0,e.$BR&&Un(n)&&wi.push(n.bind(e));else if(e.$UPD){var a=e.$QU;Xn(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;n0,t,!0),e.$UN)return;if(!(1024&e.$LI.flags))for(var c=e.$LI.dom;!Xn(a=a.parentVNode);)(14&a.flags)>0&&(a.dom=c);wi.length>0&&_i(wi)}else e.state=e.$PS,e.$PS=null;Un(n)&&n.call(e)}}var xr=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||vi,this.context=t||vi}var t=e.prototype;return t.forceUpdate=function(e){this.$UN||wr(this,{},e,!0)},t.setState=function(e,t){this.$UN||(this.$BS?Yn("cannot update state via setState() in componentWillUpdate() or constructor."):wr(this,e,t,!1))},t.render=function(e,t,n){},e}();xr.defaultProps=void 0;var kr=function(){};console.info("Inferno is in development mode."),-1===(kr.name||kr.toString()).indexOf("testFn")&&Qn("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 _r=''; /** * Adds the project logo to the diagram container as * required by the bpmn.io license. * * @see http://bpmn.io/license * * @param {Element} container */function Sr(e){var t=$e(''+_r+"");e.appendChild(t),et.bind(t,"click",function(e){!function(){Mr||(Mr=$e(Ar),nt.bind(Mr,".backdrop","click",function(e){document.body.removeChild(Mr)}));document.body.appendChild(Mr)}(),e.preventDefault()})}class Cr extends xr{constructor(e,t){super(e,t),this.node=null}componentDidMount(){Sr(this.node)}render(){return si(1,"div",null,null,1,null,null,e=>this.node=e)}}function Er(e){return e.join(";")}var Mr,Ar='
'+_r+'Web-based tooling for BPMN, DMN and CMMN diagrams powered by bpmn.io.
';function Tr(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Rr,Dr={exports:{}};var Or=function(){if(Rr)return Dr.exports;Rr=1;var e=Dr.exports=function(t,n){if(n||(n=16),void 0===t&&(t=128),t<=0)return"0";for(var i=Math.log(Math.pow(2,t))/Math.log(n),r=2;i===1/0;r*=2)i=Math.log(Math.pow(2,t/r))/Math.log(n)*r;var o=i-Math.floor(i),s="";for(r=0;r=Math.pow(2,t)?e(t,n):s};return e.rack=function(t,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");t+=i}var a=e(t,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=t||128,r.base=n||16,r},Dr.exports}(),qr=Tr(Or);function Nr(e){if(!(this instanceof Nr))return new Nr(e);e=e||[128,36,1],this._seed=e.length?qr.rack(e[0],e[1],e[2]):e}Nr.prototype.next=function(e){return this._seed(e||!0)},Nr.prototype.nextPrefixed=function(e,t){var n;do{n=e+this.next(!0)}while(this.assigned(n));return this.claim(n,t),n},Nr.prototype.claim=function(e,t){this._seed.set(e,t||!0)},Nr.prototype.assigned=function(e){return this._seed.get(e)||!1},Nr.prototype.unclaim=function(e){delete this._seed.hats[e]},Nr.prototype.clear=function(){var e,t=this._seed.hats;for(e in t)this.unclaim(e)};var Br=new Nr,Pr="hsl(225, 10%, 15%)";function Lr(e,t,n,i,r,o){_t.call(this,t);var a=Br.next(),l=i.computeStyle,c={},h=e&&e.defaultFillColor||"white",u=e&&e.defaultStrokeColor||Pr,p=e&&e.defaultLabelColor;function d(e,t,n){var i=e+"-"+Fr(t)+"-"+Fr(n)+"-"+a;return c[i]||function(e,t,n,i){if("association-start"===t){var r=Nt("path");Mt(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=Nt("path");Mt(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=Nt("path");Mt(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=Nt("path");Mt(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=Nt("circle");Mt(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=k({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=Nt("marker");Mt(t.element,n),St(s,t.element),Mt(s,{id:e,viewBox:"0 0 20 20",refX:i.x,refY:i.y,markerWidth:20*r,markerHeight:20*r,orient:"auto"});var a=it("defs",o._svg);a||(a=Nt("defs"),St(o._svg,a)),St(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:Pr,strokeWidth:2,fill:"white"});var a=Nt("rect");return Mt(a,{x:r,y:r,width:t-2*r,height:n-2*r,rx:i,ry:i}),Mt(a,o),St(e,a),a}function m(e,t,n){var i=r.createText(t||"",n);return He(i,"class","djs-label"),St(e,i),i}function y(e,t,n,i){var r=function(e){return Pn(e).name}(t);return m(e,r,i=k({box:t,align:n,padding:5,style:{fill:$r(t,p,u)}},i))}function v(e,t,n){n=l(n,["no-fill"],{strokeWidth:2,stroke:Pr});var i=Nt("path");return Mt(i,{d:t}),Mt(i,n),St(e,i),i}var w={"dmn:Decision":function(e,t){var n=g(e,t.width,t.height,0,{stroke:jr(t,u),fill:Vr(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:Vr(t,h),stroke:jr(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:Vr(t,h),stroke:jr(t,u)});return y(e,t,"center-middle"),i},"dmn:InputData":function(e,t){var n=g(e,t.width,t.height,22,{stroke:jr(t,u),fill:Vr(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:jr(t,u)}),m(e,Ir(t).text||"",{style:{fill:$r(t,p,u)},box:t,align:"left-top",padding:5}),i},"dmn:Association":function(e,t){var n=Ir(t),i=Vr(t,h),r=jr(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=Vr(t,h),i=jr(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=Vr(t,h),i=jr(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=Vr(t,h),i=jr(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=Zt(t,n=l(n,["no-fill"],{stroke:Pr,strokeWidth:2,fill:"none"}));return St(e,i),i}this.canRender=function(e){return Bn(e,"dmn:DMNElement")||Bn(e,"dmn:InformationRequirement")||Bn(e,"dmn:KnowledgeRequirement")||Bn(e,"dmn:AuthorityRequirement")},this.drawShape=function(e,t){var n=w[t.type];return n?n(e,t):_t.prototype.drawShape.apply(this,[e,t])},this.drawConnection=function(e,t){var n=t.type,i=w[n];return i?i(e,t):_t.prototype.drawConnection.apply(this,[e,t])}}function Ir(e){return e.businessObject}function Fr(e){return e.replace(/[^0-9a-zA-z]+/g,"_")}function jr(e,t){return t}function Vr(e,t){return t}function $r(e,t,n){return t||jr(0,n)}kt(Lr,_t),Lr.$inject=["config.drdRenderer","eventBus","pathMap","styles","textRenderer","canvas"];var Wr={width:150,height:50};function zr(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 Hr(e,t,n){for(var i,r=e.shift(),o=r;;){if((i=zr(o,n)).width=o?i.width:0," "===o||""===o||i.width1)for(;n=i.shift();){if(!(n.length+oe?t.width:e},0),y=o.top;"middle"===r.vertical&&(y+=(n.height-g)/2),y-=(l||h[0].height)/4;var v=Nt("text");return Mt(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=Nt("tspan");Mt(n,{x:t,y:y}),n.textContent=e.text,St(v,n)}),zt(p),{dimensions:{width:m,height:g},element:v}};function Jr(e){var t=k({fontFamily:"Arial, sans-serif",fontSize:12,fontWeight:"normal",lineHeight:1.2},e&&e.defaultStyle||{}),n=parseInt(t.fontSize,10)-1,i=k({},t,{fontSize:n},e&&e.externalStyle||{}),r=new Xr({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}}Jr.$inject=["config.textRenderer"];var Yr=/\{([^{}]+)\}/g,Qr=/(?:(?:^|\.)(.+?)(?=\[|\.|$|\()|\[('|")(.+?)\2\])(\(\))?/g;var Zr={__init__:["drdRenderer"],drdRenderer:["type",Lr],textRenderer:["type",Jr],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");return Mt(e,n),e}function y(e,t){St(e,t)}this.removeHits=function(e){var t;d((t=".djs-hit",(e||document).querySelectorAll(t)),zt)},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=Zt(t);return m(n,"stroke"),y(e,n),n},this.createBoxHit=function(e,t,n){n=k({x:0,y:0},n);var i=Nt("rect");return m(i,t),Mt(i,n),y(e,i),i},this.updateDefaultHit=function(e,t){var n=it(".djs-hit",t);if(n)return e.waypoints?en(n,e.waypoints):Mt(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=c,this.unregisterEvent=h}ho.$inject=["eventBus","elementRegistry","styles"];var uo={__init__:["interactionEvents"],interactionEvents:["type",ho]};function po(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)})}po.$inject=["eventBus","canvas"],po.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})}},po.prototype.get=function(){return this._selectedElements},po.prototype.isSelected=function(e){return-1!==this._selectedElements.indexOf(e)},po.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 fo="hover",go="selected";function mo(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,fo)}),t.on("element.out",function(e){i(e.element,fo)}),t.on("selection.changed",function(e){var t=e.oldSelection,r=e.newSelection;d(t,function(e){-1===r.indexOf(e)&&i(e,go)}),d(r,function(e){-1===t.indexOf(e)&&n(e,go)})})}function yo(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(vo))}}),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(ao(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=oo(e)||e;return ao(e)&&t.shiftKey}(e);if(r&&o)return s?t.deselect(i):t.select(i);r?t.deselect(i):t.select(i,s)}})}function vo(e){return!e.hidden}mo.$inject=["canvas","eventBus"],yo.$inject=["eventBus","selection","canvas","elementRegistry"];var wo={__init__:["selectionVisuals","selectionBehavior"],__depends__:[uo],selection:["type",po],selectionVisuals:["type",mo],selectionBehavior:["type",yo]};function bo(e){this._counter=0,this._prefix=(e?e+"-":"")+Math.floor(1e9*Math.random())+"-"}bo.prototype.next=function(){return this._prefix+ ++this._counter};var xo=new bo("ov");function ko(e,t,n,i){var r,o;this._eventBus=t,this._canvas=n,this._elementRegistry=i,this._ids=xo,this._overlayDefaults=k({show:null,scale:!0},e&&e.defaults),this._overlays={},this._overlayContainers=[],this._overlayRoot=(r=n.getContainer(),ze(o=$e('
'),{position:"absolute",width:0,height:0}),r.insertBefore(o,r.firstChild),o),this._init()}function _o(e,t,n){ze(e,{left:t+"px",top:n+"px"})}function So(e,t){e.style.display=!1===t?"none":""}function Co(e,t){e.style["transform-origin"]="top left",["","-ms-","-webkit-"].forEach(function(n){e.style[n+"transform"]=t})}ko.$inject=["config.overlays","eventBus","canvas","elementRegistry"],ko.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,m({type:e.type})):t.overlays.slice():[]}return e.type?p(this._overlays,m({type:e.type})):e.id?this._overlays[e.id]:null},ko.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=k({},this._overlayDefaults,n,{id:i,type:t,element:e,html:n.html}),this._addOverlay(n),i},ko.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&&(rt(e.html),rt(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)}})},ko.prototype.isShown=function(){return"none"!==this._overlayRoot.style.display},ko.prototype.show=function(){So(this._overlayRoot)},ko.prototype.hide=function(){So(this._overlayRoot,!1)},ko.prototype.clear=function(){this._overlays={},this._overlayContainers=[],Xe(this._overlayRoot)},ko.prototype._updateOverlayContainer=function(e){var t=e.element,n=e.html,i=t.x,r=t.y;if(t.waypoints){var o=tn(t);i=o.x,r=o.y}_o(n,i,r),He(e.html,"data-container-id",t.id)},ko.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?tn(o).width:o.width,s=-1*i.right+t);void 0!==i.bottom&&(n=o.waypoints?tn(o).height:o.height,a=-1*i.bottom+n);_o(r,s||0,a||0),this._updateOverlayVisibilty(e,this._canvas.viewbox())},ko.prototype._createOverlayContainer=function(e){var t=$e('
');ze(t,{position:"absolute"}),this._overlayRoot.appendChild(t);var n={html:t,element:e,overlays:[]};return this._updateOverlayContainer(n),this._overlayContainers.push(n),n},ko.prototype._updateRoot=function(e){var t=e.scale||1,n="matrix("+[t,0,0,t,-1*e.x*t,-1*e.y*t].join(",")+")";Co(this._overlayRoot,n)},ko.prototype._getOverlayContainer=function(e,t){var n=u(this._overlayContainers,function(t){return t.element===e});return n||t?n:this._createOverlayContainer(e)},ko.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=$e(o)),n=this._getOverlayContainer(r),ze(t=$e('
'),{position:"absolute"}),t.appendChild(o),e.type&&Ge(t).add("djs-overlay-"+e.type),So(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())},ko.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)&&sr&&(o=(1/t.scale||1)*r)),i(o)&&(l="scale("+o+","+o+")"),Co(a,l)},ko.prototype._updateOverlaysVisibilty=function(e){var t=this;d(this._overlays,function(n){t._updateOverlayVisibilty(n,e)})},ko.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){rt(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&&Ge(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 Eo={__init__:["overlays"],overlays:["type",ko]};function Mo(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='
'}function Ao(e,t){function n(e,n){Ge(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)})}Mo.$inject=["eventBus","canvas","translate"],Mo.prototype._init=function(){var e=this._canvas,t=this._eventBus,n=e.getContainer(),i=this._container=$e(this.HTML_MARKUP);n.appendChild(i),this.nameElement=it(".dmn-definitions-name",this._container),this.idElement=it(".dmn-definitions-id",this._container),nt.bind(i,".dmn-definitions-name, .dmn-definitions-id","mousedown",function(e){e.stopPropagation()}),t.fire("definitionIdView.create",{html:i})},Mo.prototype.update=function(){var e=this._canvas.getRootElement().businessObject;this.nameElement.textContent=e.name,this.idElement.textContent=e.id},Ao.$inject=["eventBus","canvas"];var To={__depends__:[ro],__init__:["definitionPropertiesView","definitionPropertiesPaletteAdapter"],definitionPropertiesView:["type",Mo],definitionPropertiesPaletteAdapter:["type",Ao]},Ro=[{className:"dmn-icon-decision-table",matches:function(e){var t=Pn(e);return Bn(t,"dmn:Decision")&&Bn(t.decisionLogic,"dmn:DecisionTable")},title:"Open decision table"},{className:"dmn-icon-literal-expression",matches:function(e){return Bn(Ln(e),"dmn:LiteralExpression")},title:"Open literal expression"}];class Do{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{!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)}}Do.$inject=["injector","eventBus","overlays","config.drillDown","translate"];var Oo={__depends__:[Eo,ro],__init__:["drillDown"],drillDown:["type",Do]}; /** * The code in the area * must not be changed. * * @see http://bpmn.io/license for more information. */function qo(e){this._container=this._createContainer(),Sr(this._container),this._init(this._container,e)}kt(qo,Nn),qo.prototype.saveSVG=ot(function(e){var t=this;return new Promise(function(e){var n=t.get("canvas"),i=n.getActiveLayer(),r=it("defs",n._svg),o=Wt(i),s=r&&r.outerHTML||"",a=i.getBBox();e({svg:'\n\x3c!-- created with dmn-js / http://bpmn.io --\x3e\n\n'+s+o+""})})}),qo.prototype.getModules=function(){return this._modules},qo.prototype.destroy=function(){Nn.prototype.destroy.call(this),rt(this._container)},qo.prototype.on=function(e,t,n,i){return this.get("eventBus").on(e,t,n,i)},qo.prototype.off=function(e,t){this.get("eventBus").off(e,t)},qo.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||[]]};Nn.call(this,o),t&&t.container&&this.attachTo(t.container)},qo.prototype._emit=function(e,t){return this.get("eventBus").fire(e,t)},qo.prototype._createContainer=function(){return $e('
')},qo.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 Fn({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:[]})})},qo.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()},qo.prototype.detach=function(){var e=this._container,t=e.parentNode;t&&(this._emit("detach",{}),t.removeChild(e))},qo.prototype._modules=[io,ro,wo,Eo,To,Oo];class No{constructor(e){k(this,e),Po(this,"businessObject",{writable:!0})}}const Bo={root:class extends No{constructor(e){super(e),Po(this,"rows",{enumerable:!0,value:this.rows||[]}),Po(this,"cols",{enumerable:!0,value:this.cols||[]})}},row:class extends No{constructor(e){super(e),Po(this,"root",{writable:!0}),Po(this,"cells",{enumerable:!0,value:this.cells||[]})}},col:class extends No{constructor(e){super(e),Po(this,"root",{writable:!0}),Po(this,"cells",{enumerable:!0,value:this.cells||[]})}},cell:class extends No{constructor(e){super(e),Po(this,"row",{writable:!0}),Po(this,"col",{writable:!0})}}};function Po(e,t,n){Object.defineProperty(e,t,n)}let Lo=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 Io(this._elements)}forEach(e){Io(this._elements).forEach(t=>e(t))}filter(e){return Io(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 Io(e){return Object.keys(e).map(function(t){return e[t]})}Lo.$inject=["eventBus"];let Fo=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;iai(2,e,null,t)),si(1,"div","tjs-table-container",si(1,"table","tjs-table",[r&&ai(2,r,{rows:e,cols:t}),o&&ai(2,o,{rows:e,cols:t}),s&&ai(2,s,{rows:e,cols:t})],0),2,{onScroll:this.onScroll}),i&&i.map((e,t)=>ai(2,e,null,t))],0)}}let Vo=class{constructor(e,t,n,i,r){const{container:o}=n;this._container=o,i.on("root.added",()=>{mr(ai(2,jo,{injector:r}),o)}),i.on("root.remove",()=>{mr(null,o)})}getContainer(){return this._container}};Vo.$inject=["changeSupport","components","config.renderer","eventBus","injector"];var $o={__init__:["changeSupport","components","renderer"],changeSupport:["type",Fo],components:["type",class{constructor(){this._listeners={}}getComponent(e,t){const n=this._listeners[e];if(!n)return;let i;for(let e=0;e{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),zo(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],zo(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&&(Ho(n,t.rows),e.root=void 0,this._elementRegistry.remove(e),e.cells.forEach((e,i)=>{this._elementRegistry.remove(e),e.col=void 0,Ho(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),zo(t,n.cols,e),e.root=n,e.cells.forEach((i,r)=>{this._elementRegistry.add(i),i.col=e,i.row=n.rows[r],zo(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&&(Ho(n,t.cols),e.root=void 0,this._elementRegistry.remove(e),e.cells.forEach((e,i)=>{this._elementRegistry.remove(e),e.row=void 0,Ho(n,t.rows[i].cells)}),this._eventBus.fire("col.remove",{col:e}))}resized(){this._eventBus.fire("sheet.resized")}}function zo(e,t,n){return t.splice(e,0,n)}function Ho(e,t){return t.splice(e,1)}function Uo(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}Wo.$inject=["elementRegistry","eventBus"],Uo.$inject=["config.throttle"];var Go={__depends__:[$o],__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=Bo[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",Lo],eventBus:["type",C],sheet:["type",Wo],throttle:["factory",Uo]};class Ko{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]},Go].concat(t||[]),i=new bt(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 Xo(e){if(!e)return"";const t=e.id?` id="${e.id}"`:"";return`<${e.$type}${t} />`}function Jo(e,t){function n(t,n,i){if(t.gfx)throw new Error(`already rendered ${Xo(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 ${Xo(t)}`);{if(!o.output)throw new Error(`missing output for ${Xo(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 Yo(e,t){const{elements:n,index:i}=e;return i[t]?e:{elements:[...n,t],index:{...i,[t]:!0}}}function Qo(...e){let t={elements:[],index:{}};return e.forEach(function(e){const n=typeof e;"string"===n&&e.length>0?t=Yo(t,e):"object"===n&&null!==e&&Object.keys(e).forEach(function(n){e[n]&&(t=Yo(t,n))})}),function(e,t){return e.elements.join(t)}(t," ")}function Zo(e){return es(e.constructor,e)}function es(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 ts(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&&es(t,e),"__init"in t&&t.__init.call(e,e.props,e.context)}const ns={getSelectionClasses(){const{selected:e,selectedSecondary:t,focussed:n}=this.state;return Qo({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 is extends xr{constructor(e,t){super(e,t),ts(this,ns),Zo(this)}getRenderProps(...e){const{className:t,elementId:n,coords:i,...r}=this.props,o={className:Qo(...e,this.getSelectionClasses(),t)};return n&&(o["data-element-id"]=n),i&&(o["data-coords"]=i),{...o,...r}}}class rs extends is{constructor(e,t){super(e,t),this.state={}}render(){const{children:e}=this.props;return ci(si(1,"td",null,e,0,{...this.getRenderProps("cell")}))}}const os={slotFill(e,t){const{type:n,context:i,...r}=e,o=this.components.getComponent(n,i)||t;return o?ci(ai(2,o,{...i,...r})):null},slotFills(e){const{type:t,context:n,...i}=e;return this.components.getComponents(t,n).map(e=>ci(ai(2,e,{...n,...i})))},$inject:["components"]};class ss extends xr{constructor(e,t){super(e,t),ts(this,os),Zo(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 si(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 as(e){const{row:t}=e,{id:n,description:i}=t.businessObject;return ai(2,rs,{className:"annotation",elementId:n,children:i||"-"})}function ls(e){e.onGetComponent("cell",({cellType:e})=>"after-label-cells"===e?ss:"after-rule-cells"===e?as:void 0)}ss.$inject=["changeSupport","sheet","translate"],ls.$inject=["components"];var cs={__init__:["annotationsProvider"],annotationsProvider:["type",ls]};function hs(e,t){return k({id:e.id,type:e.$type,businessObject:e},t)}class us{constructor(e,t,n){this._elementFactory=e,this._eventBus=t,this._sheet=n}add(e){let t;if(Bn(e,"dmn:DecisionTable"))t=this._elementFactory.createRoot(hs(e)),this._sheet.setRoot(t);else if(Bn(e,"dmn:InputClause"))t=this._elementFactory.createCol(hs(e)),this._sheet.addCol(t);else if(Bn(e,"dmn:OutputClause"))t=this._elementFactory.createCol(hs(e)),this._sheet.addCol(t);else if(Bn(e,"dmn:DecisionRule")){e.inputEntry||(e.inputEntry=[]),e.outputEntry||(e.outputEntry=[]);const n=[...e.inputEntry,...e.outputEntry].map(e=>this._elementFactory.createCell(hs(e)));t=this._elementFactory.createRow(k(hs(e),{cells:n})),this._sheet.addRow(t)}return this._eventBus.fire("dmnElement.added",{element:t}),t}}us.$inject=["elementFactory","eventBus","sheet"];var ps={__depends__:[{__depends__:[ro],tableImporter:["type",us]},$o]};class ds extends xr{constructor(e,t){super(e,t),ts(this,os),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(!Bn(e,"dmn:DMNElement"))return null;const t=Pn(e),n=t.input,i=t.output;return si(1,"thead",null,si(1,"tr",null,[si(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},fs)}),i.map((e,t)=>this.slotFill({type:"cell",context:{cellType:"output-header",output:e,index:t,outputsLength:i.length},key:e.id},gs)),this.slotFills({type:"cell",context:{cellType:"after-label-cells"}})],0),2)}}function fs(e,t){const{input:n,className:i,index:r}=e,{label:o,inputExpression:s,inputValues:a}=n,l=t.injector.get("translate");return si(1,"th",(i||"")+" input-cell",[si(1,"div","clause",l(0===r?"When":"And"),0),o?si(1,"div","input-label",o,0,{title:l("Input label: ")+o}):si(1,"div","input-expression",s.text,0,{title:l("Input expression: ")+s.text}),si(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 gs(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 si(1,"th",(i||"")+" output-cell",[si(1,"div","clause",c(0===r?"Then":"And"),0),o?si(1,"div","output-label",o,0,{title:c("Output label")}):si(1,"div","output-name",s,0,{title:c("Output name")}),si(1,"div","output-variable",a&&a.text||l,0,{title:a&&a.text?c("Output values"):c("Output type")})],0,null,n.id)}function ms(e){e.onGetComponent("table.head",()=>ds)}ms.$inject=["components"];var ys={__init__:["decisionTableHeadProvider"],decisionTableHeadProvider:["type",ms]};class vs extends xr{constructor(e,t){super(e,t),this._translate=t.injector.get("translate"),Zo(this)}render(){const e=this.sheet.getRoot();if(!Bn(e,"dmn:DMNElement"))return null;const{name:t}=e.businessObject.$parent,n=this.components.getComponent("hit-policy")||ws;return si(1,"div","decision-table-properties",[si(1,"div","decision-table-name",t,0,{title:this._translate("Decision name: ")+t}),si(1,"div","decision-table-header-separator"),ai(2,n)],4)}}function ws(){return null}vs.$inject=["sheet","components"];class bs{constructor(e){e.onGetComponent("table.before",500,()=>vs)}}bs.$inject=["components"];var xs={__init__:["decisionTableProperties"],decisionTableProperties:["type",bs]};class ks extends xr{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 si(1,"td","rule-index",[i&&i.map(n=>ai(2,n,{row:e,rowIndex:t})),t+1],0,{"data-element-id":e.id,"data-row-id":e.id})}}class _s{constructor(e){e.onGetComponent("cell",({cellType:e})=>{if("before-rule-cells"===e)return ks})}}_s.$inject=["components"];var Ss={__init__:["decisionRuleIndices"],decisionRuleIndices:["type",_s]};const Cs=[{label:"FEEL",value:"feel"}];class Es{constructor(e){this._injector=e;const t=e.get("config.expressionLanguages")||{};this._config={options:Cs,defaults:{editor:"feel"}},t.options&&(this._config.options=t.options);const n=this._getLegacyDefaults();k(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)}}Es.$inject=["injector"];var Ms={__init__:["expressionLanguages"],expressionLanguages:["type",Es]};class As{constructor(e){this._feelLanguageContext=e}getConfig(){return this._feelLanguageContext}}As.$inject=["config.feelLanguageContext"];var Ts={__init__:["feelLanguageContext"],feelLanguageContext:["type",As]};class Rs extends xr{render({rows:e,cols:t}){const{components:n}=this.context;return si(1,"tbody",null,e.map((e,i)=>{const r=n.getComponent("row",{rowType:"rule"});return r&&ai(2,r,{row:e,rowIndex:i,cols:t},e.id)}),0)}}class Ds extends xr{constructor(e,t){super(e,t),ts(this,os)}render(){const{row:e,rowIndex:t,cols:n}=this.props,{cells:i}=e;return si(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 Os extends xr{render(){const{cell:e,row:t,col:n}=this.props;return Bn(e,"dmn:UnaryTests")?ai(2,rs,{className:"input-cell",elementId:e.id,"data-row-id":t.id,"data-col-id":n.id,children:e.businessObject.text}):ai(2,rs,{className:"output-cell",elementId:e.id,"data-row-id":t.id,"data-col-id":n.id,children:e.businessObject.text})}}class qs{constructor(e){e.onGetComponent("table.body",()=>Rs),e.onGetComponent("row",({rowType:e})=>{if("rule"===e)return Ds}),e.onGetComponent("cell",({cellType:e})=>{if("rule"===e)return Os})}}qs.$inject=["components"];var Ns={__depends__:[Ms,Ts],__init__:["decisionRules"],decisionRules:["type",qs]};const Bs=[{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 Ps extends xr{constructor(e,t){super(e,t),this._translate=t.injector.get("translate"),Zo(this)}getRoot(){return this.sheet.getRoot()}render(){const e=this.getRoot().businessObject,{aggregation:t,hitPolicy:n}=e,i=u(Bs,e=>{return i=e.value,r={aggregation:t,hitPolicy:n},i.hitPolicy===r.hitPolicy&&i.aggregation===r.aggregation;var i,r});return si(1,"div","hit-policy header",[si(1,"label","dms-label",this._translate("Hit policy:"),0),si(1,"span","hit-policy-value",this._translate(i.label),0)],4,{title:this._translate(i.explanation)})}}function Ls(e){e.onGetComponent("hit-policy",()=>Ps)}Ps.$inject=["sheet"],Ls.$inject=["components"];var Is={__init__:["hitPolicyProvider"],hitPolicyProvider:["type",Ls]};let Fs=class extends xr{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 si(1,"div","view-drd",si(1,"button","view-drd-button",this._translate("View DRD"),0,{type:"button",onClick:this.onClick}),2,null,null,e=>this.node=e)}},js=class{constructor(e,t,n,i){this._injector=n,this._sheet=i,e.onGetComponent("table.before",()=>{if(this.canViewDrd())return Fs}),t.on("showDrd",()=>{const e=n.get("_parent",!1),t=Vs(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=Vs(this._sheet.getRoot());return!!e.getView(t)}};function Vs(e){const{businessObject:t}=e;if(!t)return;return t.$parent.$parent}js.$inject=["components","eventBus","injector","sheet"];var $s={__init__:["viewDrd"],viewDrd:["type",js]};let Ws=class{constructor(e){e.onGetComponent("table.before",()=>Cr)}};Ws.$inject=["components"];var zs={__init__:["poweredBy"],poweredBy:["type",Ws]};let Hs=class e extends Ko{constructor(t={}){const n=e._createContainer();super(k(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 Jo({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:[zs,...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",{}),rt(e))}destroy(){super.destroy(),this.detach()}getModules(){return e._getModules()}static _getModules(){return[cs,ps,ro,ys,xs,Ss,Ns,Is,$s]}static _createContainer(){return $e('
')}};class Us{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;iai(2,e,null,t)),0)}}class Ks{constructor(e,t,n,i,r){const{container:o}=n;this._container=o,i.on("renderer.mount",()=>{mr(ai(2,Gs,{injector:r}),o)}),i.on("renderer.unmount",()=>{mr(null,o)})}getContainer(){return this._container}}Ks.$inject=["changeSupport","components","config.renderer","eventBus","injector"];var Xs={__init__:["changeSupport","components","renderer"],changeSupport:["type",Us],components:["type",class{constructor(){this._listeners={}}getComponent(e,t){const n=this._listeners[e];if(!n)return;let i;for(let e=0;eZs)}};ea.$inject=["components"];var ta={__init__:["decisionProperties"],decisionProperties:["type",ea]};class na extends xr{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 si(1,"div","literal-expression-properties",si(1,"table",null,[si(1,"tr",null,[si(1,"td",null,this._translate("Variable name:"),0),si(1,"td",null,si(1,"span",null,t.name||"-",0),2)],4),si(1,"tr",null,[si(1,"td",null,this._translate("Variable type:"),0),si(1,"td",null,si(1,"span",null,this._translate(t.typeRef||"")||"-",0),2)],4),si(1,"tr",null,[si(1,"td",null,this._translate("Expression language:"),0),si(1,"td",null,si(1,"span",null,e.expressionLanguage||"-",0),2)],4)],4),2)}}class ia{constructor(e){e.onGetComponent("viewer",500,()=>na)}}ia.$inject=["components"];var ra={__depends__:[],__init__:["literalExpressionProperties"],literalExpressionProperties:["type",ia]};let oa=class{constructor(e){e.onGetComponent("viewer",2e3,()=>Cr)}};oa.$inject=["components"];var sa={__init__:["poweredBy"],poweredBy:["type",oa]};class aa extends xr{constructor(e,t){super(e,t),this._viewer=t.injector.get("viewer")}render(){const{text:e}=this._viewer.getDecision().decisionLogic;return si(1,"div","textarea",si(1,"div","content",e,0),2)}}class la{constructor(e){e.onGetComponent("viewer",()=>aa)}}la.$inject=["components"];var ca={__init__:["textarea"],textarea:["type",la]};let ha=class extends xr{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 si(1,"div","view-drd",si(1,"button","view-drd-button",this._translate("View DRD"),0,{type:"button",onClick:this.onClick}),2,null,null,e=>this.node=e)}};ha.$inject=["translate"];let ua=class{constructor(e,t,n,i){this._injector=i,this._viewer=t,e.onGetComponent("viewer",2e3,()=>{if(this.canViewDrd())return ha}),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}};ua.$inject=["components","viewer","eventBus","injector"];var pa={__init__:["viewDrd"],viewDrd:["type",ua]};let da=class e extends Js{constructor(t={}){const n=e._createContainer();super(k(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",{}),rt(e))}destroy(){super.destroy(),this.detach()}getModules(){return e._getModules()}static _getModules(){return[Qs,ro,ta,ra,sa,ca,pa]}static _createContainer(){return $e('
')}};function fa(e,{injector:t}){const n=t.get("components").getComponents("header");return si(1,"div","dmn-boxed-expression-section dmn-boxed-expression-header",n&&n.map((e,t)=>ai(2,e,null,t)),0)}function ga(e,{injector:t}){const n=t.get("components").getComponents("body");return si(1,"div","dmn-boxed-expression-section dmn-boxed-expression-body",n&&n.map((e,t)=>ai(2,e,null,t)),0)}function ma(e,{injector:t}){const n=t.get("components").getComponents("footer");return si(1,"div","dmn-boxed-expression-section dmn-boxed-expression-footer",n&&n.map((e,t)=>ai(2,e,null,t)),0)}var ya={__init__:["viewRenderer","tableJsSupport"],viewRenderer:["type",class{static $inject=["components"];constructor(e){e.onGetComponent("viewer",()=>fa),e.onGetComponent("viewer",()=>ga),e.onGetComponent("viewer",()=>ma)}}],tableJsSupport:["type",class{static $inject=["components"];constructor(e){e.onGetComponent("viewer",()=>{const t=e.getComponents("table.before")||[];return()=>si(1,"div",null,t.map((e,t)=>ai(2,e,null,t)),0)})}}]};class va{constructor(e){e.onGetComponent("viewer",2e3,()=>Cr)}}va.$inject=["components"];var wa={__init__:["poweredBy"],poweredBy:["type",va]};function ba({expression:e},t){return si(1,"div","textarea",si(1,"div","content",t.injector.get("literalExpression").getText(e),0),2)}class xa{getText(e){return e.get("text")}}var ka={__init__:["literalExpressionComponent"],literalExpressionComponent:["type",class{static $inject=["components"];constructor(e){e.onGetComponent("expression",({expression:e})=>{if(Bn(e,"dmn:LiteralExpression"))return ba})}}],literalExpression:["type",xa]};function _a({expression:e},t){const n=t.injector.get("functionDefinition"),i=n.getKind(e),r=n.getParameters(e),o=n.getBody(e);return si(1,"div","function-definition",[ai(2,Ca,{kind:i}),ai(2,Ea,{parameters:r}),ai(2,Aa,{expression:o})],4)}const Sa={FEEL:"F",Java:"J",PMML:"P"};function Ca({kind:e},t){const n=t.injector.get("translate");return si(1,"div","function-definition-kind",Sa[e],0,{title:n("Function kind: {kind}",{kind:e})})}function Ea({parameters:e}){return si(1,"div","function-definition-parameters",si(1,"div",null,[li("("),e.reduce((e,t)=>e.concat(ai(2,Ma,{parameter:t}),", "),[]).slice(0,-1),li(")")],0),2)}function Ma({parameter:e}){const{name:t,typeRef:n}=e,i=t||"";return si(1,"span",null,n?`${i}: ${n}`:i,0)}function Aa({expression:e},t){return si(1,"div","function-definition-body",ai(2,t.components.getComponent("expression",{expression:e}),{expression:e}),2)}var Ta={__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(Bn(e,"dmn:FunctionDefinition"))return _a})}}]};class Ra extends xr{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 si(1,"div","view-drd",si(1,"button","view-drd-button",this._translate("View DRD"),0,{type:"button",onClick:this.onClick}),2,null,null,e=>this.node=e)}}Ra.$inject=["translate"];class Da{constructor(e,t,n){this._injector=n,e.onGetComponent("viewer",2e3,()=>{if(this.canViewDrd())return Ra}),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)}}Da.$inject=["components","eventBus","injector"];var Oa={__init__:["viewDrd"],viewDrd:["type",Da]};function qa(e,t){const n=t.injector.get("viewer"),{name:i}=n.getRootElement();return si(1,"div","element-properties",si(1,"h2","element-name",i,0),2)}class Na{constructor(e){e.onGetComponent("header",()=>qa)}}Na.$inject=["components"];var Ba={__init__:["elementProperties"],elementProperties:["type",Na]};function Pa(e,{injector:t}){const n=t.get("components"),i=function(e){if(Bn(e,"dmn:Decision"))return e.get("decisionLogic");if(Bn(e,"dmn:BusinessKnowledgeModel"))return e.get("encapsulatedLogic")}(t.get("viewer").getRootElement());return ai(2,n.getComponent("expression",{expression:i}),{expression:i})}function La({expression:e}){return si(1,"div",null,si(1,"span",null,[li("Expression of type "),e.$type,li(" is not supported.")],0,{style:"color:red;"}),2)}var Ia={__init__:["elementLogic"],elementLogic:["type",class{static $inject=["components"];constructor(e){e.onGetComponent("body",()=>Pa),e.onGetComponent("expression",100,()=>La)}}]};function Fa(e,t){const n=t.injector.get("elementVariable"),i=t.injector.get("translate"),r=n.getName(),o=n.getType();return si(1,"div","element-variable",[si(1,"h2",null,li("Result"),2),si(1,"div","element-variable-name",[si(1,"span","element-variable-name-label",i("Variable name"),0),si(1,"span",null,r,0)],4),si(1,"div","element-variable-type",[si(1,"span","element-variable-type-label",i("Variable type"),0),si(1,"span",null,o,0)],4)],4)}var ja={__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",()=>Fa)}}]};let Va=class e extends Js{constructor(t={}){const n=e._createContainer();super(k(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",{}),rt(e))}destroy(){super.destroy(),this.detach()}getModules(){return[ya,ro,wa,Oa,Ba,Ia,Ta,ka,ja]}static _createContainer(){return $e('
')}};var $a,Wa,za,Ha,Ua,Ga;function Ka(){if(Ha)return za;Ha=1;var e=/\b(Array|Date|Object|Math|JSON)\b/g;return za=function(t,n){var i=function(e){for(var t=[],n=0;n0?o:1;for(var a=this.node,l=this.closingTag,c=this._revisit;a;){if(e(i,l)&&a[n])a=a[n],l=!i;else if(1==a.nodeType&&!a[n]&&e(i,l)){if(l=i,!c)continue}else if(a[t])a=a[t],l=!i;else if(a=a.parentNode,l=i,!c)continue;if(!a||this.higher(a,this.root))break;if(r(a)&&this.selects(a,s)&&this.rejects(a,s)){if(--o)continue;return s||(this.node=a),this.closingTag=l,a}}return null}}Ua=n,n.prototype.reset=function(e){return this.node=e||this.start,this},n.prototype.revisit=function(e){return this._revisit=null==e||e,this},n.prototype.opening=function(){return 1==this.node.nodeType&&(this.closingTag=!1),this},n.prototype.atOpening=function(){return!this.closingTag},n.prototype.closing=function(){return 1==this.node.nodeType&&(this.closingTag=!0),this},n.prototype.atClosing=function(){return this.closingTag},n.prototype.next=i("nextSibling","firstChild"),n.prototype.previous=n.prototype.prev=i("previousSibling","lastChild"),n.prototype.select=function(e){return e=this.compile(e),this._selects.push(e),this},n.prototype.selects=function(e,t){var n=this._selects,i=n.length;if(!i)return!0;for(var r=0;r0?this.next(e,t,!0):this.prev(e,Math.abs(t),!0):this.node},n.prototype.use=function(e){return e(this),this}}(),window.getSelection();let Xa=[],Ja=[];function Ya(e){if(e<768)return!1;for(let t=0,n=Xa.length;;){let i=t+n>>1;if(e=Ja[i]))return!0;t=i+1}if(t==n)return!1}}function Qa(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=0&&Qa(nl(e,i));)n++,i-=2;if(n%2==0)break;t+=2}}}return t}function tl(e,t,n){for(;t>0;){let i=el(e,t-2,n);if(i=56320&&e<57344}function rl(e){return e>=55296&&e<56320}function ol(e){return e<65536?1:2}class sl{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]=gl(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),ll.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]=gl(this,e,t);let n=[];return this.decompose(e,t,n,0),ll.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 ul(this),r=new ul(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 ul(this,e)}iterRange(e,t=this.length){return new pl(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 dl(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 al(e):ll.from(al.split(e,[])):sl.empty}}class al extends sl{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 fl(i,s,n,o);i=s+1,n++}}decompose(e,t,n,i){let r=e<=0&&t>=this.length?this:new al(hl(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(1&i){let e=n.pop(),t=cl(r.text,e.text.slice(),0,r.length);if(t.length<=32)n.push(new al(t,e.length+r.length));else{let e=t.length>>1;n.push(new al(t.slice(0,e)),new al(t.slice(e)))}}else n.push(r)}replace(e,t,n){if(!(n instanceof al))return super.replace(e,t,n);[e,t]=gl(this,e,t);let i=cl(this.text,cl(n.text,hl(this.text,0,e)),t),r=this.length+n.length-(t-e);return i.length<=32?new al(i,r):ll.from(al.split(i,[]),r)}sliceString(e,t=this.length,n="\n"){[e,t]=gl(this,e,t);let i="";for(let r=0,o=0;r<=t&&oe&&o&&(i+=n),er&&(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 al(n,i)),n=[],i=-1);return i>-1&&t.push(new al(n,i)),t}}class ll extends sl{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=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]=gl(this,e,t),n.lines=r&&t<=s){let a=o.replace(e-r,t-r,n),l=this.lines-o.lines+a.lines;if(a.lines>4&&a.lines>l>>6){let r=this.children.slice();return r[i]=a,new ll(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]=gl(this,e,t);let i="";for(let r=0,o=0;re&&r&&(i+=n),eo&&(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 ll))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 al(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 ll)for(let t of e.children)h(t);else e.lines>o&&(a>o||!a)?(u(),s.push(e)):e instanceof al&&a&&(t=c[c.length-1])instanceof al&&e.lines+t.lines<=32?(a+=e.lines,l+=e.length+1,c[c.length-1]=new al(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]:ll.from(c,l)),l=-1,a=c.length=0)}for(let t of e)h(t);return u(),1==s.length?s[0]:new ll(s,t)}}function cl(e,t,n=0,i=1e9){for(let r=0,o=0,s=!0;o=n&&(l>i&&(a=a.slice(0,i-r)),r0?1:(e instanceof al?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 al?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 al){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 al?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 pl{constructor(e,t,n){this.value="",this.done=!1,this.cursor=new ul(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 dl{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&&(sl.prototype[Symbol.iterator]=function(){return this.iter()},ul.prototype[Symbol.iterator]=pl.prototype[Symbol.iterator]=dl.prototype[Symbol.iterator]=function(){return this});class fl{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 gl(e,t,n){return[t=Math.max(0,Math.min(e.length,t)),Math.max(t,Math.min(e.length,n))]}function ml(e,t,n=!0,i=!0){return Za(e,t,n,i)}const yl=/\r\n?|\n/;var vl=function(e){return e[e.Simple=0]="Simple",e[e.TrackDel=1]="TrackDel",e[e.TrackBefore=2]="TrackBefore",e[e.TrackAfter=3]="TrackAfter",e}(vl||(vl={}));class wl{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;te)return r+(e-i);r+=s}else{if(n!=vl.Simple&&l>=e&&(n==vl.TrackDel&&ie||n==vl.TrackBefore&&ie))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=0&&i<=t&&r>=e)return!(it)||"cover";i=r}return!1}toString(){let e="";for(let t=0;t=0?":"+i:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(e=>"number"!=typeof e))throw new RangeError("Invalid JSON representation of ChangeDesc");return new wl(e)}static create(e){return new wl(e)}}class bl extends wl{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 _l(this,(t,n,i,r,o)=>e=e.replace(i,i+(n-t),o),!1),e}mapDesc(e,t=!1){return Sl(this,e,t,!0)}invert(e){let t=this.sections.slice(),n=[];for(let i=0,r=0;i=0){t[i]=s,t[i+1]=o;let a=i>>1;for(;n.length0&&kl(n,t,r.text),r.forward(e),s+=e}let l=e[o++];for(;s>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;os||e<0||s>t)throw new RangeError(`Invalid change range ${e} to ${s} (in doc of length ${t})`);let h=c?"string"==typeof c?sl.of(c.split(n||yl)):c:sl.empty,u=h.length;if(e==s&&0==u)return;eo&&xl(i,e-o,-1),xl(i,s-e,u),kl(r,i,h),o=s}}(e),a(!s),s}static empty(e){return new bl(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let t=[],n=[];for(let i=0;it&&"string"!=typeof e))throw new RangeError("Invalid JSON representation of ChangeSet");if(1==r.length)t.push(r[0],0);else{for(;n.length=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 kl(e,t,n){if(0==n.length)return;let i=t.length-2>>1;if(i>1])),!(n||s==e.sections.length||e.sections[s+1]<0);)a=e.sections[s++],l=e.sections[s++];t(r,c,o,h,u),r=c,o=h}}}function Sl(e,t,n,i=!1){let r=[],o=i?[]:null,s=new El(e),a=new El(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);xl(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=0&&e=0)){if(s.done&&a.done)return o?bl.createSet(r,o):wl.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.lent||s.ins>=0&&s.len>t)&&(e||i.length>n),o.forward2(t),s.forward(t)}}else xl(i,0,s.ins,e),r&&kl(r,i,s.text),s.next()}}class El{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i>1;return t>=e.length?sl.empty:e[t]}textBit(e){let{inserted:t}=this.set,n=this.i-2>>1;return n>=t.length&&!e?sl.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 Ml{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 Ml(n,i,this.flags)}extend(e,t=e){if(e<=this.anchor&&t>=this.anchor)return Al.range(e,t);let n=Math.abs(e-this.anchor)>Math.abs(t-this.anchor)?e:t;return Al.range(this.anchor,n)}eq(e,t=!1){return!(this.anchor!=e.anchor||this.head!=e.head||this.goalColumn!=e.goalColumn||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 Al.range(e.anchor,e.head)}static create(e,t,n){return new Ml(e,t,n)}}class Al{constructor(e,t){this.ranges=e,this.mainIndex=t}map(e,t=-1){return e.empty?this:Al.create(this.ranges.map(n=>n.map(e,t)),this.mainIndex)}eq(e,t=!1){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let n=0;ne.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||"number"!=typeof e.main||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new Al(e.ranges.map(e=>Ml.fromJSON(e)),e.main)}static single(e,t=e){return new Al([Al.range(e,t)],0)}static create(e,t=0){if(0==e.length)throw new RangeError("A selection needs at least one range");for(let n=0,i=0;ie?8:0)|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;ni.head?Al.range(s,o):Al.range(o,s))}}return new Al(e,t)}}function Tl(e,t){for(let n of e.ranges)if(n.to>t)throw new RangeError("Selection points outside of document")}let Rl=0;class Dl{constructor(e,t,n,i,r){this.combine=e,this.compareInput=t,this.compare=n,this.isStatic=i,this.id=Rl++,this.default=e([]),this.extensions="function"==typeof r?r(this):r}get reader(){return this}static define(e={}){return new Dl(e.combine||(e=>e),e.compareInput||((e,t)=>e===t),e.compare||(e.combine?(e,t)=>e===t:Ol),!!e.static,e.enables)}of(e){return new ql([],this,0,e)}compute(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new ql(e,this,1,t)}computeN(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new ql(e,this,2,t)}from(e,t){return t||(t=e=>e),this.compute([e],n=>t(n.field(e)))}}function Ol(e,t){return e==t||e.length==t.length&&e.every((e,n)=>e===t[n])}class ql{constructor(e,t,n,i){this.dependencies=e,this.facet=t,this.type=n,this.value=i,this.id=Rl++}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)||Bl(e,c)){let t=n(e);if(s?!Nl(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=Jl(t,l);if(this.dependencies.every(n=>n instanceof Dl?t.facet(n)===e.facet(n):!(n instanceof Il)||t.field(n,!1)==e.field(n,!1))||(s?Nl(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 Nl(e,t,n){if(e.length!=t.length)return!1;for(let i=0;ie[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;te===t),e);return e.provide&&(t.provides=e.provide(t)),t}create(e){let t=e.facet(Ll).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(Ll),o=n.facet(Ll);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,Ll.of({field:this,create:e})]}get extension(){return this}}const Fl=4,jl=3,Vl=2,$l=1;function Wl(e){return t=>new Hl(t,e)}const zl={highest:Wl(0),high:Wl($l),default:Wl(Vl),low:Wl(jl),lowest:Wl(Fl)};class Hl{constructor(e,t){this.inner=e,this.prec=t}}class Ul{of(e){return new Gl(this,e)}reconfigure(e){return Ul.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}}class Gl{constructor(e,t){this.compartment=e,this.inner=t}}class Kl{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>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 Gl&&n.delete(e.compartment)}if(r.set(e,s),Array.isArray(e))for(let t of e)o(t,s);else if(e instanceof Gl){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 Hl)o(e.inner,e.prec);else if(e instanceof Il)i[s].push(e),e.provides&&o(e.provides,s);else if(e instanceof ql)i[s].push(e),e.facet.extensions&&o(e.facet.extensions,Vl);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,Vl),i.reduce((e,t)=>e.concat(t))}(e,t,o))n instanceof Il?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,Ol(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=>Pl(e,i,t))}}let h=l.map(e=>e(s));return new Kl(e,o,h,s,a,r)}}function Xl(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 Jl(e,t){return 1&t?e.config.staticValues[t>>1]:e.values[t>>1]}const Yl=Dl.define(),Ql=Dl.define({combine:e=>e.some(e=>e),static:!0}),Zl=Dl.define({combine:e=>e.length?e[0]:void 0,static:!0}),ec=Dl.define(),tc=Dl.define(),nc=Dl.define(),ic=Dl.define({combine:e=>!!e.length&&e[0]});class rc{constructor(e,t){this.type=e,this.value=t}static define(){return new oc}}class oc{of(e){return new rc(this,e)}}class sc{constructor(e){this.map=e}of(e){return new ac(this,e)}}class ac{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 ac(this.type,t)}is(e){return this.type==e}static define(e={}){return new sc(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}}ac.reconfigure=ac.define(),ac.appendConfig=ac.define();class lc{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&&Tl(n,t.newLength),r.some(e=>e.type==lc.time)||(this.annotations=r.concat(lc.time.of(Date.now())))}static create(e,t,n,i,r,o){return new lc(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(lc.userEvent);return!(!t||!(t==e||t.length>e.length&&t.slice(0,e.length)==e&&"."==t[e.length]))}}function cc(e,t){let n=[];for(let i=0,r=0;;){let o,s;if(i=e[i]))o=e[i++],s=e[i++];else{if(!(r=0;r--){let o=n[r](e);o&&Object.keys(o).length&&(i=hc(i,uc(t,o,e.changes.newLength),!0))}return i==e?e:lc.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(ec)){let t=i(e);if(!1===t){n=!1;break}Array.isArray(t)&&(n=!0===n?t:cc(n,t))}if(!0!==n){let i,r;if(!1===n)r=e.changes.invertedDesc,i=bl.empty(t.doc.length);else{let t=e.changes.filter(n);i=t.changes,r=t.filtered.mapDesc(t.changes).invertedDesc}e=lc.create(t,i,e.selection&&e.selection.map(r),ac.mapEffects(e.effects,r),e.annotations,e.scrollIntoView)}let i=t.facet(tc);for(let n=i.length-1;n>=0;n--){let r=i[n](e);e=r instanceof lc?r:Array.isArray(r)&&1==r.length&&r[0]instanceof lc?r[0]:pc(t,fc(r),!1)}return e}(r):r)}lc.time=rc.define(),lc.userEvent=rc.define(),lc.addToHistory=rc.define(),lc.remote=rc.define();const dc=[];function fc(e){return null==e?dc:Array.isArray(e)?e:[e]}var gc=function(e){return e[e.Word=0]="Word",e[e.Space=1]="Space",e[e.Other=2]="Other",e}(gc||(gc={}));const mc=/[\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 vc(e){return t=>{if(!/\S/.test(t))return gc.Space;if(function(e){if(yc)return yc.test(e);for(let t=0;t"€"&&(n.toUpperCase()!=n.toLowerCase()||mc.test(n)))return!0}return!1}(t))return gc.Word;for(let n=0;n-1)return gc.Word;return gc.Other}}class wc{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;er.set(t,e)),n=null),r.set(t.value.compartment,t.value.extension)):t.is(ac.reconfigure)?(n=null,i=t.value):t.is(ac.appendConfig)&&(n=null,i=fc(i).concat(t.value));if(n)t=e.startState.values.slice();else{n=Kl.resolve(i,r,this),t=new wc(n,this.doc,this.selection,n.dynamicSlots.map(()=>null),(e,t)=>t.reconfigure(e,this),null).values}let o=e.startState.facet(Ql)?e.newSelection:e.newSelection.asSingle();new wc(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:Al.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=fc(n.effects);for(let n=1;nr.spec.fromJSON(o,e)))}return wc.create({doc:e.doc,selection:Al.fromJSON(e.selection),extensions:t.extensions?i.concat([t.extensions]):i})}static create(e={}){let t=Kl.resolve(e.extensions||[],new Map),n=e.doc instanceof sl?e.doc:sl.of((e.doc||"").split(t.staticFacet(wc.lineSeparator)||yl)),i=e.selection?e.selection instanceof Al?e.selection:Al.single(e.selection.anchor,e.selection.head):Al.single(0);return Tl(i,n.length),t.staticFacet(Ql)||(i=i.asSingle()),new wc(t,n,i,t.dynamicSlots.map(()=>null),(e,t)=>t.create(e),null)}get tabSize(){return this.facet(wc.tabSize)}get lineBreak(){return this.facet(wc.lineSeparator)||"\n"}get readOnly(){return this.facet(ic)}phrase(e,...t){for(let t of this.facet(wc.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(Yl))for(let o of r(this,t,n))Object.prototype.hasOwnProperty.call(o,e)&&i.push(o[e]);return i}charCategorizer(e){let t=this.languageDataAt("wordChars",e);return vc(t.length?t[0]:"")}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=ml(t,o,!1);if(r(t.slice(e,o))!=gc.Word)break;o=e}for(;se.length?e[0]:4}),wc.lineSeparator=Zl,wc.readOnly=ic,wc.phrases=Dl.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])}}),wc.languageData=Yl,wc.changeFilter=ec,wc.transactionFilter=tc,wc.transactionExtender=nc,Ul.reconfigure=ac.define();class xc{eq(e){return this==e}range(e,t=e){return _c.create(e,t,this)}}function kc(e,t){return e==t||e.constructor==t.constructor&&e.eq(t)}xc.prototype.startSide=xc.prototype.endSide=0,xc.prototype.point=!1,xc.prototype.mapMode=vl.TrackDel;let _c=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 Sc(e,t){return e.from-t.from||e.value.startSide-t.value.startSide}class Cc{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);rc||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 Cc(i,r,n,s):null,pos:o}}}class Ec{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 Ec(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(Sc)),this.isEmpty)return t.length?Ec.of(t):this;let s=new Tc(this,null,-1).goto(0),a=0,l=[],c=new Mc;for(;s.value||a=0){let e=t[a++];c.addInner(e.from,e.to,e.value)||l.push(e)}else 1==s.rangeIndex&&s.chunkIndexthis.chunkEnd(s.chunkIndex)||rs.to||r=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 Rc.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,t=0){return Rc.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=Ac(o,s,n),l=new Oc(o,a,r),c=new Oc(s,a,r);n.iterGaps((e,t,n)=>qc(l,e,c,t,n,i)),n.empty&&0==n.length&&qc(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=Ac(r,o),a=new Oc(r,s,0).goto(n),l=new Oc(o,s,0).goto(n);for(;;){if(a.to!=l.to||!Nc(a.active,l.active)||a.point&&(!l.point||!kc(a.point,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 Oc(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.pointFroms&&(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 Mc;for(let i of e instanceof _c?[e]:t?function(e){if(e.length>1)for(let t=e[0],n=1;n0)return e.slice().sort(Sc);t=i}return e}(e):e)n.add(i.from,i.to,i.value);return n.finish()}static join(e){if(!e.length)return Ec.empty;let t=e[e.length-1];for(let n=e.length-2;n>=0;n--)for(let i=e[n];i!=Ec.empty;i=i.nextLayer)t=new Ec(i.chunkPos,i.chunk,t,Math.max(i.maxPoint,t.maxPoint));return t}}Ec.empty=new Ec([],[],null,-1),Ec.empty.nextLayer=Ec.empty;class Mc{finishChunk(e){this.chunks.push(new Cc(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 Mc)).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(Ec.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),0==this.chunks.length)return e;let t=Ec.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,t}}function Ac(e,t,n){let i=new Map;for(let t of e)for(let e=0;e=this.minPoint)break}}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex=n&&i.push(new Tc(o,t,n,r));return 1==i.length?i[0]:new Rc(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--)Dc(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--)Dc(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(),Dc(this.heap,0)}}}function Dc(e,t){for(let n=e[t];;){let i=1+(t<<1);if(i>=e.length)break;let r=e[i];if(i+1=0&&(r=e[i+1],i++),n.compare(r)<0)break;e[i]=n,e[t]=r,t=i}}class Oc{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=Rc.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){Bc(this.active,e),Bc(this.activeTo,e),Bc(this.activeRank,e),this.minActive=Lc(this.active,this.activeTo)}addActive(e){let t=0,{value:n,to:i,rank:r}=this.cursor;for(;t0;)t++;Pc(this.active,t,n),Pc(this.activeTo,t,i),Pc(this.activeRank,t,r),e&&Pc(e,t,this.cursor.from),this.minActive=Lc(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&&Bc(n,i)}else{if(!this.cursor.value){this.to=this.endSide=1e9;break}if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}{let e=this.cursor.value;if(e.point){if(!(t&&this.cursor.to==this.to&&this.cursor.from=0&&n[t]=0&&!(this.activeRank[n]e||this.activeTo[n]==e&&this.active[n].endSide>=this.point.endSide)&&t.push(this.active[n]);return t.reverse()}openEnd(e){let t=0;for(let n=this.activeTo.length-1;n>=0&&this.activeTo[n]>e;n--)t++;return t}}function qc(e,t,n,i,r,o){e.goto(t),n.goto(i);let s=i+r,a=i,l=i-t,c=!!o.boundChange;for(let t=!1;;){let i=e.to+l-n.to,r=i||e.endSide-n.endSide,h=r<0?e.to+l:n.to,u=Math.min(h,s);if(e.point||n.point?(e.point&&n.point&&kc(e.point,n.point)&&Nc(e.activeForPoint(e.to),n.activeForPoint(n.to))||o.comparePoint(a,u,e.point,n.point),t=!1):(t&&o.boundChange(a),u>a&&!Nc(e.active,n.active)&&o.compareRange(a,u,e.active,n.active),c&&us)break;a=h,r<=0&&e.next(),r>=0&&n.next()}}function Nc(e,t){if(e.length!=t.length)return!1;for(let n=0;n=t;n--)e[n+1]=e[n];e[t]=n}function Lc(e,t){let n=-1,i=1e9;for(let r=0;re.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=jc[Ic]||1;return jc[Ic]=e+1,"ͼ"+e.toString(36)}static mount(e,t,n){let i=e[Fc],r=n&&n.nonce;i?r&&i.setNonce(r):i=new Wc(e,r),i.mount(Array.isArray(t)?t:[t],e)}}let $c=new Map;class Wc{constructor(e,t){let n=e.ownerDocument||e,i=n.defaultView;if(!e.head&&e.adoptedStyleSheets&&i.CSSStyleSheet){let t=$c.get(n);if(t)return e[Fc]=t;this.sheet=new i.CSSStyleSheet,$c.set(n,this)}else this.styleTag=n.createElement("style"),t&&this.styleTag.setAttribute("nonce",t);this.modules=[],e[Fc]=this}mount(e,t){let n=this.sheet,i=0,r=0;for(let t=0;t-1&&(this.modules.splice(s,1),r--,s=-1),-1==s){if(this.modules.splice(r++,0,o),n)for(let e=0;e",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},Uc=0;Uc<10;Uc++)zc[48+Uc]=zc[96+Uc]=String(Uc);for(Uc=1;Uc<=24;Uc++)zc[Uc+111]="F"+Uc;for(Uc=65;Uc<=90;Uc++)zc[Uc]=String.fromCharCode(Uc+32),Hc[Uc]=String.fromCharCode(Uc);for(var Gc in zc)Hc.hasOwnProperty(Gc)||(Hc[Gc]=zc[Gc]);let Kc="undefined"!=typeof navigator?navigator:{userAgent:"",vendor:"",platform:""},Xc="undefined"!=typeof document?document:{documentElement:{style:{}}};const Jc=/Edge\/(\d+)/.exec(Kc.userAgent),Yc=/MSIE \d/.test(Kc.userAgent),Qc=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(Kc.userAgent),Zc=!!(Yc||Qc||Jc),eh=!Zc&&/gecko\/(\d+)/i.test(Kc.userAgent),th=!Zc&&/Chrome\/(\d+)/.exec(Kc.userAgent),nh="webkitFontSmoothing"in Xc.documentElement.style,ih=!Zc&&/Apple Computer/.test(Kc.vendor),rh=ih&&(/Mobile\/\w+/.test(Kc.userAgent)||Kc.maxTouchPoints>2);var oh={mac:rh||/Mac/.test(Kc.platform),ie:Zc,ie_version:Yc?Xc.documentMode||6:Qc?+Qc[1]:Jc?+Jc[1]:0,gecko:eh,gecko_version:eh?+(/Firefox\/(\d+)/.exec(Kc.userAgent)||[0,0])[1]:0,chrome:!!th,chrome_version:th?+th[1]:0,ios:rh,android:/Android\b/.test(Kc.userAgent),webkit_version:nh?+(/\bAppleWebKit\/(\d+)/.exec(Kc.userAgent)||[0,0])[1]:0,safari:ih,safari_version:ih?+(/\bVersion\/(\d+(\.\d+)?)/.exec(Kc.userAgent)||[0,0])[1]:0,tabSize:null!=Xc.documentElement.style.tabSize?"tab-size":"-moz-tab-size"};function sh(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 ah=Object.create(null);function lh(e,t,n){if(e==t)return!0;e||(e=ah),t||(t=ah);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 ch(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 hh(e){let t=Object.create(null);for(let n=0;n0?3e8:-4e8:t>0?1e8:-1e8,new mh(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}=yh(e,i);t=(r?i?-3e8:-1:5e8)-1,n=1+(o?i?2e8:1:-6e8)}return new mh(e,t,n,i,e.widget||null,!0)}static line(e){return new gh(e)}static set(e,t=!1){return Ec.of(e,t)}hasHeight(){return!!this.widget&&this.widget.estimatedHeight>-1}}dh.none=Ec.empty;class fh extends dh{constructor(e){let{start:t,end:n}=yh(e);super(t?-1:5e8,n?1:-6e8,null,e),this.tagName=e.tagName||"span",this.attrs=e.class&&e.attributes?sh(e.attributes,{class:e.class}):e.class?{class:e.class}:e.attributes||ah}eq(e){return this==e||e instanceof fh&&this.tagName==e.tagName&&lh(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)}}fh.prototype.point=!1;class gh extends dh{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof gh&&this.spec.class==e.spec.class&&lh(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=vl.TrackBefore,gh.prototype.point=!0;class mh extends dh{constructor(e,t,n,i,r,o){super(t,n,r,e),this.block=i,this.isReplace=o,this.mapMode=i?t<=0?vl.TrackBefore:vl.TrackAfter:vl.TrackDel}get type(){return this.startSide!=this.endSide?ph.WidgetRange:this.startSide<=0?ph.WidgetBefore:ph.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(e){return e instanceof mh&&(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 yh(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 vh(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)}mh.prototype.point=!0;class wh extends xc{constructor(e,t){super(),this.tagName=e,this.attributes=t}eq(e){return e==this||e instanceof wh&&this.tagName==e.tagName&&lh(this.attributes,e.attributes)}static create(e){return new wh(e.tagName,e.attributes||ah)}static set(e,t=!1){return Ec.of(e,t)}}function bh(e){let t;return t=11==e.nodeType?e.getSelection?e:e.ownerDocument:e,t.getSelection()}function xh(e,t){return!!t&&(e==t||e.contains(1!=t.nodeType?t.parentNode:t))}function kh(e,t){if(!t.anchorNode)return!1;try{return xh(e,t.anchorNode)}catch(e){return!1}}function _h(e){return 3==e.nodeType?Ph(e,0,e.nodeValue.length).getClientRects():1==e.nodeType?e.getClientRects():[]}function Sh(e,t,n,i){return!!n&&(Mh(e,t,n,i,-1)||Mh(e,t,n,i,1))}function Ch(e){for(var t=0;;t++)if(!(e=e.previousSibling))return t}function Eh(e){return 1==e.nodeType&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(e.nodeName)}function Mh(e,t,n,i,r){for(;;){if(e==n&&t==i)return!0;if(t==(r<0?0:Ah(e))){if("DIV"==e.nodeName)return!1;let n=e.parentNode;if(!n||1!=n.nodeType)return!1;t=Ch(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?Ah(e):0}}}function Ah(e){return 3==e.nodeType?e.nodeValue.length:e.childNodes.length}function Th(e,t){let n=t?e.left:e.right;return{left:n,right:n,top:e.top,bottom:e.bottom}}function Rh(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 Dh(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}}wh.prototype.startSide=wh.prototype.endSide=-1;class Oh{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?Ah(t):0),n,Math.min(e.focusOffset,n?Ah(n):0))}set(e,t,n,i){this.anchorNode=e,this.anchorOffset=t,this.focusNode=n,this.focusOffset=i}}let qh,Nh=null;function Bh(e){if(e.setActive)return e.setActive();if(Nh)return e.focus(Nh);let t=[];for(let n=e;n&&(t.push(n,n.scrollTop,n.scrollLeft),n!=n.ownerDocument);n=n.parentNode);if(e.focus(null==Nh?{get preventScroll(){return Nh={preventScroll:!0},!0}}:void 0),!Nh){Nh=!1;for(let e=0;eMath.max(1,e.scrollHeight-e.clientHeight-4)}function Fh(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=Ah(n)}else{if(!n.parentNode||Eh(n))return null;i=Ch(n),n=n.parentNode}}}function jh(e,t){for(let n=e,i=t;;){if(3==n.nodeType&&i=26&&(Nh=!1);class Vh{constructor(e,t,n=!0){this.node=e,this.offset=t,this.precise=n}static before(e,t){return new Vh(e.parentNode,Ch(e),t)}static after(e,t){return new Vh(e.parentNode,Ch(e)+1,t)}}var $h=function(e){return e[e.LTR=0]="LTR",e[e.RTL=1]="RTL",e}($h||($h={}));const Wh=$h.LTR,zh=$h.RTL;function Hh(e){let t=[];for(let n=0;n=t){if(s.level==n)return o;(r<0||(0!=i?i<0?s.fromt:e[r].level>s.level))&&(r=o)}}if(r<0)throw new RangeError("Index out of range");return r}}function Zh(e,t){if(e.length!=t.length)return!1;for(let n=0;nl&&s.push(new Qh(l,f.from,p)),nu(e,f.direction==Wh!=!(p%2)?i+1:i,r,f.inner,f.from,f.to,s),l=f.to}d=f.to}else{if(d==n||(t?eu[d]!=a:eu[d]==a))break;d++}u?tu(e,l,d,i+1,r,u,s):lt;){let n=!0,h=!1;if(!c||l>o[c-1].to){let e=eu[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(eu[e-1]==a)break e;break}e=o[--n].from}if(u)u.push(f);else{f.to=0;e-=3)if(Xh[e+1]==-n){let t=Xh[e+2],n=2&t?r:4&t?1&t?o:r:0;n&&(eu[s]=eu[Xh[e]]=n),a=e;break}}else{if(189==Xh.length)break;Xh[a++]=s,Xh[a++]=t,Xh[a++]=l}else if(2==(i=eu[s])||1==i){let e=i==r;l=e?0:1;for(let t=a-3;t>=0;t-=3){let n=Xh[t+2];if(2&n)break;if(e)Xh[t+2]|=2;else{if(4&n)break;Xh[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=rl;)t==o&&(t=n[--i].from,o=i?n[i-1].to:e),eu[--t]=h;l=s}else o=s,l++}}}(r,o,i,a),tu(e,r,o,t,n,i,s)}function iu(e){return[new Qh(0,e,0)]}let ru="";function ou(e,t,n,i,r){var o;let s=i.head-e.from,a=Qh.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=ml(e.text,s,l.forward(r,n));(hl.to)&&(h=c),ru=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)e.some(e=>e)}),yu=Dl.define({combine:e=>e.some(e=>e)}),vu=Dl.define();class wu{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 wu(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 wu(Al.cursor(e.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}}const bu=ac.define({map:(e,t)=>e.map(t)}),xu=ac.define();function ku(e,t,n){let i=e.facet(hu);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 _u=Dl.define({combine:e=>!e.length||e[0]});let Su=0;const Cu=Dl.define({combine:e=>e.filter((t,n)=>{for(let i=0;i{let t=[];return o&&t.push(Ru.of(t=>{let n=t.plugin(e);return n?o(n):dh.none})),r&&t.push(r(e)),t})}static fromClass(e,t){return Eu.define((t,n)=>new e(t,n),t)}}class Mu{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(ku(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){ku(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){ku(e.state,t,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}}const Au=Dl.define(),Tu=Dl.define(),Ru=Dl.define(),Du=Dl.define(),Ou=Dl.define(),qu=Dl.define(),Nu=Dl.define();function Bu(e,t){let n=e.state.facet(Nu);if(!n.length)return n;let i=n.map(t=>t instanceof Function?t(e):t),r=[];return Ec.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=su(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 Pu=Dl.define();function Lu(e){let t=0,n=0,i=0,r=0;for(let o of e.state.facet(Pu)){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 Iu=Dl.define();class Fu{constructor(e,t,n,i){this.fromA=e,this.toA=t,this.fromB=n,this.toB=i}join(e){return new Fu(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.toAi.push(new Fu(e,t,n,r))),this.changedRanges=i}static create(e,t,n){return new ju(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 Vu=[];class $u{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 Vu}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=Ch(this.dom),i=this.length?e>0:t>0;return new Vh(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 Hu)return e;return null}static get(e){return e.cmTile}}class Wu extends $u{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=zu(t);else n.insertBefore(s.dom,t);i=s.dom}for(t=i?i.nextSibling:n.firstChild,r&&t&&(r.written=!0);t;)t=zu(t);this.length=o}}function zu(e){let t=e.nextSibling;return e.parentNode.removeChild(e),t}class Hu extends Wu{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=$u.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 Uu)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)}(ae||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 Uu extends Wu{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 Uu(t||document.createElement(e.tagName),e);return t||(n.flags|=4),n}}class Gu extends Wu{constructor(e,t){super(e),this.attrs=t}isLine(){return!0}static start(e,t,n){let i=new Gu(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=l&&(u.isComposite()?e(u,l-h):(!o||o.isHidden&&(t>0||n&&Ku(o,u)))&&(p>l||32&u.flags)?(o=u,s=l-h):(hn&&(e=n);let i=e,r=e,o=0;0==e&&t<0||e==n&&t>=0?oh.chrome||oh.gecko||(e?(i--,o=1):r=0)?0:s.length-1];return oh.safari&&!o&&0==a.width&&(a=Array.prototype.find.call(s,e=>e.width)||a),o?Th(a,o<0):a||null}static of(e,t){let n=new Ju(t||document.createTextNode(e),e);return t||(n.flags|=2),n}}class Yu extends $u{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 Th(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.top0;)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=0;e--){let n=t.marks[e],r=i.lastChild;if(r instanceof Xu&&r.mark.eq(n.mark))r.dom!=n.dom&&r.setDOM(lp(n.dom)),i=r;else{if(this.cache.reused.get(n)){let e=$u.get(n.dom);e&&e.setDOM(lp(n.dom))}let e=Xu.of(n.mark,n.dom);i.append(e),i=e}this.cache.reused.set(n,2)}let r=$u.get(e.text);r&&this.cache.reused.set(r,2);let o=new Ju(e.text,e.text.nodeValue);o.flags|=8,i.append(o)}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=ap);let i=Gu.start(e,t||(null===(n=this.cache.find(Gu))||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 Xu&&o.mark.eq(s))i=o,t--;else{let e=Xu.of(s,null===(n=this.cache.find(Xu,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&&sp(this.curLine,!1)&&("BR"==e.dom.nodeName||!e.isWidget()||oh.ios&&sp(this.curLine,!0))||this.curLine.append(this.cache.findWidget(hp,0,32)||new Yu(hp.toDOM(),0,hp,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){let t=new ep(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.frome.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(Qu,void 0,1);return n&&(n.flags=t),n||new Qu(t)}flushBuffer(){!this.afterWidget||32&this.afterWidget.flags||(this.afterWidget.parent.append(this.getBuffer(-1)),this.afterWidget=null)}}class np{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 ip=[Yu,Gu,Ju,Xu,Qu,Uu,Hu];for(let e=0;e[]),this.index=ip.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{if(this.cache.add(e),e.isComposite())return!1},enter:e=>this.cache.add(e),leave:()=>{},break:()=>{}}}run(e,t){let n=t&&this.getCompositionContext(t.text);for(let i=0,r=0,o=0;;){let s=oi){let e=a-i;this.preserve(e,!o,!s),i=a,r+=e}if(!s)break;t&&s.fromA<=t.range.fromA&&s.toA>=t.range.toA?(this.forward(s.fromA,t.range.fromA,t.range.fromA1;n--){let i=n==e.parents.length?e.tile:e.parents[n].tile;i instanceof Xu&&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.isLine()?this.builder.addLineStart(e.attrs,this.cache.maybeReuse(e)):(this.cache.add(e),e instanceof Xu&&i.unshift(e.mark)),this.openWidget=!1},leave:e=>{e.isLine()?i.length&&(i.length=r=0):e instanceof Xu&&(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=Ec.spans(this.decorations,e,t,{point:(e,t,o,s,a,l)=>{if(o instanceof mh){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?cp.block:cp.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)||Yu.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&&sh(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;sr,this.openMarks=o}forward(e,t,n=1){t-e<=10?this.old.advance(t-e,n,this.reuseWalker):(this.old.advance(5,-1,this.reuseWalker),this.old.advance(t-e-10,-1),this.old.advance(5,n,this.reuseWalker))}getCompositionContext(e){let t=[],n=null;for(let i=e.parentNode;;i=i.parentNode){let e=$u.get(i);if(i==this.view.contentDOM)break;e instanceof Xu?t.push(e):(null==e?void 0:e.isLine())?n=e:"DIV"!=i.nodeName||n||i==this.view.contentDOM?t.push(Xu.of(new fh({tagName:i.nodeName.toLowerCase(),attributes:hh(i)}),i)):n=new Gu(i,ap)}return{line:n,marks:t}}}function sp(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 ap={class:"cm-line"};function lp(e){let t=$u.get(e);return t&&t.setDOM(e.cloneNode()),e}class cp extends uh{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}}cp.inline=new cp("span"),cp.block=new cp("div");const hp=new class extends uh{toDOM(){return document.createElement("br")}get isHidden(){return!0}get editable(){return!0}};class up{constructor(e){this.view=e,this.decorations=[],this.blockWrappers=[],this.dynamicDecorationMap=[!1],this.domChanged=null,this.hasComposition=null,this.editContextFormatting=dh.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 Hu(e,e.contentDOM),this.updateInner([new Fu(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})=>tthis.minWidthTo)?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0),this.updateEditContextFormatting(e);let i=-1;this.view.inputState.composing>=0&&!this.view.observer.editContext&&((null===(t=this.domChanged)||void 0===t?void 0:t.newSel)?i=this.domChanged.newSel.head:function(e,t){let n=!1;t&&e.iterChangedRanges((e,i)=>{et.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=dp(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 Fu(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 Fu(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,(oh.ie||oh.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 fp;return Ec.compare(e,t,n,i),i.changes}(o,this.decorations,e.changes);a.length&&(n=Fu.extendWithRanges(n,a));let l=function(e,t,n){let i=new gp;return Ec.compare(e,t,n,i),i.changes}(s,this.blockWrappers,e.changes);return l.length&&(n=Fu.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 op(this.view,n,this.blockWrappers,this.decorations,this.dynamicDecorationMap);this.tile=i.run(e,t),pp(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=oh.chrome||oh.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-1)&&kh(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)),oh.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 Vh(e,0),s=!0}var h;let u=this.view.observer.selectionRange;!s&&u.focusNode&&(Sh(a.node,a.offset,u.anchorNode,u.anchorOffset)&&Sh(l.node,l.offset,u.focusNode,u.focusOffset)||this.suppressWidgetCursorChange(u,c))||(this.view.observer.ignore(()=>{oh.android&&oh.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=bh(this.view.root);if(e)if(c.empty){if(oh.gecko){let e=function(e,t){return 1!=e.nodeType?0:(t&&"false"==e.childNodes[t-1].contentEditable?1:0)|(tc.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 Vh(u.anchorNode,u.anchorOffset),this.impreciseHead=l.precise?null:new Vh(u.focusNode,u.focusOffset)}suppressWidgetCursorChange(e,t){return this.hasComposition&&t.empty&&Sh(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=bh(e.root),{anchorNode:i,anchorOffset:r}=e.observer.selectionRange;if(!(n&&t.empty&&t.assoc&&n.modify))return;let o=this.lineAt(t.head,t.assoc);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==Ah(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&&!$u.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&&l>=e)return!0;16&t.flags&&(o=!0)}else{let c=l+t.length;if(l<=e&&(n=t,r=e-l,o=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 mp?null:n.coordsInWidget(i,t,!0):n.coordsIn(i,t)}lineAt(e,t){let{tile:n}=this.tile.resolveBlock(e,t);return n.isLine()?n: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()&&nMath.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,s=-1,a=this.view.textDirection==$h.LTR,l=0,c=(e,h,u)=>{for(let p=0;pi);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 Uu)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?_h(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?$h.RTL:$h.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=_h(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=_h(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(dh.replace({widget:new mp(i),block:!0,inclusive:!0,isBlockGap:!0}).range(n,o))}if(!r)break;n=r.to+1}return dh.set(e)}updateDeco(){let e=1,t=this.view.state.facet(Ru).map(t=>(this.dynamicDecorationMap[e++]="function"==typeof t)?t(this.view):t),n=!1,i=this.view.state.facet(Ou).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(Ec.join(i))),this.decorations=[this.editContextFormatting,...t,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];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(vu))try{if(t(this.view,e.range,e))return!0}catch(e){ku(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=Lu(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=Rh(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}=Dh(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.top0&&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-m0&&t.right>e.right+g&&(g=t.right-e.right+o)):t.right>e.right&&(g=t.right-e.right+o,n<0&&t.lefte.bottom||t.lefte.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.heade.isWidget()||e.children.some(t);return t(this.tile.resolveBlock(e,1).tile)}destroy(){pp(this.tile)}}function pp(e,t){let n=null==t?void 0:t.get(e);if(1!=n){null==n&&e.destroy();for(let n of e.children)pp(n,t)}}function dp(e,t){let n=e.observer.selectionRange;if(!n.focusNode)return null;let i=Fh(n.focusNode,n.focusOffset),r=jh(n.focusNode,n.focusOffset),o=i||r;if(r&&i&&r.node!=i.node){let t=$u.get(r.node);if(!t||t.isText()&&t.text!=r.node.nodeValue)o=r;else if(e.docView.lastCompositionAfterCursor){let e=$u.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 fp=class{constructor(){this.changes=[]}compareRange(e,t){vh(e,t,this.changes)}comparePoint(e,t){vh(e,t,this.changes)}boundChange(e){vh(e,e,this.changes)}};class gp{constructor(){this.changes=[]}compareRange(e,t){vh(e,t,this.changes)}comparePoint(){}boundChange(e){vh(e,e,this.changes)}}class mp extends uh{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 yp(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){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=ml(e,i)}return e.length}(s,o,e.state.tabSize)}function vp(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.tot)return r;e&&(r.type!=ph.Text||e.type==r.type&&!(n<0?r.fromt))||(e=r)}}return e||i}return i}(e,t.head,t.assoc||-1),o=i&&r.type==ph.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==$h.LTR)?t.right-1:t.left+1,y:(o.top+o.bottom)/2});if(null!=s)return Al.cursor(s,n?-1:1)}return Al.cursor(n?r.to:r.from,n?-1:1)}function wp(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=ou(r,o,s,a,n),c=ru;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 bp(e,t,n){for(;;){let i=0;for(let r of e)r.between(t-1,t+1,(e,r,o)=>{if(t>e&&tt(e)),n.from,t.head>n.from?-1:1);return i==n.from?n:Al.cursor(i,ie.viewState.docHeight)return new _p(e.state.doc.length,-1);if(r=e.elementAtHeight(c),null==i)break;if(r.type==ph.Text){if(i<0?r.toe.viewport.to)break;let t=e.docView.coordsAt(i<0?r.from:r.to,i>0?-1:1);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==ph.Text){let t=yp(e,o,r,a,l);return new _p(t,t==r.from?1:-1)}}if(r.type!=ph.Text)return c<(r.top+r.bottom)/2?new _p(r.from,1):new _p(r.to,-1);let h=e.docView.lineAt(r.from,2);return h&&h.length==r.length||(h=e.docView.lineAt(r.from,-2)),new Cp(e,a,l,e.textDirectionAt(r.from)).scanTile(h,r.from)}class Cp{constructor(e,t,n,i){this.view=e,this.x=t,this.y=n,this.baseDir=i,this.line=null,this.spans=null}bidiSpansAt(e){return(!this.line||this.line.from>e||this.line.to1||n.length&&(n[0].level!=this.baseDir||n[0].to+i.from>1;t:if(a.has(p)){let e=o+Math.floor(Math.random()*u);for(let t=0;tthis.y)(!i||i.top>a.top)&&(i=a),u=-1;else{let e=a.left>this.x?this.x-a.left:a.right(r.left+r.right)/2==u}}scanText(e,t){let n=[];for(let i=0;i{let r=n[i]-t,o=n[i+1]-t;return Ph(e.dom,r,o).getClientRects()});return i.after?new _p(n[i.i+1],-1):new _p(n[i.i],1)}scanTile(e,t){if(!e.length)return new _p(t,1);if(1==e.children.length){let n=e.children[0];if(n.isText())return this.scanText(n,t);if(n.isComposite())return this.scanTile(n,t)}let n=[t];for(let i=0,r=t;i{let n=e.children[t];return 48&n.flags?null:(1==n.dom.nodeType?n.dom:Ph(n.dom,0,n.length)).getClientRects()}),r=e.children[i.i],o=n[i.i];return r.isText()?this.scanText(r,o):r.isComposite()?this.scanTile(r,o):i.after?new _p(n[i.i+1],-1):new _p(o,1)}}const Ep="￿";class Mp{constructor(e,t){this.points=e,this.view=t,this.text="",this.lineSeparator=t.state.facet(wc.lineSeparator)}append(e){this.text+=e}lineBreak(){this.text+=Ep}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=$u.get(i),o=i.nextSibling;if(o==t){(null==r?void 0:r.breakAfter)&&!o&&n!=this.view.contentDOM&&this.lineBreak();break}let s=$u.get(o);(r&&s?r.breakAfter:(r?r.breakAfter:Eh(i))||Eh(o)&&("BR"!=i.nodeName||(null==r?void 0:r.isWidget()))&&this.text.length>e)&&!Tp(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=$u.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+(Ap(e,n.node,n.offset)?t:0))}}function Ap(e,t,n){for(;;){if(!t||n-1;let{impreciseHead:r,impreciseAnchor:o}=e.docView;if(e.state.readOnly&&t>-1)this.newSel=null;else if(t>-1&&(this.bounds=Op(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 Rp(n,i)),r==n&&o==i||t.push(new Rp(r,o)));return t}(e),n=new Mp(t,e);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?Al.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||!xh(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||!xh(e.contentDOM,t.anchorNode)?e.state.selection.main.anchor:e.docView.posFromDOM(t.anchorNode,t.anchorOffset),s=e.viewport;if((oh.ios||oh.chrome)&&e.state.selection.main.empty&&n!=i&&(s.from>0||s.to-1&&e.state.selection.ranges.length>1?this.newSel=e.state.selection.replaceRange(Al.range(i,n)):this.newSel=Al.single(i,n)}}}function Op(e,t,n,i){if(e.isComposite()){let r=-1,o=-1,s=-1,a=-1;for(let l=0,c=i,h=i;ln)return Op(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=0?e.children[s].dom:null}}return e.isText()?{from:i,to:i+e.length,startDOM:e.dom,endDOM:e.dom.nextSibling}:null}function qp(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||oh.android&&t.text.length=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).toDate.now()-50?n={from:r.from,to:r.to,insert:e.state.toText(e.inputState.insertingText)}:oh.chrome&&n&&n.from==n.to&&n.from==r.head&&"\n "==n.insert.toString()&&e.lineWrapping&&(i&&(i=Al.single(i.main.anchor-1,i.main.head-1)),n={from:r.from,to:r.to,insert:sl.of([" "])}),n)return Np(e,n,i,o);if(i&&!Pp(i,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=xp(e.state.facet(qu).map(t=>t(e)),i))),e.dispatch({selection:i,scrollIntoView:t,userEvent:n}),!0}return!1}function Np(e,t,n,i=-1){if(oh.ios&&e.inputState.flushIOSKey(t))return!0;let r=e.state.selection.main;if(oh.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&&Lh(e.contentDOM,"Enter",13)||(t.from==r.from-1&&t.to==r.to&&0==t.insert.length||8==i&&t.insert.lengthr.head)&&Lh(e.contentDOM,"Backspace",8)||t.from==r.from&&t.to==r.to+1&&0==t.insert.length&&Lh(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.fromo.to){let n=t.fromt(e)),i,n);t.from==a&&(s=a)}if(s>-1)i={changes:t,selection:Al.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.fromt.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&&dp(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?Al.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(pu).some(n=>n(e,t.from,t.to,s,a))||e.dispatch(a()),!0}function Bp(e,t,n,i){let r=Math.min(e.length,t.length),o=0;for(;o0&&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=s?o-n:0,a=o+(a-s),s=o}else if(a=a?o-n:0,s=o+(s-a),a=o}return{from:o,toA:s,toB:a}}function Pp(e,t){return t.head==e.main.head&&t.anchor==e.main.anchor}class Lp{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,oh.safari&&e.contentDOM.addEventListener("input",()=>null),oh.gecko&&function(e){ad.has(e)||(ad.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=$u.get(i))&&n.isWidget()&&!n.isHidden&&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=Fp(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&&$p.indexOf(e.keyCode)<0&&(this.tabFocusMode=-1),oh.android&&oh.chrome&&!e.synthetic&&(13==e.keyCode||8==e.keyCode))return this.view.observer.delayAndroidKey(e.key,e.keyCode),!0;let t;return!oh.ios||e.synthetic||e.altKey||e.metaKey||!((t=jp.find(t=>t.keyCode==e.keyCode))&&!e.ctrlKey||Vp.indexOf(e.key)>-1&&e.ctrlKey&&!e.shiftKey)?(229!=e.keyCode&&this.view.observer.forceFlush(),!1):(this.pendingIOSKey=t||e,setTimeout(()=>this.flushIOSKey(),250),!0)}flushIOSKey(e){let t=this.pendingIOSKey;return!!t&&(!("Enter"==t.key&&e&&e.from0||!!(oh.safari&&!oh.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 Ip(e,t){return(n,i)=>{try{return t.call(e,i,n)}catch(e){ku(n.state,e)}}}function Fp(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(Ip(t.value,r))}if(r)for(let e in r){let i=r[e];i&&n(e).observers.push(Ip(t.value,i))}}for(let e in Hp)n(e).handlers.push(Hp[e]);for(let e in Up)n(e).observers.push(Up[e]);return t}const jp=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],Vp="dthko",$p=[16,17,18,20,91,92,224,225];function Wp(e){return.7*Math.max(0,e)+8}class zp{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(qu).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(wc.allowMultipleSelections)&&function(e,t){let n=e.state.facet(au);return n.length?n[0](t):oh.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=bh(e.root);if(!i||0==i.rangeCount)return!0;let r=i.getRangeAt(0).getClientRects();for(let e=0;e=t.clientX&&n.top<=t.clientY&&n.bottom>=t.clientY)return!0}return!1}(e,t)||1!=td(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=Lu(this.view);e.clientX-c.left<=o+6?i=-Wp(o-e.clientX):e.clientX+c.right>=a-6&&(i=Wp(e.clientX-a)),e.clientY-c.top<=s+6?r=-Wp(s-e.clientY):e.clientY+c.bottom>=l-6&&(r=Wp(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=xp(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 Hp=Object.create(null),Up=Object.create(null),Gp=oh.ie&&oh.ie_version<15||oh.ios&&oh.webkit_version<604;function Kp(e,t,n){for(let i of e.facet(t))n=i(n,e);return n}function Xp(e,t){t=Kp(e.state,fu,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:Al.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:Al.cursor(e.from+t.length)}}):i.replaceSelection(o);e.dispatch(n,{userEvent:"input.paste",scrollIntoView:!0})}function Jp(e,t,n,i){if(1==i)return Al.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 Al.cursor(t);0==o?n=1:o==r.length&&(n=-1);let s=o,a=o;n<0?s=ml(r.text,o,!1):a=ml(r.text,o);let l=i(r.text.slice(s,a));for(;s>0;){let e=ml(r.text,s,!1);if(i(r.text.slice(e,s))!=l)break;s=e}for(;a{e.inputState.lastScrollTop=e.scrollDOM.scrollTop,e.inputState.lastScrollLeft=e.scrollDOM.scrollLeft},Hp.keydown=(e,t)=>(e.inputState.setSelectionOrigin("select"),27==t.keyCode&&0!=e.inputState.tabFocusMode&&(e.inputState.tabFocusMode=Date.now()+2e3),!1),Up.touchstart=(e,t)=>{e.inputState.lastTouchTime=Date.now(),e.inputState.setSelectionOrigin("select.pointer")},Up.touchmove=e=>{e.inputState.setSelectionOrigin("select.pointer")},Hp.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(cu))if(n=i(e,t),n)break;if(n||0!=t.button||(n=function(e,t){let n=e.posAndSideAtCoords({x:t.clientX,y:t.clientY},!1),i=td(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=e.posAndSideAtCoords({x:t.clientX,y:t.clientY},!1),c=Jp(e,l.pos,l.assoc,i);if(n.pos!=l.pos&&!o){let t=Jp(e,n.pos,n.assoc,i),r=Math.min(t.from,c.from),o=Math.max(t.to,c.to);c=r1&&(a=function(e,t){for(let n=0;n=t)return Al.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):Al.create([c])}}}(e,t)),n){let i=!e.hasFocus;e.inputState.startMouseSelection(new zp(e,t,n,i)),i&&e.observer.ignore(()=>{Bh(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};const Yp=oh.ie&&oh.ie_version<=11;let Qp=null,Zp=0,ed=0;function td(e){if(!Yp)return e.detail;let t=Qp,n=ed;return Qp=e,ed=Date.now(),Zp=!t||n>Date.now()-400&&Math.abs(t.clientX-e.clientX)<2&&Math.abs(t.clientY-e.clientY)<2?(Zp+1)%3:1}function nd(e,t,n,i){if(!(n=Kp(e.state,fu,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(lu);return n.length?n[0](t):oh.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}Hp.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=Al.range(e,t))}}let{inputState:i}=e;return i.mouseSelection&&(i.mouseSelection.dragging=!0),i.draggedContent=n,t.dataTransfer&&(t.dataTransfer.setData("Text",Kp(e.state,gu,e.state.sliceDoc(n.from,n.to))),t.dataTransfer.effectAllowed="copyMove"),!1},Hp.dragend=e=>(e.inputState.draggedContent=null,!1),Hp.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&&nd(e,t,i.filter(e=>null!=e).join(e.state.lineBreak),!1)};for(let e=0;e{/[\x00-\x08\x0e-\x1f]{2}/.test(t.result)||(i[e]=t.result),o()},t.readAsText(n[e])}return!0}{let n=t.dataTransfer.getData("Text");if(n)return nd(e,t,n,!0),!0}return!1},Hp.paste=(e,t)=>{if(e.state.readOnly)return!0;e.observer.flush();let n=Gp?null:t.clipboardData;return n?(Xp(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(),Xp(e,n.value)},50)}(e),!1)};let id=null;Hp.copy=Hp.cut=(e,t)=>{if(!kh(e.contentDOM,e.observer.selectionRange))return!1;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:Kp(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=Gp?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 rd=rc.define();function od(e,t){let n=[];for(let i of e.facet(du)){let r=i(e,t);r&&n.push(r)}return n.length?e.update({effects:n,annotations:rd.of(!0)}):null}function sd(e){setTimeout(()=>{let t=e.hasFocus;if(t!=e.inputState.notifiedFocused){let n=od(e.state,t);n?e.dispatch(n):e.update([])}},10)}Up.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),sd(e)},Up.blur=e=>{e.observer.clearSelectionRange(),sd(e)},Up.compositionstart=Up.compositionupdate=e=>{e.observer.editContext||(null==e.inputState.compositionFirstChange&&(e.inputState.compositionFirstChange=!0),e.inputState.composing<0&&(e.inputState.composing=0))},Up.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,oh.chrome&&oh.android?e.observer.flushSoon():e.inputState.compositionPendingChange?Promise.resolve().then(()=>e.observer.flush()):setTimeout(()=>{e.inputState.composing<0&&e.docView.hasComposition&&e.update([])},50))},Up.contextmenu=e=>{e.inputState.lastContextMenu=Date.now()},Hp.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 Np(e,{from:n,to:o,insert:e.state.toText(i)},null),!0}}let r;if(oh.chrome&&oh.android&&(r=jp.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 oh.ios&&"deleteContentForward"==t.inputType&&e.observer.flushSoon(),oh.safari&&"insertText"==t.inputType&&e.inputState.composing>=0&&setTimeout(()=>Up.compositionend(e,t),20),!1};const ad=new Set;const ld=["pre-wrap","normal","pre-line","break-spaces"];let cd=!1;function hd(){cd=!1}class ud{constructor(e){this.lineWrapping=e,this.doc=sl.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 ld.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let t=!1;for(let n=0;n-1,a=Math.abs(t-this.lineHeight)>.3||this.lineWrapping!=s||Math.abs(n-this.charWidth)>.1;if(this.lineWrapping=s,this.lineHeight=t,this.charWidth=n,this.textHeight=i,this.lineLength=r,a){this.heightSamples={};for(let e=0;e0}set outdated(e){this.flags=(e?2:0)|-3&this.flags}setHeight(e){this.height!=e&&(Math.abs(this.height-e)>gd&&(cd=!0),this.height=e)}replace(e,t,n){return md.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,fd.ByPosNoHeight,n.setDoc(t),0,0),p=u.to>=l?u:r.lineAt(l,fd.ByPosNoHeight,n,0,0);for(h+=p.to-l,l=p.to;s>0&&u.from<=i[s-1].toA;)a=i[s-1].fromA,c=i[s-1].fromB,s--,a2*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&&o(this.lineAt(0,fd.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 bd extends wd{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 dd(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 bd||i instanceof xd&&4&i.flags)&&Math.abs(this.length-i.length)<10?(i instanceof xd?i=new bd(i.length,this.height,this.spaceAbove):i.height=this.height,this.outdated||(i.outdated=!1),i):md.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 xd extends md{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+(e0){let e=n[n.length-1];e instanceof xd?n[n.length-1]=new xd(e.length+i):n.push(null,new xd(i-1))}if(e>0){let t=n[0];t instanceof xd?n[0]=new xd(e+t.length):n.unshift(new xd(e-1),null)}return md.of(n)}decomposeLeft(e,t){t.push(new xd(e-1),null)}decomposeRight(e,t){t.push(null,new xd(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 xd(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)>=gd&&(s=-2);let l=new bd(t,r,a);l.outdated=!1,n.push(l),o+=t+1}o<=r&&n.push(null,new xd(r-o).updateHeight(e,o));let a=md.of(n);return(s<0||Math.abs(a.height-this.height)>=gd||Math.abs(s-this.heightMetrics(e,t).perLine)>=gd)&&(cd=!0),yd(this,a)}return(n||this.outdated)&&(this.setHeight(e.heightForGap(t,t+this.length)),this.outdated=!1),this}toString(){return`gap(${this.length})`}}class kd extends md{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 es))return l;let c=t==fd.ByPosNoHeight?fd.ByPosNoHeight:fd.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.right.forEachLine(e,t,n,s,a,o);else{let l=this.lineAt(a,fd.ByPos,n,i,r);e=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(tthis.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&&_d(r,o-1),t=n&&t.push(null)),e>n&&this.right.decomposeLeft(e-n,t)}decomposeRight(e,t){let n=this.left.length,i=n+this.break;if(e>=i)return this.right.decomposeRight(e-i,t);e2*t.size||t.size>2*e.size?md.of(this.break?[e,null,t]:[e,t]):(this.left=yd(this.left,e),this.right=yd(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 _d(e,t){let n,i;null==e[t]&&(n=e[t-1])instanceof xd&&(i=e[t+1])instanceof xd&&e.splice(t-1,3,new xd(n.length+1+i.length))}class Sd{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 bd?n.length+=e-this.pos:(e>this.pos||!this.isCovered)&&this.nodes.push(new bd(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=5)&&this.addLineDeco(i,r,o)}else t>e&&this.span(e,t);this.lineEnd>-1&&this.lineEnd-1)return;let{from:e,to:t}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=t,this.writtenToe&&this.nodes.push(new bd(this.pos-e,-1,0)),this.writtenTo=this.pos}blankContent(e,t){let n=new xd(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 bd)return e;let t=new bd(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 bd||this.isCovered?(this.writtenTon.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 Md(e,t){let n=e.getBoundingClientRect();return{left:0,right:n.right-n.left,top:t,bottom:n.bottom-(n.top+t)}}class Ad{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"function"!=typeof e&&"cm-lineWrapping"==e.class);this.heightOracle=new ud(t),this.stateDeco=Bd(e),this.heightMap=md.empty().applyChanges(this.stateDeco,sl.empty,this.heightOracle.setDoc(e.doc),[new Fu(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=dh.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 Dd(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?Nd:new Pd(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(Ld(e,this.scaler))})}update(e,t=null){this.state=e.state;let n=this.stateDeco;this.stateDeco=Bd(this.state);let i=e.changedRanges,r=Fu.extendWithRanges(i,function(e,t,n){let i=new Cd;return Ec.compare(e,t,n,i,0),i.changes}(n,this.stateDeco,e?e.changes:bl.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||cd)&&(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.heada.to)||!this.viewportIsAppropriate(a))&&(a=this.getViewport(0,t));let l=a.from!=this.viewport.from||a.to!=this.viewport.to;this.viewport=a,e.flags|=this.updateForViewport(),(l||!e.changes.empty||2&e.flags)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(e.changes),t&&(this.scrollTarget=t),!this.mustEnforceCursorAssoc&&(e.selectionSet||e.focusChanged)&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&!e.state.facet(yu)&&(this.mustEnforceCursorAssoc=!0)}measure(e){let t=e.contentDOM,n=window.getComputedStyle(t),i=this.heightOracle,r=n.whiteSpace;this.defaultTextDirection="rtl"==n.direction?$h.RTL:$h.LTR;let o=this.heightOracle.mustRefreshForWrapping(r)||this.mustMeasureContent,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}=Dh(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=Ih(e.scrollDOM);let d=(this.printing?Md:Ed)(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.left0&&t.top0}(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?md.empty().applyChanges(this.stateDeco,sl.empty,this.heightOracle,[new Fu(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(i,0,o,new pd(n.from,r))}cd&&(l|=2)}let v=!this.viewportIsAppropriate(this.viewport,c)||this.scrollTarget&&(this.scrollTarget.range.headthis.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 Dd(i.lineAt(o-1e3*n,fd.ByHeight,r,0,0).from,i.lineAt(s+1e3*(1-n),fd.ByHeight,r,0,0).to);if(t){let{head:e}=t.range;if(ea.to){let n,o=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),s=i.lineAt(e,fd.ByPos,r,0,0);n="center"==t.y?(s.top+s.bottom)/2-o/2:"start"==t.y||"nearest"==t.y&&e=s+Math.max(10,Math.min(n,250)))&&i>o-2e3&&r>1,o=i<<1;if(this.defaultTextDirection!=$h.LTR&&!n)return[];let s=[],a=(i,o,l,c)=>{if(o-ii&&ee.from>=l.from&&e.to<=l.to&&Math.abs(e.from-i)e.fromt));if(!p){if(oe.from<=o&&e.to>=o)){let e=t.moveToLineBoundary(Al.cursor(o),!1,!0).head;e>i&&(o=e)}let e=this.gapSize(l,i,o,c);p=new Ad(i,o,e,n||e<2e6?e:2e6)}s.push(p)},l=t=>{if(t.lengthr&&(i.push({from:r,to:e}),o+=e-r),r=t}},20),r2e6)for(let n of e)n.from>=t.from&&n.fromt.from&&a(t.from,s,t,r),le.draw(this,this.heightOracle.lineWrapping))))}computeVisibleRanges(e){let t=this.stateDeco;this.lineGaps.length&&(t=t.concat(this.lineGapDeco));let n=[];Ec.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=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find(t=>t.from<=e&&t.to>=e)||Ld(this.heightMap.lineAt(e,fd.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)||Ld(this.heightMap.lineAt(this.scaler.fromDOM(e),fd.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 Ld(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 Dd{constructor(e,t){this.from=e,this.to=t}}function Od({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 qd(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 Nd={toDOM:e=>e,fromDOM:e=>e,scale:1,eq(e){return e==this}};function Bd(e){let t=e.facet(Ru).filter(e=>"function"!=typeof e),n=e.facet(Ou).filter(e=>"function"!=typeof e);return n.length&&t.push(Ec.join(n)),t}class Pd{constructor(e,t,n){let i=0,r=0,o=0;this.viewports=n.map(({from:n,to:r})=>{let o=t.lineAt(n,fd.ByPos,e,0,0).top,s=t.lineAt(r,fd.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=tt.from==e.viewports[n].from&&t.to==e.viewports[n].to))}}function Ld(e,t){if(1==t.scale)return e;let n=t.toDOM(e.top),i=t.toDOM(e.bottom);return new dd(e.from,e.length,n,i-n,Array.isArray(e._content)?e._content.map(e=>Ld(e,t)):e._content)}const Id=Dl.define({combine:e=>e.join(" ")}),Fd=Dl.define({combine:e=>e.indexOf(!0)>-1}),jd=Vc.newName(),Vd=Vc.newName(),$d=Vc.newName(),Wd={"&light":"."+Vd,"&dark":"."+$d};function zd(e,t,n){return new Vc(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 Hd=zd("."+jd,{"&":{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,\')',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"}},Wd),Ud={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},Gd=oh.ie&&oh.ie_version<=11;class Kd{constructor(e){this.view=e,this.active=!1,this.editContext=null,this.selectionRange=new Oh,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);(oh.ie&&oh.ie_version<=11||oh.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||!oh.android||!1===e.constructor.EDIT_CONTEXT||oh.chrome&&oh.chrome_version<126||(this.editContext=new Yd(e),e.state.facet(_u)&&(e.contentDOM.editContext=this.editContext.editContext)),Gd&&(this.onCharData=e=>{this.queue.push({target:e.target,type:"characterData",oldValue:e.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),window.matchMedia&&(this.printQuery=window.matchMedia("print")),"function"==typeof ResizeObserver&&(this.resizeScroll=new ResizeObserver(()=>{var e;(null===(e=this.view.docView)||void 0===e?void 0:e.lastUpdate){this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),e.length>0&&e[e.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{threshold:[0,.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(e=>{e.length>0&&e[e.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(e){this.view.inputState.runHandlers("scroll",e),this.intersecting&&this.view.measure()}onScroll(e){this.intersecting&&this.flush(!1),this.editContext&&this.view.requestMeasure(this.editContext.measureReq),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(e){("change"!=e.type&&e.type||e.matches)&&(this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500))}updateGaps(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some((t,n)=>t!=e[n]))){this.gapIntersection.disconnect();for(let t of e)this.gapIntersection.observe(t);this.gaps=e}}onSelectionChange(e){let t=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:n}=this,i=this.selectionRange;if(n.state.facet(_u)?n.root.activeElement!=this.dom:!kh(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):(oh.ie&&oh.ie_version<=11||oh.android&&oh.chrome)&&!n.state.selection.main.empty&&i.focusNode&&Sh(i.focusNode,i.focusOffset,i.anchorNode,i.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,t=bh(e.root);if(!t)return!1;let n=oh.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 Jd(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?Jd(e,n):null}(this.view,t)||t;if(!n||this.selectionRange.eq(n))return!1;let i=kh(this.dom,n);return i&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime{let e=this.delayedAndroidKey;if(e){this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=e.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&e.force&&Lh(this.dom,e.key,e.keyCode)}};this.flushingAndroidKey=this.view.win.requestAnimationFrame(e)}this.delayedAndroidKey&&"Enter"!=e||(this.delayedAndroidKey={key:e,keyCode:t,force:this.lastChange{this.delayedFlush=-1,this.flush()}))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}processRecords(){let e=this.pendingRecords();e.length&&(this.queue=[]);let t=-1,n=-1,i=!1;for(let 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&&kh(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 Dp(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=qp(this.view,t);return this.view.state==n&&(t.domChanged||t.newSel&&!Pp(this.view.state.selection,t.newSel.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=Xd(t,e.previousSibling||e.target.previousSibling,-1),i=Xd(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(_u)!=e.state.facet(_u)&&(e.view.contentDOM.editContext=e.state.facet(_u)?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 Xd(e,t,n){for(;t;){let i=$u.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 Jd(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 Sh(s.node,s.offset,r,o)&&([n,i,r,o]=[r,o,n,i]),{anchorNode:n,anchorOffset:i,focusNode:r,focusOffset:o}}class Yd{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&&rthis.to&&(a=r);let c=Bp(e.state.sliceDoc(s,a),n.text,(l?i.from:i.to)-s,l?"end":null);if(!c){let t=Al.single(this.toEditorPos(n.selectionStart),this.toEditorPos(n.selectionEnd));return void(Pp(t,i)||e.dispatch({selection:t,userEvent:"select"}))}let h={from:c.from+s,to:c.toA+s,insert:sl.of(n.text.slice(c.from,c.toB).split("\n"))};if((oh.mac||oh.android)&&h.from==o-1&&/^\. ?$/.test(n.text)&&"off"==e.contentDOM.getAttribute("autocorrect")&&(h={from:s,to:a,insert:sl.of([n.text.replace("."," ")])}),this.pendingContextChange=h,!e.state.readOnly){let t=this.to-this.from+(h.to-h.from+h.insert.length);Np(e,h,Al.single(this.toEditorPos(n.selectionStart,t),this.toEditorPos(n.selectionEnd,t)))}this.pendingContextChange&&(this.revertPending(e.state),this.setSelection(e.state)),h.from=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{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{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=bh(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(rthis.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.to3e4)}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 Qd{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 Rd(e.state||wc.create(e)),e.scrollTo&&e.scrollTo.is(bu)&&(this.viewState.scrollTarget=e.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(Cu).map(e=>new Mu(e));for(let e of this.plugins)e.update(this);this.observer=new Kd(this),this.inputState=new Lp(this),this.inputState.ensureHandlers(this.plugins),this.docView=new up(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.viewState.mustMeasureContent=!0,this.requestMeasure()})}dispatch(...e){let t=1==e.length&&e[0]instanceof lc?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(rd))?(this.inputState.notifiedFocused=o,s=1):o!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=o,a=od(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(wc.phrases)!=this.state.facet(wc.phrases))return this.setState(r);t=ju.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 wu(e.empty?e:Al.cursor(e.head,e.head>e.anchor?-1:1))}for(let e of t.effects)e.is(bu)&&(h=e.value.clip(this.state))}this.viewState.update(t,h),this.bidiCache=tf.update(this.bidiCache,t.changes),t.empty||(this.updatePlugins(t),this.inputState.update(t)),n=this.docView.update(t),this.state.facet(Iu)!=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(Id)!=t.state.facet(Id)&&(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(uu))try{e(t)}catch(e){ku(this.state,e,"update listener")}(a||c)&&Promise.resolve().then(()=>{a&&this.state==a.startState&&this.dispatch(a),c&&!qp(this,c)&&l.force&&Lh(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 Rd(e),this.plugins=e.facet(Cu).map(e=>new Mu(e)),this.pluginMap.clear();for(let e of this.plugins)e.update(this);this.docView.destroy(),this.docView=new up(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(Cu),n=e.state.facet(Cu);if(t!=n){let i=[];for(let r of n){let n=t.indexOf(r);if(n<0)i.push(new Mu(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-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(Ih(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 ku(this.state,e),ef}}),c=ju.create(this,this.state,[]),h=!1;c.flags|=s,t?t.flags|=s:t=c,this.updateState=2,c.empty||(this.updatePlugins(c),this.inputState.update(c),this.updateAttrs(),h=this.docView.update(c),h&&this.docViewUpdate());for(let e=0;e1||e<-1){i+=e,n.scrollTop=i/this.scaleY,o=-1;continue}}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(t&&!t.empty)for(let e of this.state.facet(uu))e(t)}get themeClasses(){return jd+" "+(this.state.facet(Fd)?$d:Vd)+" "+this.state.facet(Id)}updateAttrs(){let e=nf(this,Au,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),t={spellcheck:"false",autocorrect:"off",autocapitalize:"off",writingsuggestions:"false",translate:"no",contenteditable:this.state.facet(_u)?"true":"false",class:"cm-content",style:`${oh.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(t["aria-readonly"]="true"),nf(this,Tu,t);let n=this.observer.ignore(()=>{let n=ch(this.contentDOM,this.contentAttrs,t),i=ch(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(Qd.announce)){t&&(this.announceDOM.textContent=""),t=!1,this.announceDOM.appendChild(document.createElement("div")).textContent=e.value}}mountStyles(){this.styleModules=this.state.facet(Iu);let e=this.state.facet(Qd.cspNonce);Vc.mount(this.root,this.styleModules.concat(Hd).reverse(),e?{nonce:e}:void 0)}readMeasured(){if(2==this.updateState)throw new Error("Reading the editor layout isn't allowed during an update");0==this.updateState&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(e){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),e){if(this.measureRequests.indexOf(e)>-1)return;if(null!=e.key)for(let t=0;tt.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 kp(this,e,wp(this,e,t,n))}moveByGroup(e,t){return kp(this,e,wp(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==gc.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 Al.cursor(r.side(t,i)+e.from,r.forward(!t,i)?1:-1)}moveToLineBoundary(e,t,n=!0){return vp(this,e,t,n)}moveVertically(e,t,n){return kp(this,e,function(e,t,n,i){let r=t.head,o=n?1:-1;if(r==(n?e.state.doc.length:0))return Al.cursor(r,t.assoc);let s,a=t.goalColumn,l=e.contentDOM.getBoundingClientRect(),c=e.coordsAtPos(r,(t.empty?t.assoc:0)||(n?1:-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=Sp(e,{x:l.left+a,y:s+(null!=i?i:e.viewState.heightOracle.textHeight>>1)*o},!1,o);return Al.cursor(u.pos,u.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=Sp(this,e,t);return n&&n.pos}posAndSideAtCoords(e,t=!0){return this.readMeasured(),Sp(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 Th(n,r[Qh.find(r,e-i.from,-1,t)].dir==$h.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(mu)||ethis.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(e))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>Zd)return iu(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||Zh(i.isolates,t=Bu(this,e))))return i.order;t||(t=Bu(this,e));let i=function(e,t,n){if(!e)return[new Qh(0,0,t==zh?1:0)];if(t==Wh&&!n.length&&!Yh.test(e))return iu(e.length);if(n.length)for(;e.length>eu.length;)eu[eu.length]=256;let i=[],r=t==Wh?0:1;return nu(e,r,r,n,0,e.length,i),i}(e.text,n,t);return this.bidiCache.push(new tf(e.from,e.to,n,t,!0,i)),i}get hasFocus(){var e;return(this.dom.ownerDocument.hasFocus()||oh.safari&&(null===(e=this.inputState)||void 0===e?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{Bh(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 bu.of(new wu("number"==typeof e?Al.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 bu.of(new wu(Al.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 Eu.define(()=>({}),{eventHandlers:e})}static domEventObservers(e){return Eu.define(()=>({}),{eventObservers:e})}static theme(e,t){let n=Vc.newName(),i=[Id.of(n),Iu.of(zd(`.${n}`,e))];return t&&t.dark&&i.push(Fd.of(!0)),i}static baseTheme(e){return zl.lowest(Iu.of(zd("."+jd,e,Wd)))}static findFromDOM(e){var t;let n=e.querySelector(".cm-content"),i=n&&$u.get(n)||$u.get(e);return(null===(t=null==i?void 0:i.root)||void 0===t?void 0:t.view)||null}}Qd.styleModule=Iu,Qd.inputHandler=pu,Qd.clipboardInputFilter=fu,Qd.clipboardOutputFilter=gu,Qd.scrollHandler=vu,Qd.focusChangeEffect=du,Qd.perLineTextDirection=mu,Qd.exceptionSink=hu,Qd.updateListener=uu,Qd.editable=_u,Qd.mouseSelectionStyle=cu,Qd.dragMovesSelection=lu,Qd.clickAddsSelectionRange=au,Qd.decorations=Ru,Qd.blockWrappers=Du,Qd.outerDecorations=Ou,Qd.atomicRanges=qu,Qd.bidiIsolatedRanges=Nu,Qd.scrollMargins=Pu,Qd.darkTheme=Fd,Qd.cspNonce=Dl.define({combine:e=>e.length?e[0]:""}),Qd.contentAttributes=Tu,Qd.editorAttributes=Au,Qd.lineWrapping=Qd.contentAttributes.of({class:"cm-lineWrapping"}),Qd.announce=ac.define();const Zd=4096,ef={};class tf{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:$h.LTR;for(let r=Math.max(0,e.length-10);r=0;r--){let t=i[r],o="function"==typeof t?t(e):t;o&&sh(o,n)}return n}class rf extends xc{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}}rf.prototype.elementClass="",rf.prototype.toDOM=void 0,rf.prototype.mapMode=vl.TrackBefore,rf.prototype.startSide=rf.prototype.endSide=-1,rf.prototype.point=!0;const of=1024;let sf=0;class af{constructor(e,t){this.from=e,this.to=t}}class lf{constructor(e={}){this.id=sf++,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=uf.match(e)),t=>{let n=e(t);return void 0===n?null:[this,n]}}}lf.closedBy=new lf({deserialize:e=>e.split(" ")}),lf.openedBy=new lf({deserialize:e=>e.split(" ")}),lf.group=new lf({deserialize:e=>e.split(" ")}),lf.isolate=new lf({deserialize:e=>{if(e&&"rtl"!=e&&"ltr"!=e&&"auto"!=e)throw new RangeError("Invalid value for isolate: "+e);return e||"auto"}}),lf.contextHash=new lf({perNode:!0}),lf.lookAhead=new lf({perNode:!0}),lf.mounted=new lf({perNode:!0});class cf{constructor(e,t,n,i=!1){this.tree=e,this.overlay=t,this.parser=n,this.bracketed=i}static get(e){return e&&e.props&&e.props[lf.mounted.id]}}const hf=Object.create(null);class uf{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):hf,n=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(null==e.name?8:0),i=new uf(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(lf.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(lf.group),i=-1;i<(n?n.length:0);i++){let r=t[i<0?e.name:n[i]];if(r)return r}}}}uf.none=new uf("",Object.create(null),0,8);const pf=new WeakMap,df=new WeakMap;var ff;!function(e){e[e.ExcludeBuffers=1]="ExcludeBuffers",e[e.IncludeAnonymous=2]="IncludeAnonymous",e[e.IgnoreMounts=4]="IgnoreMounts",e[e.IgnoreOverlays=8]="IgnoreOverlays",e[e.EnterBracketed=16]="EnterBracketed"}(ff||(ff={}));class gf{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=cf.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 Af(this.topNode,e)}cursorAt(e,t=0,n=0){let i=pf.get(this)||this.topNode,r=new Af(i);return r.moveTo(e,t),pf.set(this,r._tree),r}get topNode(){return new xf(this,0,0,null)}resolve(e,t=0){let n=wf(pf.get(this)||this.topNode,e,t,!1);return pf.set(this,n),n}resolveInner(e,t=0){let n=wf(df.get(this)||this.topNode,e,t,!0);return df.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 xf?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=cf.get(e.tree);if(o&&o.overlay&&o.overlay[0].from<=t&&o.overlay[o.overlay.length-1].to>=t){let s=new xf(o.tree,o.overlay[0].from+e.from,-1,e);(r||(r=[i])).push(wf(s,t,n,!1))}}return r?Ef(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&ff.IncludeAnonymous)>0;for(let e=this.cursor(o|ff.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:Of(uf.none,this.children,this.positions,0,this.children.length,0,this.length,(e,t,n)=>new gf(this.type,e,t,n,this.propValues),e.makeTree||((e,t,n)=>new gf(uf.none,e,t,n)))}static build(e){return function(e){var t;let{buffer:n,nodeSet:i,maxBufferLength:r=of,reused:o=[],minRepeatType:s=i.types.length}=e,a=Array.isArray(n)?new mf(n,n.length):n,l=i.types,c=0,h=0;function u(e,t,n,v,w,b){let{id:x,start:k,end:_,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(k-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=k-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 yf(t,_-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=_;for(;a.pos>e;)i>=0&&a.id==i&&a.size>=0?(a.end<=l-r&&(f(t,n,k,o,a.end,l,i,C,E),o=t.length,l=a.end),a.next()):b>2500?p(k,e,t,n):u(k,e,t,n,i,b+1);if(i>=0&&o>0&&o-1&&o>0){let e=d(T,E);M=Of(T,t,n,0,t.length,0,_-k,e,e)}else M=g(T,t,n,_-k,C-_,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=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 yf(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 gf){if(!l&&o.type==e&&o.length==r)return o;(s=o.prop(lf.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=[lf.contextHash,o];s=s?[e].concat(s):[e]}if(r>25){let e=[lf.lookAhead,r];s=s?[e].concat(s):[e]}return new gf(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=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&&i4){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 gf(l[e.topID],v.reverse(),w.reverse(),b)}(e)}}gf.empty=new gf(uf.none,[],[],0);class mf{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 mf(this.buffer,this.index)}}class yf{constructor(e,t,n){this.buffer=e,this.length=t,this.set=n}get type(){return uf.none}toString(){let e=[];for(let t=0;t0));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&&nt;case 1:return n<=t&&i>t;case 2:return i>t;case 4:return!0}}function wf(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.to0?s.length:-1;e!=l;e+=t){let l,c=s[e],h=a[e]+o.from;if(r&ff.EnterBracketed&&c instanceof gf&&(l=cf.get(c))&&!l.overlay&&l.bracketed&&n>=h&&n<=h+c.length||vf(i,n,h,h+c.length))if(c instanceof yf){if(r&ff.ExcludeBuffers)continue;let s=c.findChild(0,c.buffer.length,t,n-h,i);if(s>-1)return new Cf(new Sf(o,c,e,h),null,s)}else if(r&ff.IncludeAnonymous||!c.type.isAnonymous||Tf(c)){let s;if(!(r&ff.IgnoreMounts)&&(s=cf.get(c))&&!s.overlay)return new xf(s.tree,h,e,o);let a=new xf(c,h,e,o);return r&ff.IncludeAnonymous||!a.type.isAnonymous?a:a.nextChild(t<0?c.children.length-1:0,t,n,i,r)}}if(r&ff.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&ff.IgnoreOverlays)&&(i=cf.get(this._tree))&&i.overlay){let r=e-this.from,o=n&ff.EnterBracketed&&i.bracketed;for(let{from:e,to:n}of i.overlay)if((t>0||o?e<=r:e=r:n>r))return new xf(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 kf(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 _f(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 Sf{constructor(e,t,n,i){this.parent=e,this.buffer=t,this.index=n,this.start=i}}class Cf extends bf{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 Cf(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&ff.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 Cf(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 Cf(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 Cf(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 gf(this.type,e,t,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}}function Ef(e){if(!e.length)return null;let t=0,n=e[0];for(let i=1;in.from||r.to0){if(this.index-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&ff.IncludeAnonymous||e instanceof yf||!e.type.isAnonymous||Tf(e))return!1}return!0}move(e,t){if(t&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,t=0){for(;(this.from==this.to||(t<1?this.from>=e:this.from>e)||(t>-1?this.to<=e:this.to=0;){for(let 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=0;r--){if(r<0)return _f(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 Tf(e){return e.children.some(e=>e instanceof yf||!e.type.isAnonymous||Tf(e))}const Rf=new WeakMap;function Df(e,t){if(!e.isAnonymous||t instanceof yf||t.type!=e)return 1;let n=Rf.get(t);if(null==n){n=1;for(let i of t.children){if(i.type!=e||!(i instanceof gf)){n=1;break}n+=Df(e,i)}Rf.set(t,n)}return n}function Of(e,t,n,i,r,o,s,a,l){let c=0;for(let n=i;n=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(Of(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 qf{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 qf(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=n)for(;o&&o.from=t.from||h<=t.to||l){let e=Math.max(t.from,a)-l,n=Math.min(t.to,h)-l;t=e>=n?null:new qf(e,n,t.tree,t.offset+l,s>0,!!c)}if(t&&i.push(t),o.to>h)break;o=rnew af(e.from,e.to)):[new af(0,0)]:[new af(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 Bf{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 lf({perNode:!0});let Pf=0;class Lf{constructor(e,t,n,i){this.name=e,this.set=t,this.base=n,this.modified=i,this.id=Pf++}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 Lf&&(t=e),null==t?void 0:t.base)throw new Error("Can not derive from a modified tag");let i=new Lf(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 Ff(e);return e=>e.modified.indexOf(t)>-1?e:Ff.get(e.base||e,e.modified.concat(t).sort((e,t)=>e.id-t.id))}}let If=0;class Ff{constructor(e){this.name=e,this.instances=[],this.id=If++}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 Lf(e.name,i,e,t);for(let e of t)e.instances.push(r);let o=function(e){let t=[[]];for(let n=0;nt.length-e.length)}(t);for(let t of e.set)if(!t.modified.length)for(let e of o)i.push(Ff.get(t,e));return r}}function jf(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 $f(i,r,s>0?n.slice(0,s):null);t[a]=l.sort(t[a])}}return Vf.add(t)}const Vf=new lf({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 $f(r.tags,r.mode,r.context);n?n.next=o:i=o,n=o}return i}});class $f{constructor(e,t,n,i){this.tags=e,this.mode=t,this.context=n,this.next=i}get opaque(){return 0==this.mode}get inherit(){return 1==this.mode}sort(e){return!e||e.depth{let t=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 zf(e,t,n,i=0,r=e.length){let o=new Hf(i,Array.isArray(t)?t:[t],n);o.highlightRange(e.cursor(),i,r,"",o.highlighters),o.flush(r)}$f.empty=new $f([],2,null);class Hf{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(Vf);for(;t&&t.context&&!e.matchContext(t.context);)t=t.next;return t||null}(e)||$f.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(lf.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=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 Uf=Lf.define,Gf=Uf(),Kf=Uf(),Xf=Uf(Kf),Jf=Uf(Kf),Yf=Uf(),Qf=Uf(Yf),Zf=Uf(Yf),eg=Uf(),tg=Uf(eg),ng=Uf(),ig=Uf(),rg=Uf(),og=Uf(rg),sg=Uf(),ag={comment:Gf,lineComment:Uf(Gf),blockComment:Uf(Gf),docComment:Uf(Gf),name:Kf,variableName:Uf(Kf),typeName:Xf,tagName:Uf(Xf),propertyName:Jf,attributeName:Uf(Jf),className:Uf(Kf),labelName:Uf(Kf),namespace:Uf(Kf),macroName:Uf(Kf),literal:Yf,string:Qf,docString:Uf(Qf),character:Uf(Qf),attributeValue:Uf(Qf),number:Zf,integer:Uf(Zf),float:Uf(Zf),bool:Uf(Yf),regexp:Uf(Yf),escape:Uf(Yf),color:Uf(Yf),url:Uf(Yf),keyword:ng,self:Uf(ng),null:Uf(ng),atom:Uf(ng),unit:Uf(ng),modifier:Uf(ng),operatorKeyword:Uf(ng),controlKeyword:Uf(ng),definitionKeyword:Uf(ng),moduleKeyword:Uf(ng),operator:ig,derefOperator:Uf(ig),arithmeticOperator:Uf(ig),logicOperator:Uf(ig),bitwiseOperator:Uf(ig),compareOperator:Uf(ig),updateOperator:Uf(ig),definitionOperator:Uf(ig),typeOperator:Uf(ig),controlOperator:Uf(ig),punctuation:rg,separator:Uf(rg),bracket:og,angleBracket:Uf(og),squareBracket:Uf(og),paren:Uf(og),brace:Uf(og),content:eg,heading:tg,heading1:Uf(tg),heading2:Uf(tg),heading3:Uf(tg),heading4:Uf(tg),heading5:Uf(tg),heading6:Uf(tg),contentSeparator:Uf(eg),list:Uf(eg),quote:Uf(eg),emphasis:Uf(eg),strong:Uf(eg),link:Uf(eg),monospace:Uf(eg),strikethrough:Uf(eg),inserted:Uf(),deleted:Uf(),changed:Uf(),invalid:Uf(),meta:sg,documentMeta:Uf(sg),annotation:Uf(sg),processingInstruction:Uf(sg),definition:Lf.defineModifier("definition"),constant:Lf.defineModifier("constant"),function:Lf.defineModifier("function"),standard:Lf.defineModifier("standard"),local:Lf.defineModifier("local"),special:Lf.defineModifier("special")};for(let e in ag){let t=ag[e];t instanceof Lf&&(t.name=e)}var lg;Wf([{tag:ag.link,class:"tok-link"},{tag:ag.heading,class:"tok-heading"},{tag:ag.emphasis,class:"tok-emphasis"},{tag:ag.strong,class:"tok-strong"},{tag:ag.keyword,class:"tok-keyword"},{tag:ag.atom,class:"tok-atom"},{tag:ag.bool,class:"tok-bool"},{tag:ag.url,class:"tok-url"},{tag:ag.labelName,class:"tok-labelName"},{tag:ag.inserted,class:"tok-inserted"},{tag:ag.deleted,class:"tok-deleted"},{tag:ag.literal,class:"tok-literal"},{tag:ag.string,class:"tok-string"},{tag:ag.number,class:"tok-number"},{tag:[ag.regexp,ag.escape,ag.special(ag.string)],class:"tok-string2"},{tag:ag.variableName,class:"tok-variableName"},{tag:ag.local(ag.variableName),class:"tok-variableName tok-local"},{tag:ag.definition(ag.variableName),class:"tok-variableName tok-definition"},{tag:ag.special(ag.variableName),class:"tok-variableName2"},{tag:ag.definition(ag.propertyName),class:"tok-propertyName tok-definition"},{tag:ag.typeName,class:"tok-typeName"},{tag:ag.namespace,class:"tok-namespace"},{tag:ag.className,class:"tok-className"},{tag:ag.macroName,class:"tok-macroName"},{tag:ag.propertyName,class:"tok-propertyName"},{tag:ag.operator,class:"tok-operator"},{tag:ag.comment,class:"tok-comment"},{tag:ag.meta,class:"tok-meta"},{tag:ag.invalid,class:"tok-invalid"},{tag:ag.punctuation,class:"tok-punctuation"}]);const cg=new lf,hg=new lf;class ug{constructor(e,t,n=[],i=""){this.data=e,this.name=i,wc.prototype.hasOwnProperty("tree")||Object.defineProperty(wc.prototype,"tree",{get(){return dg(this)}}),this.parser=t,this.extension=[kg.of(this),wc.languageData.of((e,t,n)=>{let i=pg(e,t,n),r=i.type.prop(cg);if(!r)return[];let o=e.facet(r),s=i.type.prop(hg);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 pg(e,t,n).type.prop(cg)==this.data}findRegions(e){let t=e.facet(kg);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(cg)==this.data)return void n.push({from:t,to:t+e.length});let r=e.prop(lf.mounted);if(r){if(r.tree.prop(cg)==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=this.cursorPos?this.doc.sliceString(e,t):this.string.slice(e-n,t-n)}}let gg=null;class mg{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 mg(e,t,[],gf.empty,0,n,[],null)}startParse(){return this.parser.startParse(new fg(this.state.doc),this.fragments)}work(e,t){return null!=t&&t>=this.state.doc.length&&(t=void 0),this.tree!=gf.empty&&this.isDone(null!=t?t:this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var n;if("number"==typeof e){let t=Date.now()+e;e=()=>Date.now()>t}for(this.parse||(this.parse=this.startParse()),null!=t&&(null==this.parse.stoppedAt||this.parse.stoppedAt>t)&&t=this.treeLen&&((null==this.parse.stoppedAt||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext(()=>{for(;!(t=this.parse.advance()););}),this.treeLen=e,this.tree=t,this.fragments=this.withoutTempSkipped(qf.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let t=gg;gg=this;try{return e()}finally{gg=t}}withoutTempSkipped(e){for(let t;t=this.tempSkipped.pop();)e=yg(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=qf.applyChanges(n,t),i=gf.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);ne.from&&(this.fragments=yg(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 Nf{createParse(t,n,i){let r=i[0].from,o=i[i.length-1].to;return{parsedPos:r,advance(){let t=gg;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 gf(uf.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 gg}}function yg(e,t,n){return qf.applyChanges(e,[{fromA:t,toA:n,fromB:t,toB:n}])}class vg{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 vg(t)}static init(e){let t=Math.min(3e3,e.doc.length),n=mg.create(e.facet(kg).parser,e,{from:0,to:t});return n.work(20,t)||n.takeTree(),new vg(n)}}ug.state=Il.define({create:vg.init,update(e,t){for(let e of t.effects)if(e.is(ug.setState))return e.value;return t.startState.facet(kg)!=t.state.facet(kg)?vg.init(t.state):e.apply(t)}});let wg=e=>{let t=setTimeout(()=>e(),500);return()=>clearTimeout(t)};"undefined"!=typeof requestIdleCallback&&(wg=e=>{let t=-1,n=setTimeout(()=>{t=requestIdleCallback(e,{timeout:400})},100);return()=>t<0?clearTimeout(n):cancelIdleCallback(t)});const bg="undefined"!=typeof navigator&&(null===(lg=navigator.scheduling)||void 0===lg?void 0:lg.isInputPending)?()=>navigator.scheduling.isInputPending():null,xg=Eu.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(ug.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(ug.state);t.tree==t.context.tree&&t.context.isDone(e.doc.length)||(this.working=wg(this.work))}work(e){this.working=null;let t=Date.now();if(this.chunkEndi+1e3,a=r.context.work(()=>bg&&bg()||Date.now()>o,i+(s?0:1e5));this.chunkBudget-=Date.now()-t,(a||this.chunkBudget<=0)&&(r.context.takeTree(),this.view.dispatch({effects:ug.setState.of(new vg(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=>ku(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()}}}),kg=Dl.define({combine:e=>e.length?e[0]:null,enables:e=>[ug.state,xg,Qd.contentAttributes.compute([e],t=>{let n=t.facet(e);return n&&n.name?{"data-language":n.name}:{}})]});class _g{constructor(e,t){let n;function i(e){let t=Vc.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 ug?e=>e.prop(cg)==o.data:o?e=>e==o:void 0,this.style=Wf(e.map(e=>({tag:e.tag,class:e.class||i(Object.assign({},e,{tag:null}))})),{all:r}).style,this.module=n?new Vc(n):null,this.themeType=t.themeType}static define(e,t){return new _g(e,t||{})}}const Sg=Dl.define(),Cg=Dl.define({combine:e=>e.length?[e[0]]:null});function Eg(e){let t=e.facet(Sg);return t.length?t:e.facet(Cg)}class Mg{constructor(e){this.markCache=Object.create(null),this.tree=dg(e.state),this.decorations=this.buildDeco(e,Eg(e.state)),this.decoratedTo=e.viewport.to}update(e){let t=dg(e.state),n=Eg(e.state),i=n!=Eg(e.startState),{viewport:r}=e.view,o=e.changes.mapPos(this.decoratedTo,1);t.length=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 dh.none;let n=new Mc;for(let{from:i,to:r}of e.visibleRanges)zf(this.tree,t,(e,t,i)=>{n.add(e,t,this.markCache[i]||(this.markCache[i]=dh.mark({class:i})))},i,r);return n.finish()}}const Ag=zl.high(Eu.fromClass(Mg,{decorations:e=>e.decorations})),Tg=Object.create(null),Rg=[uf.none],Dg=[],Og=Object.create(null),qg=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"]])qg[e]=Bg(Tg,t);function Ng(e,t){Dg.indexOf(e)>-1||(Dg.push(e),console.warn(t))}function Bg(e,t){let n=[];for(let i of t.split(" ")){let t=[];for(let n of i.split(".")){let i=e[n]||ag[n];i?"function"==typeof i?t.length?t=t.map(i):Ng(n,`Modifier ${n} used at start of tag`):t.length?Ng(n,`Tag ${n} used as modifier`):t=Array.isArray(i)?i:[i]:Ng(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=Og[r];if(o)return o.id;let s=Og[r]=uf.define({id:Rg.length,name:i,props:[jf({[i]:n})]});return Rg.push(s),s.id}$h.RTL,$h.LTR;const Pg=Dl.define({combine:e=>({sources:e.map(e=>e.source).filter(e=>null!=e),...bc(e.map(e=>e.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:()=>null},{delay:Math.max,markerFilter:Lg,tooltipFilter:Lg,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 Lg(e,t){return e?t?(n,i)=>t(e(n,i),i):e:t}function Ig(e){const t=[];return e.iterate({enter:e=>{const n=e.node;if(!n.type.isError)return;const i=n.parent,r=Fg(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 Fg(e){return e?e.nextSibling||Fg(e.parent):null}var jg={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 Vg=[jg];function $g(e){const{readContent:t,syntaxTree:n,updateContent:i}=e,r=[],o={readContent:t,report:e=>{r.push(e)},updateContent:i},s=Vg.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}const Wg=[{name:"not",type:"function",params:[{name:"negand"}],info:'

Returns the logical negation of the given value.

\n

Function signature

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

Examples

\n
not(true)\n// false\n\nnot(null)\n// null\n
\n'},{name:"get value",type:"function",params:[{name:"context"},{name:"key"}],info:'

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

\n

Function signature

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

Examples

\n
get value({foo: 123}, "foo")\n// 123\n\nget value({a: 1}, "b")\n// null\n
\n'},{name:"get entries",type:"function",params:[{name:"context"}],info:'

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

\n

Function signature

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

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

\n

Examples

\n
get entries({foo: 123})\n// [{key: "foo", value: 123}]\n
\n'},{name:"context put",type:"function",params:[{name:"context"},{name:"keys"},{name:"value"}],info:'

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

\n

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

\n

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

\n

If keys are empty, it returns null.

\n

Function signature

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

Examples

\n
context put({x:1}, ["y"], 2)\n// {x:1, y:2}\n\ncontext put({x:1, y: {z:0}}, ["y", "z"], 2)\n// {x:1, y: {z:2}}\n\ncontext put({x:1}, ["y", "z"], 2)\n// {x:1, y: {z:2}}\n
\n'},{name:"string",type:"function",params:[{name:"from"}],info:'

Returns the given value as a string representation.

\n

Function signature

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

Examples

\n
string(1.1)\n// "1.1"\n\nstring(date("2012-12-25"))\n// "2012-12-25"\n
\n'},{name:"number",type:"function",params:[{name:"from"}],info:'

Parses the given string to a number.

\n

Returns null if the string is not a number.

\n

Function signature

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

Examples

\n
number("1500.5")\n// 1500.5\n
\n'},{name:"number",type:"function",params:[{name:"from"},{name:"grouping separator"}],info:'

Parses the given string to a number using the specified grouping separator.

\n

Returns null if the string is not a number.

\n

Function signature

\n
number(from: string, grouping separator: string): number\n
\n

Examples

\n
number("1,500", ",")\n// 1500\n
\n'},{name:"number",type:"function",params:[{name:"from"},{name:"grouping separator"},{name:"decimal separator"}],info:'

Parses the given string to a number using the specified grouping and decimal separators.

\n

Returns null if the string is not a number.

\n

Function signature

\n
number(from: string, grouping separator: string, decimal separator: string): number\n
\n

Examples

\n
number("1 500.5", " ", ".")\n// 1500.5\n
\n'},{name:"context",type:"function",params:[{name:"entries"}],info:'

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

\n

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

\n

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

\n

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

\n

Function signature

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

Examples

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

Returns a date from the given value.

\n

Returns null if the string is not a valid calendar date. For example, "2024-06-31" is invalid because June has\nonly 30 days.

\n

Function signature

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

Parses the given string into a date.

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

Extracts the date component from the given date and time.

\n

Examples

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

Returns a date from the given components.

\n

Returns null if the components don't represent a valid calendar date. For example, 2024,6,31 is invalid because\nJune has only 30 days.

\n

Function signature

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

Examples

\n
date(2012, 12, 25)\n// date("2012-12-25")\n
\n'},{name:"time",type:"function",params:[{name:"from"}],info:'

Returns a time from the given value.

\n

Function signature

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

Parses the given string into a time.

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

Extracts the time component from the given date and time.

\n

Examples

\n
time("12:00:00")\n// time("12:00:00")\n\ntime(date and time("2012-12-25T11:00:00"))\n// time("11:00:00")\n
\n'},{name:"time",type:"function",params:[{name:"hour"},{name:"minute"},{name:"second"}],info:'

Returns a time from the given components.

\n

Function signature

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

Examples

\n
time(23, 59, 0)\n// time("23:59:00")\n
\n'},{name:"time",type:"function",params:[{name:"hour"},{name:"minute"},{name:"second"},{name:"offset"}],info:'

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

\n

Function signature

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

Examples

\n
time(14, 30, 0, duration("PT1H"))\n// time("14:30:00+01:00")\n
\n'},{name:"date and time",type:"function",params:[{name:"from"}],info:'

Parses the given string into a date and time. The function supports strings in the format YYYY-MM-DDThh:mm:ss with\noptional timezone information either as offset (e.g., +01:00 or Z), as IANA timezone ID (e.g., @Europe/Berlin), or\nas a combination of both (e.g., +01:00[Europe/Berlin]).

\n

Returns null if the string is not a valid calendar date. For example, "2024-06-31T10:00:00" is invalid because\nJune has only 30 days.

\n

Function signature

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

Examples

\n
date and time("2018-04-29T09:30:00")\n// date and time("2018-04-29T09:30:00")\n\ndate and time("2018-04-29T09:30:00+02:00")\n// date and time("2018-04-29T09:30:00+02:00")\n\ndate and time("2018-04-29T09:30:00@Europe/Berlin")\n// date and time("2018-04-29T09:30:00@Europe/Berlin")\n\ndate and time("2018-04-29T09:30:00+02:00[Europe/Berlin]")\n// date and time("2018-04-29T09:30:00@Europe/Berlin")\n
\n'},{name:"date and time",type:"function",params:[{name:"date"},{name:"time"}],info:'

Returns a date and time from the given components.

\n

Function signature

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

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

\n

Examples

\n
date and time(date("2012-12-24"),time("T23:59:00"))\n// date and time("2012-12-24T23:59:00")\n\ndate and time(date and time("2012-12-25T11:00:00"),time("T23:59:00"))\n// date and time("2012-12-25T23:59:00")\n
\n'},{name:"duration",type:"function",params:[{name:"from"}],info:'

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

\n

Function signature

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

Examples

\n
duration("P5D")\n// duration("P5D")\n\nduration("P32Y")\n// duration("P32Y")\n
\n'},{name:"years and months duration",type:"function",params:[{name:"from"},{name:"to"}],info:'

Returns the years and months duration between from and to.

\n

Function signature

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

Examples

\n
years and months duration(date("2011-12-22"), date("2013-08-24"))\n// duration("P1Y8M")\n
\n'},{name:"from json",type:"function",params:[{name:"value"}],info:'

Parses a JSON string into a FEEL value. The function converts JSON primitives, objects, and arrays into their corresponding FEEL types.

\n

Returns null if the string is not a valid JSON value.

\n

Function signature

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

Examples

\n
from json("{\\"a\\": 1, \\"b\\": 2}")\n// {a: 1, b: 2}\n\nfrom json("true")\n// true\n\nfrom json("\\"2023-06-14\\"")\n// "2023-06-14"\n
\n'},{name:"to json",type:"function",params:[{name:"value"}],info:'

Converts a FEEL value into a JSON string. The function converts FEEL primitives, contexts, and lists into their\ncorresponding JSON types. Temporal values are converted to their ISO 8601 string representation, including timezone\ninformation for date and time values (format: 2025-11-24T10:00:00+01:00[Europe/Berlin]).

\n

Function signature

\n
to json(value: Any): string\n
\n

Examples

\n
to json({a: 1, b: 2})\n// "{\\"a\\":1,\\"b\\":2}"\n\nto json(true)\n// "true"\n\nto json(@"2023-06-14")\n// "\\"2023-06-14\\""\n\nto json(@"2025-11-24T10:00:00@Europe/Berlin")\n// "\\"2025-11-24T10:00:00+01:00[Europe/Berlin]\\""\n\nto json(@"P3Y")\n// "\\"P3Y\\""\n
\n'},{name:"list contains",type:"function",params:[{name:"list"},{name:"element"}],info:'

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

\n

Function signature

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

Examples

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

Returns the number of elements of the given list.

\n

Function signature

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

Examples

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

Returns the minimum of the given list.

\n

Function signature

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

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

\n

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

\n

Examples

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

Returns the maximum of the given list.

\n

Function signature

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

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

\n

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

\n

Examples

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

Returns the sum of the given list of numbers.

\n

Function signature

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

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

\n

Examples

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

Returns the product of the given list of numbers.

\n

Function signature

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

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

\n

Examples

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

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

\n

Function signature

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

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

\n

Examples

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

Returns the median element of the given list of numbers.

\n

Function signature

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

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

\n

Examples

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

Returns the standard deviation of the given list of numbers.

\n

Function signature

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

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

\n

Examples

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

Returns the mode of the given list of numbers.

\n

Function signature

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

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

\n

Examples

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

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

\n

If the given list is empty, it returns true.

\n

Function signature

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

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

\n

Examples

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

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

\n'},{name:"any",type:"function",params:[{name:"list"}],info:'

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

\n

If the given list is empty, it returns false.

\n

Function signature

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

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

\n

Examples

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

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

\n'},{name:"sublist",type:"function",params:[{name:"list"},{name:"start position"}],info:'

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

\n

Function signature

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

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

\n

Examples

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

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

\n

Function signature

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

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

\n

Examples

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

Returns the given list with all items appended.

\n

Function signature

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

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

\n

Examples

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

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

\n

Function signature

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

The parameter lists is a sequence of lists.

\n

Examples

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

Returns the given list with newItem inserted at position.

\n

Function signature

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

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

\n

Examples

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

Returns the given list without the element at position.

\n

Function signature

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

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

\n

Examples

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

Returns the given list in revered order.

\n

Function signature

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

Examples

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

Returns an ascending list of positions containing match.

\n

Function signature

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

Examples

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

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

\n

Function signature

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

The parameter list is a sequence of lists.

\n

Examples

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

Returns the given list without duplicates.

\n

Function signature

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

Examples

\n
distinct values([1,2,3,2,1])\n// [1,2,3]\n
\n'},{name:"flatten",type:"function",params:[{name:"list"}],info:'

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

\n

Function signature

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

Examples

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

Returns the given list sorted by the precedes function.

\n

Function signature

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

Examples

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

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

\n

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

\n

Function signature

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

Examples

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

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

\n

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

\n

The resulting string contains a delimiter between each element.

\n

Function signature

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

Examples

\n
string join(["a"], "X")\n// "a"\n\nstring join(["a","b","c"], ", ")\n// "a, b, c"\n
\n'},{name:"decimal",type:"function",params:[{name:"n"},{name:"scale"}],info:'

Rounds the given value at the given scale.

\n

Function signature

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

Examples

\n
decimal(1/3, 2)\n// .33\n\ndecimal(1.5, 0)\n// 2\n
\n'},{name:"floor",type:"function",params:[{name:"n"}],info:'

Rounds the given value with rounding mode flooring.

\n

Function signature

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

Examples

\n
floor(1.5)\n// 1\n\nfloor(-1.5)\n// -2\n
\n'},{name:"floor",type:"function",params:[{name:"n"},{name:"scale"}],info:'

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

\n

Function signature

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

Examples

\n
floor(-1.56, 1)\n// -1.6\n
\n'},{name:"ceiling",type:"function",params:[{name:"n"}],info:'

Rounds the given value with rounding mode ceiling.

\n

Function signature

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

Examples

\n
ceiling(1.5)\n// 2\n\nceiling(-1.5)\n// -1\n
\n'},{name:"ceiling",type:"function",params:[{name:"n"},{name:"scale"}],info:'

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

\n

Function signature

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

Examples

\n
ceiling(-1.56, 1)\n// -1.5\n
\n'},{name:"round up",type:"function",params:[{name:"n"},{name:"scale"}],info:'

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

\n

Function signature

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

Examples

\n
round up(5.5)\n// 6\n\nround up(-5.5)\n// -6\n\nround up(1.121, 2)\n// 1.13\n\nround up(-1.126, 2)\n// -1.13\n
\n'},{name:"round down",type:"function",params:[{name:"n"},{name:"scale"}],info:'

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

\n

Function signature

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

Examples

\n
round down(5.5, 0)\n// 5\n\nround down (-5.5, 0)\n// -5\n\nround down (1.121, 2)\n// 1.12\n\nround down (-1.126, 2)\n// -1.12\n
\n'},{name:"round half up",type:"function",params:[{name:"n"},{name:"scale"}],info:'

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

\n

Function signature

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

Examples

\n
round half up(5.5, 0)\n// 6\n\nround half up(-5.5, 0)\n// -6\n\nround half up(1.121, 2)\n// 1.12\n\nround half up(-1.126, 2)\n// -1.13\n
\n'},{name:"round half down",type:"function",params:[{name:"n"},{name:"scale"}],info:'

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

\n

Function signature

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

Examples

\n
round half down (5.5, 0)\n// 5\n\nround half down (-5.5, 0)\n// -5\n\nround half down (1.121, 2)\n// 1.12\n\nround half down (-1.126, 2)\n// -1.13\n
\n'},{name:"abs",type:"function",params:[{name:"number"}],info:'

Returns the absolute value of the given numeric value.

\n

Function signature

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

Examples

\n
abs(10)\n// 10\n\nabs(-10)\n// 10\n
\n'},{name:"modulo",type:"function",params:[{name:"dividend"},{name:"divisor"}],info:'

Returns the remainder of the division of dividend by divisor.

\n

Function signature

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

Examples

\n
modulo(12, 5)\n// 2\n
\n'},{name:"sqrt",type:"function",params:[{name:"number"}],info:'

Returns the square root of the given value.

\n

Function signature

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

Examples

\n
sqrt(16)\n// 4\n
\n'},{name:"log",type:"function",params:[{name:"number"}],info:'

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

\n

Function signature

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

Examples

\n
log(10)\n// 2.302585092994046\n
\n'},{name:"exp",type:"function",params:[{name:"number"}],info:'

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

\n

Function signature

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

Examples

\n
exp(5)\n// 148.4131591025766\n
\n'},{name:"odd",type:"function",params:[{name:"number"}],info:'

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

\n

Function signature

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

Examples

\n
odd(5)\n// true\n\nodd(2)\n// false\n
\n'},{name:"even",type:"function",params:[{name:"number"}],info:'

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

\n

Function signature

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

Examples

\n
even(5)\n// false\n\neven(2)\n// true\n
\n'},{name:"before",type:"function",params:[{name:"point1"},{name:"point2"}],info:'

Function signature

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

Examples

\n
before(1, 10)\n// true\n\nbefore(10, 1)\n// false\n
\n'},{name:"before",type:"function",params:[{name:"range"},{name:"point"}],info:'

Function signature

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

Examples

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

Function signature

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

Examples

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

Function signature

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

Examples

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

Function signature

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

Examples

\n
after(10, 1)\n// true\n\nafter(1, 10)\n// false\n
\n'},{name:"after",type:"function",params:[{name:"range"},{name:"point"}],info:'

Function signature

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

Examples

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

Function signature

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

Examples

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

Function signature

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

Examples

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

Function signature

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

Examples

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

Function signature

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

Examples

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

Function signature

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

Examples

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

Function signature

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

Examples

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

Function signature

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

Examples

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

Function signature

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

Examples

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

Function signature

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

Examples

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

Function signature

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

Examples

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

Function signature

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

Examples

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

Function signature

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

Examples

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

Function signature

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

Examples

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

Function signature

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

Examples

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

Function signature

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

Examples

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

Function signature

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

Examples

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

Function signature

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

Examples

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

Function signature

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

Examples

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

Function signature

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

Examples

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

Function signature

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

Examples

\n
coincides(5, 5)\n// true\n\ncoincides(3, 4)\n// false\n
\n'},{name:"coincides",type:"function",params:[{name:"range1"},{name:"range2"}],info:'

Function signature

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

Examples

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

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

\n

Function signature

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

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

\n

Examples

\n
substring("foobar", 3)\n// "obar"\n\nsubstring("foobar", -2)\n// "ar"\n
\n'},{name:"substring",type:"function",params:[{name:"string"},{name:"start position"},{name:"length"}],info:'

Returns a substring of the given value, starting at start position with the given length. If length is greater than\nthe remaining characters of the value, it returns all characters from start position until the end.

\n

Function signature

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

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

\n

Examples

\n
substring("foobar", 3, 3)\n// "oba"\n\nsubstring("foobar", -3, 2)\n// "ba"\n\nsubstring("foobar", 3, 10)\n// "obar"\n
\n'},{name:"string length",type:"function",params:[{name:"string"}],info:'

Returns the number of characters in the given value.

\n

Function signature

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

Examples

\n
string length("foo")\n// 3\n
\n'},{name:"upper case",type:"function",params:[{name:"string"}],info:'

Returns the given value with all characters are uppercase.

\n

Function signature

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

Examples

\n
upper case("aBc4")\n// "ABC4"\n
\n'},{name:"lower case",type:"function",params:[{name:"string"}],info:'

Returns the given value with all characters are lowercase.

\n

Function signature

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

Examples

\n
lower case("aBc4")\n// "abc4"\n
\n'},{name:"substring before",type:"function",params:[{name:"string"},{name:"match"}],info:'

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

\n

Function signature

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

Examples

\n
substring before("foobar", "bar")\n// "foo"\n
\n'},{name:"substring after",type:"function",params:[{name:"string"},{name:"match"}],info:'

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

\n

Function signature

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

Examples

\n
substring after("foobar", "ob")\n// "ar"\n
\n'},{name:"contains",type:"function",params:[{name:"string"},{name:"match"}],info:'

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

\n

Function signature

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

Examples

\n
contains("foobar", "of")\n// false\n
\n'},{name:"starts with",type:"function",params:[{name:"string"},{name:"match"}],info:'

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

\n

Function signature

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

Examples

\n
starts with("foobar", "fo")\n// true\n
\n'},{name:"ends with",type:"function",params:[{name:"string"},{name:"match"}],info:'

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

\n

Function signature

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

Examples

\n
ends with("foobar", "r")\n// true\n
\n'},{name:"matches",type:"function",params:[{name:"input"},{name:"pattern"}],info:'

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

\n

Function signature

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

The pattern is a string that contains a regular expression.

\n

Examples

\n
matches("foobar", "^fo*bar")\n// true\n
\n'},{name:"matches",type:"function",params:[{name:"input"},{name:"pattern"},{name:"flags"}],info:'

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

\n

Function signature

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

The pattern is a string that contains a regular expression.

\n

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

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

Examples

\n
matches("FooBar", "foo", "i")\n// true\n
\n'},{name:"replace",type:"function",params:[{name:"input"},{name:"pattern"},{name:"replacement"}],info:'

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

\n

Function signature

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

The pattern is a string that contains a regular expression.

\n

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

\n

Examples

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

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

\n

Function signature

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

The pattern is a string that contains a regular expression.

\n

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

\n

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

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

Examples

\n
replace("How do you feel?", "Feel", "FEEL", "i")\n// "How do you FEEL?"\n
\n'},{name:"split",type:"function",params:[{name:"string"},{name:"delimiter"}],info:'

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

\n

Function signature

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

The delimiter is a string that contains a regular expression.

\n

Examples

\n
split("John Doe", "\\s" )\n// ["John", "Doe"]\n\nsplit("a;b;c;;", ";")\n// ["a", "b", "c", "", ""]\n
\n'},{name:"now",type:"function",params:[],info:'

Returns the current date and time including the timezone.

\n

Function signature

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

Examples

\n
now()\n// date and time("2020-07-31T14:27:30@Europe/Berlin")\n
\n'},{name:"today",type:"function",params:[],info:'

Returns the current date.

\n

Function signature

\n
today(): date\n
\n

Examples

\n
today()\n// date("2020-07-31")\n
\n'},{name:"day of week",type:"function",params:[{name:"date"}],info:'

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

\n

Function signature

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

Examples

\n
day of week(date("2019-09-17"))\n// "Tuesday"\n\nday of week(date and time("2019-09-17T12:00:00"))\n// "Tuesday"\n
\n'},{name:"day of year",type:"function",params:[{name:"date"}],info:'

Returns the Gregorian number of the day within the year.

\n

Function signature

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

Examples

\n
day of year(date("2019-09-17"))\n// 260\n\nday of year(date and time("2019-09-17T12:00:00"))\n// 260\n
\n'},{name:"week of year",type:"function",params:[{name:"date"}],info:'

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

\n

Function signature

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

Examples

\n
week of year(date("2019-09-17"))\n// 38\n\nweek of year(date and time("2019-09-17T12:00:00"))\n// 38\n
\n'},{name:"month of year",type:"function",params:[{name:"date"}],info:'

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

\n

Function signature

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

Examples

\n
month of year(date("2019-09-17"))\n// "September"\n\nmonth of year(date and time("2019-09-17T12:00:00"))\n// "September"\n
\n'},{name:"abs",type:"function",params:[{name:"n"}],info:'

Returns the absolute value of a given duration.

\n

Function signature

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

Examples

\n
abs(duration("-PT5H"))\n// "duration("PT5H")"\n\nabs(duration("PT5H"))\n// "duration("PT5H")"\n\nabs(duration("-P2M"))\n// duration("P2M")\n
\n'},{name:"is defined",type:"function",params:[{name:"value"}],info:'

Camunda Extension

\n

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

\n

Function signature

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

Examples

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

:::caution Breaking change

\n

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

\n

:::

\n'},{name:"get or else",type:"function",params:[{name:"value"},{name:"default"}],info:'

Camunda Extension

\n

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

\n

Function signature

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

Examples

\n
get or else("this", "default")\n// "this"\n\nget or else(null, "default")\n// "default"\n\nget or else(null, null)\n// null\n
\n'},{name:"assert",type:"function",params:[{name:"value"},{name:"condition"}],info:'

Camunda Extension

\n

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

\n

Function signature

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

Examples

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

Camunda Extension

\n

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

\n

Function signature

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

Examples

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

Camunda Extension

\n

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

\n

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

\n

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

\n

Function signature

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

Examples

\n
get value({x:1, y: {z:0}}, ["y", "z"])\n// 0\n\nget value({x: {y: {z:0}}}, ["x", "y"])\n// {z:0}\n\nget value({a: {b: 3}}, ["b"])\n// null\n
\n'},{name:"context put",type:"function",params:[{name:"context"},{name:"key"},{name:"value"}],info:'

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

\n

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

\n

Function signature

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

Examples

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

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

\n'},{name:"context merge",type:"function",params:[{name:"contexts"}],info:'

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

\n

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

\n

Function signature

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

Examples

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

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

\n'},{name:"date and time",type:"function",params:[{name:"date"},{name:"timezone"}],info:'

Camunda Extension

\n

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

\n

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

\n

Function signature

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

Examples

\n
date and time(@"2020-07-31T14:27:30@Europe/Berlin", "America/Los_Angeles")\n// date and time("2020-07-31T05:27:30@America/Los_Angeles")\n\ndate and time(@"2020-07-31T14:27:30", "Z")\n// date and time("2020-07-31T12:27:30Z")\n
\n'},{name:"duplicate values",type:"function",params:[{name:"list"}],info:'

Camunda Extension

\n

Returns all duplicate values of the given list.

\n

Function signature

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

Examples

\n
duplicate values([1,2,3,2,1])\n// [1,2]\n
\n'},{name:"string join",type:"function",params:[{name:"list"},{name:"delimiter"},{name:"prefix"},{name:"suffix"}],info:'

Camunda Extension

\n

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

\n

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

\n

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

\n

Function signature

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

Examples

\n
string join(["a","b","c"], ", ", "[", "]")\n// "[a, b, c]"\n
\n'},{name:"is empty",type:"function",params:[{name:"list"}],info:'

Camunda Extension

\n

Returns true if the given list is empty. Otherwise, returns false.

\n

Function signature

\n
is empty(list: list): boolean\n
\n

Examples

\n
is empty([])\n// true\n\nis empty([1,2,3])\n// false\n
\n'},{name:"partition",type:"function",params:[{name:"list"},{name:"size"}],info:'

Camunda Extension

\n

Returns consecutive sublists of a list, each of the same size (the final list may be smaller).

\n

If size is less than 0, it returns null.

\n

Function signature

\n
partition(list: list, size: number): list\n
\n

Examples

\n
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
\n'},{name:"fromAi",type:"function",params:[{name:"value"}],info:'

Camunda Extension

\n

Returns the unmodified value parameter.

\n
    \n
  • The purpose of this function is solely to tag the value as being generated by an AI integration.
  • \n
  • The actual handling is not performed by the FEEL engine, but by a custom integration such as a connector or a job worker.
  • \n
\n

The main use case of this function is for tool definitions used by the AI Agent connector.

\n

See the following function overloads for additional function parameters.

\n

Function signature

\n
fromAi(value: Any): Any\n
\n

Examples

\n
fromAi(toolCall.searchQuery)\n// toolCall.searchQuery contents\n\nfromAi(toolCall.userId)\n// toolCall.userId contents\n
\n'},{name:"fromAi",type:"function",params:[{name:"value"},{name:"description"}],info:'

Camunda Extension

\n

Returns the unmodified value parameter.

\n

In addition to the previous overload, it also accepts an optional description parameter to provide a textual description of the value. The description must be null or a string constant.

\n

Function signature

\n
fromAi(value: Any, description: string): Any\n
\n

Examples

\n
fromAi(toolCall.searchQuery, "The search query used to find the best match.")\n// toolCall.searchQuery contents\n\nfromAi(toolCall.searchQuery, null)\n// toolCall.searchQuery contents\n
\n'},{name:"fromAi",type:"function",params:[{name:"value"},{name:"description"},{name:"type"}],info:'

Camunda Extension

\n

Returns the unmodified value parameter.

\n

In addition to the previous overload, it also accepts an optional type parameter to provide type information about the value. The type must be null or a string constant.

\n

Function signature

\n
fromAi(value: Any, description: string, type: string): Any\n
\n

Examples

\n
fromAi(toolCall.searchQuery, "The search query used to find the best match.", "string")\n// toolCall.searchQuery contents\n\nfromAi(toolCall.userId, "The user's ID", "number")\n// toolCall.userId contents\n\nfromAi(toolCall.userId, null, "number")\n// toolCall.userId contents\n\nfromAi(value: toolCall.userId, type: "number")\n// toolCall.userId contents\n
\n'},{name:"fromAi",type:"function",params:[{name:"value"},{name:"description"},{name:"type"},{name:"schema"}],info:'

Camunda Extension

\n

Returns the unmodified value parameter.

\n

In addition to the previous overload, it also accepts an optional schema parameter to provide a (partial) JSON schema for the value.

\n
    \n
  • The schema must be null or a context (map) containing only constant values. For example, function calls within the schema are not supported.
  • \n
  • The schema is not validated by the FEEL engine but might be by a custom integration consuming the information.
  • \n
  • From the engine side it is possible to specify both a type and a schema, and it depends on the integration as to which value takes precedence. The AI Agent connector will override any type specified in the schema if the type parameter is also provided.
  • \n
\n

Function signature

\n
fromAi(value: Any, description: string, type: string, schema: context): Any\n
\n

Examples

\n
fromAi(toolCall.documentType, "The document type to provide", "string", {\n  enum: ["invoice", "receipt", "contract"]\n})\n// toolCall.documentType contents\n\nfromAi(value: toolCall.documentType, description: "The document type to provide", schema: {\n  type: "string",\n  enum: ["invoice", "receipt", "contract"]\n})\n// toolCall.documentType contents\n\nfromAi(toolCall.tags, "Tags to apply to the blog post", "array", {\n  items: {\n    type: "string"\n  }\n})\n// toolCall.tags contents\n
\n'},{name:"fromAi",type:"function",params:[{name:"value"},{name:"description"},{name:"type"},{name:"schema"},{name:"options"}],info:'

Camunda Extension

\n

Returns the unmodified value parameter.

\n

In addition to the previous overload, it also accepts an optional options parameter to provide additional options for the integration handling the value definition.

\n
    \n
  • The options parameter must be null or a context (map) containing only constant values. For example, function calls within options are not supported.
  • \n
\n

Function signature

\n
fromAi(value: Any, description: string, type: string, schema: context, options: context): Any\n
\n

Examples

\n
fromAi(toolCall.documentType, "The document type to provide", "string", null, {\n  required: false\n})\n// toolCall.documentType contents\n\nfromAi(value: toolCall.documentType, options: {\n  required: false\n})\n// toolCall.documentType contents\n
\n'},{name:"random number",type:"function",params:[],info:'

Camunda Extension

\n

Returns a random number between 0 and 1.

\n

Function signature

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

Examples

\n
random number()\n// 0.9701618132579795\n
\n'},{name:"extract",type:"function",params:[{name:"string"},{name:"pattern"}],info:'

Camunda Extension

\n

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

\n

Function signature

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

The pattern is a string that contains a regular expression.

\n

Examples

\n
extract("references are 1234, 1256, 1378", "12[0-9]*")\n// ["1234","1256"]\n
\n'},{name:"trim",type:"function",params:[{name:"string"}],info:'

Camunda Extension

\n

Returns the given string without leading and trailing spaces.

\n

Function signature

\n
trim(string: string): string\n
\n

Examples

\n
trim("  hello world  ")\n// "hello world"\n\ntrim("hello   world ")\n// "hello   world"\n
\n'},{name:"uuid",type:"function",params:[],info:'

Camunda Extension

\n

Returns a UUID (Universally Unique Identifier) with 36 characters.

\n

Function signature

\n
uuid(): string\n
\n

Examples

\n
uuid()\n// "7793aab1-d761-4d38-916b-b7270e309894"\n
\n'},{name:"to base64",type:"function",params:[{name:"value"}],info:'

Camunda Extension

\n

Returns the given string encoded in Base64 format.

\n

Function signature

\n
to base64(value: string): string\n
\n

Examples

\n
to base64("FEEL")\n// "RkVFTA=="\n
\n'},{name:"is blank",type:"function",params:[{name:"string"}],info:'

Camunda Extension

\n

Returns true if the given string is blank (empty or contains only whitespaces).

\n

Function signature

\n
is blank(string: string): boolean\n
\n

Examples

\n
is blank("")\n// true\n\nis blank(" ")\n// true\n\nis blank("hello world")\n// false\n
\n'},{name:"last day of month",type:"function",params:[{name:"date"}],info:'

Camunda Extension

\n

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

\n

Function signature

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

Examples

\n
last day of month(date("2022-10-01"))\n// date("2022-10-31"))\n\nlast day of month(date and time("2022-10-16T12:00:00"))\n// date("2022-10-31"))\n
\n'}];!function(e,t={}){Pg.of({source:e,config:t})}(e=>{if(0===e.state.doc.length)return[];const t=dg(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}})},[...Ig(i.syntaxTree),...$g(i)]);var i;return n.map(e=>({...e,source:e.type}))}),Qd.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}}),Qd.baseTheme({"& .variableName":{color:"#10f"},"& .number":{color:"#164"},"& .string":{color:"#a11"},"& .bool":{color:"#219"},"& .function":{color:"#aa3731",fontWeight:"bold"},"& .control":{color:"#708"}}),function(e){let t,n=[Ag];e instanceof _g&&(e.module&&n.push(Qd.styleModule.of(e.module)),t=e.themeType),t?n.push(Sg.computeN([Qd.darkTheme],n=>n.facet(Qd.darkTheme)==("dark"==t)?[e]:[])):n.push(Sg.of(e))}(_g.define([{tag:ag.variableName,class:"variableName"},{tag:ag.name,class:"variableName"},{tag:ag.number,class:"number"},{tag:ag.string,class:"string"},{tag:ag.bool,class:"bool"},{tag:ag.function(ag.variableName),class:"function"},{tag:ag.function(ag.special(ag.variableName)),class:"function"},{tag:ag.controlKeyword,class:"control"},{tag:ag.operatorKeyword,class:"control"}])),Dl.define(),Dl.define(),Dl.define(),Dl.define(),Wg.map(e=>({...e,info:()=>$e(e.info)}));(class extends xa{constructor(e){super(),this._modeling=e}setText(e,t){this._modeling.updateProperties(e,{text:t})}}).$inject=["modeling"];function zg(e){e.stopPropagation()}(class extends xr{constructor(e,t){super(e,t),Zo(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();k(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
');this.renderer.getContainer().appendChild(this._portalEl),this._portalEl.addEventListener("mousedown",zg)}removePortalEl(){this._portalEl&&(this._portalEl.removeEventListener("mousedown",zg),rt(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 si(1,"div","options",e.map(e=>si(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 si(1,"div",[e||"","dms-input-select"].join(" "),[r?si(1,"div","dms-input",c,0,{"aria-label":t,tabIndex:"0",onKeyDown:this.onKeyDown},null,e=>this.inputNode=e):si(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),si(1,"span",["dms-input-select-icon",s?"dmn-icon-up":"dmn-icon-down"].join(" ")),s&&(h=this.renderOptions(i,l),u=this._portalEl,si(1024,u,null,h,0,null,Hn(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 at{_getViewProviders(){return[{id:"drd",constructor:qo,opens(e){return Bn(e,"dmn:Definitions")&&((t=e).dmnDI&&t.dmnDI.diagrams&&t.dmnDI.diagrams[0]);var t}},{id:"decisionTable",constructor:Hs,opens:e=>Bn(e,"dmn:Decision")&&Bn(e.decisionLogic,"dmn:DecisionTable")},{id:"literalExpression",constructor:da,opens:e=>Bn(e,"dmn:Decision")&&Bn(e.decisionLogic,"dmn:LiteralExpression")},{id:"boxedExpression",constructor:Va,opens:e=>Bn(e,"dmn:BusinessKnowledgeModel")&&Ln(e)}]}}});