@nowline/embed 0.9.0 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/meta.json +31 -21
- package/dist/nowline.esm.js +216 -58
- package/dist/nowline.esm.js.map +3 -3
- package/dist/nowline.min.js +56 -56
- package/dist/nowline.min.js.map +3 -3
- package/package.json +6 -6
package/dist/nowline.min.js
CHANGED
|
@@ -1,67 +1,67 @@
|
|
|
1
|
-
/*! @nowline/embed 0.
|
|
2
|
-
"use strict";var nowline=(()=>{var JN=Object.create;var Bs=Object.defineProperty;var QN=Object.getOwnPropertyDescriptor;var eL=Object.getOwnPropertyNames;var tL=Object.getPrototypeOf,nL=Object.prototype.hasOwnProperty;var rL=(e,t,n)=>t in e?Bs(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var iL=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(r){throw n=[r],r}};var Ws=(e,t)=>()=>{try{return t||e((t={exports:{}}).exports,t),t.exports}catch(n){throw t=0,n}},Wp=(e,t)=>{for(var n in t)Bs(e,n,{get:t[n],enumerable:!0})},dE=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of eL(t))!nL.call(e,i)&&i!==n&&Bs(e,i,{get:()=>t[i],enumerable:!(r=QN(t,i))||r.enumerable});return e};var Xp=(e,t,n)=>(n=e!=null?JN(tL(e)):{},dE(t||!e||!e.__esModule?Bs(n,"default",{value:e,enumerable:!0}):n,e)),oL=e=>dE(Bs({},"__esModule",{value:!0}),e);var M=(e,t,n)=>rL(e,typeof t!="symbol"?t+"":t,n);var pm=Ws(dm=>{"use strict";Object.defineProperty(dm,"__esModule",{value:!0});var um;function fm(){if(um===void 0)throw new Error("No runtime abstraction layer installed");return um}(function(e){function t(n){if(n===void 0)throw new Error("No runtime abstraction layer provided");um=n}e.install=t})(fm||(fm={}));dm.default=fm});var hm=Ws($n=>{"use strict";Object.defineProperty($n,"__esModule",{value:!0});$n.boolean=lM;$n.string=$v;$n.number=cM;$n.error=uM;$n.func=fM;$n.array=Dv;$n.stringArray=dM;function lM(e){return e===!0||e===!1}function $v(e){return typeof e=="string"||e instanceof String}function cM(e){return typeof e=="number"||e instanceof Number}function uM(e){return e instanceof Error}function fM(e){return typeof e=="function"}function Dv(e){return Array.isArray(e)}function dM(e){return Dv(e)&&e.every(t=>$v(t))}});var ym=Ws(Ar=>{"use strict";var pM=Ar&&Ar.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Ar,"__esModule",{value:!0});Ar.Emitter=Ar.Event=void 0;var hM=pM(pm()),Mv;(function(e){let t={dispose(){}};e.None=function(){return t}})(Mv||(Ar.Event=Mv={}));var mm=class{constructor(){M(this,"_callbacks");M(this,"_contexts")}add(t,n=null,r){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(t),this._contexts.push(n),Array.isArray(r)&&r.push({dispose:()=>this.remove(t,n)})}remove(t,n=null){if(!this._callbacks)return;let r=!1;for(let i=0,o=this._callbacks.length;i<o;i++)if(this._callbacks[i]===t)if(this._contexts[i]===n){this._callbacks.splice(i,1),this._contexts.splice(i,1);return}else r=!0;if(r)throw new Error("When adding a listener with a context, you should remove it with the same context")}invoke(...t){if(!this._callbacks)return[];let n=[],r=this._callbacks.slice(0),i=this._contexts.slice(0);for(let o=0,s=r.length;o<s;o++)try{n.push(r[o].apply(i[o],t))}catch(a){(0,hM.default)().console.error(a)}return n}isEmpty(){return!this._callbacks||this._callbacks.length===0}dispose(){this._callbacks=void 0,this._contexts=void 0}},Bu=class Bu{constructor(t){M(this,"_options");M(this,"_event");M(this,"_callbacks");this._options=t}get event(){return this._event||(this._event=(t,n,r)=>{this._callbacks||(this._callbacks=new mm),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(t,n);let i={dispose:()=>{this._callbacks&&(this._callbacks.remove(t,n),i.dispose=Bu._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))}};return Array.isArray(r)&&r.push(i),i}),this._event}fire(t){this._callbacks&&this._callbacks.invoke.call(this._callbacks,t)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}};M(Bu,"_noop",function(){});var gm=Bu;Ar.Emitter=gm});var Fv=Ws(wt=>{"use strict";var mM=wt&&wt.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),gM=wt&&wt.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),yM=wt&&wt.__importStar||(function(){var e=function(t){return e=Object.getOwnPropertyNames||function(n){var r=[];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(r[r.length]=i);return r},e(t)};return function(t){if(t&&t.__esModule)return t;var n={};if(t!=null)for(var r=e(t),i=0;i<r.length;i++)r[i]!=="default"&&mM(n,t,r[i]);return gM(n,t),n}})(),xM=wt&&wt.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(wt,"__esModule",{value:!0});wt.CancellationTokenSource=wt.CancellationToken=void 0;var EM=xM(pm()),wM=yM(hm()),xm=ym(),Wu;(function(e){e.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:xm.Event.None}),e.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:xm.Event.None});function t(n){let r=n;return r&&(r===e.None||r===e.Cancelled||wM.boolean(r.isCancellationRequested)&&!!r.onCancellationRequested)}e.is=t})(Wu||(wt.CancellationToken=Wu={}));var TM=Object.freeze(function(e,t){let n=(0,EM.default)().timer.setTimeout(e.bind(t),0);return{dispose(){n.dispose()}}}),Xu=class{constructor(){M(this,"_isCancelled",!1);M(this,"_emitter")}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?TM:(this._emitter||(this._emitter=new xm.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}},Em=class{constructor(){M(this,"_token")}get token(){return this._token||(this._token=new Xu),this._token}cancel(){this._token?this._token.cancel():this._token=Wu.Cancelled}dispose(){this._token?this._token instanceof Xu&&this._token.dispose():this._token=Wu.None}};wt.CancellationTokenSource=Em});var Wv=Ws(te=>{"use strict";var _M=te&&te.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),vM=te&&te.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),AM=te&&te.__importStar||(function(){var e=function(t){return e=Object.getOwnPropertyNames||function(n){var r=[];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(r[r.length]=i);return r},e(t)};return function(t){if(t&&t.__esModule)return t;var n={};if(t!=null)for(var r=e(t),i=0;i<r.length;i++)r[i]!=="default"&&_M(n,t,r[i]);return vM(n,t),n}})();Object.defineProperty(te,"__esModule",{value:!0});te.Message=te.NotificationType9=te.NotificationType8=te.NotificationType7=te.NotificationType6=te.NotificationType5=te.NotificationType4=te.NotificationType3=te.NotificationType2=te.NotificationType1=te.NotificationType0=te.NotificationType=te.RequestType9=te.RequestType8=te.RequestType7=te.RequestType6=te.RequestType5=te.RequestType4=te.RequestType3=te.RequestType2=te.RequestType1=te.RequestType=te.RequestType0=te.AbstractMessageSignature=te.ParameterStructures=te.ResponseError=te.ErrorCodes=void 0;var pi=AM(hm()),wm;(function(e){e.ParseError=-32700,e.InvalidRequest=-32600,e.MethodNotFound=-32601,e.InvalidParams=-32602,e.InternalError=-32603,e.jsonrpcReservedErrorRangeStart=-32099,e.serverErrorStart=-32099,e.MessageWriteError=-32099,e.MessageReadError=-32098,e.PendingResponseRejected=-32097,e.ConnectionInactive=-32096,e.ServerNotInitialized=-32002,e.UnknownErrorCode=-32001,e.jsonrpcReservedErrorRangeEnd=-32e3,e.serverErrorEnd=-32e3})(wm||(te.ErrorCodes=wm={}));var Tm=class e extends Error{constructor(n,r,i){super(r);M(this,"code");M(this,"data");this.code=pi.number(n)?n:wm.UnknownErrorCode,this.data=i,Object.setPrototypeOf(this,e.prototype)}toJson(){let n={code:this.code,message:this.message};return this.data!==void 0&&(n.data=this.data),n}};te.ResponseError=Tm;var qt=class qt{constructor(t){M(this,"kind");this.kind=t}static is(t){return t===qt.auto||t===qt.byName||t===qt.byPosition}toString(){return this.kind}};M(qt,"auto",new qt("auto")),M(qt,"byPosition",new qt("byPosition")),M(qt,"byName",new qt("byName"));var kr=qt;te.ParameterStructures=kr;var Pe=class{constructor(t,n){M(this,"method");M(this,"numberOfParams");this.method=t,this.numberOfParams=n}get parameterStructures(){return kr.auto}};te.AbstractMessageSignature=Pe;var _m=class extends Pe{constructor(n){super(n,0);M(this,"_")}};te.RequestType0=_m;var vm=class extends Pe{constructor(n,r=kr.auto){super(n,1);M(this,"_parameterStructures");M(this,"_");this._parameterStructures=r}get parameterStructures(){return this._parameterStructures}};te.RequestType=vm;var Am=class extends Pe{constructor(n,r=kr.auto){super(n,1);M(this,"_parameterStructures");M(this,"_");this._parameterStructures=r}get parameterStructures(){return this._parameterStructures}};te.RequestType1=Am;var km=class extends Pe{constructor(n){super(n,2);M(this,"_")}};te.RequestType2=km;var Im=class extends Pe{constructor(n){super(n,3);M(this,"_")}};te.RequestType3=Im;var Rm=class extends Pe{constructor(n){super(n,4);M(this,"_")}};te.RequestType4=Rm;var Sm=class extends Pe{constructor(n){super(n,5);M(this,"_")}};te.RequestType5=Sm;var bm=class extends Pe{constructor(n){super(n,6);M(this,"_")}};te.RequestType6=bm;var Nm=class extends Pe{constructor(n){super(n,7);M(this,"_")}};te.RequestType7=Nm;var Lm=class extends Pe{constructor(n){super(n,8);M(this,"_")}};te.RequestType8=Lm;var Om=class extends Pe{constructor(n){super(n,9);M(this,"_")}};te.RequestType9=Om;var Pm=class extends Pe{constructor(n,r=kr.auto){super(n,1);M(this,"_parameterStructures");M(this,"_");this._parameterStructures=r}get parameterStructures(){return this._parameterStructures}};te.NotificationType=Pm;var Cm=class extends Pe{constructor(n){super(n,0);M(this,"_")}};te.NotificationType0=Cm;var $m=class extends Pe{constructor(n,r=kr.auto){super(n,1);M(this,"_parameterStructures");M(this,"_");this._parameterStructures=r}get parameterStructures(){return this._parameterStructures}};te.NotificationType1=$m;var Dm=class extends Pe{constructor(n){super(n,2);M(this,"_")}};te.NotificationType2=Dm;var Mm=class extends Pe{constructor(n){super(n,3);M(this,"_")}};te.NotificationType3=Mm;var Fm=class extends Pe{constructor(n){super(n,4);M(this,"_")}};te.NotificationType4=Fm;var Bm=class extends Pe{constructor(n){super(n,5);M(this,"_")}};te.NotificationType5=Bm;var Wm=class extends Pe{constructor(n){super(n,6);M(this,"_")}};te.NotificationType6=Wm;var Xm=class extends Pe{constructor(n){super(n,7);M(this,"_")}};te.NotificationType7=Xm;var Um=class extends Pe{constructor(n){super(n,8);M(this,"_")}};te.NotificationType8=Um;var Gm=class extends Pe{constructor(n){super(n,9);M(this,"_")}};te.NotificationType9=Gm;var Bv;(function(e){function t(i){let o=i;return o&&pi.string(o.method)&&(pi.string(o.id)||pi.number(o.id))}e.isRequest=t;function n(i){let o=i;return o&&pi.string(o.method)&&i.id===void 0}e.isNotification=n;function r(i){let o=i;return o&&(o.result!==void 0||!!o.error)&&(pi.string(o.id)||pi.number(o.id)||o.id===null)}e.isResponse=r})(Bv||(te.Message=Bv={}))});var kI={};Wp(kI,{nodeReadFile:()=>x2});async function x2(){throw new Error("nowline: filesystem readers are unavailable in the browser embed")}var II=iL(()=>{});var WU={};Wp(WU,{EmbedRenderError:()=>Vl,__resetForTests:()=>BU,init:()=>lE,initialize:()=>$U,parse:()=>MU,render:()=>DU,run:()=>FU,sha:()=>PU,version:()=>OU});function Ue(e){return typeof e=="object"&&e!==null&&typeof e.$type=="string"}function it(e){return typeof e=="object"&&e!==null&&typeof e.$refText=="string"&&"ref"in e}function Dt(e){return typeof e=="object"&&e!==null&&typeof e.$refText=="string"&&"items"in e}function pE(e){return typeof e=="object"&&e!==null&&typeof e.name=="string"&&typeof e.type=="string"&&typeof e.path=="string"}function Ui(e){return typeof e=="object"&&e!==null&&typeof e.info=="object"&&typeof e.message=="string"}var Xi=class{constructor(){this.subtypes={},this.allSubtypes={}}getAllTypes(){return Object.keys(this.types)}getReferenceType(t){let n=this.types[t.container.$type];if(!n)throw new Error(`Type ${t.container.$type||"undefined"} not found.`);let r=n.properties[t.property]?.referenceType;if(!r)throw new Error(`Property ${t.property||"undefined"} of type ${t.container.$type} is not a reference.`);return r}getTypeMetaData(t){let n=this.types[t];return n||{name:t,properties:{},superTypes:[]}}isInstance(t,n){return Ue(t)&&this.isSubtype(t.$type,n)}isSubtype(t,n){if(t===n)return!0;let r=this.subtypes[t];r||(r=this.subtypes[t]={});let i=r[n];if(i!==void 0)return i;{let o=this.types[t],s=o?o.superTypes.some(a=>this.isSubtype(a,n)):!1;return r[n]=s,s}}getAllSubTypes(t){let n=this.allSubtypes[t];if(n)return n;{let r=this.getAllTypes(),i=[];for(let o of r)this.isSubtype(o,t)&&i.push(o);return this.allSubtypes[t]=i,i}}isComplete(t){let n=this.getTypeMetaData(t.$type);for(let r of Object.keys(n.properties)){let i=n.properties[r];if(i.optional)continue;let o=t[i.name];if(o==null)return!1}return!0}};function tr(e){return typeof e=="object"&&e!==null&&Array.isArray(e.content)}function ec(e){return typeof e=="object"&&e!==null&&typeof e.tokenType=="object"}function tc(e){return tr(e)&&typeof e.fullText=="string"}var Ht=class e{constructor(t,n){this.startFn=t,this.nextFn=n}iterator(){let t={state:this.startFn(),next:()=>this.nextFn(t.state),[Symbol.iterator]:()=>t};return t}[Symbol.iterator](){return this.iterator()}isEmpty(){return!!this.iterator().next().done}count(){let t=this.iterator(),n=0,r=t.next();for(;!r.done;)n++,r=t.next();return n}toArray(){let t=[],n=this.iterator(),r;do r=n.next(),r.value!==void 0&&t.push(r.value);while(!r.done);return t}toSet(){return new Set(this)}toMap(t,n){let r=this.map(i=>[t?t(i):i,n?n(i):i]);return new Map(r)}toString(){return this.join()}concat(t){return new e(()=>({first:this.startFn(),firstDone:!1,iterator:t[Symbol.iterator]()}),n=>{let r;if(!n.firstDone){do if(r=this.nextFn(n.first),!r.done)return r;while(!r.done);n.firstDone=!0}do if(r=n.iterator.next(),!r.done)return r;while(!r.done);return gt})}join(t=","){let n=this.iterator(),r="",i,o=!1;do i=n.next(),i.done||(o&&(r+=t),r+=aL(i.value)),o=!0;while(!i.done);return r}indexOf(t,n=0){let r=this.iterator(),i=0,o=r.next();for(;!o.done;){if(i>=n&&o.value===t)return i;o=r.next(),i++}return-1}every(t){let n=this.iterator(),r=n.next();for(;!r.done;){if(!t(r.value))return!1;r=n.next()}return!0}some(t){let n=this.iterator(),r=n.next();for(;!r.done;){if(t(r.value))return!0;r=n.next()}return!1}forEach(t){let n=this.iterator(),r=0,i=n.next();for(;!i.done;)t(i.value,r),i=n.next(),r++}map(t){return new e(this.startFn,n=>{let{done:r,value:i}=this.nextFn(n);return r?gt:{done:!1,value:t(i)}})}filter(t){return new e(this.startFn,n=>{let r;do if(r=this.nextFn(n),!r.done&&t(r.value))return r;while(!r.done);return gt})}nonNullable(){return this.filter(t=>t!=null)}reduce(t,n){let r=this.iterator(),i=n,o=r.next();for(;!o.done;)i===void 0?i=o.value:i=t(i,o.value),o=r.next();return i}reduceRight(t,n){return this.recursiveReduce(this.iterator(),t,n)}recursiveReduce(t,n,r){let i=t.next();if(i.done)return r;let o=this.recursiveReduce(t,n,r);return o===void 0?i.value:n(o,i.value)}find(t){let n=this.iterator(),r=n.next();for(;!r.done;){if(t(r.value))return r.value;r=n.next()}}findIndex(t){let n=this.iterator(),r=0,i=n.next();for(;!i.done;){if(t(i.value))return r;i=n.next(),r++}return-1}includes(t){let n=this.iterator(),r=n.next();for(;!r.done;){if(r.value===t)return!0;r=n.next()}return!1}flatMap(t){return new e(()=>({this:this.startFn()}),n=>{do{if(n.iterator){let o=n.iterator.next();if(o.done)n.iterator=void 0;else return o}let{done:r,value:i}=this.nextFn(n.this);if(!r){let o=t(i);if(nc(o))n.iterator=o[Symbol.iterator]();else return{done:!1,value:o}}}while(n.iterator);return gt})}flat(t){if(t===void 0&&(t=1),t<=0)return this;let n=t>1?this.flat(t-1):this;return new e(()=>({this:n.startFn()}),r=>{do{if(r.iterator){let s=r.iterator.next();if(s.done)r.iterator=void 0;else return s}let{done:i,value:o}=n.nextFn(r.this);if(!i)if(nc(o))r.iterator=o[Symbol.iterator]();else return{done:!1,value:o}}while(r.iterator);return gt})}head(){let n=this.iterator().next();if(!n.done)return n.value}tail(t=1){return new e(()=>{let n=this.startFn();for(let r=0;r<t;r++)if(this.nextFn(n).done)return n;return n},this.nextFn)}limit(t){return new e(()=>({size:0,state:this.startFn()}),n=>(n.size++,n.size>t?gt:this.nextFn(n.state)))}distinct(t){return new e(()=>({set:new Set,internalState:this.startFn()}),n=>{let r;do if(r=this.nextFn(n.internalState),!r.done){let i=t?t(r.value):r.value;if(!n.set.has(i))return n.set.add(i),r}while(!r.done);return gt})}exclude(t,n){let r=new Set;for(let i of t){let o=n?n(i):i;r.add(o)}return this.filter(i=>{let o=n?n(i):i;return!r.has(o)})}};function aL(e){return typeof e=="string"?e:typeof e>"u"?"undefined":typeof e.toString=="function"?e.toString():Object.prototype.toString.call(e)}function nc(e){return!!e&&typeof e[Symbol.iterator]=="function"}var ic=new Ht(()=>{},()=>gt),gt=Object.freeze({done:!0,value:void 0});function ye(...e){if(e.length===1){let t=e[0];if(t instanceof Ht)return t;if(nc(t))return new Ht(()=>t[Symbol.iterator](),n=>n.next());if(typeof t.length=="number")return new Ht(()=>({index:0}),n=>n.index<t.length?{done:!1,value:t[n.index++]}:gt)}return e.length>1?new Ht(()=>({collIndex:0,arrIndex:0}),t=>{do{if(t.iterator){let n=t.iterator.next();if(!n.done)return n;t.iterator=void 0}if(t.array){if(t.arrIndex<t.array.length)return{done:!1,value:t.array[t.arrIndex++]};t.array=void 0,t.arrIndex=0}if(t.collIndex<e.length){let n=e[t.collIndex++];nc(n)?t.iterator=n[Symbol.iterator]():n&&typeof n.length=="number"&&(t.array=n)}}while(t.iterator||t.array||t.collIndex<e.length);return gt}):ic}var nr=class extends Ht{constructor(t,n,r){super(()=>({iterators:r?.includeRoot?[[t][Symbol.iterator]()]:[n(t)[Symbol.iterator]()],pruned:!1}),i=>{for(i.pruned&&(i.iterators.pop(),i.pruned=!1);i.iterators.length>0;){let s=i.iterators[i.iterators.length-1].next();if(s.done)i.iterators.pop();else return i.iterators.push(n(s.value)[Symbol.iterator]()),s}return gt})}iterator(){let t={state:this.startFn(),next:()=>this.nextFn(t.state),prune:()=>{t.state.pruned=!0},[Symbol.iterator]:()=>t};return t}},rc;(function(e){function t(o){return o.reduce((s,a)=>s+a,0)}e.sum=t;function n(o){return o.reduce((s,a)=>s*a,0)}e.product=n;function r(o){return o.reduce((s,a)=>Math.min(s,a))}e.min=r;function i(o){return o.reduce((s,a)=>Math.max(s,a))}e.max=i})(rc||(rc={}));function oc(e,t={}){for(let[n,r]of Object.entries(e))n.startsWith("$")||(Array.isArray(r)?r.forEach((i,o)=>{Ue(i)&&(i.$container=e,i.$containerProperty=n,i.$containerIndex=o,t.deep&&oc(i,t))}):Ue(r)&&(r.$container=e,r.$containerProperty=n,t.deep&&oc(r,t)))}function Gi(e,t){let n=e;for(;n;){if(t(n))return n;n=n.$container}}function st(e){let n=Xs(e).$document;if(!n)throw new Error("AST node has no document.");return n}function Xs(e){for(;e.$container;)e=e.$container;return e}function Gp(e){return it(e)?e.ref?[e.ref]:[]:Dt(e)?e.items.map(t=>t.ref):[]}function sc(e,t){if(!e)throw new Error("Node must be an AstNode.");let n=t?.range;return new Ht(()=>({keys:Object.keys(e),keyIndex:0,arrayIndex:0}),r=>{for(;r.keyIndex<r.keys.length;){let i=r.keys[r.keyIndex];if(!i.startsWith("$")){let o=e[i];if(Ue(o)){if(r.keyIndex++,Up(o,n))return{done:!1,value:o}}else if(Array.isArray(o)){for(;r.arrayIndex<o.length;){let s=r.arrayIndex++,a=o[s];if(Ue(a)&&Up(a,n))return{done:!1,value:a}}r.arrayIndex=0}}r.keyIndex++}return gt})}function cn(e,t){if(!e)throw new Error("Root node must be an AstNode.");return new nr(e,n=>sc(n,t))}function yt(e,t){if(e){if(t?.range&&!Up(e,t.range))return new nr(e,()=>[])}else throw new Error("Root node must be an AstNode.");return new nr(e,n=>sc(n,t),{includeRoot:!0})}function Up(e,t){if(!t)return!0;let n=e.$cstNode?.range;return n?gE(n,t):!1}function Gr(e){return new Ht(()=>({keys:Object.keys(e),keyIndex:0,arrayIndex:0}),t=>{for(;t.keyIndex<t.keys.length;){let n=t.keys[t.keyIndex];if(!n.startsWith("$")){let r=e[n];if(it(r)||Dt(r))return t.keyIndex++,{done:!1,value:{reference:r,container:e,property:n}};if(Array.isArray(r)){for(;t.arrayIndex<r.length;){let i=t.arrayIndex++,o=r[i];if(it(o)||Dt(o))return{done:!1,value:{reference:o,container:e,property:n,index:i}}}t.arrayIndex=0}}t.keyIndex++}return gt})}function hE(e,t){let n=e.getTypeMetaData(t.$type),r=t;for(let i of Object.values(n.properties))i.defaultValue!==void 0&&r[i.name]===void 0&&(r[i.name]=mE(i.defaultValue))}function mE(e){return Array.isArray(e)?[...e.map(mE)]:e}var St={$type:"AbstractElement",cardinality:"cardinality"};function yc(e){return me.isInstance(e,St.$type)}var uc={$type:"AbstractParserRule"};function ir(e){return me.isInstance(e,uc.$type)}var ac={$type:"AbstractRule"};var zt={$type:"AbstractType"};var zr={$type:"Action",cardinality:"cardinality",feature:"feature",inferredType:"inferredType",operator:"operator",type:"type"};function or(e){return me.isInstance(e,zr.$type)}var fc={$type:"Alternatives",cardinality:"cardinality",elements:"elements"};function Qp(e){return me.isInstance(e,fc.$type)}var yE={$type:"ArrayLiteral",elements:"elements"};var zp={$type:"ArrayType",elementType:"elementType"};function _E(e){return me.isInstance(e,zp.$type)}var jr={$type:"Assignment",cardinality:"cardinality",feature:"feature",operator:"operator",predicate:"predicate",terminal:"terminal"};function fn(e){return me.isInstance(e,jr.$type)}var jp={$type:"BooleanLiteral",true:"true"};function vE(e){return me.isInstance(e,jp.$type)}var Yr={$type:"CharacterRange",cardinality:"cardinality",left:"left",lookahead:"lookahead",parenthesized:"parenthesized",right:"right"};function AE(e){return me.isInstance(e,Yr.$type)}var Hi={$type:"Condition"};var dc={$type:"Conjunction",left:"left",right:"right"};function kE(e){return me.isInstance(e,dc.$type)}var Vr={$type:"CrossReference",cardinality:"cardinality",deprecatedSyntax:"deprecatedSyntax",isMulti:"isMulti",terminal:"terminal",type:"type"};function dn(e){return me.isInstance(e,Vr.$type)}var pc={$type:"Disjunction",left:"left",right:"right"};function IE(e){return me.isInstance(e,pc.$type)}var Yp={$type:"EndOfFile",cardinality:"cardinality"};function RE(e){return me.isInstance(e,Yp.$type)}var Hr={$type:"Grammar",imports:"imports",interfaces:"interfaces",isDeclared:"isDeclared",name:"name",rules:"rules",types:"types"};var xE={$type:"GrammarImport",path:"path"};var zi={$type:"Group",cardinality:"cardinality",elements:"elements",guardCondition:"guardCondition",predicate:"predicate"};function Kr(e){return me.isInstance(e,zi.$type)}var Vp={$type:"InferredType",name:"name"};function xc(e){return me.isInstance(e,Vp.$type)}var Tn={$type:"InfixRule",call:"call",dataType:"dataType",inferredType:"inferredType",name:"name",operators:"operators",parameters:"parameters",returnType:"returnType"};function qr(e){return me.isInstance(e,Tn.$type)}var Hp={$type:"InfixRuleOperatorList",associativity:"associativity",operators:"operators"};var EE={$type:"InfixRuleOperators",precedences:"precedences"};var zs={$type:"Interface",attributes:"attributes",name:"name",superTypes:"superTypes"};function SE(e){return me.isInstance(e,zs.$type)}var js={$type:"Keyword",cardinality:"cardinality",predicate:"predicate",value:"value"};function jt(e){return me.isInstance(e,js.$type)}var lc={$type:"NamedArgument",calledByName:"calledByName",parameter:"parameter",value:"value"};var ji={$type:"NegatedToken",cardinality:"cardinality",lookahead:"lookahead",parenthesized:"parenthesized",terminal:"terminal"};function bE(e){return me.isInstance(e,ji.$type)}var Kp={$type:"Negation",value:"value"};function NE(e){return me.isInstance(e,Kp.$type)}var wE={$type:"NumberLiteral",value:"value"};var cc={$type:"Parameter",name:"name"};var qp={$type:"ParameterReference",parameter:"parameter"};function LE(e){return me.isInstance(e,qp.$type)}var un={$type:"ParserRule",dataType:"dataType",definition:"definition",entry:"entry",fragment:"fragment",inferredType:"inferredType",name:"name",parameters:"parameters",returnType:"returnType"};function at(e){return me.isInstance(e,un.$type)}var hc={$type:"ReferenceType",isMulti:"isMulti",referenceType:"referenceType"};function OE(e){return me.isInstance(e,hc.$type)}var Yi={$type:"RegexToken",cardinality:"cardinality",lookahead:"lookahead",parenthesized:"parenthesized",regex:"regex"};function PE(e){return me.isInstance(e,Yi.$type)}var Zp={$type:"ReturnType",name:"name"};function CE(e){return me.isInstance(e,Zp.$type)}var Vi={$type:"RuleCall",arguments:"arguments",cardinality:"cardinality",predicate:"predicate",rule:"rule"};function pn(e){return me.isInstance(e,Vi.$type)}var Ys={$type:"SimpleType",primitiveType:"primitiveType",stringType:"stringType",typeRef:"typeRef"};function eh(e){return me.isInstance(e,Ys.$type)}var TE={$type:"StringLiteral",value:"value"};var Ki={$type:"TerminalAlternatives",cardinality:"cardinality",elements:"elements",lookahead:"lookahead",parenthesized:"parenthesized"};function $E(e){return me.isInstance(e,Ki.$type)}var Mt={$type:"TerminalElement",cardinality:"cardinality",lookahead:"lookahead",parenthesized:"parenthesized"};var qi={$type:"TerminalGroup",cardinality:"cardinality",elements:"elements",lookahead:"lookahead",parenthesized:"parenthesized"};function DE(e){return me.isInstance(e,qi.$type)}var rr={$type:"TerminalRule",definition:"definition",fragment:"fragment",hidden:"hidden",name:"name",type:"type"};function xt(e){return me.isInstance(e,rr.$type)}var Zi={$type:"TerminalRuleCall",cardinality:"cardinality",lookahead:"lookahead",parenthesized:"parenthesized",rule:"rule"};function th(e){return me.isInstance(e,Zi.$type)}var mc={$type:"Type",name:"name",type:"type"};function nh(e){return me.isInstance(e,mc.$type)}var Us={$type:"TypeAttribute",defaultValue:"defaultValue",isOptional:"isOptional",name:"name",type:"type"};var Gs={$type:"TypeDefinition"};var Jp={$type:"UnionType",types:"types"};function ME(e){return me.isInstance(e,Jp.$type)}var gc={$type:"UnorderedGroup",cardinality:"cardinality",elements:"elements"};function rh(e){return me.isInstance(e,gc.$type)}var Ji={$type:"UntilToken",cardinality:"cardinality",lookahead:"lookahead",parenthesized:"parenthesized",terminal:"terminal"};function FE(e){return me.isInstance(e,Ji.$type)}var Hs={$type:"ValueLiteral"};var Vs={$type:"Wildcard",cardinality:"cardinality",lookahead:"lookahead",parenthesized:"parenthesized"};function BE(e){return me.isInstance(e,Vs.$type)}var Ks=class extends Xi{constructor(){super(...arguments),this.types={AbstractElement:{name:St.$type,properties:{cardinality:{name:St.cardinality,optional:!0}},superTypes:[]},AbstractParserRule:{name:uc.$type,properties:{},superTypes:[ac.$type,zt.$type]},AbstractRule:{name:ac.$type,properties:{},superTypes:[]},AbstractType:{name:zt.$type,properties:{},superTypes:[]},Action:{name:zr.$type,properties:{cardinality:{name:zr.cardinality,optional:!0},feature:{name:zr.feature,optional:!0},inferredType:{name:zr.inferredType,optional:!0},operator:{name:zr.operator,optional:!0},type:{name:zr.type,referenceType:zt.$type,optional:!0}},superTypes:[St.$type]},Alternatives:{name:fc.$type,properties:{cardinality:{name:fc.cardinality,optional:!0},elements:{name:fc.elements,defaultValue:[]}},superTypes:[St.$type]},ArrayLiteral:{name:yE.$type,properties:{elements:{name:yE.elements,defaultValue:[]}},superTypes:[Hs.$type]},ArrayType:{name:zp.$type,properties:{elementType:{name:zp.elementType}},superTypes:[Gs.$type]},Assignment:{name:jr.$type,properties:{cardinality:{name:jr.cardinality,optional:!0},feature:{name:jr.feature},operator:{name:jr.operator},predicate:{name:jr.predicate,optional:!0},terminal:{name:jr.terminal}},superTypes:[St.$type]},BooleanLiteral:{name:jp.$type,properties:{true:{name:jp.true,defaultValue:!1}},superTypes:[Hi.$type,Hs.$type]},CharacterRange:{name:Yr.$type,properties:{cardinality:{name:Yr.cardinality,optional:!0},left:{name:Yr.left},lookahead:{name:Yr.lookahead,optional:!0},parenthesized:{name:Yr.parenthesized,defaultValue:!1,optional:!0},right:{name:Yr.right,optional:!0}},superTypes:[Mt.$type]},Condition:{name:Hi.$type,properties:{},superTypes:[]},Conjunction:{name:dc.$type,properties:{left:{name:dc.left},right:{name:dc.right}},superTypes:[Hi.$type]},CrossReference:{name:Vr.$type,properties:{cardinality:{name:Vr.cardinality,optional:!0},deprecatedSyntax:{name:Vr.deprecatedSyntax,defaultValue:!1},isMulti:{name:Vr.isMulti,defaultValue:!1},terminal:{name:Vr.terminal,optional:!0},type:{name:Vr.type,referenceType:zt.$type}},superTypes:[St.$type]},Disjunction:{name:pc.$type,properties:{left:{name:pc.left},right:{name:pc.right}},superTypes:[Hi.$type]},EndOfFile:{name:Yp.$type,properties:{cardinality:{name:Yp.cardinality,optional:!0}},superTypes:[St.$type]},Grammar:{name:Hr.$type,properties:{imports:{name:Hr.imports,defaultValue:[]},interfaces:{name:Hr.interfaces,defaultValue:[]},isDeclared:{name:Hr.isDeclared,defaultValue:!1},name:{name:Hr.name,optional:!0},rules:{name:Hr.rules,defaultValue:[]},types:{name:Hr.types,defaultValue:[]}},superTypes:[]},GrammarImport:{name:xE.$type,properties:{path:{name:xE.path}},superTypes:[]},Group:{name:zi.$type,properties:{cardinality:{name:zi.cardinality,optional:!0},elements:{name:zi.elements,defaultValue:[]},guardCondition:{name:zi.guardCondition,optional:!0},predicate:{name:zi.predicate,optional:!0}},superTypes:[St.$type]},InferredType:{name:Vp.$type,properties:{name:{name:Vp.name}},superTypes:[zt.$type]},InfixRule:{name:Tn.$type,properties:{call:{name:Tn.call},dataType:{name:Tn.dataType,optional:!0},inferredType:{name:Tn.inferredType,optional:!0},name:{name:Tn.name},operators:{name:Tn.operators},parameters:{name:Tn.parameters,defaultValue:[]},returnType:{name:Tn.returnType,referenceType:zt.$type,optional:!0}},superTypes:[uc.$type]},InfixRuleOperatorList:{name:Hp.$type,properties:{associativity:{name:Hp.associativity,optional:!0},operators:{name:Hp.operators,defaultValue:[]}},superTypes:[]},InfixRuleOperators:{name:EE.$type,properties:{precedences:{name:EE.precedences,defaultValue:[]}},superTypes:[]},Interface:{name:zs.$type,properties:{attributes:{name:zs.attributes,defaultValue:[]},name:{name:zs.name},superTypes:{name:zs.superTypes,defaultValue:[],referenceType:zt.$type}},superTypes:[zt.$type]},Keyword:{name:js.$type,properties:{cardinality:{name:js.cardinality,optional:!0},predicate:{name:js.predicate,optional:!0},value:{name:js.value}},superTypes:[St.$type]},NamedArgument:{name:lc.$type,properties:{calledByName:{name:lc.calledByName,defaultValue:!1},parameter:{name:lc.parameter,referenceType:cc.$type,optional:!0},value:{name:lc.value}},superTypes:[]},NegatedToken:{name:ji.$type,properties:{cardinality:{name:ji.cardinality,optional:!0},lookahead:{name:ji.lookahead,optional:!0},parenthesized:{name:ji.parenthesized,defaultValue:!1,optional:!0},terminal:{name:ji.terminal}},superTypes:[Mt.$type]},Negation:{name:Kp.$type,properties:{value:{name:Kp.value}},superTypes:[Hi.$type]},NumberLiteral:{name:wE.$type,properties:{value:{name:wE.value}},superTypes:[Hs.$type]},Parameter:{name:cc.$type,properties:{name:{name:cc.name}},superTypes:[]},ParameterReference:{name:qp.$type,properties:{parameter:{name:qp.parameter,referenceType:cc.$type}},superTypes:[Hi.$type]},ParserRule:{name:un.$type,properties:{dataType:{name:un.dataType,optional:!0},definition:{name:un.definition},entry:{name:un.entry,defaultValue:!1},fragment:{name:un.fragment,defaultValue:!1},inferredType:{name:un.inferredType,optional:!0},name:{name:un.name},parameters:{name:un.parameters,defaultValue:[]},returnType:{name:un.returnType,referenceType:zt.$type,optional:!0}},superTypes:[uc.$type]},ReferenceType:{name:hc.$type,properties:{isMulti:{name:hc.isMulti,defaultValue:!1},referenceType:{name:hc.referenceType}},superTypes:[Gs.$type]},RegexToken:{name:Yi.$type,properties:{cardinality:{name:Yi.cardinality,optional:!0},lookahead:{name:Yi.lookahead,optional:!0},parenthesized:{name:Yi.parenthesized,defaultValue:!1,optional:!0},regex:{name:Yi.regex}},superTypes:[Mt.$type]},ReturnType:{name:Zp.$type,properties:{name:{name:Zp.name}},superTypes:[]},RuleCall:{name:Vi.$type,properties:{arguments:{name:Vi.arguments,defaultValue:[]},cardinality:{name:Vi.cardinality,optional:!0},predicate:{name:Vi.predicate,optional:!0},rule:{name:Vi.rule,referenceType:ac.$type}},superTypes:[St.$type]},SimpleType:{name:Ys.$type,properties:{primitiveType:{name:Ys.primitiveType,optional:!0},stringType:{name:Ys.stringType,optional:!0},typeRef:{name:Ys.typeRef,referenceType:zt.$type,optional:!0}},superTypes:[Gs.$type]},StringLiteral:{name:TE.$type,properties:{value:{name:TE.value}},superTypes:[Hs.$type]},TerminalAlternatives:{name:Ki.$type,properties:{cardinality:{name:Ki.cardinality,optional:!0},elements:{name:Ki.elements,defaultValue:[]},lookahead:{name:Ki.lookahead,optional:!0},parenthesized:{name:Ki.parenthesized,defaultValue:!1,optional:!0}},superTypes:[Mt.$type]},TerminalElement:{name:Mt.$type,properties:{cardinality:{name:Mt.cardinality,optional:!0},lookahead:{name:Mt.lookahead,optional:!0},parenthesized:{name:Mt.parenthesized,defaultValue:!1,optional:!0}},superTypes:[St.$type]},TerminalGroup:{name:qi.$type,properties:{cardinality:{name:qi.cardinality,optional:!0},elements:{name:qi.elements,defaultValue:[]},lookahead:{name:qi.lookahead,optional:!0},parenthesized:{name:qi.parenthesized,defaultValue:!1,optional:!0}},superTypes:[Mt.$type]},TerminalRule:{name:rr.$type,properties:{definition:{name:rr.definition},fragment:{name:rr.fragment,defaultValue:!1},hidden:{name:rr.hidden,defaultValue:!1},name:{name:rr.name},type:{name:rr.type,optional:!0}},superTypes:[ac.$type]},TerminalRuleCall:{name:Zi.$type,properties:{cardinality:{name:Zi.cardinality,optional:!0},lookahead:{name:Zi.lookahead,optional:!0},parenthesized:{name:Zi.parenthesized,defaultValue:!1,optional:!0},rule:{name:Zi.rule,referenceType:rr.$type}},superTypes:[Mt.$type]},Type:{name:mc.$type,properties:{name:{name:mc.name},type:{name:mc.type}},superTypes:[zt.$type]},TypeAttribute:{name:Us.$type,properties:{defaultValue:{name:Us.defaultValue,optional:!0},isOptional:{name:Us.isOptional,defaultValue:!1},name:{name:Us.name},type:{name:Us.type}},superTypes:[]},TypeDefinition:{name:Gs.$type,properties:{},superTypes:[]},UnionType:{name:Jp.$type,properties:{types:{name:Jp.types,defaultValue:[]}},superTypes:[Gs.$type]},UnorderedGroup:{name:gc.$type,properties:{cardinality:{name:gc.cardinality,optional:!0},elements:{name:gc.elements,defaultValue:[]}},superTypes:[St.$type]},UntilToken:{name:Ji.$type,properties:{cardinality:{name:Ji.cardinality,optional:!0},lookahead:{name:Ji.lookahead,optional:!0},parenthesized:{name:Ji.parenthesized,defaultValue:!1,optional:!0},terminal:{name:Ji.terminal}},superTypes:[Mt.$type]},ValueLiteral:{name:Hs.$type,properties:{},superTypes:[]},Wildcard:{name:Vs.$type,properties:{cardinality:{name:Vs.cardinality,optional:!0},lookahead:{name:Vs.lookahead,optional:!0},parenthesized:{name:Vs.parenthesized,defaultValue:!1,optional:!0}},superTypes:[Mt.$type]}}}},me=new Ks;function qs(e){return new nr(e,t=>tr(t)?t.content:[],{includeRoot:!0})}function UE(e,t){for(;e.container;)if(e=e.container,e===t)return!0;return!1}function GE(e){return{start:{line:e.startLine-1,character:e.startColumn-1},end:{line:e.endLine-1,character:e.endColumn}}}function Zs(e){let{startOffset:t,endOffset:n}=e;return typeof t=="number"&&Number.isFinite(t)&&t>=0&&typeof n=="number"&&Number.isFinite(n)&&n>=t}function Qi(e){if(!e)return;let{offset:t,end:n,range:r}=e;return{range:r,offset:t,end:n,length:n-t}}var _n;(function(e){e[e.Before=0]="Before",e[e.After=1]="After",e[e.OverlapFront=2]="OverlapFront",e[e.OverlapBack=3]="OverlapBack",e[e.Inside=4]="Inside",e[e.Outside=5]="Outside"})(_n||(_n={}));function lL(e,t){if(e.end.line<t.start.line||e.end.line===t.start.line&&e.end.character<=t.start.character)return _n.Before;if(e.start.line>t.end.line||e.start.line===t.end.line&&e.start.character>=t.end.character)return _n.After;let n=e.start.line>t.start.line||e.start.line===t.start.line&&e.start.character>=t.start.character,r=e.end.line<t.end.line||e.end.line===t.end.line&&e.end.character<=t.end.character;return n&&r?_n.Inside:n?_n.OverlapBack:r?_n.OverlapFront:_n.Outside}function gE(e,t){return lL(e,t)>_n.After}var HE=/^[\w\p{L}]$/u;function zE(e,t){if(e){let n=cL(e,!0);if(n&&XE(n,t))return n;if(tc(e)){let r=e.content.findIndex(i=>!i.hidden);for(let i=r-1;i>=0;i--){let o=e.content[i];if(XE(o,t))return o}}}}function XE(e,t){return ec(e)&&t.includes(e.tokenType.name)}function cL(e,t=!0){for(;e.container;){let n=e.container,r=n.content.indexOf(e);for(;r>0;){r--;let i=n.content[r];if(t||!i.hidden)return i}e=n}}var Ac={};Wp(Ac,{findAssignment:()=>gh,findNameAssignment:()=>_c,findNodeForKeyword:()=>hh,findNodeForProperty:()=>ra,findNodesForKeyword:()=>gL,findNodesForKeywordInternal:()=>mh,findNodesForProperty:()=>dh,getActionAtElement:()=>QE,getActionType:()=>tw,getAllReachableRules:()=>na,getAllRulesUsedForCrossReferences:()=>mL,getCrossReferenceTerminal:()=>uh,getEntryRule:()=>KE,getExplicitRuleType:()=>vc,getHiddenRules:()=>qE,getRuleType:()=>yh,getRuleTypeName:()=>TL,getTypeName:()=>ar,isArrayCardinality:()=>xL,isArrayOperator:()=>EL,isCommentTerminal:()=>fh,isDataType:()=>wL,isDataTypeRule:()=>ia,isOptionalCardinality:()=>yL,terminalRegex:()=>to});var Js=class extends Error{constructor(t,n){let r=typeof n=="string"?n:n();super(t?`${r} at ${t.range.start.line}:${t.range.start.character}`:r)}};function sr(e,t="Error: Got unexpected value."){throw new Error(typeof t=="string"?t:t())}function oe(e){return e.charCodeAt(0)}function Ec(e,t){Array.isArray(e)?e.forEach(function(n){t.push(n)}):t.push(e)}function eo(e,t){if(e[t]===!0)throw"duplicate flag "+t;let n=e[t];e[t]=!0}function Zr(e){if(e===void 0)throw Error("Internal Error - Should never get here!");return!0}function Qs(){throw Error("Internal Error - Should never get here!")}function ih(e){return e.type==="Character"}var ea=[];for(let e=oe("0");e<=oe("9");e++)ea.push(e);var ta=[oe("_")].concat(ea);for(let e=oe("a");e<=oe("z");e++)ta.push(e);for(let e=oe("A");e<=oe("Z");e++)ta.push(e);var oh=[oe(" "),oe("\f"),oe(`
|
|
3
|
-
`),oe("\r"),oe(" "),oe("\v"),oe(" "),oe("\xA0"),oe("\u1680"),oe("\u2000"),oe("\u2001"),oe("\u2002"),oe("\u2003"),oe("\u2004"),oe("\u2005"),oe("\u2006"),oe("\u2007"),oe("\u2008"),oe("\u2009"),oe("\u200A"),oe("\u2028"),oe("\u2029"),oe("\u202F"),oe("\u205F"),oe("\u3000"),oe("\uFEFF")];var
|
|
4
|
-
`),oe("\r"),oe("\u2028"),oe("\u2029")]}}atomEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}decimalEscapeAtom(){return{type:"GroupBackReference",value:this.positiveInteger()}}characterClassEscape(){let t,n=!1;switch(this.popChar()){case"d":t=ea;break;case"D":t=ea,n=!0;break;case"s":t=
|
|
1
|
+
/*! @nowline/embed 0.11.0 sha=d8d931f built=2026-10-26T06:05:00Z */
|
|
2
|
+
"use strict";var nowline=(()=>{var rL=Object.create;var Bs=Object.defineProperty;var iL=Object.getOwnPropertyDescriptor;var oL=Object.getOwnPropertyNames;var sL=Object.getPrototypeOf,aL=Object.prototype.hasOwnProperty;var lL=(e,t,n)=>t in e?Bs(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var cL=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(r){throw n=[r],r}};var Ws=(e,t)=>()=>{try{return t||e((t={exports:{}}).exports,t),t.exports}catch(n){throw t=0,n}},Gp=(e,t)=>{for(var n in t)Bs(e,n,{get:t[n],enumerable:!0})},wE=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of oL(t))!aL.call(e,i)&&i!==n&&Bs(e,i,{get:()=>t[i],enumerable:!(r=iL(t,i))||r.enumerable});return e};var Hp=(e,t,n)=>(n=e!=null?rL(sL(e)):{},wE(t||!e||!e.__esModule?Bs(n,"default",{value:e,enumerable:!0}):n,e)),uL=e=>wE(Bs({},"__esModule",{value:!0}),e);var M=(e,t,n)=>lL(e,typeof t!="symbol"?t+"":t,n);var gm=Ws(mm=>{"use strict";Object.defineProperty(mm,"__esModule",{value:!0});var pm;function hm(){if(pm===void 0)throw new Error("No runtime abstraction layer installed");return pm}(function(e){function t(n){if(n===void 0)throw new Error("No runtime abstraction layer provided");pm=n}e.install=t})(hm||(hm={}));mm.default=hm});var ym=Ws($n=>{"use strict";Object.defineProperty($n,"__esModule",{value:!0});$n.boolean=pM;$n.string=G_;$n.number=hM;$n.error=mM;$n.func=gM;$n.array=H_;$n.stringArray=yM;function pM(e){return e===!0||e===!1}function G_(e){return typeof e=="string"||e instanceof String}function hM(e){return typeof e=="number"||e instanceof Number}function mM(e){return e instanceof Error}function gM(e){return typeof e=="function"}function H_(e){return Array.isArray(e)}function yM(e){return H_(e)&&e.every(t=>G_(t))}});var wm=Ws(Ar=>{"use strict";var xM=Ar&&Ar.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Ar,"__esModule",{value:!0});Ar.Emitter=Ar.Event=void 0;var EM=xM(gm()),z_;(function(e){let t={dispose(){}};e.None=function(){return t}})(z_||(Ar.Event=z_={}));var xm=class{constructor(){M(this,"_callbacks");M(this,"_contexts")}add(t,n=null,r){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(t),this._contexts.push(n),Array.isArray(r)&&r.push({dispose:()=>this.remove(t,n)})}remove(t,n=null){if(!this._callbacks)return;let r=!1;for(let i=0,o=this._callbacks.length;i<o;i++)if(this._callbacks[i]===t)if(this._contexts[i]===n){this._callbacks.splice(i,1),this._contexts.splice(i,1);return}else r=!0;if(r)throw new Error("When adding a listener with a context, you should remove it with the same context")}invoke(...t){if(!this._callbacks)return[];let n=[],r=this._callbacks.slice(0),i=this._contexts.slice(0);for(let o=0,s=r.length;o<s;o++)try{n.push(r[o].apply(i[o],t))}catch(a){(0,EM.default)().console.error(a)}return n}isEmpty(){return!this._callbacks||this._callbacks.length===0}dispose(){this._callbacks=void 0,this._contexts=void 0}},Wu=class Wu{constructor(t){M(this,"_options");M(this,"_event");M(this,"_callbacks");this._options=t}get event(){return this._event||(this._event=(t,n,r)=>{this._callbacks||(this._callbacks=new xm),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(t,n);let i={dispose:()=>{this._callbacks&&(this._callbacks.remove(t,n),i.dispose=Wu._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))}};return Array.isArray(r)&&r.push(i),i}),this._event}fire(t){this._callbacks&&this._callbacks.invoke.call(this._callbacks,t)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}};M(Wu,"_noop",function(){});var Em=Wu;Ar.Emitter=Em});var j_=Ws(wt=>{"use strict";var wM=wt&&wt.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),TM=wt&&wt.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),vM=wt&&wt.__importStar||(function(){var e=function(t){return e=Object.getOwnPropertyNames||function(n){var r=[];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(r[r.length]=i);return r},e(t)};return function(t){if(t&&t.__esModule)return t;var n={};if(t!=null)for(var r=e(t),i=0;i<r.length;i++)r[i]!=="default"&&wM(n,t,r[i]);return TM(n,t),n}})(),_M=wt&&wt.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(wt,"__esModule",{value:!0});wt.CancellationTokenSource=wt.CancellationToken=void 0;var AM=_M(gm()),kM=vM(ym()),Tm=wm(),Xu;(function(e){e.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:Tm.Event.None}),e.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:Tm.Event.None});function t(n){let r=n;return r&&(r===e.None||r===e.Cancelled||kM.boolean(r.isCancellationRequested)&&!!r.onCancellationRequested)}e.is=t})(Xu||(wt.CancellationToken=Xu={}));var IM=Object.freeze(function(e,t){let n=(0,AM.default)().timer.setTimeout(e.bind(t),0);return{dispose(){n.dispose()}}}),Uu=class{constructor(){M(this,"_isCancelled",!1);M(this,"_emitter")}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?IM:(this._emitter||(this._emitter=new Tm.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}},vm=class{constructor(){M(this,"_token")}get token(){return this._token||(this._token=new Uu),this._token}cancel(){this._token?this._token.cancel():this._token=Xu.Cancelled}dispose(){this._token?this._token instanceof Uu&&this._token.dispose():this._token=Xu.None}};wt.CancellationTokenSource=vm});var V_=Ws(te=>{"use strict";var RM=te&&te.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),SM=te&&te.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),bM=te&&te.__importStar||(function(){var e=function(t){return e=Object.getOwnPropertyNames||function(n){var r=[];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(r[r.length]=i);return r},e(t)};return function(t){if(t&&t.__esModule)return t;var n={};if(t!=null)for(var r=e(t),i=0;i<r.length;i++)r[i]!=="default"&&RM(n,t,r[i]);return SM(n,t),n}})();Object.defineProperty(te,"__esModule",{value:!0});te.Message=te.NotificationType9=te.NotificationType8=te.NotificationType7=te.NotificationType6=te.NotificationType5=te.NotificationType4=te.NotificationType3=te.NotificationType2=te.NotificationType1=te.NotificationType0=te.NotificationType=te.RequestType9=te.RequestType8=te.RequestType7=te.RequestType6=te.RequestType5=te.RequestType4=te.RequestType3=te.RequestType2=te.RequestType1=te.RequestType=te.RequestType0=te.AbstractMessageSignature=te.ParameterStructures=te.ResponseError=te.ErrorCodes=void 0;var pi=bM(ym()),_m;(function(e){e.ParseError=-32700,e.InvalidRequest=-32600,e.MethodNotFound=-32601,e.InvalidParams=-32602,e.InternalError=-32603,e.jsonrpcReservedErrorRangeStart=-32099,e.serverErrorStart=-32099,e.MessageWriteError=-32099,e.MessageReadError=-32098,e.PendingResponseRejected=-32097,e.ConnectionInactive=-32096,e.ServerNotInitialized=-32002,e.UnknownErrorCode=-32001,e.jsonrpcReservedErrorRangeEnd=-32e3,e.serverErrorEnd=-32e3})(_m||(te.ErrorCodes=_m={}));var Am=class e extends Error{constructor(n,r,i){super(r);M(this,"code");M(this,"data");this.code=pi.number(n)?n:_m.UnknownErrorCode,this.data=i,Object.setPrototypeOf(this,e.prototype)}toJson(){let n={code:this.code,message:this.message};return this.data!==void 0&&(n.data=this.data),n}};te.ResponseError=Am;var Zt=class Zt{constructor(t){M(this,"kind");this.kind=t}static is(t){return t===Zt.auto||t===Zt.byName||t===Zt.byPosition}toString(){return this.kind}};M(Zt,"auto",new Zt("auto")),M(Zt,"byPosition",new Zt("byPosition")),M(Zt,"byName",new Zt("byName"));var kr=Zt;te.ParameterStructures=kr;var Oe=class{constructor(t,n){M(this,"method");M(this,"numberOfParams");this.method=t,this.numberOfParams=n}get parameterStructures(){return kr.auto}};te.AbstractMessageSignature=Oe;var km=class extends Oe{constructor(n){super(n,0);M(this,"_")}};te.RequestType0=km;var Im=class extends Oe{constructor(n,r=kr.auto){super(n,1);M(this,"_parameterStructures");M(this,"_");this._parameterStructures=r}get parameterStructures(){return this._parameterStructures}};te.RequestType=Im;var Rm=class extends Oe{constructor(n,r=kr.auto){super(n,1);M(this,"_parameterStructures");M(this,"_");this._parameterStructures=r}get parameterStructures(){return this._parameterStructures}};te.RequestType1=Rm;var Sm=class extends Oe{constructor(n){super(n,2);M(this,"_")}};te.RequestType2=Sm;var bm=class extends Oe{constructor(n){super(n,3);M(this,"_")}};te.RequestType3=bm;var Nm=class extends Oe{constructor(n){super(n,4);M(this,"_")}};te.RequestType4=Nm;var Lm=class extends Oe{constructor(n){super(n,5);M(this,"_")}};te.RequestType5=Lm;var Pm=class extends Oe{constructor(n){super(n,6);M(this,"_")}};te.RequestType6=Pm;var Om=class extends Oe{constructor(n){super(n,7);M(this,"_")}};te.RequestType7=Om;var Cm=class extends Oe{constructor(n){super(n,8);M(this,"_")}};te.RequestType8=Cm;var $m=class extends Oe{constructor(n){super(n,9);M(this,"_")}};te.RequestType9=$m;var Dm=class extends Oe{constructor(n,r=kr.auto){super(n,1);M(this,"_parameterStructures");M(this,"_");this._parameterStructures=r}get parameterStructures(){return this._parameterStructures}};te.NotificationType=Dm;var Mm=class extends Oe{constructor(n){super(n,0);M(this,"_")}};te.NotificationType0=Mm;var Fm=class extends Oe{constructor(n,r=kr.auto){super(n,1);M(this,"_parameterStructures");M(this,"_");this._parameterStructures=r}get parameterStructures(){return this._parameterStructures}};te.NotificationType1=Fm;var Bm=class extends Oe{constructor(n){super(n,2);M(this,"_")}};te.NotificationType2=Bm;var Wm=class extends Oe{constructor(n){super(n,3);M(this,"_")}};te.NotificationType3=Wm;var Xm=class extends Oe{constructor(n){super(n,4);M(this,"_")}};te.NotificationType4=Xm;var Um=class extends Oe{constructor(n){super(n,5);M(this,"_")}};te.NotificationType5=Um;var Gm=class extends Oe{constructor(n){super(n,6);M(this,"_")}};te.NotificationType6=Gm;var Hm=class extends Oe{constructor(n){super(n,7);M(this,"_")}};te.NotificationType7=Hm;var zm=class extends Oe{constructor(n){super(n,8);M(this,"_")}};te.NotificationType8=zm;var jm=class extends Oe{constructor(n){super(n,9);M(this,"_")}};te.NotificationType9=jm;var Y_;(function(e){function t(i){let o=i;return o&&pi.string(o.method)&&(pi.string(o.id)||pi.number(o.id))}e.isRequest=t;function n(i){let o=i;return o&&pi.string(o.method)&&i.id===void 0}e.isNotification=n;function r(i){let o=i;return o&&(o.result!==void 0||!!o.error)&&(pi.string(o.id)||pi.number(o.id)||o.id===null)}e.isResponse=r})(Y_||(te.Message=Y_={}))});var Wy={};Gp(Wy,{nodeReadFile:()=>A2});async function A2(){throw new Error("nowline: filesystem readers are unavailable in the browser embed")}var Xy=cL(()=>{});var KU={};Gp(KU,{EmbedRenderError:()=>Kl,__resetForTests:()=>VU,init:()=>gE,initialize:()=>HU,parse:()=>jU,render:()=>zU,run:()=>YU,sha:()=>UU,version:()=>XU});function Ue(e){return typeof e=="object"&&e!==null&&typeof e.$type=="string"}function it(e){return typeof e=="object"&&e!==null&&typeof e.$refText=="string"&&"ref"in e}function Mt(e){return typeof e=="object"&&e!==null&&typeof e.$refText=="string"&&"items"in e}function TE(e){return typeof e=="object"&&e!==null&&typeof e.name=="string"&&typeof e.type=="string"&&typeof e.path=="string"}function Gi(e){return typeof e=="object"&&e!==null&&typeof e.info=="object"&&typeof e.message=="string"}var Ui=class{constructor(){this.subtypes={},this.allSubtypes={}}getAllTypes(){return Object.keys(this.types)}getReferenceType(t){let n=this.types[t.container.$type];if(!n)throw new Error(`Type ${t.container.$type||"undefined"} not found.`);let r=n.properties[t.property]?.referenceType;if(!r)throw new Error(`Property ${t.property||"undefined"} of type ${t.container.$type} is not a reference.`);return r}getTypeMetaData(t){let n=this.types[t];return n||{name:t,properties:{},superTypes:[]}}isInstance(t,n){return Ue(t)&&this.isSubtype(t.$type,n)}isSubtype(t,n){if(t===n)return!0;let r=this.subtypes[t];r||(r=this.subtypes[t]={});let i=r[n];if(i!==void 0)return i;{let o=this.types[t],s=o?o.superTypes.some(a=>this.isSubtype(a,n)):!1;return r[n]=s,s}}getAllSubTypes(t){let n=this.allSubtypes[t];if(n)return n;{let r=this.getAllTypes(),i=[];for(let o of r)this.isSubtype(o,t)&&i.push(o);return this.allSubtypes[t]=i,i}}isComplete(t){let n=this.getTypeMetaData(t.$type);for(let r of Object.keys(n.properties)){let i=n.properties[r];if(i.optional)continue;let o=t[i.name];if(o==null)return!1}return!0}};function tr(e){return typeof e=="object"&&e!==null&&Array.isArray(e.content)}function tc(e){return typeof e=="object"&&e!==null&&typeof e.tokenType=="object"}function nc(e){return tr(e)&&typeof e.fullText=="string"}var zt=class e{constructor(t,n){this.startFn=t,this.nextFn=n}iterator(){let t={state:this.startFn(),next:()=>this.nextFn(t.state),[Symbol.iterator]:()=>t};return t}[Symbol.iterator](){return this.iterator()}isEmpty(){return!!this.iterator().next().done}count(){let t=this.iterator(),n=0,r=t.next();for(;!r.done;)n++,r=t.next();return n}toArray(){let t=[],n=this.iterator(),r;do r=n.next(),r.value!==void 0&&t.push(r.value);while(!r.done);return t}toSet(){return new Set(this)}toMap(t,n){let r=this.map(i=>[t?t(i):i,n?n(i):i]);return new Map(r)}toString(){return this.join()}concat(t){return new e(()=>({first:this.startFn(),firstDone:!1,iterator:t[Symbol.iterator]()}),n=>{let r;if(!n.firstDone){do if(r=this.nextFn(n.first),!r.done)return r;while(!r.done);n.firstDone=!0}do if(r=n.iterator.next(),!r.done)return r;while(!r.done);return gt})}join(t=","){let n=this.iterator(),r="",i,o=!1;do i=n.next(),i.done||(o&&(r+=t),r+=dL(i.value)),o=!0;while(!i.done);return r}indexOf(t,n=0){let r=this.iterator(),i=0,o=r.next();for(;!o.done;){if(i>=n&&o.value===t)return i;o=r.next(),i++}return-1}every(t){let n=this.iterator(),r=n.next();for(;!r.done;){if(!t(r.value))return!1;r=n.next()}return!0}some(t){let n=this.iterator(),r=n.next();for(;!r.done;){if(t(r.value))return!0;r=n.next()}return!1}forEach(t){let n=this.iterator(),r=0,i=n.next();for(;!i.done;)t(i.value,r),i=n.next(),r++}map(t){return new e(this.startFn,n=>{let{done:r,value:i}=this.nextFn(n);return r?gt:{done:!1,value:t(i)}})}filter(t){return new e(this.startFn,n=>{let r;do if(r=this.nextFn(n),!r.done&&t(r.value))return r;while(!r.done);return gt})}nonNullable(){return this.filter(t=>t!=null)}reduce(t,n){let r=this.iterator(),i=n,o=r.next();for(;!o.done;)i===void 0?i=o.value:i=t(i,o.value),o=r.next();return i}reduceRight(t,n){return this.recursiveReduce(this.iterator(),t,n)}recursiveReduce(t,n,r){let i=t.next();if(i.done)return r;let o=this.recursiveReduce(t,n,r);return o===void 0?i.value:n(o,i.value)}find(t){let n=this.iterator(),r=n.next();for(;!r.done;){if(t(r.value))return r.value;r=n.next()}}findIndex(t){let n=this.iterator(),r=0,i=n.next();for(;!i.done;){if(t(i.value))return r;i=n.next(),r++}return-1}includes(t){let n=this.iterator(),r=n.next();for(;!r.done;){if(r.value===t)return!0;r=n.next()}return!1}flatMap(t){return new e(()=>({this:this.startFn()}),n=>{do{if(n.iterator){let o=n.iterator.next();if(o.done)n.iterator=void 0;else return o}let{done:r,value:i}=this.nextFn(n.this);if(!r){let o=t(i);if(rc(o))n.iterator=o[Symbol.iterator]();else return{done:!1,value:o}}}while(n.iterator);return gt})}flat(t){if(t===void 0&&(t=1),t<=0)return this;let n=t>1?this.flat(t-1):this;return new e(()=>({this:n.startFn()}),r=>{do{if(r.iterator){let s=r.iterator.next();if(s.done)r.iterator=void 0;else return s}let{done:i,value:o}=n.nextFn(r.this);if(!i)if(rc(o))r.iterator=o[Symbol.iterator]();else return{done:!1,value:o}}while(r.iterator);return gt})}head(){let n=this.iterator().next();if(!n.done)return n.value}tail(t=1){return new e(()=>{let n=this.startFn();for(let r=0;r<t;r++)if(this.nextFn(n).done)return n;return n},this.nextFn)}limit(t){return new e(()=>({size:0,state:this.startFn()}),n=>(n.size++,n.size>t?gt:this.nextFn(n.state)))}distinct(t){return new e(()=>({set:new Set,internalState:this.startFn()}),n=>{let r;do if(r=this.nextFn(n.internalState),!r.done){let i=t?t(r.value):r.value;if(!n.set.has(i))return n.set.add(i),r}while(!r.done);return gt})}exclude(t,n){let r=new Set;for(let i of t){let o=n?n(i):i;r.add(o)}return this.filter(i=>{let o=n?n(i):i;return!r.has(o)})}};function dL(e){return typeof e=="string"?e:typeof e>"u"?"undefined":typeof e.toString=="function"?e.toString():Object.prototype.toString.call(e)}function rc(e){return!!e&&typeof e[Symbol.iterator]=="function"}var oc=new zt(()=>{},()=>gt),gt=Object.freeze({done:!0,value:void 0});function ye(...e){if(e.length===1){let t=e[0];if(t instanceof zt)return t;if(rc(t))return new zt(()=>t[Symbol.iterator](),n=>n.next());if(typeof t.length=="number")return new zt(()=>({index:0}),n=>n.index<t.length?{done:!1,value:t[n.index++]}:gt)}return e.length>1?new zt(()=>({collIndex:0,arrIndex:0}),t=>{do{if(t.iterator){let n=t.iterator.next();if(!n.done)return n;t.iterator=void 0}if(t.array){if(t.arrIndex<t.array.length)return{done:!1,value:t.array[t.arrIndex++]};t.array=void 0,t.arrIndex=0}if(t.collIndex<e.length){let n=e[t.collIndex++];rc(n)?t.iterator=n[Symbol.iterator]():n&&typeof n.length=="number"&&(t.array=n)}}while(t.iterator||t.array||t.collIndex<e.length);return gt}):oc}var nr=class extends zt{constructor(t,n,r){super(()=>({iterators:r?.includeRoot?[[t][Symbol.iterator]()]:[n(t)[Symbol.iterator]()],pruned:!1}),i=>{for(i.pruned&&(i.iterators.pop(),i.pruned=!1);i.iterators.length>0;){let s=i.iterators[i.iterators.length-1].next();if(s.done)i.iterators.pop();else return i.iterators.push(n(s.value)[Symbol.iterator]()),s}return gt})}iterator(){let t={state:this.startFn(),next:()=>this.nextFn(t.state),prune:()=>{t.state.pruned=!0},[Symbol.iterator]:()=>t};return t}},ic;(function(e){function t(o){return o.reduce((s,a)=>s+a,0)}e.sum=t;function n(o){return o.reduce((s,a)=>s*a,0)}e.product=n;function r(o){return o.reduce((s,a)=>Math.min(s,a))}e.min=r;function i(o){return o.reduce((s,a)=>Math.max(s,a))}e.max=i})(ic||(ic={}));function sc(e,t={}){for(let[n,r]of Object.entries(e))n.startsWith("$")||(Array.isArray(r)?r.forEach((i,o)=>{Ue(i)&&(i.$container=e,i.$containerProperty=n,i.$containerIndex=o,t.deep&&sc(i,t))}):Ue(r)&&(r.$container=e,r.$containerProperty=n,t.deep&&sc(r,t)))}function Hi(e,t){let n=e;for(;n;){if(t(n))return n;n=n.$container}}function st(e){let n=Xs(e).$document;if(!n)throw new Error("AST node has no document.");return n}function Xs(e){for(;e.$container;)e=e.$container;return e}function jp(e){return it(e)?e.ref?[e.ref]:[]:Mt(e)?e.items.map(t=>t.ref):[]}function ac(e,t){if(!e)throw new Error("Node must be an AstNode.");let n=t?.range;return new zt(()=>({keys:Object.keys(e),keyIndex:0,arrayIndex:0}),r=>{for(;r.keyIndex<r.keys.length;){let i=r.keys[r.keyIndex];if(!i.startsWith("$")){let o=e[i];if(Ue(o)){if(r.keyIndex++,zp(o,n))return{done:!1,value:o}}else if(Array.isArray(o)){for(;r.arrayIndex<o.length;){let s=r.arrayIndex++,a=o[s];if(Ue(a)&&zp(a,n))return{done:!1,value:a}}r.arrayIndex=0}}r.keyIndex++}return gt})}function cn(e,t){if(!e)throw new Error("Root node must be an AstNode.");return new nr(e,n=>ac(n,t))}function yt(e,t){if(e){if(t?.range&&!zp(e,t.range))return new nr(e,()=>[])}else throw new Error("Root node must be an AstNode.");return new nr(e,n=>ac(n,t),{includeRoot:!0})}function zp(e,t){if(!t)return!0;let n=e.$cstNode?.range;return n?AE(n,t):!1}function Gr(e){return new zt(()=>({keys:Object.keys(e),keyIndex:0,arrayIndex:0}),t=>{for(;t.keyIndex<t.keys.length;){let n=t.keys[t.keyIndex];if(!n.startsWith("$")){let r=e[n];if(it(r)||Mt(r))return t.keyIndex++,{done:!1,value:{reference:r,container:e,property:n}};if(Array.isArray(r)){for(;t.arrayIndex<r.length;){let i=t.arrayIndex++,o=r[i];if(it(o)||Mt(o))return{done:!1,value:{reference:o,container:e,property:n,index:i}}}t.arrayIndex=0}}t.keyIndex++}return gt})}function vE(e,t){let n=e.getTypeMetaData(t.$type),r=t;for(let i of Object.values(n.properties))i.defaultValue!==void 0&&r[i.name]===void 0&&(r[i.name]=_E(i.defaultValue))}function _E(e){return Array.isArray(e)?[...e.map(_E)]:e}var St={$type:"AbstractElement",cardinality:"cardinality"};function xc(e){return me.isInstance(e,St.$type)}var fc={$type:"AbstractParserRule"};function ir(e){return me.isInstance(e,fc.$type)}var lc={$type:"AbstractRule"};var jt={$type:"AbstractType"};var zr={$type:"Action",cardinality:"cardinality",feature:"feature",inferredType:"inferredType",operator:"operator",type:"type"};function or(e){return me.isInstance(e,zr.$type)}var dc={$type:"Alternatives",cardinality:"cardinality",elements:"elements"};function nh(e){return me.isInstance(e,dc.$type)}var kE={$type:"ArrayLiteral",elements:"elements"};var Vp={$type:"ArrayType",elementType:"elementType"};function NE(e){return me.isInstance(e,Vp.$type)}var jr={$type:"Assignment",cardinality:"cardinality",feature:"feature",operator:"operator",predicate:"predicate",terminal:"terminal"};function fn(e){return me.isInstance(e,jr.$type)}var Kp={$type:"BooleanLiteral",true:"true"};function LE(e){return me.isInstance(e,Kp.$type)}var Yr={$type:"CharacterRange",cardinality:"cardinality",left:"left",lookahead:"lookahead",parenthesized:"parenthesized",right:"right"};function PE(e){return me.isInstance(e,Yr.$type)}var zi={$type:"Condition"};var pc={$type:"Conjunction",left:"left",right:"right"};function OE(e){return me.isInstance(e,pc.$type)}var Vr={$type:"CrossReference",cardinality:"cardinality",deprecatedSyntax:"deprecatedSyntax",isMulti:"isMulti",terminal:"terminal",type:"type"};function dn(e){return me.isInstance(e,Vr.$type)}var hc={$type:"Disjunction",left:"left",right:"right"};function CE(e){return me.isInstance(e,hc.$type)}var qp={$type:"EndOfFile",cardinality:"cardinality"};function $E(e){return me.isInstance(e,qp.$type)}var Hr={$type:"Grammar",imports:"imports",interfaces:"interfaces",isDeclared:"isDeclared",name:"name",rules:"rules",types:"types"};var IE={$type:"GrammarImport",path:"path"};var ji={$type:"Group",cardinality:"cardinality",elements:"elements",guardCondition:"guardCondition",predicate:"predicate"};function Kr(e){return me.isInstance(e,ji.$type)}var Zp={$type:"InferredType",name:"name"};function Ec(e){return me.isInstance(e,Zp.$type)}var Tn={$type:"InfixRule",call:"call",dataType:"dataType",inferredType:"inferredType",name:"name",operators:"operators",parameters:"parameters",returnType:"returnType"};function qr(e){return me.isInstance(e,Tn.$type)}var Yp={$type:"InfixRuleOperatorList",associativity:"associativity",operators:"operators"};var RE={$type:"InfixRuleOperators",precedences:"precedences"};var zs={$type:"Interface",attributes:"attributes",name:"name",superTypes:"superTypes"};function DE(e){return me.isInstance(e,zs.$type)}var js={$type:"Keyword",cardinality:"cardinality",predicate:"predicate",value:"value"};function Yt(e){return me.isInstance(e,js.$type)}var cc={$type:"NamedArgument",calledByName:"calledByName",parameter:"parameter",value:"value"};var Yi={$type:"NegatedToken",cardinality:"cardinality",lookahead:"lookahead",parenthesized:"parenthesized",terminal:"terminal"};function ME(e){return me.isInstance(e,Yi.$type)}var Jp={$type:"Negation",value:"value"};function FE(e){return me.isInstance(e,Jp.$type)}var SE={$type:"NumberLiteral",value:"value"};var uc={$type:"Parameter",name:"name"};var Qp={$type:"ParameterReference",parameter:"parameter"};function BE(e){return me.isInstance(e,Qp.$type)}var un={$type:"ParserRule",dataType:"dataType",definition:"definition",entry:"entry",fragment:"fragment",inferredType:"inferredType",name:"name",parameters:"parameters",returnType:"returnType"};function at(e){return me.isInstance(e,un.$type)}var mc={$type:"ReferenceType",isMulti:"isMulti",referenceType:"referenceType"};function WE(e){return me.isInstance(e,mc.$type)}var Vi={$type:"RegexToken",cardinality:"cardinality",lookahead:"lookahead",parenthesized:"parenthesized",regex:"regex"};function XE(e){return me.isInstance(e,Vi.$type)}var eh={$type:"ReturnType",name:"name"};function UE(e){return me.isInstance(e,eh.$type)}var Ki={$type:"RuleCall",arguments:"arguments",cardinality:"cardinality",predicate:"predicate",rule:"rule"};function pn(e){return me.isInstance(e,Ki.$type)}var Ys={$type:"SimpleType",primitiveType:"primitiveType",stringType:"stringType",typeRef:"typeRef"};function rh(e){return me.isInstance(e,Ys.$type)}var bE={$type:"StringLiteral",value:"value"};var qi={$type:"TerminalAlternatives",cardinality:"cardinality",elements:"elements",lookahead:"lookahead",parenthesized:"parenthesized"};function GE(e){return me.isInstance(e,qi.$type)}var Ft={$type:"TerminalElement",cardinality:"cardinality",lookahead:"lookahead",parenthesized:"parenthesized"};var Zi={$type:"TerminalGroup",cardinality:"cardinality",elements:"elements",lookahead:"lookahead",parenthesized:"parenthesized"};function HE(e){return me.isInstance(e,Zi.$type)}var rr={$type:"TerminalRule",definition:"definition",fragment:"fragment",hidden:"hidden",name:"name",type:"type"};function xt(e){return me.isInstance(e,rr.$type)}var Ji={$type:"TerminalRuleCall",cardinality:"cardinality",lookahead:"lookahead",parenthesized:"parenthesized",rule:"rule"};function ih(e){return me.isInstance(e,Ji.$type)}var gc={$type:"Type",name:"name",type:"type"};function oh(e){return me.isInstance(e,gc.$type)}var Us={$type:"TypeAttribute",defaultValue:"defaultValue",isOptional:"isOptional",name:"name",type:"type"};var Gs={$type:"TypeDefinition"};var th={$type:"UnionType",types:"types"};function zE(e){return me.isInstance(e,th.$type)}var yc={$type:"UnorderedGroup",cardinality:"cardinality",elements:"elements"};function sh(e){return me.isInstance(e,yc.$type)}var Qi={$type:"UntilToken",cardinality:"cardinality",lookahead:"lookahead",parenthesized:"parenthesized",terminal:"terminal"};function jE(e){return me.isInstance(e,Qi.$type)}var Hs={$type:"ValueLiteral"};var Vs={$type:"Wildcard",cardinality:"cardinality",lookahead:"lookahead",parenthesized:"parenthesized"};function YE(e){return me.isInstance(e,Vs.$type)}var Ks=class extends Ui{constructor(){super(...arguments),this.types={AbstractElement:{name:St.$type,properties:{cardinality:{name:St.cardinality,optional:!0}},superTypes:[]},AbstractParserRule:{name:fc.$type,properties:{},superTypes:[lc.$type,jt.$type]},AbstractRule:{name:lc.$type,properties:{},superTypes:[]},AbstractType:{name:jt.$type,properties:{},superTypes:[]},Action:{name:zr.$type,properties:{cardinality:{name:zr.cardinality,optional:!0},feature:{name:zr.feature,optional:!0},inferredType:{name:zr.inferredType,optional:!0},operator:{name:zr.operator,optional:!0},type:{name:zr.type,referenceType:jt.$type,optional:!0}},superTypes:[St.$type]},Alternatives:{name:dc.$type,properties:{cardinality:{name:dc.cardinality,optional:!0},elements:{name:dc.elements,defaultValue:[]}},superTypes:[St.$type]},ArrayLiteral:{name:kE.$type,properties:{elements:{name:kE.elements,defaultValue:[]}},superTypes:[Hs.$type]},ArrayType:{name:Vp.$type,properties:{elementType:{name:Vp.elementType}},superTypes:[Gs.$type]},Assignment:{name:jr.$type,properties:{cardinality:{name:jr.cardinality,optional:!0},feature:{name:jr.feature},operator:{name:jr.operator},predicate:{name:jr.predicate,optional:!0},terminal:{name:jr.terminal}},superTypes:[St.$type]},BooleanLiteral:{name:Kp.$type,properties:{true:{name:Kp.true,defaultValue:!1}},superTypes:[zi.$type,Hs.$type]},CharacterRange:{name:Yr.$type,properties:{cardinality:{name:Yr.cardinality,optional:!0},left:{name:Yr.left},lookahead:{name:Yr.lookahead,optional:!0},parenthesized:{name:Yr.parenthesized,defaultValue:!1,optional:!0},right:{name:Yr.right,optional:!0}},superTypes:[Ft.$type]},Condition:{name:zi.$type,properties:{},superTypes:[]},Conjunction:{name:pc.$type,properties:{left:{name:pc.left},right:{name:pc.right}},superTypes:[zi.$type]},CrossReference:{name:Vr.$type,properties:{cardinality:{name:Vr.cardinality,optional:!0},deprecatedSyntax:{name:Vr.deprecatedSyntax,defaultValue:!1},isMulti:{name:Vr.isMulti,defaultValue:!1},terminal:{name:Vr.terminal,optional:!0},type:{name:Vr.type,referenceType:jt.$type}},superTypes:[St.$type]},Disjunction:{name:hc.$type,properties:{left:{name:hc.left},right:{name:hc.right}},superTypes:[zi.$type]},EndOfFile:{name:qp.$type,properties:{cardinality:{name:qp.cardinality,optional:!0}},superTypes:[St.$type]},Grammar:{name:Hr.$type,properties:{imports:{name:Hr.imports,defaultValue:[]},interfaces:{name:Hr.interfaces,defaultValue:[]},isDeclared:{name:Hr.isDeclared,defaultValue:!1},name:{name:Hr.name,optional:!0},rules:{name:Hr.rules,defaultValue:[]},types:{name:Hr.types,defaultValue:[]}},superTypes:[]},GrammarImport:{name:IE.$type,properties:{path:{name:IE.path}},superTypes:[]},Group:{name:ji.$type,properties:{cardinality:{name:ji.cardinality,optional:!0},elements:{name:ji.elements,defaultValue:[]},guardCondition:{name:ji.guardCondition,optional:!0},predicate:{name:ji.predicate,optional:!0}},superTypes:[St.$type]},InferredType:{name:Zp.$type,properties:{name:{name:Zp.name}},superTypes:[jt.$type]},InfixRule:{name:Tn.$type,properties:{call:{name:Tn.call},dataType:{name:Tn.dataType,optional:!0},inferredType:{name:Tn.inferredType,optional:!0},name:{name:Tn.name},operators:{name:Tn.operators},parameters:{name:Tn.parameters,defaultValue:[]},returnType:{name:Tn.returnType,referenceType:jt.$type,optional:!0}},superTypes:[fc.$type]},InfixRuleOperatorList:{name:Yp.$type,properties:{associativity:{name:Yp.associativity,optional:!0},operators:{name:Yp.operators,defaultValue:[]}},superTypes:[]},InfixRuleOperators:{name:RE.$type,properties:{precedences:{name:RE.precedences,defaultValue:[]}},superTypes:[]},Interface:{name:zs.$type,properties:{attributes:{name:zs.attributes,defaultValue:[]},name:{name:zs.name},superTypes:{name:zs.superTypes,defaultValue:[],referenceType:jt.$type}},superTypes:[jt.$type]},Keyword:{name:js.$type,properties:{cardinality:{name:js.cardinality,optional:!0},predicate:{name:js.predicate,optional:!0},value:{name:js.value}},superTypes:[St.$type]},NamedArgument:{name:cc.$type,properties:{calledByName:{name:cc.calledByName,defaultValue:!1},parameter:{name:cc.parameter,referenceType:uc.$type,optional:!0},value:{name:cc.value}},superTypes:[]},NegatedToken:{name:Yi.$type,properties:{cardinality:{name:Yi.cardinality,optional:!0},lookahead:{name:Yi.lookahead,optional:!0},parenthesized:{name:Yi.parenthesized,defaultValue:!1,optional:!0},terminal:{name:Yi.terminal}},superTypes:[Ft.$type]},Negation:{name:Jp.$type,properties:{value:{name:Jp.value}},superTypes:[zi.$type]},NumberLiteral:{name:SE.$type,properties:{value:{name:SE.value}},superTypes:[Hs.$type]},Parameter:{name:uc.$type,properties:{name:{name:uc.name}},superTypes:[]},ParameterReference:{name:Qp.$type,properties:{parameter:{name:Qp.parameter,referenceType:uc.$type}},superTypes:[zi.$type]},ParserRule:{name:un.$type,properties:{dataType:{name:un.dataType,optional:!0},definition:{name:un.definition},entry:{name:un.entry,defaultValue:!1},fragment:{name:un.fragment,defaultValue:!1},inferredType:{name:un.inferredType,optional:!0},name:{name:un.name},parameters:{name:un.parameters,defaultValue:[]},returnType:{name:un.returnType,referenceType:jt.$type,optional:!0}},superTypes:[fc.$type]},ReferenceType:{name:mc.$type,properties:{isMulti:{name:mc.isMulti,defaultValue:!1},referenceType:{name:mc.referenceType}},superTypes:[Gs.$type]},RegexToken:{name:Vi.$type,properties:{cardinality:{name:Vi.cardinality,optional:!0},lookahead:{name:Vi.lookahead,optional:!0},parenthesized:{name:Vi.parenthesized,defaultValue:!1,optional:!0},regex:{name:Vi.regex}},superTypes:[Ft.$type]},ReturnType:{name:eh.$type,properties:{name:{name:eh.name}},superTypes:[]},RuleCall:{name:Ki.$type,properties:{arguments:{name:Ki.arguments,defaultValue:[]},cardinality:{name:Ki.cardinality,optional:!0},predicate:{name:Ki.predicate,optional:!0},rule:{name:Ki.rule,referenceType:lc.$type}},superTypes:[St.$type]},SimpleType:{name:Ys.$type,properties:{primitiveType:{name:Ys.primitiveType,optional:!0},stringType:{name:Ys.stringType,optional:!0},typeRef:{name:Ys.typeRef,referenceType:jt.$type,optional:!0}},superTypes:[Gs.$type]},StringLiteral:{name:bE.$type,properties:{value:{name:bE.value}},superTypes:[Hs.$type]},TerminalAlternatives:{name:qi.$type,properties:{cardinality:{name:qi.cardinality,optional:!0},elements:{name:qi.elements,defaultValue:[]},lookahead:{name:qi.lookahead,optional:!0},parenthesized:{name:qi.parenthesized,defaultValue:!1,optional:!0}},superTypes:[Ft.$type]},TerminalElement:{name:Ft.$type,properties:{cardinality:{name:Ft.cardinality,optional:!0},lookahead:{name:Ft.lookahead,optional:!0},parenthesized:{name:Ft.parenthesized,defaultValue:!1,optional:!0}},superTypes:[St.$type]},TerminalGroup:{name:Zi.$type,properties:{cardinality:{name:Zi.cardinality,optional:!0},elements:{name:Zi.elements,defaultValue:[]},lookahead:{name:Zi.lookahead,optional:!0},parenthesized:{name:Zi.parenthesized,defaultValue:!1,optional:!0}},superTypes:[Ft.$type]},TerminalRule:{name:rr.$type,properties:{definition:{name:rr.definition},fragment:{name:rr.fragment,defaultValue:!1},hidden:{name:rr.hidden,defaultValue:!1},name:{name:rr.name},type:{name:rr.type,optional:!0}},superTypes:[lc.$type]},TerminalRuleCall:{name:Ji.$type,properties:{cardinality:{name:Ji.cardinality,optional:!0},lookahead:{name:Ji.lookahead,optional:!0},parenthesized:{name:Ji.parenthesized,defaultValue:!1,optional:!0},rule:{name:Ji.rule,referenceType:rr.$type}},superTypes:[Ft.$type]},Type:{name:gc.$type,properties:{name:{name:gc.name},type:{name:gc.type}},superTypes:[jt.$type]},TypeAttribute:{name:Us.$type,properties:{defaultValue:{name:Us.defaultValue,optional:!0},isOptional:{name:Us.isOptional,defaultValue:!1},name:{name:Us.name},type:{name:Us.type}},superTypes:[]},TypeDefinition:{name:Gs.$type,properties:{},superTypes:[]},UnionType:{name:th.$type,properties:{types:{name:th.types,defaultValue:[]}},superTypes:[Gs.$type]},UnorderedGroup:{name:yc.$type,properties:{cardinality:{name:yc.cardinality,optional:!0},elements:{name:yc.elements,defaultValue:[]}},superTypes:[St.$type]},UntilToken:{name:Qi.$type,properties:{cardinality:{name:Qi.cardinality,optional:!0},lookahead:{name:Qi.lookahead,optional:!0},parenthesized:{name:Qi.parenthesized,defaultValue:!1,optional:!0},terminal:{name:Qi.terminal}},superTypes:[Ft.$type]},ValueLiteral:{name:Hs.$type,properties:{},superTypes:[]},Wildcard:{name:Vs.$type,properties:{cardinality:{name:Vs.cardinality,optional:!0},lookahead:{name:Vs.lookahead,optional:!0},parenthesized:{name:Vs.parenthesized,defaultValue:!1,optional:!0}},superTypes:[Ft.$type]}}}},me=new Ks;function qs(e){return new nr(e,t=>tr(t)?t.content:[],{includeRoot:!0})}function qE(e,t){for(;e.container;)if(e=e.container,e===t)return!0;return!1}function ZE(e){return{start:{line:e.startLine-1,character:e.startColumn-1},end:{line:e.endLine-1,character:e.endColumn}}}function Zs(e){let{startOffset:t,endOffset:n}=e;return typeof t=="number"&&Number.isFinite(t)&&t>=0&&typeof n=="number"&&Number.isFinite(n)&&n>=t}function eo(e){if(!e)return;let{offset:t,end:n,range:r}=e;return{range:r,offset:t,end:n,length:n-t}}var vn;(function(e){e[e.Before=0]="Before",e[e.After=1]="After",e[e.OverlapFront=2]="OverlapFront",e[e.OverlapBack=3]="OverlapBack",e[e.Inside=4]="Inside",e[e.Outside=5]="Outside"})(vn||(vn={}));function pL(e,t){if(e.end.line<t.start.line||e.end.line===t.start.line&&e.end.character<=t.start.character)return vn.Before;if(e.start.line>t.end.line||e.start.line===t.end.line&&e.start.character>=t.end.character)return vn.After;let n=e.start.line>t.start.line||e.start.line===t.start.line&&e.start.character>=t.start.character,r=e.end.line<t.end.line||e.end.line===t.end.line&&e.end.character<=t.end.character;return n&&r?vn.Inside:n?vn.OverlapBack:r?vn.OverlapFront:vn.Outside}function AE(e,t){return pL(e,t)>vn.After}var JE=/^[\w\p{L}]$/u;function QE(e,t){if(e){let n=hL(e,!0);if(n&&KE(n,t))return n;if(nc(e)){let r=e.content.findIndex(i=>!i.hidden);for(let i=r-1;i>=0;i--){let o=e.content[i];if(KE(o,t))return o}}}}function KE(e,t){return tc(e)&&t.includes(e.tokenType.name)}function hL(e,t=!0){for(;e.container;){let n=e.container,r=n.content.indexOf(e);for(;r>0;){r--;let i=n.content[r];if(t||!i.hidden)return i}e=n}}var kc={};Gp(kc,{findAssignment:()=>Eh,findNameAssignment:()=>_c,findNodeForKeyword:()=>yh,findNodeForProperty:()=>ra,findNodesForKeyword:()=>TL,findNodesForKeywordInternal:()=>xh,findNodesForProperty:()=>mh,getActionAtElement:()=>aw,getActionType:()=>cw,getAllReachableRules:()=>na,getAllRulesUsedForCrossReferences:()=>wL,getCrossReferenceTerminal:()=>ph,getEntryRule:()=>rw,getExplicitRuleType:()=>Ac,getHiddenRules:()=>iw,getRuleType:()=>wh,getRuleTypeName:()=>IL,getTypeName:()=>ar,isArrayCardinality:()=>_L,isArrayOperator:()=>AL,isCommentTerminal:()=>hh,isDataType:()=>kL,isDataTypeRule:()=>ia,isOptionalCardinality:()=>vL,terminalRegex:()=>no});var Js=class extends Error{constructor(t,n){let r=typeof n=="string"?n:n();super(t?`${r} at ${t.range.start.line}:${t.range.start.character}`:r)}};function sr(e,t="Error: Got unexpected value."){throw new Error(typeof t=="string"?t:t())}function oe(e){return e.charCodeAt(0)}function wc(e,t){Array.isArray(e)?e.forEach(function(n){t.push(n)}):t.push(e)}function to(e,t){if(e[t]===!0)throw"duplicate flag "+t;let n=e[t];e[t]=!0}function Zr(e){if(e===void 0)throw Error("Internal Error - Should never get here!");return!0}function Qs(){throw Error("Internal Error - Should never get here!")}function ah(e){return e.type==="Character"}var ea=[];for(let e=oe("0");e<=oe("9");e++)ea.push(e);var ta=[oe("_")].concat(ea);for(let e=oe("a");e<=oe("z");e++)ta.push(e);for(let e=oe("A");e<=oe("Z");e++)ta.push(e);var lh=[oe(" "),oe("\f"),oe(`
|
|
3
|
+
`),oe("\r"),oe(" "),oe("\v"),oe(" "),oe("\xA0"),oe("\u1680"),oe("\u2000"),oe("\u2001"),oe("\u2002"),oe("\u2003"),oe("\u2004"),oe("\u2005"),oe("\u2006"),oe("\u2007"),oe("\u2008"),oe("\u2009"),oe("\u200A"),oe("\u2028"),oe("\u2029"),oe("\u202F"),oe("\u205F"),oe("\u3000"),oe("\uFEFF")];var mL=/[0-9a-fA-F]/,Tc=/[0-9]/,gL=/[1-9]/,Jr=class{constructor(){this.idx=0,this.input="",this.groupIdx=0}saveState(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}}restoreState(t){this.idx=t.idx,this.input=t.input,this.groupIdx=t.groupIdx}pattern(t){this.idx=0,this.input=t,this.groupIdx=0,this.consumeChar("/");let n=this.disjunction();this.consumeChar("/");let r={type:"Flags",loc:{begin:this.idx,end:t.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};for(;this.isRegExpFlag();)switch(this.popChar()){case"g":to(r,"global");break;case"i":to(r,"ignoreCase");break;case"m":to(r,"multiLine");break;case"u":to(r,"unicode");break;case"y":to(r,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:r,value:n,loc:this.loc(0)}}disjunction(){let t=[],n=this.idx;for(t.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),t.push(this.alternative());return{type:"Disjunction",value:t,loc:this.loc(n)}}alternative(){let t=[],n=this.idx;for(;this.isTerm();)t.push(this.term());return{type:"Alternative",value:t,loc:this.loc(n)}}term(){return this.isAssertion()?this.assertion():this.atom()}assertion(){let t=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(t)};case"$":return{type:"EndAnchor",loc:this.loc(t)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(t)};case"B":return{type:"NonWordBoundary",loc:this.loc(t)}}throw Error("Invalid Assertion Escape");case"(":this.consumeChar("?");let n;switch(this.popChar()){case"=":n="Lookahead";break;case"!":n="NegativeLookahead";break;case"<":{switch(this.popChar()){case"=":n="Lookbehind";break;case"!":n="NegativeLookbehind"}break}}Zr(n);let r=this.disjunction();return this.consumeChar(")"),{type:n,value:r,loc:this.loc(t)}}return Qs()}quantifier(t=!1){let n,r=this.idx;switch(this.popChar()){case"*":n={atLeast:0,atMost:1/0};break;case"+":n={atLeast:1,atMost:1/0};break;case"?":n={atLeast:0,atMost:1};break;case"{":let i=this.integerIncludingZero();switch(this.popChar()){case"}":n={atLeast:i,atMost:i};break;case",":let o;this.isDigit()?(o=this.integerIncludingZero(),n={atLeast:i,atMost:o}):n={atLeast:i,atMost:1/0},this.consumeChar("}");break}if(t===!0&&n===void 0)return;Zr(n);break}if(!(t===!0&&n===void 0)&&Zr(n))return this.peekChar(0)==="?"?(this.consumeChar("?"),n.greedy=!1):n.greedy=!0,n.type="Quantifier",n.loc=this.loc(r),n}atom(){let t,n=this.idx;switch(this.peekChar()){case".":t=this.dotAll();break;case"\\":t=this.atomEscape();break;case"[":t=this.characterClass();break;case"(":t=this.group();break}return t===void 0&&this.isPatternCharacter()&&(t=this.patternCharacter()),Zr(t)?(t.loc=this.loc(n),this.isQuantifier()&&(t.quantifier=this.quantifier()),t):Qs()}dotAll(){return this.consumeChar("."),{type:"Set",complement:!0,value:[oe(`
|
|
4
|
+
`),oe("\r"),oe("\u2028"),oe("\u2029")]}}atomEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}decimalEscapeAtom(){return{type:"GroupBackReference",value:this.positiveInteger()}}characterClassEscape(){let t,n=!1;switch(this.popChar()){case"d":t=ea;break;case"D":t=ea,n=!0;break;case"s":t=lh;break;case"S":t=lh,n=!0;break;case"w":t=ta;break;case"W":t=ta,n=!0;break}return Zr(t)?{type:"Set",value:t,complement:n}:Qs()}controlEscapeAtom(){let t;switch(this.popChar()){case"f":t=oe("\f");break;case"n":t=oe(`
|
|
5
5
|
`);break;case"r":t=oe("\r");break;case"t":t=oe(" ");break;case"v":t=oe("\v");break}return Zr(t)?{type:"Character",value:t}:Qs()}controlLetterEscapeAtom(){this.consumeChar("c");let t=this.popChar();if(/[a-zA-Z]/.test(t)===!1)throw Error("Invalid ");return{type:"Character",value:t.toUpperCase().charCodeAt(0)-64}}nulCharacterAtom(){return this.consumeChar("0"),{type:"Character",value:oe("\0")}}hexEscapeSequenceAtom(){return this.consumeChar("x"),this.parseHexDigits(2)}regExpUnicodeEscapeSequenceAtom(){return this.consumeChar("u"),this.parseHexDigits(4)}identityEscapeAtom(){let t=this.popChar();return{type:"Character",value:oe(t)}}classPatternCharacterAtom(){switch(this.peekChar()){case`
|
|
6
|
-
`:case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:let t=this.popChar();return{type:"Character",value:oe(t)}}}characterClass(){let t=[],n=!1;for(this.consumeChar("["),this.peekChar(0)==="^"&&(this.consumeChar("^"),n=!0);this.isClassAtom();){let r=this.classAtom(),i=r.type==="Character";if(
|
|
7
|
-
`:case"\r":case"\u2028":case"\u2029":throw Error("TBD");case"\\":return this.classEscape();default:return this.classPatternCharacterAtom()}}classEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"b":return this.consumeChar("b"),{type:"Character",value:oe("\b")};case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}group(){let t=!0;this.consumeChar("("),this.peekChar(0)==="?"?(this.consumeChar("?"),this.consumeChar(":"),t=!1):this.groupIdx++;let n=this.disjunction();this.consumeChar(")");let r={type:"Group",capturing:t,value:n};return t&&(r.idx=this.groupIdx),r}positiveInteger(){let t=this.popChar();if(
|
|
8
|
-
`:case"\r":case"\u2028":case"\u2029":case"^":case"$":case"\\":case".":case"*":case"+":case"?":case"(":case")":case"[":case"|":throw Error("TBD");default:return{type:"Character",value:oe(t)}}}isRegExpFlag(){switch(this.peekChar(0)){case"g":case"i":case"m":case"u":case"y":return!0;default:return!1}}isRangeDash(){return this.peekChar()==="-"&&this.isClassAtom(1)}isDigit(){return
|
|
6
|
+
`:case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:let t=this.popChar();return{type:"Character",value:oe(t)}}}characterClass(){let t=[],n=!1;for(this.consumeChar("["),this.peekChar(0)==="^"&&(this.consumeChar("^"),n=!0);this.isClassAtom();){let r=this.classAtom(),i=r.type==="Character";if(ah(r)&&this.isRangeDash()){this.consumeChar("-");let o=this.classAtom(),s=o.type==="Character";if(ah(o)){if(o.value<r.value)throw Error("Range out of order in character class");t.push({from:r.value,to:o.value})}else wc(r.value,t),t.push(oe("-")),wc(o.value,t)}else wc(r.value,t)}return this.consumeChar("]"),{type:"Set",complement:n,value:t}}classAtom(){switch(this.peekChar()){case"]":case`
|
|
7
|
+
`:case"\r":case"\u2028":case"\u2029":throw Error("TBD");case"\\":return this.classEscape();default:return this.classPatternCharacterAtom()}}classEscape(){switch(this.consumeChar("\\"),this.peekChar()){case"b":return this.consumeChar("b"),{type:"Character",value:oe("\b")};case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}}group(){let t=!0;this.consumeChar("("),this.peekChar(0)==="?"?(this.consumeChar("?"),this.consumeChar(":"),t=!1):this.groupIdx++;let n=this.disjunction();this.consumeChar(")");let r={type:"Group",capturing:t,value:n};return t&&(r.idx=this.groupIdx),r}positiveInteger(){let t=this.popChar();if(gL.test(t)===!1)throw Error("Expecting a positive integer");for(;Tc.test(this.peekChar(0));)t+=this.popChar();return parseInt(t,10)}integerIncludingZero(){let t=this.popChar();if(Tc.test(t)===!1)throw Error("Expecting an integer");for(;Tc.test(this.peekChar(0));)t+=this.popChar();return parseInt(t,10)}patternCharacter(){let t=this.popChar();switch(t){case`
|
|
8
|
+
`:case"\r":case"\u2028":case"\u2029":case"^":case"$":case"\\":case".":case"*":case"+":case"?":case"(":case")":case"[":case"|":throw Error("TBD");default:return{type:"Character",value:oe(t)}}}isRegExpFlag(){switch(this.peekChar(0)){case"g":case"i":case"m":case"u":case"y":return!0;default:return!1}}isRangeDash(){return this.peekChar()==="-"&&this.isClassAtom(1)}isDigit(){return Tc.test(this.peekChar(0))}isClassAtom(t=0){switch(this.peekChar(t)){case"]":case`
|
|
9
9
|
`:case"\r":case"\u2028":case"\u2029":return!1;default:return!0}}isTerm(){return this.isAtom()||this.isAssertion()}isAtom(){if(this.isPatternCharacter())return!0;switch(this.peekChar(0)){case".":case"\\":case"[":case"(":return!0;default:return!1}}isAssertion(){switch(this.peekChar(0)){case"^":case"$":return!0;case"\\":switch(this.peekChar(1)){case"b":case"B":return!0;default:return!1}case"(":return this.peekChar(1)==="?"&&(this.peekChar(2)==="="||this.peekChar(2)==="!"||this.peekChar(2)==="<"&&(this.peekChar(3)==="="||this.peekChar(3)==="!"));default:return!1}}isQuantifier(){let t=this.saveState();try{return this.quantifier(!0)!==void 0}catch{return!1}finally{this.restoreState(t)}}isPatternCharacter(){switch(this.peekChar()){case"^":case"$":case"\\":case".":case"*":case"+":case"?":case"(":case")":case"[":case"|":case"/":case`
|
|
10
|
-
`:case"\r":case"\u2028":case"\u2029":return!1;default:return!0}}parseHexDigits(t){let n="";for(let i=0;i<t;i++){let o=this.popChar();if(
|
|
10
|
+
`:case"\r":case"\u2028":case"\u2029":return!1;default:return!0}}parseHexDigits(t){let n="";for(let i=0;i<t;i++){let o=this.popChar();if(mL.test(o)===!1)throw Error("Expecting a HexDecimal digits");n+=o}return{type:"Character",value:parseInt(n,16)}}peekChar(t=0){return this.input[this.idx+t]}popChar(){let t=this.peekChar(0);return this.consumeChar(void 0),t}consumeChar(t){if(t!==void 0&&this.input[this.idx]!==t)throw Error("Expected: '"+t+"' but found: '"+this.input[this.idx]+"' at offset: "+this.idx);if(this.idx>=this.input.length)throw Error("Unexpected end of input");this.idx++}loc(t){return{begin:t,end:this.idx}}};var hn=class{visitChildren(t){for(let n in t){let r=t[n];t.hasOwnProperty(n)&&(r.type!==void 0?this.visit(r):Array.isArray(r)&&r.forEach(i=>{this.visit(i)},this))}}visit(t){switch(t.type){case"Pattern":this.visitPattern(t);break;case"Flags":this.visitFlags(t);break;case"Disjunction":this.visitDisjunction(t);break;case"Alternative":this.visitAlternative(t);break;case"StartAnchor":this.visitStartAnchor(t);break;case"EndAnchor":this.visitEndAnchor(t);break;case"WordBoundary":this.visitWordBoundary(t);break;case"NonWordBoundary":this.visitNonWordBoundary(t);break;case"Lookahead":this.visitLookahead(t);break;case"NegativeLookahead":this.visitNegativeLookahead(t);break;case"Lookbehind":this.visitLookbehind(t);break;case"NegativeLookbehind":this.visitNegativeLookbehind(t);break;case"Character":this.visitCharacter(t);break;case"Set":this.visitSet(t);break;case"Group":this.visitGroup(t);break;case"GroupBackReference":this.visitGroupBackReference(t);break;case"Quantifier":this.visitQuantifier(t);break}this.visitChildren(t)}visitPattern(t){}visitFlags(t){}visitDisjunction(t){}visitAlternative(t){}visitStartAnchor(t){}visitEndAnchor(t){}visitWordBoundary(t){}visitNonWordBoundary(t){}visitLookahead(t){}visitNegativeLookahead(t){}visitLookbehind(t){}visitNegativeLookbehind(t){}visitCharacter(t){}visitSet(t){}visitGroup(t){}visitGroupBackReference(t){}visitQuantifier(t){}};var ew=/\r?\n/gm,yL=new Jr,uh=class extends hn{constructor(){super(...arguments),this.isStarting=!0,this.endRegexpStack=[],this.multiline=!1}get endRegex(){return this.endRegexpStack.join("")}reset(t){this.multiline=!1,this.regex=t,this.startRegexp="",this.isStarting=!0,this.endRegexpStack=[]}visitGroup(t){t.quantifier&&(this.isStarting=!1,this.endRegexpStack=[])}visitCharacter(t){let n=String.fromCharCode(t.value);if(!this.multiline&&n===`
|
|
11
11
|
`&&(this.multiline=!0),t.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{let r=Qr(n);this.endRegexpStack.push(r),this.isStarting&&(this.startRegexp+=r)}}visitSet(t){if(!this.multiline){let n=this.regex.substring(t.loc.begin,t.loc.end),r=new RegExp(n);this.multiline=!!`
|
|
12
|
-
`.match(r)}if(t.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{let n=this.regex.substring(t.loc.begin,t.loc.end);this.endRegexpStack.push(n),this.isStarting&&(this.startRegexp+=n)}}visitChildren(t){t.type==="Group"&&t.quantifier||super.visitChildren(t)}},
|
|
13
|
-
\r \v \xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF`.split("");function Tc(e){let t=typeof e=="string"?new RegExp(e):e;return pL.some(n=>t.test(n))}function Qr(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function VE(e,t){let n=hL(e),r=t.match(n);return!!r&&r[0].length>0}function hL(e){typeof e=="string"&&(e=new RegExp(e));let t=e,n=e.source,r=0;function i(){let o="",s;function a(c){o+=n.substr(r,c),r+=c}function l(c){o+="(?:"+n.substr(r,c)+"|$)",r+=c}for(;r<n.length;)switch(n[r]){case"\\":switch(n[r+1]){case"c":l(3);break;case"x":l(4);break;case"u":t.unicode?n[r+2]==="{"?l(n.indexOf("}",r)-r+1):l(6):l(2);break;case"p":case"P":t.unicode?l(n.indexOf("}",r)-r+1):l(2);break;case"k":l(n.indexOf(">",r)-r+1);break;default:l(2);break}break;case"[":s=/\[(?:\\.|.)*?\]/g,s.lastIndex=r,s=s.exec(n)||[],l(s[0].length);break;case"|":case"^":case"$":case"*":case"+":case"?":a(1);break;case"{":s=/\{\d+,?\d*\}/g,s.lastIndex=r,s=s.exec(n),s?a(s[0].length):l(1);break;case"(":if(n[r+1]==="?")switch(n[r+2]){case":":o+="(?:",r+=3,o+=i()+"|$)";break;case"=":o+="(?=",r+=3,o+=i()+")";break;case"!":s=r,r+=3,i(),o+=n.substr(s,r-s);break;case"<":switch(n[r+3]){case"=":case"!":s=r,r+=4,i(),o+=n.substr(s,r-s);break;default:a(n.indexOf(">",r)-r+1),o+=i()+"|$)";break}break}else a(1),o+=i()+"|$)";break;case")":return++r,o;default:l(1);break}return o}return new RegExp(i(),e.flags)}function KE(e){return e.rules.find(t=>at(t)&&t.entry)}function qE(e){return e.rules.filter(t=>xt(t)&&t.hidden)}function na(e,t){let n=new Set,r=KE(e);if(!r)return new Set(e.rules);let i=[r].concat(qE(e));for(let s of i)ZE(s,n,t);let o=new Set;for(let s of e.rules)(n.has(s.name)||xt(s)&&s.hidden)&&o.add(s);return o}function ZE(e,t,n){t.add(e.name),cn(e).forEach(r=>{if(pn(r)||n&&th(r)){let i=r.rule.ref;i&&!t.has(i.name)&&ZE(i,t,n)}})}function mL(e){let t=new Set;return cn(e).forEach(n=>{dn(n)&&(at(n.type.ref)&&t.add(n.type.ref),xc(n.type.ref)&&at(n.type.ref.$container)&&t.add(n.type.ref.$container))}),t}function uh(e){if(e.terminal)return e.terminal;if(e.type.ref)return _c(e.type.ref)?.terminal}function fh(e){return e.hidden&&!Tc(to(e))}function dh(e,t){return!e||!t?[]:ph(e,t,e.astNode,!0)}function ra(e,t,n){if(!e||!t)return;let r=ph(e,t,e.astNode,!0);if(r.length!==0)return n!==void 0?n=Math.max(0,Math.min(n,r.length-1)):n=0,r[n]}function ph(e,t,n,r){if(!r){let i=Gi(e.grammarSource,fn);if(i&&i.feature===t)return[e]}return tr(e)&&e.astNode===n?e.content.flatMap(i=>ph(i,t,n,!1)):[]}function gL(e,t){return e?mh(e,t,e?.astNode):[]}function hh(e,t,n){if(!e)return;let r=mh(e,t,e?.astNode);if(r.length!==0)return n!==void 0?n=Math.max(0,Math.min(n,r.length-1)):n=0,r[n]}function mh(e,t,n){if(e.astNode!==n)return[];if(jt(e.grammarSource)&&e.grammarSource.value===t)return[e];let r=qs(e).iterator(),i,o=[];do if(i=r.next(),!i.done){let s=i.value;s.astNode===n?jt(s.grammarSource)&&s.grammarSource.value===t&&o.push(s):r.prune()}while(!i.done);return o}function gh(e){let t=e.astNode;for(;t===e.container?.astNode;){let n=Gi(e.grammarSource,fn);if(n)return n;e=e.container}}function _c(e){let t=e;return xc(t)&&(or(t.$container)?t=t.$container.$container:ir(t.$container)?t=t.$container:sr(t.$container)),JE(e,t,new Map)}function JE(e,t,n){function r(i,o){let s;return Gi(i,fn)||(s=JE(o,o,n)),n.set(e,s),s}if(n.has(e))return n.get(e);n.set(e,void 0);for(let i of cn(t)){if(fn(i)&&i.feature.toLowerCase()==="name")return n.set(e,i),i;if(pn(i)&&at(i.rule.ref))return r(i,i.rule.ref);if(eh(i)&&i.typeRef?.ref)return r(i,i.typeRef.ref)}}function QE(e){let t=e.$container;if(Kr(t)){let n=t.elements,r=n.indexOf(e);for(let i=r-1;i>=0;i--){let o=n[i];if(or(o))return o;{let s=cn(n[i]).find(or);if(s)return s}}}if(yc(t))return QE(t)}function yL(e,t){return e==="?"||e==="*"||Kr(t)&&!!t.guardCondition}function xL(e){return e==="*"||e==="+"}function EL(e){return e==="+="}function ia(e){return ew(e,new Set)}function ew(e,t){if(t.has(e))return!0;t.add(e);for(let n of cn(e))if(pn(n)){if(!n.rule.ref||at(n.rule.ref)&&!ew(n.rule.ref,t)||qr(n.rule.ref))return!1}else{if(fn(n))return!1;if(or(n))return!1}return!!e.definition}function wL(e){return ch(e.type,new Set)}function ch(e,t){if(t.has(e))return!0;if(t.add(e),_E(e))return!1;if(OE(e))return!1;if(ME(e))return e.types.every(n=>ch(n,t));if(eh(e)){if(e.primitiveType!==void 0)return!0;if(e.stringType!==void 0)return!0;if(e.typeRef!==void 0){let n=e.typeRef.ref;return nh(n)?ch(n.type,t):!1}else return!1}else return!1}function vc(e){if(!xt(e)){if(e.inferredType)return e.inferredType.name;if(e.dataType)return e.dataType;if(e.returnType){let t=e.returnType.ref;if(t)return t.name}}}function ar(e){if(ir(e))return at(e)&&ia(e)?e.name:vc(e)??e.name;if(SE(e)||nh(e)||CE(e))return e.name;if(or(e)){let t=tw(e);if(t)return t}else if(xc(e))return e.name;throw new Error("Cannot get name of Unknown Type")}function tw(e){if(e.inferredType)return e.inferredType.name;if(e.type?.ref)return ar(e.type.ref)}function TL(e){return xt(e)?e.type?.name??"string":at(e)&&ia(e)?e.name:vc(e)??e.name}function yh(e){return xt(e)?e.type?.name??"string":vc(e)??e.name}function to(e){let t={s:!1,i:!1,u:!1},n=no(e.definition,t),r=Object.entries(t).filter(([,i])=>i).map(([i])=>i).join("");return new RegExp(n,r)}var xh=/[\s\S]/.source;function no(e,t){if($E(e))return _L(e);if(DE(e))return vL(e);if(AE(e))return IL(e);if(th(e)){let n=e.rule.ref;if(!n)throw new Error("Missing rule reference.");return vn(no(n.definition),{cardinality:e.cardinality,lookahead:e.lookahead,parenthesized:e.parenthesized})}else{if(bE(e))return kL(e);if(FE(e))return AL(e);if(PE(e)){let n=e.regex.lastIndexOf("/"),r=e.regex.substring(1,n),i=e.regex.substring(n+1);return t&&(t.i=i.includes("i"),t.s=i.includes("s"),t.u=i.includes("u")),vn(r,{cardinality:e.cardinality,lookahead:e.lookahead,parenthesized:e.parenthesized,wrap:!1})}else{if(BE(e))return vn(xh,{cardinality:e.cardinality,lookahead:e.lookahead,parenthesized:e.parenthesized});throw new Error(`Invalid terminal element: ${e?.$type}, ${e?.$cstNode?.text}`)}}}function _L(e){return vn(e.elements.map(t=>no(t)).join("|"),{cardinality:e.cardinality,lookahead:e.lookahead,parenthesized:e.parenthesized,wrap:!1})}function vL(e){return vn(e.elements.map(t=>no(t)).join(""),{cardinality:e.cardinality,lookahead:e.lookahead,parenthesized:e.parenthesized,wrap:!1})}function AL(e){return vn(`${xh}*?${no(e.terminal)}`,{cardinality:e.cardinality,lookahead:e.lookahead,parenthesized:e.parenthesized})}function kL(e){return vn(`(?!${no(e.terminal)})${xh}*?`,{cardinality:e.cardinality,lookahead:e.lookahead,parenthesized:e.parenthesized})}function IL(e){return e.right?vn(`[${lh(e.left)}-${lh(e.right)}]`,{cardinality:e.cardinality,lookahead:e.lookahead,parenthesized:e.parenthesized,wrap:!1}):vn(lh(e.left),{cardinality:e.cardinality,lookahead:e.lookahead,parenthesized:e.parenthesized,wrap:!1})}function lh(e){return Qr(e.value)}function vn(e,t){return(t.parenthesized||t.lookahead||t.wrap!==!1)&&(e=`(${t.lookahead??(t.parenthesized?"":"?:")}${e})`),t.cardinality?`${e}${t.cardinality}`:e}function nw(e){let t=[],n=e.Grammar;for(let r of n.rules)xt(r)&&fh(r)&&YE(to(r))&&t.push(r.name);return{multilineCommentRules:t,nameRegexp:HE}}function ro(e){console&&console.error&&console.error(`Error: ${e}`)}function oa(e){console&&console.warn&&console.warn(`Warning: ${e}`)}function sa(e){let t=new Date().getTime(),n=e();return{time:new Date().getTime()-t,value:n}}function aa(e){function t(){}t.prototype=e;let n=new t;function r(){return typeof n.bar}return r(),r(),e;(0,eval)(e)}function RL(e){return SL(e)?e.LABEL:e.name}function SL(e){return typeof e.LABEL=="string"&&e.LABEL!==""}var bt=class{get definition(){return this._definition}set definition(t){this._definition=t}constructor(t){this._definition=t}accept(t){t.visit(this),this.definition.forEach(n=>{n.accept(t)})}},Ee=class extends bt{constructor(t){super([]),this.idx=1,Object.assign(this,mn(t))}set definition(t){}get definition(){return this.referencedRule!==void 0?this.referencedRule.definition:[]}accept(t){t.visit(this)}},lt=class extends bt{constructor(t){super(t.definition),this.orgText="",Object.assign(this,mn(t))}},be=class extends bt{constructor(t){super(t.definition),this.ignoreAmbiguities=!1,Object.assign(this,mn(t))}},we=class extends bt{constructor(t){super(t.definition),this.idx=1,Object.assign(this,mn(t))}},Ne=class extends bt{constructor(t){super(t.definition),this.idx=1,Object.assign(this,mn(t))}},Le=class extends bt{constructor(t){super(t.definition),this.idx=1,Object.assign(this,mn(t))}},ge=class extends bt{constructor(t){super(t.definition),this.idx=1,Object.assign(this,mn(t))}},ke=class extends bt{constructor(t){super(t.definition),this.idx=1,Object.assign(this,mn(t))}},Ie=class extends bt{get definition(){return this._definition}set definition(t){this._definition=t}constructor(t){super(t.definition),this.idx=1,this.ignoreAmbiguities=!1,this.hasPredicates=!1,Object.assign(this,mn(t))}},ue=class{constructor(t){this.idx=1,Object.assign(this,mn(t))}accept(t){t.visit(this)}};function kc(e){return e.map(io)}function io(e){function t(n){return n.map(io)}if(e instanceof Ee){let n={type:"NonTerminal",name:e.nonTerminalName,idx:e.idx};return typeof e.label=="string"&&(n.label=e.label),n}else{if(e instanceof be)return{type:"Alternative",definition:t(e.definition)};if(e instanceof we)return{type:"Option",idx:e.idx,definition:t(e.definition)};if(e instanceof Ne)return{type:"RepetitionMandatory",idx:e.idx,definition:t(e.definition)};if(e instanceof Le)return{type:"RepetitionMandatoryWithSeparator",idx:e.idx,separator:io(new ue({terminalType:e.separator})),definition:t(e.definition)};if(e instanceof ke)return{type:"RepetitionWithSeparator",idx:e.idx,separator:io(new ue({terminalType:e.separator})),definition:t(e.definition)};if(e instanceof ge)return{type:"Repetition",idx:e.idx,definition:t(e.definition)};if(e instanceof Ie)return{type:"Alternation",idx:e.idx,definition:t(e.definition)};if(e instanceof ue){let n={type:"Terminal",name:e.terminalType.name,label:RL(e.terminalType),idx:e.idx};typeof e.label=="string"&&(n.terminalLabel=e.label);let r=e.terminalType.PATTERN;return e.terminalType.PATTERN&&(n.pattern=r instanceof RegExp?r.source:r),n}else{if(e instanceof lt)return{type:"Rule",name:e.name,orgText:e.orgText,definition:t(e.definition)};throw Error("non exhaustive match")}}}function mn(e){return Object.fromEntries(Object.entries(e).filter(([,t])=>t!==void 0))}var ct=class{visit(t){let n=t;switch(n.constructor){case Ee:return this.visitNonTerminal(n);case be:return this.visitAlternative(n);case we:return this.visitOption(n);case Ne:return this.visitRepetitionMandatory(n);case Le:return this.visitRepetitionMandatoryWithSeparator(n);case ke:return this.visitRepetitionWithSeparator(n);case ge:return this.visitRepetition(n);case Ie:return this.visitAlternation(n);case ue:return this.visitTerminal(n);case lt:return this.visitRule(n);default:throw Error("non exhaustive match")}}visitNonTerminal(t){}visitAlternative(t){}visitOption(t){}visitRepetition(t){}visitRepetitionMandatory(t){}visitRepetitionMandatoryWithSeparator(t){}visitRepetitionWithSeparator(t){}visitAlternation(t){}visitTerminal(t){}visitRule(t){}};function Eh(e){return e instanceof be||e instanceof we||e instanceof ge||e instanceof Ne||e instanceof Le||e instanceof ke||e instanceof ue||e instanceof lt}function ei(e,t=[]){return e instanceof we||e instanceof ge||e instanceof ke?!0:e instanceof Ie?e.definition.some(r=>ei(r,t)):e instanceof Ee&&t.includes(e)?!1:e instanceof bt?(e instanceof Ee&&t.push(e),e.definition.every(r=>ei(r,t))):!1}function wh(e){return e instanceof Ie}function Et(e){if(e instanceof Ee)return"SUBRULE";if(e instanceof we)return"OPTION";if(e instanceof Ie)return"OR";if(e instanceof Ne)return"AT_LEAST_ONE";if(e instanceof Le)return"AT_LEAST_ONE_SEP";if(e instanceof ke)return"MANY_SEP";if(e instanceof ge)return"MANY";if(e instanceof ue)return"CONSUME";throw Error("non exhaustive match")}var An=class{walk(t,n=[]){t.definition.forEach((r,i)=>{let o=t.definition.slice(i+1);if(r instanceof Ee)this.walkProdRef(r,o,n);else if(r instanceof ue)this.walkTerminal(r,o,n);else if(r instanceof be)this.walkFlat(r,o,n);else if(r instanceof we)this.walkOption(r,o,n);else if(r instanceof Ne)this.walkAtLeastOne(r,o,n);else if(r instanceof Le)this.walkAtLeastOneSep(r,o,n);else if(r instanceof ke)this.walkManySep(r,o,n);else if(r instanceof ge)this.walkMany(r,o,n);else if(r instanceof Ie)this.walkOr(r,o,n);else throw Error("non exhaustive match")})}walkTerminal(t,n,r){}walkProdRef(t,n,r){}walkFlat(t,n,r){let i=n.concat(r);this.walk(t,i)}walkOption(t,n,r){let i=n.concat(r);this.walk(t,i)}walkAtLeastOne(t,n,r){let i=[new we({definition:t.definition})].concat(n,r);this.walk(t,i)}walkAtLeastOneSep(t,n,r){let i=rw(t,n,r);this.walk(t,i)}walkMany(t,n,r){let i=[new we({definition:t.definition})].concat(n,r);this.walk(t,i)}walkManySep(t,n,r){let i=rw(t,n,r);this.walk(t,i)}walkOr(t,n,r){let i=n.concat(r);t.definition.forEach(o=>{let s=new be({definition:[o]});this.walk(s,i)})}};function rw(e,t,n){return[new we({definition:[new ue({terminalType:e.separator})].concat(e.definition)})].concat(t,n)}function ti(e){if(e instanceof Ee)return ti(e.referencedRule);if(e instanceof ue)return LL(e);if(Eh(e))return bL(e);if(wh(e))return NL(e);throw Error("non exhaustive match")}function bL(e){let t=[],n=e.definition,r=0,i=n.length>r,o,s=!0;for(;i&&s;)o=n[r],s=ei(o),t=t.concat(ti(o)),r=r+1,i=n.length>r;return[...new Set(t)]}function NL(e){let t=e.definition.map(n=>ti(n));return[...new Set(t.flat())]}function LL(e){return[e.terminalType]}var Ic="_~IN~_";var Th=class extends An{constructor(t){super(),this.topProd=t,this.follows={}}startWalking(){return this.walk(this.topProd),this.follows}walkTerminal(t,n,r){}walkProdRef(t,n,r){let i=OL(t.referencedRule,t.idx)+this.topProd.name,o=n.concat(r),s=new be({definition:o}),a=ti(s);this.follows[i]=a}};function iw(e){let t={};return e.forEach(n=>{let r=new Th(n).startWalking();Object.assign(t,r)}),t}function OL(e,t){return e.name+t+Ic}var Rc={},PL=new Jr;function ni(e){let t=e.toString();if(Rc.hasOwnProperty(t))return Rc[t];{let n=PL.pattern(t);return Rc[t]=n,n}}function ow(){Rc={}}var aw="Complement Sets are not supported for first char optimization",la=`Unable to use "first char" lexer optimizations:
|
|
14
|
-
`;function
|
|
12
|
+
`.match(r)}if(t.quantifier)this.isStarting=!1,this.endRegexpStack=[];else{let n=this.regex.substring(t.loc.begin,t.loc.end);this.endRegexpStack.push(n),this.isStarting&&(this.startRegexp+=n)}}visitChildren(t){t.type==="Group"&&t.quantifier||super.visitChildren(t)}},ch=new uh;function tw(e){try{return typeof e=="string"&&(e=new RegExp(e)),e=e.toString(),ch.reset(e),ch.visit(yL.pattern(e)),ch.multiline}catch{return!1}}var xL=`\f
|
|
13
|
+
\r \v \xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF`.split("");function vc(e){let t=typeof e=="string"?new RegExp(e):e;return xL.some(n=>t.test(n))}function Qr(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function nw(e,t){let n=EL(e),r=t.match(n);return!!r&&r[0].length>0}function EL(e){typeof e=="string"&&(e=new RegExp(e));let t=e,n=e.source,r=0;function i(){let o="",s;function a(c){o+=n.substr(r,c),r+=c}function l(c){o+="(?:"+n.substr(r,c)+"|$)",r+=c}for(;r<n.length;)switch(n[r]){case"\\":switch(n[r+1]){case"c":l(3);break;case"x":l(4);break;case"u":t.unicode?n[r+2]==="{"?l(n.indexOf("}",r)-r+1):l(6):l(2);break;case"p":case"P":t.unicode?l(n.indexOf("}",r)-r+1):l(2);break;case"k":l(n.indexOf(">",r)-r+1);break;default:l(2);break}break;case"[":s=/\[(?:\\.|.)*?\]/g,s.lastIndex=r,s=s.exec(n)||[],l(s[0].length);break;case"|":case"^":case"$":case"*":case"+":case"?":a(1);break;case"{":s=/\{\d+,?\d*\}/g,s.lastIndex=r,s=s.exec(n),s?a(s[0].length):l(1);break;case"(":if(n[r+1]==="?")switch(n[r+2]){case":":o+="(?:",r+=3,o+=i()+"|$)";break;case"=":o+="(?=",r+=3,o+=i()+")";break;case"!":s=r,r+=3,i(),o+=n.substr(s,r-s);break;case"<":switch(n[r+3]){case"=":case"!":s=r,r+=4,i(),o+=n.substr(s,r-s);break;default:a(n.indexOf(">",r)-r+1),o+=i()+"|$)";break}break}else a(1),o+=i()+"|$)";break;case")":return++r,o;default:l(1);break}return o}return new RegExp(i(),e.flags)}function rw(e){return e.rules.find(t=>at(t)&&t.entry)}function iw(e){return e.rules.filter(t=>xt(t)&&t.hidden)}function na(e,t){let n=new Set,r=rw(e);if(!r)return new Set(e.rules);let i=[r].concat(iw(e));for(let s of i)ow(s,n,t);let o=new Set;for(let s of e.rules)(n.has(s.name)||xt(s)&&s.hidden)&&o.add(s);return o}function ow(e,t,n){t.add(e.name),cn(e).forEach(r=>{if(pn(r)||n&&ih(r)){let i=r.rule.ref;i&&!t.has(i.name)&&ow(i,t,n)}})}function wL(e){let t=new Set;return cn(e).forEach(n=>{dn(n)&&(at(n.type.ref)&&t.add(n.type.ref),Ec(n.type.ref)&&at(n.type.ref.$container)&&t.add(n.type.ref.$container))}),t}function ph(e){if(e.terminal)return e.terminal;if(e.type.ref)return _c(e.type.ref)?.terminal}function hh(e){return e.hidden&&!vc(no(e))}function mh(e,t){return!e||!t?[]:gh(e,t,e.astNode,!0)}function ra(e,t,n){if(!e||!t)return;let r=gh(e,t,e.astNode,!0);if(r.length!==0)return n!==void 0?n=Math.max(0,Math.min(n,r.length-1)):n=0,r[n]}function gh(e,t,n,r){if(!r){let i=Hi(e.grammarSource,fn);if(i&&i.feature===t)return[e]}return tr(e)&&e.astNode===n?e.content.flatMap(i=>gh(i,t,n,!1)):[]}function TL(e,t){return e?xh(e,t,e?.astNode):[]}function yh(e,t,n){if(!e)return;let r=xh(e,t,e?.astNode);if(r.length!==0)return n!==void 0?n=Math.max(0,Math.min(n,r.length-1)):n=0,r[n]}function xh(e,t,n){if(e.astNode!==n)return[];if(Yt(e.grammarSource)&&e.grammarSource.value===t)return[e];let r=qs(e).iterator(),i,o=[];do if(i=r.next(),!i.done){let s=i.value;s.astNode===n?Yt(s.grammarSource)&&s.grammarSource.value===t&&o.push(s):r.prune()}while(!i.done);return o}function Eh(e){let t=e.astNode;for(;t===e.container?.astNode;){let n=Hi(e.grammarSource,fn);if(n)return n;e=e.container}}function _c(e){let t=e;return Ec(t)&&(or(t.$container)?t=t.$container.$container:ir(t.$container)?t=t.$container:sr(t.$container)),sw(e,t,new Map)}function sw(e,t,n){function r(i,o){let s;return Hi(i,fn)||(s=sw(o,o,n)),n.set(e,s),s}if(n.has(e))return n.get(e);n.set(e,void 0);for(let i of cn(t)){if(fn(i)&&i.feature.toLowerCase()==="name")return n.set(e,i),i;if(pn(i)&&at(i.rule.ref))return r(i,i.rule.ref);if(rh(i)&&i.typeRef?.ref)return r(i,i.typeRef.ref)}}function aw(e){let t=e.$container;if(Kr(t)){let n=t.elements,r=n.indexOf(e);for(let i=r-1;i>=0;i--){let o=n[i];if(or(o))return o;{let s=cn(n[i]).find(or);if(s)return s}}}if(xc(t))return aw(t)}function vL(e,t){return e==="?"||e==="*"||Kr(t)&&!!t.guardCondition}function _L(e){return e==="*"||e==="+"}function AL(e){return e==="+="}function ia(e){return lw(e,new Set)}function lw(e,t){if(t.has(e))return!0;t.add(e);for(let n of cn(e))if(pn(n)){if(!n.rule.ref||at(n.rule.ref)&&!lw(n.rule.ref,t)||qr(n.rule.ref))return!1}else{if(fn(n))return!1;if(or(n))return!1}return!!e.definition}function kL(e){return dh(e.type,new Set)}function dh(e,t){if(t.has(e))return!0;if(t.add(e),NE(e))return!1;if(WE(e))return!1;if(zE(e))return e.types.every(n=>dh(n,t));if(rh(e)){if(e.primitiveType!==void 0)return!0;if(e.stringType!==void 0)return!0;if(e.typeRef!==void 0){let n=e.typeRef.ref;return oh(n)?dh(n.type,t):!1}else return!1}else return!1}function Ac(e){if(!xt(e)){if(e.inferredType)return e.inferredType.name;if(e.dataType)return e.dataType;if(e.returnType){let t=e.returnType.ref;if(t)return t.name}}}function ar(e){if(ir(e))return at(e)&&ia(e)?e.name:Ac(e)??e.name;if(DE(e)||oh(e)||UE(e))return e.name;if(or(e)){let t=cw(e);if(t)return t}else if(Ec(e))return e.name;throw new Error("Cannot get name of Unknown Type")}function cw(e){if(e.inferredType)return e.inferredType.name;if(e.type?.ref)return ar(e.type.ref)}function IL(e){return xt(e)?e.type?.name??"string":at(e)&&ia(e)?e.name:Ac(e)??e.name}function wh(e){return xt(e)?e.type?.name??"string":Ac(e)??e.name}function no(e){let t={s:!1,i:!1,u:!1},n=ro(e.definition,t),r=Object.entries(t).filter(([,i])=>i).map(([i])=>i).join("");return new RegExp(n,r)}var Th=/[\s\S]/.source;function ro(e,t){if(GE(e))return RL(e);if(HE(e))return SL(e);if(PE(e))return LL(e);if(ih(e)){let n=e.rule.ref;if(!n)throw new Error("Missing rule reference.");return _n(ro(n.definition),{cardinality:e.cardinality,lookahead:e.lookahead,parenthesized:e.parenthesized})}else{if(ME(e))return NL(e);if(jE(e))return bL(e);if(XE(e)){let n=e.regex.lastIndexOf("/"),r=e.regex.substring(1,n),i=e.regex.substring(n+1);return t&&(t.i=i.includes("i"),t.s=i.includes("s"),t.u=i.includes("u")),_n(r,{cardinality:e.cardinality,lookahead:e.lookahead,parenthesized:e.parenthesized,wrap:!1})}else{if(YE(e))return _n(Th,{cardinality:e.cardinality,lookahead:e.lookahead,parenthesized:e.parenthesized});throw new Error(`Invalid terminal element: ${e?.$type}, ${e?.$cstNode?.text}`)}}}function RL(e){return _n(e.elements.map(t=>ro(t)).join("|"),{cardinality:e.cardinality,lookahead:e.lookahead,parenthesized:e.parenthesized,wrap:!1})}function SL(e){return _n(e.elements.map(t=>ro(t)).join(""),{cardinality:e.cardinality,lookahead:e.lookahead,parenthesized:e.parenthesized,wrap:!1})}function bL(e){return _n(`${Th}*?${ro(e.terminal)}`,{cardinality:e.cardinality,lookahead:e.lookahead,parenthesized:e.parenthesized})}function NL(e){return _n(`(?!${ro(e.terminal)})${Th}*?`,{cardinality:e.cardinality,lookahead:e.lookahead,parenthesized:e.parenthesized})}function LL(e){return e.right?_n(`[${fh(e.left)}-${fh(e.right)}]`,{cardinality:e.cardinality,lookahead:e.lookahead,parenthesized:e.parenthesized,wrap:!1}):_n(fh(e.left),{cardinality:e.cardinality,lookahead:e.lookahead,parenthesized:e.parenthesized,wrap:!1})}function fh(e){return Qr(e.value)}function _n(e,t){return(t.parenthesized||t.lookahead||t.wrap!==!1)&&(e=`(${t.lookahead??(t.parenthesized?"":"?:")}${e})`),t.cardinality?`${e}${t.cardinality}`:e}function uw(e){let t=[],n=e.Grammar;for(let r of n.rules)xt(r)&&hh(r)&&tw(no(r))&&t.push(r.name);return{multilineCommentRules:t,nameRegexp:JE}}function io(e){console&&console.error&&console.error(`Error: ${e}`)}function oa(e){console&&console.warn&&console.warn(`Warning: ${e}`)}function sa(e){let t=new Date().getTime(),n=e();return{time:new Date().getTime()-t,value:n}}function aa(e){function t(){}t.prototype=e;let n=new t;function r(){return typeof n.bar}return r(),r(),e;(0,eval)(e)}function PL(e){return OL(e)?e.LABEL:e.name}function OL(e){return typeof e.LABEL=="string"&&e.LABEL!==""}var bt=class{get definition(){return this._definition}set definition(t){this._definition=t}constructor(t){this._definition=t}accept(t){t.visit(this),this.definition.forEach(n=>{n.accept(t)})}},Ee=class extends bt{constructor(t){super([]),this.idx=1,Object.assign(this,mn(t))}set definition(t){}get definition(){return this.referencedRule!==void 0?this.referencedRule.definition:[]}accept(t){t.visit(this)}},lt=class extends bt{constructor(t){super(t.definition),this.orgText="",Object.assign(this,mn(t))}},be=class extends bt{constructor(t){super(t.definition),this.ignoreAmbiguities=!1,Object.assign(this,mn(t))}},we=class extends bt{constructor(t){super(t.definition),this.idx=1,Object.assign(this,mn(t))}},Ne=class extends bt{constructor(t){super(t.definition),this.idx=1,Object.assign(this,mn(t))}},Le=class extends bt{constructor(t){super(t.definition),this.idx=1,Object.assign(this,mn(t))}},ge=class extends bt{constructor(t){super(t.definition),this.idx=1,Object.assign(this,mn(t))}},ke=class extends bt{constructor(t){super(t.definition),this.idx=1,Object.assign(this,mn(t))}},Ie=class extends bt{get definition(){return this._definition}set definition(t){this._definition=t}constructor(t){super(t.definition),this.idx=1,this.ignoreAmbiguities=!1,this.hasPredicates=!1,Object.assign(this,mn(t))}},ue=class{constructor(t){this.idx=1,Object.assign(this,mn(t))}accept(t){t.visit(this)}};function Ic(e){return e.map(oo)}function oo(e){function t(n){return n.map(oo)}if(e instanceof Ee){let n={type:"NonTerminal",name:e.nonTerminalName,idx:e.idx};return typeof e.label=="string"&&(n.label=e.label),n}else{if(e instanceof be)return{type:"Alternative",definition:t(e.definition)};if(e instanceof we)return{type:"Option",idx:e.idx,definition:t(e.definition)};if(e instanceof Ne)return{type:"RepetitionMandatory",idx:e.idx,definition:t(e.definition)};if(e instanceof Le)return{type:"RepetitionMandatoryWithSeparator",idx:e.idx,separator:oo(new ue({terminalType:e.separator})),definition:t(e.definition)};if(e instanceof ke)return{type:"RepetitionWithSeparator",idx:e.idx,separator:oo(new ue({terminalType:e.separator})),definition:t(e.definition)};if(e instanceof ge)return{type:"Repetition",idx:e.idx,definition:t(e.definition)};if(e instanceof Ie)return{type:"Alternation",idx:e.idx,definition:t(e.definition)};if(e instanceof ue){let n={type:"Terminal",name:e.terminalType.name,label:PL(e.terminalType),idx:e.idx};typeof e.label=="string"&&(n.terminalLabel=e.label);let r=e.terminalType.PATTERN;return e.terminalType.PATTERN&&(n.pattern=r instanceof RegExp?r.source:r),n}else{if(e instanceof lt)return{type:"Rule",name:e.name,orgText:e.orgText,definition:t(e.definition)};throw Error("non exhaustive match")}}}function mn(e){return Object.fromEntries(Object.entries(e).filter(([,t])=>t!==void 0))}var ct=class{visit(t){let n=t;switch(n.constructor){case Ee:return this.visitNonTerminal(n);case be:return this.visitAlternative(n);case we:return this.visitOption(n);case Ne:return this.visitRepetitionMandatory(n);case Le:return this.visitRepetitionMandatoryWithSeparator(n);case ke:return this.visitRepetitionWithSeparator(n);case ge:return this.visitRepetition(n);case Ie:return this.visitAlternation(n);case ue:return this.visitTerminal(n);case lt:return this.visitRule(n);default:throw Error("non exhaustive match")}}visitNonTerminal(t){}visitAlternative(t){}visitOption(t){}visitRepetition(t){}visitRepetitionMandatory(t){}visitRepetitionMandatoryWithSeparator(t){}visitRepetitionWithSeparator(t){}visitAlternation(t){}visitTerminal(t){}visitRule(t){}};function vh(e){return e instanceof be||e instanceof we||e instanceof ge||e instanceof Ne||e instanceof Le||e instanceof ke||e instanceof ue||e instanceof lt}function ei(e,t=[]){return e instanceof we||e instanceof ge||e instanceof ke?!0:e instanceof Ie?e.definition.some(r=>ei(r,t)):e instanceof Ee&&t.includes(e)?!1:e instanceof bt?(e instanceof Ee&&t.push(e),e.definition.every(r=>ei(r,t))):!1}function _h(e){return e instanceof Ie}function Et(e){if(e instanceof Ee)return"SUBRULE";if(e instanceof we)return"OPTION";if(e instanceof Ie)return"OR";if(e instanceof Ne)return"AT_LEAST_ONE";if(e instanceof Le)return"AT_LEAST_ONE_SEP";if(e instanceof ke)return"MANY_SEP";if(e instanceof ge)return"MANY";if(e instanceof ue)return"CONSUME";throw Error("non exhaustive match")}var An=class{walk(t,n=[]){t.definition.forEach((r,i)=>{let o=t.definition.slice(i+1);if(r instanceof Ee)this.walkProdRef(r,o,n);else if(r instanceof ue)this.walkTerminal(r,o,n);else if(r instanceof be)this.walkFlat(r,o,n);else if(r instanceof we)this.walkOption(r,o,n);else if(r instanceof Ne)this.walkAtLeastOne(r,o,n);else if(r instanceof Le)this.walkAtLeastOneSep(r,o,n);else if(r instanceof ke)this.walkManySep(r,o,n);else if(r instanceof ge)this.walkMany(r,o,n);else if(r instanceof Ie)this.walkOr(r,o,n);else throw Error("non exhaustive match")})}walkTerminal(t,n,r){}walkProdRef(t,n,r){}walkFlat(t,n,r){let i=n.concat(r);this.walk(t,i)}walkOption(t,n,r){let i=n.concat(r);this.walk(t,i)}walkAtLeastOne(t,n,r){let i=[new we({definition:t.definition})].concat(n,r);this.walk(t,i)}walkAtLeastOneSep(t,n,r){let i=fw(t,n,r);this.walk(t,i)}walkMany(t,n,r){let i=[new we({definition:t.definition})].concat(n,r);this.walk(t,i)}walkManySep(t,n,r){let i=fw(t,n,r);this.walk(t,i)}walkOr(t,n,r){let i=n.concat(r);t.definition.forEach(o=>{let s=new be({definition:[o]});this.walk(s,i)})}};function fw(e,t,n){return[new we({definition:[new ue({terminalType:e.separator})].concat(e.definition)})].concat(t,n)}function ti(e){if(e instanceof Ee)return ti(e.referencedRule);if(e instanceof ue)return DL(e);if(vh(e))return CL(e);if(_h(e))return $L(e);throw Error("non exhaustive match")}function CL(e){let t=[],n=e.definition,r=0,i=n.length>r,o,s=!0;for(;i&&s;)o=n[r],s=ei(o),t=t.concat(ti(o)),r=r+1,i=n.length>r;return[...new Set(t)]}function $L(e){let t=e.definition.map(n=>ti(n));return[...new Set(t.flat())]}function DL(e){return[e.terminalType]}var Rc="_~IN~_";var Ah=class extends An{constructor(t){super(),this.topProd=t,this.follows={}}startWalking(){return this.walk(this.topProd),this.follows}walkTerminal(t,n,r){}walkProdRef(t,n,r){let i=ML(t.referencedRule,t.idx)+this.topProd.name,o=n.concat(r),s=new be({definition:o}),a=ti(s);this.follows[i]=a}};function dw(e){let t={};return e.forEach(n=>{let r=new Ah(n).startWalking();Object.assign(t,r)}),t}function ML(e,t){return e.name+t+Rc}var Sc={},FL=new Jr;function ni(e){let t=e.toString();if(Sc.hasOwnProperty(t))return Sc[t];{let n=FL.pattern(t);return Sc[t]=n,n}}function pw(){Sc={}}var mw="Complement Sets are not supported for first char optimization",la=`Unable to use "first char" lexer optimizations:
|
|
14
|
+
`;function gw(e,t=!1){try{let n=ni(e);return kh(n.value,{},n.flags.ignoreCase)}catch(n){if(n.message===mw)t&&oa(`${la} Unable to optimize: < ${e.toString()} >
|
|
15
15
|
Complement Sets cannot be automatically optimized.
|
|
16
16
|
This will disable the lexer's first char optimizations.
|
|
17
17
|
See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{let r="";t&&(r=`
|
|
18
18
|
This will disable the lexer's first char optimizations.
|
|
19
|
-
See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`),
|
|
19
|
+
See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`),io(`${la}
|
|
20
20
|
Failed parsing: < ${e.toString()} >
|
|
21
21
|
Using the @chevrotain/regexp-to-ast library
|
|
22
|
-
Please open an issue at: https://github.com/chevrotain/chevrotain/issues`+r)}}return[]}function
|
|
23
|
-
`],tracer:(y,
|
|
22
|
+
Please open an issue at: https://github.com/chevrotain/chevrotain/issues`+r)}}return[]}function kh(e,t,n){switch(e.type){case"Disjunction":for(let i=0;i<e.value.length;i++)kh(e.value[i],t,n);break;case"Alternative":let r=e.value;for(let i=0;i<r.length;i++){let o=r[i];switch(o.type){case"EndAnchor":case"GroupBackReference":case"Lookahead":case"NegativeLookahead":case"Lookbehind":case"NegativeLookbehind":case"StartAnchor":case"WordBoundary":case"NonWordBoundary":continue}let s=o;switch(s.type){case"Character":bc(s.value,t,n);break;case"Set":if(s.complement===!0)throw Error(mw);s.value.forEach(l=>{if(typeof l=="number")bc(l,t,n);else{let c=l;if(n===!0)for(let u=c.from;u<=c.to;u++)bc(u,t,n);else{for(let u=c.from;u<=c.to&&u<so;u++)bc(u,t,n);if(c.to>=so){let u=c.from>=so?c.from:so,f=c.to,d=gn(u),p=gn(f);for(let m=d;m<=p;m++)t[m]=m}}}});break;case"Group":kh(s.value,t,n);break;default:throw Error("Non Exhaustive Match")}let a=s.quantifier!==void 0&&s.quantifier.atLeast===0;if(s.type==="Group"&&Ih(s)===!1||s.type!=="Group"&&a===!1)break}break;default:throw Error("non exhaustive match!")}return Object.values(t)}function bc(e,t,n){let r=gn(e);t[r]=r,n===!0&&BL(e,t)}function BL(e,t){let n=String.fromCharCode(e),r=n.toUpperCase();if(r!==n){let i=gn(r.charCodeAt(0));t[i]=i}else{let i=n.toLowerCase();if(i!==n){let o=gn(i.charCodeAt(0));t[o]=o}}}function hw(e,t){return e.value.find(n=>{if(typeof n=="number")return t.includes(n);{let r=n;return t.find(i=>r.from<=i&&i<=r.to)!==void 0}})}function Ih(e){let t=e.quantifier;return t&&t.atLeast===0?!0:e.value?Array.isArray(e.value)?e.value.every(Ih):Ih(e.value):!1}var Rh=class extends hn{constructor(t){super(),this.targetCharCodes=t,this.found=!1}visitChildren(t){if(this.found!==!0){switch(t.type){case"Lookahead":this.visitLookahead(t);return;case"NegativeLookahead":this.visitNegativeLookahead(t);return;case"Lookbehind":this.visitLookbehind(t);return;case"NegativeLookbehind":this.visitNegativeLookbehind(t);return}super.visitChildren(t)}}visitCharacter(t){this.targetCharCodes.includes(t.value)&&(this.found=!0)}visitSet(t){t.complement?hw(t,this.targetCharCodes)===void 0&&(this.found=!0):hw(t,this.targetCharCodes)!==void 0&&(this.found=!0)}};function Nc(e,t){if(t instanceof RegExp){let n=ni(t),r=new Rh(e);return r.visit(n),r.found}else{for(let n of t){let r=n.charCodeAt(0);if(e.includes(r))return!0}return!1}}var ri="PATTERN",ao="defaultMode",Lc="modes",Oc=0,ca=1,Cc=2,$c=3;function xw(e,t){t=Object.assign({safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",`
|
|
23
|
+
`],tracer:(y,E)=>E()},t);let n=t.tracer;n("initCharCodeToOptimizedIndexMap",()=>{oP()});let r;n("Reject Lexer.NA",()=>{r=e.filter(y=>y[ri]!==Me.NA)});let i=!1,o;n("Transform Patterns",()=>{i=!1,o=r.map(y=>{let E=y[ri];if(E instanceof RegExp){let _=E.source;return _.length===1&&_!=="^"&&_!=="$"&&_!=="."&&!E.ignoreCase?_:_.length===2&&_[0]==="\\"&&!["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"].includes(_[1])?_[1]:yw(E)}else{if(typeof E=="function")return i=!0,{exec:E};if(typeof E=="object")return i=!0,E;if(typeof E=="string"){if(E.length===1)return E;{let _=E.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),T=new RegExp(_);return yw(T)}}else throw Error("non exhaustive match")}})});let s,a,l,c,u;n("misc mapping",()=>{s=r.map(y=>y.tokenTypeIdx),a=r.map(y=>{let E=y.GROUP;if(E!==Me.SKIPPED){if(typeof E=="string")return E;if(E===void 0)return!1;throw Error("non exhaustive match")}}),l=r.map(y=>{let E=y.LONGER_ALT;if(E)return Array.isArray(E)?E.map(T=>r.indexOf(T)):[r.indexOf(E)]}),c=r.map(y=>y.PUSH_MODE),u=r.map(y=>Object.hasOwn(y,"POP_MODE"))});let f;n("Line Terminator Handling",()=>{let y=kw(t.lineTerminatorCharacters);f=r.map(E=>!1),t.positionTracking!=="onlyOffset"&&(f=r.map(E=>Object.hasOwn(E,"LINE_BREAKS")?!!E.LINE_BREAKS:Aw(E,y)===!1&&Nc(y,E.PATTERN)))});let d,p,m,g;n("Misc Mapping #2",()=>{d=r.map(vw),p=o.map(rP),m=r.reduce((y,E)=>{let _=E.GROUP;return typeof _=="string"&&_!==Me.SKIPPED&&(y[_]=[]),y},{}),g=o.map((y,E)=>{let _=a[E]===void 0&&l[E]===void 0?WL(r[E].PATTERN):void 0;return{pattern:o[E],asciiClass:_,longerAlt:l[E],canLineTerminator:f[E],matchType:_!==void 0?$c:p[E]!==!1?Oc:d[E]?ca:Cc,short:p[E],group:a[E],push:c[E],pop:u[E],tokenTypeIdx:s[E],tokenType:r[E]}})});let w=!0,x=[];return t.safeMode||n("First Char Optimization",()=>{x=r.reduce((y,E,_)=>{if(typeof E.PATTERN=="string"){let T=E.PATTERN.charCodeAt(0),I=gn(T);Sh(y,I,g[_])}else if(Array.isArray(E.START_CHARS_HINT)){let T;E.START_CHARS_HINT.forEach(I=>{let B=typeof I=="string"?I.charCodeAt(0):I,$=gn(B);T!==$&&(T=$,Sh(y,$,g[_]))})}else if(E.PATTERN instanceof RegExp)if(E.PATTERN.unicode)w=!1,t.ensureOptimizations&&io(`${la} Unable to analyze < ${E.PATTERN.toString()} > pattern.
|
|
24
24
|
The regexp unicode flag is not currently supported by the regexp-to-ast library.
|
|
25
25
|
This will disable the lexer's first char optimizations.
|
|
26
|
-
For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{let
|
|
26
|
+
For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{let T=gw(E.PATTERN,t.ensureOptimizations);T.length===0&&(w=!1),T.forEach(I=>{Sh(y,I,g[_])})}else t.ensureOptimizations&&io(`${la} TokenType: <${E.name}> is using a custom token pattern without providing <start_chars_hint> parameter.
|
|
27
27
|
This will disable the lexer's first char optimizations.
|
|
28
|
-
For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),
|
|
28
|
+
For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),w=!1;return y},[])}),{emptyGroups:m,patternIdxToConfig:g,charCodeToPatternIdxToConfig:x,hasCustom:i,canBeOptimized:w}}function WL(e){var t,n;if(!(e instanceof RegExp)||e.flags!=="")return;let r;try{r=ni(e)}catch{return}if(r.value.value.length!==1||r.value.value[0].value.length!==1)return;let i=r.value.value[0].value[0],o;for(;i.type==="Group";){if(i.capturing||i.quantifier!==void 0&&o!==void 0||i.value.value.length!==1||i.value.value[0].value.length!==1)return;o=(t=i.quantifier)!==null&&t!==void 0?t:o,i=i.value.value[0].value[0]}if(i.type!=="Set"||i.complement||i.quantifier!==void 0&&o!==void 0||(o=(n=i.quantifier)!==null&&n!==void 0?n:o,o?.atLeast!==1||o.atMost!==1/0||!o.greedy))return;let s=new Uint8Array(128);for(let a of i.value){let l=typeof a=="number"?a:a.from,c=typeof a=="number"?a:a.to;if(l<0||c>=s.length)return;s.fill(1,l,c+1)}return s}function Ew(e,t){let n=[],r=UL(e);n=n.concat(r.errors);let i=GL(r.valid),o=i.valid;return n=n.concat(i.errors),n=n.concat(XL(o)),n=n.concat(ZL(o)),n=n.concat(JL(o,t)),n=n.concat(QL(o)),n}function XL(e){let t=[],n=e.filter(r=>r[ri]instanceof RegExp);return t=t.concat(zL(n)),t=t.concat(VL(n)),t=t.concat(KL(n)),t=t.concat(qL(n)),t=t.concat(jL(n)),t}function UL(e){let t=e.filter(i=>!Object.hasOwn(i,ri)),n=t.map(i=>({message:"Token Type: ->"+i.name+"<- missing static 'PATTERN' property",type:De.MISSING_PATTERN,tokenTypes:[i]})),r=e.filter(i=>!t.includes(i));return{errors:n,valid:r}}function GL(e){let t=e.filter(i=>{let o=i[ri];return!(o instanceof RegExp)&&typeof o!="function"&&!Object.hasOwn(o,"exec")&&typeof o!="string"}),n=t.map(i=>({message:"Token Type: ->"+i.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:De.INVALID_PATTERN,tokenTypes:[i]})),r=e.filter(i=>!t.includes(i));return{errors:n,valid:r}}var HL=/[^\\][$]/;function zL(e){class t extends hn{constructor(){super(...arguments),this.found=!1}visitEndAnchor(o){this.found=!0}}return e.filter(i=>{let o=i.PATTERN;try{let s=ni(o),a=new t;return a.visit(s),a.found}catch{return HL.test(o.source)}}).map(i=>({message:`Unexpected RegExp Anchor Error:
|
|
29
29
|
Token Type: ->`+i.name+`<- static 'PATTERN' cannot contain end of input anchor '$'
|
|
30
|
-
See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:De.EOI_ANCHOR_FOUND,tokenTypes:[i]}))}function
|
|
30
|
+
See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:De.EOI_ANCHOR_FOUND,tokenTypes:[i]}))}function jL(e){return e.filter(r=>r.PATTERN.test("")).map(r=>({message:"Token Type: ->"+r.name+"<- static 'PATTERN' must not match an empty string",type:De.EMPTY_MATCH_PATTERN,tokenTypes:[r]}))}var YL=/[^\\[][\^]|^\^/;function VL(e){class t extends hn{constructor(){super(...arguments),this.found=!1}visitStartAnchor(o){this.found=!0}}return e.filter(i=>{let o=i.PATTERN;try{let s=ni(o),a=new t;return a.visit(s),a.found}catch{return YL.test(o.source)}}).map(i=>({message:`Unexpected RegExp Anchor Error:
|
|
31
31
|
Token Type: ->`+i.name+`<- static 'PATTERN' cannot contain start of input anchor '^'
|
|
32
|
-
See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:De.SOI_ANCHOR_FOUND,tokenTypes:[i]}))}function
|
|
32
|
+
See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:De.SOI_ANCHOR_FOUND,tokenTypes:[i]}))}function KL(e){return e.filter(r=>{let i=r[ri];return i instanceof RegExp&&(i.multiline||i.global)}).map(r=>({message:"Token Type: ->"+r.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:De.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[r]}))}function qL(e){let t=[],n=e.map(o=>e.reduce((s,a)=>(o.PATTERN.source===a.PATTERN.source&&!t.includes(a)&&a.PATTERN!==Me.NA&&(t.push(a),s.push(a)),s),[]));return n=n.filter(Boolean),n.filter(o=>o.length>1).map(o=>{let s=o.map(l=>l.name);return{message:`The same RegExp pattern ->${o[0].PATTERN}<-has been used in all of the following Token Types: ${s.join(", ")} <-`,type:De.DUPLICATE_PATTERNS_FOUND,tokenTypes:o}})}function ZL(e){return e.filter(r=>{if(!Object.hasOwn(r,"GROUP"))return!1;let i=r.GROUP;return i!==Me.SKIPPED&&i!==Me.NA&&typeof i!="string"}).map(r=>({message:"Token Type: ->"+r.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:De.INVALID_GROUP_TYPE_FOUND,tokenTypes:[r]}))}function JL(e,t){return e.filter(i=>i.PUSH_MODE!==void 0&&!t.includes(i.PUSH_MODE)).map(i=>({message:`Token Type: ->${i.name}<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->${i.PUSH_MODE}<-which does not exist`,type:De.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[i]}))}function QL(e){let t=[],n=e.reduce((r,i,o)=>{let s=i.PATTERN;return s===Me.NA||(typeof s=="string"?r.push({str:s,idx:o,tokenType:i}):s instanceof RegExp&&tP(s)&&r.push({str:s.source,idx:o,tokenType:i})),r},[]);return e.forEach((r,i)=>{n.forEach(({str:o,idx:s,tokenType:a})=>{if(i<s&&eP(o,r.PATTERN)){let l=`Token: ->${a.name}<- can never be matched.
|
|
33
33
|
Because it appears AFTER the Token Type ->${r.name}<-in the lexer's definition.
|
|
34
|
-
See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;t.push({message:l,type:De.UNREACHABLE_PATTERN,tokenTypes:[r,a]})}})}),t}function
|
|
35
|
-
`,type:De.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),Object.hasOwn(e,
|
|
36
|
-
`,type:De.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),Object.hasOwn(e,
|
|
37
|
-
`,type:De.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),Object.hasOwn(e,
|
|
34
|
+
See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;t.push({message:l,type:De.UNREACHABLE_PATTERN,tokenTypes:[r,a]})}})}),t}function eP(e,t){if(t instanceof RegExp){if(nP(t))return!1;let n=t.exec(e);return n!==null&&n.index===0}else{if(typeof t=="function")return t(e,0,[],{});if(Object.hasOwn(t,"exec"))return t.exec(e,0,[],{});if(typeof t=="string")return t===e;throw Error("non exhaustive match")}}function tP(e){return[".","\\","[","]","|","^","$","(",")","?","*","+","{"].find(n=>e.source.indexOf(n)!==-1)===void 0}function nP(e){return/(\(\?=)|(\(\?!)|(\(\?<=)|(\(\?<!)/.test(e.source)}function yw(e){let t=e.ignoreCase?"iy":"y";return new RegExp(`${e.source}`,t)}function ww(e,t,n){let r=[];return Object.hasOwn(e,ao)||r.push({message:"A MultiMode Lexer cannot be initialized without a <"+ao+`> property in its definition
|
|
35
|
+
`,type:De.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),Object.hasOwn(e,Lc)||r.push({message:"A MultiMode Lexer cannot be initialized without a <"+Lc+`> property in its definition
|
|
36
|
+
`,type:De.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),Object.hasOwn(e,Lc)&&Object.hasOwn(e,ao)&&!Object.hasOwn(e.modes,e.defaultMode)&&r.push({message:`A MultiMode Lexer cannot be initialized with a ${ao}: <${e.defaultMode}>which does not exist
|
|
37
|
+
`,type:De.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),Object.hasOwn(e,Lc)&&Object.keys(e.modes).forEach(i=>{let o=e.modes[i];o.forEach((s,a)=>{s===void 0?r.push({message:`A Lexer cannot be initialized using an undefined Token Type. Mode:<${i}> at index: <${a}>
|
|
38
38
|
`,type:De.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED}):Object.hasOwn(s,"LONGER_ALT")&&(Array.isArray(s.LONGER_ALT)?s.LONGER_ALT:[s.LONGER_ALT]).forEach(c=>{c!==void 0&&!o.includes(c)&&r.push({message:`A MultiMode Lexer cannot be initialized with a longer_alt <${c.name}> on token <${s.name}> outside of mode <${i}>
|
|
39
|
-
`,type:De.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE})})})}),r}function
|
|
39
|
+
`,type:De.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE})})})}),r}function Tw(e,t,n){let r=[],i=!1,s=Object.values(e.modes||{}).flat().filter(Boolean).filter(l=>l[ri]!==Me.NA),a=kw(n);return t&&s.forEach(l=>{let c=Aw(l,a);if(c!==!1){let f={message:iP(l,c),type:c.issue,tokenType:l};r.push(f)}else Object.hasOwn(l,"LINE_BREAKS")?l.LINE_BREAKS===!0&&(i=!0):Nc(a,l.PATTERN)&&(i=!0)}),t&&!i&&r.push({message:`Warning: No LINE_BREAKS Found.
|
|
40
40
|
This Lexer has been defined to track line and column information,
|
|
41
41
|
But none of the Token Types can be identified as matching a line terminator.
|
|
42
42
|
See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS
|
|
43
|
-
for details.`,type:De.NO_LINE_BREAKS_FLAGS}),r}function
|
|
43
|
+
for details.`,type:De.NO_LINE_BREAKS_FLAGS}),r}function vw(e){let t=e.PATTERN;if(t instanceof RegExp)return!1;if(typeof t=="function")return!0;if(Object.hasOwn(t,"exec"))return!0;if(typeof t=="string")return!1;throw Error("non exhaustive match")}function rP(e){return typeof e=="string"&&e.length===1?e.charCodeAt(0):!1}var _w={test:function(e){let t=e.length;for(let n=this.lastIndex;n<t;n++){let r=e.charCodeAt(n);if(r===10)return this.lastIndex=n+1,!0;if(r===13)return e.charCodeAt(n+1)===10?this.lastIndex=n+2:this.lastIndex=n+1,!0}return!1},lastIndex:0};function Aw(e,t){if(Object.hasOwn(e,"LINE_BREAKS"))return!1;if(e.PATTERN instanceof RegExp){try{Nc(t,e.PATTERN)}catch(n){return{issue:De.IDENTIFY_TERMINATOR,errMsg:n.message}}return!1}else{if(typeof e.PATTERN=="string")return!1;if(vw(e))return{issue:De.CUSTOM_LINE_BREAK};throw Error("non exhaustive match")}}function iP(e,t){if(t.issue===De.IDENTIFY_TERMINATOR)return`Warning: unable to identify line terminator usage in pattern.
|
|
44
44
|
The problem is in the <${e.name}> Token Type
|
|
45
45
|
Root cause: ${t.errMsg}.
|
|
46
46
|
For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR`;if(t.issue===De.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the <line_breaks> option.
|
|
47
47
|
The problem is in the <${e.name}> Token Type
|
|
48
|
-
For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK`;throw Error("non exhaustive match")}function
|
|
49
|
-
`,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:
|
|
50
|
-
a boolean 2nd argument is no longer supported`);this.config=Object.assign({},ua,n);let r=this.config.traceInitPerf;r===!0?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):typeof r=="number"&&(this.traceInitMaxIdent=r,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",()=>{let i,o=!0;this.TRACE_INIT("Lexer Config handling",()=>{if(this.config.lineTerminatorsPattern===ua.lineTerminatorsPattern)this.config.lineTerminatorsPattern=
|
|
51
|
-
For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS`);if(n.safeMode&&n.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');this.trackStartLines=/full|onlyStart/i.test(this.config.positionTracking),this.trackEndLines=/full/i.test(this.config.positionTracking),Array.isArray(t)?i={modes:{defaultMode:[...t]},defaultMode:
|
|
48
|
+
For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK`;throw Error("non exhaustive match")}function kw(e){return e.map(n=>typeof n=="string"?n.charCodeAt(0):n)}function Sh(e,t,n){e[t]===void 0?e[t]=[n]:e[t].push(n)}var so=256,Pc=[];function gn(e){return e<so?e:Pc[e]}function oP(){if(Pc.length===0){Pc=new Array(65536);for(let e=0;e<65536;e++)Pc[e]=e>255?255+~~(e/255):e}}function kn(e,t){let n=e.tokenTypeIdx;return n===t.tokenTypeIdx?!0:t.isParent===!0&&t.categoryMatchesMap[n]===!0}function lo(e,t){return e.tokenTypeIdx===t.tokenTypeIdx}var Iw=1,Sw={};function In(e){let t=sP(e);aP(t),cP(t),lP(t),t.forEach(n=>{n.isParent=n.categoryMatches.length>0})}function sP(e){let t=[...e],n=e,r=!0;for(;r;){n=n.map(o=>o.CATEGORIES).flat().filter(Boolean);let i=n.filter(o=>!t.includes(o));t=t.concat(i),i.length===0?r=!1:n=i}return t}function aP(e){e.forEach(t=>{bh(t)||(Sw[Iw]=t,t.tokenTypeIdx=Iw++),Rw(t)&&!Array.isArray(t.CATEGORIES)&&(t.CATEGORIES=[t.CATEGORIES]),Rw(t)||(t.CATEGORIES=[]),uP(t)||(t.categoryMatches=[]),fP(t)||(t.categoryMatchesMap={})})}function lP(e){e.forEach(t=>{t.categoryMatches=[],Object.keys(t.categoryMatchesMap).forEach(n=>{t.categoryMatches.push(Sw[n].tokenTypeIdx)})})}function cP(e){e.forEach(t=>{bw([],t)})}function bw(e,t){e.forEach(n=>{t.categoryMatchesMap[n.tokenTypeIdx]=!0}),t.CATEGORIES.forEach(n=>{let r=e.concat(t);r.includes(n)||bw(r,n)})}function bh(e){return Object.hasOwn(e??{},"tokenTypeIdx")}function Rw(e){return Object.hasOwn(e??{},"CATEGORIES")}function uP(e){return Object.hasOwn(e??{},"categoryMatches")}function fP(e){return Object.hasOwn(e??{},"categoryMatchesMap")}function Nw(e){return Object.hasOwn(e??{},"tokenTypeIdx")}var co={buildUnableToPopLexerModeMessage(e){return`Unable to pop Lexer Mode after encountering Token ->${e.image}<- The Mode Stack is empty`},buildUnexpectedCharactersMessage(e,t,n,r,i,o){return`unexpected character: ->${e.charAt(t)}<- at offset: ${t}, skipped ${n} characters.`}};var De;(function(e){e[e.MISSING_PATTERN=0]="MISSING_PATTERN",e[e.INVALID_PATTERN=1]="INVALID_PATTERN",e[e.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",e[e.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",e[e.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",e[e.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",e[e.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",e[e.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",e[e.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",e[e.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",e[e.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",e[e.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",e[e.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",e[e.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",e[e.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",e[e.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",e[e.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK",e[e.MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE=17]="MULTI_MODE_LEXER_LONGER_ALT_NOT_IN_CURRENT_MODE"})(De||(De={}));var ua={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[`
|
|
49
|
+
`,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:co,traceInitPerf:!1,skipValidations:!1,recoveryEnabled:!0};Object.freeze(ua);var Me=class{constructor(t,n=ua){if(this.lexerDefinition=t,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.cachedGroupKeys=[],this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},this.TRACE_INIT=(i,o)=>{if(this.traceInitPerf===!0){this.traceInitIndent++;let s=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent<this.traceInitMaxIdent&&console.log(`${s}--> <${i}>`);let{time:a,value:l}=sa(o),c=a>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&c(`${s}<-- <${i}> time: ${a}ms`),this.traceInitIndent--,l}else return o()},typeof n=="boolean")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object.
|
|
50
|
+
a boolean 2nd argument is no longer supported`);this.config=Object.assign({},ua,n);let r=this.config.traceInitPerf;r===!0?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):typeof r=="number"&&(this.traceInitMaxIdent=r,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",()=>{let i,o=!0;this.TRACE_INIT("Lexer Config handling",()=>{if(this.config.lineTerminatorsPattern===ua.lineTerminatorsPattern)this.config.lineTerminatorsPattern=_w;else if(this.config.lineTerminatorCharacters===ua.lineTerminatorCharacters)throw Error(`Error: Missing <lineTerminatorCharacters> property on the Lexer config.
|
|
51
|
+
For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS`);if(n.safeMode&&n.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');this.trackStartLines=/full|onlyStart/i.test(this.config.positionTracking),this.trackEndLines=/full/i.test(this.config.positionTracking),Array.isArray(t)?i={modes:{defaultMode:[...t]},defaultMode:ao}:(o=!1,i=Object.assign({},t))}),this.config.skipValidations===!1&&(this.TRACE_INIT("performRuntimeChecks",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(ww(i,this.trackStartLines,this.config.lineTerminatorCharacters))}),this.TRACE_INIT("performWarningRuntimeChecks",()=>{this.lexerDefinitionWarning=this.lexerDefinitionWarning.concat(Tw(i,this.trackStartLines,this.config.lineTerminatorCharacters))})),i.modes=i.modes?i.modes:{},Object.entries(i.modes).forEach(([a,l])=>{i.modes[a]=l.filter(c=>c!==void 0)});let s=Object.keys(i.modes);if(Object.entries(i.modes).forEach(([a,l])=>{this.TRACE_INIT(`Mode: <${a}> processing`,()=>{if(this.modes.push(a),this.config.skipValidations===!1&&this.TRACE_INIT("validatePatterns",()=>{this.lexerDefinitionErrors=this.lexerDefinitionErrors.concat(Ew(l,s))}),this.lexerDefinitionErrors.length===0){In(l);let c;this.TRACE_INIT("analyzeTokenTypes",()=>{c=xw(l,{lineTerminatorCharacters:this.config.lineTerminatorCharacters,positionTracking:n.positionTracking,ensureOptimizations:n.ensureOptimizations,safeMode:n.safeMode,tracer:this.TRACE_INIT})}),this.patternIdxToConfig[a]=c.patternIdxToConfig,this.charCodeToPatternIdxToConfig[a]=c.charCodeToPatternIdxToConfig,this.emptyGroups=Object.assign({},this.emptyGroups,c.emptyGroups),this.hasCustom=c.hasCustom||this.hasCustom,this.canModeBeOptimized[a]=c.canBeOptimized}})}),this.defaultMode=i.defaultMode,this.cachedGroupKeys=Object.keys(this.emptyGroups),this.lexerDefinitionErrors.length>0&&!this.config.deferDefinitionErrorsHandling){let l=this.lexerDefinitionErrors.map(c=>c.message).join(`-----------------------
|
|
52
52
|
`);throw new Error(`Errors detected in definition of Lexer:
|
|
53
53
|
`+l)}this.lexerDefinitionWarning.forEach(a=>{oa(a.message)}),this.TRACE_INIT("Choosing sub-methods implementations",()=>{if(o&&(this.handleModes=()=>{}),this.trackStartLines===!1&&(this.computeNewColumn=a=>a),this.trackEndLines===!1&&(this.updateTokenEndLineColumnLocation=()=>{}),/full/i.test(this.config.positionTracking))this.createTokenInstance=this.createFullToken;else if(/onlyStart/i.test(this.config.positionTracking))this.createTokenInstance=this.createStartOnlyToken;else if(/onlyOffset/i.test(this.config.positionTracking))this.createTokenInstance=this.createOffsetOnlyToken;else throw Error(`Invalid <positionTracking> config option: "${this.config.positionTracking}"`);this.hasCustom?(this.addToken=this.addTokenUsingPush,this.handlePayload=this.handlePayloadWithCustom):(this.addToken=this.addTokenUsingMemberAccess,this.handlePayload=this.handlePayloadNoCustom)}),this.TRACE_INIT("Failed Optimization Warnings",()=>{let a=Object.entries(this.canModeBeOptimized).reduce((l,[c,u])=>(u===!1&&l.push(c),l),[]);if(n.ensureOptimizations&&a.length>0)throw Error(`Lexer Modes: < ${a.join(", ")} > cannot be optimized.
|
|
54
54
|
Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode.
|
|
55
|
-
Or inspect the console log for details on how to resolve these issues.`)}),this.TRACE_INIT("clearRegExpParserCache",()=>{
|
|
55
|
+
Or inspect the console log for details on how to resolve these issues.`)}),this.TRACE_INIT("clearRegExpParserCache",()=>{pw()}),this.TRACE_INIT("toFastProperties",()=>{aa(this)})})}tokenize(t,n=this.defaultMode){if(this.lexerDefinitionErrors.length>0){let i=this.lexerDefinitionErrors.map(o=>o.message).join(`-----------------------
|
|
56
56
|
`);throw new Error(`Unable to Tokenize because Errors detected in definition of Lexer:
|
|
57
|
-
`+i)}return this.tokenizeInternal(t,n)}tokenizeInternal(t,n){let r,i,o,s,a,l,c,u,f,d,p,m,g,
|
|
58
|
-
See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return Object.hasOwn(e,
|
|
57
|
+
`+i)}return this.tokenizeInternal(t,n)}tokenizeInternal(t,n){let r,i,o,s,a,l,c,u,f,d,p,m,g,w,x,y=t,E=y.length,_=0,T=0,I=this.hasCustom?0:Math.floor(t.length/10),B=new Array(I),$=[],X=this.trackStartLines?1:void 0,Y=this.trackStartLines?1:void 0,D={};for(let V=0;V<this.cachedGroupKeys.length;V++)D[this.cachedGroupKeys[V]]=[];let R=this.trackStartLines,S=this.config.lineTerminatorsPattern,O=0,k=[],L=[],v=[],P=[];Object.freeze(P);let b=!1,F=V=>{if(v.length===1&&V.tokenType.PUSH_MODE===void 0){let ne=this.config.errorMessageProvider.buildUnableToPopLexerModeMessage(V);$.push({offset:V.startOffset,line:V.startLine,column:V.startColumn,length:V.image.length,message:ne})}else{v.pop();let ne=v.at(-1);k=this.patternIdxToConfig[ne],L=this.charCodeToPatternIdxToConfig[ne],O=k.length;let A=this.canModeBeOptimized[ne]&&this.config.safeMode===!1;L&&A?b=!0:b=!1}};function j(V){v.push(V),L=this.charCodeToPatternIdxToConfig[V],k=this.patternIdxToConfig[V],O=k.length;let ne=this.canModeBeOptimized[V]&&this.config.safeMode===!1;L&&ne?b=!0:b=!1}j.call(this,n);let U,ee=this.config.recoveryEnabled;for(;_<E;){l=null,f=-1;let V=y.charCodeAt(_),ne;if(b){let C=gn(V),W=L[C];ne=W!==void 0?W:P}else ne=k;let A=ne.length;for(r=0;r<A;r++){U=ne[r];let C=U.pattern;switch(c=null,U.matchType){case Oc:V===U.short&&(f=1,l=C);break;case ca:x=C.exec(y,_,B,D),x!==null?(l=x[0],f=l.length,x.payload!==void 0&&(c=x.payload)):l=null;break;case $c:{let W=U.asciiClass;if(W[V]!==1){C.lastIndex=0;break}let G=_+1;for(;W[y.charCodeAt(G)]===1;)G++;f=G-_,C.lastIndex=G;break}case Cc:C.lastIndex=_,f=this.matchLength(C,t,_);break}if(f!==-1){if(a=U.longerAlt,a!==void 0){l=t.substring(_,_+f);let W=a.length;for(o=0;o<W;o++){let G=k[a[o]],K=G.pattern;if(u=null,G.matchType===ca?(x=K.exec(y,_,B,D),x!==null?(s=x[0],x.payload!==void 0&&(u=x.payload)):s=null):(K.lastIndex=_,s=this.match(K,t,_)),s&&s.length>l.length){l=s,f=s.length,c=u,U=G;break}}}break}}if(f!==-1){if(d=U.group,d!==void 0&&(l=l!==null?l:t.substring(_,_+f),p=U.tokenTypeIdx,m=this.createTokenInstance(l,_,p,U.tokenType,X,Y,f),this.handlePayload(m,c),d===!1?T=this.addToken(B,T,m):D[d].push(m)),R===!0&&U.canLineTerminator===!0){let C=0,W,G;S.lastIndex=0;do l=l!==null?l:t.substring(_,_+f),W=S.test(l),W===!0&&(G=S.lastIndex-1,C++);while(W===!0);C!==0?(X=X+C,Y=f-G,this.updateTokenEndLineColumnLocation(m,d,G,C,X,Y,f)):Y=this.computeNewColumn(Y,f)}else Y=this.computeNewColumn(Y,f);_=_+f,this.handleModes(U,F,j,m)}else{let C=_,W=X,G=Y,K=ee===!1;for(;K===!1&&_<E;)for(_++,i=0;i<O;i++){let q=k[i],J=q.pattern;switch(q.matchType){case Oc:y.charCodeAt(_)===q.short&&(K=!0);break;case ca:K=J.exec(y,_,B,D)!==null;break;case $c:case Cc:J.lastIndex=_,K=J.exec(t)!==null;break}if(K===!0)break}if(g=_-C,Y=this.computeNewColumn(Y,g),w=this.config.errorMessageProvider.buildUnexpectedCharactersMessage(y,C,g,W,G,v.at(-1)),$.push({offset:C,line:W,column:G,length:g,message:w}),ee===!1)break}}return this.hasCustom||(B.length=T),{tokens:B,groups:D,errors:$}}handleModes(t,n,r,i){if(t.pop===!0){let o=t.push;n(i),o!==void 0&&r.call(this,o)}else t.push!==void 0&&r.call(this,t.push)}updateTokenEndLineColumnLocation(t,n,r,i,o,s,a){let l,c;n!==void 0&&(l=r===a-1,c=l?-1:0,i===1&&l===!0||(t.endLine=o+c,t.endColumn=s-1+-c))}computeNewColumn(t,n){return t+n}createOffsetOnlyToken(t,n,r,i){return{image:t,startOffset:n,tokenTypeIdx:r,tokenType:i}}createStartOnlyToken(t,n,r,i,o,s){return{image:t,startOffset:n,startLine:o,startColumn:s,tokenTypeIdx:r,tokenType:i}}createFullToken(t,n,r,i,o,s,a){return{image:t,startOffset:n,endOffset:n+a-1,startLine:o,endLine:o,startColumn:s,endColumn:s+a-1,tokenTypeIdx:r,tokenType:i}}addTokenUsingPush(t,n,r){return t.push(r),n}addTokenUsingMemberAccess(t,n,r){return t[n]=r,n++,n}handlePayloadNoCustom(t,n){}handlePayloadWithCustom(t,n){n!==null&&(t.payload=n)}match(t,n,r){return t.test(n)===!0?n.substring(r,t.lastIndex):null}matchLength(t,n,r){return t.test(n)===!0?t.lastIndex-r:-1}};Me.SKIPPED="This marks a skipped Token pattern, this means each token identified by it will be consumed and then thrown into oblivion, this can be used to for example to completely ignore whitespace.";Me.NA=/NOT_APPLICABLE/;function Rn(e){return Nh(e)?e.LABEL:e.name}function Nh(e){return typeof e.LABEL=="string"&&e.LABEL!==""}var dP="parent",Lw="categories",Pw="label",Ow="group",Cw="push_mode",$w="pop_mode",Dw="longer_alt",Mw="line_breaks",Fw="start_chars_hint";function lr(e){return pP(e)}function pP(e){let t=e.pattern,n={};if(n.name=e.name,t!==void 0&&(n.PATTERN=t),Object.hasOwn(e,dP))throw`The parent property is no longer supported.
|
|
58
|
+
See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return Object.hasOwn(e,Lw)&&(n.CATEGORIES=e[Lw]),In([n]),Object.hasOwn(e,Pw)&&(n.LABEL=e[Pw]),Object.hasOwn(e,Ow)&&(n.GROUP=e[Ow]),Object.hasOwn(e,$w)&&(n.POP_MODE=e[$w]),Object.hasOwn(e,Cw)&&(n.PUSH_MODE=e[Cw]),Object.hasOwn(e,Dw)&&(n.LONGER_ALT=e[Dw]),Object.hasOwn(e,Mw)&&(n.LINE_BREAKS=e[Mw]),Object.hasOwn(e,Fw)&&(n.START_CHARS_HINT=e[Fw]),n}var ut=lr({name:"EOF",pattern:Me.NA});In([ut]);function Sn(e,t,n,r,i,o,s,a){return{image:t,startOffset:n,endOffset:r,startLine:i,endLine:o,startColumn:s,endColumn:a,tokenTypeIdx:e.tokenTypeIdx,tokenType:e}}function uo(e,t){return kn(e,t)}var bn={buildMismatchTokenMessage({expected:e,actual:t,previous:n,ruleName:r}){return`Expecting ${Nh(e)?`--> ${Rn(e)} <--`:`token of type --> ${e.name} <--`} but found --> '${t.image}' <--`},buildNotAllInputParsedMessage({firstRedundant:e,ruleName:t}){return"Redundant input, expecting EOF but found: "+e.image},buildNoViableAltMessage({expectedPathsPerAlt:e,actual:t,previous:n,customUserDescription:r,ruleName:i}){let o="Expecting: ",a=`
|
|
59
59
|
but found: '`+t[0].image+"'";if(r)return o+r+a;{let f=`one of these possible Token sequences:
|
|
60
60
|
${e.reduce((d,p)=>d.concat(p),[]).map(d=>`[${d.map(p=>Rn(p)).join(", ")}]`).map((d,p)=>` ${p+1}. ${d}`).join(`
|
|
61
61
|
`)}`;return o+f+a}},buildEarlyExitMessage({expectedIterationPaths:e,actual:t,customUserDescription:n,ruleName:r}){let i="Expecting: ",s=`
|
|
62
62
|
but found: '`+t[0].image+"'";if(n)return i+n+s;{let l=`expecting at least one iteration which starts with one of these possible Token sequences::
|
|
63
|
-
<${e.map(c=>`[${c.map(u=>Rn(u)).join(",")}]`).join(" ,")}>`;return i+l+s}}};Object.freeze(bn);var
|
|
64
|
-
inside top level rule: ->`+e.name+"<-"}},
|
|
63
|
+
<${e.map(c=>`[${c.map(u=>Rn(u)).join(",")}]`).join(" ,")}>`;return i+l+s}}};Object.freeze(bn);var Bw={buildRuleNotFoundError(e,t){return"Invalid grammar, reference to a rule which is not defined: ->"+t.nonTerminalName+`<-
|
|
64
|
+
inside top level rule: ->`+e.name+"<-"}},Vt={buildDuplicateFoundError(e,t){function n(u){return u instanceof ue?u.terminalType.name:u instanceof Ee?u.nonTerminalName:""}let r=e.name,i=t[0],o=i.idx,s=Et(i),a=n(i),l=o>0,c=`->${s}${l?o:""}<- ${a?`with argument: ->${a}<-`:""}
|
|
65
65
|
appears more than once (${t.length} times) in the top level rule: ->${r}<-.
|
|
66
66
|
For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES
|
|
67
67
|
`;return c=c.replace(/[ \t]+/g," "),c=c.replace(/\s\s+/g,`
|
|
@@ -87,46 +87,46 @@ rule: <${t}> can be invoked from itself (directly or indirectly)
|
|
|
87
87
|
without consuming any Tokens. The grammar path that causes this is:
|
|
88
88
|
${r}
|
|
89
89
|
To fix this refactor your grammar to remove the left recursion.
|
|
90
|
-
see: https://en.wikipedia.org/wiki/LL_parser#Left_factoring.`},buildInvalidRuleNameError(e){return"deprecated"},buildDuplicateRuleNameError(e){let t;return e.topLevelRule instanceof lt?t=e.topLevelRule.name:t=e.topLevelRule,`Duplicate definition, rule: ->${t}<- is already defined in the grammar: ->${e.grammarName}<-`}};function Ow(e,t){let n=new Sh(e,t);return n.resolveRefs(),n.errors}var Sh=class extends ct{constructor(t,n){super(),this.nameToTopRule=t,this.errMsgProvider=n,this.errors=[]}resolveRefs(){Object.values(this.nameToTopRule).forEach(t=>{this.currTopLevel=t,t.accept(this)})}visitNonTerminal(t){let n=this.nameToTopRule[t.nonTerminalName];if(n)t.referencedRule=n;else{let r=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,t);this.errors.push({message:r,type:Ye.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:t.nonTerminalName})}}};var bh=class extends An{constructor(t,n){super(),this.topProd=t,this.path=n,this.possibleTokTypes=[],this.nextProductionName="",this.nextProductionOccurrence=0,this.found=!1,this.isAtEndOfPath=!1}startWalking(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=[...this.path.ruleStack].reverse(),this.occurrenceStack=[...this.path.occurrenceStack].reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes}walk(t,n=[]){this.found||super.walk(t,n)}walkProdRef(t,n,r){if(t.referencedRule.name===this.nextProductionName&&t.idx===this.nextProductionOccurrence){let i=n.concat(r);this.updateExpectedNext(),this.walk(t.referencedRule,i)}}updateExpectedNext(){this.ruleStack.length===0?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())}},$c=class extends bh{constructor(t,n){super(t,n),this.path=n,this.nextTerminalName="",this.nextTerminalOccurrence=0,this.nextTerminalName=this.path.lastTok.name,this.nextTerminalOccurrence=this.path.lastTokOccurrence}walkTerminal(t,n,r){if(this.isAtEndOfPath&&t.terminalType.name===this.nextTerminalName&&t.idx===this.nextTerminalOccurrence&&!this.found){let i=n.concat(r),o=new be({definition:i});this.possibleTokTypes=ti(o),this.found=!0}}},uo=class extends An{constructor(t,n){super(),this.topRule=t,this.occurrence=n,this.result={token:void 0,occurrence:void 0,isEndOfRule:void 0}}startWalking(){return this.walk(this.topRule),this.result}},Dc=class extends uo{walkMany(t,n,r){if(t.idx===this.occurrence){let i=n.concat(r)[0];this.result.isEndOfRule=i===void 0,i instanceof ue&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkMany(t,n,r)}},fa=class extends uo{walkManySep(t,n,r){if(t.idx===this.occurrence){let i=n.concat(r)[0];this.result.isEndOfRule=i===void 0,i instanceof ue&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkManySep(t,n,r)}},Mc=class extends uo{walkAtLeastOne(t,n,r){if(t.idx===this.occurrence){let i=n.concat(r)[0];this.result.isEndOfRule=i===void 0,i instanceof ue&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkAtLeastOne(t,n,r)}},da=class extends uo{walkAtLeastOneSep(t,n,r){if(t.idx===this.occurrence){let i=n.concat(r)[0];this.result.isEndOfRule=i===void 0,i instanceof ue&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkAtLeastOneSep(t,n,r)}};function Fc(e,t,n=[]){n=[...n];let r=[],i=0;function o(a){return a.concat(e.slice(i+1))}function s(a){let l=Fc(o(a),t,n);return r.concat(l)}for(;n.length<t&&i<e.length;){let a=e[i];if(a instanceof be)return s(a.definition);if(a instanceof Ee)return s(a.definition);if(a instanceof we)r=s(a.definition);else if(a instanceof Ne){let l=a.definition.concat([new ge({definition:a.definition})]);return s(l)}else if(a instanceof Le){let l=[new be({definition:a.definition}),new ge({definition:[new ue({terminalType:a.separator})].concat(a.definition)})];return s(l)}else if(a instanceof ke){let l=a.definition.concat([new ge({definition:[new ue({terminalType:a.separator})].concat(a.definition)})]);r=s(l)}else if(a instanceof ge){let l=a.definition.concat([new ge({definition:a.definition})]);r=s(l)}else{if(a instanceof Ie)return a.definition.forEach(l=>{l.definition.length!==0&&(r=s(l.definition))}),r;if(a instanceof ue)n.push(a.terminalType);else throw Error("non exhaustive match")}i++}return r.push({partialPath:n,suffixDef:e.slice(i)}),r}function Pw(e,t,n,r){let i="EXIT_NONE_TERMINAL",o=[i],s="EXIT_ALTERNATIVE",a=!1,l=t.length,c=l-r-1,u=[],f=[];for(f.push({idx:-1,def:e,ruleStack:[],occurrenceStack:[]});f.length!==0;){let d=f.pop();if(d===s){a&&f.at(-1).idx<=c&&f.pop();continue}let p=d.def,m=d.idx,g=d.ruleStack,E=d.occurrenceStack;if(p.length===0)continue;let x=p[0];if(x===i){let y={idx:m,def:p.slice(1),ruleStack:g.slice(0,-1),occurrenceStack:E.slice(0,-1)};f.push(y)}else if(x instanceof ue)if(m<l-1){let y=m+1,w=t[y];if(n(w,x.terminalType)){let _={idx:y,def:p.slice(1),ruleStack:g,occurrenceStack:E};f.push(_)}}else if(m===l-1)u.push({nextTokenType:x.terminalType,nextTokenOccurrence:x.idx,ruleStack:g,occurrenceStack:E}),a=!0;else throw Error("non exhaustive match");else if(x instanceof Ee){let y=[...g];y.push(x.nonTerminalName);let w=[...E];w.push(x.idx);let _={idx:m,def:x.definition.concat(o,p.slice(1)),ruleStack:y,occurrenceStack:w};f.push(_)}else if(x instanceof we){let y={idx:m,def:p.slice(1),ruleStack:g,occurrenceStack:E};f.push(y),f.push(s);let w={idx:m,def:x.definition.concat(p.slice(1)),ruleStack:g,occurrenceStack:E};f.push(w)}else if(x instanceof Ne){let y=new ge({definition:x.definition,idx:x.idx}),w=x.definition.concat([y],p.slice(1)),_={idx:m,def:w,ruleStack:g,occurrenceStack:E};f.push(_)}else if(x instanceof Le){let y=new ue({terminalType:x.separator}),w=new ge({definition:[y].concat(x.definition),idx:x.idx}),_=x.definition.concat([w],p.slice(1)),k={idx:m,def:_,ruleStack:g,occurrenceStack:E};f.push(k)}else if(x instanceof ke){let y={idx:m,def:p.slice(1),ruleStack:g,occurrenceStack:E};f.push(y),f.push(s);let w=new ue({terminalType:x.separator}),_=new ge({definition:[w].concat(x.definition),idx:x.idx}),k=x.definition.concat([_],p.slice(1)),N={idx:m,def:k,ruleStack:g,occurrenceStack:E};f.push(N)}else if(x instanceof ge){let y={idx:m,def:p.slice(1),ruleStack:g,occurrenceStack:E};f.push(y),f.push(s);let w=new ge({definition:x.definition,idx:x.idx}),_=x.definition.concat([w],p.slice(1)),k={idx:m,def:_,ruleStack:g,occurrenceStack:E};f.push(k)}else if(x instanceof Ie)for(let y=x.definition.length-1;y>=0;y--){let w=x.definition[y],_={idx:m,def:w.definition.concat(p.slice(1)),ruleStack:g,occurrenceStack:E};f.push(_),f.push(s)}else if(x instanceof be)f.push({idx:m,def:x.definition.concat(p.slice(1)),ruleStack:g,occurrenceStack:E});else if(x instanceof lt)f.push(cO(x,m,g,E));else throw Error("non exhaustive match")}return u}function cO(e,t,n,r){let i=[...n];i.push(e.name);let o=[...r];return o.push(1),{idx:t,def:e.definition,ruleStack:i,occurrenceStack:o}}var Fe;(function(e){e[e.OPTION=0]="OPTION",e[e.REPETITION=1]="REPETITION",e[e.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",e[e.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",e[e.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",e[e.ALTERNATION=5]="ALTERNATION"})(Fe||(Fe={}));function pa(e){if(e instanceof we||e==="Option")return Fe.OPTION;if(e instanceof ge||e==="Repetition")return Fe.REPETITION;if(e instanceof Ne||e==="RepetitionMandatory")return Fe.REPETITION_MANDATORY;if(e instanceof Le||e==="RepetitionMandatoryWithSeparator")return Fe.REPETITION_MANDATORY_WITH_SEPARATOR;if(e instanceof ke||e==="RepetitionWithSeparator")return Fe.REPETITION_WITH_SEPARATOR;if(e instanceof Ie||e==="Alternation")return Fe.ALTERNATION;throw Error("non exhaustive match")}function Wc(e){let{occurrence:t,rule:n,prodType:r,maxLookahead:i}=e,o=pa(r);return o===Fe.ALTERNATION?fo(t,n,i):po(t,n,o,i)}function $w(e,t,n,r,i,o){let s=fo(e,t,n),a=Xw(s)?ao:kn;return o(s,r,a,i)}function Dw(e,t,n,r,i,o){let s=po(e,t,i,n),a=Xw(s)?ao:kn;return o(s[0],a,r)}function Mw(e,t,n,r){let i=e.length,o=e.every(s=>s.every(a=>a.length===1));if(t)return function(s){let a=s.map(l=>l.GATE);for(let l=0;l<i;l++){let c=e[l],u=c.length,f=a[l];if(!(f!==void 0&&f.call(this)===!1))e:for(let d=0;d<u;d++){let p=c[d],m=p.length;for(let g=0;g<m;g++){let E=this.LA_FAST(g+1);if(n(E,p[g])===!1)continue e}return l}}};if(o&&!r){let a=e.map(l=>l.flat()).reduce((l,c,u)=>(c.forEach(f=>{f.tokenTypeIdx in l||(l[f.tokenTypeIdx]=u),f.categoryMatches.forEach(d=>{Object.hasOwn(l,d)||(l[d]=u)})}),l),{});return function(){let l=this.LA_FAST(1);return a[l.tokenTypeIdx]}}else return function(){for(let s=0;s<i;s++){let a=e[s],l=a.length;e:for(let c=0;c<l;c++){let u=a[c],f=u.length;for(let d=0;d<f;d++){let p=this.LA_FAST(d+1);if(n(p,u[d])===!1)continue e}return s}}}}function Fw(e,t,n){let r=e.every(o=>o.length===1),i=e.length;if(r&&!n){let o=e.flat();if(o.length===1&&o[0].categoryMatches.length===0){let a=o[0].tokenTypeIdx;return function(){return this.LA_FAST(1).tokenTypeIdx===a}}else{let s=o.reduce((a,l,c)=>(a[l.tokenTypeIdx]=!0,l.categoryMatches.forEach(u=>{a[u]=!0}),a),[]);return function(){let a=this.LA_FAST(1);return s[a.tokenTypeIdx]===!0}}}else return function(){e:for(let o=0;o<i;o++){let s=e[o],a=s.length;for(let l=0;l<a;l++){let c=this.LA_FAST(l+1);if(t(c,s[l])===!1)continue e}return!0}return!1}}var Lh=class extends An{constructor(t,n,r){super(),this.topProd=t,this.targetOccurrence=n,this.targetProdType=r}startWalking(){return this.walk(this.topProd),this.restDef}checkIsTarget(t,n,r,i){return t.idx===this.targetOccurrence&&this.targetProdType===n?(this.restDef=r.concat(i),!0):!1}walkOption(t,n,r){this.checkIsTarget(t,Fe.OPTION,n,r)||super.walkOption(t,n,r)}walkAtLeastOne(t,n,r){this.checkIsTarget(t,Fe.REPETITION_MANDATORY,n,r)||super.walkOption(t,n,r)}walkAtLeastOneSep(t,n,r){this.checkIsTarget(t,Fe.REPETITION_MANDATORY_WITH_SEPARATOR,n,r)||super.walkOption(t,n,r)}walkMany(t,n,r){this.checkIsTarget(t,Fe.REPETITION,n,r)||super.walkOption(t,n,r)}walkManySep(t,n,r){this.checkIsTarget(t,Fe.REPETITION_WITH_SEPARATOR,n,r)||super.walkOption(t,n,r)}},Bc=class extends ct{constructor(t,n,r){super(),this.targetOccurrence=t,this.targetProdType=n,this.targetRef=r,this.result=[]}checkIsTarget(t,n){t.idx===this.targetOccurrence&&this.targetProdType===n&&(this.targetRef===void 0||t===this.targetRef)&&(this.result=t.definition)}visitOption(t){this.checkIsTarget(t,Fe.OPTION)}visitRepetition(t){this.checkIsTarget(t,Fe.REPETITION)}visitRepetitionMandatory(t){this.checkIsTarget(t,Fe.REPETITION_MANDATORY)}visitRepetitionMandatoryWithSeparator(t){this.checkIsTarget(t,Fe.REPETITION_MANDATORY_WITH_SEPARATOR)}visitRepetitionWithSeparator(t){this.checkIsTarget(t,Fe.REPETITION_WITH_SEPARATOR)}visitAlternation(t){this.checkIsTarget(t,Fe.ALTERNATION)}};function Cw(e){let t=new Array(e);for(let n=0;n<e;n++)t[n]=[];return t}function Nh(e){let t=[""];for(let n=0;n<e.length;n++){let r=e[n],i=[];for(let o=0;o<t.length;o++){let s=t[o];i.push(s+"_"+r.tokenTypeIdx);for(let a=0;a<r.categoryMatches.length;a++){let l="_"+r.categoryMatches[a];i.push(s+l)}}t=i}return t}function uO(e,t,n){for(let r=0;r<e.length;r++){if(r===n)continue;let i=e[r];for(let o=0;o<t.length;o++){let s=t[o];if(i[s]===!0)return!1}}return!0}function Bw(e,t){let n=e.map(s=>Fc([s],1)),r=Cw(n.length),i=n.map(s=>{let a={};return s.forEach(l=>{Nh(l.partialPath).forEach(u=>{a[u]=!0})}),a}),o=n;for(let s=1;s<=t;s++){let a=o;o=Cw(a.length);for(let l=0;l<a.length;l++){let c=a[l];for(let u=0;u<c.length;u++){let f=c[u].partialPath,d=c[u].suffixDef,p=Nh(f);if(uO(i,p,l)||d.length===0||f.length===t){let g=r[l];if(Xc(g,f)===!1){g.push(f);for(let E=0;E<p.length;E++){let x=p[E];i[l][x]=!0}}}else{let g=Fc(d,s+1,f);o[l]=o[l].concat(g),g.forEach(E=>{Nh(E.partialPath).forEach(y=>{i[l][y]=!0})})}}}}return r}function fo(e,t,n,r){let i=new Bc(e,Fe.ALTERNATION,r);return t.accept(i),Bw(i.result,n)}function po(e,t,n,r){let i=new Bc(e,n);t.accept(i);let o=i.result,a=new Lh(t,e,n).startWalking(),l=new be({definition:o}),c=new be({definition:a});return Bw([l,c],r)}function Xc(e,t){e:for(let n=0;n<e.length;n++){let r=e[n];if(r.length===t.length){for(let i=0;i<r.length;i++){let o=t[i],s=r[i];if((o===s||s.categoryMatchesMap[o.tokenTypeIdx]!==void 0)===!1)continue e}return!0}}return!1}function Ww(e,t){return e.length<t.length&&e.every((n,r)=>{let i=t[r];return n===i||i.categoryMatchesMap[n.tokenTypeIdx]})}function Xw(e){return e.every(t=>t.every(n=>n.every(r=>r.categoryMatches.length===0)))}function Uw(e){return e.lookaheadStrategy.validate({rules:e.rules,tokenTypes:e.tokenTypes,grammarName:e.grammarName}).map(n=>Object.assign({type:Ye.CUSTOM_LOOKAHEAD_VALIDATION},n))}function Gw(e,t,n,r){let i=e.flatMap(l=>fO(l,n)),o=yO(e,t,n),s=e.flatMap(l=>hO(l,n)),a=e.flatMap(l=>pO(l,e,r,n));return i.concat(o,s,a)}function fO(e,t){let n=new Oh;e.accept(n);let r=n.allProductions,i=Object.groupBy(r,dO),o=Object.fromEntries(Object.entries(i).filter(([a,l])=>l.length>1));return Object.values(o).map(a=>{let l=a[0],c=t.buildDuplicateFoundError(e,a),u=Et(l),f={message:c,type:Ye.DUPLICATE_PRODUCTIONS,ruleName:e.name,dslName:u,occurrence:l.idx},d=Hw(l);return d&&(f.parameter=d),f})}function dO(e){return`${Et(e)}_#_${e.idx}_#_${Hw(e)}`}function Hw(e){return e instanceof ue?e.terminalType.name:e instanceof Ee?e.nonTerminalName:""}var Oh=class extends ct{constructor(){super(...arguments),this.allProductions=[]}visitNonTerminal(t){this.allProductions.push(t)}visitOption(t){this.allProductions.push(t)}visitRepetitionWithSeparator(t){this.allProductions.push(t)}visitRepetitionMandatory(t){this.allProductions.push(t)}visitRepetitionMandatoryWithSeparator(t){this.allProductions.push(t)}visitRepetition(t){this.allProductions.push(t)}visitAlternation(t){this.allProductions.push(t)}visitTerminal(t){this.allProductions.push(t)}};function pO(e,t,n,r){let i=[];if(t.reduce((s,a)=>a.name===e.name?s+1:s,0)>1){let s=r.buildDuplicateRuleNameError({topLevelRule:e,grammarName:n});i.push({message:s,type:Ye.DUPLICATE_RULE_NAME,ruleName:e.name})}return i}function zw(e,t,n){let r=[],i;return t.includes(e)||(i=`Invalid rule override, rule: ->${e}<- cannot be overridden in the grammar: ->${n}<-as it is not defined in any of the super grammars `,r.push({message:i,type:Ye.INVALID_RULE_OVERRIDE,ruleName:e})),r}function Ch(e,t,n,r=[]){let i=[],o=Uc(t.definition);if(o.length===0)return[];{let s=e.name;o.includes(e)&&i.push({message:n.buildLeftRecursionError({topLevelRule:e,leftRecursionPath:r}),type:Ye.LEFT_RECURSION,ruleName:s});let l=r.concat([e]),u=o.filter(f=>!l.includes(f)).flatMap(f=>{let d=[...r];return d.push(f),Ch(e,f,n,d)});return i.concat(u)}}function Uc(e){let t=[];if(e.length===0)return t;let n=e[0];if(n instanceof Ee)t.push(n.referencedRule);else if(n instanceof be||n instanceof we||n instanceof Ne||n instanceof Le||n instanceof ke||n instanceof ge)t=t.concat(Uc(n.definition));else if(n instanceof Ie)t=n.definition.map(o=>Uc(o.definition)).flat();else if(!(n instanceof ue))throw Error("non exhaustive match");let r=ei(n),i=e.length>1;if(r&&i){let o=e.slice(1);return t.concat(Uc(o))}else return t}var ha=class extends ct{constructor(){super(...arguments),this.alternations=[]}visitAlternation(t){this.alternations.push(t)}};function jw(e,t){let n=new ha;return e.accept(n),n.alternations.flatMap(o=>o.definition.slice(0,-1).flatMap((a,l)=>Pw([a],[],kn,1).length===0?[{message:t.buildEmptyAlternationError({topLevelRule:e,alternation:o,emptyChoiceIdx:l}),type:Ye.NONE_LAST_EMPTY_ALT,ruleName:e.name,occurrence:o.idx,alternative:l+1}]:[]))}function Yw(e,t,n){let r=new ha;e.accept(r);let i=r.alternations;return i=i.filter(s=>s.ignoreAmbiguities!==!0),i.flatMap(s=>{let a=s.idx,l=s.maxLookahead||t,c=fo(a,e,l,s),u=mO(c,s,e,n),f=gO(c,s,e,n);return u.concat(f)})}var Ph=class extends ct{constructor(){super(...arguments),this.allProductions=[]}visitRepetitionWithSeparator(t){this.allProductions.push(t)}visitRepetitionMandatory(t){this.allProductions.push(t)}visitRepetitionMandatoryWithSeparator(t){this.allProductions.push(t)}visitRepetition(t){this.allProductions.push(t)}};function hO(e,t){let n=new ha;return e.accept(n),n.alternations.flatMap(o=>o.definition.length>255?[{message:t.buildTooManyAlternativesError({topLevelRule:e,alternation:o}),type:Ye.TOO_MANY_ALTS,ruleName:e.name,occurrence:o.idx}]:[])}function Vw(e,t,n){let r=[];return e.forEach(i=>{let o=new Ph;i.accept(o),o.allProductions.forEach(a=>{let l=pa(a),c=a.maxLookahead||t,u=a.idx;if(po(u,i,l,c)[0].flat().length===0){let p=n.buildEmptyRepetitionError({topLevelRule:i,repetition:a});r.push({message:p,type:Ye.NO_NON_EMPTY_LOOKAHEAD,ruleName:i.name})}})}),r}function mO(e,t,n,r){let i=[];return e.reduce((a,l,c)=>(t.definition[c].ignoreAmbiguities===!0||l.forEach(u=>{let f=[c];e.forEach((d,p)=>{c!==p&&Xc(d,u)&&t.definition[p].ignoreAmbiguities!==!0&&f.push(p)}),f.length>1&&!Xc(i,u)&&(i.push(u),a.push({alts:f,path:u}))}),a),[]).map(a=>{let l=a.alts.map(u=>u+1);return{message:r.buildAlternationAmbiguityError({topLevelRule:n,alternation:t,ambiguityIndices:l,prefixPath:a.path}),type:Ye.AMBIGUOUS_ALTS,ruleName:n.name,occurrence:t.idx,alternatives:a.alts}})}function gO(e,t,n,r){let i=e.reduce((s,a,l)=>{let c=a.map(u=>({idx:l,path:u}));return s.concat(c)},[]);return i.flatMap(s=>{if(t.definition[s.idx].ignoreAmbiguities===!0)return[];let l=s.idx,c=s.path;return i.filter(d=>t.definition[d.idx].ignoreAmbiguities!==!0&&d.idx<l&&Ww(d.path,c)).map(d=>{let p=[d.idx+1,l+1],m=t.idx===0?"":t.idx;return{message:r.buildAlternationPrefixAmbiguityError({topLevelRule:n,alternation:t,ambiguityIndices:p,prefixPath:d.path}),type:Ye.AMBIGUOUS_PREFIX_ALTS,ruleName:n.name,occurrence:m,alternatives:p}})})}function yO(e,t,n){let r=[],i=t.map(o=>o.name);return e.forEach(o=>{let s=o.name;if(i.includes(s)){let a=n.buildNamespaceConflictError(o);r.push({message:a,type:Ye.CONFLICT_TOKENS_RULES_NAMESPACE,ruleName:s})}}),r}function Kw(e){let t=Object.assign({errMsgProvider:Lw},e),n={};return e.rules.forEach(r=>{n[r.name]=r}),Ow(n,t.errMsgProvider)}function qw(e){var t;let n=(t=e.errMsgProvider)!==null&&t!==void 0?t:Yt;return Gw(e.rules,e.tokenTypes,n,e.grammarName)}var Zw="MismatchedTokenException",Jw="NoViableAltException",Qw="EarlyExitException",eT="NotAllInputParsedException",tT=[Zw,Jw,Qw,eT];Object.freeze(tT);function cr(e){return tT.includes(e.name)}var ho=class extends Error{constructor(t,n){super(t),this.token=n,this.resyncedTokens=[],Object.setPrototypeOf(this,new.target.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}},ii=class extends ho{constructor(t,n,r){super(t,n),this.previousToken=r,this.name=Zw}},ma=class extends ho{constructor(t,n,r){super(t,n),this.previousToken=r,this.name=Jw}},ga=class extends ho{constructor(t,n){super(t,n),this.name=eT}},ya=class extends ho{constructor(t,n,r){super(t,n),this.previousToken=r,this.name=Qw}};var $h={},Mh="InRuleRecoveryException",Dh=class extends Error{constructor(t){super(t),this.name=Mh}},Gc=class{initRecoverable(t){this.firstAfterRepMap=[],this.resyncFollows={},this.recoveryEnabled=Object.hasOwn(t,"recoveryEnabled")?t.recoveryEnabled:ft.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=xO)}getTokenToInsert(t){let n=Sn(t,"",-1,-1,-1,-1,-1,-1);return n.isInsertedInRecovery=!0,n}canTokenTypeBeInsertedInRecovery(t){return!0}canTokenTypeBeDeletedInRecovery(t){return!0}tryInRepetitionRecovery(t,n,r,i){let o=this.findReSyncTokenType(),s=this.exportLexerState(),a=[],l=!1,c=this.LA_FAST(1),u=this.LA_FAST(1),f=()=>{let d=this.LA(0),p=this.errorMessageProvider.buildMismatchTokenMessage({expected:i,actual:c,previous:d,ruleName:this.getCurrRuleFullName()}),m=new ii(p,c,this.LA(0));m.resyncedTokens=a.slice(0,-1),this.SAVE_ERROR(m)};for(;!l;)if(this.tokenMatcher(u,i)){f();return}else if(r.call(this)){f(),t.apply(this,n);return}else this.tokenMatcher(u,o)?l=!0:(u=this.SKIP_TOKEN(),this.addToResyncTokens(u,a));this.importLexerState(s)}shouldInRepetitionRecoveryBeTried(t,n,r){return!(r===!1||this.tokenMatcher(this.LA_FAST(1),t)||this.isBackTracking()||this.canPerformInRuleRecovery(t,this.getFollowsForInRuleRecovery(t,n)))}getNextPossibleTokenTypes(t){let n=t.ruleStack[0],i=this.getGAstProductions()[n];return new $c(i,t).startWalking()}getFollowsForInRuleRecovery(t,n){let r=this.getCurrentGrammarPath(t,n);return this.getNextPossibleTokenTypes(r)}tryInRuleRecovery(t,n){if(this.canRecoverWithSingleTokenInsertion(t,n))return this.getTokenToInsert(t);if(this.canRecoverWithSingleTokenDeletion(t)){let r=this.SKIP_TOKEN();return this.consumeToken(),r}throw new Dh("sad sad panda")}canPerformInRuleRecovery(t,n){return this.canRecoverWithSingleTokenInsertion(t,n)||this.canRecoverWithSingleTokenDeletion(t)}canRecoverWithSingleTokenInsertion(t,n){if(!this.canTokenTypeBeInsertedInRecovery(t)||n.length===0)return!1;let r=this.LA_FAST(1);return n.find(o=>this.tokenMatcher(r,o))!==void 0}canRecoverWithSingleTokenDeletion(t){return this.canTokenTypeBeDeletedInRecovery(t)?this.tokenMatcher(this.LA(2),t):!1}isInCurrentRuleReSyncSet(t){let n=this.getCurrFollowKey();return this.getFollowSetFromFollowKey(n).includes(t)}findReSyncTokenType(){let t=this.flattenFollowSet(),n=this.LA_FAST(1),r=2;for(;;){let i=t.find(o=>co(n,o));if(i!==void 0)return i;n=this.LA(r),r++}}getCurrFollowKey(){if(this.RULE_STACK_IDX===0)return $h;let t=this.currRuleShortName,n=this.getLastExplicitRuleOccurrenceIndex(),r=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(t),idxInCallingRule:n,inRule:this.shortRuleNameToFullName(r)}}buildFullFollowKeyStack(){let t=this.RULE_STACK,n=this.RULE_OCCURRENCE_STACK,r=this.RULE_STACK_IDX+1,i=new Array(r);for(let o=0;o<r;o++)o===0?i[o]=$h:i[o]={ruleName:this.shortRuleNameToFullName(t[o]),idxInCallingRule:n[o],inRule:this.shortRuleNameToFullName(t[o-1])};return i}flattenFollowSet(){return this.buildFullFollowKeyStack().map(n=>this.getFollowSetFromFollowKey(n)).flat()}getFollowSetFromFollowKey(t){if(t===$h)return[ut];let n=t.ruleName+t.idxInCallingRule+Ic+t.inRule;return this.resyncFollows[n]}addToResyncTokens(t,n){return this.tokenMatcher(t,ut)||n.push(t),n}reSyncTo(t){let n=[],r=this.LA_FAST(1);for(;this.tokenMatcher(r,t)===!1;)r=this.SKIP_TOKEN(),this.addToResyncTokens(r,n);return n.slice(0,-1)}attemptInRepetitionRecovery(t,n,r,i,o,s,a){}getCurrentGrammarPath(t,n){let r=this.getHumanReadableRuleStack(),i=this.RULE_OCCURRENCE_STACK.slice(0,this.RULE_OCCURRENCE_STACK_IDX+1);return{ruleStack:r,occurrenceStack:i,lastTok:t,lastTokOccurrence:n}}getHumanReadableRuleStack(){let t=this.RULE_STACK_IDX+1,n=new Array(t);for(let r=0;r<t;r++)n[r]=this.shortRuleNameToFullName(this.RULE_STACK[r]);return n}};function xO(e,t,n,r,i,o,s){var a,l,c;let u=r|i,f=(a=(l=this.firstAfterRepMap)[c=this.currRuleShortName])!==null&&a!==void 0?a:l[c]=[],d=f[u];if(d===void 0){let E=this.getCurrRuleFullName(),x=this.getGAstProductions()[E];d=new o(x,i).startWalking(),f[u]=d}let p=d.token,m=d.occurrence,g=d.isEndOfRule;this.RULE_STACK_IDX===0&&g&&p===void 0&&(p=ut,m=1),!(p===void 0||m===void 0)&&this.shouldInRepetitionRecoveryBeTried(p,m,s)&&this.tryInRepetitionRecovery(e,t,n,p)}var Nn=class{constructor(t){var n;this.maxLookahead=(n=t?.maxLookahead)!==null&&n!==void 0?n:ft.maxLookahead}validate(t){let n=this.validateNoLeftRecursion(t.rules);if(n.length===0){let r=this.validateEmptyOrAlternatives(t.rules),i=this.validateAmbiguousAlternationAlternatives(t.rules,this.maxLookahead),o=this.validateSomeNonEmptyLookaheadPath(t.rules,this.maxLookahead);return[...n,...r,...i,...o]}return n}validateNoLeftRecursion(t){return t.flatMap(n=>Ch(n,n,Yt))}validateEmptyOrAlternatives(t){return t.flatMap(n=>jw(n,Yt))}validateAmbiguousAlternationAlternatives(t,n){return t.flatMap(r=>Yw(r,n,Yt))}validateSomeNonEmptyLookaheadPath(t,n){return Vw(t,n,Yt)}buildLookaheadForAlternation(t){return $w(t.prodOccurrence,t.rule,t.maxLookahead,t.hasPredicates,t.dynamicTokensEnabled,Mw)}buildLookaheadForOptional(t){return Dw(t.prodOccurrence,t.rule,t.maxLookahead,t.dynamicTokensEnabled,pa(t.prodType),Fw)}};var zc=class{initLooksAhead(t){this.dynamicTokensEnabled=Object.hasOwn(t,"dynamicTokensEnabled")?t.dynamicTokensEnabled:ft.dynamicTokensEnabled,this.maxLookahead=Object.hasOwn(t,"maxLookahead")?t.maxLookahead:ft.maxLookahead,this.lookaheadStrategy=Object.hasOwn(t,"lookaheadStrategy")?t.lookaheadStrategy:new Nn({maxLookahead:this.maxLookahead}),this.lookAheadFuncsCache=[],this.currRuleLookaheadFuncs=[]}preComputeLookaheadFunctions(t){t.forEach(n=>{this.TRACE_INIT(`${n.name} Rule Lookahead`,()=>{let{alternation:r,repetition:i,option:o,repetitionMandatory:s,repetitionMandatoryWithSeparator:a,repetitionWithSeparator:l}=EO(n);r.forEach(c=>{let u=c.idx===0?"":c.idx;this.TRACE_INIT(`${Et(c)}${u}`,()=>{let f=this.lookaheadStrategy.buildLookaheadForAlternation({prodOccurrence:c.idx,rule:n,maxLookahead:c.maxLookahead||this.maxLookahead,hasPredicates:c.hasPredicates,dynamicTokensEnabled:this.dynamicTokensEnabled});this.setLaFuncCache(this.fullRuleNameToShort[n.name],256|c.idx,f)})}),i.forEach(c=>{this.computeLookaheadFunc(n,c.idx,768,"Repetition",c.maxLookahead,Et(c))}),o.forEach(c=>{this.computeLookaheadFunc(n,c.idx,512,"Option",c.maxLookahead,Et(c))}),s.forEach(c=>{this.computeLookaheadFunc(n,c.idx,1024,"RepetitionMandatory",c.maxLookahead,Et(c))}),a.forEach(c=>{this.computeLookaheadFunc(n,c.idx,1536,"RepetitionMandatoryWithSeparator",c.maxLookahead,Et(c))}),l.forEach(c=>{this.computeLookaheadFunc(n,c.idx,1280,"RepetitionWithSeparator",c.maxLookahead,Et(c))})})})}computeLookaheadFunc(t,n,r,i,o,s){this.TRACE_INIT(`${s}${n===0?"":n}`,()=>{let a=this.lookaheadStrategy.buildLookaheadForOptional({prodOccurrence:n,rule:t,maxLookahead:o||this.maxLookahead,dynamicTokensEnabled:this.dynamicTokensEnabled,prodType:i});this.setLaFuncCache(this.fullRuleNameToShort[t.name],r|n,a)})}setLaFuncCache(t,n,r){let i=this.lookAheadFuncsCache[t];i===void 0&&(i=[],this.lookAheadFuncsCache[t]=i),i[n]=r}},Fh=class extends ct{constructor(){super(...arguments),this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}reset(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}visitOption(t){this.dslMethods.option.push(t)}visitRepetitionWithSeparator(t){this.dslMethods.repetitionWithSeparator.push(t)}visitRepetitionMandatory(t){this.dslMethods.repetitionMandatory.push(t)}visitRepetitionMandatoryWithSeparator(t){this.dslMethods.repetitionMandatoryWithSeparator.push(t)}visitRepetition(t){this.dslMethods.repetition.push(t)}visitAlternation(t){this.dslMethods.alternation.push(t)}},Hc=new Fh;function EO(e){Hc.reset(),e.accept(Hc);let t=Hc.dslMethods;return Hc.reset(),t}function Xh(e,t){e.startOffset===-1?(e.startOffset=t.startOffset,e.endOffset=t.endOffset):e.endOffset<t.endOffset&&(e.endOffset=t.endOffset)}function Uh(e,t){e.startOffset===-1?(e.startOffset=t.startOffset,e.startColumn=t.startColumn,e.startLine=t.startLine,e.endOffset=t.endOffset,e.endColumn=t.endColumn,e.endLine=t.endLine):e.endOffset<t.endOffset&&(e.endOffset=t.endOffset,e.endColumn=t.endColumn,e.endLine=t.endLine)}function nT(e,t,n){e.children[n]===void 0?e.children[n]=[t]:e.children[n].push(t)}function rT(e,t,n){e.children[t]===void 0?e.children[t]=[n]:e.children[t].push(n)}var wO="name";function Gh(e,t){Object.defineProperty(e,wO,{enumerable:!1,configurable:!0,writable:!1,value:t})}function TO(e,t){let n=Object.keys(e),r=n.length;for(let i=0;i<r;i++){let o=n[i],s=e[o],a=s.length;for(let l=0;l<a;l++){let c=s[l];c.tokenTypeIdx===void 0&&this[c.name](c.children,t)}}}function iT(e,t){let n=function(){};Gh(n,e+"BaseSemantics");let r={visit:function(i,o){if(Array.isArray(i)&&(i=i[0]),i!==void 0)return this[i.name](i.children,o)},validateVisitor:function(){let i=_O(this,t);if(i.length!==0){let o=i.map(s=>s.msg);throw Error(`Errors Detected in CST Visitor <${this.constructor.name}>:
|
|
90
|
+
see: https://en.wikipedia.org/wiki/LL_parser#Left_factoring.`},buildInvalidRuleNameError(e){return"deprecated"},buildDuplicateRuleNameError(e){let t;return e.topLevelRule instanceof lt?t=e.topLevelRule.name:t=e.topLevelRule,`Duplicate definition, rule: ->${t}<- is already defined in the grammar: ->${e.grammarName}<-`}};function Ww(e,t){let n=new Lh(e,t);return n.resolveRefs(),n.errors}var Lh=class extends ct{constructor(t,n){super(),this.nameToTopRule=t,this.errMsgProvider=n,this.errors=[]}resolveRefs(){Object.values(this.nameToTopRule).forEach(t=>{this.currTopLevel=t,t.accept(this)})}visitNonTerminal(t){let n=this.nameToTopRule[t.nonTerminalName];if(n)t.referencedRule=n;else{let r=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,t);this.errors.push({message:r,type:Ye.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:t.nonTerminalName})}}};var Ph=class extends An{constructor(t,n){super(),this.topProd=t,this.path=n,this.possibleTokTypes=[],this.nextProductionName="",this.nextProductionOccurrence=0,this.found=!1,this.isAtEndOfPath=!1}startWalking(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=[...this.path.ruleStack].reverse(),this.occurrenceStack=[...this.path.occurrenceStack].reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes}walk(t,n=[]){this.found||super.walk(t,n)}walkProdRef(t,n,r){if(t.referencedRule.name===this.nextProductionName&&t.idx===this.nextProductionOccurrence){let i=n.concat(r);this.updateExpectedNext(),this.walk(t.referencedRule,i)}}updateExpectedNext(){this.ruleStack.length===0?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())}},Dc=class extends Ph{constructor(t,n){super(t,n),this.path=n,this.nextTerminalName="",this.nextTerminalOccurrence=0,this.nextTerminalName=this.path.lastTok.name,this.nextTerminalOccurrence=this.path.lastTokOccurrence}walkTerminal(t,n,r){if(this.isAtEndOfPath&&t.terminalType.name===this.nextTerminalName&&t.idx===this.nextTerminalOccurrence&&!this.found){let i=n.concat(r),o=new be({definition:i});this.possibleTokTypes=ti(o),this.found=!0}}},fo=class extends An{constructor(t,n){super(),this.topRule=t,this.occurrence=n,this.result={token:void 0,occurrence:void 0,isEndOfRule:void 0}}startWalking(){return this.walk(this.topRule),this.result}},Mc=class extends fo{walkMany(t,n,r){if(t.idx===this.occurrence){let i=n.concat(r)[0];this.result.isEndOfRule=i===void 0,i instanceof ue&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkMany(t,n,r)}},fa=class extends fo{walkManySep(t,n,r){if(t.idx===this.occurrence){let i=n.concat(r)[0];this.result.isEndOfRule=i===void 0,i instanceof ue&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkManySep(t,n,r)}},Fc=class extends fo{walkAtLeastOne(t,n,r){if(t.idx===this.occurrence){let i=n.concat(r)[0];this.result.isEndOfRule=i===void 0,i instanceof ue&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkAtLeastOne(t,n,r)}},da=class extends fo{walkAtLeastOneSep(t,n,r){if(t.idx===this.occurrence){let i=n.concat(r)[0];this.result.isEndOfRule=i===void 0,i instanceof ue&&(this.result.token=i.terminalType,this.result.occurrence=i.idx)}else super.walkAtLeastOneSep(t,n,r)}};function Bc(e,t,n=[]){n=[...n];let r=[],i=0;function o(a){return a.concat(e.slice(i+1))}function s(a){let l=Bc(o(a),t,n);return r.concat(l)}for(;n.length<t&&i<e.length;){let a=e[i];if(a instanceof be)return s(a.definition);if(a instanceof Ee)return s(a.definition);if(a instanceof we)r=s(a.definition);else if(a instanceof Ne){let l=a.definition.concat([new ge({definition:a.definition})]);return s(l)}else if(a instanceof Le){let l=[new be({definition:a.definition}),new ge({definition:[new ue({terminalType:a.separator})].concat(a.definition)})];return s(l)}else if(a instanceof ke){let l=a.definition.concat([new ge({definition:[new ue({terminalType:a.separator})].concat(a.definition)})]);r=s(l)}else if(a instanceof ge){let l=a.definition.concat([new ge({definition:a.definition})]);r=s(l)}else{if(a instanceof Ie)return a.definition.forEach(l=>{l.definition.length!==0&&(r=s(l.definition))}),r;if(a instanceof ue)n.push(a.terminalType);else throw Error("non exhaustive match")}i++}return r.push({partialPath:n,suffixDef:e.slice(i)}),r}function Xw(e,t,n,r){let i="EXIT_NONE_TERMINAL",o=[i],s="EXIT_ALTERNATIVE",a=!1,l=t.length,c=l-r-1,u=[],f=[];for(f.push({idx:-1,def:e,ruleStack:[],occurrenceStack:[]});f.length!==0;){let d=f.pop();if(d===s){a&&f.at(-1).idx<=c&&f.pop();continue}let p=d.def,m=d.idx,g=d.ruleStack,w=d.occurrenceStack;if(p.length===0)continue;let x=p[0];if(x===i){let y={idx:m,def:p.slice(1),ruleStack:g.slice(0,-1),occurrenceStack:w.slice(0,-1)};f.push(y)}else if(x instanceof ue)if(m<l-1){let y=m+1,E=t[y];if(n(E,x.terminalType)){let _={idx:y,def:p.slice(1),ruleStack:g,occurrenceStack:w};f.push(_)}}else if(m===l-1)u.push({nextTokenType:x.terminalType,nextTokenOccurrence:x.idx,ruleStack:g,occurrenceStack:w}),a=!0;else throw Error("non exhaustive match");else if(x instanceof Ee){let y=[...g];y.push(x.nonTerminalName);let E=[...w];E.push(x.idx);let _={idx:m,def:x.definition.concat(o,p.slice(1)),ruleStack:y,occurrenceStack:E};f.push(_)}else if(x instanceof we){let y={idx:m,def:p.slice(1),ruleStack:g,occurrenceStack:w};f.push(y),f.push(s);let E={idx:m,def:x.definition.concat(p.slice(1)),ruleStack:g,occurrenceStack:w};f.push(E)}else if(x instanceof Ne){let y=new ge({definition:x.definition,idx:x.idx}),E=x.definition.concat([y],p.slice(1)),_={idx:m,def:E,ruleStack:g,occurrenceStack:w};f.push(_)}else if(x instanceof Le){let y=new ue({terminalType:x.separator}),E=new ge({definition:[y].concat(x.definition),idx:x.idx}),_=x.definition.concat([E],p.slice(1)),T={idx:m,def:_,ruleStack:g,occurrenceStack:w};f.push(T)}else if(x instanceof ke){let y={idx:m,def:p.slice(1),ruleStack:g,occurrenceStack:w};f.push(y),f.push(s);let E=new ue({terminalType:x.separator}),_=new ge({definition:[E].concat(x.definition),idx:x.idx}),T=x.definition.concat([_],p.slice(1)),I={idx:m,def:T,ruleStack:g,occurrenceStack:w};f.push(I)}else if(x instanceof ge){let y={idx:m,def:p.slice(1),ruleStack:g,occurrenceStack:w};f.push(y),f.push(s);let E=new ge({definition:x.definition,idx:x.idx}),_=x.definition.concat([E],p.slice(1)),T={idx:m,def:_,ruleStack:g,occurrenceStack:w};f.push(T)}else if(x instanceof Ie)for(let y=x.definition.length-1;y>=0;y--){let E=x.definition[y],_={idx:m,def:E.definition.concat(p.slice(1)),ruleStack:g,occurrenceStack:w};f.push(_),f.push(s)}else if(x instanceof be)f.push({idx:m,def:x.definition.concat(p.slice(1)),ruleStack:g,occurrenceStack:w});else if(x instanceof lt)f.push(hP(x,m,g,w));else throw Error("non exhaustive match")}return u}function hP(e,t,n,r){let i=[...n];i.push(e.name);let o=[...r];return o.push(1),{idx:t,def:e.definition,ruleStack:i,occurrenceStack:o}}var Fe;(function(e){e[e.OPTION=0]="OPTION",e[e.REPETITION=1]="REPETITION",e[e.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",e[e.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",e[e.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",e[e.ALTERNATION=5]="ALTERNATION"})(Fe||(Fe={}));function pa(e){if(e instanceof we||e==="Option")return Fe.OPTION;if(e instanceof ge||e==="Repetition")return Fe.REPETITION;if(e instanceof Ne||e==="RepetitionMandatory")return Fe.REPETITION_MANDATORY;if(e instanceof Le||e==="RepetitionMandatoryWithSeparator")return Fe.REPETITION_MANDATORY_WITH_SEPARATOR;if(e instanceof ke||e==="RepetitionWithSeparator")return Fe.REPETITION_WITH_SEPARATOR;if(e instanceof Ie||e==="Alternation")return Fe.ALTERNATION;throw Error("non exhaustive match")}function Xc(e){let{occurrence:t,rule:n,prodType:r,maxLookahead:i}=e,o=pa(r);return o===Fe.ALTERNATION?po(t,n,i):ho(t,n,o,i)}function Gw(e,t,n,r,i,o){let s=po(e,t,n),a=Kw(s)?lo:kn;return o(s,r,a,i)}function Hw(e,t,n,r,i,o){let s=ho(e,t,i,n),a=Kw(s)?lo:kn;return o(s[0],a,r)}function zw(e,t,n,r){let i=e.length,o=e.every(s=>s.every(a=>a.length===1));if(t)return function(s){let a=s.map(l=>l.GATE);for(let l=0;l<i;l++){let c=e[l],u=c.length,f=a[l];if(!(f!==void 0&&f.call(this)===!1))e:for(let d=0;d<u;d++){let p=c[d],m=p.length;for(let g=0;g<m;g++){let w=this.LA_FAST(g+1);if(n(w,p[g])===!1)continue e}return l}}};if(o&&!r){let a=e.map(l=>l.flat()).reduce((l,c,u)=>(c.forEach(f=>{f.tokenTypeIdx in l||(l[f.tokenTypeIdx]=u),f.categoryMatches.forEach(d=>{Object.hasOwn(l,d)||(l[d]=u)})}),l),{});return function(){let l=this.LA_FAST(1);return a[l.tokenTypeIdx]}}else return function(){for(let s=0;s<i;s++){let a=e[s],l=a.length;e:for(let c=0;c<l;c++){let u=a[c],f=u.length;for(let d=0;d<f;d++){let p=this.LA_FAST(d+1);if(n(p,u[d])===!1)continue e}return s}}}}function jw(e,t,n){let r=e.every(o=>o.length===1),i=e.length;if(r&&!n){let o=e.flat();if(o.length===1&&o[0].categoryMatches.length===0){let a=o[0].tokenTypeIdx;return function(){return this.LA_FAST(1).tokenTypeIdx===a}}else{let s=o.reduce((a,l,c)=>(a[l.tokenTypeIdx]=!0,l.categoryMatches.forEach(u=>{a[u]=!0}),a),[]);return function(){let a=this.LA_FAST(1);return s[a.tokenTypeIdx]===!0}}}else return function(){e:for(let o=0;o<i;o++){let s=e[o],a=s.length;for(let l=0;l<a;l++){let c=this.LA_FAST(l+1);if(t(c,s[l])===!1)continue e}return!0}return!1}}var Ch=class extends An{constructor(t,n,r){super(),this.topProd=t,this.targetOccurrence=n,this.targetProdType=r}startWalking(){return this.walk(this.topProd),this.restDef}checkIsTarget(t,n,r,i){return t.idx===this.targetOccurrence&&this.targetProdType===n?(this.restDef=r.concat(i),!0):!1}walkOption(t,n,r){this.checkIsTarget(t,Fe.OPTION,n,r)||super.walkOption(t,n,r)}walkAtLeastOne(t,n,r){this.checkIsTarget(t,Fe.REPETITION_MANDATORY,n,r)||super.walkOption(t,n,r)}walkAtLeastOneSep(t,n,r){this.checkIsTarget(t,Fe.REPETITION_MANDATORY_WITH_SEPARATOR,n,r)||super.walkOption(t,n,r)}walkMany(t,n,r){this.checkIsTarget(t,Fe.REPETITION,n,r)||super.walkOption(t,n,r)}walkManySep(t,n,r){this.checkIsTarget(t,Fe.REPETITION_WITH_SEPARATOR,n,r)||super.walkOption(t,n,r)}},Wc=class extends ct{constructor(t,n,r){super(),this.targetOccurrence=t,this.targetProdType=n,this.targetRef=r,this.result=[]}checkIsTarget(t,n){t.idx===this.targetOccurrence&&this.targetProdType===n&&(this.targetRef===void 0||t===this.targetRef)&&(this.result=t.definition)}visitOption(t){this.checkIsTarget(t,Fe.OPTION)}visitRepetition(t){this.checkIsTarget(t,Fe.REPETITION)}visitRepetitionMandatory(t){this.checkIsTarget(t,Fe.REPETITION_MANDATORY)}visitRepetitionMandatoryWithSeparator(t){this.checkIsTarget(t,Fe.REPETITION_MANDATORY_WITH_SEPARATOR)}visitRepetitionWithSeparator(t){this.checkIsTarget(t,Fe.REPETITION_WITH_SEPARATOR)}visitAlternation(t){this.checkIsTarget(t,Fe.ALTERNATION)}};function Uw(e){let t=new Array(e);for(let n=0;n<e;n++)t[n]=[];return t}function Oh(e){let t=[""];for(let n=0;n<e.length;n++){let r=e[n],i=[];for(let o=0;o<t.length;o++){let s=t[o];i.push(s+"_"+r.tokenTypeIdx);for(let a=0;a<r.categoryMatches.length;a++){let l="_"+r.categoryMatches[a];i.push(s+l)}}t=i}return t}function mP(e,t,n){for(let r=0;r<e.length;r++){if(r===n)continue;let i=e[r];for(let o=0;o<t.length;o++){let s=t[o];if(i[s]===!0)return!1}}return!0}function Yw(e,t){let n=e.map(s=>Bc([s],1)),r=Uw(n.length),i=n.map(s=>{let a={};return s.forEach(l=>{Oh(l.partialPath).forEach(u=>{a[u]=!0})}),a}),o=n;for(let s=1;s<=t;s++){let a=o;o=Uw(a.length);for(let l=0;l<a.length;l++){let c=a[l];for(let u=0;u<c.length;u++){let f=c[u].partialPath,d=c[u].suffixDef,p=Oh(f);if(mP(i,p,l)||d.length===0||f.length===t){let g=r[l];if(Uc(g,f)===!1){g.push(f);for(let w=0;w<p.length;w++){let x=p[w];i[l][x]=!0}}}else{let g=Bc(d,s+1,f);o[l]=o[l].concat(g),g.forEach(w=>{Oh(w.partialPath).forEach(y=>{i[l][y]=!0})})}}}}return r}function po(e,t,n,r){let i=new Wc(e,Fe.ALTERNATION,r);return t.accept(i),Yw(i.result,n)}function ho(e,t,n,r){let i=new Wc(e,n);t.accept(i);let o=i.result,a=new Ch(t,e,n).startWalking(),l=new be({definition:o}),c=new be({definition:a});return Yw([l,c],r)}function Uc(e,t){e:for(let n=0;n<e.length;n++){let r=e[n];if(r.length===t.length){for(let i=0;i<r.length;i++){let o=t[i],s=r[i];if((o===s||s.categoryMatchesMap[o.tokenTypeIdx]!==void 0)===!1)continue e}return!0}}return!1}function Vw(e,t){return e.length<t.length&&e.every((n,r)=>{let i=t[r];return n===i||i.categoryMatchesMap[n.tokenTypeIdx]})}function Kw(e){return e.every(t=>t.every(n=>n.every(r=>r.categoryMatches.length===0)))}function qw(e){return e.lookaheadStrategy.validate({rules:e.rules,tokenTypes:e.tokenTypes,grammarName:e.grammarName}).map(n=>Object.assign({type:Ye.CUSTOM_LOOKAHEAD_VALIDATION},n))}function Zw(e,t,n,r){let i=e.flatMap(l=>gP(l,n)),o=vP(e,t,n),s=e.flatMap(l=>EP(l,n)),a=e.flatMap(l=>xP(l,e,r,n));return i.concat(o,s,a)}function gP(e,t){let n=new $h;e.accept(n);let r=n.allProductions,i=Object.groupBy(r,yP),o=Object.fromEntries(Object.entries(i).filter(([a,l])=>l.length>1));return Object.values(o).map(a=>{let l=a[0],c=t.buildDuplicateFoundError(e,a),u=Et(l),f={message:c,type:Ye.DUPLICATE_PRODUCTIONS,ruleName:e.name,dslName:u,occurrence:l.idx},d=Jw(l);return d&&(f.parameter=d),f})}function yP(e){return`${Et(e)}_#_${e.idx}_#_${Jw(e)}`}function Jw(e){return e instanceof ue?e.terminalType.name:e instanceof Ee?e.nonTerminalName:""}var $h=class extends ct{constructor(){super(...arguments),this.allProductions=[]}visitNonTerminal(t){this.allProductions.push(t)}visitOption(t){this.allProductions.push(t)}visitRepetitionWithSeparator(t){this.allProductions.push(t)}visitRepetitionMandatory(t){this.allProductions.push(t)}visitRepetitionMandatoryWithSeparator(t){this.allProductions.push(t)}visitRepetition(t){this.allProductions.push(t)}visitAlternation(t){this.allProductions.push(t)}visitTerminal(t){this.allProductions.push(t)}};function xP(e,t,n,r){let i=[];if(t.reduce((s,a)=>a.name===e.name?s+1:s,0)>1){let s=r.buildDuplicateRuleNameError({topLevelRule:e,grammarName:n});i.push({message:s,type:Ye.DUPLICATE_RULE_NAME,ruleName:e.name})}return i}function Qw(e,t,n){let r=[],i;return t.includes(e)||(i=`Invalid rule override, rule: ->${e}<- cannot be overridden in the grammar: ->${n}<-as it is not defined in any of the super grammars `,r.push({message:i,type:Ye.INVALID_RULE_OVERRIDE,ruleName:e})),r}function Mh(e,t,n,r=[]){let i=[],o=Gc(t.definition);if(o.length===0)return[];{let s=e.name;o.includes(e)&&i.push({message:n.buildLeftRecursionError({topLevelRule:e,leftRecursionPath:r}),type:Ye.LEFT_RECURSION,ruleName:s});let l=r.concat([e]),u=o.filter(f=>!l.includes(f)).flatMap(f=>{let d=[...r];return d.push(f),Mh(e,f,n,d)});return i.concat(u)}}function Gc(e){let t=[];if(e.length===0)return t;let n=e[0];if(n instanceof Ee)t.push(n.referencedRule);else if(n instanceof be||n instanceof we||n instanceof Ne||n instanceof Le||n instanceof ke||n instanceof ge)t=t.concat(Gc(n.definition));else if(n instanceof Ie)t=n.definition.map(o=>Gc(o.definition)).flat();else if(!(n instanceof ue))throw Error("non exhaustive match");let r=ei(n),i=e.length>1;if(r&&i){let o=e.slice(1);return t.concat(Gc(o))}else return t}var ha=class extends ct{constructor(){super(...arguments),this.alternations=[]}visitAlternation(t){this.alternations.push(t)}};function eT(e,t){let n=new ha;return e.accept(n),n.alternations.flatMap(o=>o.definition.slice(0,-1).flatMap((a,l)=>Xw([a],[],kn,1).length===0?[{message:t.buildEmptyAlternationError({topLevelRule:e,alternation:o,emptyChoiceIdx:l}),type:Ye.NONE_LAST_EMPTY_ALT,ruleName:e.name,occurrence:o.idx,alternative:l+1}]:[]))}function tT(e,t,n){let r=new ha;e.accept(r);let i=r.alternations;return i=i.filter(s=>s.ignoreAmbiguities!==!0),i.flatMap(s=>{let a=s.idx,l=s.maxLookahead||t,c=po(a,e,l,s),u=wP(c,s,e,n),f=TP(c,s,e,n);return u.concat(f)})}var Dh=class extends ct{constructor(){super(...arguments),this.allProductions=[]}visitRepetitionWithSeparator(t){this.allProductions.push(t)}visitRepetitionMandatory(t){this.allProductions.push(t)}visitRepetitionMandatoryWithSeparator(t){this.allProductions.push(t)}visitRepetition(t){this.allProductions.push(t)}};function EP(e,t){let n=new ha;return e.accept(n),n.alternations.flatMap(o=>o.definition.length>255?[{message:t.buildTooManyAlternativesError({topLevelRule:e,alternation:o}),type:Ye.TOO_MANY_ALTS,ruleName:e.name,occurrence:o.idx}]:[])}function nT(e,t,n){let r=[];return e.forEach(i=>{let o=new Dh;i.accept(o),o.allProductions.forEach(a=>{let l=pa(a),c=a.maxLookahead||t,u=a.idx;if(ho(u,i,l,c)[0].flat().length===0){let p=n.buildEmptyRepetitionError({topLevelRule:i,repetition:a});r.push({message:p,type:Ye.NO_NON_EMPTY_LOOKAHEAD,ruleName:i.name})}})}),r}function wP(e,t,n,r){let i=[];return e.reduce((a,l,c)=>(t.definition[c].ignoreAmbiguities===!0||l.forEach(u=>{let f=[c];e.forEach((d,p)=>{c!==p&&Uc(d,u)&&t.definition[p].ignoreAmbiguities!==!0&&f.push(p)}),f.length>1&&!Uc(i,u)&&(i.push(u),a.push({alts:f,path:u}))}),a),[]).map(a=>{let l=a.alts.map(u=>u+1);return{message:r.buildAlternationAmbiguityError({topLevelRule:n,alternation:t,ambiguityIndices:l,prefixPath:a.path}),type:Ye.AMBIGUOUS_ALTS,ruleName:n.name,occurrence:t.idx,alternatives:a.alts}})}function TP(e,t,n,r){let i=e.reduce((s,a,l)=>{let c=a.map(u=>({idx:l,path:u}));return s.concat(c)},[]);return i.flatMap(s=>{if(t.definition[s.idx].ignoreAmbiguities===!0)return[];let l=s.idx,c=s.path;return i.filter(d=>t.definition[d.idx].ignoreAmbiguities!==!0&&d.idx<l&&Vw(d.path,c)).map(d=>{let p=[d.idx+1,l+1],m=t.idx===0?"":t.idx;return{message:r.buildAlternationPrefixAmbiguityError({topLevelRule:n,alternation:t,ambiguityIndices:p,prefixPath:d.path}),type:Ye.AMBIGUOUS_PREFIX_ALTS,ruleName:n.name,occurrence:m,alternatives:p}})})}function vP(e,t,n){let r=[],i=t.map(o=>o.name);return e.forEach(o=>{let s=o.name;if(i.includes(s)){let a=n.buildNamespaceConflictError(o);r.push({message:a,type:Ye.CONFLICT_TOKENS_RULES_NAMESPACE,ruleName:s})}}),r}function rT(e){let t=Object.assign({errMsgProvider:Bw},e),n={};return e.rules.forEach(r=>{n[r.name]=r}),Ww(n,t.errMsgProvider)}function iT(e){var t;let n=(t=e.errMsgProvider)!==null&&t!==void 0?t:Vt;return Zw(e.rules,e.tokenTypes,n,e.grammarName)}var oT="MismatchedTokenException",sT="NoViableAltException",aT="EarlyExitException",lT="NotAllInputParsedException",cT=[oT,sT,aT,lT];Object.freeze(cT);function cr(e){return cT.includes(e.name)}var mo=class extends Error{constructor(t,n){super(t),this.token=n,this.resyncedTokens=[],Object.setPrototypeOf(this,new.target.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}},ii=class extends mo{constructor(t,n,r){super(t,n),this.previousToken=r,this.name=oT}},ma=class extends mo{constructor(t,n,r){super(t,n),this.previousToken=r,this.name=sT}},ga=class extends mo{constructor(t,n){super(t,n),this.name=lT}},ya=class extends mo{constructor(t,n,r){super(t,n),this.previousToken=r,this.name=aT}};var Fh={},Wh="InRuleRecoveryException",Bh=class extends Error{constructor(t){super(t),this.name=Wh}},Hc=class{initRecoverable(t){this.firstAfterRepMap=[],this.resyncFollows={},this.recoveryEnabled=Object.hasOwn(t,"recoveryEnabled")?t.recoveryEnabled:ft.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=_P)}getTokenToInsert(t){let n=Sn(t,"",-1,-1,-1,-1,-1,-1);return n.isInsertedInRecovery=!0,n}canTokenTypeBeInsertedInRecovery(t){return!0}canTokenTypeBeDeletedInRecovery(t){return!0}tryInRepetitionRecovery(t,n,r,i){let o=this.findReSyncTokenType(),s=this.exportLexerState(),a=[],l=!1,c=this.LA_FAST(1),u=this.LA_FAST(1),f=()=>{let d=this.LA(0),p=this.errorMessageProvider.buildMismatchTokenMessage({expected:i,actual:c,previous:d,ruleName:this.getCurrRuleFullName()}),m=new ii(p,c,this.LA(0));m.resyncedTokens=a.slice(0,-1),this.SAVE_ERROR(m)};for(;!l;)if(this.tokenMatcher(u,i)){f();return}else if(r.call(this)){f(),t.apply(this,n);return}else this.tokenMatcher(u,o)?l=!0:(u=this.SKIP_TOKEN(),this.addToResyncTokens(u,a));this.importLexerState(s)}shouldInRepetitionRecoveryBeTried(t,n,r){return!(r===!1||this.tokenMatcher(this.LA_FAST(1),t)||this.isBackTracking()||this.canPerformInRuleRecovery(t,this.getFollowsForInRuleRecovery(t,n)))}getNextPossibleTokenTypes(t){let n=t.ruleStack[0],i=this.getGAstProductions()[n];return new Dc(i,t).startWalking()}getFollowsForInRuleRecovery(t,n){let r=this.getCurrentGrammarPath(t,n);return this.getNextPossibleTokenTypes(r)}tryInRuleRecovery(t,n){if(this.canRecoverWithSingleTokenInsertion(t,n))return this.getTokenToInsert(t);if(this.canRecoverWithSingleTokenDeletion(t)){let r=this.SKIP_TOKEN();return this.consumeToken(),r}throw new Bh("sad sad panda")}canPerformInRuleRecovery(t,n){return this.canRecoverWithSingleTokenInsertion(t,n)||this.canRecoverWithSingleTokenDeletion(t)}canRecoverWithSingleTokenInsertion(t,n){if(!this.canTokenTypeBeInsertedInRecovery(t)||n.length===0)return!1;let r=this.LA_FAST(1);return n.find(o=>this.tokenMatcher(r,o))!==void 0}canRecoverWithSingleTokenDeletion(t){return this.canTokenTypeBeDeletedInRecovery(t)?this.tokenMatcher(this.LA(2),t):!1}isInCurrentRuleReSyncSet(t){let n=this.getCurrFollowKey();return this.getFollowSetFromFollowKey(n).includes(t)}findReSyncTokenType(){let t=this.flattenFollowSet(),n=this.LA_FAST(1),r=2;for(;;){let i=t.find(o=>uo(n,o));if(i!==void 0)return i;n=this.LA(r),r++}}getCurrFollowKey(){if(this.RULE_STACK_IDX===0)return Fh;let t=this.currRuleShortName,n=this.getLastExplicitRuleOccurrenceIndex(),r=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(t),idxInCallingRule:n,inRule:this.shortRuleNameToFullName(r)}}buildFullFollowKeyStack(){let t=this.RULE_STACK,n=this.RULE_OCCURRENCE_STACK,r=this.RULE_STACK_IDX+1,i=new Array(r);for(let o=0;o<r;o++)o===0?i[o]=Fh:i[o]={ruleName:this.shortRuleNameToFullName(t[o]),idxInCallingRule:n[o],inRule:this.shortRuleNameToFullName(t[o-1])};return i}flattenFollowSet(){return this.buildFullFollowKeyStack().map(n=>this.getFollowSetFromFollowKey(n)).flat()}getFollowSetFromFollowKey(t){if(t===Fh)return[ut];let n=t.ruleName+t.idxInCallingRule+Rc+t.inRule;return this.resyncFollows[n]}addToResyncTokens(t,n){return this.tokenMatcher(t,ut)||n.push(t),n}reSyncTo(t){let n=[],r=this.LA_FAST(1);for(;this.tokenMatcher(r,t)===!1;)r=this.SKIP_TOKEN(),this.addToResyncTokens(r,n);return n.slice(0,-1)}attemptInRepetitionRecovery(t,n,r,i,o,s,a){}getCurrentGrammarPath(t,n){let r=this.getHumanReadableRuleStack(),i=this.RULE_OCCURRENCE_STACK.slice(0,this.RULE_OCCURRENCE_STACK_IDX+1);return{ruleStack:r,occurrenceStack:i,lastTok:t,lastTokOccurrence:n}}getHumanReadableRuleStack(){let t=this.RULE_STACK_IDX+1,n=new Array(t);for(let r=0;r<t;r++)n[r]=this.shortRuleNameToFullName(this.RULE_STACK[r]);return n}};function _P(e,t,n,r,i,o,s){var a,l,c;let u=r|i,f=(a=(l=this.firstAfterRepMap)[c=this.currRuleShortName])!==null&&a!==void 0?a:l[c]=[],d=f[u];if(d===void 0){let w=this.getCurrRuleFullName(),x=this.getGAstProductions()[w];d=new o(x,i).startWalking(),f[u]=d}let p=d.token,m=d.occurrence,g=d.isEndOfRule;this.RULE_STACK_IDX===0&&g&&p===void 0&&(p=ut,m=1),!(p===void 0||m===void 0)&&this.shouldInRepetitionRecoveryBeTried(p,m,s)&&this.tryInRepetitionRecovery(e,t,n,p)}var Nn=class{constructor(t){var n;this.maxLookahead=(n=t?.maxLookahead)!==null&&n!==void 0?n:ft.maxLookahead}validate(t){let n=this.validateNoLeftRecursion(t.rules);if(n.length===0){let r=this.validateEmptyOrAlternatives(t.rules),i=this.validateAmbiguousAlternationAlternatives(t.rules,this.maxLookahead),o=this.validateSomeNonEmptyLookaheadPath(t.rules,this.maxLookahead);return[...n,...r,...i,...o]}return n}validateNoLeftRecursion(t){return t.flatMap(n=>Mh(n,n,Vt))}validateEmptyOrAlternatives(t){return t.flatMap(n=>eT(n,Vt))}validateAmbiguousAlternationAlternatives(t,n){return t.flatMap(r=>tT(r,n,Vt))}validateSomeNonEmptyLookaheadPath(t,n){return nT(t,n,Vt)}buildLookaheadForAlternation(t){return Gw(t.prodOccurrence,t.rule,t.maxLookahead,t.hasPredicates,t.dynamicTokensEnabled,zw)}buildLookaheadForOptional(t){return Hw(t.prodOccurrence,t.rule,t.maxLookahead,t.dynamicTokensEnabled,pa(t.prodType),jw)}};var jc=class{initLooksAhead(t){this.dynamicTokensEnabled=Object.hasOwn(t,"dynamicTokensEnabled")?t.dynamicTokensEnabled:ft.dynamicTokensEnabled,this.maxLookahead=Object.hasOwn(t,"maxLookahead")?t.maxLookahead:ft.maxLookahead,this.lookaheadStrategy=Object.hasOwn(t,"lookaheadStrategy")?t.lookaheadStrategy:new Nn({maxLookahead:this.maxLookahead}),this.lookAheadFuncsCache=[],this.currRuleLookaheadFuncs=[]}preComputeLookaheadFunctions(t){t.forEach(n=>{this.TRACE_INIT(`${n.name} Rule Lookahead`,()=>{let{alternation:r,repetition:i,option:o,repetitionMandatory:s,repetitionMandatoryWithSeparator:a,repetitionWithSeparator:l}=AP(n);r.forEach(c=>{let u=c.idx===0?"":c.idx;this.TRACE_INIT(`${Et(c)}${u}`,()=>{let f=this.lookaheadStrategy.buildLookaheadForAlternation({prodOccurrence:c.idx,rule:n,maxLookahead:c.maxLookahead||this.maxLookahead,hasPredicates:c.hasPredicates,dynamicTokensEnabled:this.dynamicTokensEnabled});this.setLaFuncCache(this.fullRuleNameToShort[n.name],256|c.idx,f)})}),i.forEach(c=>{this.computeLookaheadFunc(n,c.idx,768,"Repetition",c.maxLookahead,Et(c))}),o.forEach(c=>{this.computeLookaheadFunc(n,c.idx,512,"Option",c.maxLookahead,Et(c))}),s.forEach(c=>{this.computeLookaheadFunc(n,c.idx,1024,"RepetitionMandatory",c.maxLookahead,Et(c))}),a.forEach(c=>{this.computeLookaheadFunc(n,c.idx,1536,"RepetitionMandatoryWithSeparator",c.maxLookahead,Et(c))}),l.forEach(c=>{this.computeLookaheadFunc(n,c.idx,1280,"RepetitionWithSeparator",c.maxLookahead,Et(c))})})})}computeLookaheadFunc(t,n,r,i,o,s){this.TRACE_INIT(`${s}${n===0?"":n}`,()=>{let a=this.lookaheadStrategy.buildLookaheadForOptional({prodOccurrence:n,rule:t,maxLookahead:o||this.maxLookahead,dynamicTokensEnabled:this.dynamicTokensEnabled,prodType:i});this.setLaFuncCache(this.fullRuleNameToShort[t.name],r|n,a)})}setLaFuncCache(t,n,r){let i=this.lookAheadFuncsCache[t];i===void 0&&(i=[],this.lookAheadFuncsCache[t]=i),i[n]=r}},Xh=class extends ct{constructor(){super(...arguments),this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}reset(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}}visitOption(t){this.dslMethods.option.push(t)}visitRepetitionWithSeparator(t){this.dslMethods.repetitionWithSeparator.push(t)}visitRepetitionMandatory(t){this.dslMethods.repetitionMandatory.push(t)}visitRepetitionMandatoryWithSeparator(t){this.dslMethods.repetitionMandatoryWithSeparator.push(t)}visitRepetition(t){this.dslMethods.repetition.push(t)}visitAlternation(t){this.dslMethods.alternation.push(t)}},zc=new Xh;function AP(e){zc.reset(),e.accept(zc);let t=zc.dslMethods;return zc.reset(),t}function Hh(e,t){e.startOffset===-1?(e.startOffset=t.startOffset,e.endOffset=t.endOffset):e.endOffset<t.endOffset&&(e.endOffset=t.endOffset)}function zh(e,t){e.startOffset===-1?(e.startOffset=t.startOffset,e.startColumn=t.startColumn,e.startLine=t.startLine,e.endOffset=t.endOffset,e.endColumn=t.endColumn,e.endLine=t.endLine):e.endOffset<t.endOffset&&(e.endOffset=t.endOffset,e.endColumn=t.endColumn,e.endLine=t.endLine)}function uT(e,t,n){e.children[n]===void 0?e.children[n]=[t]:e.children[n].push(t)}function fT(e,t,n){e.children[t]===void 0?e.children[t]=[n]:e.children[t].push(n)}var kP="name";function jh(e,t){Object.defineProperty(e,kP,{enumerable:!1,configurable:!0,writable:!1,value:t})}function IP(e,t){let n=Object.keys(e),r=n.length;for(let i=0;i<r;i++){let o=n[i],s=e[o],a=s.length;for(let l=0;l<a;l++){let c=s[l];c.tokenTypeIdx===void 0&&this[c.name](c.children,t)}}}function dT(e,t){let n=function(){};jh(n,e+"BaseSemantics");let r={visit:function(i,o){if(Array.isArray(i)&&(i=i[0]),i!==void 0)return this[i.name](i.children,o)},validateVisitor:function(){let i=RP(this,t);if(i.length!==0){let o=i.map(s=>s.msg);throw Error(`Errors Detected in CST Visitor <${this.constructor.name}>:
|
|
91
91
|
${o.join(`
|
|
92
92
|
|
|
93
93
|
`).replace(/\n/g,`
|
|
94
|
-
`)}`)}}};return n.prototype=r,n.prototype.constructor=n,n._RULE_NAMES=t,n}function oT(e,t,n){let r=function(){};Gh(r,e+"BaseSemanticsWithDefaults");let i=Object.create(n.prototype);return t.forEach(o=>{i[o]=TO}),r.prototype=i,r.prototype.constructor=r,r}var Hh;(function(e){e[e.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",e[e.MISSING_METHOD=1]="MISSING_METHOD"})(Hh||(Hh={}));function _O(e,t){return vO(e,t)}function vO(e,t){return t.filter(i=>typeof e[i]!="function").map(i=>({msg:`Missing visitor method: <${i}> on ${e.constructor.name} CST Visitor.`,type:Hh.MISSING_METHOD,methodName:i})).filter(Boolean)}var Kc=class{initTreeBuilder(t){if(this.CST_STACK=[],this.outputCst=t.outputCst,this.nodeLocationTracking=Object.hasOwn(t,"nodeLocationTracking")?t.nodeLocationTracking:ft.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=()=>{},this.cstFinallyStateUpdate=()=>{},this.cstPostTerminal=()=>{},this.cstPostNonTerminal=()=>{},this.cstPostRule=()=>{};else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=Uh,this.setNodeLocationFromNode=Uh,this.cstPostRule=()=>{},this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=()=>{},this.setNodeLocationFromNode=()=>{},this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=Xh,this.setNodeLocationFromNode=Xh,this.cstPostRule=()=>{},this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=()=>{},this.setNodeLocationFromNode=()=>{},this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=()=>{},this.setNodeLocationFromNode=()=>{},this.cstPostRule=()=>{},this.setInitialNodeLocation=()=>{};else throw Error(`Invalid <nodeLocationTracking> config option: "${t.nodeLocationTracking}"`)}setInitialNodeLocationOnlyOffsetRecovery(t){t.location={startOffset:-1,endOffset:-1}}setInitialNodeLocationOnlyOffsetRegular(t){t.location={startOffset:this.LA_FAST(1).startOffset,endOffset:-1}}setInitialNodeLocationFullRecovery(t){t.location={startOffset:-1,startLine:-1,startColumn:-1,endOffset:-1,endLine:-1,endColumn:-1}}setInitialNodeLocationFullRegular(t){let n=this.LA_FAST(1);t.location={startOffset:n.startOffset,startLine:n.startLine,startColumn:n.startColumn,endOffset:-1,endLine:-1,endColumn:-1}}cstInvocationStateUpdate(t){let n={name:t,children:Object.create(null)};this.setInitialNodeLocation(n),this.CST_STACK.push(n)}cstFinallyStateUpdate(){this.CST_STACK.pop()}cstPostRuleFull(t){let n=this.LA(0),r=t.location;r.startOffset!==-1&&r.startOffset<=n.startOffset?(r.endOffset=n.endOffset,r.endLine=n.endLine,r.endColumn=n.endColumn):(r.startOffset=-1,r.startLine=-1,r.startColumn=-1)}cstPostRuleOnlyOffset(t){let n=this.LA(0),r=t.location;r.startOffset!==-1&&r.startOffset<=n.startOffset?r.endOffset=n.endOffset:r.startOffset=-1}cstPostTerminal(t,n){let r=this.CST_STACK[this.CST_STACK.length-1];nT(r,n,t),this.setNodeLocationFromToken(r.location,n)}cstPostNonTerminal(t,n){let r=this.CST_STACK[this.CST_STACK.length-1];rT(r,n,t),this.setNodeLocationFromNode(r.location,t.location)}get currCSTNode(){let t=this;return t.CST_STACK[t.CST_STACK.length-1]}getBaseCstVisitorConstructor(){if(this.baseCstVisitorConstructor===void 0){let t=iT(this.className,Object.keys(this.gastProductionsCache));return this.baseCstVisitorConstructor=t,t}return this.baseCstVisitorConstructor}getBaseCstVisitorConstructorWithDefaults(){if(this.baseCstVisitorWithDefaultsConstructor===void 0){let t=oT(this.className,Object.keys(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=t,t}return this.baseCstVisitorWithDefaultsConstructor}getPreviousExplicitRuleShortName(){return this.RULE_STACK[this.RULE_STACK_IDX-1]}getLastExplicitRuleOccurrenceIndex(){return this.RULE_OCCURRENCE_STACK[this.RULE_OCCURRENCE_STACK_IDX]}};var qc=class{initLexerAdapter(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1}set input(t){if(this.selfAnalysisDone!==!0)throw Error("Missing <performSelfAnalysis> invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=t,this.tokVectorLength=t.length}get input(){return this.tokVector}SKIP_TOKEN(){return this.currIdx<=this.tokVectorLength-2?(this.consumeToken(),this.LA_FAST(1)):Ln}LA_FAST(t){let n=this.currIdx+t;return this.tokVector[n]}LA(t){let n=this.currIdx+t;return n<0||this.tokVectorLength<=n?Ln:this.tokVector[n]}consumeToken(){this.currIdx++}exportLexerState(){return this.currIdx}importLexerState(t){this.currIdx=t}resetLexerState(){this.currIdx=-1}moveToTerminatedState(){this.currIdx=this.tokVectorLength-1}getLexerPosition(){return this.exportLexerState()}};var Zc=class{ACTION(t){return t.call(this)}consume(t,n,r){return this.consumeInternal(n,t,r)}subrule(t,n,r){return this.subruleInternal(n,t,r)}option(t,n){return this.optionInternal(n,t)}or(t,n){return this.orInternal(n,t)}many(t,n){return this.manyInternal(t,n)}atLeastOne(t,n){return this.atLeastOneInternal(t,n)}CONSUME(t,n){return this.consumeInternal(t,0,n)}CONSUME1(t,n){return this.consumeInternal(t,1,n)}CONSUME2(t,n){return this.consumeInternal(t,2,n)}CONSUME3(t,n){return this.consumeInternal(t,3,n)}CONSUME4(t,n){return this.consumeInternal(t,4,n)}CONSUME5(t,n){return this.consumeInternal(t,5,n)}CONSUME6(t,n){return this.consumeInternal(t,6,n)}CONSUME7(t,n){return this.consumeInternal(t,7,n)}CONSUME8(t,n){return this.consumeInternal(t,8,n)}CONSUME9(t,n){return this.consumeInternal(t,9,n)}SUBRULE(t,n){return this.subruleInternal(t,0,n)}SUBRULE1(t,n){return this.subruleInternal(t,1,n)}SUBRULE2(t,n){return this.subruleInternal(t,2,n)}SUBRULE3(t,n){return this.subruleInternal(t,3,n)}SUBRULE4(t,n){return this.subruleInternal(t,4,n)}SUBRULE5(t,n){return this.subruleInternal(t,5,n)}SUBRULE6(t,n){return this.subruleInternal(t,6,n)}SUBRULE7(t,n){return this.subruleInternal(t,7,n)}SUBRULE8(t,n){return this.subruleInternal(t,8,n)}SUBRULE9(t,n){return this.subruleInternal(t,9,n)}OPTION(t){return this.optionInternal(t,0)}OPTION1(t){return this.optionInternal(t,1)}OPTION2(t){return this.optionInternal(t,2)}OPTION3(t){return this.optionInternal(t,3)}OPTION4(t){return this.optionInternal(t,4)}OPTION5(t){return this.optionInternal(t,5)}OPTION6(t){return this.optionInternal(t,6)}OPTION7(t){return this.optionInternal(t,7)}OPTION8(t){return this.optionInternal(t,8)}OPTION9(t){return this.optionInternal(t,9)}OR(t){return this.orInternal(t,0)}OR1(t){return this.orInternal(t,1)}OR2(t){return this.orInternal(t,2)}OR3(t){return this.orInternal(t,3)}OR4(t){return this.orInternal(t,4)}OR5(t){return this.orInternal(t,5)}OR6(t){return this.orInternal(t,6)}OR7(t){return this.orInternal(t,7)}OR8(t){return this.orInternal(t,8)}OR9(t){return this.orInternal(t,9)}MANY(t){this.manyInternal(0,t)}MANY1(t){this.manyInternal(1,t)}MANY2(t){this.manyInternal(2,t)}MANY3(t){this.manyInternal(3,t)}MANY4(t){this.manyInternal(4,t)}MANY5(t){this.manyInternal(5,t)}MANY6(t){this.manyInternal(6,t)}MANY7(t){this.manyInternal(7,t)}MANY8(t){this.manyInternal(8,t)}MANY9(t){this.manyInternal(9,t)}MANY_SEP(t){this.manySepFirstInternal(0,t)}MANY_SEP1(t){this.manySepFirstInternal(1,t)}MANY_SEP2(t){this.manySepFirstInternal(2,t)}MANY_SEP3(t){this.manySepFirstInternal(3,t)}MANY_SEP4(t){this.manySepFirstInternal(4,t)}MANY_SEP5(t){this.manySepFirstInternal(5,t)}MANY_SEP6(t){this.manySepFirstInternal(6,t)}MANY_SEP7(t){this.manySepFirstInternal(7,t)}MANY_SEP8(t){this.manySepFirstInternal(8,t)}MANY_SEP9(t){this.manySepFirstInternal(9,t)}AT_LEAST_ONE(t){this.atLeastOneInternal(0,t)}AT_LEAST_ONE1(t){return this.atLeastOneInternal(1,t)}AT_LEAST_ONE2(t){this.atLeastOneInternal(2,t)}AT_LEAST_ONE3(t){this.atLeastOneInternal(3,t)}AT_LEAST_ONE4(t){this.atLeastOneInternal(4,t)}AT_LEAST_ONE5(t){this.atLeastOneInternal(5,t)}AT_LEAST_ONE6(t){this.atLeastOneInternal(6,t)}AT_LEAST_ONE7(t){this.atLeastOneInternal(7,t)}AT_LEAST_ONE8(t){this.atLeastOneInternal(8,t)}AT_LEAST_ONE9(t){this.atLeastOneInternal(9,t)}AT_LEAST_ONE_SEP(t){this.atLeastOneSepFirstInternal(0,t)}AT_LEAST_ONE_SEP1(t){this.atLeastOneSepFirstInternal(1,t)}AT_LEAST_ONE_SEP2(t){this.atLeastOneSepFirstInternal(2,t)}AT_LEAST_ONE_SEP3(t){this.atLeastOneSepFirstInternal(3,t)}AT_LEAST_ONE_SEP4(t){this.atLeastOneSepFirstInternal(4,t)}AT_LEAST_ONE_SEP5(t){this.atLeastOneSepFirstInternal(5,t)}AT_LEAST_ONE_SEP6(t){this.atLeastOneSepFirstInternal(6,t)}AT_LEAST_ONE_SEP7(t){this.atLeastOneSepFirstInternal(7,t)}AT_LEAST_ONE_SEP8(t){this.atLeastOneSepFirstInternal(8,t)}AT_LEAST_ONE_SEP9(t){this.atLeastOneSepFirstInternal(9,t)}RULE(t,n,r=mo){if(this.definedRulesNames.includes(t)){let s={message:Yt.buildDuplicateRuleNameError({topLevelRule:t,grammarName:this.className}),type:Ye.DUPLICATE_RULE_NAME,ruleName:t};this.definitionErrors.push(s)}this.definedRulesNames.push(t);let i=this.defineRule(t,n,r);return this[t]=i,i}OVERRIDE_RULE(t,n,r=mo){let i=zw(t,this.definedRulesNames,this.className);this.definitionErrors=this.definitionErrors.concat(i);let o=this.defineRule(t,n,r);return this[t]=o,o}BACKTRACK(t,n){var r;let i=(r=t.coreRule)!==null&&r!==void 0?r:t;return function(){this.isBackTrackingStack.push(1);let o=this.saveRecogState();try{return i.apply(this,n),!0}catch(s){if(cr(s))return!1;throw s}finally{this.reloadRecogState(o),this.isBackTrackingStack.pop()}}}getGAstProductions(){return this.gastProductionsCache}getSerializedGastProductions(){return kc(Object.values(this.gastProductionsCache))}};var Jc=class{initRecognizerEngine(t,n){if(this.className=this.constructor.name,this.shortRuleNameToFull=[],this.fullRuleNameToShort={},this.ruleShortNameIdx=0,this.tokenMatcher=ao,this.subruleIdx=0,this.currRuleShortName=-1,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_STACK_IDX=-1,this.RULE_OCCURRENCE_STACK=[],this.RULE_OCCURRENCE_STACK_IDX=-1,this.gastProductionsCache={},Object.hasOwn(n,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a <serializedGrammar> property.
|
|
94
|
+
`)}`)}}};return n.prototype=r,n.prototype.constructor=n,n._RULE_NAMES=t,n}function pT(e,t,n){let r=function(){};jh(r,e+"BaseSemanticsWithDefaults");let i=Object.create(n.prototype);return t.forEach(o=>{i[o]=IP}),r.prototype=i,r.prototype.constructor=r,r}var Yh;(function(e){e[e.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",e[e.MISSING_METHOD=1]="MISSING_METHOD"})(Yh||(Yh={}));function RP(e,t){return SP(e,t)}function SP(e,t){return t.filter(i=>typeof e[i]!="function").map(i=>({msg:`Missing visitor method: <${i}> on ${e.constructor.name} CST Visitor.`,type:Yh.MISSING_METHOD,methodName:i})).filter(Boolean)}var qc=class{initTreeBuilder(t){if(this.CST_STACK=[],this.outputCst=t.outputCst,this.nodeLocationTracking=Object.hasOwn(t,"nodeLocationTracking")?t.nodeLocationTracking:ft.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=()=>{},this.cstFinallyStateUpdate=()=>{},this.cstPostTerminal=()=>{},this.cstPostNonTerminal=()=>{},this.cstPostRule=()=>{};else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=zh,this.setNodeLocationFromNode=zh,this.cstPostRule=()=>{},this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=()=>{},this.setNodeLocationFromNode=()=>{},this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=Hh,this.setNodeLocationFromNode=Hh,this.cstPostRule=()=>{},this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=()=>{},this.setNodeLocationFromNode=()=>{},this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=()=>{},this.setNodeLocationFromNode=()=>{},this.cstPostRule=()=>{},this.setInitialNodeLocation=()=>{};else throw Error(`Invalid <nodeLocationTracking> config option: "${t.nodeLocationTracking}"`)}setInitialNodeLocationOnlyOffsetRecovery(t){t.location={startOffset:-1,endOffset:-1}}setInitialNodeLocationOnlyOffsetRegular(t){t.location={startOffset:this.LA_FAST(1).startOffset,endOffset:-1}}setInitialNodeLocationFullRecovery(t){t.location={startOffset:-1,startLine:-1,startColumn:-1,endOffset:-1,endLine:-1,endColumn:-1}}setInitialNodeLocationFullRegular(t){let n=this.LA_FAST(1);t.location={startOffset:n.startOffset,startLine:n.startLine,startColumn:n.startColumn,endOffset:-1,endLine:-1,endColumn:-1}}cstInvocationStateUpdate(t){let n={name:t,children:Object.create(null)};this.setInitialNodeLocation(n),this.CST_STACK.push(n)}cstFinallyStateUpdate(){this.CST_STACK.pop()}cstPostRuleFull(t){let n=this.LA(0),r=t.location;r.startOffset!==-1&&r.startOffset<=n.startOffset?(r.endOffset=n.endOffset,r.endLine=n.endLine,r.endColumn=n.endColumn):(r.startOffset=-1,r.startLine=-1,r.startColumn=-1)}cstPostRuleOnlyOffset(t){let n=this.LA(0),r=t.location;r.startOffset!==-1&&r.startOffset<=n.startOffset?r.endOffset=n.endOffset:r.startOffset=-1}cstPostTerminal(t,n){let r=this.CST_STACK[this.CST_STACK.length-1];uT(r,n,t),this.setNodeLocationFromToken(r.location,n)}cstPostNonTerminal(t,n){let r=this.CST_STACK[this.CST_STACK.length-1];fT(r,n,t),this.setNodeLocationFromNode(r.location,t.location)}get currCSTNode(){let t=this;return t.CST_STACK[t.CST_STACK.length-1]}getBaseCstVisitorConstructor(){if(this.baseCstVisitorConstructor===void 0){let t=dT(this.className,Object.keys(this.gastProductionsCache));return this.baseCstVisitorConstructor=t,t}return this.baseCstVisitorConstructor}getBaseCstVisitorConstructorWithDefaults(){if(this.baseCstVisitorWithDefaultsConstructor===void 0){let t=pT(this.className,Object.keys(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=t,t}return this.baseCstVisitorWithDefaultsConstructor}getPreviousExplicitRuleShortName(){return this.RULE_STACK[this.RULE_STACK_IDX-1]}getLastExplicitRuleOccurrenceIndex(){return this.RULE_OCCURRENCE_STACK[this.RULE_OCCURRENCE_STACK_IDX]}};var Zc=class{initLexerAdapter(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1}set input(t){if(this.selfAnalysisDone!==!0)throw Error("Missing <performSelfAnalysis> invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=t,this.tokVectorLength=t.length}get input(){return this.tokVector}SKIP_TOKEN(){return this.currIdx<=this.tokVectorLength-2?(this.consumeToken(),this.LA_FAST(1)):Ln}LA_FAST(t){let n=this.currIdx+t;return this.tokVector[n]}LA(t){let n=this.currIdx+t;return n<0||this.tokVectorLength<=n?Ln:this.tokVector[n]}consumeToken(){this.currIdx++}exportLexerState(){return this.currIdx}importLexerState(t){this.currIdx=t}resetLexerState(){this.currIdx=-1}moveToTerminatedState(){this.currIdx=this.tokVectorLength-1}getLexerPosition(){return this.exportLexerState()}};var Jc=class{ACTION(t){return t.call(this)}consume(t,n,r){return this.consumeInternal(n,t,r)}subrule(t,n,r){return this.subruleInternal(n,t,r)}option(t,n){return this.optionInternal(n,t)}or(t,n){return this.orInternal(n,t)}many(t,n){return this.manyInternal(t,n)}atLeastOne(t,n){return this.atLeastOneInternal(t,n)}CONSUME(t,n){return this.consumeInternal(t,0,n)}CONSUME1(t,n){return this.consumeInternal(t,1,n)}CONSUME2(t,n){return this.consumeInternal(t,2,n)}CONSUME3(t,n){return this.consumeInternal(t,3,n)}CONSUME4(t,n){return this.consumeInternal(t,4,n)}CONSUME5(t,n){return this.consumeInternal(t,5,n)}CONSUME6(t,n){return this.consumeInternal(t,6,n)}CONSUME7(t,n){return this.consumeInternal(t,7,n)}CONSUME8(t,n){return this.consumeInternal(t,8,n)}CONSUME9(t,n){return this.consumeInternal(t,9,n)}SUBRULE(t,n){return this.subruleInternal(t,0,n)}SUBRULE1(t,n){return this.subruleInternal(t,1,n)}SUBRULE2(t,n){return this.subruleInternal(t,2,n)}SUBRULE3(t,n){return this.subruleInternal(t,3,n)}SUBRULE4(t,n){return this.subruleInternal(t,4,n)}SUBRULE5(t,n){return this.subruleInternal(t,5,n)}SUBRULE6(t,n){return this.subruleInternal(t,6,n)}SUBRULE7(t,n){return this.subruleInternal(t,7,n)}SUBRULE8(t,n){return this.subruleInternal(t,8,n)}SUBRULE9(t,n){return this.subruleInternal(t,9,n)}OPTION(t){return this.optionInternal(t,0)}OPTION1(t){return this.optionInternal(t,1)}OPTION2(t){return this.optionInternal(t,2)}OPTION3(t){return this.optionInternal(t,3)}OPTION4(t){return this.optionInternal(t,4)}OPTION5(t){return this.optionInternal(t,5)}OPTION6(t){return this.optionInternal(t,6)}OPTION7(t){return this.optionInternal(t,7)}OPTION8(t){return this.optionInternal(t,8)}OPTION9(t){return this.optionInternal(t,9)}OR(t){return this.orInternal(t,0)}OR1(t){return this.orInternal(t,1)}OR2(t){return this.orInternal(t,2)}OR3(t){return this.orInternal(t,3)}OR4(t){return this.orInternal(t,4)}OR5(t){return this.orInternal(t,5)}OR6(t){return this.orInternal(t,6)}OR7(t){return this.orInternal(t,7)}OR8(t){return this.orInternal(t,8)}OR9(t){return this.orInternal(t,9)}MANY(t){this.manyInternal(0,t)}MANY1(t){this.manyInternal(1,t)}MANY2(t){this.manyInternal(2,t)}MANY3(t){this.manyInternal(3,t)}MANY4(t){this.manyInternal(4,t)}MANY5(t){this.manyInternal(5,t)}MANY6(t){this.manyInternal(6,t)}MANY7(t){this.manyInternal(7,t)}MANY8(t){this.manyInternal(8,t)}MANY9(t){this.manyInternal(9,t)}MANY_SEP(t){this.manySepFirstInternal(0,t)}MANY_SEP1(t){this.manySepFirstInternal(1,t)}MANY_SEP2(t){this.manySepFirstInternal(2,t)}MANY_SEP3(t){this.manySepFirstInternal(3,t)}MANY_SEP4(t){this.manySepFirstInternal(4,t)}MANY_SEP5(t){this.manySepFirstInternal(5,t)}MANY_SEP6(t){this.manySepFirstInternal(6,t)}MANY_SEP7(t){this.manySepFirstInternal(7,t)}MANY_SEP8(t){this.manySepFirstInternal(8,t)}MANY_SEP9(t){this.manySepFirstInternal(9,t)}AT_LEAST_ONE(t){this.atLeastOneInternal(0,t)}AT_LEAST_ONE1(t){return this.atLeastOneInternal(1,t)}AT_LEAST_ONE2(t){this.atLeastOneInternal(2,t)}AT_LEAST_ONE3(t){this.atLeastOneInternal(3,t)}AT_LEAST_ONE4(t){this.atLeastOneInternal(4,t)}AT_LEAST_ONE5(t){this.atLeastOneInternal(5,t)}AT_LEAST_ONE6(t){this.atLeastOneInternal(6,t)}AT_LEAST_ONE7(t){this.atLeastOneInternal(7,t)}AT_LEAST_ONE8(t){this.atLeastOneInternal(8,t)}AT_LEAST_ONE9(t){this.atLeastOneInternal(9,t)}AT_LEAST_ONE_SEP(t){this.atLeastOneSepFirstInternal(0,t)}AT_LEAST_ONE_SEP1(t){this.atLeastOneSepFirstInternal(1,t)}AT_LEAST_ONE_SEP2(t){this.atLeastOneSepFirstInternal(2,t)}AT_LEAST_ONE_SEP3(t){this.atLeastOneSepFirstInternal(3,t)}AT_LEAST_ONE_SEP4(t){this.atLeastOneSepFirstInternal(4,t)}AT_LEAST_ONE_SEP5(t){this.atLeastOneSepFirstInternal(5,t)}AT_LEAST_ONE_SEP6(t){this.atLeastOneSepFirstInternal(6,t)}AT_LEAST_ONE_SEP7(t){this.atLeastOneSepFirstInternal(7,t)}AT_LEAST_ONE_SEP8(t){this.atLeastOneSepFirstInternal(8,t)}AT_LEAST_ONE_SEP9(t){this.atLeastOneSepFirstInternal(9,t)}RULE(t,n,r=go){if(this.definedRulesNames.includes(t)){let s={message:Vt.buildDuplicateRuleNameError({topLevelRule:t,grammarName:this.className}),type:Ye.DUPLICATE_RULE_NAME,ruleName:t};this.definitionErrors.push(s)}this.definedRulesNames.push(t);let i=this.defineRule(t,n,r);return this[t]=i,i}OVERRIDE_RULE(t,n,r=go){let i=Qw(t,this.definedRulesNames,this.className);this.definitionErrors=this.definitionErrors.concat(i);let o=this.defineRule(t,n,r);return this[t]=o,o}BACKTRACK(t,n){var r;let i=(r=t.coreRule)!==null&&r!==void 0?r:t;return function(){this.isBackTrackingStack.push(1);let o=this.saveRecogState();try{return i.apply(this,n),!0}catch(s){if(cr(s))return!1;throw s}finally{this.reloadRecogState(o),this.isBackTrackingStack.pop()}}}getGAstProductions(){return this.gastProductionsCache}getSerializedGastProductions(){return Ic(Object.values(this.gastProductionsCache))}};var Qc=class{initRecognizerEngine(t,n){if(this.className=this.constructor.name,this.shortRuleNameToFull=[],this.fullRuleNameToShort={},this.ruleShortNameIdx=0,this.tokenMatcher=lo,this.subruleIdx=0,this.currRuleShortName=-1,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_STACK_IDX=-1,this.RULE_OCCURRENCE_STACK=[],this.RULE_OCCURRENCE_STACK_IDX=-1,this.gastProductionsCache={},Object.hasOwn(n,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a <serializedGrammar> property.
|
|
95
95
|
See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0
|
|
96
96
|
For Further details.`);if(Array.isArray(t)){if(t.length===0)throw Error(`A Token Vocabulary cannot be empty.
|
|
97
97
|
Note that the first argument for the parser constructor
|
|
98
98
|
is no longer a Token vector (since v4.0).`);if(typeof t[0].startOffset=="number")throw Error(`The Parser constructor no longer accepts a token vector as the first argument.
|
|
99
99
|
See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0
|
|
100
|
-
For Further details.`)}if(Array.isArray(t))this.tokensMap=t.reduce((o,s)=>(o[s.name]=s,o),{});else if(Object.hasOwn(t,"modes")&&Object.values(t.modes).flat().every(
|
|
101
|
-
Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);let i=Object.hasOwn(r,"resyncEnabled")?r.resyncEnabled:
|
|
102
|
-
See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze(
|
|
103
|
-
See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}},
|
|
100
|
+
For Further details.`)}if(Array.isArray(t))this.tokensMap=t.reduce((o,s)=>(o[s.name]=s,o),{});else if(Object.hasOwn(t,"modes")&&Object.values(t.modes).flat().every(Nw)){let o=Object.values(t.modes).flat(),s=[...new Set(o)];this.tokensMap=s.reduce((a,l)=>(a[l.name]=l,a),{})}else if(typeof t=="object"&&t!==null)this.tokensMap=Object.assign({},t);else throw new Error("<tokensDictionary> argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=ut;let i=(Object.hasOwn(t,"modes")?Object.values(t.modes).flat():Object.values(t)).every(o=>{var s;return((s=o.categoryMatches)===null||s===void 0?void 0:s.length)==0});this.tokenMatcher=i?lo:kn,In(Object.values(this.tokensMap))}defineRule(t,n,r){if(this.selfAnalysisDone)throw Error(`Grammar rule <${t}> may not be defined after the 'performSelfAnalysis' method has been called'
|
|
101
|
+
Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);let i=Object.hasOwn(r,"resyncEnabled")?r.resyncEnabled:go.resyncEnabled,o=Object.hasOwn(r,"recoveryValueFunc")?r.recoveryValueFunc:go.recoveryValueFunc,s=this.ruleShortNameIdx++;this.shortRuleNameToFull[s]=t,this.fullRuleNameToShort[t]=s;let a;return this.outputCst===!0?a=function(...f){try{this.ruleInvocationStateUpdate(s,t,this.subruleIdx),n.apply(this,f);let d=this.CST_STACK[this.CST_STACK.length-1];return this.cstPostRule(d),d}catch(d){return this.invokeRuleCatch(d,i,o)}finally{this.ruleFinallyStateUpdate()}}:a=function(...f){try{return this.ruleInvocationStateUpdate(s,t,this.subruleIdx),n.apply(this,f)}catch(d){return this.invokeRuleCatch(d,i,o)}finally{this.ruleFinallyStateUpdate()}},Object.assign(function(...f){this.onBeforeParse(t);try{return a.apply(this,f)}finally{this.onAfterParse(t)}},{ruleName:t,originalGrammarAction:n,coreRule:a})}invokeRuleCatch(t,n,r){let i=this.RULE_STACK_IDX===0,o=n&&!this.isBackTracking()&&this.recoveryEnabled;if(cr(t)){let s=t;if(o){let a=this.findReSyncTokenType();if(this.isInCurrentRuleReSyncSet(a))if(s.resyncedTokens=this.reSyncTo(a),this.outputCst){let l=this.CST_STACK[this.CST_STACK.length-1];return l.recoveredNode=!0,l}else return r(t);else{if(this.outputCst){let l=this.CST_STACK[this.CST_STACK.length-1];l.recoveredNode=!0,s.partialCstResult=l}throw s}}else{if(i)return this.moveToTerminatedState(),r(t);throw s}}else throw t}optionInternal(t,n){let r=512|n;return this.optionInternalLogic(t,n,r)}optionInternalLogic(t,n,r){let i=this.currRuleLookaheadFuncs[r],o;if(typeof t!="function"){o=t.DEF;let s=t.GATE;if(s!==void 0){let a=i;i=()=>s.call(this)&&a.call(this)}}else o=t;if(i.call(this)===!0)return o.call(this)}atLeastOneInternal(t,n){let r=1024|t;return this.atLeastOneInternalLogic(t,n,r)}atLeastOneInternalLogic(t,n,r){let i=this.currRuleLookaheadFuncs[r],o;if(typeof n!="function"){o=n.DEF;let s=n.GATE;if(s!==void 0){let a=i;i=()=>s.call(this)&&a.call(this)}}else o=n;if(i.call(this)===!0){let s=this.doSingleRepetition(o);for(;i.call(this)===!0&&s===!0;)s=this.doSingleRepetition(o)}else throw this.raiseEarlyExitException(t,Fe.REPETITION_MANDATORY,n.ERR_MSG);this.attemptInRepetitionRecovery(this.atLeastOneInternal,[t,n],i,1024,t,Fc)}atLeastOneSepFirstInternal(t,n){let r=1536|t;this.atLeastOneSepFirstInternalLogic(t,n,r)}atLeastOneSepFirstInternalLogic(t,n,r){let i=n.DEF,o=n.SEP;if(this.currRuleLookaheadFuncs[r].call(this)===!0){i.call(this);let a=()=>this.tokenMatcher(this.LA_FAST(1),o);for(;this.tokenMatcher(this.LA_FAST(1),o)===!0;)this.CONSUME(o),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[t,o,a,i,da],a,1536,t,da)}else throw this.raiseEarlyExitException(t,Fe.REPETITION_MANDATORY_WITH_SEPARATOR,n.ERR_MSG)}manyInternal(t,n){let r=768|t;return this.manyInternalLogic(t,n,r)}manyInternalLogic(t,n,r){let i=this.currRuleLookaheadFuncs[r],o;if(typeof n!="function"){o=n.DEF;let a=n.GATE;if(a!==void 0){let l=i;i=()=>a.call(this)&&l.call(this)}}else o=n;let s=!0;for(;i.call(this)===!0&&s===!0;)s=this.doSingleRepetition(o);this.attemptInRepetitionRecovery(this.manyInternal,[t,n],i,768,t,Mc,s)}manySepFirstInternal(t,n){let r=1280|t;this.manySepFirstInternalLogic(t,n,r)}manySepFirstInternalLogic(t,n,r){let i=n.DEF,o=n.SEP;if(this.currRuleLookaheadFuncs[r].call(this)===!0){i.call(this);let a=()=>this.tokenMatcher(this.LA_FAST(1),o);for(;this.tokenMatcher(this.LA_FAST(1),o)===!0;)this.CONSUME(o),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[t,o,a,i,fa],a,1280,t,fa)}}repetitionSepSecondInternal(t,n,r,i,o){for(;r();)this.CONSUME(n),i.call(this);this.attemptInRepetitionRecovery(this.repetitionSepSecondInternal,[t,n,r,i,o],r,1536,t,o)}doSingleRepetition(t){let n=this.getLexerPosition();return t.call(this),this.getLexerPosition()>n}orInternal(t,n){let r=256|n,i=Array.isArray(t)?t:t.DEF,s=this.currRuleLookaheadFuncs[r].call(this,i);if(s!==void 0)return i[s].ALT.call(this);this.raiseNoAltException(n,t.ERR_MSG)}ruleFinallyStateUpdate(){this.RULE_STACK_IDX--,this.RULE_OCCURRENCE_STACK_IDX--,this.RULE_STACK_IDX>=0&&(this.currRuleShortName=this.RULE_STACK[this.RULE_STACK_IDX],this.currRuleLookaheadFuncs=this.lookAheadFuncsCache[this.currRuleShortName]),this.cstFinallyStateUpdate()}subruleInternal(t,n,r){let i;try{let o=r!==void 0?r.ARGS:void 0;return this.subruleIdx=n,i=t.coreRule.apply(this,o),this.cstPostNonTerminal(i,r!==void 0&&r.LABEL!==void 0?r.LABEL:t.ruleName),i}catch(o){throw this.subruleInternalError(o,r,t.ruleName)}}subruleInternalError(t,n,r){throw cr(t)&&t.partialCstResult!==void 0&&(this.cstPostNonTerminal(t.partialCstResult,n!==void 0&&n.LABEL!==void 0?n.LABEL:r),delete t.partialCstResult),t}consumeInternal(t,n,r){let i;try{let o=this.LA_FAST(1);this.tokenMatcher(o,t)===!0?(this.consumeToken(),i=o):this.consumeInternalError(t,o,r)}catch(o){i=this.consumeInternalRecovery(t,n,o)}return this.cstPostTerminal(r!==void 0&&r.LABEL!==void 0?r.LABEL:t.name,i),i}consumeInternalError(t,n,r){let i,o=this.LA(0);throw r!==void 0&&r.ERR_MSG?i=r.ERR_MSG:i=this.errorMessageProvider.buildMismatchTokenMessage({expected:t,actual:n,previous:o,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new ii(i,n,o))}consumeInternalRecovery(t,n,r){if(this.recoveryEnabled&&r.name==="MismatchedTokenException"&&!this.isBackTracking()){let i=this.getFollowsForInRuleRecovery(t,n);try{return this.tryInRuleRecovery(t,i)}catch(o){throw o.name===Wh?r:o}}else throw r}saveRecogState(){let t=this.errors,n=this.RULE_STACK.slice(0,this.RULE_STACK_IDX+1);return{errors:t,lexerState:this.exportLexerState(),RULE_STACK:n,CST_STACK:this.CST_STACK}}reloadRecogState(t){this.errors=t.errors,this.importLexerState(t.lexerState);let n=t.RULE_STACK;for(let r=0;r<n.length;r++)this.RULE_STACK[r]=n[r];this.RULE_STACK_IDX=n.length-1,this.RULE_STACK_IDX>=0&&(this.currRuleShortName=this.RULE_STACK[this.RULE_STACK_IDX],this.currRuleLookaheadFuncs=this.lookAheadFuncsCache[this.currRuleShortName])}ruleInvocationStateUpdate(t,n,r){this.RULE_OCCURRENCE_STACK[++this.RULE_OCCURRENCE_STACK_IDX]=r,this.RULE_STACK[++this.RULE_STACK_IDX]=t,this.currRuleShortName=t,this.currRuleLookaheadFuncs=this.lookAheadFuncsCache[t],this.cstInvocationStateUpdate(n)}isBackTracking(){return this.isBackTrackingStack.length!==0}getCurrRuleFullName(){let t=this.currRuleShortName;return this.shortRuleNameToFull[t]}shortRuleNameToFullName(t){return this.shortRuleNameToFull[t]}isAtEndOfInput(){return this.tokenMatcher(this.LA(1),ut)}reset(){this.resetLexerState(),this.subruleIdx=0,this.currRuleShortName=-1,this.currRuleLookaheadFuncs=[],this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK_IDX=-1,this.RULE_OCCURRENCE_STACK_IDX=-1,this.CST_STACK=[]}onBeforeParse(t){for(let n=0;n<this.maxLookahead+1;n++)this.tokVector.push(Ln)}onAfterParse(t){if(this.isAtEndOfInput()===!1){let n=this.LA(1),r=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:n,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new ga(r,n))}for(;this.tokVector.at(-1)===Ln;)this.tokVector.pop()}};var eu=class{initErrorHandler(t){this._errors=[],this.errorMessageProvider=Object.hasOwn(t,"errorMessageProvider")?t.errorMessageProvider:ft.errorMessageProvider}SAVE_ERROR(t){if(cr(t))return t.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:this.RULE_OCCURRENCE_STACK.slice(0,this.RULE_OCCURRENCE_STACK_IDX+1)},this._errors.push(t),t;throw Error("Trying to save an Error which is not a RecognitionException")}get errors(){return[...this._errors]}set errors(t){this._errors=t}raiseEarlyExitException(t,n,r){let i=this.getCurrRuleFullName(),o=this.getGAstProductions()[i],a=ho(t,o,n,this.maxLookahead)[0],l=[];for(let u=1;u<=this.maxLookahead;u++)l.push(this.LA(u));let c=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:a,actual:l,previous:this.LA(0),customUserDescription:r,ruleName:i});throw this.SAVE_ERROR(new ya(c,this.LA(1),this.LA(0)))}raiseNoAltException(t,n){let r=this.getCurrRuleFullName(),i=this.getGAstProductions()[r],o=po(t,i,this.maxLookahead),s=[];for(let c=1;c<=this.maxLookahead;c++)s.push(this.LA(c));let a=this.LA(0),l=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:o,actual:s,previous:a,customUserDescription:n,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new ma(l,this.LA(1),a))}};var ru={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(ru);var hT=!0,mT=255,yT=lr({name:"RECORDING_PHASE_TOKEN",pattern:Me.NA});In([yT]);var xT=Sn(yT,`This IToken indicates the Parser is in Recording Phase
|
|
102
|
+
See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze(xT);var bP={name:`This CSTNode indicates the Parser is in Recording Phase
|
|
103
|
+
See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}},tu=class{initGastRecorder(t){this.recordingProdStack=[],this.RECORDING_PHASE=!1}enableRecording(){this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",()=>{for(let t=0;t<10;t++){let n=t>0?t:"";this[`CONSUME${n}`]=function(r,i){return this.consumeInternalRecord(r,t,i)},this[`SUBRULE${n}`]=function(r,i){return this.subruleInternalRecord(r,t,i)},this[`OPTION${n}`]=function(r){return this.optionInternalRecord(r,t)},this[`OR${n}`]=function(r){return this.orInternalRecord(r,t)},this[`MANY${n}`]=function(r){this.manyInternalRecord(t,r)},this[`MANY_SEP${n}`]=function(r){this.manySepFirstInternalRecord(t,r)},this[`AT_LEAST_ONE${n}`]=function(r){this.atLeastOneInternalRecord(t,r)},this[`AT_LEAST_ONE_SEP${n}`]=function(r){this.atLeastOneSepFirstInternalRecord(t,r)}}this.consume=function(t,n,r){return this.consumeInternalRecord(n,t,r)},this.subrule=function(t,n,r){return this.subruleInternalRecord(n,t,r)},this.option=function(t,n){return this.optionInternalRecord(n,t)},this.or=function(t,n){return this.orInternalRecord(n,t)},this.many=function(t,n){this.manyInternalRecord(t,n)},this.atLeastOne=function(t,n){this.atLeastOneInternalRecord(t,n)},this.ACTION=this.ACTION_RECORD,this.BACKTRACK=this.BACKTRACK_RECORD,this.LA=this.LA_RECORD})}disableRecording(){this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",()=>{let t=this;for(let n=0;n<10;n++){let r=n>0?n:"";delete t[`CONSUME${r}`],delete t[`SUBRULE${r}`],delete t[`OPTION${r}`],delete t[`OR${r}`],delete t[`MANY${r}`],delete t[`MANY_SEP${r}`],delete t[`AT_LEAST_ONE${r}`],delete t[`AT_LEAST_ONE_SEP${r}`]}delete t.consume,delete t.subrule,delete t.option,delete t.or,delete t.many,delete t.atLeastOne,delete t.ACTION,delete t.BACKTRACK,delete t.LA})}ACTION_RECORD(t){}BACKTRACK_RECORD(t,n){return()=>!0}LA_RECORD(t){return Ln}topLevelRuleRecord(t,n){try{let r=new lt({definition:[],name:t});return r.name=t,this.recordingProdStack.push(r),n.call(this),this.recordingProdStack.pop(),r}catch(r){if(r.KNOWN_RECORDER_ERROR!==!0)try{r.message=r.message+`
|
|
104
104
|
This error was thrown during the "grammar recording phase" For more info see:
|
|
105
|
-
https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{throw r}throw r}}optionInternalRecord(t,n){return Ea.call(this,we,t,n)}atLeastOneInternalRecord(t,n){Ea.call(this,Ne,n,t)}atLeastOneSepFirstInternalRecord(t,n){Ea.call(this,Le,n,t,
|
|
106
|
-
inside top level rule: <${this.recordingProdStack[0].name}>`);throw a.KNOWN_RECORDER_ERROR=!0,a}let i=this.recordingProdStack.at(-1),o=t.ruleName,s=new Ee({idx:n,nonTerminalName:o,label:r?.LABEL,referencedRule:void 0});return i.definition.push(s),this.outputCst?
|
|
107
|
-
inside top level rule: <${this.recordingProdStack[0].name}>`);throw s.KNOWN_RECORDER_ERROR=!0,s}let i=this.recordingProdStack.at(-1),o=new ue({idx:n,terminalType:t,label:r?.LABEL});return i.definition.push(o),
|
|
108
|
-
Idx value must be a none negative value smaller than ${
|
|
105
|
+
https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{throw r}throw r}}optionInternalRecord(t,n){return Ea.call(this,we,t,n)}atLeastOneInternalRecord(t,n){Ea.call(this,Ne,n,t)}atLeastOneSepFirstInternalRecord(t,n){Ea.call(this,Le,n,t,hT)}manyInternalRecord(t,n){Ea.call(this,ge,n,t)}manySepFirstInternalRecord(t,n){Ea.call(this,ke,n,t,hT)}orInternalRecord(t,n){return NP.call(this,t,n)}subruleInternalRecord(t,n,r){if(nu(n),!t||!Object.hasOwn(t,"ruleName")){let a=new Error(`<SUBRULE${gT(n)}> argument is invalid expecting a Parser method reference but got: <${JSON.stringify(t)}>
|
|
106
|
+
inside top level rule: <${this.recordingProdStack[0].name}>`);throw a.KNOWN_RECORDER_ERROR=!0,a}let i=this.recordingProdStack.at(-1),o=t.ruleName,s=new Ee({idx:n,nonTerminalName:o,label:r?.LABEL,referencedRule:void 0});return i.definition.push(s),this.outputCst?bP:ru}consumeInternalRecord(t,n,r){if(nu(n),!bh(t)){let s=new Error(`<CONSUME${gT(n)}> argument is invalid expecting a TokenType reference but got: <${JSON.stringify(t)}>
|
|
107
|
+
inside top level rule: <${this.recordingProdStack[0].name}>`);throw s.KNOWN_RECORDER_ERROR=!0,s}let i=this.recordingProdStack.at(-1),o=new ue({idx:n,terminalType:t,label:r?.LABEL});return i.definition.push(o),xT}};function Ea(e,t,n,r=!1){nu(n);let i=this.recordingProdStack.at(-1),o=typeof t=="function"?t:t.DEF,s=new e({definition:[],idx:n});return r&&(s.separator=t.SEP),Object.hasOwn(t,"MAX_LOOKAHEAD")&&(s.maxLookahead=t.MAX_LOOKAHEAD),this.recordingProdStack.push(s),o.call(this),i.definition.push(s),this.recordingProdStack.pop(),ru}function NP(e,t){nu(t);let n=this.recordingProdStack.at(-1),r=Array.isArray(e)===!1,i=r===!1?e:e.DEF,o=new Ie({definition:[],idx:t,ignoreAmbiguities:r&&e.IGNORE_AMBIGUITIES===!0});Object.hasOwn(e,"MAX_LOOKAHEAD")&&(o.maxLookahead=e.MAX_LOOKAHEAD);let s=i.some(a=>typeof a.GATE=="function");return o.hasPredicates=s,n.definition.push(o),i.forEach(a=>{let l=new be({definition:[]});o.definition.push(l),Object.hasOwn(a,"IGNORE_AMBIGUITIES")?l.ignoreAmbiguities=a.IGNORE_AMBIGUITIES:Object.hasOwn(a,"GATE")&&(l.ignoreAmbiguities=!0),this.recordingProdStack.push(l),a.ALT.call(this),this.recordingProdStack.pop()}),ru}function gT(e){return e===0?"":`${e}`}function nu(e){if(e<0||e>mT){let t=new Error(`Invalid DSL Method idx value: <${e}>
|
|
108
|
+
Idx value must be a none negative value smaller than ${mT+1}`);throw t.KNOWN_RECORDER_ERROR=!0,t}}var iu=class{initPerformanceTracer(t){if(Object.hasOwn(t,"traceInitPerf")){let n=t.traceInitPerf,r=typeof n=="number";this.traceInitMaxIdent=r?n:1/0,this.traceInitPerf=r?n>0:n}else this.traceInitMaxIdent=0,this.traceInitPerf=ft.traceInitPerf;this.traceInitIndent=-1}TRACE_INIT(t,n){if(this.traceInitPerf===!0){this.traceInitIndent++;let r=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent<this.traceInitMaxIdent&&console.log(`${r}--> <${t}>`);let{time:i,value:o}=sa(n),s=i>10?console.warn:console.log;return this.traceInitIndent<this.traceInitMaxIdent&&s(`${r}<-- <${t}> time: ${i}ms`),this.traceInitIndent--,o}else return n()}};function ET(e,t){t.forEach(n=>{let r=n.prototype;Object.getOwnPropertyNames(r).forEach(i=>{if(i==="constructor")return;let o=Object.getOwnPropertyDescriptor(r,i);o&&(o.get||o.set)?Object.defineProperty(e.prototype,i,o):e.prototype[i]=n.prototype[i]})})}var Ln=Sn(ut,"",-1,-1,-1,-1,-1,-1);Object.freeze(Ln);var ft=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:bn,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1}),go=Object.freeze({recoveryValueFunc:()=>{},resyncEnabled:!0}),Ye;(function(e){e[e.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",e[e.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",e[e.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",e[e.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",e[e.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",e[e.LEFT_RECURSION=5]="LEFT_RECURSION",e[e.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",e[e.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",e[e.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",e[e.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",e[e.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",e[e.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",e[e.TOO_MANY_ALTS=12]="TOO_MANY_ALTS",e[e.CUSTOM_LOOKAHEAD_VALIDATION=13]="CUSTOM_LOOKAHEAD_VALIDATION"})(Ye||(Ye={}));function ou(e=void 0){return function(){return e}}var wa=class e{static performSelfAnalysis(t){throw Error("The **static** `performSelfAnalysis` method has been deprecated. \nUse the **instance** method with the same name instead.")}performSelfAnalysis(){this.TRACE_INIT("performSelfAnalysis",()=>{let t;this.selfAnalysisDone=!0;let n=this.className;this.TRACE_INIT("toFastProps",()=>{aa(this)}),this.TRACE_INIT("Grammar Recording",()=>{try{this.enableRecording(),this.definedRulesNames.forEach(i=>{let s=this[i].originalGrammarAction,a;this.TRACE_INIT(`${i} Rule`,()=>{a=this.topLevelRuleRecord(i,s)}),this.gastProductionsCache[i]=a})}finally{this.disableRecording()}});let r=[];if(this.TRACE_INIT("Grammar Resolving",()=>{r=rT({rules:Object.values(this.gastProductionsCache)}),this.definitionErrors=this.definitionErrors.concat(r)}),this.TRACE_INIT("Grammar Validations",()=>{if(r.length===0&&this.skipValidations===!1){let i=iT({rules:Object.values(this.gastProductionsCache),tokenTypes:Object.values(this.tokensMap),errMsgProvider:Vt,grammarName:n}),o=qw({lookaheadStrategy:this.lookaheadStrategy,rules:Object.values(this.gastProductionsCache),tokenTypes:Object.values(this.tokensMap),grammarName:n});this.definitionErrors=this.definitionErrors.concat(i,o)}}),this.definitionErrors.length===0&&(this.recoveryEnabled&&this.TRACE_INIT("computeAllProdsFollows",()=>{let i=dw(Object.values(this.gastProductionsCache));this.resyncFollows=i}),this.TRACE_INIT("ComputeLookaheadFunctions",()=>{var i,o;(o=(i=this.lookaheadStrategy).initialize)===null||o===void 0||o.call(i,{rules:Object.values(this.gastProductionsCache)}),this.preComputeLookaheadFunctions(Object.values(this.gastProductionsCache))})),!e.DEFER_DEFINITION_ERRORS_HANDLING&&this.definitionErrors.length!==0)throw t=this.definitionErrors.map(i=>i.message),new Error(`Parser Definition Errors detected:
|
|
109
109
|
${t.join(`
|
|
110
110
|
-------------------------------
|
|
111
111
|
`)}`)})}constructor(t,n){this.definitionErrors=[],this.selfAnalysisDone=!1;let r=this;if(r.initErrorHandler(n),r.initLexerAdapter(),r.initLooksAhead(n),r.initRecognizerEngine(t,n),r.initRecoverable(n),r.initTreeBuilder(n),r.initGastRecorder(n),r.initPerformanceTracer(n),Object.hasOwn(n,"ignoredIssues"))throw new Error(`The <ignoredIssues> IParserConfig property has been deprecated.
|
|
112
112
|
Please use the <IGNORE_AMBIGUITIES> flag on the relevant DSL method instead.
|
|
113
113
|
See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES
|
|
114
|
-
For further details.`);this.skipValidations=Object.hasOwn(n,"skipValidations")?n.skipValidations:ft.skipValidations}};wa.DEFER_DEFINITION_ERRORS_HANDLING=!1;fT(wa,[Gc,zc,Kc,qc,Jc,Zc,Qc,eu,ru]);var Ta=class extends wa{constructor(t,n=ft){let r=Object.assign({},n);r.outputCst=!1,super(t,r)}};function RO(e,t){for(var n=-1,r=e==null?0:e.length,i=Array(r);++n<r;)i[n]=t(e[n],n,e);return i}var ou=RO;function SO(){this.__data__=[],this.size=0}var dT=SO;function bO(e,t){return e===t||e!==e&&t!==t}var su=bO;function NO(e,t){for(var n=e.length;n--;)if(su(e[n][0],t))return n;return-1}var ur=NO;var LO=Array.prototype,OO=LO.splice;function PO(e){var t=this.__data__,n=ur(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():OO.call(t,n,1),--this.size,!0}var pT=PO;function CO(e){var t=this.__data__,n=ur(t,e);return n<0?void 0:t[n][1]}var hT=CO;function $O(e){return ur(this.__data__,e)>-1}var mT=$O;function DO(e,t){var n=this.__data__,r=ur(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var gT=DO;function go(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}go.prototype.clear=dT;go.prototype.delete=pT;go.prototype.get=hT;go.prototype.has=mT;go.prototype.set=gT;var fr=go;function MO(){this.__data__=new fr,this.size=0}var yT=MO;function FO(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}var xT=FO;function BO(e){return this.__data__.get(e)}var ET=BO;function WO(e){return this.__data__.has(e)}var wT=WO;var XO=typeof global=="object"&&global&&global.Object===Object&&global,au=XO;var UO=typeof self=="object"&&self&&self.Object===Object&&self,GO=au||UO||Function("return this")(),Ze=GO;var HO=Ze.Symbol,dt=HO;var TT=Object.prototype,zO=TT.hasOwnProperty,jO=TT.toString,_a=dt?dt.toStringTag:void 0;function YO(e){var t=zO.call(e,_a),n=e[_a];try{e[_a]=void 0;var r=!0}catch{}var i=jO.call(e);return r&&(t?e[_a]=n:delete e[_a]),i}var _T=YO;var VO=Object.prototype,KO=VO.toString;function qO(e){return KO.call(e)}var vT=qO;var ZO="[object Null]",JO="[object Undefined]",AT=dt?dt.toStringTag:void 0;function QO(e){return e==null?e===void 0?JO:ZO:AT&&AT in Object(e)?_T(e):vT(e)}var Vt=QO;function eP(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var yo=eP;var tP="[object AsyncFunction]",nP="[object Function]",rP="[object GeneratorFunction]",iP="[object Proxy]";function oP(e){if(!yo(e))return!1;var t=Vt(e);return t==nP||t==rP||t==tP||t==iP}var lu=oP;var sP=Ze["__core-js_shared__"],cu=sP;var kT=(function(){var e=/[^.]+$/.exec(cu&&cu.keys&&cu.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""})();function aP(e){return!!kT&&kT in e}var IT=aP;var lP=Function.prototype,cP=lP.toString;function uP(e){if(e!=null){try{return cP.call(e)}catch{}try{return e+""}catch{}}return""}var On=uP;var fP=/[\\^$.*+?()[\]{}|]/g,dP=/^\[object .+?Constructor\]$/,pP=Function.prototype,hP=Object.prototype,mP=pP.toString,gP=hP.hasOwnProperty,yP=RegExp("^"+mP.call(gP).replace(fP,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function xP(e){if(!yo(e)||IT(e))return!1;var t=lu(e)?yP:dP;return t.test(On(e))}var RT=xP;function EP(e,t){return e?.[t]}var ST=EP;function wP(e,t){var n=ST(e,t);return RT(n)?n:void 0}var Ft=wP;var TP=Ft(Ze,"Map"),dr=TP;var _P=Ft(Object,"create"),Pn=_P;function vP(){this.__data__=Pn?Pn(null):{},this.size=0}var bT=vP;function AP(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var NT=AP;var kP="__lodash_hash_undefined__",IP=Object.prototype,RP=IP.hasOwnProperty;function SP(e){var t=this.__data__;if(Pn){var n=t[e];return n===kP?void 0:n}return RP.call(t,e)?t[e]:void 0}var LT=SP;var bP=Object.prototype,NP=bP.hasOwnProperty;function LP(e){var t=this.__data__;return Pn?t[e]!==void 0:NP.call(t,e)}var OT=LP;var OP="__lodash_hash_undefined__";function PP(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=Pn&&t===void 0?OP:t,this}var PT=PP;function xo(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}xo.prototype.clear=bT;xo.prototype.delete=NT;xo.prototype.get=LT;xo.prototype.has=OT;xo.prototype.set=PT;var zh=xo;function CP(){this.size=0,this.__data__={hash:new zh,map:new(dr||fr),string:new zh}}var CT=CP;function $P(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var $T=$P;function DP(e,t){var n=e.__data__;return $T(t)?n[typeof t=="string"?"string":"hash"]:n.map}var pr=DP;function MP(e){var t=pr(this,e).delete(e);return this.size-=t?1:0,t}var DT=MP;function FP(e){return pr(this,e).get(e)}var MT=FP;function BP(e){return pr(this,e).has(e)}var FT=BP;function WP(e,t){var n=pr(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var BT=WP;function Eo(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}Eo.prototype.clear=CT;Eo.prototype.delete=DT;Eo.prototype.get=MT;Eo.prototype.has=FT;Eo.prototype.set=BT;var oi=Eo;var XP=200;function UP(e,t){var n=this.__data__;if(n instanceof fr){var r=n.__data__;if(!dr||r.length<XP-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new oi(r)}return n.set(e,t),this.size=n.size,this}var WT=UP;function wo(e){var t=this.__data__=new fr(e);this.size=t.size}wo.prototype.clear=yT;wo.prototype.delete=xT;wo.prototype.get=ET;wo.prototype.has=wT;wo.prototype.set=WT;var To=wo;var GP="__lodash_hash_undefined__";function HP(e){return this.__data__.set(e,GP),this}var XT=HP;function zP(e){return this.__data__.has(e)}var UT=zP;function uu(e){var t=-1,n=e==null?0:e.length;for(this.__data__=new oi;++t<n;)this.add(e[t])}uu.prototype.add=uu.prototype.push=XT;uu.prototype.has=UT;var fu=uu;function jP(e,t){for(var n=-1,r=e==null?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}var GT=jP;function YP(e,t){return e.has(t)}var du=YP;var VP=1,KP=2;function qP(e,t,n,r,i,o){var s=n&VP,a=e.length,l=t.length;if(a!=l&&!(s&&l>a))return!1;var c=o.get(e),u=o.get(t);if(c&&u)return c==t&&u==e;var f=-1,d=!0,p=n&KP?new fu:void 0;for(o.set(e,t),o.set(t,e);++f<a;){var m=e[f],g=t[f];if(r)var E=s?r(g,m,f,t,e,o):r(m,g,f,e,t,o);if(E!==void 0){if(E)continue;d=!1;break}if(p){if(!GT(t,function(x,y){if(!du(p,y)&&(m===x||i(m,x,n,r,o)))return p.push(y)})){d=!1;break}}else if(!(m===g||i(m,g,n,r,o))){d=!1;break}}return o.delete(e),o.delete(t),d}var pu=qP;var ZP=Ze.Uint8Array,jh=ZP;function JP(e){var t=-1,n=Array(e.size);return e.forEach(function(r,i){n[++t]=[i,r]}),n}var HT=JP;function QP(e){var t=-1,n=Array(e.size);return e.forEach(function(r){n[++t]=r}),n}var _o=QP;var eC=1,tC=2,nC="[object Boolean]",rC="[object Date]",iC="[object Error]",oC="[object Map]",sC="[object Number]",aC="[object RegExp]",lC="[object Set]",cC="[object String]",uC="[object Symbol]",fC="[object ArrayBuffer]",dC="[object DataView]",zT=dt?dt.prototype:void 0,Yh=zT?zT.valueOf:void 0;function pC(e,t,n,r,i,o,s){switch(n){case dC:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case fC:return!(e.byteLength!=t.byteLength||!o(new jh(e),new jh(t)));case nC:case rC:case sC:return su(+e,+t);case iC:return e.name==t.name&&e.message==t.message;case aC:case cC:return e==t+"";case oC:var a=HT;case lC:var l=r&eC;if(a||(a=_o),e.size!=t.size&&!l)return!1;var c=s.get(e);if(c)return c==t;r|=tC,s.set(e,t);var u=pu(a(e),a(t),r,i,o,s);return s.delete(e),u;case uC:if(Yh)return Yh.call(e)==Yh.call(t)}return!1}var jT=pC;function hC(e,t){for(var n=-1,r=t.length,i=e.length;++n<r;)e[i+n]=t[n];return e}var hu=hC;var mC=Array.isArray,Te=mC;function gC(e,t,n){var r=t(e);return Te(e)?r:hu(r,n(e))}var YT=gC;function yC(e,t){for(var n=-1,r=e==null?0:e.length,i=0,o=[];++n<r;){var s=e[n];t(s,n,e)&&(o[i++]=s)}return o}var mu=yC;function xC(){return[]}var VT=xC;var EC=Object.prototype,wC=EC.propertyIsEnumerable,KT=Object.getOwnPropertySymbols,TC=KT?function(e){return e==null?[]:(e=Object(e),mu(KT(e),function(t){return wC.call(e,t)}))}:VT,qT=TC;function _C(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}var ZT=_C;function vC(e){return e!=null&&typeof e=="object"}var Kt=vC;var AC="[object Arguments]";function kC(e){return Kt(e)&&Vt(e)==AC}var Vh=kC;var JT=Object.prototype,IC=JT.hasOwnProperty,RC=JT.propertyIsEnumerable,SC=Vh((function(){return arguments})())?Vh:function(e){return Kt(e)&&IC.call(e,"callee")&&!RC.call(e,"callee")},hr=SC;function bC(){return!1}var QT=bC;var n_=typeof exports=="object"&&exports&&!exports.nodeType&&exports,e_=n_&&typeof module=="object"&&module&&!module.nodeType&&module,NC=e_&&e_.exports===n_,t_=NC?Ze.Buffer:void 0,LC=t_?t_.isBuffer:void 0,OC=LC||QT,si=OC;var PC=9007199254740991,CC=/^(?:0|[1-9]\d*)$/;function $C(e,t){var n=typeof e;return t=t??PC,!!t&&(n=="number"||n!="symbol"&&CC.test(e))&&e>-1&&e%1==0&&e<t}var gu=$C;var DC=9007199254740991;function MC(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=DC}var vo=MC;var FC="[object Arguments]",BC="[object Array]",WC="[object Boolean]",XC="[object Date]",UC="[object Error]",GC="[object Function]",HC="[object Map]",zC="[object Number]",jC="[object Object]",YC="[object RegExp]",VC="[object Set]",KC="[object String]",qC="[object WeakMap]",ZC="[object ArrayBuffer]",JC="[object DataView]",QC="[object Float32Array]",e$="[object Float64Array]",t$="[object Int8Array]",n$="[object Int16Array]",r$="[object Int32Array]",i$="[object Uint8Array]",o$="[object Uint8ClampedArray]",s$="[object Uint16Array]",a$="[object Uint32Array]",Oe={};Oe[QC]=Oe[e$]=Oe[t$]=Oe[n$]=Oe[r$]=Oe[i$]=Oe[o$]=Oe[s$]=Oe[a$]=!0;Oe[FC]=Oe[BC]=Oe[ZC]=Oe[WC]=Oe[JC]=Oe[XC]=Oe[UC]=Oe[GC]=Oe[HC]=Oe[zC]=Oe[jC]=Oe[YC]=Oe[VC]=Oe[KC]=Oe[qC]=!1;function l$(e){return Kt(e)&&vo(e.length)&&!!Oe[Vt(e)]}var r_=l$;function c$(e){return function(t){return e(t)}}var i_=c$;var o_=typeof exports=="object"&&exports&&!exports.nodeType&&exports,va=o_&&typeof module=="object"&&module&&!module.nodeType&&module,u$=va&&va.exports===o_,Kh=u$&&au.process,f$=(function(){try{var e=va&&va.require&&va.require("util").types;return e||Kh&&Kh.binding&&Kh.binding("util")}catch{}})(),qh=f$;var s_=qh&&qh.isTypedArray,d$=s_?i_(s_):r_,Ao=d$;var p$=Object.prototype,h$=p$.hasOwnProperty;function m$(e,t){var n=Te(e),r=!n&&hr(e),i=!n&&!r&&si(e),o=!n&&!r&&!i&&Ao(e),s=n||r||i||o,a=s?ZT(e.length,String):[],l=a.length;for(var c in e)(t||h$.call(e,c))&&!(s&&(c=="length"||i&&(c=="offset"||c=="parent")||o&&(c=="buffer"||c=="byteLength"||c=="byteOffset")||gu(c,l)))&&a.push(c);return a}var a_=m$;var g$=Object.prototype;function y$(e){var t=e&&e.constructor,n=typeof t=="function"&&t.prototype||g$;return e===n}var yu=y$;function x$(e,t){return function(n){return e(t(n))}}var l_=x$;var E$=l_(Object.keys,Object),c_=E$;var w$=Object.prototype,T$=w$.hasOwnProperty;function _$(e){if(!yu(e))return c_(e);var t=[];for(var n in Object(e))T$.call(e,n)&&n!="constructor"&&t.push(n);return t}var xu=_$;function v$(e){return e!=null&&vo(e.length)&&!lu(e)}var mr=v$;function A$(e){return mr(e)?a_(e):xu(e)}var ko=A$;function k$(e){return YT(e,ko,qT)}var Zh=k$;var I$=1,R$=Object.prototype,S$=R$.hasOwnProperty;function b$(e,t,n,r,i,o){var s=n&I$,a=Zh(e),l=a.length,c=Zh(t),u=c.length;if(l!=u&&!s)return!1;for(var f=l;f--;){var d=a[f];if(!(s?d in t:S$.call(t,d)))return!1}var p=o.get(e),m=o.get(t);if(p&&m)return p==t&&m==e;var g=!0;o.set(e,t),o.set(t,e);for(var E=s;++f<l;){d=a[f];var x=e[d],y=t[d];if(r)var w=s?r(y,x,d,t,e,o):r(x,y,d,e,t,o);if(!(w===void 0?x===y||i(x,y,n,r,o):w)){g=!1;break}E||(E=d=="constructor")}if(g&&!E){var _=e.constructor,k=t.constructor;_!=k&&"constructor"in e&&"constructor"in t&&!(typeof _=="function"&&_ instanceof _&&typeof k=="function"&&k instanceof k)&&(g=!1)}return o.delete(e),o.delete(t),g}var u_=b$;var N$=Ft(Ze,"DataView"),Eu=N$;var L$=Ft(Ze,"Promise"),wu=L$;var O$=Ft(Ze,"Set"),gr=O$;var P$=Ft(Ze,"WeakMap"),Tu=P$;var f_="[object Map]",C$="[object Object]",d_="[object Promise]",p_="[object Set]",h_="[object WeakMap]",m_="[object DataView]",$$=On(Eu),D$=On(dr),M$=On(wu),F$=On(gr),B$=On(Tu),ai=Vt;(Eu&&ai(new Eu(new ArrayBuffer(1)))!=m_||dr&&ai(new dr)!=f_||wu&&ai(wu.resolve())!=d_||gr&&ai(new gr)!=p_||Tu&&ai(new Tu)!=h_)&&(ai=function(e){var t=Vt(e),n=t==C$?e.constructor:void 0,r=n?On(n):"";if(r)switch(r){case $$:return m_;case D$:return f_;case M$:return d_;case F$:return p_;case B$:return h_}return t});var Aa=ai;var W$=1,g_="[object Arguments]",y_="[object Array]",_u="[object Object]",X$=Object.prototype,x_=X$.hasOwnProperty;function U$(e,t,n,r,i,o){var s=Te(e),a=Te(t),l=s?y_:Aa(e),c=a?y_:Aa(t);l=l==g_?_u:l,c=c==g_?_u:c;var u=l==_u,f=c==_u,d=l==c;if(d&&si(e)){if(!si(t))return!1;s=!0,u=!1}if(d&&!u)return o||(o=new To),s||Ao(e)?pu(e,t,n,r,i,o):jT(e,t,l,n,r,i,o);if(!(n&W$)){var p=u&&x_.call(e,"__wrapped__"),m=f&&x_.call(t,"__wrapped__");if(p||m){var g=p?e.value():e,E=m?t.value():t;return o||(o=new To),i(g,E,n,r,o)}}return d?(o||(o=new To),u_(e,t,n,r,i,o)):!1}var E_=U$;function w_(e,t,n,r,i){return e===t?!0:e==null||t==null||!Kt(e)&&!Kt(t)?e!==e&&t!==t:E_(e,t,n,r,w_,i)}var vu=w_;var G$=1,H$=2;function z$(e,t,n,r){var i=n.length,o=i,s=!r;if(e==null)return!o;for(e=Object(e);i--;){var a=n[i];if(s&&a[2]?a[1]!==e[a[0]]:!(a[0]in e))return!1}for(;++i<o;){a=n[i];var l=a[0],c=e[l],u=a[1];if(s&&a[2]){if(c===void 0&&!(l in e))return!1}else{var f=new To;if(r)var d=r(c,u,l,e,t,f);if(!(d===void 0?vu(u,c,G$|H$,r,f):d))return!1}}return!0}var T_=z$;function j$(e){return e===e&&!yo(e)}var Au=j$;function Y$(e){for(var t=ko(e),n=t.length;n--;){var r=t[n],i=e[r];t[n]=[r,i,Au(i)]}return t}var __=Y$;function V$(e,t){return function(n){return n==null?!1:n[e]===t&&(t!==void 0||e in Object(n))}}var ku=V$;function K$(e){var t=__(e);return t.length==1&&t[0][2]?ku(t[0][0],t[0][1]):function(n){return n===e||T_(n,e,t)}}var v_=K$;var q$="[object Symbol]";function Z$(e){return typeof e=="symbol"||Kt(e)&&Vt(e)==q$}var yr=Z$;var J$=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Q$=/^\w*$/;function e1(e,t){if(Te(e))return!1;var n=typeof e;return n=="number"||n=="symbol"||n=="boolean"||e==null||yr(e)?!0:Q$.test(e)||!J$.test(e)||t!=null&&e in Object(t)}var Io=e1;var t1="Expected a function";function Jh(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(t1);var n=function(){var r=arguments,i=t?t.apply(this,r):r[0],o=n.cache;if(o.has(i))return o.get(i);var s=e.apply(this,r);return n.cache=o.set(i,s)||o,s};return n.cache=new(Jh.Cache||oi),n}Jh.Cache=oi;var A_=Jh;var n1=500;function r1(e){var t=A_(e,function(r){return n.size===n1&&n.clear(),r}),n=t.cache;return t}var k_=r1;var i1=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,o1=/\\(\\)?/g,s1=k_(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(i1,function(n,r,i,o){t.push(i?o.replace(o1,"$1"):r||n)}),t}),I_=s1;var a1=1/0,R_=dt?dt.prototype:void 0,S_=R_?R_.toString:void 0;function b_(e){if(typeof e=="string")return e;if(Te(e))return ou(e,b_)+"";if(yr(e))return S_?S_.call(e):"";var t=e+"";return t=="0"&&1/e==-a1?"-0":t}var N_=b_;function l1(e){return e==null?"":N_(e)}var L_=l1;function c1(e,t){return Te(e)?e:Io(e,t)?[e]:I_(L_(e))}var Iu=c1;var u1=1/0;function f1(e){if(typeof e=="string"||yr(e))return e;var t=e+"";return t=="0"&&1/e==-u1?"-0":t}var xr=f1;function d1(e,t){t=Iu(t,e);for(var n=0,r=t.length;e!=null&&n<r;)e=e[xr(t[n++])];return n&&n==r?e:void 0}var Ru=d1;function p1(e,t,n){var r=e==null?void 0:Ru(e,t);return r===void 0?n:r}var O_=p1;function h1(e,t){return e!=null&&t in Object(e)}var P_=h1;function m1(e,t,n){t=Iu(t,e);for(var r=-1,i=t.length,o=!1;++r<i;){var s=xr(t[r]);if(!(o=e!=null&&n(e,s)))break;e=e[s]}return o||++r!=i?o:(i=e==null?0:e.length,!!i&&vo(i)&&gu(s,i)&&(Te(e)||hr(e)))}var C_=m1;function g1(e,t){return e!=null&&C_(e,t,P_)}var $_=g1;var y1=1,x1=2;function E1(e,t){return Io(e)&&Au(t)?ku(xr(e),t):function(n){var r=O_(n,e);return r===void 0&&r===t?$_(n,e):vu(t,r,y1|x1)}}var D_=E1;function w1(e){return e}var Ro=w1;function T1(e){return function(t){return t?.[e]}}var M_=T1;function _1(e){return function(t){return Ru(t,e)}}var F_=_1;function v1(e){return Io(e)?M_(xr(e)):F_(e)}var B_=v1;function A1(e){return typeof e=="function"?e:e==null?Ro:typeof e=="object"?Te(e)?D_(e[0],e[1]):v_(e):B_(e)}var Er=A1;function k1(e){return function(t,n,r){for(var i=-1,o=Object(t),s=r(t),a=s.length;a--;){var l=s[e?a:++i];if(n(o[l],l,o)===!1)break}return t}}var W_=k1;var I1=W_(),X_=I1;function R1(e,t){return e&&X_(e,t,ko)}var U_=R1;function S1(e,t){return function(n,r){if(n==null)return n;if(!mr(n))return e(n,r);for(var i=n.length,o=t?i:-1,s=Object(n);(t?o--:++o<i)&&r(s[o],o,s)!==!1;);return n}}var G_=S1;var b1=G_(U_),wr=b1;function N1(e,t){var n=-1,r=mr(e)?Array(e.length):[];return wr(e,function(i,o,s){r[++n]=t(i,o,s)}),r}var H_=N1;function L1(e,t){var n=Te(e)?ou:H_;return n(e,Er(t,3))}var Nt=L1;function O1(e,t){var n=[];return wr(e,function(r,i,o){t(r,i,o)&&n.push(r)}),n}var z_=O1;function P1(e,t){var n=Te(e)?mu:z_;return n(e,Er(t,3))}var j_=P1;function ui(e,t,n){return`${e.name}_${t}_${n}`}var Tr=1,C1=2,Y_=4,V_=5;var _r=7,$1=8,D1=9,M1=10,F1=11,K_=12,ka=class{constructor(t){this.target=t}isEpsilon(){return!1}},li=class extends ka{constructor(t,n){super(t),this.tokenType=n}},Ia=class extends ka{constructor(t){super(t)}isEpsilon(){return!0}},ci=class extends ka{constructor(t,n,r){super(t),this.rule=n,this.followState=r}isEpsilon(){return!0}};function q_(e){let t={decisionMap:{},decisionStates:[],ruleToStartState:new Map,ruleToStopState:new Map,states:[]};B1(t,e);let n=e.length;for(let r=0;r<n;r++){let i=e[r],o=fi(t,i,i);o!==void 0&&q1(t,i,o)}return t}function B1(e,t){let n=t.length;for(let r=0;r<n;r++){let i=t[r],o=Je(e,i,void 0,{type:C1}),s=Je(e,i,void 0,{type:_r});o.stop=s,e.ruleToStartState.set(i,o),e.ruleToStopState.set(i,s)}}function Z_(e,t,n){return n instanceof ue?Qh(e,t,n.terminalType,n):n instanceof Ee?K1(e,t,n):n instanceof Ie?H1(e,t,n):n instanceof we?z1(e,t,n):n instanceof ge?W1(e,t,n):n instanceof ke?X1(e,t,n):n instanceof Ne?U1(e,t,n):n instanceof Le?G1(e,t,n):fi(e,t,n)}function W1(e,t,n){let r=Je(e,t,n,{type:V_});vr(e,r);let i=So(e,t,r,n,fi(e,t,n));return Q_(e,t,n,i)}function X1(e,t,n){let r=Je(e,t,n,{type:V_});vr(e,r);let i=So(e,t,r,n,fi(e,t,n)),o=Qh(e,t,n.separator,n);return Q_(e,t,n,i,o)}function U1(e,t,n){let r=Je(e,t,n,{type:Y_});vr(e,r);let i=So(e,t,r,n,fi(e,t,n));return J_(e,t,n,i)}function G1(e,t,n){let r=Je(e,t,n,{type:Y_});vr(e,r);let i=So(e,t,r,n,fi(e,t,n)),o=Qh(e,t,n.separator,n);return J_(e,t,n,i,o)}function H1(e,t,n){let r=Je(e,t,n,{type:Tr});vr(e,r);let i=Nt(n.definition,s=>Z_(e,t,s));return So(e,t,r,n,...i)}function z1(e,t,n){let r=Je(e,t,n,{type:Tr});vr(e,r);let i=So(e,t,r,n,fi(e,t,n));return j1(e,t,n,i)}function fi(e,t,n){let r=j_(Nt(n.definition,i=>Z_(e,t,i)),i=>i!==void 0);return r.length===1?r[0]:r.length===0?void 0:V1(e,r)}function J_(e,t,n,r,i){let o=r.left,s=r.right,a=Je(e,t,n,{type:F1});vr(e,a);let l=Je(e,t,n,{type:K_});return o.loopback=a,l.loopback=a,e.decisionMap[ui(t,i?"RepetitionMandatoryWithSeparator":"RepetitionMandatory",n.idx)]=a,je(s,a),i===void 0?(je(a,o),je(a,l)):(je(a,l),je(a,i.left),je(i.right,o)),{left:o,right:l}}function Q_(e,t,n,r,i){let o=r.left,s=r.right,a=Je(e,t,n,{type:M1});vr(e,a);let l=Je(e,t,n,{type:K_}),c=Je(e,t,n,{type:D1});return a.loopback=c,l.loopback=c,je(a,o),je(a,l),je(s,c),i!==void 0?(je(c,l),je(c,i.left),je(i.right,o)):je(c,a),e.decisionMap[ui(t,i?"RepetitionWithSeparator":"Repetition",n.idx)]=a,{left:a,right:l}}function j1(e,t,n,r){let i=r.left,o=r.right;return je(i,o),e.decisionMap[ui(t,"Option",n.idx)]=i,r}function vr(e,t){return e.decisionStates.push(t),t.decision=e.decisionStates.length-1,t.decision}function So(e,t,n,r,...i){let o=Je(e,t,r,{type:$1,start:n});n.end=o;for(let a of i)a!==void 0?(je(n,a.left),je(a.right,o)):je(n,o);let s={left:n,right:o};return e.decisionMap[ui(t,Y1(r),r.idx)]=n,s}function Y1(e){if(e instanceof Ie)return"Alternation";if(e instanceof we)return"Option";if(e instanceof ge)return"Repetition";if(e instanceof ke)return"RepetitionWithSeparator";if(e instanceof Ne)return"RepetitionMandatory";if(e instanceof Le)return"RepetitionMandatoryWithSeparator";throw new Error("Invalid production type encountered")}function V1(e,t){let n=t.length;for(let o=0;o<n-1;o++){let s=t[o],a;s.left.transitions.length===1&&(a=s.left.transitions[0]);let l=a instanceof ci,c=a,u=t[o+1].left;s.left.type===Tr&&s.right.type===Tr&&a!==void 0&&(l&&c.followState===s.right||a.target===s.right)?(l?c.followState=u:a.target=u,Z1(e,s.right)):je(s.right,u)}let r=t[0],i=t[n-1];return{left:r.left,right:i.right}}function Qh(e,t,n,r){let i=Je(e,t,r,{type:Tr}),o=Je(e,t,r,{type:Tr});return em(i,new li(o,n)),{left:i,right:o}}function K1(e,t,n){let r=n.referencedRule,i=e.ruleToStartState.get(r),o=Je(e,t,n,{type:Tr}),s=Je(e,t,n,{type:Tr}),a=new ci(i,r,s);return em(o,a),{left:o,right:s}}function q1(e,t,n){let r=e.ruleToStartState.get(t);je(r,n.left);let i=e.ruleToStopState.get(t);return je(n.right,i),{left:r,right:i}}function je(e,t){let n=new Ia(t);em(e,n)}function Je(e,t,n,r){let i=Object.assign({atn:e,production:n,epsilonOnlyTransitions:!1,rule:t,transitions:[],nextTokenWithinRule:[],stateNumber:e.states.length},r);return e.states.push(i),i}function em(e,t){e.transitions.length===0&&(e.epsilonOnlyTransitions=t.isEpsilon()),e.transitions.push(t)}function Z1(e,t){e.states.splice(e.states.indexOf(t),1)}var Ra={},bo=class{constructor(){this.map={},this.configs=[]}get size(){return this.configs.length}finalize(){this.map={}}add(t){let n=tm(t);n in this.map||(this.map[n]=this.configs.length,this.configs.push(t))}get elements(){return this.configs}get alts(){return Nt(this.configs,t=>t.alt)}get key(){let t="";for(let n in this.map)t+=n+":";return t}};function tm(e,t=!0){return`${t?`a${e.alt}`:""}s${e.state.stateNumber}:${e.stack.map(n=>n.stateNumber.toString()).join("_")}`}function J1(e,t,n){for(var r=-1,i=e.length;++r<i;){var o=e[r],s=t(o);if(s!=null&&(a===void 0?s===s&&!yr(s):n(s,a)))var a=s,l=o}return l}var ev=J1;function Q1(e,t){return e<t}var tv=Q1;function eD(e){return e&&e.length?ev(e,Ro,tv):void 0}var nv=eD;var rv=dt?dt.isConcatSpreadable:void 0;function tD(e){return Te(e)||hr(e)||!!(rv&&e&&e[rv])}var iv=tD;function ov(e,t,n,r,i){var o=-1,s=e.length;for(n||(n=iv),i||(i=[]);++o<s;){var a=e[o];t>0&&n(a)?t>1?ov(a,t-1,n,r,i):hu(i,a):r||(i[i.length]=a)}return i}var Su=ov;function nD(e,t){return Su(Nt(e,t),1)}var sv=nD;function rD(e,t,n,r){for(var i=e.length,o=n+(r?1:-1);r?o--:++o<i;)if(t(e[o],o,e))return o;return-1}var av=rD;function iD(e){return e!==e}var lv=iD;function oD(e,t,n){for(var r=n-1,i=e.length;++r<i;)if(e[r]===t)return r;return-1}var cv=oD;function sD(e,t,n){return t===t?cv(e,t,n):av(e,lv,n)}var uv=sD;function aD(e,t){var n=e==null?0:e.length;return!!n&&uv(e,t,0)>-1}var fv=aD;function lD(e,t,n){for(var r=-1,i=e==null?0:e.length;++r<i;)if(n(t,e[r]))return!0;return!1}var dv=lD;function cD(){}var pv=cD;var uD=1/0,fD=gr&&1/_o(new gr([,-0]))[1]==uD?function(e){return new gr(e)}:pv,hv=fD;var dD=200;function pD(e,t,n){var r=-1,i=fv,o=e.length,s=!0,a=[],l=a;if(n)s=!1,i=dv;else if(o>=dD){var c=t?null:hv(e);if(c)return _o(c);s=!1,i=du,l=new fu}else l=t?[]:a;e:for(;++r<o;){var u=e[r],f=t?t(u):u;if(u=n||u!==0?u:0,s&&f===f){for(var d=l.length;d--;)if(l[d]===f)continue e;t&&l.push(f),a.push(u)}else i(l,f,n)||(l!==a&&l.push(f),a.push(u))}return a}var mv=pD;function hD(e,t){return e&&e.length?mv(e,Er(t,2)):[]}var gv=hD;function mD(e){var t=e==null?0:e.length;return t?Su(e,1):[]}var yv=mD;function gD(e,t){for(var n=-1,r=e==null?0:e.length;++n<r&&t(e[n],n,e)!==!1;);return e}var xv=gD;function yD(e){return typeof e=="function"?e:Ro}var Ev=yD;function xD(e,t){var n=Te(e)?xv:wr;return n(e,Ev(t))}var bu=xD;var ED="[object Map]",wD="[object Set]",TD=Object.prototype,_D=TD.hasOwnProperty;function vD(e){if(e==null)return!0;if(mr(e)&&(Te(e)||typeof e=="string"||typeof e.splice=="function"||si(e)||Ao(e)||hr(e)))return!e.length;var t=Aa(e);if(t==ED||t==wD)return!e.size;if(yu(e))return!xu(e).length;for(var n in e)if(_D.call(e,n))return!1;return!0}var wv=vD;function AD(e,t,n,r){var i=-1,o=e==null?0:e.length;for(r&&o&&(n=e[++i]);++i<o;)n=t(n,e[i],i,e);return n}var Tv=AD;function kD(e,t,n,r,i){return i(e,function(o,s,a){n=r?(r=!1,o):t(n,o,s,a)}),n}var _v=kD;function ID(e,t,n){var r=Te(e)?Tv:_v,i=arguments.length<3;return r(e,Er(t,4),n,i,wr)}var nm=ID;function RD(e,t){let n={};return r=>{let i=r.toString(),o=n[i];return o!==void 0||(o={atnStartState:e,decision:t,states:{}},n[i]=o),o}}var Nu=class{constructor(){this.predicates=[]}is(t){return t>=this.predicates.length||this.predicates[t]}set(t,n){this.predicates[t]=n}toString(){let t="",n=this.predicates.length;for(let r=0;r<n;r++)t+=this.predicates[r]===!0?"1":"0";return t}},vv=new Nu,Sa=class extends Nn{constructor(t){var n,r;super(),this.logging=(n=t?.logging)!==null&&n!==void 0?n:(i=>console.log(i)),this.incomplete=(r=t?.incomplete)!==null&&r!==void 0?r:!1}initialize(t){this.atn=q_(t.rules),this.dfas=ND(this.atn),this.callers=SD(this.atn)}validateAmbiguousAlternationAlternatives(){return[]}validateEmptyOrAlternatives(){return[]}buildLookaheadForAlternation(t){let{prodOccurrence:n,rule:r,hasPredicates:i,dynamicTokensEnabled:o}=t,s=this.dfas,a=this.logging,l=this.incomplete,c=ui(r,"Alternation",n),f=this.atn.decisionMap[c].decision,d=Nt(Wc({maxLookahead:1,occurrence:n,prodType:"Alternation",rule:r}),p=>Nt(p,m=>m[0]));if(Av(d,!1)&&!o){let p=nm(d,(m,g,E)=>(bu(g,x=>{x&&(m[x.tokenTypeIdx]=E,bu(x.categoryMatches,y=>{m[y]=E}))}),m),{});return i?function(m){var g;let E=this.LA_FAST(1),x=p[E.tokenTypeIdx];if(m!==void 0&&x!==void 0){let y=(g=m[x])===null||g===void 0?void 0:g.GATE;if(y!==void 0&&y.call(this)===!1)return}return x}:function(){let m=this.LA_FAST(1);return p[m.tokenTypeIdx]}}else return i?function(p){let m=new Nu,g=p===void 0?0:p.length;for(let x=0;x<g;x++){let y=p?.[x].GATE;m.set(x,y===void 0||y.call(this))}let E=rm.call(this,s,f,m,a,l);return typeof E=="number"?E:void 0}:function(){let p=rm.call(this,s,f,vv,a,l);return typeof p=="number"?p:void 0}}buildLookaheadForOptional(t){let{prodOccurrence:n,rule:r,prodType:i,dynamicTokensEnabled:o}=t,s=this.dfas,a=this.logging,l=this.incomplete,c=this.callers,u=ui(r,i,n),f=this.atn.decisionMap[u],d=f.decision,p=Nt(Wc({maxLookahead:1,occurrence:n,prodType:i,rule:r}),m=>Nt(m,g=>g[0]));if(Av(p)&&p[0][0]&&!o&&!bD(f,i,c)){let m=p[0],g=yv(m);if(g.length===1&&wv(g[0].categoryMatches)){let x=g[0].tokenTypeIdx;return function(){return this.LA_FAST(1).tokenTypeIdx===x}}else{let E=nm(g,(x,y)=>(y!==void 0&&(x[y.tokenTypeIdx]=!0,bu(y.categoryMatches,w=>{x[w]=!0})),x),{});return function(){let x=this.LA_FAST(1);return E[x.tokenTypeIdx]===!0}}}return function(){let m=rm.call(this,s,d,vv,a,l);return typeof m=="object"?!1:m===0}}};function Av(e,t=!0){let n=new Set;for(let r of e){let i=new Set;for(let o of r){if(o===void 0){if(t)break;return!1}let s=[o.tokenTypeIdx].concat(o.categoryMatches);for(let a of s)if(n.has(a)){if(!i.has(a))return!1}else n.add(a),i.add(a)}}return!0}function SD(e){let t=new Map;for(let n of e.states)for(let r of n.transitions)if(r instanceof ci){let i=t.get(r.rule);i===void 0&&(i=[],t.set(r.rule,i)),i.push(r.followState)}return t}function kv(e,t){let n=new Set,r=new Set,i=[e];for(;i.length>0;){let o=i.shift();if(!r.has(o)){if(r.add(o),o.type===_r){if(t!==void 0){let s=t.get(o.rule);s!==void 0&&i.push(...s)}continue}for(let s of o.transitions)if(s instanceof li){n.add(s.tokenType.tokenTypeIdx);for(let a of s.tokenType.categoryMatches)n.add(a)}else i.push(s.target)}}return n}function bD(e,t,n){let r=t==="RepetitionMandatoryWithSeparator",i=e.transitions[r?1:0],o=e.transitions[r?0:1];if(i===void 0||o===void 0)return!1;let s=kv(i.target),a=kv(o.target,n);for(let l of s)if(a.has(l))return!0;return!1}function ND(e){let t=e.decisionStates.length,n=Array(t);for(let r=0;r<t;r++)n[r]=RD(e.decisionStates[r],r);return n}function rm(e,t,n,r,i){let o=e[t](n),s=o.start;if(s===void 0){let l=XD(o.atnStartState);s=Sv(o,Rv(l)),o.start=s}return LD.apply(this,[o,s,n,r,i])}function LD(e,t,n,r,i){let o=t,s=1,a=[],l=this.LA_FAST(s++);for(;;){let c=MD(o,l);if(c===void 0&&(c=OD.apply(this,[e,o,l,s,n,r])),c===Ra)return DD(a,o,l);if(c.isAcceptState===!0){if(i===!0&&co(l,ut)){let u=KD(o,n);if(u!==void 0)return u}return c.prediction}o=c,a.push(l),l=this.LA(s++)}}function OD(e,t,n,r,i,o){let s=FD(t.configs,n,i);if(s.size===0)return Iv(e,t,n,Ra),Ra;let a=Rv(s),l=WD(s,i);if(l!==void 0)a.isAcceptState=!0,a.prediction=l,a.configs.uniqueAlt=l;else if(zD(s)){let c=nv(s.alts);a.isAcceptState=!0,a.prediction=c,a.configs.uniqueAlt=c,PD.apply(this,[e,r,s.alts,o])}return a=Iv(e,t,n,a),a}function PD(e,t,n,r){let i=[];for(let c=1;c<=t;c++)i.push(this.LA(c).tokenType);let o=e.atnStartState,s=o.rule,a=o.production,l=CD({topLevelRule:s,ambiguityIndices:n,production:a,prefixPath:i});r(l)}function CD(e){let t=Nt(e.prefixPath,i=>Rn(i)).join(", "),n=e.production.idx===0?"":e.production.idx,r=`Ambiguous Alternatives Detected: <${e.ambiguityIndices.join(", ")}> in <${$D(e.production)}${n}> inside <${e.topLevelRule.name}> Rule,
|
|
114
|
+
For further details.`);this.skipValidations=Object.hasOwn(n,"skipValidations")?n.skipValidations:ft.skipValidations}};wa.DEFER_DEFINITION_ERRORS_HANDLING=!1;ET(wa,[Hc,jc,qc,Zc,Qc,Jc,eu,tu,iu]);var Ta=class extends wa{constructor(t,n=ft){let r=Object.assign({},n);r.outputCst=!1,super(t,r)}};function PP(e,t){for(var n=-1,r=e==null?0:e.length,i=Array(r);++n<r;)i[n]=t(e[n],n,e);return i}var su=PP;function OP(){this.__data__=[],this.size=0}var wT=OP;function CP(e,t){return e===t||e!==e&&t!==t}var au=CP;function $P(e,t){for(var n=e.length;n--;)if(au(e[n][0],t))return n;return-1}var ur=$P;var DP=Array.prototype,MP=DP.splice;function FP(e){var t=this.__data__,n=ur(t,e);if(n<0)return!1;var r=t.length-1;return n==r?t.pop():MP.call(t,n,1),--this.size,!0}var TT=FP;function BP(e){var t=this.__data__,n=ur(t,e);return n<0?void 0:t[n][1]}var vT=BP;function WP(e){return ur(this.__data__,e)>-1}var _T=WP;function XP(e,t){var n=this.__data__,r=ur(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var AT=XP;function yo(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}yo.prototype.clear=wT;yo.prototype.delete=TT;yo.prototype.get=vT;yo.prototype.has=_T;yo.prototype.set=AT;var fr=yo;function UP(){this.__data__=new fr,this.size=0}var kT=UP;function GP(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}var IT=GP;function HP(e){return this.__data__.get(e)}var RT=HP;function zP(e){return this.__data__.has(e)}var ST=zP;var jP=typeof global=="object"&&global&&global.Object===Object&&global,lu=jP;var YP=typeof self=="object"&&self&&self.Object===Object&&self,VP=lu||YP||Function("return this")(),Ze=VP;var KP=Ze.Symbol,dt=KP;var bT=Object.prototype,qP=bT.hasOwnProperty,ZP=bT.toString,va=dt?dt.toStringTag:void 0;function JP(e){var t=qP.call(e,va),n=e[va];try{e[va]=void 0;var r=!0}catch{}var i=ZP.call(e);return r&&(t?e[va]=n:delete e[va]),i}var NT=JP;var QP=Object.prototype,eO=QP.toString;function tO(e){return eO.call(e)}var LT=tO;var nO="[object Null]",rO="[object Undefined]",PT=dt?dt.toStringTag:void 0;function iO(e){return e==null?e===void 0?rO:nO:PT&&PT in Object(e)?NT(e):LT(e)}var Kt=iO;function oO(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var xo=oO;var sO="[object AsyncFunction]",aO="[object Function]",lO="[object GeneratorFunction]",cO="[object Proxy]";function uO(e){if(!xo(e))return!1;var t=Kt(e);return t==aO||t==lO||t==sO||t==cO}var cu=uO;var fO=Ze["__core-js_shared__"],uu=fO;var OT=(function(){var e=/[^.]+$/.exec(uu&&uu.keys&&uu.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""})();function dO(e){return!!OT&&OT in e}var CT=dO;var pO=Function.prototype,hO=pO.toString;function mO(e){if(e!=null){try{return hO.call(e)}catch{}try{return e+""}catch{}}return""}var Pn=mO;var gO=/[\\^$.*+?()[\]{}|]/g,yO=/^\[object .+?Constructor\]$/,xO=Function.prototype,EO=Object.prototype,wO=xO.toString,TO=EO.hasOwnProperty,vO=RegExp("^"+wO.call(TO).replace(gO,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function _O(e){if(!xo(e)||CT(e))return!1;var t=cu(e)?vO:yO;return t.test(Pn(e))}var $T=_O;function AO(e,t){return e?.[t]}var DT=AO;function kO(e,t){var n=DT(e,t);return $T(n)?n:void 0}var Bt=kO;var IO=Bt(Ze,"Map"),dr=IO;var RO=Bt(Object,"create"),On=RO;function SO(){this.__data__=On?On(null):{},this.size=0}var MT=SO;function bO(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var FT=bO;var NO="__lodash_hash_undefined__",LO=Object.prototype,PO=LO.hasOwnProperty;function OO(e){var t=this.__data__;if(On){var n=t[e];return n===NO?void 0:n}return PO.call(t,e)?t[e]:void 0}var BT=OO;var CO=Object.prototype,$O=CO.hasOwnProperty;function DO(e){var t=this.__data__;return On?t[e]!==void 0:$O.call(t,e)}var WT=DO;var MO="__lodash_hash_undefined__";function FO(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=On&&t===void 0?MO:t,this}var XT=FO;function Eo(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}Eo.prototype.clear=MT;Eo.prototype.delete=FT;Eo.prototype.get=BT;Eo.prototype.has=WT;Eo.prototype.set=XT;var Vh=Eo;function BO(){this.size=0,this.__data__={hash:new Vh,map:new(dr||fr),string:new Vh}}var UT=BO;function WO(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}var GT=WO;function XO(e,t){var n=e.__data__;return GT(t)?n[typeof t=="string"?"string":"hash"]:n.map}var pr=XO;function UO(e){var t=pr(this,e).delete(e);return this.size-=t?1:0,t}var HT=UO;function GO(e){return pr(this,e).get(e)}var zT=GO;function HO(e){return pr(this,e).has(e)}var jT=HO;function zO(e,t){var n=pr(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var YT=zO;function wo(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}wo.prototype.clear=UT;wo.prototype.delete=HT;wo.prototype.get=zT;wo.prototype.has=jT;wo.prototype.set=YT;var oi=wo;var jO=200;function YO(e,t){var n=this.__data__;if(n instanceof fr){var r=n.__data__;if(!dr||r.length<jO-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new oi(r)}return n.set(e,t),this.size=n.size,this}var VT=YO;function To(e){var t=this.__data__=new fr(e);this.size=t.size}To.prototype.clear=kT;To.prototype.delete=IT;To.prototype.get=RT;To.prototype.has=ST;To.prototype.set=VT;var vo=To;var VO="__lodash_hash_undefined__";function KO(e){return this.__data__.set(e,VO),this}var KT=KO;function qO(e){return this.__data__.has(e)}var qT=qO;function fu(e){var t=-1,n=e==null?0:e.length;for(this.__data__=new oi;++t<n;)this.add(e[t])}fu.prototype.add=fu.prototype.push=KT;fu.prototype.has=qT;var du=fu;function ZO(e,t){for(var n=-1,r=e==null?0:e.length;++n<r;)if(t(e[n],n,e))return!0;return!1}var ZT=ZO;function JO(e,t){return e.has(t)}var pu=JO;var QO=1,eC=2;function tC(e,t,n,r,i,o){var s=n&QO,a=e.length,l=t.length;if(a!=l&&!(s&&l>a))return!1;var c=o.get(e),u=o.get(t);if(c&&u)return c==t&&u==e;var f=-1,d=!0,p=n&eC?new du:void 0;for(o.set(e,t),o.set(t,e);++f<a;){var m=e[f],g=t[f];if(r)var w=s?r(g,m,f,t,e,o):r(m,g,f,e,t,o);if(w!==void 0){if(w)continue;d=!1;break}if(p){if(!ZT(t,function(x,y){if(!pu(p,y)&&(m===x||i(m,x,n,r,o)))return p.push(y)})){d=!1;break}}else if(!(m===g||i(m,g,n,r,o))){d=!1;break}}return o.delete(e),o.delete(t),d}var hu=tC;var nC=Ze.Uint8Array,Kh=nC;function rC(e){var t=-1,n=Array(e.size);return e.forEach(function(r,i){n[++t]=[i,r]}),n}var JT=rC;function iC(e){var t=-1,n=Array(e.size);return e.forEach(function(r){n[++t]=r}),n}var _o=iC;var oC=1,sC=2,aC="[object Boolean]",lC="[object Date]",cC="[object Error]",uC="[object Map]",fC="[object Number]",dC="[object RegExp]",pC="[object Set]",hC="[object String]",mC="[object Symbol]",gC="[object ArrayBuffer]",yC="[object DataView]",QT=dt?dt.prototype:void 0,qh=QT?QT.valueOf:void 0;function xC(e,t,n,r,i,o,s){switch(n){case yC:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case gC:return!(e.byteLength!=t.byteLength||!o(new Kh(e),new Kh(t)));case aC:case lC:case fC:return au(+e,+t);case cC:return e.name==t.name&&e.message==t.message;case dC:case hC:return e==t+"";case uC:var a=JT;case pC:var l=r&oC;if(a||(a=_o),e.size!=t.size&&!l)return!1;var c=s.get(e);if(c)return c==t;r|=sC,s.set(e,t);var u=hu(a(e),a(t),r,i,o,s);return s.delete(e),u;case mC:if(qh)return qh.call(e)==qh.call(t)}return!1}var ev=xC;function EC(e,t){for(var n=-1,r=t.length,i=e.length;++n<r;)e[i+n]=t[n];return e}var mu=EC;var wC=Array.isArray,Te=wC;function TC(e,t,n){var r=t(e);return Te(e)?r:mu(r,n(e))}var tv=TC;function vC(e,t){for(var n=-1,r=e==null?0:e.length,i=0,o=[];++n<r;){var s=e[n];t(s,n,e)&&(o[i++]=s)}return o}var gu=vC;function _C(){return[]}var nv=_C;var AC=Object.prototype,kC=AC.propertyIsEnumerable,rv=Object.getOwnPropertySymbols,IC=rv?function(e){return e==null?[]:(e=Object(e),gu(rv(e),function(t){return kC.call(e,t)}))}:nv,iv=IC;function RC(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}var ov=RC;function SC(e){return e!=null&&typeof e=="object"}var qt=SC;var bC="[object Arguments]";function NC(e){return qt(e)&&Kt(e)==bC}var Zh=NC;var sv=Object.prototype,LC=sv.hasOwnProperty,PC=sv.propertyIsEnumerable,OC=Zh((function(){return arguments})())?Zh:function(e){return qt(e)&&LC.call(e,"callee")&&!PC.call(e,"callee")},hr=OC;function CC(){return!1}var av=CC;var uv=typeof exports=="object"&&exports&&!exports.nodeType&&exports,lv=uv&&typeof module=="object"&&module&&!module.nodeType&&module,$C=lv&&lv.exports===uv,cv=$C?Ze.Buffer:void 0,DC=cv?cv.isBuffer:void 0,MC=DC||av,si=MC;var FC=9007199254740991,BC=/^(?:0|[1-9]\d*)$/;function WC(e,t){var n=typeof e;return t=t??FC,!!t&&(n=="number"||n!="symbol"&&BC.test(e))&&e>-1&&e%1==0&&e<t}var yu=WC;var XC=9007199254740991;function UC(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=XC}var Ao=UC;var GC="[object Arguments]",HC="[object Array]",zC="[object Boolean]",jC="[object Date]",YC="[object Error]",VC="[object Function]",KC="[object Map]",qC="[object Number]",ZC="[object Object]",JC="[object RegExp]",QC="[object Set]",e$="[object String]",t$="[object WeakMap]",n$="[object ArrayBuffer]",r$="[object DataView]",i$="[object Float32Array]",o$="[object Float64Array]",s$="[object Int8Array]",a$="[object Int16Array]",l$="[object Int32Array]",c$="[object Uint8Array]",u$="[object Uint8ClampedArray]",f$="[object Uint16Array]",d$="[object Uint32Array]",Pe={};Pe[i$]=Pe[o$]=Pe[s$]=Pe[a$]=Pe[l$]=Pe[c$]=Pe[u$]=Pe[f$]=Pe[d$]=!0;Pe[GC]=Pe[HC]=Pe[n$]=Pe[zC]=Pe[r$]=Pe[jC]=Pe[YC]=Pe[VC]=Pe[KC]=Pe[qC]=Pe[ZC]=Pe[JC]=Pe[QC]=Pe[e$]=Pe[t$]=!1;function p$(e){return qt(e)&&Ao(e.length)&&!!Pe[Kt(e)]}var fv=p$;function h$(e){return function(t){return e(t)}}var dv=h$;var pv=typeof exports=="object"&&exports&&!exports.nodeType&&exports,_a=pv&&typeof module=="object"&&module&&!module.nodeType&&module,m$=_a&&_a.exports===pv,Jh=m$&&lu.process,g$=(function(){try{var e=_a&&_a.require&&_a.require("util").types;return e||Jh&&Jh.binding&&Jh.binding("util")}catch{}})(),Qh=g$;var hv=Qh&&Qh.isTypedArray,y$=hv?dv(hv):fv,ko=y$;var x$=Object.prototype,E$=x$.hasOwnProperty;function w$(e,t){var n=Te(e),r=!n&&hr(e),i=!n&&!r&&si(e),o=!n&&!r&&!i&&ko(e),s=n||r||i||o,a=s?ov(e.length,String):[],l=a.length;for(var c in e)(t||E$.call(e,c))&&!(s&&(c=="length"||i&&(c=="offset"||c=="parent")||o&&(c=="buffer"||c=="byteLength"||c=="byteOffset")||yu(c,l)))&&a.push(c);return a}var mv=w$;var T$=Object.prototype;function v$(e){var t=e&&e.constructor,n=typeof t=="function"&&t.prototype||T$;return e===n}var xu=v$;function _$(e,t){return function(n){return e(t(n))}}var gv=_$;var A$=gv(Object.keys,Object),yv=A$;var k$=Object.prototype,I$=k$.hasOwnProperty;function R$(e){if(!xu(e))return yv(e);var t=[];for(var n in Object(e))I$.call(e,n)&&n!="constructor"&&t.push(n);return t}var Eu=R$;function S$(e){return e!=null&&Ao(e.length)&&!cu(e)}var mr=S$;function b$(e){return mr(e)?mv(e):Eu(e)}var Io=b$;function N$(e){return tv(e,Io,iv)}var em=N$;var L$=1,P$=Object.prototype,O$=P$.hasOwnProperty;function C$(e,t,n,r,i,o){var s=n&L$,a=em(e),l=a.length,c=em(t),u=c.length;if(l!=u&&!s)return!1;for(var f=l;f--;){var d=a[f];if(!(s?d in t:O$.call(t,d)))return!1}var p=o.get(e),m=o.get(t);if(p&&m)return p==t&&m==e;var g=!0;o.set(e,t),o.set(t,e);for(var w=s;++f<l;){d=a[f];var x=e[d],y=t[d];if(r)var E=s?r(y,x,d,t,e,o):r(x,y,d,e,t,o);if(!(E===void 0?x===y||i(x,y,n,r,o):E)){g=!1;break}w||(w=d=="constructor")}if(g&&!w){var _=e.constructor,T=t.constructor;_!=T&&"constructor"in e&&"constructor"in t&&!(typeof _=="function"&&_ instanceof _&&typeof T=="function"&&T instanceof T)&&(g=!1)}return o.delete(e),o.delete(t),g}var xv=C$;var $$=Bt(Ze,"DataView"),wu=$$;var D$=Bt(Ze,"Promise"),Tu=D$;var M$=Bt(Ze,"Set"),gr=M$;var F$=Bt(Ze,"WeakMap"),vu=F$;var Ev="[object Map]",B$="[object Object]",wv="[object Promise]",Tv="[object Set]",vv="[object WeakMap]",_v="[object DataView]",W$=Pn(wu),X$=Pn(dr),U$=Pn(Tu),G$=Pn(gr),H$=Pn(vu),ai=Kt;(wu&&ai(new wu(new ArrayBuffer(1)))!=_v||dr&&ai(new dr)!=Ev||Tu&&ai(Tu.resolve())!=wv||gr&&ai(new gr)!=Tv||vu&&ai(new vu)!=vv)&&(ai=function(e){var t=Kt(e),n=t==B$?e.constructor:void 0,r=n?Pn(n):"";if(r)switch(r){case W$:return _v;case X$:return Ev;case U$:return wv;case G$:return Tv;case H$:return vv}return t});var Aa=ai;var z$=1,Av="[object Arguments]",kv="[object Array]",_u="[object Object]",j$=Object.prototype,Iv=j$.hasOwnProperty;function Y$(e,t,n,r,i,o){var s=Te(e),a=Te(t),l=s?kv:Aa(e),c=a?kv:Aa(t);l=l==Av?_u:l,c=c==Av?_u:c;var u=l==_u,f=c==_u,d=l==c;if(d&&si(e)){if(!si(t))return!1;s=!0,u=!1}if(d&&!u)return o||(o=new vo),s||ko(e)?hu(e,t,n,r,i,o):ev(e,t,l,n,r,i,o);if(!(n&z$)){var p=u&&Iv.call(e,"__wrapped__"),m=f&&Iv.call(t,"__wrapped__");if(p||m){var g=p?e.value():e,w=m?t.value():t;return o||(o=new vo),i(g,w,n,r,o)}}return d?(o||(o=new vo),xv(e,t,n,r,i,o)):!1}var Rv=Y$;function Sv(e,t,n,r,i){return e===t?!0:e==null||t==null||!qt(e)&&!qt(t)?e!==e&&t!==t:Rv(e,t,n,r,Sv,i)}var Au=Sv;var V$=1,K$=2;function q$(e,t,n,r){var i=n.length,o=i,s=!r;if(e==null)return!o;for(e=Object(e);i--;){var a=n[i];if(s&&a[2]?a[1]!==e[a[0]]:!(a[0]in e))return!1}for(;++i<o;){a=n[i];var l=a[0],c=e[l],u=a[1];if(s&&a[2]){if(c===void 0&&!(l in e))return!1}else{var f=new vo;if(r)var d=r(c,u,l,e,t,f);if(!(d===void 0?Au(u,c,V$|K$,r,f):d))return!1}}return!0}var bv=q$;function Z$(e){return e===e&&!xo(e)}var ku=Z$;function J$(e){for(var t=Io(e),n=t.length;n--;){var r=t[n],i=e[r];t[n]=[r,i,ku(i)]}return t}var Nv=J$;function Q$(e,t){return function(n){return n==null?!1:n[e]===t&&(t!==void 0||e in Object(n))}}var Iu=Q$;function e1(e){var t=Nv(e);return t.length==1&&t[0][2]?Iu(t[0][0],t[0][1]):function(n){return n===e||bv(n,e,t)}}var Lv=e1;var t1="[object Symbol]";function n1(e){return typeof e=="symbol"||qt(e)&&Kt(e)==t1}var yr=n1;var r1=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,i1=/^\w*$/;function o1(e,t){if(Te(e))return!1;var n=typeof e;return n=="number"||n=="symbol"||n=="boolean"||e==null||yr(e)?!0:i1.test(e)||!r1.test(e)||t!=null&&e in Object(t)}var Ro=o1;var s1="Expected a function";function tm(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(s1);var n=function(){var r=arguments,i=t?t.apply(this,r):r[0],o=n.cache;if(o.has(i))return o.get(i);var s=e.apply(this,r);return n.cache=o.set(i,s)||o,s};return n.cache=new(tm.Cache||oi),n}tm.Cache=oi;var Pv=tm;var a1=500;function l1(e){var t=Pv(e,function(r){return n.size===a1&&n.clear(),r}),n=t.cache;return t}var Ov=l1;var c1=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,u1=/\\(\\)?/g,f1=Ov(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(c1,function(n,r,i,o){t.push(i?o.replace(u1,"$1"):r||n)}),t}),Cv=f1;var d1=1/0,$v=dt?dt.prototype:void 0,Dv=$v?$v.toString:void 0;function Mv(e){if(typeof e=="string")return e;if(Te(e))return su(e,Mv)+"";if(yr(e))return Dv?Dv.call(e):"";var t=e+"";return t=="0"&&1/e==-d1?"-0":t}var Fv=Mv;function p1(e){return e==null?"":Fv(e)}var Bv=p1;function h1(e,t){return Te(e)?e:Ro(e,t)?[e]:Cv(Bv(e))}var Ru=h1;var m1=1/0;function g1(e){if(typeof e=="string"||yr(e))return e;var t=e+"";return t=="0"&&1/e==-m1?"-0":t}var xr=g1;function y1(e,t){t=Ru(t,e);for(var n=0,r=t.length;e!=null&&n<r;)e=e[xr(t[n++])];return n&&n==r?e:void 0}var Su=y1;function x1(e,t,n){var r=e==null?void 0:Su(e,t);return r===void 0?n:r}var Wv=x1;function E1(e,t){return e!=null&&t in Object(e)}var Xv=E1;function w1(e,t,n){t=Ru(t,e);for(var r=-1,i=t.length,o=!1;++r<i;){var s=xr(t[r]);if(!(o=e!=null&&n(e,s)))break;e=e[s]}return o||++r!=i?o:(i=e==null?0:e.length,!!i&&Ao(i)&&yu(s,i)&&(Te(e)||hr(e)))}var Uv=w1;function T1(e,t){return e!=null&&Uv(e,t,Xv)}var Gv=T1;var v1=1,_1=2;function A1(e,t){return Ro(e)&&ku(t)?Iu(xr(e),t):function(n){var r=Wv(n,e);return r===void 0&&r===t?Gv(n,e):Au(t,r,v1|_1)}}var Hv=A1;function k1(e){return e}var So=k1;function I1(e){return function(t){return t?.[e]}}var zv=I1;function R1(e){return function(t){return Su(t,e)}}var jv=R1;function S1(e){return Ro(e)?zv(xr(e)):jv(e)}var Yv=S1;function b1(e){return typeof e=="function"?e:e==null?So:typeof e=="object"?Te(e)?Hv(e[0],e[1]):Lv(e):Yv(e)}var Er=b1;function N1(e){return function(t,n,r){for(var i=-1,o=Object(t),s=r(t),a=s.length;a--;){var l=s[e?a:++i];if(n(o[l],l,o)===!1)break}return t}}var Vv=N1;var L1=Vv(),Kv=L1;function P1(e,t){return e&&Kv(e,t,Io)}var qv=P1;function O1(e,t){return function(n,r){if(n==null)return n;if(!mr(n))return e(n,r);for(var i=n.length,o=t?i:-1,s=Object(n);(t?o--:++o<i)&&r(s[o],o,s)!==!1;);return n}}var Zv=O1;var C1=Zv(qv),wr=C1;function $1(e,t){var n=-1,r=mr(e)?Array(e.length):[];return wr(e,function(i,o,s){r[++n]=t(i,o,s)}),r}var Jv=$1;function D1(e,t){var n=Te(e)?su:Jv;return n(e,Er(t,3))}var Nt=D1;function M1(e,t){var n=[];return wr(e,function(r,i,o){t(r,i,o)&&n.push(r)}),n}var Qv=M1;function F1(e,t){var n=Te(e)?gu:Qv;return n(e,Er(t,3))}var e_=F1;function ui(e,t,n){return`${e.name}_${t}_${n}`}var Tr=1,B1=2,t_=4,n_=5;var vr=7,W1=8,X1=9,U1=10,G1=11,r_=12,ka=class{constructor(t){this.target=t}isEpsilon(){return!1}},li=class extends ka{constructor(t,n){super(t),this.tokenType=n}},Ia=class extends ka{constructor(t){super(t)}isEpsilon(){return!0}},ci=class extends ka{constructor(t,n,r){super(t),this.rule=n,this.followState=r}isEpsilon(){return!0}};function i_(e){let t={decisionMap:{},decisionStates:[],ruleToStartState:new Map,ruleToStopState:new Map,states:[]};H1(t,e);let n=e.length;for(let r=0;r<n;r++){let i=e[r],o=fi(t,i,i);o!==void 0&&tD(t,i,o)}return t}function H1(e,t){let n=t.length;for(let r=0;r<n;r++){let i=t[r],o=Je(e,i,void 0,{type:B1}),s=Je(e,i,void 0,{type:vr});o.stop=s,e.ruleToStartState.set(i,o),e.ruleToStopState.set(i,s)}}function o_(e,t,n){return n instanceof ue?nm(e,t,n.terminalType,n):n instanceof Ee?eD(e,t,n):n instanceof Ie?K1(e,t,n):n instanceof we?q1(e,t,n):n instanceof ge?z1(e,t,n):n instanceof ke?j1(e,t,n):n instanceof Ne?Y1(e,t,n):n instanceof Le?V1(e,t,n):fi(e,t,n)}function z1(e,t,n){let r=Je(e,t,n,{type:n_});_r(e,r);let i=bo(e,t,r,n,fi(e,t,n));return a_(e,t,n,i)}function j1(e,t,n){let r=Je(e,t,n,{type:n_});_r(e,r);let i=bo(e,t,r,n,fi(e,t,n)),o=nm(e,t,n.separator,n);return a_(e,t,n,i,o)}function Y1(e,t,n){let r=Je(e,t,n,{type:t_});_r(e,r);let i=bo(e,t,r,n,fi(e,t,n));return s_(e,t,n,i)}function V1(e,t,n){let r=Je(e,t,n,{type:t_});_r(e,r);let i=bo(e,t,r,n,fi(e,t,n)),o=nm(e,t,n.separator,n);return s_(e,t,n,i,o)}function K1(e,t,n){let r=Je(e,t,n,{type:Tr});_r(e,r);let i=Nt(n.definition,s=>o_(e,t,s));return bo(e,t,r,n,...i)}function q1(e,t,n){let r=Je(e,t,n,{type:Tr});_r(e,r);let i=bo(e,t,r,n,fi(e,t,n));return Z1(e,t,n,i)}function fi(e,t,n){let r=e_(Nt(n.definition,i=>o_(e,t,i)),i=>i!==void 0);return r.length===1?r[0]:r.length===0?void 0:Q1(e,r)}function s_(e,t,n,r,i){let o=r.left,s=r.right,a=Je(e,t,n,{type:G1});_r(e,a);let l=Je(e,t,n,{type:r_});return o.loopback=a,l.loopback=a,e.decisionMap[ui(t,i?"RepetitionMandatoryWithSeparator":"RepetitionMandatory",n.idx)]=a,je(s,a),i===void 0?(je(a,o),je(a,l)):(je(a,l),je(a,i.left),je(i.right,o)),{left:o,right:l}}function a_(e,t,n,r,i){let o=r.left,s=r.right,a=Je(e,t,n,{type:U1});_r(e,a);let l=Je(e,t,n,{type:r_}),c=Je(e,t,n,{type:X1});return a.loopback=c,l.loopback=c,je(a,o),je(a,l),je(s,c),i!==void 0?(je(c,l),je(c,i.left),je(i.right,o)):je(c,a),e.decisionMap[ui(t,i?"RepetitionWithSeparator":"Repetition",n.idx)]=a,{left:a,right:l}}function Z1(e,t,n,r){let i=r.left,o=r.right;return je(i,o),e.decisionMap[ui(t,"Option",n.idx)]=i,r}function _r(e,t){return e.decisionStates.push(t),t.decision=e.decisionStates.length-1,t.decision}function bo(e,t,n,r,...i){let o=Je(e,t,r,{type:W1,start:n});n.end=o;for(let a of i)a!==void 0?(je(n,a.left),je(a.right,o)):je(n,o);let s={left:n,right:o};return e.decisionMap[ui(t,J1(r),r.idx)]=n,s}function J1(e){if(e instanceof Ie)return"Alternation";if(e instanceof we)return"Option";if(e instanceof ge)return"Repetition";if(e instanceof ke)return"RepetitionWithSeparator";if(e instanceof Ne)return"RepetitionMandatory";if(e instanceof Le)return"RepetitionMandatoryWithSeparator";throw new Error("Invalid production type encountered")}function Q1(e,t){let n=t.length;for(let o=0;o<n-1;o++){let s=t[o],a;s.left.transitions.length===1&&(a=s.left.transitions[0]);let l=a instanceof ci,c=a,u=t[o+1].left;s.left.type===Tr&&s.right.type===Tr&&a!==void 0&&(l&&c.followState===s.right||a.target===s.right)?(l?c.followState=u:a.target=u,nD(e,s.right)):je(s.right,u)}let r=t[0],i=t[n-1];return{left:r.left,right:i.right}}function nm(e,t,n,r){let i=Je(e,t,r,{type:Tr}),o=Je(e,t,r,{type:Tr});return rm(i,new li(o,n)),{left:i,right:o}}function eD(e,t,n){let r=n.referencedRule,i=e.ruleToStartState.get(r),o=Je(e,t,n,{type:Tr}),s=Je(e,t,n,{type:Tr}),a=new ci(i,r,s);return rm(o,a),{left:o,right:s}}function tD(e,t,n){let r=e.ruleToStartState.get(t);je(r,n.left);let i=e.ruleToStopState.get(t);return je(n.right,i),{left:r,right:i}}function je(e,t){let n=new Ia(t);rm(e,n)}function Je(e,t,n,r){let i=Object.assign({atn:e,production:n,epsilonOnlyTransitions:!1,rule:t,transitions:[],nextTokenWithinRule:[],stateNumber:e.states.length},r);return e.states.push(i),i}function rm(e,t){e.transitions.length===0&&(e.epsilonOnlyTransitions=t.isEpsilon()),e.transitions.push(t)}function nD(e,t){e.states.splice(e.states.indexOf(t),1)}var Ra={},No=class{constructor(){this.map={},this.configs=[]}get size(){return this.configs.length}finalize(){this.map={}}add(t){let n=im(t);n in this.map||(this.map[n]=this.configs.length,this.configs.push(t))}get elements(){return this.configs}get alts(){return Nt(this.configs,t=>t.alt)}get key(){let t="";for(let n in this.map)t+=n+":";return t}};function im(e,t=!0){return`${t?`a${e.alt}`:""}s${e.state.stateNumber}:${e.stack.map(n=>n.stateNumber.toString()).join("_")}`}function rD(e,t,n){for(var r=-1,i=e.length;++r<i;){var o=e[r],s=t(o);if(s!=null&&(a===void 0?s===s&&!yr(s):n(s,a)))var a=s,l=o}return l}var l_=rD;function iD(e,t){return e<t}var c_=iD;function oD(e){return e&&e.length?l_(e,So,c_):void 0}var u_=oD;var f_=dt?dt.isConcatSpreadable:void 0;function sD(e){return Te(e)||hr(e)||!!(f_&&e&&e[f_])}var d_=sD;function p_(e,t,n,r,i){var o=-1,s=e.length;for(n||(n=d_),i||(i=[]);++o<s;){var a=e[o];t>0&&n(a)?t>1?p_(a,t-1,n,r,i):mu(i,a):r||(i[i.length]=a)}return i}var bu=p_;function aD(e,t){return bu(Nt(e,t),1)}var h_=aD;function lD(e,t,n,r){for(var i=e.length,o=n+(r?1:-1);r?o--:++o<i;)if(t(e[o],o,e))return o;return-1}var m_=lD;function cD(e){return e!==e}var g_=cD;function uD(e,t,n){for(var r=n-1,i=e.length;++r<i;)if(e[r]===t)return r;return-1}var y_=uD;function fD(e,t,n){return t===t?y_(e,t,n):m_(e,g_,n)}var x_=fD;function dD(e,t){var n=e==null?0:e.length;return!!n&&x_(e,t,0)>-1}var E_=dD;function pD(e,t,n){for(var r=-1,i=e==null?0:e.length;++r<i;)if(n(t,e[r]))return!0;return!1}var w_=pD;function hD(){}var T_=hD;var mD=1/0,gD=gr&&1/_o(new gr([,-0]))[1]==mD?function(e){return new gr(e)}:T_,v_=gD;var yD=200;function xD(e,t,n){var r=-1,i=E_,o=e.length,s=!0,a=[],l=a;if(n)s=!1,i=w_;else if(o>=yD){var c=t?null:v_(e);if(c)return _o(c);s=!1,i=pu,l=new du}else l=t?[]:a;e:for(;++r<o;){var u=e[r],f=t?t(u):u;if(u=n||u!==0?u:0,s&&f===f){for(var d=l.length;d--;)if(l[d]===f)continue e;t&&l.push(f),a.push(u)}else i(l,f,n)||(l!==a&&l.push(f),a.push(u))}return a}var __=xD;function ED(e,t){return e&&e.length?__(e,Er(t,2)):[]}var A_=ED;function wD(e){var t=e==null?0:e.length;return t?bu(e,1):[]}var k_=wD;function TD(e,t){for(var n=-1,r=e==null?0:e.length;++n<r&&t(e[n],n,e)!==!1;);return e}var I_=TD;function vD(e){return typeof e=="function"?e:So}var R_=vD;function _D(e,t){var n=Te(e)?I_:wr;return n(e,R_(t))}var Nu=_D;var AD="[object Map]",kD="[object Set]",ID=Object.prototype,RD=ID.hasOwnProperty;function SD(e){if(e==null)return!0;if(mr(e)&&(Te(e)||typeof e=="string"||typeof e.splice=="function"||si(e)||ko(e)||hr(e)))return!e.length;var t=Aa(e);if(t==AD||t==kD)return!e.size;if(xu(e))return!Eu(e).length;for(var n in e)if(RD.call(e,n))return!1;return!0}var S_=SD;function bD(e,t,n,r){var i=-1,o=e==null?0:e.length;for(r&&o&&(n=e[++i]);++i<o;)n=t(n,e[i],i,e);return n}var b_=bD;function ND(e,t,n,r,i){return i(e,function(o,s,a){n=r?(r=!1,o):t(n,o,s,a)}),n}var N_=ND;function LD(e,t,n){var r=Te(e)?b_:N_,i=arguments.length<3;return r(e,Er(t,4),n,i,wr)}var om=LD;function PD(e,t){let n={};return r=>{let i=r.toString(),o=n[i];return o!==void 0||(o={atnStartState:e,decision:t,states:{}},n[i]=o),o}}var Lu=class{constructor(){this.predicates=[]}is(t){return t>=this.predicates.length||this.predicates[t]}set(t,n){this.predicates[t]=n}toString(){let t="",n=this.predicates.length;for(let r=0;r<n;r++)t+=this.predicates[r]===!0?"1":"0";return t}},L_=new Lu,Sa=class extends Nn{constructor(t){var n,r;super(),this.logging=(n=t?.logging)!==null&&n!==void 0?n:(i=>console.log(i)),this.incomplete=(r=t?.incomplete)!==null&&r!==void 0?r:!1}initialize(t){this.atn=i_(t.rules),this.dfas=$D(this.atn),this.callers=OD(this.atn)}validateAmbiguousAlternationAlternatives(){return[]}validateEmptyOrAlternatives(){return[]}buildLookaheadForAlternation(t){let{prodOccurrence:n,rule:r,hasPredicates:i,dynamicTokensEnabled:o}=t,s=this.dfas,a=this.logging,l=this.incomplete,c=ui(r,"Alternation",n),f=this.atn.decisionMap[c].decision,d=Nt(Xc({maxLookahead:1,occurrence:n,prodType:"Alternation",rule:r}),p=>Nt(p,m=>m[0]));if(P_(d,!1)&&!o){let p=om(d,(m,g,w)=>(Nu(g,x=>{x&&(m[x.tokenTypeIdx]=w,Nu(x.categoryMatches,y=>{m[y]=w}))}),m),{});return i?function(m){var g;let w=this.LA_FAST(1),x=p[w.tokenTypeIdx];if(m!==void 0&&x!==void 0){let y=(g=m[x])===null||g===void 0?void 0:g.GATE;if(y!==void 0&&y.call(this)===!1)return}return x}:function(){let m=this.LA_FAST(1);return p[m.tokenTypeIdx]}}else return i?function(p){let m=new Lu,g=p===void 0?0:p.length;for(let x=0;x<g;x++){let y=p?.[x].GATE;m.set(x,y===void 0||y.call(this))}let w=sm.call(this,s,f,m,a,l);return typeof w=="number"?w:void 0}:function(){let p=sm.call(this,s,f,L_,a,l);return typeof p=="number"?p:void 0}}buildLookaheadForOptional(t){let{prodOccurrence:n,rule:r,prodType:i,dynamicTokensEnabled:o}=t,s=this.dfas,a=this.logging,l=this.incomplete,c=this.callers,u=ui(r,i,n),f=this.atn.decisionMap[u],d=f.decision,p=Nt(Xc({maxLookahead:1,occurrence:n,prodType:i,rule:r}),m=>Nt(m,g=>g[0]));if(P_(p)&&p[0][0]&&!o&&!CD(f,i,c)){let m=p[0],g=k_(m);if(g.length===1&&S_(g[0].categoryMatches)){let x=g[0].tokenTypeIdx;return function(){return this.LA_FAST(1).tokenTypeIdx===x}}else{let w=om(g,(x,y)=>(y!==void 0&&(x[y.tokenTypeIdx]=!0,Nu(y.categoryMatches,E=>{x[E]=!0})),x),{});return function(){let x=this.LA_FAST(1);return w[x.tokenTypeIdx]===!0}}}return function(){let m=sm.call(this,s,d,L_,a,l);return typeof m=="object"?!1:m===0}}};function P_(e,t=!0){let n=new Set;for(let r of e){let i=new Set;for(let o of r){if(o===void 0){if(t)break;return!1}let s=[o.tokenTypeIdx].concat(o.categoryMatches);for(let a of s)if(n.has(a)){if(!i.has(a))return!1}else n.add(a),i.add(a)}}return!0}function OD(e){let t=new Map;for(let n of e.states)for(let r of n.transitions)if(r instanceof ci){let i=t.get(r.rule);i===void 0&&(i=[],t.set(r.rule,i)),i.push(r.followState)}return t}function O_(e,t){let n=new Set,r=new Set,i=[e];for(;i.length>0;){let o=i.shift();if(!r.has(o)){if(r.add(o),o.type===vr){if(t!==void 0){let s=t.get(o.rule);s!==void 0&&i.push(...s)}continue}for(let s of o.transitions)if(s instanceof li){n.add(s.tokenType.tokenTypeIdx);for(let a of s.tokenType.categoryMatches)n.add(a)}else i.push(s.target)}}return n}function CD(e,t,n){let r=t==="RepetitionMandatoryWithSeparator",i=e.transitions[r?1:0],o=e.transitions[r?0:1];if(i===void 0||o===void 0)return!1;let s=O_(i.target),a=O_(o.target,n);for(let l of s)if(a.has(l))return!0;return!1}function $D(e){let t=e.decisionStates.length,n=Array(t);for(let r=0;r<t;r++)n[r]=PD(e.decisionStates[r],r);return n}function sm(e,t,n,r,i){let o=e[t](n),s=o.start;if(s===void 0){let l=jD(o.atnStartState);s=D_(o,$_(l)),o.start=s}return DD.apply(this,[o,s,n,r,i])}function DD(e,t,n,r,i){let o=t,s=1,a=[],l=this.LA_FAST(s++);for(;;){let c=UD(o,l);if(c===void 0&&(c=MD.apply(this,[e,o,l,s,n,r])),c===Ra)return XD(a,o,l);if(c.isAcceptState===!0){if(i===!0&&uo(l,ut)){let u=eM(o,n);if(u!==void 0)return u}return c.prediction}o=c,a.push(l),l=this.LA(s++)}}function MD(e,t,n,r,i,o){let s=GD(t.configs,n,i);if(s.size===0)return C_(e,t,n,Ra),Ra;let a=$_(s),l=zD(s,i);if(l!==void 0)a.isAcceptState=!0,a.prediction=l,a.configs.uniqueAlt=l;else if(qD(s)){let c=u_(s.alts);a.isAcceptState=!0,a.prediction=c,a.configs.uniqueAlt=c,FD.apply(this,[e,r,s.alts,o])}return a=C_(e,t,n,a),a}function FD(e,t,n,r){let i=[];for(let c=1;c<=t;c++)i.push(this.LA(c).tokenType);let o=e.atnStartState,s=o.rule,a=o.production,l=BD({topLevelRule:s,ambiguityIndices:n,production:a,prefixPath:i});r(l)}function BD(e){let t=Nt(e.prefixPath,i=>Rn(i)).join(", "),n=e.production.idx===0?"":e.production.idx,r=`Ambiguous Alternatives Detected: <${e.ambiguityIndices.join(", ")}> in <${WD(e.production)}${n}> inside <${e.topLevelRule.name}> Rule,
|
|
115
115
|
<${t}> may appears as a prefix path in all these alternatives.
|
|
116
116
|
`;return r=r+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES
|
|
117
|
-
For Further details.`,r}function $D(e){if(e instanceof Ee)return"SUBRULE";if(e instanceof we)return"OPTION";if(e instanceof Ie)return"OR";if(e instanceof Ne)return"AT_LEAST_ONE";if(e instanceof Le)return"AT_LEAST_ONE_SEP";if(e instanceof ke)return"MANY_SEP";if(e instanceof ge)return"MANY";if(e instanceof ue)return"CONSUME";throw Error("non exhaustive match")}function DD(e,t,n){let r=sv(t.configs.elements,o=>o.state.transitions),i=gv(r.filter(o=>o instanceof li).map(o=>o.tokenType),o=>o.tokenTypeIdx);return{actualToken:n,possibleTokenTypes:i,tokenPath:e}}function MD(e,t){return e.edges[t.tokenTypeIdx]}function FD(e,t,n){let r=new bo,i=[];for(let s of e.elements){if(n.is(s.alt)===!1)continue;if(s.state.type===_r){i.push(s);continue}let a=s.state.transitions.length;for(let l=0;l<a;l++){let c=s.state.transitions[l],u=BD(c,t);u!==void 0&&r.add({state:u,alt:s.alt,stack:s.stack})}}let o;if(i.length===0&&r.size===1&&(o=r),o===void 0){o=new bo;for(let s of r.elements)Lu(s,o)}if(i.length>0&&!GD(o))for(let s of i)o.add(s);return o}function BD(e,t){if(e instanceof li&&co(t,e.tokenType))return e.target}function WD(e,t){let n;for(let r of e.elements)if(t.is(r.alt)===!0){if(n===void 0)n=r.alt;else if(n!==r.alt)return}return n}function Rv(e){return{configs:e,edges:{},isAcceptState:!1,prediction:-1}}function Iv(e,t,n,r){return r=Sv(e,r),t.edges[n.tokenTypeIdx]=r,r}function Sv(e,t){if(t===Ra)return t;let n=t.configs.key,r=e.states[n];return r!==void 0?r:(t.configs.finalize(),e.states[n]=t,t)}function XD(e){let t=new bo,n=e.transitions.length;for(let r=0;r<n;r++){let o={state:e.transitions[r].target,alt:r,stack:[]};Lu(o,t)}return t}function Lu(e,t){let n=e.state;if(n.type===_r){if(e.stack.length>0){let i=[...e.stack],s={state:i.pop(),alt:e.alt,stack:i};Lu(s,t)}else t.add(e);return}n.epsilonOnlyTransitions||t.add(e);let r=n.transitions.length;for(let i=0;i<r;i++){let o=n.transitions[i],s=UD(e,o);s!==void 0&&Lu(s,t)}}function UD(e,t){if(t instanceof Ia)return{state:t.target,alt:e.alt,stack:e.stack};if(t instanceof ci){let n=[...e.stack,t.followState];return{state:t.target,alt:e.alt,stack:n}}}function GD(e){for(let t of e.elements)if(t.state.type===_r)return!0;return!1}function HD(e){for(let t of e.elements)if(t.state.type!==_r)return!1;return!0}function zD(e){if(HD(e))return!0;let t=jD(e.elements);return YD(t)&&!VD(t)}function jD(e){let t=new Map;for(let n of e){let r=tm(n,!1),i=t.get(r);i===void 0&&(i={},t.set(r,i)),i[n.alt]=!0}return t}function YD(e){for(let t of Array.from(e.values()))if(Object.keys(t).length>1)return!0;return!1}function VD(e){for(let t of Array.from(e.values()))if(Object.keys(t).length===1)return!0;return!1}function KD(e,t){let n;for(let r of e.configs.elements)if(!(t.is(r.alt)===!1||r.state.type===_r)){if(n===void 0)n=r.alt;else if(n!==r.alt)return}return n}var Lo=class{constructor(){this.nodeStack=[]}get current(){return this.nodeStack[this.nodeStack.length-1]??this.rootNode}buildRootNode(t){return this.rootNode=new Na(t),this.nodeStack=[this.rootNode],this.rootNode}buildCompositeNode(t){let n=new Oo;return n.grammarSource=t,this.appendChild(this.current,n),this.nodeStack.push(n),n}buildLeafNode(t,n){let r=this.createLeafNode(t,!n);return n&&(r.grammarSource=n),this.appendChild(this.current,r),r}createLeafNode(t,n){return new ba(t.startOffset,t.image.length,t.startLine-1,t.startColumn-1,t.endLine-1,t.endColumn,t.tokenType,n)}appendChild(t,n){n.container=t,t.content.push(n)}appendChildren(t,n){for(let r of n)r.container=t;t.content.length===0?t.content=n.slice():t.content.push(...n)}insertChildren(t,n,r){for(let i of r)i.container=t;t.content.splice(n,0,...r)}removeNode(t){let n=t.container;if(n){let r=n.content.indexOf(t);r>=0&&n.content.splice(r,1)}}addHiddenNodes(t){let n=[];for(let o of t)n.push(this.createLeafNode(o,!0));let r=this.current,i=!1;if(r.content.length>0){this.appendChildren(r,n);return}for(;r.container;){let o=r.container.content.indexOf(r);if(o>0){this.insertChildren(r.container,o,n),i=!0;break}r=r.container}i||this.insertChildren(this.rootNode,0,n)}construct(t){let n=this.current;t.$cstNode=n;let r=this.nodeStack.pop();r&&(r.content.length===0?this.removeNode(r):r.content=r.content.slice())}},Ou=class{constructor(){this.container=void 0,this.grammarSource=void 0}get root(){let t=this;for(;t.container;)t=t.container;return t}get text(){return this.root.fullText.substring(this.offset,this.end)}},ba=class extends Ou{get offset(){return this._offset}get length(){return this._length}get end(){return this._offset+this._length}get hidden(){return this._hidden}get tokenType(){return this._tokenType}get astNode(){let t=this.container;if(!t)throw new Error("This node has no associated AST element");return t.astNode}get range(){return{start:{line:this._startLine,character:this._startColumn},end:{line:this._endLine,character:this._endColumn}}}constructor(t,n,r,i,o,s,a,l=!1){super(),this._hidden=l,this._offset=No(t),this._length=No(n),this._startLine=No(r),this._startColumn=No(i),this._endLine=No(o),this._endColumn=No(s),this._tokenType=a}};function No(e){return e|0}var Oo=class extends Ou{constructor(){super(...arguments),this.content=[],this._astNode=void 0,this._rangeCache=void 0}get astNode(){let t=this;for(;t;){if(t._astNode)return t._astNode;t=t.container}throw new Error("This node has no associated AST element")}set astNode(t){this._astNode=t}get hidden(){return!1}get offset(){return this.firstNonHiddenNode?.offset??0}get length(){return this.end-this.offset}get end(){return this.lastNonHiddenNode?.end??0}get range(){let t=this._rangeCache;if(t===void 0){let n=this.firstNonHiddenNode,r=this.lastNonHiddenNode;if(n&&r){let{range:i}=n,{range:o}=r;this._rangeCache=t={start:i.start,end:o.end.line<i.start.line?i.start:o.end}}else return{start:{line:0,character:0},end:{line:0,character:0}}}return t}get firstNonHiddenNode(){for(let t of this.content)if(!t.hidden)return t;return this.content[0]}get lastNonHiddenNode(){for(let t=this.content.length-1;t>=0;t--){let n=this.content[t];if(!n.hidden)return n}return this.content[this.content.length-1]}},Na=class extends Oo{get text(){return this._text.substring(this.offset,this.end)}get fullText(){return this._text}constructor(t){super(),this._text="",this._text=t??""}};var om=Symbol("Datatype");function im(e){return e.$type===om}var bv="\u200B",Nv=e=>e.endsWith(bv)?e:e+bv,Pu=class{constructor(t,n){this._unorderedGroups=new Map,this.allRules=new Map,this.lexer=t.parser.Lexer;let r=this.lexer.definition,i=t.LanguageMetaData.mode==="production";t.shared.profilers.LangiumProfiler?.isActive("parsing")?this.wrapper=new am(r,{...t.parser.ParserConfig,skipValidations:i,errorMessageProvider:t.parser.ParserErrorMessageProvider},n,t.shared.profilers.LangiumProfiler.createTask("parsing",t.LanguageMetaData.languageId)):this.wrapper=new Du(r,{...t.parser.ParserConfig,skipValidations:i,errorMessageProvider:t.parser.ParserErrorMessageProvider},n)}alternatives(t,n){this.wrapper.wrapOr(t,n)}optional(t,n){this.wrapper.wrapOption(t,n)}many(t,n){this.wrapper.wrapMany(t,n)}atLeastOne(t,n){this.wrapper.wrapAtLeastOne(t,n)}getRule(t){return this.allRules.get(t)}isRecording(){return this.wrapper.IS_RECORDING}get unorderedGroups(){return this._unorderedGroups}getRuleStack(){return this.wrapper.RULE_STACK}finalize(){this.wrapper.wrapSelfAnalysis()}},Cu=class extends Pu{get current(){return this.stack[this.stack.length-1]}constructor(t){super(t,!1),this.nodeBuilder=new Lo,this.stack=[],this.assignmentMap=new Map,this.operatorPrecedence=new Map,this.linker=t.references.Linker,this.converter=t.parser.ValueConverter,this.astReflection=t.shared.AstReflection}rule(t,n){let r=this.computeRuleType(t),i;qr(t)&&(i=t.name,this.registerPrecedenceMap(t));let o=this.wrapper.DEFINE_RULE(Nv(t.name),this.startImplementation(r,i,n).bind(this));return this.allRules.set(t.name,o),at(t)&&t.entry&&(this.mainRule=o),o}registerPrecedenceMap(t){let n=t.name,r=new Map;for(let i=0;i<t.operators.precedences.length;i++){let o=t.operators.precedences[i];for(let s of o.operators)r.set(s.value,{precedence:i,rightAssoc:o.associativity==="right"})}this.operatorPrecedence.set(n,r)}computeRuleType(t){return qr(t)?ar(t):t.fragment?void 0:ia(t)?om:ar(t)}parse(t,n={}){this.nodeBuilder.buildRootNode(t);let r=this.lexerResult=this.lexer.tokenize(t);this.wrapper.input=r.tokens;let i=n.rule?this.allRules.get(n.rule):this.mainRule;if(!i)throw new Error(n.rule?`No rule found with name '${n.rule}'`:"No main rule available.");let o=this.doParse(i);return this.nodeBuilder.addHiddenNodes(r.hidden),this.unorderedGroups.clear(),this.lexerResult=void 0,oc(o,{deep:!0}),{value:o,lexerErrors:r.errors,lexerReport:r.report,parserErrors:this.wrapper.errors}}doParse(t){let n=this.wrapper.rule(t);if(this.stack.length>0&&(n=this.construct()),n===void 0)throw new Error("No result from parser");if(this.stack.length>0)throw new Error("Parser stack is not empty after parsing");return this.linkCstNode(n),n}linkCstNode(t){Ue(t)&&t.$cstNode&&(t.$cstNode.astNode=t)}startImplementation(t,n,r){return i=>{let o=!this.isRecording()&&t!==void 0;if(o){let s={$type:t};this.stack.push(s),t===om?s.value="":n!==void 0&&(s.$infixName=n)}return r(i),o?this.construct():void 0}}extractHiddenTokens(t){let n=this.lexerResult.hidden;if(!n.length)return[];let r=t.startOffset;for(let i=0;i<n.length;i++)if(n[i].startOffset>r)return n.splice(0,i);return n.splice(0,n.length)}consume(t,n,r){let i=this.wrapper.wrapConsume(t,n);if(!this.isRecording()&&this.isValidToken(i)){let o=this.extractHiddenTokens(i);this.nodeBuilder.addHiddenNodes(o);let s=this.nodeBuilder.buildLeafNode(i,r),{assignment:a,crossRef:l}=this.getAssignment(r),c=this.current;if(a){let u=jt(r)?i.image:this.converter.convert(i.image,s);this.assign(a.operator,a.feature,u,s,l)}else if(im(c)){let u=i.image;jt(r)||(u=this.converter.convert(u,s).toString()),c.value+=u}}}isValidToken(t){return!t.isInsertedInRecovery&&Zs(t)}subrule(t,n,r,i,o){let s;!this.isRecording()&&!r&&(s=this.nodeBuilder.buildCompositeNode(i));let a;try{a=this.wrapper.wrapSubrule(t,n,o)}finally{this.isRecording()||(a===void 0&&!r&&(a=this.construct()),a!==void 0&&s&&s.length>0&&this.performSubruleAssignment(a,i,s))}}performSubruleAssignment(t,n,r){let{assignment:i,crossRef:o}=this.getAssignment(n);if(i)this.assign(i.operator,i.feature,t,r,o);else if(!i){let s=this.current;if(im(s))s.value+=t.toString();else if(typeof t=="object"&&t){let l=this.assignWithoutOverride(t,s);this.stack.pop(),this.stack.push(l)}}}action(t,n){if(!this.isRecording()){let r=this.current;if(n.feature&&n.operator){r=this.construct(),this.nodeBuilder.removeNode(r.$cstNode);let i=this.nodeBuilder.buildCompositeNode(n);this.nodeBuilder.appendChild(i,r.$cstNode);let o={$type:t};this.stack.push(o),this.assign(n.operator,n.feature,r,r.$cstNode)}else r.$type=t}}construct(){if(this.isRecording())return;let t=this.stack.pop();return this.nodeBuilder.construct(t),"$infixName"in t?this.constructInfix(t,this.operatorPrecedence.get(t.$infixName)):im(t)?this.converter.convert(t.value,t.$cstNode):(hE(this.astReflection,t),t)}constructInfix(t,n){let r=t.parts;if(!Array.isArray(r)||r.length===0)return;let i=t.operators;if(!Array.isArray(i)||r.length<2)return r[0];let o=0,s=-1;for(let g=0;g<i.length;g++){let E=i[g],x=n.get(E)??{precedence:1/0,rightAssoc:!1};x.precedence>s?(s=x.precedence,o=g):x.precedence===s&&(x.rightAssoc||(o=g))}let a=i.slice(0,o),l=i.slice(o+1),c=r.slice(0,o+1),u=r.slice(o+1),f={$infixName:t.$infixName,$type:t.$type,$cstNode:t.$cstNode,parts:c,operators:a},d={$infixName:t.$infixName,$type:t.$type,$cstNode:t.$cstNode,parts:u,operators:l},p=this.constructInfix(f,n),m=this.constructInfix(d,n);return{$type:t.$type,$cstNode:t.$cstNode,left:p,operator:i[o],right:m}}getAssignment(t){if(!this.assignmentMap.has(t)){let n=Gi(t,fn);this.assignmentMap.set(t,{assignment:n,crossRef:n&&dn(n.terminal)?n.terminal.isMulti?"multi":"single":void 0})}return this.assignmentMap.get(t)}assign(t,n,r,i,o){let s=this.current,a;switch(o==="single"&&typeof r=="string"?a=this.linker.buildReference(s,n,i,r):o==="multi"&&typeof r=="string"?a=this.linker.buildMultiReference(s,n,i,r):a=r,this.linkCstNode(a),t){case"=":{s[n]=a;break}case"?=":{s[n]=!0;break}case"+=":Array.isArray(s[n])||(s[n]=[]),s[n].push(a)}}assignWithoutOverride(t,n){for(let[r,i]of Object.entries(n)){let o=t[r];o===void 0?t[r]=i:Array.isArray(o)&&Array.isArray(i)&&(i.push(...o),t[r]=i)}return t.$cstNode=void 0,t}get definitionErrors(){return this.wrapper.definitionErrors}},sm=class{buildMismatchTokenMessage(t){return bn.buildMismatchTokenMessage(t)}buildNotAllInputParsedMessage(t){return bn.buildNotAllInputParsedMessage(t)}buildNoViableAltMessage(t){return bn.buildNoViableAltMessage(t)}buildEarlyExitMessage(t){return bn.buildEarlyExitMessage(t)}},La=class extends sm{buildMismatchTokenMessage({expected:t,actual:n}){return`Expecting ${t.LABEL?"`"+t.LABEL+"`":t.name.endsWith(":KW")?`keyword '${t.name.substring(0,t.name.length-3)}'`:`token of type '${t.name}'`} but found \`${n.image}\`.`}buildNotAllInputParsedMessage({firstRedundant:t}){return`Expecting end of file but found \`${t.image}\`.`}},$u=class extends Pu{constructor(t){super(t,!0),this.tokens=[],this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}action(){}construct(){}parse(t){this.resetState();let n=this.lexer.tokenize(t,{mode:"partial"});return this.tokens=n.tokens,this.wrapper.input=[...this.tokens],this.mainRule.call(this.wrapper,{}),this.unorderedGroups.clear(),{tokens:this.tokens,elementStack:[...this.lastElementStack],tokenIndex:this.nextTokenIndex}}rule(t,n){let r=this.wrapper.DEFINE_RULE(Nv(t.name),this.startImplementation(n).bind(this));return this.allRules.set(t.name,r),t.entry&&(this.mainRule=r),r}resetState(){this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}startImplementation(t){return n=>{let r=this.keepStackSize();try{t(n)}finally{this.resetStackSize(r)}}}removeUnexpectedElements(){this.elementStack.splice(this.stackSize)}keepStackSize(){let t=this.elementStack.length;return this.stackSize=t,t}resetStackSize(t){this.removeUnexpectedElements(),this.stackSize=t}consume(t,n,r){this.wrapper.wrapConsume(t,n),this.isRecording()||(this.lastElementStack=[...this.elementStack,r],this.nextTokenIndex=this.currIdx+1)}subrule(t,n,r,i,o){this.before(i),this.wrapper.wrapSubrule(t,n,o),this.after(i)}before(t){this.isRecording()||this.elementStack.push(t)}after(t){if(!this.isRecording()){let n=this.elementStack.lastIndexOf(t);n>=0&&this.elementStack.splice(n)}}get currIdx(){return this.wrapper.currIdx}},qD={recoveryEnabled:!0,nodeLocationTracking:"full",skipValidations:!0,errorMessageProvider:new La},Du=class extends Ta{constructor(t,n,r){let i=n&&"maxLookahead"in n;super(t,{...qD,lookaheadStrategy:i?new Nn({maxLookahead:n.maxLookahead}):new Sa({logging:n.skipValidations?()=>{}:void 0,incomplete:r}),...n})}get IS_RECORDING(){return this.RECORDING_PHASE}DEFINE_RULE(t,n,r){return this.RULE(t,n,r)}wrapSelfAnalysis(){this.performSelfAnalysis()}wrapConsume(t,n){return this.consume(t,n,void 0)}wrapSubrule(t,n,r){return this.subrule(t,n,{ARGS:[r]})}wrapOr(t,n){this.or(t,n)}wrapOption(t,n){this.option(t,n)}wrapMany(t,n){this.many(t,n)}wrapAtLeastOne(t,n){this.atLeastOne(t,n)}rule(t){return t.call(this,{})}},am=class extends Du{constructor(t,n,r,i){super(t,n,r),this.task=i}rule(t){this.task.start(),this.task.startSubTask(this.ruleName(t));try{return super.rule(t)}finally{this.task.stopSubTask(this.ruleName(t)),this.task.stop()}}ruleName(t){return t.ruleName}subrule(t,n,r){this.task.startSubTask(this.ruleName(n));try{return super.subrule(t,n,r)}finally{this.task.stopSubTask(this.ruleName(n))}}};function Fu(e,t,n){return ZD({parser:t,tokens:n,ruleNames:new Map},e),t}function ZD(e,t){let n=na(t,!1),r=ye(t.rules).filter(at).filter(o=>n.has(o));for(let o of r){let s={...e,consume:1,optional:1,subrule:1,many:1,or:1};e.parser.rule(o,di(s,o.definition))}let i=ye(t.rules).filter(qr).filter(o=>n.has(o));for(let o of i)e.parser.rule(o,JD(e,o))}function JD(e,t){let n=t.call.rule.ref;if(!n)throw new Error("Could not resolve reference to infix operator rule: "+t.call.rule.$refText);if(xt(n))throw new Error("Cannot use terminal rule in infix expression");let r=t.operators.precedences.flatMap(p=>p.operators),i={$type:"Group",elements:[]},o={$container:i,$type:"Assignment",feature:"parts",operator:"+=",terminal:t.call},s={$container:i,$type:"Group",elements:[],cardinality:"*"};i.elements.push(o,s);let l={$container:s,$type:"Assignment",feature:"operators",operator:"+=",terminal:{$type:"Alternatives",elements:r}},c={...o,$container:s};s.elements.push(l,c);let f=r.map(p=>e.tokens[p.value]).map((p,m)=>({ALT:()=>e.parser.consume(m,p,l)})),d;return p=>{d??(d=cm(e,n)),e.parser.subrule(0,d,!1,o,p),e.parser.many(0,{DEF:()=>{e.parser.alternatives(0,f),e.parser.subrule(1,d,!1,c,p)}})}}function di(e,t,n=!1){let r;if(jt(t))r=oM(e,t);else if(or(t))r=QD(e,t);else if(fn(t))r=di(e,t.terminal);else if(dn(t))r=Lv(e,t);else if(pn(t))r=eM(e,t);else if(Qp(t))r=nM(e,t);else if(rh(t))r=rM(e,t);else if(Kr(t))r=iM(e,t);else if(RE(t)){let i=e.consume++;r=()=>e.parser.consume(i,ut,t)}else throw new Js(t.$cstNode,`Unexpected element type: ${t.$type}`);return Ov(e,n?void 0:Mu(t),r,t.cardinality)}function QD(e,t){let n=ar(t);return()=>e.parser.action(n,t)}function eM(e,t){let n=t.rule.ref;if(ir(n)){let r=e.subrule++,i=at(n)&&n.fragment,o=t.arguments.length>0?tM(n,t.arguments):()=>({}),s;return a=>{s??(s=cm(e,n)),e.parser.subrule(r,s,i,t,o(a))}}else if(xt(n)){let r=e.consume++,i=lm(e,n.name);return()=>e.parser.consume(r,i,t)}else if(n)sr(n);else throw new Js(t.$cstNode,`Undefined rule: ${t.rule.$refText}`)}function tM(e,t){if(t.some(r=>r.calledByName)){let r=t.map(i=>({parameterName:i.parameter?.ref?.name,predicate:yn(i.value)}));return i=>{let o={};for(let{parameterName:s,predicate:a}of r)s&&(o[s]=a(i));return o}}else{let r=t.map(i=>yn(i.value));return i=>{let o={};for(let s=0;s<r.length;s++)if(s<e.parameters.length){let a=e.parameters[s].name,l=r[s];o[a]=l(i)}return o}}}function yn(e){if(IE(e)){let t=yn(e.left),n=yn(e.right);return r=>t(r)||n(r)}else if(kE(e)){let t=yn(e.left),n=yn(e.right);return r=>t(r)&&n(r)}else if(NE(e)){let t=yn(e.value);return n=>!t(n)}else if(LE(e)){let t=e.parameter.ref.name;return n=>n!==void 0&&n[t]===!0}else if(vE(e)){let t=!!e.true;return()=>t}sr(e)}function nM(e,t){if(t.elements.length===1)return di(e,t.elements[0]);{let n=[];for(let i of t.elements){let o={ALT:di(e,i,!0)},s=Mu(i);s&&(o.GATE=yn(s)),n.push(o)}let r=e.or++;return i=>e.parser.alternatives(r,n.map(o=>{let s={ALT:()=>o.ALT(i)},a=o.GATE;return a&&(s.GATE=()=>a(i)),s}))}}function rM(e,t){if(t.elements.length===1)return di(e,t.elements[0]);let n=[];for(let a of t.elements){let l={ALT:di(e,a,!0)},c=Mu(a);c&&(l.GATE=yn(c)),n.push(l)}let r=e.or++,i=(a,l)=>{let c=l.getRuleStack().join("-");return`uGroup_${a}_${c}`},o=a=>e.parser.alternatives(r,n.map((l,c)=>{let u={ALT:()=>!0},f=e.parser;u.ALT=()=>{if(l.ALT(a),!f.isRecording()){let p=i(r,f);f.unorderedGroups.get(p)||f.unorderedGroups.set(p,[]);let m=f.unorderedGroups.get(p);typeof m?.[c]>"u"&&(m[c]=!0)}};let d=l.GATE;return d?u.GATE=()=>d(a):u.GATE=()=>!f.unorderedGroups.get(i(r,f))?.[c],u})),s=Ov(e,Mu(t),o,"*");return a=>{s(a),e.parser.isRecording()||e.parser.unorderedGroups.delete(i(r,e.parser))}}function iM(e,t){let n=t.elements.map(r=>di(e,r));return r=>n.forEach(i=>i(r))}function Mu(e){if(Kr(e))return e.guardCondition}function Lv(e,t,n=t.terminal){if(n)if(pn(n)&&at(n.rule.ref)){let r=n.rule.ref,i=e.subrule++,o;return s=>{o??(o=cm(e,r)),e.parser.subrule(i,o,!1,t,s)}}else if(pn(n)&&xt(n.rule.ref)){let r=e.consume++,i=lm(e,n.rule.ref.name);return()=>e.parser.consume(r,i,t)}else if(jt(n)){let r=e.consume++,i=lm(e,n.value);return()=>e.parser.consume(r,i,t)}else throw new Error("Could not build cross reference parser");else{if(!t.type.ref)throw new Error("Could not resolve reference to type: "+t.type.$refText);let i=_c(t.type.ref)?.terminal;if(!i)throw new Error("Could not find name assignment for type: "+ar(t.type.ref));return Lv(e,t,i)}}function oM(e,t){let n=e.consume++,r=e.tokens[t.value];if(!r)throw new Error("Could not find token for keyword: "+t.value);return()=>e.parser.consume(n,r,t)}function Ov(e,t,n,r){let i=t&&yn(t);if(!r)if(i){let o=e.or++;return s=>e.parser.alternatives(o,[{ALT:()=>n(s),GATE:()=>i(s)},{ALT:iu(),GATE:()=>!i(s)}])}else return n;if(r==="*"){let o=e.many++;return s=>e.parser.many(o,{DEF:()=>n(s),GATE:i?()=>i(s):void 0})}else if(r==="+"){let o=e.many++;if(i){let s=e.or++;return a=>e.parser.alternatives(s,[{ALT:()=>e.parser.atLeastOne(o,{DEF:()=>n(a)}),GATE:()=>i(a)},{ALT:iu(),GATE:()=>!i(a)}])}else return s=>e.parser.atLeastOne(o,{DEF:()=>n(s)})}else if(r==="?"){let o=e.optional++;return s=>e.parser.optional(o,{DEF:()=>n(s),GATE:i?()=>i(s):void 0})}else sr(r)}function cm(e,t){let n=sM(e,t),r=e.parser.getRule(n);if(!r)throw new Error(`Rule "${n}" not found."`);return r}function sM(e,t){if(ir(t))return t.name;if(e.ruleNames.has(t))return e.ruleNames.get(t);{let n=t,r=n.$container,i=t.$type;for(;!at(r);)(Kr(r)||Qp(r)||rh(r))&&(i=r.elements.indexOf(n).toString()+":"+i),n=r,r=r.$container;return i=r.name+":"+i,e.ruleNames.set(t,i),i}}function lm(e,t){let n=e.tokens[t];if(!n)throw new Error(`Token "${t}" not found."`);return n}function Pv(e){let t=e.Grammar,n=e.parser.Lexer,r=new $u(e);return Fu(t,r,n.definition),r.finalize(),r}function Cv(e){let t=aM(e);return t.finalize(),t}function aM(e){let t=e.Grammar,n=e.parser.Lexer,r=new Cu(e);return Fu(t,r,n.definition)}var Po=class{constructor(){this.diagnostics=[]}buildTokens(t,n){let r=ye(na(t,!1)),i=this.buildTerminalTokens(r),o=this.buildKeywordTokens(r,i,n);return o.push(...i),o}flushLexingReport(t){return{diagnostics:this.popDiagnostics()}}popDiagnostics(){let t=[...this.diagnostics];return this.diagnostics=[],t}buildTerminalTokens(t){return t.filter(xt).filter(n=>!n.fragment).map(n=>this.buildTerminalToken(n)).toArray()}buildTerminalToken(t){let n=to(t),r=this.requiresCustomPattern(n)?this.regexPatternFunction(n):n,i={name:t.name,PATTERN:r};return typeof r=="function"&&(i.LINE_BREAKS=!0),t.hidden&&(i.GROUP=Tc(n)?Me.SKIPPED:"hidden"),i}requiresCustomPattern(t){return!!(t.flags.includes("u")||t.flags.includes("s"))}regexPatternFunction(t){let n=new RegExp(t,t.flags+"y");return(r,i)=>(n.lastIndex=i,n.exec(r))}buildKeywordTokens(t,n,r){return t.filter(ir).flatMap(i=>cn(i).filter(jt)).distinct(i=>i.value).toArray().sort((i,o)=>o.value.length-i.value.length).map(i=>this.buildKeywordToken(i,n,!!r?.caseInsensitive))}buildKeywordToken(t,n,r){let i=this.buildKeywordPattern(t,r),o={name:t.value,PATTERN:i,LONGER_ALT:this.findLongerAlt(t,n)};return typeof i=="function"&&(o.LINE_BREAKS=!0),o}buildKeywordPattern(t,n){return n?new RegExp(Qr(t.value),"i"):t.value}findLongerAlt(t,n){return n.reduce((r,i)=>{let o=i?.PATTERN;return o?.source&&VE("^"+o.source+"$",t.value)&&r.push(i),r},[])}};var Co=class{convert(t,n){let r=n.grammarSource;if(dn(r)&&(r=uh(r)),pn(r)){let i=r.rule.ref;if(!i)throw new Error("This cst node was not parsed by a rule.");return this.runConverter(i,t,n)}return t}runConverter(t,n,r){switch(t.name.toUpperCase()){case"INT":return Cn.convertInt(n);case"STRING":return Cn.convertString(n);case"ID":return Cn.convertID(n)}switch(yh(t)?.toLowerCase()){case"number":return Cn.convertNumber(n);case"boolean":return Cn.convertBoolean(n);case"bigint":return Cn.convertBigint(n);case"date":return Cn.convertDate(n);default:return n}}},Cn;(function(e){function t(c){let u="";for(let f=1;f<c.length-1;f++){let d=c.charAt(f);if(d==="\\"){let p=c.charAt(++f);u+=n(p)}else u+=d}return u}e.convertString=t;function n(c){switch(c){case"b":return"\b";case"f":return"\f";case"n":return`
|
|
118
|
-
`;case"r":return"\r";case"t":return" ";case"v":return"\v";case"0":return"\0";default:return c}}function r(c){return c.charAt(0)==="^"?c.substring(1):c}e.convertID=r;function i(c){return parseInt(c)}e.convertInt=i;function o(c){return BigInt(c)}e.convertBigint=o;function s(c){return new Date(c)}e.convertDate=s;function a(c){return Number(c)}e.convertNumber=a;function l(c){return c.toLowerCase()==="true"}e.convertBoolean=l})(Cn||(Cn={}));var fe=Xp(Fv()),Uu=Xp(ym()),Gu=Xp(Wv()),Hm={lspReservedErrorRangeStart:-32899,RequestFailed:-32803,ServerCancelled:-32802,ContentModified:-32801,RequestCancelled:-32800,lspReservedErrorRangeEnd:-32800};function kM(){return new Promise(e=>{typeof setImmediate>"u"?setTimeout(e,0):setImmediate(e)})}var Hu=0,IM=10;function Xv(){return Hu=performance.now(),new fe.CancellationTokenSource}var hi=Symbol("OperationCancelled");function Rr(e){return e===hi}async function Ge(e){if(e===fe.CancellationToken.None)return;let t=performance.now();if(t-Hu>=IM&&(Hu=t,await kM(),Hu=performance.now()),e.isCancellationRequested)throw hi}var Ir=class{constructor(){this.promise=new Promise((t,n)=>{this.resolve=r=>(t(r),this),this.reject=r=>(n(r),this)})}};var zu=class e{constructor(t,n,r,i){this._uri=t,this._languageId=n,this._version=r,this._content=i,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(t){if(t){let n=this.offsetAt(t.start),r=this.offsetAt(t.end);return this._content.substring(n,r)}return this._content}update(t,n){for(let r of t)if(e.isIncremental(r)){let i=Hv(r.range),o=this.offsetAt(i.start),s=this.offsetAt(i.end);this._content=this._content.substring(0,o)+r.text+this._content.substring(s,this._content.length);let a=Math.max(i.start.line,0),l=Math.max(i.end.line,0),c=this._lineOffsets,u=Uv(r.text,!1,o);if(l-a===u.length)for(let d=0,p=u.length;d<p;d++)c[d+a+1]=u[d];else u.length<1e4?c.splice(a+1,l-a,...u):this._lineOffsets=c=c.slice(0,a+1).concat(u,c.slice(l+1));let f=r.text.length-(s-o);if(f!==0)for(let d=a+1+u.length,p=c.length;d<p;d++)c[d]=c[d]+f}else if(e.isFull(r))this._content=r.text,this._lineOffsets=void 0;else throw new Error("Unknown change event received");this._version=n}getLineOffsets(){return this._lineOffsets===void 0&&(this._lineOffsets=Uv(this._content,!0)),this._lineOffsets}positionAt(t){t=Math.max(Math.min(t,this._content.length),0);let n=this.getLineOffsets(),r=0,i=n.length;if(i===0)return{line:0,character:t};for(;r<i;){let s=Math.floor((r+i)/2);n[s]>t?i=s:r=s+1}let o=r-1;return t=this.ensureBeforeEOL(t,n[o]),{line:o,character:t-n[o]}}offsetAt(t){let n=this.getLineOffsets();if(t.line>=n.length)return this._content.length;if(t.line<0)return 0;let r=n[t.line];if(t.character<=0)return r;let i=t.line+1<n.length?n[t.line+1]:this._content.length,o=Math.min(r+t.character,i);return this.ensureBeforeEOL(o,r)}getLineRange(t){let n=this.getLineOffsets();if(t>=n.length){let s=n.length-1;return{start:{line:s,character:0},end:{line:s,character:this._content.length-n[s]}}}else if(t<0)return{start:{line:0,character:0},end:{line:0,character:0}};let r=n[t],i=t+1<n.length?n[t+1]:this._content.length,o=this.ensureBeforeEOL(i,r);return{start:{line:t,character:0},end:{line:t,character:o-r}}}getEOLCharacters(t){let n=this.getLineOffsets();if(t>=n.length)return"";if(t<0)return"";let r=t+1<n.length?n[t+1]:this._content.length,i=this.ensureBeforeEOL(r,n[t]);return this._content.substring(i,r)}ensureBeforeEOL(t,n){for(;t>n&&Gv(this._content.charCodeAt(t-1));)t--;return t}get lineCount(){return this.getLineOffsets().length}static isIncremental(t){let n=t;return n!=null&&typeof n.text=="string"&&n.range!==void 0&&(n.rangeLength===void 0||typeof n.rangeLength=="number")}static isFull(t){let n=t;return n!=null&&typeof n.text=="string"&&n.range===void 0&&n.rangeLength===void 0}},Oa;(function(e){function t(i,o,s,a){return new zu(i,o,s,a)}e.create=t;function n(i,o,s){if(i instanceof zu)return i.update(o,s),i;throw new Error("TextDocument.update: document must be created by TextDocument.create")}e.update=n;function r(i,o){let s=i.getText(),a=zm(o.map(RM),(u,f)=>{let d=u.range.start.line-f.range.start.line;return d===0?u.range.start.character-f.range.start.character:d}),l=0,c=[];for(let u of a){let f=i.offsetAt(u.range.start);if(f<l)throw new Error("Overlapping edit");f>l&&c.push(s.substring(l,f)),u.newText.length&&c.push(u.newText),l=i.offsetAt(u.range.end)}return c.push(s.substr(l)),c.join("")}e.applyEdits=r})(Oa||(Oa={}));function zm(e,t){if(e.length<=1)return e;let n=e.length/2|0,r=e.slice(0,n),i=e.slice(n);zm(r,t),zm(i,t);let o=0,s=0,a=0;for(;o<r.length&&s<i.length;)t(r[o],i[s])<=0?e[a++]=r[o++]:e[a++]=i[s++];for(;o<r.length;)e[a++]=r[o++];for(;s<i.length;)e[a++]=i[s++];return e}function Uv(e,t,n=0){let r=t?[n]:[];for(let i=0;i<e.length;i++){let o=e.charCodeAt(i);Gv(o)&&(o===13&&i+1<e.length&&e.charCodeAt(i+1)===10&&i++,r.push(n+i+1))}return r}function Gv(e){return e===13||e===10}function Hv(e){let t=e.start,n=e.end;return t.line>n.line||t.line===n.line&&t.character>n.character?{start:n,end:t}:e}function RM(e){let t=Hv(e.range);return t!==e.range?{newText:e.newText,range:t}:e}var zv;(()=>{"use strict";var e={975:D=>{function I(A){if(typeof A!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(A))}function R(A,L){for(var T,O="",S=0,F=-1,z=0,U=0;U<=A.length;++U){if(U<A.length)T=A.charCodeAt(U);else{if(T===47)break;T=47}if(T===47){if(!(F===U-1||z===1))if(F!==U-1&&z===2){if(O.length<2||S!==2||O.charCodeAt(O.length-1)!==46||O.charCodeAt(O.length-2)!==46){if(O.length>2){var ee=O.lastIndexOf("/");if(ee!==O.length-1){ee===-1?(O="",S=0):S=(O=O.slice(0,ee)).length-1-O.lastIndexOf("/"),F=U,z=0;continue}}else if(O.length===2||O.length===1){O="",S=0,F=U,z=0;continue}}L&&(O.length>0?O+="/..":O="..",S=2)}else O.length>0?O+="/"+A.slice(F+1,U):O=A.slice(F+1,U),S=U-F-1;F=U,z=0}else T===46&&z!==-1?++z:z=-1}return O}var P={resolve:function(){for(var A,L="",T=!1,O=arguments.length-1;O>=-1&&!T;O--){var S;O>=0?S=arguments[O]:(A===void 0&&(A=process.cwd()),S=A),I(S),S.length!==0&&(L=S+"/"+L,T=S.charCodeAt(0)===47)}return L=R(L,!T),T?L.length>0?"/"+L:"/":L.length>0?L:"."},normalize:function(A){if(I(A),A.length===0)return".";var L=A.charCodeAt(0)===47,T=A.charCodeAt(A.length-1)===47;return(A=R(A,!L)).length!==0||L||(A="."),A.length>0&&T&&(A+="/"),L?"/"+A:A},isAbsolute:function(A){return I(A),A.length>0&&A.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var A,L=0;L<arguments.length;++L){var T=arguments[L];I(T),T.length>0&&(A===void 0?A=T:A+="/"+T)}return A===void 0?".":P.normalize(A)},relative:function(A,L){if(I(A),I(L),A===L||(A=P.resolve(A))===(L=P.resolve(L)))return"";for(var T=1;T<A.length&&A.charCodeAt(T)===47;++T);for(var O=A.length,S=O-T,F=1;F<L.length&&L.charCodeAt(F)===47;++F);for(var z=L.length-F,U=S<z?S:z,ee=-1,Y=0;Y<=U;++Y){if(Y===U){if(z>U){if(L.charCodeAt(F+Y)===47)return L.slice(F+Y+1);if(Y===0)return L.slice(F+Y)}else S>U&&(A.charCodeAt(T+Y)===47?ee=Y:Y===0&&(ee=0));break}var ne=A.charCodeAt(T+Y);if(ne!==L.charCodeAt(F+Y))break;ne===47&&(ee=Y)}var v="";for(Y=T+ee+1;Y<=O;++Y)Y!==O&&A.charCodeAt(Y)!==47||(v.length===0?v+="..":v+="/..");return v.length>0?v+L.slice(F+ee):(F+=ee,L.charCodeAt(F)===47&&++F,L.slice(F))},_makeLong:function(A){return A},dirname:function(A){if(I(A),A.length===0)return".";for(var L=A.charCodeAt(0),T=L===47,O=-1,S=!0,F=A.length-1;F>=1;--F)if((L=A.charCodeAt(F))===47){if(!S){O=F;break}}else S=!1;return O===-1?T?"/":".":T&&O===1?"//":A.slice(0,O)},basename:function(A,L){if(L!==void 0&&typeof L!="string")throw new TypeError('"ext" argument must be a string');I(A);var T,O=0,S=-1,F=!0;if(L!==void 0&&L.length>0&&L.length<=A.length){if(L.length===A.length&&L===A)return"";var z=L.length-1,U=-1;for(T=A.length-1;T>=0;--T){var ee=A.charCodeAt(T);if(ee===47){if(!F){O=T+1;break}}else U===-1&&(F=!1,U=T+1),z>=0&&(ee===L.charCodeAt(z)?--z==-1&&(S=T):(z=-1,S=U))}return O===S?S=U:S===-1&&(S=A.length),A.slice(O,S)}for(T=A.length-1;T>=0;--T)if(A.charCodeAt(T)===47){if(!F){O=T+1;break}}else S===-1&&(F=!1,S=T+1);return S===-1?"":A.slice(O,S)},extname:function(A){I(A);for(var L=-1,T=0,O=-1,S=!0,F=0,z=A.length-1;z>=0;--z){var U=A.charCodeAt(z);if(U!==47)O===-1&&(S=!1,O=z+1),U===46?L===-1?L=z:F!==1&&(F=1):L!==-1&&(F=-1);else if(!S){T=z+1;break}}return L===-1||O===-1||F===0||F===1&&L===O-1&&L===T+1?"":A.slice(L,O)},format:function(A){if(A===null||typeof A!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof A);return(function(L,T){var O=T.dir||T.root,S=T.base||(T.name||"")+(T.ext||"");return O?O===T.root?O+S:O+"/"+S:S})(0,A)},parse:function(A){I(A);var L={root:"",dir:"",base:"",ext:"",name:""};if(A.length===0)return L;var T,O=A.charCodeAt(0),S=O===47;S?(L.root="/",T=1):T=0;for(var F=-1,z=0,U=-1,ee=!0,Y=A.length-1,ne=0;Y>=T;--Y)if((O=A.charCodeAt(Y))!==47)U===-1&&(ee=!1,U=Y+1),O===46?F===-1?F=Y:ne!==1&&(ne=1):F!==-1&&(ne=-1);else if(!ee){z=Y+1;break}return F===-1||U===-1||ne===0||ne===1&&F===U-1&&F===z+1?U!==-1&&(L.base=L.name=z===0&&S?A.slice(1,U):A.slice(z,U)):(z===0&&S?(L.name=A.slice(1,F),L.base=A.slice(1,U)):(L.name=A.slice(z,F),L.base=A.slice(z,U)),L.ext=A.slice(F,U)),z>0?L.dir=A.slice(0,z-1):S&&(L.dir="/"),L},sep:"/",delimiter:":",win32:null,posix:null};P.posix=P,D.exports=P}},t={};function n(D){var I=t[D];if(I!==void 0)return I.exports;var R=t[D]={exports:{}};return e[D](R,R.exports,n),R.exports}n.d=(D,I)=>{for(var R in I)n.o(I,R)&&!n.o(D,R)&&Object.defineProperty(D,R,{enumerable:!0,get:I[R]})},n.o=(D,I)=>Object.prototype.hasOwnProperty.call(D,I),n.r=D=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(D,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(D,"__esModule",{value:!0})};var r={};let i;n.r(r),n.d(r,{URI:()=>d,Utils:()=>j}),typeof process=="object"?i=process.platform==="win32":typeof navigator=="object"&&(i=navigator.userAgent.indexOf("Windows")>=0);let o=/^\w[\w\d+.-]*$/,s=/^\//,a=/^\/\//;function l(D,I){if(!D.scheme&&I)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${D.authority}", path: "${D.path}", query: "${D.query}", fragment: "${D.fragment}"}`);if(D.scheme&&!o.test(D.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(D.path){if(D.authority){if(!s.test(D.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(a.test(D.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}let c="",u="/",f=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class d{constructor(I,R,P,A,L,T=!1){M(this,"scheme");M(this,"authority");M(this,"path");M(this,"query");M(this,"fragment");typeof I=="object"?(this.scheme=I.scheme||c,this.authority=I.authority||c,this.path=I.path||c,this.query=I.query||c,this.fragment=I.fragment||c):(this.scheme=(function(O,S){return O||S?O:"file"})(I,T),this.authority=R||c,this.path=(function(O,S){switch(O){case"https":case"http":case"file":S?S[0]!==u&&(S=u+S):S=u}return S})(this.scheme,P||c),this.query=A||c,this.fragment=L||c,l(this,T))}static isUri(I){return I instanceof d||!!I&&typeof I.authority=="string"&&typeof I.fragment=="string"&&typeof I.path=="string"&&typeof I.query=="string"&&typeof I.scheme=="string"&&typeof I.fsPath=="string"&&typeof I.with=="function"&&typeof I.toString=="function"}get fsPath(){return y(this,!1)}with(I){if(!I)return this;let{scheme:R,authority:P,path:A,query:L,fragment:T}=I;return R===void 0?R=this.scheme:R===null&&(R=c),P===void 0?P=this.authority:P===null&&(P=c),A===void 0?A=this.path:A===null&&(A=c),L===void 0?L=this.query:L===null&&(L=c),T===void 0?T=this.fragment:T===null&&(T=c),R===this.scheme&&P===this.authority&&A===this.path&&L===this.query&&T===this.fragment?this:new m(R,P,A,L,T)}static parse(I,R=!1){let P=f.exec(I);return P?new m(P[2]||c,N(P[4]||c),N(P[5]||c),N(P[7]||c),N(P[9]||c),R):new m(c,c,c,c,c)}static file(I){let R=c;if(i&&(I=I.replace(/\\/g,u)),I[0]===u&&I[1]===u){let P=I.indexOf(u,2);P===-1?(R=I.substring(2),I=u):(R=I.substring(2,P),I=I.substring(P)||u)}return new m("file",R,I,c,c)}static from(I){let R=new m(I.scheme,I.authority,I.path,I.query,I.fragment);return l(R,!0),R}toString(I=!1){return w(this,I)}toJSON(){return this}static revive(I){if(I){if(I instanceof d)return I;{let R=new m(I);return R._formatted=I.external,R._fsPath=I._sep===p?I.fsPath:null,R}}return I}}let p=i?1:void 0;class m extends d{constructor(){super(...arguments);M(this,"_formatted",null);M(this,"_fsPath",null)}get fsPath(){return this._fsPath||(this._fsPath=y(this,!1)),this._fsPath}toString(R=!1){return R?w(this,!0):(this._formatted||(this._formatted=w(this,!1)),this._formatted)}toJSON(){let R={$mid:1};return this._fsPath&&(R.fsPath=this._fsPath,R._sep=p),this._formatted&&(R.external=this._formatted),this.path&&(R.path=this.path),this.scheme&&(R.scheme=this.scheme),this.authority&&(R.authority=this.authority),this.query&&(R.query=this.query),this.fragment&&(R.fragment=this.fragment),R}}let g={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function E(D,I,R){let P,A=-1;for(let L=0;L<D.length;L++){let T=D.charCodeAt(L);if(T>=97&&T<=122||T>=65&&T<=90||T>=48&&T<=57||T===45||T===46||T===95||T===126||I&&T===47||R&&T===91||R&&T===93||R&&T===58)A!==-1&&(P+=encodeURIComponent(D.substring(A,L)),A=-1),P!==void 0&&(P+=D.charAt(L));else{P===void 0&&(P=D.substr(0,L));let O=g[T];O!==void 0?(A!==-1&&(P+=encodeURIComponent(D.substring(A,L)),A=-1),P+=O):A===-1&&(A=L)}}return A!==-1&&(P+=encodeURIComponent(D.substring(A))),P!==void 0?P:D}function x(D){let I;for(let R=0;R<D.length;R++){let P=D.charCodeAt(R);P===35||P===63?(I===void 0&&(I=D.substr(0,R)),I+=g[P]):I!==void 0&&(I+=D[R])}return I!==void 0?I:D}function y(D,I){let R;return R=D.authority&&D.path.length>1&&D.scheme==="file"?`//${D.authority}${D.path}`:D.path.charCodeAt(0)===47&&(D.path.charCodeAt(1)>=65&&D.path.charCodeAt(1)<=90||D.path.charCodeAt(1)>=97&&D.path.charCodeAt(1)<=122)&&D.path.charCodeAt(2)===58?I?D.path.substr(1):D.path[1].toLowerCase()+D.path.substr(2):D.path,i&&(R=R.replace(/\//g,"\\")),R}function w(D,I){let R=I?x:E,P="",{scheme:A,authority:L,path:T,query:O,fragment:S}=D;if(A&&(P+=A,P+=":"),(L||A==="file")&&(P+=u,P+=u),L){let F=L.indexOf("@");if(F!==-1){let z=L.substr(0,F);L=L.substr(F+1),F=z.lastIndexOf(":"),F===-1?P+=R(z,!1,!1):(P+=R(z.substr(0,F),!1,!1),P+=":",P+=R(z.substr(F+1),!1,!0)),P+="@"}L=L.toLowerCase(),F=L.lastIndexOf(":"),F===-1?P+=R(L,!1,!0):(P+=R(L.substr(0,F),!1,!0),P+=L.substr(F))}if(T){if(T.length>=3&&T.charCodeAt(0)===47&&T.charCodeAt(2)===58){let F=T.charCodeAt(1);F>=65&&F<=90&&(T=`/${String.fromCharCode(F+32)}:${T.substr(3)}`)}else if(T.length>=2&&T.charCodeAt(1)===58){let F=T.charCodeAt(0);F>=65&&F<=90&&(T=`${String.fromCharCode(F+32)}:${T.substr(2)}`)}P+=R(T,!0,!1)}return O&&(P+="?",P+=R(O,!1,!1)),S&&(P+="#",P+=I?S:E(S,!1,!1)),P}function _(D){try{return decodeURIComponent(D)}catch{return D.length>3?D.substr(0,3)+_(D.substr(3)):D}}let k=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function N(D){return D.match(k)?D.replace(k,(I=>_(I))):D}var B=n(975);let $=B.posix||B,X="/";var j;(function(D){D.joinPath=function(I,...R){return I.with({path:$.join(I.path,...R)})},D.resolvePath=function(I,...R){let P=I.path,A=!1;P[0]!==X&&(P=X+P,A=!0);let L=$.resolve(P,...R);return A&&L[0]===X&&!I.authority&&(L=L.substring(1)),I.with({path:L})},D.dirname=function(I){if(I.path.length===0||I.path===X)return I;let R=$.dirname(I.path);return R.length===1&&R.charCodeAt(0)===46&&(R=""),I.with({path:R})},D.basename=function(I){return $.basename(I.path)},D.extname=function(I){return $.extname(I.path)}})(j||(j={})),zv=r})();var{URI:Ce,Utils:$o}=zv;var Qe;(function(e){e.basename=$o.basename,e.dirname=$o.dirname,e.extname=$o.extname,e.joinPath=$o.joinPath,e.resolvePath=$o.resolvePath;let t=typeof process=="object"&&process?.platform==="win32";function n(s,a){return s?.toString()===a?.toString()}e.equals=n;function r(s,a){let l=typeof s=="string"?Ce.parse(s).path:s.path,c=typeof a=="string"?Ce.parse(a).path:a.path,u=l.split("/").filter(g=>g.length>0),f=c.split("/").filter(g=>g.length>0);if(t){let g=/^[A-Z]:$/;if(u[0]&&g.test(u[0])&&(u[0]=u[0].toLowerCase()),f[0]&&g.test(f[0])&&(f[0]=f[0].toLowerCase()),u[0]!==f[0])return c.substring(1)}let d=0;for(;d<u.length&&u[d]===f[d];d++);let p="../".repeat(u.length-d),m=f.slice(d).join("/");return p+m}e.relative=r;function i(s){return Ce.parse(s.toString()).toString()}e.normalize=i;function o(s,a){let l=typeof s=="string"?Ce.parse(s):s,c=typeof a=="string"?Ce.parse(a):a;if(l.scheme!==c.scheme)return!1;let u=l.path,f=c.path;return f.charAt(f.length-1)==="/"&&(f=f.slice(0,-1)),u.charAt(u.length-1)==="/"&&(u=u.slice(0,-1)),f===u?!0:f.length<u.length||f.charAt(u.length)!=="/"?!1:f.startsWith(u)}e.contains=o})(Qe||(Qe={}));var ju=class{constructor(){this.root={name:"",children:new Map}}normalizeUri(t){return Qe.normalize(t)}clear(){this.root.children.clear()}insert(t,n){let r=this.getNode(this.normalizeUri(t),!0);r.element=n}delete(t){let n=this.getNode(this.normalizeUri(t),!1);n?.parent&&n.parent.children.delete(n.name)}has(t){return this.getNode(this.normalizeUri(t),!1)?.element!==void 0}hasNode(t){return this.getNode(this.normalizeUri(t),!1)!==void 0}find(t){return this.getNode(this.normalizeUri(t),!1)?.element}findNode(t){let n=this.normalizeUri(t),r=this.getNode(n,!1);if(r)return{name:r.name,uri:Qe.joinPath(Ce.parse(n),r.name).toString(),element:r.element}}findChildren(t){let n=this.normalizeUri(t),r=this.getNode(n,!1);return r?Array.from(r.children.values()).map(i=>({name:i.name,uri:Qe.joinPath(Ce.parse(n),i.name).toString(),element:i.element})):[]}all(){return this.collectValues(this.root)}findAll(t){let n=this.getNode(this.normalizeUri(t),!1);return n?this.collectValues(n):[]}getNode(t,n){let r=t.split("/");t.charAt(t.length-1)==="/"&&r.pop();let i=this.root;for(let o of r){let s=i.children.get(o);if(!s)if(n)s={name:o,children:new Map,parent:i},i.children.set(o,s);else return;i=s}return i}collectValues(t){let n=[];t.element&&n.push(t.element);for(let r of t.children.values())n.push(...this.collectValues(r));return n}};var de;(function(e){e[e.Changed=0]="Changed",e[e.Parsed=1]="Parsed",e[e.IndexedContent=2]="IndexedContent",e[e.ComputedScopes=3]="ComputedScopes",e[e.Linked=4]="Linked",e[e.IndexedReferences=5]="IndexedReferences",e[e.Validated=6]="Validated"})(de||(de={}));var Yu=class{constructor(t){this.serviceRegistry=t.ServiceRegistry,this.textDocuments=t.workspace.TextDocuments,this.fileSystemProvider=t.workspace.FileSystemProvider}async fromUri(t,n=fe.CancellationToken.None){let r=await this.getInitialText(t,n);return this.createAsync(t,r,n)}async getInitialText(t,n){return this.fileSystemProvider.readFile(t)}fromTextDocument(t,n,r){return n=n??Ce.parse(t.uri),fe.CancellationToken.is(r)?this.createAsync(n,t,r):this.create(n,t,r)}fromString(t,n,r){return fe.CancellationToken.is(r)?this.createAsync(n,t,r):this.create(n,t,r)}fromModel(t,n){return this.create(n,{$model:t})}create(t,n,r){if(typeof n=="string"){let i=this.parse(t,n,r);return this.createLangiumDocument(i,t,void 0,n)}else if("$model"in n){let i={value:n.$model,parserErrors:[],lexerErrors:[]};return this.createLangiumDocument(i,t)}else{let i=this.parse(t,n.getText(),r);return this.createLangiumDocument(i,t,n)}}async createAsync(t,n,r){if(typeof n=="string"){let i=await this.parseAsync(t,n,r);return this.createLangiumDocument(i,t,void 0,n)}else{let i=await this.parseAsync(t,n.getText(),r);return this.createLangiumDocument(i,t,n)}}createLangiumDocument(t,n,r,i){let o;if(r)o={parseResult:t,uri:n,state:de.Parsed,references:[],textDocument:r};else{let s=this.createTextDocumentGetter(n,i);o={parseResult:t,uri:n,state:de.Parsed,references:[],get textDocument(){return s()}}}return t.value.$document=o,o}async update(t,n){let r=t.parseResult.value.$cstNode?.root.fullText,i=this.textDocuments?.get(t.uri.toString()),o=await this.getUpdatedText(t,i,n);if(i)Object.defineProperty(t,"textDocument",{value:i});else{let s=this.createTextDocumentGetter(t.uri,o);Object.defineProperty(t,"textDocument",{get:s})}return r!==o&&(t.parseResult=await this.parseAsync(t.uri,o,n),t.parseResult.value.$document=t),t.state=de.Parsed,t}async getUpdatedText(t,n,r){return n?n.getText():await this.fileSystemProvider.readFile(t.uri)}parse(t,n,r){return this.serviceRegistry.getServices(t).parser.LangiumParser.parse(n,r)}parseAsync(t,n,r){return this.serviceRegistry.getServices(t).parser.AsyncParser.parse(n,r)}createTextDocumentGetter(t,n){let r=this.serviceRegistry,i;return()=>i??(i=Oa.create(t.toString(),r.getServices(t).LanguageMetaData.languageId,0,n??""))}},Vu=class{constructor(t){this.documentTrie=new ju,this.services=t,this.langiumDocumentFactory=t.workspace.LangiumDocumentFactory,this.documentBuilder=()=>t.workspace.DocumentBuilder}get all(){return ye(this.documentTrie.all())}addDocument(t){let n=t.uri.toString();if(this.documentTrie.has(n))throw new Error(`A document with the URI '${n}' is already present.`);this.documentTrie.insert(n,t)}getDocument(t){let n=t.toString();return this.documentTrie.find(n)}getDocuments(t){let n=t.toString();return this.documentTrie.findAll(n)}async getOrCreateDocument(t,n){let r=this.getDocument(t);return r||(r=await this.langiumDocumentFactory.fromUri(t,n),this.addDocument(r),r)}createDocument(t,n,r){if(r)return this.langiumDocumentFactory.fromString(n,t,r).then(i=>(this.addDocument(i),i));{let i=this.langiumDocumentFactory.fromString(n,t);return this.addDocument(i),i}}hasDocument(t){return this.documentTrie.has(t.toString())}invalidateDocument(t){let n=t.toString(),r=this.documentTrie.find(n);return r&&this.documentBuilder().resetToState(r,de.Changed),r}deleteDocument(t){let n=t.toString(),r=this.documentTrie.find(n);return r&&(r.state=de.Changed,this.documentTrie.delete(n)),r}deleteDocuments(t){let n=t.toString(),r=this.documentTrie.findAll(n);for(let i of r)i.state=de.Changed;return this.documentTrie.delete(n),r}};var Do=Symbol("RefResolving"),jm=class{constructor(t,n,r,i,o){this.resolver=t,this.node=n,this.property=r,this._ref=void 0,this.$refNode=i,this.$refText=o}get ref(){return this.resolver.resolveReference(this,this.node,this.property)}get $nodeDescription(){return this._nodeDescription}get error(){return Ui(this._ref)?this._ref:void 0}},Ym=class{constructor(t,n,r,i,o){this.resolver=t,this.node=n,this.property=r,this._items=void 0,this.$refNode=i,this.$refText=o}get items(){return this.resolver.resolveMultiReference(this,this.node,this.property)}get error(){return this._linkingError}},Ku=class{constructor(t){this.reflection=t.shared.AstReflection,this.langiumDocuments=()=>t.shared.workspace.LangiumDocuments,this.scopeProvider=t.references.ScopeProvider,this.astNodeLocator=t.workspace.AstNodeLocator,this.profiler=t.shared.profilers.LangiumProfiler,this.languageId=t.LanguageMetaData.languageId,this.referenceResolver={resolveReference:this.resolveReference.bind(this),resolveMultiReference:this.resolveMultiReference.bind(this)}}async link(t,n=fe.CancellationToken.None){if(this.profiler?.isActive("linking")){let r=this.profiler.createTask("linking",this.languageId);r.start();try{for(let i of yt(t.parseResult.value))await Ge(n),Gr(i).forEach(o=>{let s=`${i.$type}:${o.property}`;r.startSubTask(s);try{this.doLink(o,t)}finally{r.stopSubTask(s)}})}finally{r.stop()}}else for(let r of yt(t.parseResult.value))await Ge(n),Gr(r).forEach(i=>this.doLink(i,t))}doLink(t,n){let r=t.reference;if("_ref"in r&&r._ref===void 0){r._ref=Do;try{let i=this.getCandidate(t);if(Ui(i))r._ref=i;else{r._nodeDescription=i;let o=this.loadAstNode(i);r._ref=o??this.createLinkingError(t,i)}}catch(i){console.error(`An error occurred while resolving reference to '${r.$refText}':`,i);let o=i.message??String(i);r._ref={info:t,message:`An error occurred while resolving reference to '${r.$refText}': ${o}`}}n.references.push(r)}else if("_items"in r&&r._items===void 0){r._items=Do;try{let i=this.getCandidates(t),o=[];if(Ui(i))r._linkingError=i;else for(let s of i){let a=this.loadAstNode(s);a&&o.push({ref:a,$nodeDescription:s})}r._items=o}catch(i){r._linkingError={info:t,message:`An error occurred while resolving reference to '${r.$refText}': ${i}`},r._items=[]}n.references.push(r)}}unlink(t){for(let n of t.references)"_ref"in n?(n._ref=void 0,delete n._nodeDescription):"_items"in n&&(n._items=void 0,delete n._linkingError);t.references=[]}getCandidate(t){return this.scopeProvider.getScope(t).getElement(t.reference.$refText)??this.createLinkingError(t)}getCandidates(t){let r=this.scopeProvider.getScope(t).getElements(t.reference.$refText).distinct(i=>`${i.documentUri}#${i.path}`).toArray();return r.length>0?r:this.createLinkingError(t)}buildReference(t,n,r,i){return new jm(this.referenceResolver,t,n,r,i)}buildMultiReference(t,n,r,i){return new Ym(this.referenceResolver,t,n,r,i)}resolveReference(t,n,r){if(Ue(t._ref))return t._ref;if(pE(t._nodeDescription)){let i=this.loadAstNode(t._nodeDescription);t._ref=i??this.createLinkingError({reference:t,container:n,property:r},t._nodeDescription)}else if(t._ref===void 0){t._ref=Do;let i=Xs(n).$document,o=this.getLinkedNode({reference:t,container:n,property:r});if(o.error&&i&&i.state<de.ComputedScopes)return t._ref=void 0;t._ref=o.node??o.error,t._nodeDescription=o.descr,i?.references.push(t)}else t._ref===Do&&this.throwCyclicReferenceError(n,r,t.$refText);return Ue(t._ref)?t._ref:void 0}resolveMultiReference(t,n,r){if(Array.isArray(t._items))return t._items;if(t._items===void 0){t._items=Do;let i=Xs(n).$document,o=this.getCandidates({reference:t,container:n,property:r}),s=[];if(Ui(o))t._linkingError=o;else{for(let a of o){let l=this.loadAstNode(a);l&&s.push({ref:l,$nodeDescription:a})}s.length===0&&(t._linkingError=this.createLinkingError({reference:t,container:n,property:r}))}t._items=s,i?.references.push(t)}else t._items===Do&&this.throwCyclicReferenceError(n,r,t.$refText);return Array.isArray(t._items)?t._items:[]}throwCyclicReferenceError(t,n,r){throw new Error(`Cyclic reference resolution detected: ${this.astNodeLocator.getAstNodePath(t)}/${n} (symbol '${r}')`)}getLinkedNode(t){try{let n=this.getCandidate(t);if(Ui(n))return{error:n};let r=this.loadAstNode(n);return r?{node:r,descr:n}:{descr:n,error:this.createLinkingError(t,n)}}catch(n){console.error(`An error occurred while resolving reference to '${t.reference.$refText}':`,n);let r=n.message??String(n);return{error:{info:t,message:`An error occurred while resolving reference to '${t.reference.$refText}': ${r}`}}}}loadAstNode(t){if(t.node)return t.node;let n=this.langiumDocuments().getDocument(t.documentUri);if(n)return this.astNodeLocator.getAstNode(n.parseResult.value,t.path)}createLinkingError(t,n){let r=Xs(t.container).$document;r&&r.state<de.ComputedScopes&&console.warn(`Attempted reference resolution before document reached ComputedScopes state (${r.uri}).`);let i=this.reflection.getReferenceType(t);return{info:t,message:`Could not resolve reference to ${i} named '${t.reference.$refText}'.`,targetDescription:n}}};function SM(e){return typeof e.name=="string"}var qu=class{getName(t){if(SM(t))return t.name}getNameNode(t){return ra(t.$cstNode,"name")}};var Zu=class{constructor(t){this.nameProvider=t.references.NameProvider,this.index=t.shared.workspace.IndexManager,this.nodeLocator=t.workspace.AstNodeLocator,this.documents=t.shared.workspace.LangiumDocuments,this.hasMultiReference=yt(t.Grammar).some(n=>dn(n)&&n.isMulti)}findDeclarations(t){if(t){let n=gh(t),r=t.astNode;if(n&&r){let i=r[n.feature];if(it(i)||Dt(i))return Gp(i);if(Array.isArray(i)){for(let o of i)if((it(o)||Dt(o))&&o.$refNode&&o.$refNode.offset<=t.offset&&o.$refNode.end>=t.end)return Gp(o)}}if(r){let i=this.nameProvider.getNameNode(r);if(i&&(i===t||UE(t,i)))return this.getSelfNodes(r)}}return[]}getSelfNodes(t){if(this.hasMultiReference){let n=this.index.findAllReferences(t,this.nodeLocator.getAstNodePath(t)),r=this.getNodeFromReferenceDescription(n.head());if(r){for(let i of Gr(r))if(Dt(i.reference)&&i.reference.items.some(o=>o.ref===t))return i.reference.items.map(o=>o.ref)}return[t]}else return[t]}getNodeFromReferenceDescription(t){if(!t)return;let n=this.documents.getDocument(t.sourceUri);if(n)return this.nodeLocator.getAstNode(n.parseResult.value,t.sourcePath)}findDeclarationNodes(t){let n=this.findDeclarations(t),r=[];for(let i of n){let o=this.nameProvider.getNameNode(i)??i.$cstNode;o&&r.push(o)}return r}findReferences(t,n){let r=[];n.includeDeclaration&&r.push(...this.getSelfReferences(t));let i=this.index.findAllReferences(t,this.nodeLocator.getAstNodePath(t));return n.documentUri&&(i=i.filter(o=>Qe.equals(o.sourceUri,n.documentUri))),r.push(...i),ye(r)}getSelfReferences(t){let n=this.getSelfNodes(t),r=[];for(let i of n){let o=this.nameProvider.getNameNode(i);if(o){let s=st(i),a=this.nodeLocator.getAstNodePath(i);r.push({sourceUri:s.uri,sourcePath:a,targetUri:s.uri,targetPath:a,segment:Qi(o),local:!0})}}return r}};var Zt=class{constructor(t){if(this.map=new Map,t)for(let[n,r]of t)this.add(n,r)}get size(){return rc.sum(ye(this.map.values()).map(t=>t.length))}clear(){this.map.clear()}delete(t,n){if(n===void 0)return this.map.delete(t);{let r=this.map.get(t);if(r){let i=r.indexOf(n);if(i>=0)return r.length===1?this.map.delete(t):r.splice(i,1),!0}return!1}}get(t){return this.map.get(t)??[]}getStream(t){let n=this.map.get(t);return n?ye(n):ic}has(t,n){if(n===void 0)return this.map.has(t);{let r=this.map.get(t);return r?r.indexOf(n)>=0:!1}}add(t,n){return this.map.has(t)?this.map.get(t).push(n):this.map.set(t,[n]),this}addAll(t,n){return this.map.has(t)?this.map.get(t).push(...n):this.map.set(t,Array.from(n)),this}forEach(t){this.map.forEach((n,r)=>n.forEach(i=>t(i,r,this)))}[Symbol.iterator](){return this.entries().iterator()}entries(){return ye(this.map.entries()).flatMap(([t,n])=>n.map(r=>[t,r]))}keys(){return ye(this.map.keys())}values(){return ye(this.map.values()).flat()}entriesGroupedByKey(){return ye(this.map.entries())}},Pa=class{get size(){return this.map.size}constructor(t){if(this.map=new Map,this.inverse=new Map,t)for(let[n,r]of t)this.set(n,r)}clear(){this.map.clear(),this.inverse.clear()}set(t,n){return this.map.set(t,n),this.inverse.set(n,t),this}get(t){return this.map.get(t)}getKey(t){return this.inverse.get(t)}delete(t){let n=this.map.get(t);return n!==void 0?(this.map.delete(t),this.inverse.delete(n),!0):!1}};var Ju=class{constructor(t){this.nameProvider=t.references.NameProvider,this.descriptions=t.workspace.AstNodeDescriptionProvider}async collectExportedSymbols(t,n=fe.CancellationToken.None){return this.collectExportedSymbolsForNode(t.parseResult.value,t,void 0,n)}async collectExportedSymbolsForNode(t,n,r=sc,i=fe.CancellationToken.None){let o=[];this.addExportedSymbol(t,o,n);for(let s of r(t))await Ge(i),this.addExportedSymbol(s,o,n);return o}addExportedSymbol(t,n,r){let i=this.nameProvider.getName(t);i&&n.push(this.descriptions.createDescription(t,i,r))}async collectLocalSymbols(t,n=fe.CancellationToken.None){let r=t.parseResult.value,i=new Zt;for(let o of cn(r))await Ge(n),this.addLocalSymbol(o,t,i);return i}addLocalSymbol(t,n,r){let i=t.$container;if(i){let o=this.nameProvider.getName(t);o&&r.add(i,this.descriptions.createDescription(t,o,n))}}};var Ca=class{constructor(t,n,r){this.elements=t,this.outerScope=n,this.caseInsensitive=r?.caseInsensitive??!1,this.concatOuterScope=r?.concatOuterScope??!0}getAllElements(){return this.outerScope?this.elements.concat(this.outerScope.getAllElements()):this.elements}getElement(t){let n=this.caseInsensitive?t.toLowerCase():t,r=this.caseInsensitive?this.elements.find(i=>i.name.toLowerCase()===n):this.elements.find(i=>i.name===t);if(r)return r;if(this.outerScope)return this.outerScope.getElement(t)}getElements(t){let n=this.caseInsensitive?t.toLowerCase():t,r=this.caseInsensitive?this.elements.filter(i=>i.name.toLowerCase()===n):this.elements.filter(i=>i.name===t);return(this.concatOuterScope||r.isEmpty())&&this.outerScope?r.concat(this.outerScope.getElements(t)):r}};var Qu=class{constructor(t,n,r){this.elements=new Zt,this.caseInsensitive=r?.caseInsensitive??!1,this.concatOuterScope=r?.concatOuterScope??!0;for(let i of t){let o=this.caseInsensitive?i.name.toLowerCase():i.name;this.elements.add(o,i)}this.outerScope=n}getElement(t){let n=this.caseInsensitive?t.toLowerCase():t,r=this.elements.get(n)[0];if(r)return r;if(this.outerScope)return this.outerScope.getElement(t)}getElements(t){let n=this.caseInsensitive?t.toLowerCase():t,r=this.elements.get(n);return(this.concatOuterScope||r.length===0)&&this.outerScope?ye(r).concat(this.outerScope.getElements(t)):ye(r)}getAllElements(){let t=ye(this.elements.values());return this.outerScope&&(t=t.concat(this.outerScope.getAllElements())),t}};var ef=class{constructor(){this.toDispose=[],this.isDisposed=!1}onDispose(t){this.toDispose.push(t)}dispose(){this.throwIfDisposed(),this.clear(),this.isDisposed=!0,this.toDispose.forEach(t=>t.dispose())}throwIfDisposed(){if(this.isDisposed)throw new Error("This cache has already been disposed")}},Vm=class extends ef{constructor(){super(...arguments),this.cache=new Map}has(t){return this.throwIfDisposed(),this.cache.has(t)}set(t,n){this.throwIfDisposed(),this.cache.set(t,n)}get(t,n){if(this.throwIfDisposed(),this.cache.has(t))return this.cache.get(t);if(n){let r=n();return this.cache.set(t,r),r}else return}delete(t){return this.throwIfDisposed(),this.cache.delete(t)}clear(){this.throwIfDisposed(),this.cache.clear()}},tf=class extends ef{constructor(t){super(),this.cache=new Map,this.converter=t??(n=>n)}has(t,n){return this.throwIfDisposed(),this.cacheForContext(t).has(n)}set(t,n,r){this.throwIfDisposed(),this.cacheForContext(t).set(n,r)}get(t,n,r){this.throwIfDisposed();let i=this.cacheForContext(t);if(i.has(n))return i.get(n);if(r){let o=r();return i.set(n,o),o}else return}delete(t,n){return this.throwIfDisposed(),this.cacheForContext(t).delete(n)}clear(t){if(this.throwIfDisposed(),t){let n=this.converter(t);this.cache.delete(n)}else this.cache.clear()}cacheForContext(t){let n=this.converter(t),r=this.cache.get(n);return r||(r=new Map,this.cache.set(n,r)),r}};var nf=class extends Vm{constructor(t,n){super(),n?(this.toDispose.push(t.workspace.DocumentBuilder.onBuildPhase(n,()=>{this.clear()})),this.toDispose.push(t.workspace.DocumentBuilder.onUpdate((r,i)=>{i.length>0&&this.clear()}))):this.toDispose.push(t.workspace.DocumentBuilder.onUpdate(()=>{this.clear()}))}};var rf=class{constructor(t){this.reflection=t.shared.AstReflection,this.nameProvider=t.references.NameProvider,this.descriptions=t.workspace.AstNodeDescriptionProvider,this.indexManager=t.shared.workspace.IndexManager,this.globalScopeCache=new nf(t.shared)}getScope(t){let n=[],r=this.reflection.getReferenceType(t),i=st(t.container).localSymbols;if(i){let s=t.container;do i.has(s)&&n.push(i.getStream(s).filter(a=>this.reflection.isSubtype(a.type,r))),s=s.$container;while(s)}let o=this.getGlobalScope(r,t);for(let s=n.length-1;s>=0;s--)o=this.createScope(n[s],o);return o}createScope(t,n,r){return new Ca(ye(t),n,r)}createScopeForNodes(t,n,r){let i=ye(t).map(o=>{let s=this.nameProvider.getName(o);if(s)return this.descriptions.createDescription(o,s)}).nonNullable();return new Ca(i,n,r)}getGlobalScope(t,n){return this.globalScopeCache.get(t,()=>new Qu(this.indexManager.allElements(t)))}};function Yv(e){return typeof e.$comment=="string"}function jv(e){return typeof e=="object"&&!!e&&("$ref"in e||"$refs"in e||"$error"in e)}var of=class{constructor(t){this.ignoreProperties=new Set(["$container","$containerProperty","$containerIndex","$document","$cstNode"]),this.langiumDocuments=t.shared.workspace.LangiumDocuments,this.astNodeLocator=t.workspace.AstNodeLocator,this.nameProvider=t.references.NameProvider,this.commentProvider=t.documentation.CommentProvider}serialize(t,n){let r=n??{},i=n?.replacer,o=(a,l)=>this.replacer(a,l,r),s=i?(a,l)=>i(a,l,o):o;try{return this.currentDocument=st(t),JSON.stringify(t,s,n?.space)}finally{this.currentDocument=void 0}}deserialize(t,n){let r=n??{},i=JSON.parse(t);return this.linkNode(i,i,r),i}replacer(t,n,{refText:r,sourceText:i,textRegions:o,comments:s,uriConverter:a}){if(!this.ignoreProperties.has(t))if(it(n)){let l=n.ref,c=r?n.$refText:void 0;if(l){let u=st(l),f="";this.currentDocument&&this.currentDocument!==u&&(a?f=a(u.uri,l):f=u.uri.toString());let d=this.astNodeLocator.getAstNodePath(l);return{$ref:`${f}#${d}`,$refText:c}}else return{$error:n.error?.message??"Could not resolve reference",$refText:c}}else if(Dt(n)){let l=r?n.$refText:void 0,c=[];for(let u of n.items){let f=u.ref,d=st(u.ref),p="";this.currentDocument&&this.currentDocument!==d&&(a?p=a(d.uri,f):p=d.uri.toString());let m=this.astNodeLocator.getAstNodePath(f);c.push(`${p}#${m}`)}return{$refs:c,$refText:l}}else if(Ue(n)){let l;if(o&&(l=this.addAstNodeRegionWithAssignmentsTo({...n}),(!t||n.$document)&&l?.$textRegion&&(l.$textRegion.documentURI=this.currentDocument?.uri.toString())),i&&!t&&(l??(l={...n}),l.$sourceText=n.$cstNode?.text),s){l??(l={...n});let c=this.commentProvider.getComment(n);c&&(l.$comment=c.replace(/\r/g,""))}return l??n}else return n}addAstNodeRegionWithAssignmentsTo(t){let n=r=>({offset:r.offset,end:r.end,length:r.length,range:r.range});if(t.$cstNode){let r=t.$textRegion=n(t.$cstNode),i=r.assignments={};return Object.keys(t).filter(o=>!o.startsWith("$")).forEach(o=>{let s=dh(t.$cstNode,o).map(n);s.length!==0&&(i[o]=s)}),t}}linkNode(t,n,r,i,o,s){for(let[l,c]of Object.entries(t))if(Array.isArray(c))for(let u=0;u<c.length;u++){let f=c[u];jv(f)?c[u]=this.reviveReference(t,l,n,f,r):Ue(f)&&this.linkNode(f,n,r,t,l,u)}else jv(c)?t[l]=this.reviveReference(t,l,n,c,r):Ue(c)&&this.linkNode(c,n,r,t,l);let a=t;a.$container=i,a.$containerProperty=o,a.$containerIndex=s}reviveReference(t,n,r,i,o){let s=i.$refText,a=i.$error,l;if(i.$ref){let c=this.getRefNode(r,i.$ref,o.uriConverter);if(Ue(c))return s||(s=this.nameProvider.getName(c)),{$refText:s??"",ref:c};a=c}else if(i.$refs){let c=[];for(let u of i.$refs){let f=this.getRefNode(r,u,o.uriConverter);Ue(f)&&c.push({ref:f})}if(c.length===0)l={$refText:s??"",items:c},a??(a="Could not resolve multi-reference");else return{$refText:s??"",items:c}}if(a)return l??(l={$refText:s??"",ref:void 0}),l.error={info:{container:t,property:n,reference:l},message:a},l}getRefNode(t,n,r){try{let i=n.indexOf("#");if(i===0){let l=this.astNodeLocator.getAstNode(t,n.substring(1));return l||"Could not resolve path: "+n}if(i<0){let l=r?r(n):Ce.parse(n),c=this.langiumDocuments.getDocument(l);return c?c.parseResult.value:"Could not find document for URI: "+n}let o=r?r(n.substring(0,i)):Ce.parse(n.substring(0,i)),s=this.langiumDocuments.getDocument(o);if(!s)return"Could not find document for URI: "+n;if(i===n.length-1)return s.parseResult.value;let a=this.astNodeLocator.getAstNode(s.parseResult.value,n.substring(i+1));return a||"Could not resolve URI: "+n}catch(i){return String(i)}}};var sf=class{get map(){return this.fileExtensionMap}constructor(t){this.languageIdMap=new Map,this.fileExtensionMap=new Map,this.fileNameMap=new Map,this.textDocuments=t?.workspace.TextDocuments}register(t){let n=t.LanguageMetaData;for(let r of n.fileExtensions)this.fileExtensionMap.has(r)&&console.warn(`The file extension ${r} is used by multiple languages. It is now assigned to '${n.languageId}'.`),this.fileExtensionMap.set(r,t);if(n.fileNames)for(let r of n.fileNames)this.fileNameMap.has(r)&&console.warn(`The file name ${r} is used by multiple languages. It is now assigned to '${n.languageId}'.`),this.fileNameMap.set(r,t);this.languageIdMap.set(n.languageId,t)}getServices(t){if(this.languageIdMap.size===0)throw new Error("The service registry is empty. Use `register` to register the services of a language.");let n=this.textDocuments?.get(t)?.languageId;if(n!==void 0){let s=this.languageIdMap.get(n);if(s)return s}let r=Qe.extname(t),i=Qe.basename(t),o=this.fileNameMap.get(i)??this.fileExtensionMap.get(r);if(!o)throw n?new Error(`The service registry contains no services for the extension '${r}' for language '${n}'.`):new Error(`The service registry contains no services for the extension '${r}'.`);return o}hasServices(t){try{return this.getServices(t),!0}catch{return!1}}get all(){return Array.from(this.languageIdMap.values())}};function Mo(e){return{code:e}}var Km;(function(e){e.defaults=["fast","slow","built-in"],e.all=e.defaults})(Km||(Km={}));var af=class{constructor(t){this.entries=new Zt,this.knownCategories=new Set(Km.defaults),this.entriesBefore=[],this.entriesAfter=[],this.reflection=t.shared.AstReflection}register(t,n=this,r="fast"){if(r==="built-in")throw new Error("The 'built-in' category is reserved for lexer, parser, and linker errors.");this.knownCategories.add(r);for(let[i,o]of Object.entries(t)){let s=o;if(Array.isArray(s))for(let a of s){let l={check:this.wrapValidationException(a,n),category:r};this.addEntry(i,l)}else if(typeof s=="function"){let a={check:this.wrapValidationException(s,n),category:r};this.addEntry(i,a)}else sr(s)}}wrapValidationException(t,n){return async(r,i,o)=>{await this.handleException(()=>t.call(n,r,i,o),"An error occurred during validation",i,r)}}async handleException(t,n,r,i){try{await t()}catch(o){if(Rr(o))throw o;console.error(`${n}:`,o),o instanceof Error&&o.stack&&console.error(o.stack);let s=o instanceof Error?o.message:String(o);r("error",`${n}: ${s}`,{node:i})}}addEntry(t,n){if(t==="AstNode"){this.entries.add("AstNode",n);return}for(let r of this.reflection.getAllSubTypes(t))this.entries.add(r,n)}getChecks(t,n){let r=ye(this.entries.get(t)).concat(this.entries.get("AstNode"));return n&&(r=r.filter(i=>n.includes(i.category))),r.map(i=>i.check)}registerBeforeDocument(t,n=this){this.entriesBefore.push(this.wrapPreparationException(t,"An error occurred during set-up of the validation",n))}registerAfterDocument(t,n=this){this.entriesAfter.push(this.wrapPreparationException(t,"An error occurred during tear-down of the validation",n))}wrapPreparationException(t,n,r){return async(i,o,s,a)=>{await this.handleException(()=>t.call(r,i,o,s,a),n,o,i)}}get checksBefore(){return this.entriesBefore}get checksAfter(){return this.entriesAfter}getAllValidationCategories(t){return this.knownCategories}};var bM=Object.freeze({validateNode:!0,validateChildren:!0}),lf=class{constructor(t){this.validationRegistry=t.validation.ValidationRegistry,this.metadata=t.LanguageMetaData,this.profiler=t.shared.profilers.LangiumProfiler,this.languageId=t.LanguageMetaData.languageId}async validateDocument(t,n={},r=fe.CancellationToken.None){let i=t.parseResult,o=[];if(await Ge(r),(!n.categories||n.categories.includes("built-in"))&&(this.processLexingErrors(i,o,n),n.stopAfterLexingErrors&&o.some(s=>s.data?.code===Jt.LexingError)||(this.processParsingErrors(i,o,n),n.stopAfterParsingErrors&&o.some(s=>s.data?.code===Jt.ParsingError))||(this.processLinkingErrors(t,o,n),n.stopAfterLinkingErrors&&o.some(s=>s.data?.code===Jt.LinkingError))))return o;try{o.push(...await this.validateAst(i.value,n,r))}catch(s){if(Rr(s))throw s;console.error("An error occurred during validation:",s)}return await Ge(r),o}processLexingErrors(t,n,r){let i=[...t.lexerErrors,...t.lexerReport?.diagnostics??[]];for(let o of i){let s=o.severity??"error",a={severity:qm(s),range:{start:{line:o.line-1,character:o.column-1},end:{line:o.line-1,character:o.column+o.length-1}},message:o.message,data:NM(s),source:this.getSource()};n.push(a)}}processParsingErrors(t,n,r){for(let i of t.parserErrors){let o;if(Zs(i.token))o=GE(i.token);else if("previousToken"in i){let s=i.previousToken;if(Zs(s)){let a={line:s.endLine-1,character:s.endColumn};o={start:a,end:a}}else{let a={line:0,character:0};o={start:a,end:a}}}if(o){let s={severity:qm("error"),range:o,message:i.message,data:Mo(Jt.ParsingError),source:this.getSource()};n.push(s)}}}processLinkingErrors(t,n,r){for(let i of t.references){let o=i.error;if(o){let s={node:o.info.container,range:i.$refNode?.range,property:o.info.property,index:o.info.index,data:{code:Jt.LinkingError,containerType:o.info.container.$type,property:o.info.property,refText:o.info.reference.$refText}};n.push(this.toDiagnostic("error",o.message,s))}}}async validateAst(t,n,r=fe.CancellationToken.None){let i=[],o=(s,a,l)=>{i.push(this.toDiagnostic(s,a,l))};return await this.validateAstBefore(t,n,o,r),await this.validateAstNodes(t,n,o,r),await this.validateAstAfter(t,n,o,r),i}async validateAstBefore(t,n,r,i=fe.CancellationToken.None){let o=this.validationRegistry.checksBefore;for(let s of o)await Ge(i),await s(t,r,n.categories??[],i)}async validateAstNodes(t,n,r,i=fe.CancellationToken.None){if(this.profiler?.isActive("validating")){let o=this.profiler.createTask("validating",this.languageId);o.start();try{let s=yt(t).iterator();for(let a of s){o.startSubTask(a.$type);let l=this.validateSingleNodeOptions(a,n);if(l.validateNode)try{let c=this.validationRegistry.getChecks(a.$type,n.categories);for(let u of c)await u(a,r,i)}finally{o.stopSubTask(a.$type)}l.validateChildren||s.prune()}}finally{o.stop()}}else{let o=yt(t).iterator();for(let s of o){await Ge(i);let a=this.validateSingleNodeOptions(s,n);if(a.validateNode){let l=this.validationRegistry.getChecks(s.$type,n.categories);for(let c of l)await c(s,r,i)}a.validateChildren||o.prune()}}}validateSingleNodeOptions(t,n){return bM}async validateAstAfter(t,n,r,i=fe.CancellationToken.None){let o=this.validationRegistry.checksAfter;for(let s of o)await Ge(i),await s(t,r,n.categories??[],i)}toDiagnostic(t,n,r){return{message:n,range:Zm(r),severity:qm(t),code:r.code,codeDescription:r.codeDescription,tags:r.tags,relatedInformation:r.relatedInformation,data:r.data,source:this.getSource()}}getSource(){return this.metadata.languageId}};function Zm(e){if(e.range)return e.range;let t;return typeof e.property=="string"?t=ra(e.node.$cstNode,e.property,e.index):typeof e.keyword=="string"&&(t=hh(e.node.$cstNode,e.keyword,e.index)),t??(t=e.node.$cstNode),t?t.range:{start:{line:0,character:0},end:{line:0,character:0}}}function qm(e){switch(e){case"error":return 1;case"warning":return 2;case"info":return 3;case"hint":return 4;default:throw new Error("Invalid diagnostic severity: "+e)}}function NM(e){switch(e){case"error":return Mo(Jt.LexingError);case"warning":return Mo(Jt.LexingWarning);case"info":return Mo(Jt.LexingInfo);case"hint":return Mo(Jt.LexingHint);default:throw new Error("Invalid diagnostic severity: "+e)}}var Jt;(function(e){e.LexingError="lexing-error",e.LexingWarning="lexing-warning",e.LexingInfo="lexing-info",e.LexingHint="lexing-hint",e.ParsingError="parsing-error",e.LinkingError="linking-error"})(Jt||(Jt={}));var cf=class{constructor(t){this.astNodeLocator=t.workspace.AstNodeLocator,this.nameProvider=t.references.NameProvider}createDescription(t,n,r){let i=r??st(t);n??(n=this.nameProvider.getName(t));let o=this.astNodeLocator.getAstNodePath(t);if(!n)throw new Error(`Node at path ${o} has no name.`);let s,a=()=>s??(s=Qi(this.nameProvider.getNameNode(t)??t.$cstNode));return{node:t,name:n,get nameSegment(){return a()},selectionSegment:Qi(t.$cstNode),type:t.$type,documentUri:i.uri,path:o}}},uf=class{constructor(t){this.nodeLocator=t.workspace.AstNodeLocator}async createDescriptions(t,n=fe.CancellationToken.None){let r=[],i=t.parseResult.value;for(let o of yt(i))await Ge(n),Gr(o).forEach(s=>{s.reference.error||r.push(...this.createInfoDescriptions(s))});return r}createInfoDescriptions(t){let n=t.reference;if(n.error||!n.$refNode)return[];let r=[];it(n)&&n.$nodeDescription?r=[n.$nodeDescription]:Dt(n)&&(r=n.items.map(l=>l.$nodeDescription).filter(l=>l!==void 0));let i=st(t.container).uri,o=this.nodeLocator.getAstNodePath(t.container),s=[],a=Qi(n.$refNode);for(let l of r)s.push({sourceUri:i,sourcePath:o,targetUri:l.documentUri,targetPath:l.path,segment:a,local:Qe.equals(l.documentUri,i)});return s}};var ff=class{constructor(){this.segmentSeparator="/",this.indexSeparator="@"}getAstNodePath(t){if(t.$container){let n=this.getAstNodePath(t.$container),r=this.getPathSegment(t);return n+this.segmentSeparator+r}return""}getPathSegment({$containerProperty:t,$containerIndex:n}){if(!t)throw new Error("Missing '$containerProperty' in AST node.");return n!==void 0?t+this.indexSeparator+n:t}getAstNode(t,n){return n.split(this.segmentSeparator).reduce((i,o)=>{if(!i||o.length===0)return i;let s=o.indexOf(this.indexSeparator);if(s>0){let a=o.substring(0,s),l=parseInt(o.substring(s+1));return i[a]?.[l]}return i[o]},t)}};var df=class{constructor(t){this._ready=new Ir,this.onConfigurationSectionUpdateEmitter=new Uu.Emitter,this.settings={},this.workspaceConfig=!1,this.serviceRegistry=t.ServiceRegistry}get ready(){return this._ready.promise}initialize(t){this.workspaceConfig=t.capabilities.workspace?.configuration??!1}async initialized(t){if(this.workspaceConfig){if(t.register){let n=this.serviceRegistry.all;t.register({section:n.map(r=>this.toSectionName(r.LanguageMetaData.languageId))})}if(t.fetchConfiguration){let n=this.serviceRegistry.all.map(i=>({section:this.toSectionName(i.LanguageMetaData.languageId)})),r=await t.fetchConfiguration(n);n.forEach((i,o)=>{this.updateSectionConfiguration(i.section,r[o])})}}this._ready.resolve()}updateConfiguration(t){typeof t.settings!="object"||t.settings===null||Object.entries(t.settings).forEach(([n,r])=>{this.updateSectionConfiguration(n,r),this.onConfigurationSectionUpdateEmitter.fire({section:n,configuration:r})})}updateSectionConfiguration(t,n){this.settings[t]=n}async getConfiguration(t,n){await this.ready;let r=this.toSectionName(t);if(this.settings[r])return this.settings[r][n]}toSectionName(t){return`${t}`}get onConfigurationSectionUpdate(){return this.onConfigurationSectionUpdateEmitter.event}};var Fo;(function(e){function t(n){return{dispose:async()=>await n()}}e.create=t})(Fo||(Fo={}));var pf=class{constructor(t){this.updateBuildOptions={validation:{categories:["built-in","fast"]}},this.updateListeners=[],this.buildPhaseListeners=new Zt,this.documentPhaseListeners=new Zt,this.buildState=new Map,this.documentBuildWaiters=new Map,this.currentState=de.Changed,this.langiumDocuments=t.workspace.LangiumDocuments,this.langiumDocumentFactory=t.workspace.LangiumDocumentFactory,this.textDocuments=t.workspace.TextDocuments,this.indexManager=t.workspace.IndexManager,this.fileSystemProvider=t.workspace.FileSystemProvider,this.workspaceManager=()=>t.workspace.WorkspaceManager,this.serviceRegistry=t.ServiceRegistry}async build(t,n={},r=fe.CancellationToken.None){for(let i of t){let o=i.uri.toString();if(i.state===de.Validated){if(typeof n.validation=="boolean"&&n.validation)this.resetToState(i,de.IndexedReferences);else if(typeof n.validation=="object"){let s=this.findMissingValidationCategories(i,n);s.length>0&&(this.buildState.set(o,{completed:!1,options:{validation:{categories:s}},result:this.buildState.get(o)?.result}),i.state=de.IndexedReferences)}}else this.buildState.delete(o)}this.currentState=de.Changed,await this.emitUpdate(t.map(i=>i.uri),[]),await this.buildDocuments(t,n,r)}async update(t,n,r=fe.CancellationToken.None){this.currentState=de.Changed;let i=[];for(let l of n){let c=this.langiumDocuments.deleteDocuments(l);for(let u of c)i.push(u.uri),this.cleanUpDeleted(u)}let o=(await Promise.all(t.map(l=>this.findChangedUris(l)))).flat();for(let l of o){let c=this.langiumDocuments.getDocument(l);c===void 0&&(c=this.langiumDocumentFactory.fromModel({$type:"INVALID"},l),c.state=de.Changed,this.langiumDocuments.addDocument(c)),this.resetToState(c,de.Changed)}let s=ye(o).concat(i).map(l=>l.toString()).toSet();this.langiumDocuments.all.filter(l=>!s.has(l.uri.toString())&&this.shouldRelink(l,s)).forEach(l=>this.resetToState(l,de.ComputedScopes)),await this.emitUpdate(o,i),await Ge(r);let a=this.sortDocuments(this.langiumDocuments.all.filter(l=>l.state<de.Validated||!this.buildState.get(l.uri.toString())?.completed||this.resultsAreIncomplete(l,this.updateBuildOptions)).toArray());await this.buildDocuments(a,this.updateBuildOptions,r)}resultsAreIncomplete(t,n){return this.findMissingValidationCategories(t,n).length>=1}findMissingValidationCategories(t,n){let r=this.buildState.get(t.uri.toString()),i=this.serviceRegistry.getServices(t.uri).validation.ValidationRegistry.getAllValidationCategories(t),o=r?.result?.validationChecks?new Set(r?.result?.validationChecks):r?.completed?i:new Set,s=n===void 0||n.validation===!0?i:typeof n.validation=="object"?n.validation.categories??i:[];return ye(s).filter(a=>!o.has(a)).toArray()}async findChangedUris(t){if(this.langiumDocuments.getDocument(t)??this.textDocuments?.get(t))return[t];try{let r=await this.fileSystemProvider.stat(t);if(r.isDirectory)return await this.workspaceManager().searchFolder(t);if(this.workspaceManager().shouldIncludeEntry(r))return[t]}catch{}return[]}async emitUpdate(t,n){await Promise.all(this.updateListeners.map(r=>r(t,n)))}sortDocuments(t){let n=0,r=t.length-1;for(;n<r;){for(;n<t.length&&this.hasTextDocument(t[n]);)n++;for(;r>=0&&!this.hasTextDocument(t[r]);)r--;n<r&&([t[n],t[r]]=[t[r],t[n]])}return t}hasTextDocument(t){return!!this.textDocuments?.get(t.uri)}shouldRelink(t,n){return t.references.some(r=>r.error!==void 0)?!0:this.indexManager.isAffected(t,n)}onUpdate(t){return this.updateListeners.push(t),Fo.create(()=>{let n=this.updateListeners.indexOf(t);n>=0&&this.updateListeners.splice(n,1)})}resetToState(t,n){switch(n){case de.Changed:case de.Parsed:this.indexManager.removeContent(t.uri);case de.IndexedContent:t.localSymbols=void 0;case de.ComputedScopes:this.serviceRegistry.getServices(t.uri).references.Linker.unlink(t);case de.Linked:this.indexManager.removeReferences(t.uri);case de.IndexedReferences:t.diagnostics=void 0,this.buildState.delete(t.uri.toString());case de.Validated:}t.state>n&&(t.state=n)}cleanUpDeleted(t){this.buildState.delete(t.uri.toString()),this.indexManager.remove(t.uri),t.state=de.Changed}async buildDocuments(t,n,r){this.prepareBuild(t,n),await this.runCancelable(t,de.Parsed,r,s=>this.langiumDocumentFactory.update(s,r)),await this.runCancelable(t,de.IndexedContent,r,s=>this.indexManager.updateContent(s,r)),await this.runCancelable(t,de.ComputedScopes,r,async s=>{let a=this.serviceRegistry.getServices(s.uri).references.ScopeComputation;s.localSymbols=await a.collectLocalSymbols(s,r)});let i=t.filter(s=>this.shouldLink(s));await this.runCancelable(i,de.Linked,r,s=>this.serviceRegistry.getServices(s.uri).references.Linker.link(s,r)),await this.runCancelable(i,de.IndexedReferences,r,s=>this.indexManager.updateReferences(s,r));let o=t.filter(s=>this.shouldValidate(s)?!0:(this.markAsCompleted(s),!1));await this.runCancelable(o,de.Validated,r,async s=>{await this.validate(s,r),this.markAsCompleted(s)})}markAsCompleted(t){let n=this.buildState.get(t.uri.toString());n&&(n.completed=!0)}prepareBuild(t,n){for(let r of t){let i=r.uri.toString(),o=this.buildState.get(i);(!o||o.completed)&&this.buildState.set(i,{completed:!1,options:n,result:o?.result})}}async runCancelable(t,n,r,i){for(let s of t)s.state<n&&(await Ge(r),await i(s),s.state=n,await this.notifyDocumentPhase(s,n,r));let o=t.filter(s=>s.state===n);await this.notifyBuildPhase(o,n,r),this.currentState=n}onBuildPhase(t,n){return this.buildPhaseListeners.add(t,n),Fo.create(()=>{this.buildPhaseListeners.delete(t,n)})}onDocumentPhase(t,n){return this.documentPhaseListeners.add(t,n),Fo.create(()=>{this.documentPhaseListeners.delete(t,n)})}waitUntil(t,n,r){let i;return n&&"path"in n?i=n:r=n,r??(r=fe.CancellationToken.None),i?this.awaitDocumentState(t,i,r):this.awaitBuilderState(t,r)}awaitDocumentState(t,n,r){let i=this.langiumDocuments.getDocument(n);if(i){if(i.state>=t)return Promise.resolve(n);if(r.isCancellationRequested)return Promise.reject(hi);if(this.currentState>=t&&t>i.state)return Promise.reject(new Gu.ResponseError(Hm.RequestFailed,`Document state of ${n.toString()} is ${de[i.state]}, requiring ${de[t]}, but workspace state is already ${de[this.currentState]}. Returning undefined.`))}else return Promise.reject(new Gu.ResponseError(Hm.ServerCancelled,`No document found for URI: ${n.toString()}`));return new Promise((o,s)=>{let a=this.onDocumentPhase(t,c=>{Qe.equals(c.uri,n)&&(a.dispose(),l.dispose(),o(c.uri))}),l=r.onCancellationRequested(()=>{a.dispose(),l.dispose(),s(hi)})})}awaitBuilderState(t,n){return this.currentState>=t?Promise.resolve():n.isCancellationRequested?Promise.reject(hi):new Promise((r,i)=>{let o=this.onBuildPhase(t,()=>{o.dispose(),s.dispose(),r()}),s=n.onCancellationRequested(()=>{o.dispose(),s.dispose(),i(hi)})})}async notifyDocumentPhase(t,n,r){let o=this.documentPhaseListeners.get(n).slice();for(let s of o)try{await Ge(r),await s(t,r)}catch(a){if(!Rr(a))throw a}}async notifyBuildPhase(t,n,r){if(t.length===0)return;let o=this.buildPhaseListeners.get(n).slice();for(let s of o)await Ge(r),await s(t,r)}shouldLink(t){return this.getBuildOptions(t).eagerLinking??!0}shouldValidate(t){return!!this.getBuildOptions(t).validation}async validate(t,n){let r=this.serviceRegistry.getServices(t.uri).validation.DocumentValidator,i=this.getBuildOptions(t),o=typeof i.validation=="object"?{...i.validation}:{};o.categories=this.findMissingValidationCategories(t,i);let s=await r.validateDocument(t,o,n);t.diagnostics?t.diagnostics.push(...s):t.diagnostics=s;let a=this.buildState.get(t.uri.toString());a&&(a.result??(a.result={}),a.result.validationChecks?a.result.validationChecks=ye(a.result.validationChecks).concat(o.categories).distinct().toArray():a.result.validationChecks=[...o.categories])}getBuildOptions(t){return this.buildState.get(t.uri.toString())?.options??{}}};var hf=class{constructor(t){this.symbolIndex=new Map,this.symbolByTypeIndex=new tf,this.referenceIndex=new Map,this.documents=t.workspace.LangiumDocuments,this.serviceRegistry=t.ServiceRegistry,this.astReflection=t.AstReflection}findAllReferences(t,n){let r=st(t).uri,i=[];return this.referenceIndex.forEach(o=>{o.forEach(s=>{Qe.equals(s.targetUri,r)&&s.targetPath===n&&i.push(s)})}),ye(i)}allElements(t,n){let r=ye(this.symbolIndex.keys());return n&&(r=r.filter(i=>!n||n.has(i))),r.map(i=>this.getFileDescriptions(i,t)).flat()}getFileDescriptions(t,n){return n?this.symbolByTypeIndex.get(t,n,()=>(this.symbolIndex.get(t)??[]).filter(o=>this.astReflection.isSubtype(o.type,n))):this.symbolIndex.get(t)??[]}remove(t){this.removeContent(t),this.removeReferences(t)}removeContent(t){let n=t.toString();this.symbolIndex.delete(n),this.symbolByTypeIndex.clear(n)}removeReferences(t){let n=t.toString();this.referenceIndex.delete(n)}async updateContent(t,n=fe.CancellationToken.None){let i=await this.serviceRegistry.getServices(t.uri).references.ScopeComputation.collectExportedSymbols(t,n),o=t.uri.toString();this.symbolIndex.set(o,i),this.symbolByTypeIndex.clear(o)}async updateReferences(t,n=fe.CancellationToken.None){let i=await this.serviceRegistry.getServices(t.uri).workspace.ReferenceDescriptionProvider.createDescriptions(t,n);this.referenceIndex.set(t.uri.toString(),i)}isAffected(t,n){let r=this.referenceIndex.get(t.uri.toString());return r?r.some(i=>!i.local&&n.has(i.targetUri.toString())):!1}};var mf=class{constructor(t){this.initialBuildOptions={},this._ready=new Ir,this.serviceRegistry=t.ServiceRegistry,this.langiumDocuments=t.workspace.LangiumDocuments,this.documentBuilder=t.workspace.DocumentBuilder,this.fileSystemProvider=t.workspace.FileSystemProvider,this.mutex=t.workspace.WorkspaceLock}get ready(){return this._ready.promise}get workspaceFolders(){return this.folders}initialize(t){this.folders=t.workspaceFolders??void 0}initialized(t){return this.mutex.write(n=>this.initializeWorkspace(this.folders??[],n))}async initializeWorkspace(t,n=fe.CancellationToken.None){let r=await this.performStartup(t);await Ge(n),await this.documentBuilder.build(r,this.initialBuildOptions,n)}async performStartup(t){let n=[],r=s=>{n.push(s),this.langiumDocuments.hasDocument(s.uri)||this.langiumDocuments.addDocument(s)};await this.loadAdditionalDocuments(t,r);let i=[];await Promise.all(t.map(s=>this.getRootFolder(s)).map(async s=>this.traverseFolder(s,i)));let o=ye(i).distinct(s=>s.toString()).filter(s=>!this.langiumDocuments.hasDocument(s));return await this.loadWorkspaceDocuments(o,r),this._ready.resolve(),n}async loadWorkspaceDocuments(t,n){await Promise.all(t.map(async r=>{let i=await this.langiumDocuments.getOrCreateDocument(r);n(i)}))}loadAdditionalDocuments(t,n){return Promise.resolve()}getRootFolder(t){return Ce.parse(t.uri)}async traverseFolder(t,n){try{let r=await this.fileSystemProvider.readDirectory(t);await Promise.all(r.map(async i=>{this.shouldIncludeEntry(i)&&(i.isDirectory?await this.traverseFolder(i.uri,n):i.isFile&&n.push(i.uri))}))}catch(r){console.error("Failure to read directory content of "+t.toString(!0),r)}}async searchFolder(t){let n=[];return await this.traverseFolder(t,n),n}shouldIncludeEntry(t){let n=Qe.basename(t.uri);return n.startsWith(".")?!1:t.isDirectory?n!=="node_modules"&&n!=="out":t.isFile?this.serviceRegistry.hasServices(t.uri):!1}};var gf=class{buildUnexpectedCharactersMessage(t,n,r,i,o){return lo.buildUnexpectedCharactersMessage(t,n,r,i,o)}buildUnableToPopLexerModeMessage(t){return lo.buildUnableToPopLexerModeMessage(t)}},Jm={mode:"full"},Bo=class{constructor(t){this.errorMessageProvider=t.parser.LexerErrorMessageProvider,this.tokenBuilder=t.parser.TokenBuilder;let n=this.tokenBuilder.buildTokens(t.Grammar,{caseInsensitive:t.LanguageMetaData.caseInsensitive});this.tokenTypes=this.toTokenTypeDictionary(n);let r=Vv(n)?Object.values(n):n,i=t.LanguageMetaData.mode==="production";this.chevrotainLexer=new Me(r,{positionTracking:"full",skipValidations:i,errorMessageProvider:this.errorMessageProvider})}get definition(){return this.tokenTypes}tokenize(t,n=Jm){let r=this.chevrotainLexer.tokenize(t);return{tokens:r.tokens,errors:r.errors,hidden:r.groups.hidden??[],report:this.tokenBuilder.flushLexingReport?.(t)}}toTokenTypeDictionary(t){if(Vv(t))return t;let n=Kv(t)?Object.values(t.modes).flat():t,r={};return n.forEach(i=>r[i.name]=i),r}};function Qm(e){return Array.isArray(e)&&(e.length===0||"name"in e[0])}function Kv(e){return e&&"modes"in e&&"defaultMode"in e}function Vv(e){return!Qm(e)&&!Kv(e)}var qv;(function(e){function t(n){return typeof n=="string"}e.is=t})(qv||(qv={}));var eg;(function(e){function t(n){return typeof n=="string"}e.is=t})(eg||(eg={}));var Zv;(function(e){e.MIN_VALUE=-2147483648,e.MAX_VALUE=2147483647;function t(n){return typeof n=="number"&&e.MIN_VALUE<=n&&n<=e.MAX_VALUE}e.is=t})(Zv||(Zv={}));var yf;(function(e){e.MIN_VALUE=0,e.MAX_VALUE=2147483647;function t(n){return typeof n=="number"&&e.MIN_VALUE<=n&&n<=e.MAX_VALUE}e.is=t})(yf||(yf={}));var _e;(function(e){function t(r,i){return r===Number.MAX_VALUE&&(r=yf.MAX_VALUE),i===Number.MAX_VALUE&&(i=yf.MAX_VALUE),{line:r,character:i}}e.create=t;function n(r){let i=r;return b.objectLiteral(i)&&b.uinteger(i.line)&&b.uinteger(i.character)}e.is=n})(_e||(_e={}));var he;(function(e){function t(r,i,o,s){if(b.uinteger(r)&&b.uinteger(i)&&b.uinteger(o)&&b.uinteger(s))return{start:_e.create(r,i),end:_e.create(o,s)};if(_e.is(r)&&_e.is(i))return{start:r,end:i};throw new Error(`Range#create called with invalid arguments[${r}, ${i}, ${o}, ${s}]`)}e.create=t;function n(r){let i=r;return b.objectLiteral(i)&&_e.is(i.start)&&_e.is(i.end)}e.is=n})(he||(he={}));var xf;(function(e){function t(r,i){return{uri:r,range:i}}e.create=t;function n(r){let i=r;return b.objectLiteral(i)&&he.is(i.range)&&(b.string(i.uri)||b.undefined(i.uri))}e.is=n})(xf||(xf={}));var Jv;(function(e){function t(r,i,o,s){return{targetUri:r,targetRange:i,targetSelectionRange:o,originSelectionRange:s}}e.create=t;function n(r){let i=r;return b.objectLiteral(i)&&he.is(i.targetRange)&&b.string(i.targetUri)&&he.is(i.targetSelectionRange)&&(he.is(i.originSelectionRange)||b.undefined(i.originSelectionRange))}e.is=n})(Jv||(Jv={}));var tg;(function(e){function t(r,i,o,s){return{red:r,green:i,blue:o,alpha:s}}e.create=t;function n(r){let i=r;return b.objectLiteral(i)&&b.numberRange(i.red,0,1)&&b.numberRange(i.green,0,1)&&b.numberRange(i.blue,0,1)&&b.numberRange(i.alpha,0,1)}e.is=n})(tg||(tg={}));var Qv;(function(e){function t(r,i){return{range:r,color:i}}e.create=t;function n(r){let i=r;return b.objectLiteral(i)&&he.is(i.range)&&tg.is(i.color)}e.is=n})(Qv||(Qv={}));var e0;(function(e){function t(r,i,o){return{label:r,textEdit:i,additionalTextEdits:o}}e.create=t;function n(r){let i=r;return b.objectLiteral(i)&&b.string(i.label)&&(b.undefined(i.textEdit)||Xo.is(i))&&(b.undefined(i.additionalTextEdits)||b.typedArray(i.additionalTextEdits,Xo.is))}e.is=n})(e0||(e0={}));var t0;(function(e){e.Comment="comment",e.Imports="imports",e.Region="region"})(t0||(t0={}));var n0;(function(e){function t(r,i,o,s,a,l){let c={startLine:r,endLine:i};return b.defined(o)&&(c.startCharacter=o),b.defined(s)&&(c.endCharacter=s),b.defined(a)&&(c.kind=a),b.defined(l)&&(c.collapsedText=l),c}e.create=t;function n(r){let i=r;return b.objectLiteral(i)&&b.uinteger(i.startLine)&&b.uinteger(i.startLine)&&(b.undefined(i.startCharacter)||b.uinteger(i.startCharacter))&&(b.undefined(i.endCharacter)||b.uinteger(i.endCharacter))&&(b.undefined(i.kind)||b.string(i.kind))}e.is=n})(n0||(n0={}));var ng;(function(e){function t(r,i){return{location:r,message:i}}e.create=t;function n(r){let i=r;return b.defined(i)&&xf.is(i.location)&&b.string(i.message)}e.is=n})(ng||(ng={}));var r0;(function(e){e.Error=1,e.Warning=2,e.Information=3,e.Hint=4})(r0||(r0={}));var i0;(function(e){e.Unnecessary=1,e.Deprecated=2})(i0||(i0={}));var o0;(function(e){function t(n){let r=n;return b.objectLiteral(r)&&b.string(r.href)}e.is=t})(o0||(o0={}));var Ef;(function(e){function t(o,s,a,l,c,u){let f={range:o,message:s};return b.defined(a)&&(f.severity=a),b.defined(l)&&(f.code=l),b.defined(c)&&(f.source=c),b.defined(u)&&(f.relatedInformation=u),f}e.create=t;function n(o){var s;let a=o;return b.defined(a)&&he.is(a.range)&&(b.string(a.message)||gi.is(a.message))&&(b.number(a.severity)||b.undefined(a.severity))&&(b.integer(a.code)||b.string(a.code)||b.undefined(a.code))&&(b.undefined(a.codeDescription)||b.string((s=a.codeDescription)===null||s===void 0?void 0:s.href))&&(b.string(a.source)||b.undefined(a.source))&&(b.undefined(a.relatedInformation)||b.typedArray(a.relatedInformation,ng.is))}e.is=n;function r(o){return b.string(o.message)}e.is3_17=r;function i(o){if(b.string(o.message))return o.message;if(gi.is(o.message))return o.message.value;throw new Error(`Unknown message type ${typeof o.message}`)}e.getMessageString=i})(Ef||(Ef={}));var Wo;(function(e){function t(r,i,...o){let s={title:r,command:i};return b.defined(o)&&o.length>0&&(s.arguments=o),s}e.create=t;function n(r){let i=r;return b.defined(i)&&b.string(i.title)&&(i.tooltip===void 0||b.string(i.tooltip))&&b.string(i.command)}e.is=n})(Wo||(Wo={}));var Xo;(function(e){function t(o,s){return{range:o,newText:s}}e.replace=t;function n(o,s){return{range:{start:o,end:o},newText:s}}e.insert=n;function r(o){return{range:o,newText:""}}e.del=r;function i(o){let s=o;return b.objectLiteral(s)&&b.string(s.newText)&&he.is(s.range)}e.is=i})(Xo||(Xo={}));var wf;(function(e){function t(r,i,o){let s={label:r};return i!==void 0&&(s.needsConfirmation=i),o!==void 0&&(s.description=o),s}e.create=t;function n(r){let i=r;return b.objectLiteral(i)&&b.string(i.label)&&(b.boolean(i.needsConfirmation)||i.needsConfirmation===void 0)&&(b.string(i.description)||i.description===void 0)}e.is=n})(wf||(wf={}));var mi;(function(e){function t(n){let r=n;return b.string(r)}e.is=t})(mi||(mi={}));var s0;(function(e){function t(o,s,a){return{range:o,newText:s,annotationId:a}}e.replace=t;function n(o,s,a){return{range:{start:o,end:o},newText:s,annotationId:a}}e.insert=n;function r(o,s){return{range:o,newText:"",annotationId:s}}e.del=r;function i(o){let s=o;return Xo.is(s)&&(wf.is(s.annotationId)||mi.is(s.annotationId))}e.is=i})(s0||(s0={}));var rg;(function(e){function t(r,i){return{textDocument:r,edits:i}}e.create=t;function n(r){let i=r;return b.defined(i)&&lg.is(i.textDocument)&&Array.isArray(i.edits)}e.is=n})(rg||(rg={}));var ig;(function(e){function t(r,i,o){let s={kind:"create",uri:r};return i!==void 0&&(i.overwrite!==void 0||i.ignoreIfExists!==void 0)&&(s.options=i),o!==void 0&&(s.annotationId=o),s}e.create=t;function n(r){let i=r;return i&&i.kind==="create"&&b.string(i.uri)&&(i.options===void 0||(i.options.overwrite===void 0||b.boolean(i.options.overwrite))&&(i.options.ignoreIfExists===void 0||b.boolean(i.options.ignoreIfExists)))&&(i.annotationId===void 0||mi.is(i.annotationId))}e.is=n})(ig||(ig={}));var og;(function(e){function t(r,i,o,s){let a={kind:"rename",oldUri:r,newUri:i};return o!==void 0&&(o.overwrite!==void 0||o.ignoreIfExists!==void 0)&&(a.options=o),s!==void 0&&(a.annotationId=s),a}e.create=t;function n(r){let i=r;return i&&i.kind==="rename"&&b.string(i.oldUri)&&b.string(i.newUri)&&(i.options===void 0||(i.options.overwrite===void 0||b.boolean(i.options.overwrite))&&(i.options.ignoreIfExists===void 0||b.boolean(i.options.ignoreIfExists)))&&(i.annotationId===void 0||mi.is(i.annotationId))}e.is=n})(og||(og={}));var sg;(function(e){function t(r,i,o){let s={kind:"delete",uri:r};return i!==void 0&&(i.recursive!==void 0||i.ignoreIfNotExists!==void 0)&&(s.options=i),o!==void 0&&(s.annotationId=o),s}e.create=t;function n(r){let i=r;return i&&i.kind==="delete"&&b.string(i.uri)&&(i.options===void 0||(i.options.recursive===void 0||b.boolean(i.options.recursive))&&(i.options.ignoreIfNotExists===void 0||b.boolean(i.options.ignoreIfNotExists)))&&(i.annotationId===void 0||mi.is(i.annotationId))}e.is=n})(sg||(sg={}));var ag;(function(e){function t(n){let r=n;return r&&(r.changes!==void 0||r.documentChanges!==void 0)&&(r.documentChanges===void 0||r.documentChanges.every(i=>b.string(i.kind)?ig.is(i)||og.is(i)||sg.is(i):rg.is(i)))}e.is=t})(ag||(ag={}));var a0;(function(e){function t(n){let r=n;return b.objectLiteral(r)&&he.is(r.range)&&pg.isSnippet(r.snippet)&&(r.annotationId===void 0||wf.is(r.annotationId)||mi.is(r.annotationId))}e.is=t})(a0||(a0={}));var l0;(function(e){function t(r){return{uri:r}}e.create=t;function n(r){let i=r;return b.defined(i)&&b.string(i.uri)}e.is=n})(l0||(l0={}));var c0;(function(e){function t(r,i){return{uri:r,version:i}}e.create=t;function n(r){let i=r;return b.defined(i)&&b.string(i.uri)&&b.integer(i.version)}e.is=n})(c0||(c0={}));var lg;(function(e){function t(r,i){return{uri:r,version:i}}e.create=t;function n(r){let i=r;return b.defined(i)&&b.string(i.uri)&&(i.version===null||b.integer(i.version))}e.is=n})(lg||(lg={}));var u0;(function(e){e.ABAP="abap",e.WindowsBat="bat",e.BibTeX="bibtex",e.Clojure="clojure",e.Coffeescript="coffeescript",e.C="c",e.CPP="cpp",e.CSharp="csharp",e.CSS="css",e.D="d",e.Delphi="pascal",e.Diff="diff",e.Dart="dart",e.Dockerfile="dockerfile",e.Elixir="elixir",e.Erlang="erlang",e.FSharp="fsharp",e.GitCommit="git-commit",e.GitRebase="git-rebase",e.Go="go",e.Groovy="groovy",e.Handlebars="handlebars",e.Haskell="haskell",e.HTML="html",e.Ini="ini",e.Java="java",e.JavaScript="javascript",e.JavaScriptReact="javascriptreact",e.JSON="json",e.LaTeX="latex",e.Less="less",e.Lua="lua",e.Makefile="makefile",e.Markdown="markdown",e.ObjectiveC="objective-c",e.ObjectiveCPP="objective-cpp",e.Pascal="pascal",e.Perl="perl",e.Perl6="perl6",e.PHP="php",e.Plaintext="plaintext",e.Powershell="powershell",e.Pug="jade",e.Python="python",e.R="r",e.Razor="razor",e.Ruby="ruby",e.Rust="rust",e.SCSS="scss",e.SASS="sass",e.Scala="scala",e.ShaderLab="shaderlab",e.ShellScript="shellscript",e.SQL="sql",e.Swift="swift",e.TypeScript="typescript",e.TypeScriptReact="typescriptreact",e.TeX="tex",e.VisualBasic="vb",e.XML="xml",e.XSL="xsl",e.YAML="yaml"})(u0||(u0={}));var f0;(function(e){function t(r,i,o,s){return{uri:r,languageId:i,version:o,text:s}}e.create=t;function n(r){let i=r;return b.defined(i)&&b.string(i.uri)&&b.string(i.languageId)&&b.integer(i.version)&&b.string(i.text)}e.is=n})(f0||(f0={}));var cg;(function(e){e.PlainText="plaintext",e.Markdown="markdown";function t(n){let r=n;return r===e.PlainText||r===e.Markdown}e.is=t})(cg||(cg={}));var gi;(function(e){function t(n){let r=n;return b.objectLiteral(n)&&cg.is(r.kind)&&b.string(r.value)}e.is=t})(gi||(gi={}));var d0;(function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25})(d0||(d0={}));var p0;(function(e){e.PlainText=1,e.Snippet=2})(p0||(p0={}));var h0;(function(e){e.Deprecated=1})(h0||(h0={}));var m0;(function(e){function t(r,i,o){return{newText:r,insert:i,replace:o}}e.create=t;function n(r){let i=r;return i&&b.string(i.newText)&&he.is(i.insert)&&he.is(i.replace)}e.is=n})(m0||(m0={}));var g0;(function(e){e.asIs=1,e.adjustIndentation=2})(g0||(g0={}));var y0;(function(e){e.Replace=1,e.Merge=2})(y0||(y0={}));var x0;(function(e){function t(n){let r=n;return r&&(b.string(r.detail)||r.detail===void 0)&&(b.string(r.description)||r.description===void 0)}e.is=t})(x0||(x0={}));var E0;(function(e){function t(n){return{label:n}}e.create=t})(E0||(E0={}));var w0;(function(e){function t(n,r){return{items:n||[],isIncomplete:!!r}}e.create=t})(w0||(w0={}));var Tf;(function(e){function t(r){return r.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}e.fromPlainText=t;function n(r){let i=r;return b.string(i)||b.objectLiteral(i)&&b.string(i.language)&&b.string(i.value)}e.is=n})(Tf||(Tf={}));var T0;(function(e){function t(n){let r=n;return!!r&&b.objectLiteral(r)&&(gi.is(r.contents)||Tf.is(r.contents)||b.typedArray(r.contents,Tf.is))&&(n.range===void 0||he.is(n.range))}e.is=t})(T0||(T0={}));var _0;(function(e){function t(n,r){return r?{label:n,documentation:r}:{label:n}}e.create=t})(_0||(_0={}));var v0;(function(e){function t(n,r,...i){let o={label:n};return b.defined(r)&&(o.documentation=r),b.defined(i)?o.parameters=i:o.parameters=[],o}e.create=t})(v0||(v0={}));var A0;(function(e){e.Text=1,e.Read=2,e.Write=3})(A0||(A0={}));var k0;(function(e){function t(n,r){let i={range:n};return b.number(r)&&(i.kind=r),i}e.create=t})(k0||(k0={}));var I0;(function(e){e.File=1,e.Module=2,e.Namespace=3,e.Package=4,e.Class=5,e.Method=6,e.Property=7,e.Field=8,e.Constructor=9,e.Enum=10,e.Interface=11,e.Function=12,e.Variable=13,e.Constant=14,e.String=15,e.Number=16,e.Boolean=17,e.Array=18,e.Object=19,e.Key=20,e.Null=21,e.EnumMember=22,e.Struct=23,e.Event=24,e.Operator=25,e.TypeParameter=26})(I0||(I0={}));var R0;(function(e){e.Deprecated=1})(R0||(R0={}));var S0;(function(e){function t(n,r,i,o,s){let a={name:n,kind:r,location:{uri:o,range:i}};return s&&(a.containerName=s),a}e.create=t})(S0||(S0={}));var b0;(function(e){function t(n,r,i,o){return o!==void 0?{name:n,kind:r,location:{uri:i,range:o}}:{name:n,kind:r,location:{uri:i}}}e.create=t})(b0||(b0={}));var N0;(function(e){function t(r,i,o,s,a,l){let c={name:r,detail:i,kind:o,range:s,selectionRange:a};return l!==void 0&&(c.children=l),c}e.create=t;function n(r){let i=r;return i&&b.string(i.name)&&b.number(i.kind)&&he.is(i.range)&&he.is(i.selectionRange)&&(i.detail===void 0||b.string(i.detail))&&(i.deprecated===void 0||b.boolean(i.deprecated))&&(i.children===void 0||Array.isArray(i.children))&&(i.tags===void 0||Array.isArray(i.tags))}e.is=n})(N0||(N0={}));var L0;(function(e){e.Empty="",e.QuickFix="quickfix",e.Refactor="refactor",e.RefactorExtract="refactor.extract",e.RefactorInline="refactor.inline",e.RefactorMove="refactor.move",e.RefactorRewrite="refactor.rewrite",e.Source="source",e.SourceOrganizeImports="source.organizeImports",e.SourceFixAll="source.fixAll",e.Notebook="notebook"})(L0||(L0={}));var _f;(function(e){e.Invoked=1,e.Automatic=2})(_f||(_f={}));var O0;(function(e){function t(r,i,o){let s={diagnostics:r};return i!=null&&(s.only=i),o!=null&&(s.triggerKind=o),s}e.create=t;function n(r){let i=r;return b.defined(i)&&b.typedArray(i.diagnostics,Ef.is)&&(i.only===void 0||b.typedArray(i.only,b.string))&&(i.triggerKind===void 0||i.triggerKind===_f.Invoked||i.triggerKind===_f.Automatic)}e.is=n})(O0||(O0={}));var ug;(function(e){e.LLMGenerated=1;function t(n){return b.defined(n)&&n===e.LLMGenerated}e.is=t})(ug||(ug={}));var P0;(function(e){function t(r,i,o){let s={title:r},a=!0;return typeof i=="string"?(a=!1,s.kind=i):Wo.is(i)?s.command=i:s.edit=i,a&&o!==void 0&&(s.kind=o),s}e.create=t;function n(r){let i=r;return i&&b.string(i.title)&&(i.diagnostics===void 0||b.typedArray(i.diagnostics,Ef.is))&&(i.kind===void 0||b.string(i.kind))&&(i.edit!==void 0||i.command!==void 0)&&(i.command===void 0||Wo.is(i.command))&&(i.isPreferred===void 0||b.boolean(i.isPreferred))&&(i.edit===void 0||ag.is(i.edit))&&(i.tags===void 0||b.typedArray(i.tags,ug.is))}e.is=n})(P0||(P0={}));var C0;(function(e){function t(r,i){let o={range:r};return b.defined(i)&&(o.data=i),o}e.create=t;function n(r){let i=r;return b.defined(i)&&he.is(i.range)&&(b.undefined(i.command)||Wo.is(i.command))}e.is=n})(C0||(C0={}));var $0;(function(e){function t(r,i){return{tabSize:r,insertSpaces:i}}e.create=t;function n(r){let i=r;return b.defined(i)&&b.uinteger(i.tabSize)&&b.boolean(i.insertSpaces)}e.is=n})($0||($0={}));var D0;(function(e){function t(r,i,o){return{range:r,target:i,data:o}}e.create=t;function n(r){let i=r;return b.defined(i)&&he.is(i.range)&&(b.undefined(i.target)||b.string(i.target))}e.is=n})(D0||(D0={}));var M0;(function(e){function t(r,i){return{range:r,parent:i}}e.create=t;function n(r){let i=r;return b.objectLiteral(i)&&he.is(i.range)&&(i.parent===void 0||e.is(i.parent))}e.is=n})(M0||(M0={}));var F0;(function(e){e.namespace="namespace",e.type="type",e.class="class",e.enum="enum",e.interface="interface",e.struct="struct",e.typeParameter="typeParameter",e.parameter="parameter",e.variable="variable",e.property="property",e.enumMember="enumMember",e.event="event",e.function="function",e.method="method",e.macro="macro",e.keyword="keyword",e.modifier="modifier",e.comment="comment",e.string="string",e.number="number",e.regexp="regexp",e.operator="operator",e.decorator="decorator",e.label="label"})(F0||(F0={}));var B0;(function(e){e.declaration="declaration",e.definition="definition",e.readonly="readonly",e.static="static",e.deprecated="deprecated",e.abstract="abstract",e.async="async",e.modification="modification",e.documentation="documentation",e.defaultLibrary="defaultLibrary"})(B0||(B0={}));var W0;(function(e){function t(n){let r=n;return b.objectLiteral(r)&&(r.resultId===void 0||typeof r.resultId=="string")&&Array.isArray(r.data)&&(r.data.length===0||typeof r.data[0]=="number")}e.is=t})(W0||(W0={}));var X0;(function(e){function t(r,i){return{range:r,text:i}}e.create=t;function n(r){let i=r;return i!=null&&he.is(i.range)&&b.string(i.text)}e.is=n})(X0||(X0={}));var U0;(function(e){function t(r,i,o){return{range:r,variableName:i,caseSensitiveLookup:o}}e.create=t;function n(r){let i=r;return i!=null&&he.is(i.range)&&b.boolean(i.caseSensitiveLookup)&&(b.string(i.variableName)||i.variableName===void 0)}e.is=n})(U0||(U0={}));var G0;(function(e){function t(r,i){return{range:r,expression:i}}e.create=t;function n(r){let i=r;return i!=null&&he.is(i.range)&&(b.string(i.expression)||i.expression===void 0)}e.is=n})(G0||(G0={}));var H0;(function(e){function t(r,i){return{frameId:r,stoppedLocation:i}}e.create=t;function n(r){let i=r;return b.defined(i)&&he.is(r.stoppedLocation)}e.is=n})(H0||(H0={}));var fg;(function(e){e.Type=1,e.Parameter=2;function t(n){return n===1||n===2}e.is=t})(fg||(fg={}));var dg;(function(e){function t(r){return{value:r}}e.create=t;function n(r){let i=r;return b.objectLiteral(i)&&(i.tooltip===void 0||b.string(i.tooltip)||gi.is(i.tooltip))&&(i.location===void 0||xf.is(i.location))&&(i.command===void 0||Wo.is(i.command))}e.is=n})(dg||(dg={}));var z0;(function(e){function t(r,i,o){let s={position:r,label:i};return o!==void 0&&(s.kind=o),s}e.create=t;function n(r){let i=r;return b.objectLiteral(i)&&_e.is(i.position)&&(b.string(i.label)||b.typedArray(i.label,dg.is))&&(i.kind===void 0||fg.is(i.kind))&&i.textEdits===void 0||b.typedArray(i.textEdits,Xo.is)&&(i.tooltip===void 0||b.string(i.tooltip)||gi.is(i.tooltip))&&(i.paddingLeft===void 0||b.boolean(i.paddingLeft))&&(i.paddingRight===void 0||b.boolean(i.paddingRight))}e.is=n})(z0||(z0={}));var pg;(function(e){function t(r){return{kind:"snippet",value:r}}e.createSnippet=t;function n(r){let i=r;return b.objectLiteral(i)&&i.kind==="snippet"&&b.string(i.value)}e.isSnippet=n})(pg||(pg={}));var j0;(function(e){function t(n,r,i,o){return{insertText:n,filterText:r,range:i,command:o}}e.create=t})(j0||(j0={}));var Y0;(function(e){function t(n){return{items:n}}e.create=t})(Y0||(Y0={}));var V0;(function(e){e.Invoked=1,e.Automatic=2})(V0||(V0={}));var K0;(function(e){function t(n,r){return{range:n,text:r}}e.create=t})(K0||(K0={}));var q0;(function(e){function t(n,r){return{triggerKind:n,selectedCompletionInfo:r}}e.create=t})(q0||(q0={}));var Z0;(function(e){function t(n){let r=n;return b.objectLiteral(r)&&eg.is(r.uri)&&b.string(r.name)}e.is=t})(Z0||(Z0={}));var J0;(function(e){function t(o,s,a,l){return new hg(o,s,a,l)}e.create=t;function n(o){let s=o;return!!(b.defined(s)&&b.string(s.uri)&&(b.undefined(s.languageId)||b.string(s.languageId))&&b.uinteger(s.lineCount)&&b.func(s.getText)&&b.func(s.positionAt)&&b.func(s.offsetAt))}e.is=n;function r(o,s){let a=o.getText(),l=i(s,(u,f)=>{let d=u.range.start.line-f.range.start.line;return d===0?u.range.start.character-f.range.start.character:d}),c=a.length;for(let u=l.length-1;u>=0;u--){let f=l[u],d=o.offsetAt(f.range.start),p=o.offsetAt(f.range.end);if(p<=c)a=a.substring(0,d)+f.newText+a.substring(p,a.length);else throw new Error("Overlapping edit");c=d}return a}e.applyEdits=r;function i(o,s){if(o.length<=1)return o;let a=o.length/2|0,l=o.slice(0,a),c=o.slice(a);i(l,s),i(c,s);let u=0,f=0,d=0;for(;u<l.length&&f<c.length;)s(l[u],c[f])<=0?o[d++]=l[u++]:o[d++]=c[f++];for(;u<l.length;)o[d++]=l[u++];for(;f<c.length;)o[d++]=c[f++];return o}})(J0||(J0={}));var hg=class{constructor(t,n,r,i){this._uri=t,this._languageId=n,this._version=r,this._content=i,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(t){if(t){let n=this.offsetAt(t.start),r=this.offsetAt(t.end);return this._content.substring(n,r)}return this._content}update(t,n){this._content=t.text,this._version=n,this._lineOffsets=void 0}getLineOffsets(){if(this._lineOffsets===void 0){let t=[],n=this._content,r=!0;for(let i=0;i<n.length;i++){r&&(t.push(i),r=!1);let o=n.charAt(i);r=o==="\r"||o===`
|
|
117
|
+
For Further details.`,r}function WD(e){if(e instanceof Ee)return"SUBRULE";if(e instanceof we)return"OPTION";if(e instanceof Ie)return"OR";if(e instanceof Ne)return"AT_LEAST_ONE";if(e instanceof Le)return"AT_LEAST_ONE_SEP";if(e instanceof ke)return"MANY_SEP";if(e instanceof ge)return"MANY";if(e instanceof ue)return"CONSUME";throw Error("non exhaustive match")}function XD(e,t,n){let r=h_(t.configs.elements,o=>o.state.transitions),i=A_(r.filter(o=>o instanceof li).map(o=>o.tokenType),o=>o.tokenTypeIdx);return{actualToken:n,possibleTokenTypes:i,tokenPath:e}}function UD(e,t){return e.edges[t.tokenTypeIdx]}function GD(e,t,n){let r=new No,i=[];for(let s of e.elements){if(n.is(s.alt)===!1)continue;if(s.state.type===vr){i.push(s);continue}let a=s.state.transitions.length;for(let l=0;l<a;l++){let c=s.state.transitions[l],u=HD(c,t);u!==void 0&&r.add({state:u,alt:s.alt,stack:s.stack})}}let o;if(i.length===0&&r.size===1&&(o=r),o===void 0){o=new No;for(let s of r.elements)Pu(s,o)}if(i.length>0&&!VD(o))for(let s of i)o.add(s);return o}function HD(e,t){if(e instanceof li&&uo(t,e.tokenType))return e.target}function zD(e,t){let n;for(let r of e.elements)if(t.is(r.alt)===!0){if(n===void 0)n=r.alt;else if(n!==r.alt)return}return n}function $_(e){return{configs:e,edges:{},isAcceptState:!1,prediction:-1}}function C_(e,t,n,r){return r=D_(e,r),t.edges[n.tokenTypeIdx]=r,r}function D_(e,t){if(t===Ra)return t;let n=t.configs.key,r=e.states[n];return r!==void 0?r:(t.configs.finalize(),e.states[n]=t,t)}function jD(e){let t=new No,n=e.transitions.length;for(let r=0;r<n;r++){let o={state:e.transitions[r].target,alt:r,stack:[]};Pu(o,t)}return t}function Pu(e,t){let n=e.state;if(n.type===vr){if(e.stack.length>0){let i=[...e.stack],s={state:i.pop(),alt:e.alt,stack:i};Pu(s,t)}else t.add(e);return}n.epsilonOnlyTransitions||t.add(e);let r=n.transitions.length;for(let i=0;i<r;i++){let o=n.transitions[i],s=YD(e,o);s!==void 0&&Pu(s,t)}}function YD(e,t){if(t instanceof Ia)return{state:t.target,alt:e.alt,stack:e.stack};if(t instanceof ci){let n=[...e.stack,t.followState];return{state:t.target,alt:e.alt,stack:n}}}function VD(e){for(let t of e.elements)if(t.state.type===vr)return!0;return!1}function KD(e){for(let t of e.elements)if(t.state.type!==vr)return!1;return!0}function qD(e){if(KD(e))return!0;let t=ZD(e.elements);return JD(t)&&!QD(t)}function ZD(e){let t=new Map;for(let n of e){let r=im(n,!1),i=t.get(r);i===void 0&&(i={},t.set(r,i)),i[n.alt]=!0}return t}function JD(e){for(let t of Array.from(e.values()))if(Object.keys(t).length>1)return!0;return!1}function QD(e){for(let t of Array.from(e.values()))if(Object.keys(t).length===1)return!0;return!1}function eM(e,t){let n;for(let r of e.configs.elements)if(!(t.is(r.alt)===!1||r.state.type===vr)){if(n===void 0)n=r.alt;else if(n!==r.alt)return}return n}var Po=class{constructor(){this.nodeStack=[]}get current(){return this.nodeStack[this.nodeStack.length-1]??this.rootNode}buildRootNode(t){return this.rootNode=new Na(t),this.nodeStack=[this.rootNode],this.rootNode}buildCompositeNode(t){let n=new Oo;return n.grammarSource=t,this.appendChild(this.current,n),this.nodeStack.push(n),n}buildLeafNode(t,n){let r=this.createLeafNode(t,!n);return n&&(r.grammarSource=n),this.appendChild(this.current,r),r}createLeafNode(t,n){return new ba(t.startOffset,t.image.length,t.startLine-1,t.startColumn-1,t.endLine-1,t.endColumn,t.tokenType,n)}appendChild(t,n){n.container=t,t.content.push(n)}appendChildren(t,n){for(let r of n)r.container=t;t.content.length===0?t.content=n.slice():t.content.push(...n)}insertChildren(t,n,r){for(let i of r)i.container=t;t.content.splice(n,0,...r)}removeNode(t){let n=t.container;if(n){let r=n.content.indexOf(t);r>=0&&n.content.splice(r,1)}}addHiddenNodes(t){let n=[];for(let o of t)n.push(this.createLeafNode(o,!0));let r=this.current,i=!1;if(r.content.length>0){this.appendChildren(r,n);return}for(;r.container;){let o=r.container.content.indexOf(r);if(o>0){this.insertChildren(r.container,o,n),i=!0;break}r=r.container}i||this.insertChildren(this.rootNode,0,n)}construct(t){let n=this.current;t.$cstNode=n;let r=this.nodeStack.pop();r&&(r.content.length===0?this.removeNode(r):r.content=r.content.slice())}},Ou=class{constructor(){this.container=void 0,this.grammarSource=void 0}get root(){let t=this;for(;t.container;)t=t.container;return t}get text(){return this.root.fullText.substring(this.offset,this.end)}},ba=class extends Ou{get offset(){return this._offset}get length(){return this._length}get end(){return this._offset+this._length}get hidden(){return this._hidden}get tokenType(){return this._tokenType}get astNode(){let t=this.container;if(!t)throw new Error("This node has no associated AST element");return t.astNode}get range(){return{start:{line:this._startLine,character:this._startColumn},end:{line:this._endLine,character:this._endColumn}}}constructor(t,n,r,i,o,s,a,l=!1){super(),this._hidden=l,this._offset=Lo(t),this._length=Lo(n),this._startLine=Lo(r),this._startColumn=Lo(i),this._endLine=Lo(o),this._endColumn=Lo(s),this._tokenType=a}};function Lo(e){return e|0}var Oo=class extends Ou{constructor(){super(...arguments),this.content=[],this._astNode=void 0,this._rangeCache=void 0}get astNode(){let t=this;for(;t;){if(t._astNode)return t._astNode;t=t.container}throw new Error("This node has no associated AST element")}set astNode(t){this._astNode=t}get hidden(){return!1}get offset(){return this.firstNonHiddenNode?.offset??0}get length(){return this.end-this.offset}get end(){return this.lastNonHiddenNode?.end??0}get range(){let t=this._rangeCache;if(t===void 0){let n=this.firstNonHiddenNode,r=this.lastNonHiddenNode;if(n&&r){let{range:i}=n,{range:o}=r;this._rangeCache=t={start:i.start,end:o.end.line<i.start.line?i.start:o.end}}else return{start:{line:0,character:0},end:{line:0,character:0}}}return t}get firstNonHiddenNode(){for(let t of this.content)if(!t.hidden)return t;return this.content[0]}get lastNonHiddenNode(){for(let t=this.content.length-1;t>=0;t--){let n=this.content[t];if(!n.hidden)return n}return this.content[this.content.length-1]}},Na=class extends Oo{get text(){return this._text.substring(this.offset,this.end)}get fullText(){return this._text}constructor(t){super(),this._text="",this._text=t??""}};var lm=Symbol("Datatype");function am(e){return e.$type===lm}var M_="\u200B",F_=e=>e.endsWith(M_)?e:e+M_,Cu=class{constructor(t,n){this._unorderedGroups=new Map,this.allRules=new Map,this.lexer=t.parser.Lexer;let r=this.lexer.definition,i=t.LanguageMetaData.mode==="production";t.shared.profilers.LangiumProfiler?.isActive("parsing")?this.wrapper=new um(r,{...t.parser.ParserConfig,skipValidations:i,errorMessageProvider:t.parser.ParserErrorMessageProvider},n,t.shared.profilers.LangiumProfiler.createTask("parsing",t.LanguageMetaData.languageId)):this.wrapper=new Mu(r,{...t.parser.ParserConfig,skipValidations:i,errorMessageProvider:t.parser.ParserErrorMessageProvider},n)}alternatives(t,n){this.wrapper.wrapOr(t,n)}optional(t,n){this.wrapper.wrapOption(t,n)}many(t,n){this.wrapper.wrapMany(t,n)}atLeastOne(t,n){this.wrapper.wrapAtLeastOne(t,n)}getRule(t){return this.allRules.get(t)}isRecording(){return this.wrapper.IS_RECORDING}get unorderedGroups(){return this._unorderedGroups}getRuleStack(){return this.wrapper.RULE_STACK}finalize(){this.wrapper.wrapSelfAnalysis()}},$u=class extends Cu{get current(){return this.stack[this.stack.length-1]}constructor(t){super(t,!1),this.nodeBuilder=new Po,this.stack=[],this.assignmentMap=new Map,this.operatorPrecedence=new Map,this.linker=t.references.Linker,this.converter=t.parser.ValueConverter,this.astReflection=t.shared.AstReflection}rule(t,n){let r=this.computeRuleType(t),i;qr(t)&&(i=t.name,this.registerPrecedenceMap(t));let o=this.wrapper.DEFINE_RULE(F_(t.name),this.startImplementation(r,i,n).bind(this));return this.allRules.set(t.name,o),at(t)&&t.entry&&(this.mainRule=o),o}registerPrecedenceMap(t){let n=t.name,r=new Map;for(let i=0;i<t.operators.precedences.length;i++){let o=t.operators.precedences[i];for(let s of o.operators)r.set(s.value,{precedence:i,rightAssoc:o.associativity==="right"})}this.operatorPrecedence.set(n,r)}computeRuleType(t){return qr(t)?ar(t):t.fragment?void 0:ia(t)?lm:ar(t)}parse(t,n={}){this.nodeBuilder.buildRootNode(t);let r=this.lexerResult=this.lexer.tokenize(t);this.wrapper.input=r.tokens;let i=n.rule?this.allRules.get(n.rule):this.mainRule;if(!i)throw new Error(n.rule?`No rule found with name '${n.rule}'`:"No main rule available.");let o=this.doParse(i);return this.nodeBuilder.addHiddenNodes(r.hidden),this.unorderedGroups.clear(),this.lexerResult=void 0,sc(o,{deep:!0}),{value:o,lexerErrors:r.errors,lexerReport:r.report,parserErrors:this.wrapper.errors}}doParse(t){let n=this.wrapper.rule(t);if(this.stack.length>0&&(n=this.construct()),n===void 0)throw new Error("No result from parser");if(this.stack.length>0)throw new Error("Parser stack is not empty after parsing");return this.linkCstNode(n),n}linkCstNode(t){Ue(t)&&t.$cstNode&&(t.$cstNode.astNode=t)}startImplementation(t,n,r){return i=>{let o=!this.isRecording()&&t!==void 0;if(o){let s={$type:t};this.stack.push(s),t===lm?s.value="":n!==void 0&&(s.$infixName=n)}return r(i),o?this.construct():void 0}}extractHiddenTokens(t){let n=this.lexerResult.hidden;if(!n.length)return[];let r=t.startOffset;for(let i=0;i<n.length;i++)if(n[i].startOffset>r)return n.splice(0,i);return n.splice(0,n.length)}consume(t,n,r){let i=this.wrapper.wrapConsume(t,n);if(!this.isRecording()&&this.isValidToken(i)){let o=this.extractHiddenTokens(i);this.nodeBuilder.addHiddenNodes(o);let s=this.nodeBuilder.buildLeafNode(i,r),{assignment:a,crossRef:l}=this.getAssignment(r),c=this.current;if(a){let u=Yt(r)?i.image:this.converter.convert(i.image,s);this.assign(a.operator,a.feature,u,s,l)}else if(am(c)){let u=i.image;Yt(r)||(u=this.converter.convert(u,s).toString()),c.value+=u}}}isValidToken(t){return!t.isInsertedInRecovery&&Zs(t)}subrule(t,n,r,i,o){let s;!this.isRecording()&&!r&&(s=this.nodeBuilder.buildCompositeNode(i));let a;try{a=this.wrapper.wrapSubrule(t,n,o)}finally{this.isRecording()||(a===void 0&&!r&&(a=this.construct()),a!==void 0&&s&&s.length>0&&this.performSubruleAssignment(a,i,s))}}performSubruleAssignment(t,n,r){let{assignment:i,crossRef:o}=this.getAssignment(n);if(i)this.assign(i.operator,i.feature,t,r,o);else if(!i){let s=this.current;if(am(s))s.value+=t.toString();else if(typeof t=="object"&&t){let l=this.assignWithoutOverride(t,s);this.stack.pop(),this.stack.push(l)}}}action(t,n){if(!this.isRecording()){let r=this.current;if(n.feature&&n.operator){r=this.construct(),this.nodeBuilder.removeNode(r.$cstNode);let i=this.nodeBuilder.buildCompositeNode(n);this.nodeBuilder.appendChild(i,r.$cstNode);let o={$type:t};this.stack.push(o),this.assign(n.operator,n.feature,r,r.$cstNode)}else r.$type=t}}construct(){if(this.isRecording())return;let t=this.stack.pop();return this.nodeBuilder.construct(t),"$infixName"in t?this.constructInfix(t,this.operatorPrecedence.get(t.$infixName)):am(t)?this.converter.convert(t.value,t.$cstNode):(vE(this.astReflection,t),t)}constructInfix(t,n){let r=t.parts;if(!Array.isArray(r)||r.length===0)return;let i=t.operators;if(!Array.isArray(i)||r.length<2)return r[0];let o=0,s=-1;for(let g=0;g<i.length;g++){let w=i[g],x=n.get(w)??{precedence:1/0,rightAssoc:!1};x.precedence>s?(s=x.precedence,o=g):x.precedence===s&&(x.rightAssoc||(o=g))}let a=i.slice(0,o),l=i.slice(o+1),c=r.slice(0,o+1),u=r.slice(o+1),f={$infixName:t.$infixName,$type:t.$type,$cstNode:t.$cstNode,parts:c,operators:a},d={$infixName:t.$infixName,$type:t.$type,$cstNode:t.$cstNode,parts:u,operators:l},p=this.constructInfix(f,n),m=this.constructInfix(d,n);return{$type:t.$type,$cstNode:t.$cstNode,left:p,operator:i[o],right:m}}getAssignment(t){if(!this.assignmentMap.has(t)){let n=Hi(t,fn);this.assignmentMap.set(t,{assignment:n,crossRef:n&&dn(n.terminal)?n.terminal.isMulti?"multi":"single":void 0})}return this.assignmentMap.get(t)}assign(t,n,r,i,o){let s=this.current,a;switch(o==="single"&&typeof r=="string"?a=this.linker.buildReference(s,n,i,r):o==="multi"&&typeof r=="string"?a=this.linker.buildMultiReference(s,n,i,r):a=r,this.linkCstNode(a),t){case"=":{s[n]=a;break}case"?=":{s[n]=!0;break}case"+=":Array.isArray(s[n])||(s[n]=[]),s[n].push(a)}}assignWithoutOverride(t,n){for(let[r,i]of Object.entries(n)){let o=t[r];o===void 0?t[r]=i:Array.isArray(o)&&Array.isArray(i)&&(i.push(...o),t[r]=i)}return t.$cstNode=void 0,t}get definitionErrors(){return this.wrapper.definitionErrors}},cm=class{buildMismatchTokenMessage(t){return bn.buildMismatchTokenMessage(t)}buildNotAllInputParsedMessage(t){return bn.buildNotAllInputParsedMessage(t)}buildNoViableAltMessage(t){return bn.buildNoViableAltMessage(t)}buildEarlyExitMessage(t){return bn.buildEarlyExitMessage(t)}},La=class extends cm{buildMismatchTokenMessage({expected:t,actual:n}){return`Expecting ${t.LABEL?"`"+t.LABEL+"`":t.name.endsWith(":KW")?`keyword '${t.name.substring(0,t.name.length-3)}'`:`token of type '${t.name}'`} but found \`${n.image}\`.`}buildNotAllInputParsedMessage({firstRedundant:t}){return`Expecting end of file but found \`${t.image}\`.`}},Du=class extends Cu{constructor(t){super(t,!0),this.tokens=[],this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}action(){}construct(){}parse(t){this.resetState();let n=this.lexer.tokenize(t,{mode:"partial"});return this.tokens=n.tokens,this.wrapper.input=[...this.tokens],this.mainRule.call(this.wrapper,{}),this.unorderedGroups.clear(),{tokens:this.tokens,elementStack:[...this.lastElementStack],tokenIndex:this.nextTokenIndex}}rule(t,n){let r=this.wrapper.DEFINE_RULE(F_(t.name),this.startImplementation(n).bind(this));return this.allRules.set(t.name,r),t.entry&&(this.mainRule=r),r}resetState(){this.elementStack=[],this.lastElementStack=[],this.nextTokenIndex=0,this.stackSize=0}startImplementation(t){return n=>{let r=this.keepStackSize();try{t(n)}finally{this.resetStackSize(r)}}}removeUnexpectedElements(){this.elementStack.splice(this.stackSize)}keepStackSize(){let t=this.elementStack.length;return this.stackSize=t,t}resetStackSize(t){this.removeUnexpectedElements(),this.stackSize=t}consume(t,n,r){this.wrapper.wrapConsume(t,n),this.isRecording()||(this.lastElementStack=[...this.elementStack,r],this.nextTokenIndex=this.currIdx+1)}subrule(t,n,r,i,o){this.before(i),this.wrapper.wrapSubrule(t,n,o),this.after(i)}before(t){this.isRecording()||this.elementStack.push(t)}after(t){if(!this.isRecording()){let n=this.elementStack.lastIndexOf(t);n>=0&&this.elementStack.splice(n)}}get currIdx(){return this.wrapper.currIdx}},tM={recoveryEnabled:!0,nodeLocationTracking:"full",skipValidations:!0,errorMessageProvider:new La},Mu=class extends Ta{constructor(t,n,r){let i=n&&"maxLookahead"in n;super(t,{...tM,lookaheadStrategy:i?new Nn({maxLookahead:n.maxLookahead}):new Sa({logging:n.skipValidations?()=>{}:void 0,incomplete:r}),...n})}get IS_RECORDING(){return this.RECORDING_PHASE}DEFINE_RULE(t,n,r){return this.RULE(t,n,r)}wrapSelfAnalysis(){this.performSelfAnalysis()}wrapConsume(t,n){return this.consume(t,n,void 0)}wrapSubrule(t,n,r){return this.subrule(t,n,{ARGS:[r]})}wrapOr(t,n){this.or(t,n)}wrapOption(t,n){this.option(t,n)}wrapMany(t,n){this.many(t,n)}wrapAtLeastOne(t,n){this.atLeastOne(t,n)}rule(t){return t.call(this,{})}},um=class extends Mu{constructor(t,n,r,i){super(t,n,r),this.task=i}rule(t){this.task.start(),this.task.startSubTask(this.ruleName(t));try{return super.rule(t)}finally{this.task.stopSubTask(this.ruleName(t)),this.task.stop()}}ruleName(t){return t.ruleName}subrule(t,n,r){this.task.startSubTask(this.ruleName(n));try{return super.subrule(t,n,r)}finally{this.task.stopSubTask(this.ruleName(n))}}};function Bu(e,t,n){return nM({parser:t,tokens:n,ruleNames:new Map},e),t}function nM(e,t){let n=na(t,!1),r=ye(t.rules).filter(at).filter(o=>n.has(o));for(let o of r){let s={...e,consume:1,optional:1,subrule:1,many:1,or:1};e.parser.rule(o,di(s,o.definition))}let i=ye(t.rules).filter(qr).filter(o=>n.has(o));for(let o of i)e.parser.rule(o,rM(e,o))}function rM(e,t){let n=t.call.rule.ref;if(!n)throw new Error("Could not resolve reference to infix operator rule: "+t.call.rule.$refText);if(xt(n))throw new Error("Cannot use terminal rule in infix expression");let r=t.operators.precedences.flatMap(p=>p.operators),i={$type:"Group",elements:[]},o={$container:i,$type:"Assignment",feature:"parts",operator:"+=",terminal:t.call},s={$container:i,$type:"Group",elements:[],cardinality:"*"};i.elements.push(o,s);let l={$container:s,$type:"Assignment",feature:"operators",operator:"+=",terminal:{$type:"Alternatives",elements:r}},c={...o,$container:s};s.elements.push(l,c);let f=r.map(p=>e.tokens[p.value]).map((p,m)=>({ALT:()=>e.parser.consume(m,p,l)})),d;return p=>{d??(d=dm(e,n)),e.parser.subrule(0,d,!1,o,p),e.parser.many(0,{DEF:()=>{e.parser.alternatives(0,f),e.parser.subrule(1,d,!1,c,p)}})}}function di(e,t,n=!1){let r;if(Yt(t))r=uM(e,t);else if(or(t))r=iM(e,t);else if(fn(t))r=di(e,t.terminal);else if(dn(t))r=B_(e,t);else if(pn(t))r=oM(e,t);else if(nh(t))r=aM(e,t);else if(sh(t))r=lM(e,t);else if(Kr(t))r=cM(e,t);else if($E(t)){let i=e.consume++;r=()=>e.parser.consume(i,ut,t)}else throw new Js(t.$cstNode,`Unexpected element type: ${t.$type}`);return W_(e,n?void 0:Fu(t),r,t.cardinality)}function iM(e,t){let n=ar(t);return()=>e.parser.action(n,t)}function oM(e,t){let n=t.rule.ref;if(ir(n)){let r=e.subrule++,i=at(n)&&n.fragment,o=t.arguments.length>0?sM(n,t.arguments):()=>({}),s;return a=>{s??(s=dm(e,n)),e.parser.subrule(r,s,i,t,o(a))}}else if(xt(n)){let r=e.consume++,i=fm(e,n.name);return()=>e.parser.consume(r,i,t)}else if(n)sr(n);else throw new Js(t.$cstNode,`Undefined rule: ${t.rule.$refText}`)}function sM(e,t){if(t.some(r=>r.calledByName)){let r=t.map(i=>({parameterName:i.parameter?.ref?.name,predicate:yn(i.value)}));return i=>{let o={};for(let{parameterName:s,predicate:a}of r)s&&(o[s]=a(i));return o}}else{let r=t.map(i=>yn(i.value));return i=>{let o={};for(let s=0;s<r.length;s++)if(s<e.parameters.length){let a=e.parameters[s].name,l=r[s];o[a]=l(i)}return o}}}function yn(e){if(CE(e)){let t=yn(e.left),n=yn(e.right);return r=>t(r)||n(r)}else if(OE(e)){let t=yn(e.left),n=yn(e.right);return r=>t(r)&&n(r)}else if(FE(e)){let t=yn(e.value);return n=>!t(n)}else if(BE(e)){let t=e.parameter.ref.name;return n=>n!==void 0&&n[t]===!0}else if(LE(e)){let t=!!e.true;return()=>t}sr(e)}function aM(e,t){if(t.elements.length===1)return di(e,t.elements[0]);{let n=[];for(let i of t.elements){let o={ALT:di(e,i,!0)},s=Fu(i);s&&(o.GATE=yn(s)),n.push(o)}let r=e.or++;return i=>e.parser.alternatives(r,n.map(o=>{let s={ALT:()=>o.ALT(i)},a=o.GATE;return a&&(s.GATE=()=>a(i)),s}))}}function lM(e,t){if(t.elements.length===1)return di(e,t.elements[0]);let n=[];for(let a of t.elements){let l={ALT:di(e,a,!0)},c=Fu(a);c&&(l.GATE=yn(c)),n.push(l)}let r=e.or++,i=(a,l)=>{let c=l.getRuleStack().join("-");return`uGroup_${a}_${c}`},o=a=>e.parser.alternatives(r,n.map((l,c)=>{let u={ALT:()=>!0},f=e.parser;u.ALT=()=>{if(l.ALT(a),!f.isRecording()){let p=i(r,f);f.unorderedGroups.get(p)||f.unorderedGroups.set(p,[]);let m=f.unorderedGroups.get(p);typeof m?.[c]>"u"&&(m[c]=!0)}};let d=l.GATE;return d?u.GATE=()=>d(a):u.GATE=()=>!f.unorderedGroups.get(i(r,f))?.[c],u})),s=W_(e,Fu(t),o,"*");return a=>{s(a),e.parser.isRecording()||e.parser.unorderedGroups.delete(i(r,e.parser))}}function cM(e,t){let n=t.elements.map(r=>di(e,r));return r=>n.forEach(i=>i(r))}function Fu(e){if(Kr(e))return e.guardCondition}function B_(e,t,n=t.terminal){if(n)if(pn(n)&&at(n.rule.ref)){let r=n.rule.ref,i=e.subrule++,o;return s=>{o??(o=dm(e,r)),e.parser.subrule(i,o,!1,t,s)}}else if(pn(n)&&xt(n.rule.ref)){let r=e.consume++,i=fm(e,n.rule.ref.name);return()=>e.parser.consume(r,i,t)}else if(Yt(n)){let r=e.consume++,i=fm(e,n.value);return()=>e.parser.consume(r,i,t)}else throw new Error("Could not build cross reference parser");else{if(!t.type.ref)throw new Error("Could not resolve reference to type: "+t.type.$refText);let i=_c(t.type.ref)?.terminal;if(!i)throw new Error("Could not find name assignment for type: "+ar(t.type.ref));return B_(e,t,i)}}function uM(e,t){let n=e.consume++,r=e.tokens[t.value];if(!r)throw new Error("Could not find token for keyword: "+t.value);return()=>e.parser.consume(n,r,t)}function W_(e,t,n,r){let i=t&&yn(t);if(!r)if(i){let o=e.or++;return s=>e.parser.alternatives(o,[{ALT:()=>n(s),GATE:()=>i(s)},{ALT:ou(),GATE:()=>!i(s)}])}else return n;if(r==="*"){let o=e.many++;return s=>e.parser.many(o,{DEF:()=>n(s),GATE:i?()=>i(s):void 0})}else if(r==="+"){let o=e.many++;if(i){let s=e.or++;return a=>e.parser.alternatives(s,[{ALT:()=>e.parser.atLeastOne(o,{DEF:()=>n(a)}),GATE:()=>i(a)},{ALT:ou(),GATE:()=>!i(a)}])}else return s=>e.parser.atLeastOne(o,{DEF:()=>n(s)})}else if(r==="?"){let o=e.optional++;return s=>e.parser.optional(o,{DEF:()=>n(s),GATE:i?()=>i(s):void 0})}else sr(r)}function dm(e,t){let n=fM(e,t),r=e.parser.getRule(n);if(!r)throw new Error(`Rule "${n}" not found."`);return r}function fM(e,t){if(ir(t))return t.name;if(e.ruleNames.has(t))return e.ruleNames.get(t);{let n=t,r=n.$container,i=t.$type;for(;!at(r);)(Kr(r)||nh(r)||sh(r))&&(i=r.elements.indexOf(n).toString()+":"+i),n=r,r=r.$container;return i=r.name+":"+i,e.ruleNames.set(t,i),i}}function fm(e,t){let n=e.tokens[t];if(!n)throw new Error(`Token "${t}" not found."`);return n}function X_(e){let t=e.Grammar,n=e.parser.Lexer,r=new Du(e);return Bu(t,r,n.definition),r.finalize(),r}function U_(e){let t=dM(e);return t.finalize(),t}function dM(e){let t=e.Grammar,n=e.parser.Lexer,r=new $u(e);return Bu(t,r,n.definition)}var Co=class{constructor(){this.diagnostics=[]}buildTokens(t,n){let r=ye(na(t,!1)),i=this.buildTerminalTokens(r),o=this.buildKeywordTokens(r,i,n);return o.push(...i),o}flushLexingReport(t){return{diagnostics:this.popDiagnostics()}}popDiagnostics(){let t=[...this.diagnostics];return this.diagnostics=[],t}buildTerminalTokens(t){return t.filter(xt).filter(n=>!n.fragment).map(n=>this.buildTerminalToken(n)).toArray()}buildTerminalToken(t){let n=no(t),r=this.requiresCustomPattern(n)?this.regexPatternFunction(n):n,i={name:t.name,PATTERN:r};return typeof r=="function"&&(i.LINE_BREAKS=!0),t.hidden&&(i.GROUP=vc(n)?Me.SKIPPED:"hidden"),i}requiresCustomPattern(t){return!!(t.flags.includes("u")||t.flags.includes("s"))}regexPatternFunction(t){let n=new RegExp(t,t.flags+"y");return(r,i)=>(n.lastIndex=i,n.exec(r))}buildKeywordTokens(t,n,r){return t.filter(ir).flatMap(i=>cn(i).filter(Yt)).distinct(i=>i.value).toArray().sort((i,o)=>o.value.length-i.value.length).map(i=>this.buildKeywordToken(i,n,!!r?.caseInsensitive))}buildKeywordToken(t,n,r){let i=this.buildKeywordPattern(t,r),o={name:t.value,PATTERN:i,LONGER_ALT:this.findLongerAlt(t,n)};return typeof i=="function"&&(o.LINE_BREAKS=!0),o}buildKeywordPattern(t,n){return n?new RegExp(Qr(t.value),"i"):t.value}findLongerAlt(t,n){return n.reduce((r,i)=>{let o=i?.PATTERN;return o?.source&&nw("^"+o.source+"$",t.value)&&r.push(i),r},[])}};var $o=class{convert(t,n){let r=n.grammarSource;if(dn(r)&&(r=ph(r)),pn(r)){let i=r.rule.ref;if(!i)throw new Error("This cst node was not parsed by a rule.");return this.runConverter(i,t,n)}return t}runConverter(t,n,r){switch(t.name.toUpperCase()){case"INT":return Cn.convertInt(n);case"STRING":return Cn.convertString(n);case"ID":return Cn.convertID(n)}switch(wh(t)?.toLowerCase()){case"number":return Cn.convertNumber(n);case"boolean":return Cn.convertBoolean(n);case"bigint":return Cn.convertBigint(n);case"date":return Cn.convertDate(n);default:return n}}},Cn;(function(e){function t(c){let u="";for(let f=1;f<c.length-1;f++){let d=c.charAt(f);if(d==="\\"){let p=c.charAt(++f);u+=n(p)}else u+=d}return u}e.convertString=t;function n(c){switch(c){case"b":return"\b";case"f":return"\f";case"n":return`
|
|
118
|
+
`;case"r":return"\r";case"t":return" ";case"v":return"\v";case"0":return"\0";default:return c}}function r(c){return c.charAt(0)==="^"?c.substring(1):c}e.convertID=r;function i(c){return parseInt(c)}e.convertInt=i;function o(c){return BigInt(c)}e.convertBigint=o;function s(c){return new Date(c)}e.convertDate=s;function a(c){return Number(c)}e.convertNumber=a;function l(c){return c.toLowerCase()==="true"}e.convertBoolean=l})(Cn||(Cn={}));var fe=Hp(j_()),Gu=Hp(wm()),Hu=Hp(V_()),Ym={lspReservedErrorRangeStart:-32899,RequestFailed:-32803,ServerCancelled:-32802,ContentModified:-32801,RequestCancelled:-32800,lspReservedErrorRangeEnd:-32800};function NM(){return new Promise(e=>{typeof setImmediate>"u"?setTimeout(e,0):setImmediate(e)})}var zu=0,LM=10;function K_(){return zu=performance.now(),new fe.CancellationTokenSource}var hi=Symbol("OperationCancelled");function Rr(e){return e===hi}async function Ge(e){if(e===fe.CancellationToken.None)return;let t=performance.now();if(t-zu>=LM&&(zu=t,await NM(),zu=performance.now()),e.isCancellationRequested)throw hi}var Ir=class{constructor(){this.promise=new Promise((t,n)=>{this.resolve=r=>(t(r),this),this.reject=r=>(n(r),this)})}};var ju=class e{constructor(t,n,r,i){this._uri=t,this._languageId=n,this._version=r,this._content=i,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(t){if(t){let n=this.offsetAt(t.start),r=this.offsetAt(t.end);return this._content.substring(n,r)}return this._content}update(t,n){for(let r of t)if(e.isIncremental(r)){let i=J_(r.range),o=this.offsetAt(i.start),s=this.offsetAt(i.end);this._content=this._content.substring(0,o)+r.text+this._content.substring(s,this._content.length);let a=Math.max(i.start.line,0),l=Math.max(i.end.line,0),c=this._lineOffsets,u=q_(r.text,!1,o);if(l-a===u.length)for(let d=0,p=u.length;d<p;d++)c[d+a+1]=u[d];else u.length<1e4?c.splice(a+1,l-a,...u):this._lineOffsets=c=c.slice(0,a+1).concat(u,c.slice(l+1));let f=r.text.length-(s-o);if(f!==0)for(let d=a+1+u.length,p=c.length;d<p;d++)c[d]=c[d]+f}else if(e.isFull(r))this._content=r.text,this._lineOffsets=void 0;else throw new Error("Unknown change event received");this._version=n}getLineOffsets(){return this._lineOffsets===void 0&&(this._lineOffsets=q_(this._content,!0)),this._lineOffsets}positionAt(t){t=Math.max(Math.min(t,this._content.length),0);let n=this.getLineOffsets(),r=0,i=n.length;if(i===0)return{line:0,character:t};for(;r<i;){let s=Math.floor((r+i)/2);n[s]>t?i=s:r=s+1}let o=r-1;return t=this.ensureBeforeEOL(t,n[o]),{line:o,character:t-n[o]}}offsetAt(t){let n=this.getLineOffsets();if(t.line>=n.length)return this._content.length;if(t.line<0)return 0;let r=n[t.line];if(t.character<=0)return r;let i=t.line+1<n.length?n[t.line+1]:this._content.length,o=Math.min(r+t.character,i);return this.ensureBeforeEOL(o,r)}getLineRange(t){let n=this.getLineOffsets();if(t>=n.length){let s=n.length-1;return{start:{line:s,character:0},end:{line:s,character:this._content.length-n[s]}}}else if(t<0)return{start:{line:0,character:0},end:{line:0,character:0}};let r=n[t],i=t+1<n.length?n[t+1]:this._content.length,o=this.ensureBeforeEOL(i,r);return{start:{line:t,character:0},end:{line:t,character:o-r}}}getEOLCharacters(t){let n=this.getLineOffsets();if(t>=n.length)return"";if(t<0)return"";let r=t+1<n.length?n[t+1]:this._content.length,i=this.ensureBeforeEOL(r,n[t]);return this._content.substring(i,r)}ensureBeforeEOL(t,n){for(;t>n&&Z_(this._content.charCodeAt(t-1));)t--;return t}get lineCount(){return this.getLineOffsets().length}static isIncremental(t){let n=t;return n!=null&&typeof n.text=="string"&&n.range!==void 0&&(n.rangeLength===void 0||typeof n.rangeLength=="number")}static isFull(t){let n=t;return n!=null&&typeof n.text=="string"&&n.range===void 0&&n.rangeLength===void 0}},Pa;(function(e){function t(i,o,s,a){return new ju(i,o,s,a)}e.create=t;function n(i,o,s){if(i instanceof ju)return i.update(o,s),i;throw new Error("TextDocument.update: document must be created by TextDocument.create")}e.update=n;function r(i,o){let s=i.getText(),a=Vm(o.map(PM),(u,f)=>{let d=u.range.start.line-f.range.start.line;return d===0?u.range.start.character-f.range.start.character:d}),l=0,c=[];for(let u of a){let f=i.offsetAt(u.range.start);if(f<l)throw new Error("Overlapping edit");f>l&&c.push(s.substring(l,f)),u.newText.length&&c.push(u.newText),l=i.offsetAt(u.range.end)}return c.push(s.substr(l)),c.join("")}e.applyEdits=r})(Pa||(Pa={}));function Vm(e,t){if(e.length<=1)return e;let n=e.length/2|0,r=e.slice(0,n),i=e.slice(n);Vm(r,t),Vm(i,t);let o=0,s=0,a=0;for(;o<r.length&&s<i.length;)t(r[o],i[s])<=0?e[a++]=r[o++]:e[a++]=i[s++];for(;o<r.length;)e[a++]=r[o++];for(;s<i.length;)e[a++]=i[s++];return e}function q_(e,t,n=0){let r=t?[n]:[];for(let i=0;i<e.length;i++){let o=e.charCodeAt(i);Z_(o)&&(o===13&&i+1<e.length&&e.charCodeAt(i+1)===10&&i++,r.push(n+i+1))}return r}function Z_(e){return e===13||e===10}function J_(e){let t=e.start,n=e.end;return t.line>n.line||t.line===n.line&&t.character>n.character?{start:n,end:t}:e}function PM(e){let t=J_(e.range);return t!==e.range?{newText:e.newText,range:t}:e}var Q_;(()=>{"use strict";var e={975:D=>{function R(k){if(typeof k!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(k))}function S(k,L){for(var v,P="",b=0,F=-1,j=0,U=0;U<=k.length;++U){if(U<k.length)v=k.charCodeAt(U);else{if(v===47)break;v=47}if(v===47){if(!(F===U-1||j===1))if(F!==U-1&&j===2){if(P.length<2||b!==2||P.charCodeAt(P.length-1)!==46||P.charCodeAt(P.length-2)!==46){if(P.length>2){var ee=P.lastIndexOf("/");if(ee!==P.length-1){ee===-1?(P="",b=0):b=(P=P.slice(0,ee)).length-1-P.lastIndexOf("/"),F=U,j=0;continue}}else if(P.length===2||P.length===1){P="",b=0,F=U,j=0;continue}}L&&(P.length>0?P+="/..":P="..",b=2)}else P.length>0?P+="/"+k.slice(F+1,U):P=k.slice(F+1,U),b=U-F-1;F=U,j=0}else v===46&&j!==-1?++j:j=-1}return P}var O={resolve:function(){for(var k,L="",v=!1,P=arguments.length-1;P>=-1&&!v;P--){var b;P>=0?b=arguments[P]:(k===void 0&&(k=process.cwd()),b=k),R(b),b.length!==0&&(L=b+"/"+L,v=b.charCodeAt(0)===47)}return L=S(L,!v),v?L.length>0?"/"+L:"/":L.length>0?L:"."},normalize:function(k){if(R(k),k.length===0)return".";var L=k.charCodeAt(0)===47,v=k.charCodeAt(k.length-1)===47;return(k=S(k,!L)).length!==0||L||(k="."),k.length>0&&v&&(k+="/"),L?"/"+k:k},isAbsolute:function(k){return R(k),k.length>0&&k.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var k,L=0;L<arguments.length;++L){var v=arguments[L];R(v),v.length>0&&(k===void 0?k=v:k+="/"+v)}return k===void 0?".":O.normalize(k)},relative:function(k,L){if(R(k),R(L),k===L||(k=O.resolve(k))===(L=O.resolve(L)))return"";for(var v=1;v<k.length&&k.charCodeAt(v)===47;++v);for(var P=k.length,b=P-v,F=1;F<L.length&&L.charCodeAt(F)===47;++F);for(var j=L.length-F,U=b<j?b:j,ee=-1,V=0;V<=U;++V){if(V===U){if(j>U){if(L.charCodeAt(F+V)===47)return L.slice(F+V+1);if(V===0)return L.slice(F+V)}else b>U&&(k.charCodeAt(v+V)===47?ee=V:V===0&&(ee=0));break}var ne=k.charCodeAt(v+V);if(ne!==L.charCodeAt(F+V))break;ne===47&&(ee=V)}var A="";for(V=v+ee+1;V<=P;++V)V!==P&&k.charCodeAt(V)!==47||(A.length===0?A+="..":A+="/..");return A.length>0?A+L.slice(F+ee):(F+=ee,L.charCodeAt(F)===47&&++F,L.slice(F))},_makeLong:function(k){return k},dirname:function(k){if(R(k),k.length===0)return".";for(var L=k.charCodeAt(0),v=L===47,P=-1,b=!0,F=k.length-1;F>=1;--F)if((L=k.charCodeAt(F))===47){if(!b){P=F;break}}else b=!1;return P===-1?v?"/":".":v&&P===1?"//":k.slice(0,P)},basename:function(k,L){if(L!==void 0&&typeof L!="string")throw new TypeError('"ext" argument must be a string');R(k);var v,P=0,b=-1,F=!0;if(L!==void 0&&L.length>0&&L.length<=k.length){if(L.length===k.length&&L===k)return"";var j=L.length-1,U=-1;for(v=k.length-1;v>=0;--v){var ee=k.charCodeAt(v);if(ee===47){if(!F){P=v+1;break}}else U===-1&&(F=!1,U=v+1),j>=0&&(ee===L.charCodeAt(j)?--j==-1&&(b=v):(j=-1,b=U))}return P===b?b=U:b===-1&&(b=k.length),k.slice(P,b)}for(v=k.length-1;v>=0;--v)if(k.charCodeAt(v)===47){if(!F){P=v+1;break}}else b===-1&&(F=!1,b=v+1);return b===-1?"":k.slice(P,b)},extname:function(k){R(k);for(var L=-1,v=0,P=-1,b=!0,F=0,j=k.length-1;j>=0;--j){var U=k.charCodeAt(j);if(U!==47)P===-1&&(b=!1,P=j+1),U===46?L===-1?L=j:F!==1&&(F=1):L!==-1&&(F=-1);else if(!b){v=j+1;break}}return L===-1||P===-1||F===0||F===1&&L===P-1&&L===v+1?"":k.slice(L,P)},format:function(k){if(k===null||typeof k!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof k);return(function(L,v){var P=v.dir||v.root,b=v.base||(v.name||"")+(v.ext||"");return P?P===v.root?P+b:P+"/"+b:b})(0,k)},parse:function(k){R(k);var L={root:"",dir:"",base:"",ext:"",name:""};if(k.length===0)return L;var v,P=k.charCodeAt(0),b=P===47;b?(L.root="/",v=1):v=0;for(var F=-1,j=0,U=-1,ee=!0,V=k.length-1,ne=0;V>=v;--V)if((P=k.charCodeAt(V))!==47)U===-1&&(ee=!1,U=V+1),P===46?F===-1?F=V:ne!==1&&(ne=1):F!==-1&&(ne=-1);else if(!ee){j=V+1;break}return F===-1||U===-1||ne===0||ne===1&&F===U-1&&F===j+1?U!==-1&&(L.base=L.name=j===0&&b?k.slice(1,U):k.slice(j,U)):(j===0&&b?(L.name=k.slice(1,F),L.base=k.slice(1,U)):(L.name=k.slice(j,F),L.base=k.slice(j,U)),L.ext=k.slice(F,U)),j>0?L.dir=k.slice(0,j-1):b&&(L.dir="/"),L},sep:"/",delimiter:":",win32:null,posix:null};O.posix=O,D.exports=O}},t={};function n(D){var R=t[D];if(R!==void 0)return R.exports;var S=t[D]={exports:{}};return e[D](S,S.exports,n),S.exports}n.d=(D,R)=>{for(var S in R)n.o(R,S)&&!n.o(D,S)&&Object.defineProperty(D,S,{enumerable:!0,get:R[S]})},n.o=(D,R)=>Object.prototype.hasOwnProperty.call(D,R),n.r=D=>{typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(D,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(D,"__esModule",{value:!0})};var r={};let i;n.r(r),n.d(r,{URI:()=>d,Utils:()=>Y}),typeof process=="object"?i=process.platform==="win32":typeof navigator=="object"&&(i=navigator.userAgent.indexOf("Windows")>=0);let o=/^\w[\w\d+.-]*$/,s=/^\//,a=/^\/\//;function l(D,R){if(!D.scheme&&R)throw new Error(`[UriError]: Scheme is missing: {scheme: "", authority: "${D.authority}", path: "${D.path}", query: "${D.query}", fragment: "${D.fragment}"}`);if(D.scheme&&!o.test(D.scheme))throw new Error("[UriError]: Scheme contains illegal characters.");if(D.path){if(D.authority){if(!s.test(D.path))throw new Error('[UriError]: If a URI contains an authority component, then the path component must either be empty or begin with a slash ("/") character')}else if(a.test(D.path))throw new Error('[UriError]: If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")')}}let c="",u="/",f=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;class d{constructor(R,S,O,k,L,v=!1){M(this,"scheme");M(this,"authority");M(this,"path");M(this,"query");M(this,"fragment");typeof R=="object"?(this.scheme=R.scheme||c,this.authority=R.authority||c,this.path=R.path||c,this.query=R.query||c,this.fragment=R.fragment||c):(this.scheme=(function(P,b){return P||b?P:"file"})(R,v),this.authority=S||c,this.path=(function(P,b){switch(P){case"https":case"http":case"file":b?b[0]!==u&&(b=u+b):b=u}return b})(this.scheme,O||c),this.query=k||c,this.fragment=L||c,l(this,v))}static isUri(R){return R instanceof d||!!R&&typeof R.authority=="string"&&typeof R.fragment=="string"&&typeof R.path=="string"&&typeof R.query=="string"&&typeof R.scheme=="string"&&typeof R.fsPath=="string"&&typeof R.with=="function"&&typeof R.toString=="function"}get fsPath(){return y(this,!1)}with(R){if(!R)return this;let{scheme:S,authority:O,path:k,query:L,fragment:v}=R;return S===void 0?S=this.scheme:S===null&&(S=c),O===void 0?O=this.authority:O===null&&(O=c),k===void 0?k=this.path:k===null&&(k=c),L===void 0?L=this.query:L===null&&(L=c),v===void 0?v=this.fragment:v===null&&(v=c),S===this.scheme&&O===this.authority&&k===this.path&&L===this.query&&v===this.fragment?this:new m(S,O,k,L,v)}static parse(R,S=!1){let O=f.exec(R);return O?new m(O[2]||c,I(O[4]||c),I(O[5]||c),I(O[7]||c),I(O[9]||c),S):new m(c,c,c,c,c)}static file(R){let S=c;if(i&&(R=R.replace(/\\/g,u)),R[0]===u&&R[1]===u){let O=R.indexOf(u,2);O===-1?(S=R.substring(2),R=u):(S=R.substring(2,O),R=R.substring(O)||u)}return new m("file",S,R,c,c)}static from(R){let S=new m(R.scheme,R.authority,R.path,R.query,R.fragment);return l(S,!0),S}toString(R=!1){return E(this,R)}toJSON(){return this}static revive(R){if(R){if(R instanceof d)return R;{let S=new m(R);return S._formatted=R.external,S._fsPath=R._sep===p?R.fsPath:null,S}}return R}}let p=i?1:void 0;class m extends d{constructor(){super(...arguments);M(this,"_formatted",null);M(this,"_fsPath",null)}get fsPath(){return this._fsPath||(this._fsPath=y(this,!1)),this._fsPath}toString(S=!1){return S?E(this,!0):(this._formatted||(this._formatted=E(this,!1)),this._formatted)}toJSON(){let S={$mid:1};return this._fsPath&&(S.fsPath=this._fsPath,S._sep=p),this._formatted&&(S.external=this._formatted),this.path&&(S.path=this.path),this.scheme&&(S.scheme=this.scheme),this.authority&&(S.authority=this.authority),this.query&&(S.query=this.query),this.fragment&&(S.fragment=this.fragment),S}}let g={58:"%3A",47:"%2F",63:"%3F",35:"%23",91:"%5B",93:"%5D",64:"%40",33:"%21",36:"%24",38:"%26",39:"%27",40:"%28",41:"%29",42:"%2A",43:"%2B",44:"%2C",59:"%3B",61:"%3D",32:"%20"};function w(D,R,S){let O,k=-1;for(let L=0;L<D.length;L++){let v=D.charCodeAt(L);if(v>=97&&v<=122||v>=65&&v<=90||v>=48&&v<=57||v===45||v===46||v===95||v===126||R&&v===47||S&&v===91||S&&v===93||S&&v===58)k!==-1&&(O+=encodeURIComponent(D.substring(k,L)),k=-1),O!==void 0&&(O+=D.charAt(L));else{O===void 0&&(O=D.substr(0,L));let P=g[v];P!==void 0?(k!==-1&&(O+=encodeURIComponent(D.substring(k,L)),k=-1),O+=P):k===-1&&(k=L)}}return k!==-1&&(O+=encodeURIComponent(D.substring(k))),O!==void 0?O:D}function x(D){let R;for(let S=0;S<D.length;S++){let O=D.charCodeAt(S);O===35||O===63?(R===void 0&&(R=D.substr(0,S)),R+=g[O]):R!==void 0&&(R+=D[S])}return R!==void 0?R:D}function y(D,R){let S;return S=D.authority&&D.path.length>1&&D.scheme==="file"?`//${D.authority}${D.path}`:D.path.charCodeAt(0)===47&&(D.path.charCodeAt(1)>=65&&D.path.charCodeAt(1)<=90||D.path.charCodeAt(1)>=97&&D.path.charCodeAt(1)<=122)&&D.path.charCodeAt(2)===58?R?D.path.substr(1):D.path[1].toLowerCase()+D.path.substr(2):D.path,i&&(S=S.replace(/\//g,"\\")),S}function E(D,R){let S=R?x:w,O="",{scheme:k,authority:L,path:v,query:P,fragment:b}=D;if(k&&(O+=k,O+=":"),(L||k==="file")&&(O+=u,O+=u),L){let F=L.indexOf("@");if(F!==-1){let j=L.substr(0,F);L=L.substr(F+1),F=j.lastIndexOf(":"),F===-1?O+=S(j,!1,!1):(O+=S(j.substr(0,F),!1,!1),O+=":",O+=S(j.substr(F+1),!1,!0)),O+="@"}L=L.toLowerCase(),F=L.lastIndexOf(":"),F===-1?O+=S(L,!1,!0):(O+=S(L.substr(0,F),!1,!0),O+=L.substr(F))}if(v){if(v.length>=3&&v.charCodeAt(0)===47&&v.charCodeAt(2)===58){let F=v.charCodeAt(1);F>=65&&F<=90&&(v=`/${String.fromCharCode(F+32)}:${v.substr(3)}`)}else if(v.length>=2&&v.charCodeAt(1)===58){let F=v.charCodeAt(0);F>=65&&F<=90&&(v=`${String.fromCharCode(F+32)}:${v.substr(2)}`)}O+=S(v,!0,!1)}return P&&(O+="?",O+=S(P,!1,!1)),b&&(O+="#",O+=R?b:w(b,!1,!1)),O}function _(D){try{return decodeURIComponent(D)}catch{return D.length>3?D.substr(0,3)+_(D.substr(3)):D}}let T=/(%[0-9A-Za-z][0-9A-Za-z])+/g;function I(D){return D.match(T)?D.replace(T,(R=>_(R))):D}var B=n(975);let $=B.posix||B,X="/";var Y;(function(D){D.joinPath=function(R,...S){return R.with({path:$.join(R.path,...S)})},D.resolvePath=function(R,...S){let O=R.path,k=!1;O[0]!==X&&(O=X+O,k=!0);let L=$.resolve(O,...S);return k&&L[0]===X&&!R.authority&&(L=L.substring(1)),R.with({path:L})},D.dirname=function(R){if(R.path.length===0||R.path===X)return R;let S=$.dirname(R.path);return S.length===1&&S.charCodeAt(0)===46&&(S=""),R.with({path:S})},D.basename=function(R){return $.basename(R.path)},D.extname=function(R){return $.extname(R.path)}})(Y||(Y={})),Q_=r})();var{URI:Ce,Utils:Do}=Q_;var Qe;(function(e){e.basename=Do.basename,e.dirname=Do.dirname,e.extname=Do.extname,e.joinPath=Do.joinPath,e.resolvePath=Do.resolvePath;let t=typeof process=="object"&&process?.platform==="win32";function n(s,a){return s?.toString()===a?.toString()}e.equals=n;function r(s,a){let l=typeof s=="string"?Ce.parse(s).path:s.path,c=typeof a=="string"?Ce.parse(a).path:a.path,u=l.split("/").filter(g=>g.length>0),f=c.split("/").filter(g=>g.length>0);if(t){let g=/^[A-Z]:$/;if(u[0]&&g.test(u[0])&&(u[0]=u[0].toLowerCase()),f[0]&&g.test(f[0])&&(f[0]=f[0].toLowerCase()),u[0]!==f[0])return c.substring(1)}let d=0;for(;d<u.length&&u[d]===f[d];d++);let p="../".repeat(u.length-d),m=f.slice(d).join("/");return p+m}e.relative=r;function i(s){return Ce.parse(s.toString()).toString()}e.normalize=i;function o(s,a){let l=typeof s=="string"?Ce.parse(s):s,c=typeof a=="string"?Ce.parse(a):a;if(l.scheme!==c.scheme)return!1;let u=l.path,f=c.path;return f.charAt(f.length-1)==="/"&&(f=f.slice(0,-1)),u.charAt(u.length-1)==="/"&&(u=u.slice(0,-1)),f===u?!0:f.length<u.length||f.charAt(u.length)!=="/"?!1:f.startsWith(u)}e.contains=o})(Qe||(Qe={}));var Yu=class{constructor(){this.root={name:"",children:new Map}}normalizeUri(t){return Qe.normalize(t)}clear(){this.root.children.clear()}insert(t,n){let r=this.getNode(this.normalizeUri(t),!0);r.element=n}delete(t){let n=this.getNode(this.normalizeUri(t),!1);n?.parent&&n.parent.children.delete(n.name)}has(t){return this.getNode(this.normalizeUri(t),!1)?.element!==void 0}hasNode(t){return this.getNode(this.normalizeUri(t),!1)!==void 0}find(t){return this.getNode(this.normalizeUri(t),!1)?.element}findNode(t){let n=this.normalizeUri(t),r=this.getNode(n,!1);if(r)return{name:r.name,uri:Qe.joinPath(Ce.parse(n),r.name).toString(),element:r.element}}findChildren(t){let n=this.normalizeUri(t),r=this.getNode(n,!1);return r?Array.from(r.children.values()).map(i=>({name:i.name,uri:Qe.joinPath(Ce.parse(n),i.name).toString(),element:i.element})):[]}all(){return this.collectValues(this.root)}findAll(t){let n=this.getNode(this.normalizeUri(t),!1);return n?this.collectValues(n):[]}getNode(t,n){let r=t.split("/");t.charAt(t.length-1)==="/"&&r.pop();let i=this.root;for(let o of r){let s=i.children.get(o);if(!s)if(n)s={name:o,children:new Map,parent:i},i.children.set(o,s);else return;i=s}return i}collectValues(t){let n=[];t.element&&n.push(t.element);for(let r of t.children.values())n.push(...this.collectValues(r));return n}};var de;(function(e){e[e.Changed=0]="Changed",e[e.Parsed=1]="Parsed",e[e.IndexedContent=2]="IndexedContent",e[e.ComputedScopes=3]="ComputedScopes",e[e.Linked=4]="Linked",e[e.IndexedReferences=5]="IndexedReferences",e[e.Validated=6]="Validated"})(de||(de={}));var Vu=class{constructor(t){this.serviceRegistry=t.ServiceRegistry,this.textDocuments=t.workspace.TextDocuments,this.fileSystemProvider=t.workspace.FileSystemProvider}async fromUri(t,n=fe.CancellationToken.None){let r=await this.getInitialText(t,n);return this.createAsync(t,r,n)}async getInitialText(t,n){return this.fileSystemProvider.readFile(t)}fromTextDocument(t,n,r){return n=n??Ce.parse(t.uri),fe.CancellationToken.is(r)?this.createAsync(n,t,r):this.create(n,t,r)}fromString(t,n,r){return fe.CancellationToken.is(r)?this.createAsync(n,t,r):this.create(n,t,r)}fromModel(t,n){return this.create(n,{$model:t})}create(t,n,r){if(typeof n=="string"){let i=this.parse(t,n,r);return this.createLangiumDocument(i,t,void 0,n)}else if("$model"in n){let i={value:n.$model,parserErrors:[],lexerErrors:[]};return this.createLangiumDocument(i,t)}else{let i=this.parse(t,n.getText(),r);return this.createLangiumDocument(i,t,n)}}async createAsync(t,n,r){if(typeof n=="string"){let i=await this.parseAsync(t,n,r);return this.createLangiumDocument(i,t,void 0,n)}else{let i=await this.parseAsync(t,n.getText(),r);return this.createLangiumDocument(i,t,n)}}createLangiumDocument(t,n,r,i){let o;if(r)o={parseResult:t,uri:n,state:de.Parsed,references:[],textDocument:r};else{let s=this.createTextDocumentGetter(n,i);o={parseResult:t,uri:n,state:de.Parsed,references:[],get textDocument(){return s()}}}return t.value.$document=o,o}async update(t,n){let r=t.parseResult.value.$cstNode?.root.fullText,i=this.textDocuments?.get(t.uri.toString()),o=await this.getUpdatedText(t,i,n);if(i)Object.defineProperty(t,"textDocument",{value:i});else{let s=this.createTextDocumentGetter(t.uri,o);Object.defineProperty(t,"textDocument",{get:s})}return r!==o&&(t.parseResult=await this.parseAsync(t.uri,o,n),t.parseResult.value.$document=t),t.state=de.Parsed,t}async getUpdatedText(t,n,r){return n?n.getText():await this.fileSystemProvider.readFile(t.uri)}parse(t,n,r){return this.serviceRegistry.getServices(t).parser.LangiumParser.parse(n,r)}parseAsync(t,n,r){return this.serviceRegistry.getServices(t).parser.AsyncParser.parse(n,r)}createTextDocumentGetter(t,n){let r=this.serviceRegistry,i;return()=>i??(i=Pa.create(t.toString(),r.getServices(t).LanguageMetaData.languageId,0,n??""))}},Ku=class{constructor(t){this.documentTrie=new Yu,this.services=t,this.langiumDocumentFactory=t.workspace.LangiumDocumentFactory,this.documentBuilder=()=>t.workspace.DocumentBuilder}get all(){return ye(this.documentTrie.all())}addDocument(t){let n=t.uri.toString();if(this.documentTrie.has(n))throw new Error(`A document with the URI '${n}' is already present.`);this.documentTrie.insert(n,t)}getDocument(t){let n=t.toString();return this.documentTrie.find(n)}getDocuments(t){let n=t.toString();return this.documentTrie.findAll(n)}async getOrCreateDocument(t,n){let r=this.getDocument(t);return r||(r=await this.langiumDocumentFactory.fromUri(t,n),this.addDocument(r),r)}createDocument(t,n,r){if(r)return this.langiumDocumentFactory.fromString(n,t,r).then(i=>(this.addDocument(i),i));{let i=this.langiumDocumentFactory.fromString(n,t);return this.addDocument(i),i}}hasDocument(t){return this.documentTrie.has(t.toString())}invalidateDocument(t){let n=t.toString(),r=this.documentTrie.find(n);return r&&this.documentBuilder().resetToState(r,de.Changed),r}deleteDocument(t){let n=t.toString(),r=this.documentTrie.find(n);return r&&(r.state=de.Changed,this.documentTrie.delete(n)),r}deleteDocuments(t){let n=t.toString(),r=this.documentTrie.findAll(n);for(let i of r)i.state=de.Changed;return this.documentTrie.delete(n),r}};var Mo=Symbol("RefResolving"),Km=class{constructor(t,n,r,i,o){this.resolver=t,this.node=n,this.property=r,this._ref=void 0,this.$refNode=i,this.$refText=o}get ref(){return this.resolver.resolveReference(this,this.node,this.property)}get $nodeDescription(){return this._nodeDescription}get error(){return Gi(this._ref)?this._ref:void 0}},qm=class{constructor(t,n,r,i,o){this.resolver=t,this.node=n,this.property=r,this._items=void 0,this.$refNode=i,this.$refText=o}get items(){return this.resolver.resolveMultiReference(this,this.node,this.property)}get error(){return this._linkingError}},qu=class{constructor(t){this.reflection=t.shared.AstReflection,this.langiumDocuments=()=>t.shared.workspace.LangiumDocuments,this.scopeProvider=t.references.ScopeProvider,this.astNodeLocator=t.workspace.AstNodeLocator,this.profiler=t.shared.profilers.LangiumProfiler,this.languageId=t.LanguageMetaData.languageId,this.referenceResolver={resolveReference:this.resolveReference.bind(this),resolveMultiReference:this.resolveMultiReference.bind(this)}}async link(t,n=fe.CancellationToken.None){if(this.profiler?.isActive("linking")){let r=this.profiler.createTask("linking",this.languageId);r.start();try{for(let i of yt(t.parseResult.value))await Ge(n),Gr(i).forEach(o=>{let s=`${i.$type}:${o.property}`;r.startSubTask(s);try{this.doLink(o,t)}finally{r.stopSubTask(s)}})}finally{r.stop()}}else for(let r of yt(t.parseResult.value))await Ge(n),Gr(r).forEach(i=>this.doLink(i,t))}doLink(t,n){let r=t.reference;if("_ref"in r&&r._ref===void 0){r._ref=Mo;try{let i=this.getCandidate(t);if(Gi(i))r._ref=i;else{r._nodeDescription=i;let o=this.loadAstNode(i);r._ref=o??this.createLinkingError(t,i)}}catch(i){console.error(`An error occurred while resolving reference to '${r.$refText}':`,i);let o=i.message??String(i);r._ref={info:t,message:`An error occurred while resolving reference to '${r.$refText}': ${o}`}}n.references.push(r)}else if("_items"in r&&r._items===void 0){r._items=Mo;try{let i=this.getCandidates(t),o=[];if(Gi(i))r._linkingError=i;else for(let s of i){let a=this.loadAstNode(s);a&&o.push({ref:a,$nodeDescription:s})}r._items=o}catch(i){r._linkingError={info:t,message:`An error occurred while resolving reference to '${r.$refText}': ${i}`},r._items=[]}n.references.push(r)}}unlink(t){for(let n of t.references)"_ref"in n?(n._ref=void 0,delete n._nodeDescription):"_items"in n&&(n._items=void 0,delete n._linkingError);t.references=[]}getCandidate(t){return this.scopeProvider.getScope(t).getElement(t.reference.$refText)??this.createLinkingError(t)}getCandidates(t){let r=this.scopeProvider.getScope(t).getElements(t.reference.$refText).distinct(i=>`${i.documentUri}#${i.path}`).toArray();return r.length>0?r:this.createLinkingError(t)}buildReference(t,n,r,i){return new Km(this.referenceResolver,t,n,r,i)}buildMultiReference(t,n,r,i){return new qm(this.referenceResolver,t,n,r,i)}resolveReference(t,n,r){if(Ue(t._ref))return t._ref;if(TE(t._nodeDescription)){let i=this.loadAstNode(t._nodeDescription);t._ref=i??this.createLinkingError({reference:t,container:n,property:r},t._nodeDescription)}else if(t._ref===void 0){t._ref=Mo;let i=Xs(n).$document,o=this.getLinkedNode({reference:t,container:n,property:r});if(o.error&&i&&i.state<de.ComputedScopes)return t._ref=void 0;t._ref=o.node??o.error,t._nodeDescription=o.descr,i?.references.push(t)}else t._ref===Mo&&this.throwCyclicReferenceError(n,r,t.$refText);return Ue(t._ref)?t._ref:void 0}resolveMultiReference(t,n,r){if(Array.isArray(t._items))return t._items;if(t._items===void 0){t._items=Mo;let i=Xs(n).$document,o=this.getCandidates({reference:t,container:n,property:r}),s=[];if(Gi(o))t._linkingError=o;else{for(let a of o){let l=this.loadAstNode(a);l&&s.push({ref:l,$nodeDescription:a})}s.length===0&&(t._linkingError=this.createLinkingError({reference:t,container:n,property:r}))}t._items=s,i?.references.push(t)}else t._items===Mo&&this.throwCyclicReferenceError(n,r,t.$refText);return Array.isArray(t._items)?t._items:[]}throwCyclicReferenceError(t,n,r){throw new Error(`Cyclic reference resolution detected: ${this.astNodeLocator.getAstNodePath(t)}/${n} (symbol '${r}')`)}getLinkedNode(t){try{let n=this.getCandidate(t);if(Gi(n))return{error:n};let r=this.loadAstNode(n);return r?{node:r,descr:n}:{descr:n,error:this.createLinkingError(t,n)}}catch(n){console.error(`An error occurred while resolving reference to '${t.reference.$refText}':`,n);let r=n.message??String(n);return{error:{info:t,message:`An error occurred while resolving reference to '${t.reference.$refText}': ${r}`}}}}loadAstNode(t){if(t.node)return t.node;let n=this.langiumDocuments().getDocument(t.documentUri);if(n)return this.astNodeLocator.getAstNode(n.parseResult.value,t.path)}createLinkingError(t,n){let r=Xs(t.container).$document;r&&r.state<de.ComputedScopes&&console.warn(`Attempted reference resolution before document reached ComputedScopes state (${r.uri}).`);let i=this.reflection.getReferenceType(t);return{info:t,message:`Could not resolve reference to ${i} named '${t.reference.$refText}'.`,targetDescription:n}}};function OM(e){return typeof e.name=="string"}var Zu=class{getName(t){if(OM(t))return t.name}getNameNode(t){return ra(t.$cstNode,"name")}};var Ju=class{constructor(t){this.nameProvider=t.references.NameProvider,this.index=t.shared.workspace.IndexManager,this.nodeLocator=t.workspace.AstNodeLocator,this.documents=t.shared.workspace.LangiumDocuments,this.hasMultiReference=yt(t.Grammar).some(n=>dn(n)&&n.isMulti)}findDeclarations(t){if(t){let n=Eh(t),r=t.astNode;if(n&&r){let i=r[n.feature];if(it(i)||Mt(i))return jp(i);if(Array.isArray(i)){for(let o of i)if((it(o)||Mt(o))&&o.$refNode&&o.$refNode.offset<=t.offset&&o.$refNode.end>=t.end)return jp(o)}}if(r){let i=this.nameProvider.getNameNode(r);if(i&&(i===t||qE(t,i)))return this.getSelfNodes(r)}}return[]}getSelfNodes(t){if(this.hasMultiReference){let n=this.index.findAllReferences(t,this.nodeLocator.getAstNodePath(t)),r=this.getNodeFromReferenceDescription(n.head());if(r){for(let i of Gr(r))if(Mt(i.reference)&&i.reference.items.some(o=>o.ref===t))return i.reference.items.map(o=>o.ref)}return[t]}else return[t]}getNodeFromReferenceDescription(t){if(!t)return;let n=this.documents.getDocument(t.sourceUri);if(n)return this.nodeLocator.getAstNode(n.parseResult.value,t.sourcePath)}findDeclarationNodes(t){let n=this.findDeclarations(t),r=[];for(let i of n){let o=this.nameProvider.getNameNode(i)??i.$cstNode;o&&r.push(o)}return r}findReferences(t,n){let r=[];n.includeDeclaration&&r.push(...this.getSelfReferences(t));let i=this.index.findAllReferences(t,this.nodeLocator.getAstNodePath(t));return n.documentUri&&(i=i.filter(o=>Qe.equals(o.sourceUri,n.documentUri))),r.push(...i),ye(r)}getSelfReferences(t){let n=this.getSelfNodes(t),r=[];for(let i of n){let o=this.nameProvider.getNameNode(i);if(o){let s=st(i),a=this.nodeLocator.getAstNodePath(i);r.push({sourceUri:s.uri,sourcePath:a,targetUri:s.uri,targetPath:a,segment:eo(o),local:!0})}}return r}};var Jt=class{constructor(t){if(this.map=new Map,t)for(let[n,r]of t)this.add(n,r)}get size(){return ic.sum(ye(this.map.values()).map(t=>t.length))}clear(){this.map.clear()}delete(t,n){if(n===void 0)return this.map.delete(t);{let r=this.map.get(t);if(r){let i=r.indexOf(n);if(i>=0)return r.length===1?this.map.delete(t):r.splice(i,1),!0}return!1}}get(t){return this.map.get(t)??[]}getStream(t){let n=this.map.get(t);return n?ye(n):oc}has(t,n){if(n===void 0)return this.map.has(t);{let r=this.map.get(t);return r?r.indexOf(n)>=0:!1}}add(t,n){return this.map.has(t)?this.map.get(t).push(n):this.map.set(t,[n]),this}addAll(t,n){return this.map.has(t)?this.map.get(t).push(...n):this.map.set(t,Array.from(n)),this}forEach(t){this.map.forEach((n,r)=>n.forEach(i=>t(i,r,this)))}[Symbol.iterator](){return this.entries().iterator()}entries(){return ye(this.map.entries()).flatMap(([t,n])=>n.map(r=>[t,r]))}keys(){return ye(this.map.keys())}values(){return ye(this.map.values()).flat()}entriesGroupedByKey(){return ye(this.map.entries())}},Oa=class{get size(){return this.map.size}constructor(t){if(this.map=new Map,this.inverse=new Map,t)for(let[n,r]of t)this.set(n,r)}clear(){this.map.clear(),this.inverse.clear()}set(t,n){return this.map.set(t,n),this.inverse.set(n,t),this}get(t){return this.map.get(t)}getKey(t){return this.inverse.get(t)}delete(t){let n=this.map.get(t);return n!==void 0?(this.map.delete(t),this.inverse.delete(n),!0):!1}};var Qu=class{constructor(t){this.nameProvider=t.references.NameProvider,this.descriptions=t.workspace.AstNodeDescriptionProvider}async collectExportedSymbols(t,n=fe.CancellationToken.None){return this.collectExportedSymbolsForNode(t.parseResult.value,t,void 0,n)}async collectExportedSymbolsForNode(t,n,r=ac,i=fe.CancellationToken.None){let o=[];this.addExportedSymbol(t,o,n);for(let s of r(t))await Ge(i),this.addExportedSymbol(s,o,n);return o}addExportedSymbol(t,n,r){let i=this.nameProvider.getName(t);i&&n.push(this.descriptions.createDescription(t,i,r))}async collectLocalSymbols(t,n=fe.CancellationToken.None){let r=t.parseResult.value,i=new Jt;for(let o of cn(r))await Ge(n),this.addLocalSymbol(o,t,i);return i}addLocalSymbol(t,n,r){let i=t.$container;if(i){let o=this.nameProvider.getName(t);o&&r.add(i,this.descriptions.createDescription(t,o,n))}}};var Ca=class{constructor(t,n,r){this.elements=t,this.outerScope=n,this.caseInsensitive=r?.caseInsensitive??!1,this.concatOuterScope=r?.concatOuterScope??!0}getAllElements(){return this.outerScope?this.elements.concat(this.outerScope.getAllElements()):this.elements}getElement(t){let n=this.caseInsensitive?t.toLowerCase():t,r=this.caseInsensitive?this.elements.find(i=>i.name.toLowerCase()===n):this.elements.find(i=>i.name===t);if(r)return r;if(this.outerScope)return this.outerScope.getElement(t)}getElements(t){let n=this.caseInsensitive?t.toLowerCase():t,r=this.caseInsensitive?this.elements.filter(i=>i.name.toLowerCase()===n):this.elements.filter(i=>i.name===t);return(this.concatOuterScope||r.isEmpty())&&this.outerScope?r.concat(this.outerScope.getElements(t)):r}};var ef=class{constructor(t,n,r){this.elements=new Jt,this.caseInsensitive=r?.caseInsensitive??!1,this.concatOuterScope=r?.concatOuterScope??!0;for(let i of t){let o=this.caseInsensitive?i.name.toLowerCase():i.name;this.elements.add(o,i)}this.outerScope=n}getElement(t){let n=this.caseInsensitive?t.toLowerCase():t,r=this.elements.get(n)[0];if(r)return r;if(this.outerScope)return this.outerScope.getElement(t)}getElements(t){let n=this.caseInsensitive?t.toLowerCase():t,r=this.elements.get(n);return(this.concatOuterScope||r.length===0)&&this.outerScope?ye(r).concat(this.outerScope.getElements(t)):ye(r)}getAllElements(){let t=ye(this.elements.values());return this.outerScope&&(t=t.concat(this.outerScope.getAllElements())),t}};var tf=class{constructor(){this.toDispose=[],this.isDisposed=!1}onDispose(t){this.toDispose.push(t)}dispose(){this.throwIfDisposed(),this.clear(),this.isDisposed=!0,this.toDispose.forEach(t=>t.dispose())}throwIfDisposed(){if(this.isDisposed)throw new Error("This cache has already been disposed")}},Zm=class extends tf{constructor(){super(...arguments),this.cache=new Map}has(t){return this.throwIfDisposed(),this.cache.has(t)}set(t,n){this.throwIfDisposed(),this.cache.set(t,n)}get(t,n){if(this.throwIfDisposed(),this.cache.has(t))return this.cache.get(t);if(n){let r=n();return this.cache.set(t,r),r}else return}delete(t){return this.throwIfDisposed(),this.cache.delete(t)}clear(){this.throwIfDisposed(),this.cache.clear()}},nf=class extends tf{constructor(t){super(),this.cache=new Map,this.converter=t??(n=>n)}has(t,n){return this.throwIfDisposed(),this.cacheForContext(t).has(n)}set(t,n,r){this.throwIfDisposed(),this.cacheForContext(t).set(n,r)}get(t,n,r){this.throwIfDisposed();let i=this.cacheForContext(t);if(i.has(n))return i.get(n);if(r){let o=r();return i.set(n,o),o}else return}delete(t,n){return this.throwIfDisposed(),this.cacheForContext(t).delete(n)}clear(t){if(this.throwIfDisposed(),t){let n=this.converter(t);this.cache.delete(n)}else this.cache.clear()}cacheForContext(t){let n=this.converter(t),r=this.cache.get(n);return r||(r=new Map,this.cache.set(n,r)),r}};var rf=class extends Zm{constructor(t,n){super(),n?(this.toDispose.push(t.workspace.DocumentBuilder.onBuildPhase(n,()=>{this.clear()})),this.toDispose.push(t.workspace.DocumentBuilder.onUpdate((r,i)=>{i.length>0&&this.clear()}))):this.toDispose.push(t.workspace.DocumentBuilder.onUpdate(()=>{this.clear()}))}};var of=class{constructor(t){this.reflection=t.shared.AstReflection,this.nameProvider=t.references.NameProvider,this.descriptions=t.workspace.AstNodeDescriptionProvider,this.indexManager=t.shared.workspace.IndexManager,this.globalScopeCache=new rf(t.shared)}getScope(t){let n=[],r=this.reflection.getReferenceType(t),i=st(t.container).localSymbols;if(i){let s=t.container;do i.has(s)&&n.push(i.getStream(s).filter(a=>this.reflection.isSubtype(a.type,r))),s=s.$container;while(s)}let o=this.getGlobalScope(r,t);for(let s=n.length-1;s>=0;s--)o=this.createScope(n[s],o);return o}createScope(t,n,r){return new Ca(ye(t),n,r)}createScopeForNodes(t,n,r){let i=ye(t).map(o=>{let s=this.nameProvider.getName(o);if(s)return this.descriptions.createDescription(o,s)}).nonNullable();return new Ca(i,n,r)}getGlobalScope(t,n){return this.globalScopeCache.get(t,()=>new ef(this.indexManager.allElements(t)))}};function t0(e){return typeof e.$comment=="string"}function e0(e){return typeof e=="object"&&!!e&&("$ref"in e||"$refs"in e||"$error"in e)}var sf=class{constructor(t){this.ignoreProperties=new Set(["$container","$containerProperty","$containerIndex","$document","$cstNode"]),this.langiumDocuments=t.shared.workspace.LangiumDocuments,this.astNodeLocator=t.workspace.AstNodeLocator,this.nameProvider=t.references.NameProvider,this.commentProvider=t.documentation.CommentProvider}serialize(t,n){let r=n??{},i=n?.replacer,o=(a,l)=>this.replacer(a,l,r),s=i?(a,l)=>i(a,l,o):o;try{return this.currentDocument=st(t),JSON.stringify(t,s,n?.space)}finally{this.currentDocument=void 0}}deserialize(t,n){let r=n??{},i=JSON.parse(t);return this.linkNode(i,i,r),i}replacer(t,n,{refText:r,sourceText:i,textRegions:o,comments:s,uriConverter:a}){if(!this.ignoreProperties.has(t))if(it(n)){let l=n.ref,c=r?n.$refText:void 0;if(l){let u=st(l),f="";this.currentDocument&&this.currentDocument!==u&&(a?f=a(u.uri,l):f=u.uri.toString());let d=this.astNodeLocator.getAstNodePath(l);return{$ref:`${f}#${d}`,$refText:c}}else return{$error:n.error?.message??"Could not resolve reference",$refText:c}}else if(Mt(n)){let l=r?n.$refText:void 0,c=[];for(let u of n.items){let f=u.ref,d=st(u.ref),p="";this.currentDocument&&this.currentDocument!==d&&(a?p=a(d.uri,f):p=d.uri.toString());let m=this.astNodeLocator.getAstNodePath(f);c.push(`${p}#${m}`)}return{$refs:c,$refText:l}}else if(Ue(n)){let l;if(o&&(l=this.addAstNodeRegionWithAssignmentsTo({...n}),(!t||n.$document)&&l?.$textRegion&&(l.$textRegion.documentURI=this.currentDocument?.uri.toString())),i&&!t&&(l??(l={...n}),l.$sourceText=n.$cstNode?.text),s){l??(l={...n});let c=this.commentProvider.getComment(n);c&&(l.$comment=c.replace(/\r/g,""))}return l??n}else return n}addAstNodeRegionWithAssignmentsTo(t){let n=r=>({offset:r.offset,end:r.end,length:r.length,range:r.range});if(t.$cstNode){let r=t.$textRegion=n(t.$cstNode),i=r.assignments={};return Object.keys(t).filter(o=>!o.startsWith("$")).forEach(o=>{let s=mh(t.$cstNode,o).map(n);s.length!==0&&(i[o]=s)}),t}}linkNode(t,n,r,i,o,s){for(let[l,c]of Object.entries(t))if(Array.isArray(c))for(let u=0;u<c.length;u++){let f=c[u];e0(f)?c[u]=this.reviveReference(t,l,n,f,r):Ue(f)&&this.linkNode(f,n,r,t,l,u)}else e0(c)?t[l]=this.reviveReference(t,l,n,c,r):Ue(c)&&this.linkNode(c,n,r,t,l);let a=t;a.$container=i,a.$containerProperty=o,a.$containerIndex=s}reviveReference(t,n,r,i,o){let s=i.$refText,a=i.$error,l;if(i.$ref){let c=this.getRefNode(r,i.$ref,o.uriConverter);if(Ue(c))return s||(s=this.nameProvider.getName(c)),{$refText:s??"",ref:c};a=c}else if(i.$refs){let c=[];for(let u of i.$refs){let f=this.getRefNode(r,u,o.uriConverter);Ue(f)&&c.push({ref:f})}if(c.length===0)l={$refText:s??"",items:c},a??(a="Could not resolve multi-reference");else return{$refText:s??"",items:c}}if(a)return l??(l={$refText:s??"",ref:void 0}),l.error={info:{container:t,property:n,reference:l},message:a},l}getRefNode(t,n,r){try{let i=n.indexOf("#");if(i===0){let l=this.astNodeLocator.getAstNode(t,n.substring(1));return l||"Could not resolve path: "+n}if(i<0){let l=r?r(n):Ce.parse(n),c=this.langiumDocuments.getDocument(l);return c?c.parseResult.value:"Could not find document for URI: "+n}let o=r?r(n.substring(0,i)):Ce.parse(n.substring(0,i)),s=this.langiumDocuments.getDocument(o);if(!s)return"Could not find document for URI: "+n;if(i===n.length-1)return s.parseResult.value;let a=this.astNodeLocator.getAstNode(s.parseResult.value,n.substring(i+1));return a||"Could not resolve URI: "+n}catch(i){return String(i)}}};var af=class{get map(){return this.fileExtensionMap}constructor(t){this.languageIdMap=new Map,this.fileExtensionMap=new Map,this.fileNameMap=new Map,this.textDocuments=t?.workspace.TextDocuments}register(t){let n=t.LanguageMetaData;for(let r of n.fileExtensions)this.fileExtensionMap.has(r)&&console.warn(`The file extension ${r} is used by multiple languages. It is now assigned to '${n.languageId}'.`),this.fileExtensionMap.set(r,t);if(n.fileNames)for(let r of n.fileNames)this.fileNameMap.has(r)&&console.warn(`The file name ${r} is used by multiple languages. It is now assigned to '${n.languageId}'.`),this.fileNameMap.set(r,t);this.languageIdMap.set(n.languageId,t)}getServices(t){if(this.languageIdMap.size===0)throw new Error("The service registry is empty. Use `register` to register the services of a language.");let n=this.textDocuments?.get(t)?.languageId;if(n!==void 0){let s=this.languageIdMap.get(n);if(s)return s}let r=Qe.extname(t),i=Qe.basename(t),o=this.fileNameMap.get(i)??this.fileExtensionMap.get(r);if(!o)throw n?new Error(`The service registry contains no services for the extension '${r}' for language '${n}'.`):new Error(`The service registry contains no services for the extension '${r}'.`);return o}hasServices(t){try{return this.getServices(t),!0}catch{return!1}}get all(){return Array.from(this.languageIdMap.values())}};function Fo(e){return{code:e}}var Jm;(function(e){e.defaults=["fast","slow","built-in"],e.all=e.defaults})(Jm||(Jm={}));var lf=class{constructor(t){this.entries=new Jt,this.knownCategories=new Set(Jm.defaults),this.entriesBefore=[],this.entriesAfter=[],this.reflection=t.shared.AstReflection}register(t,n=this,r="fast"){if(r==="built-in")throw new Error("The 'built-in' category is reserved for lexer, parser, and linker errors.");this.knownCategories.add(r);for(let[i,o]of Object.entries(t)){let s=o;if(Array.isArray(s))for(let a of s){let l={check:this.wrapValidationException(a,n),category:r};this.addEntry(i,l)}else if(typeof s=="function"){let a={check:this.wrapValidationException(s,n),category:r};this.addEntry(i,a)}else sr(s)}}wrapValidationException(t,n){return async(r,i,o)=>{await this.handleException(()=>t.call(n,r,i,o),"An error occurred during validation",i,r)}}async handleException(t,n,r,i){try{await t()}catch(o){if(Rr(o))throw o;console.error(`${n}:`,o),o instanceof Error&&o.stack&&console.error(o.stack);let s=o instanceof Error?o.message:String(o);r("error",`${n}: ${s}`,{node:i})}}addEntry(t,n){if(t==="AstNode"){this.entries.add("AstNode",n);return}for(let r of this.reflection.getAllSubTypes(t))this.entries.add(r,n)}getChecks(t,n){let r=ye(this.entries.get(t)).concat(this.entries.get("AstNode"));return n&&(r=r.filter(i=>n.includes(i.category))),r.map(i=>i.check)}registerBeforeDocument(t,n=this){this.entriesBefore.push(this.wrapPreparationException(t,"An error occurred during set-up of the validation",n))}registerAfterDocument(t,n=this){this.entriesAfter.push(this.wrapPreparationException(t,"An error occurred during tear-down of the validation",n))}wrapPreparationException(t,n,r){return async(i,o,s,a)=>{await this.handleException(()=>t.call(r,i,o,s,a),n,o,i)}}get checksBefore(){return this.entriesBefore}get checksAfter(){return this.entriesAfter}getAllValidationCategories(t){return this.knownCategories}};var CM=Object.freeze({validateNode:!0,validateChildren:!0}),cf=class{constructor(t){this.validationRegistry=t.validation.ValidationRegistry,this.metadata=t.LanguageMetaData,this.profiler=t.shared.profilers.LangiumProfiler,this.languageId=t.LanguageMetaData.languageId}async validateDocument(t,n={},r=fe.CancellationToken.None){let i=t.parseResult,o=[];if(await Ge(r),(!n.categories||n.categories.includes("built-in"))&&(this.processLexingErrors(i,o,n),n.stopAfterLexingErrors&&o.some(s=>s.data?.code===Qt.LexingError)||(this.processParsingErrors(i,o,n),n.stopAfterParsingErrors&&o.some(s=>s.data?.code===Qt.ParsingError))||(this.processLinkingErrors(t,o,n),n.stopAfterLinkingErrors&&o.some(s=>s.data?.code===Qt.LinkingError))))return o;try{o.push(...await this.validateAst(i.value,n,r))}catch(s){if(Rr(s))throw s;console.error("An error occurred during validation:",s)}return await Ge(r),o}processLexingErrors(t,n,r){let i=[...t.lexerErrors,...t.lexerReport?.diagnostics??[]];for(let o of i){let s=o.severity??"error",a={severity:Qm(s),range:{start:{line:o.line-1,character:o.column-1},end:{line:o.line-1,character:o.column+o.length-1}},message:o.message,data:$M(s),source:this.getSource()};n.push(a)}}processParsingErrors(t,n,r){for(let i of t.parserErrors){let o;if(Zs(i.token))o=ZE(i.token);else if("previousToken"in i){let s=i.previousToken;if(Zs(s)){let a={line:s.endLine-1,character:s.endColumn};o={start:a,end:a}}else{let a={line:0,character:0};o={start:a,end:a}}}if(o){let s={severity:Qm("error"),range:o,message:i.message,data:Fo(Qt.ParsingError),source:this.getSource()};n.push(s)}}}processLinkingErrors(t,n,r){for(let i of t.references){let o=i.error;if(o){let s={node:o.info.container,range:i.$refNode?.range,property:o.info.property,index:o.info.index,data:{code:Qt.LinkingError,containerType:o.info.container.$type,property:o.info.property,refText:o.info.reference.$refText}};n.push(this.toDiagnostic("error",o.message,s))}}}async validateAst(t,n,r=fe.CancellationToken.None){let i=[],o=(s,a,l)=>{i.push(this.toDiagnostic(s,a,l))};return await this.validateAstBefore(t,n,o,r),await this.validateAstNodes(t,n,o,r),await this.validateAstAfter(t,n,o,r),i}async validateAstBefore(t,n,r,i=fe.CancellationToken.None){let o=this.validationRegistry.checksBefore;for(let s of o)await Ge(i),await s(t,r,n.categories??[],i)}async validateAstNodes(t,n,r,i=fe.CancellationToken.None){if(this.profiler?.isActive("validating")){let o=this.profiler.createTask("validating",this.languageId);o.start();try{let s=yt(t).iterator();for(let a of s){o.startSubTask(a.$type);let l=this.validateSingleNodeOptions(a,n);if(l.validateNode)try{let c=this.validationRegistry.getChecks(a.$type,n.categories);for(let u of c)await u(a,r,i)}finally{o.stopSubTask(a.$type)}l.validateChildren||s.prune()}}finally{o.stop()}}else{let o=yt(t).iterator();for(let s of o){await Ge(i);let a=this.validateSingleNodeOptions(s,n);if(a.validateNode){let l=this.validationRegistry.getChecks(s.$type,n.categories);for(let c of l)await c(s,r,i)}a.validateChildren||o.prune()}}}validateSingleNodeOptions(t,n){return CM}async validateAstAfter(t,n,r,i=fe.CancellationToken.None){let o=this.validationRegistry.checksAfter;for(let s of o)await Ge(i),await s(t,r,n.categories??[],i)}toDiagnostic(t,n,r){return{message:n,range:eg(r),severity:Qm(t),code:r.code,codeDescription:r.codeDescription,tags:r.tags,relatedInformation:r.relatedInformation,data:r.data,source:this.getSource()}}getSource(){return this.metadata.languageId}};function eg(e){if(e.range)return e.range;let t;return typeof e.property=="string"?t=ra(e.node.$cstNode,e.property,e.index):typeof e.keyword=="string"&&(t=yh(e.node.$cstNode,e.keyword,e.index)),t??(t=e.node.$cstNode),t?t.range:{start:{line:0,character:0},end:{line:0,character:0}}}function Qm(e){switch(e){case"error":return 1;case"warning":return 2;case"info":return 3;case"hint":return 4;default:throw new Error("Invalid diagnostic severity: "+e)}}function $M(e){switch(e){case"error":return Fo(Qt.LexingError);case"warning":return Fo(Qt.LexingWarning);case"info":return Fo(Qt.LexingInfo);case"hint":return Fo(Qt.LexingHint);default:throw new Error("Invalid diagnostic severity: "+e)}}var Qt;(function(e){e.LexingError="lexing-error",e.LexingWarning="lexing-warning",e.LexingInfo="lexing-info",e.LexingHint="lexing-hint",e.ParsingError="parsing-error",e.LinkingError="linking-error"})(Qt||(Qt={}));var uf=class{constructor(t){this.astNodeLocator=t.workspace.AstNodeLocator,this.nameProvider=t.references.NameProvider}createDescription(t,n,r){let i=r??st(t);n??(n=this.nameProvider.getName(t));let o=this.astNodeLocator.getAstNodePath(t);if(!n)throw new Error(`Node at path ${o} has no name.`);let s,a=()=>s??(s=eo(this.nameProvider.getNameNode(t)??t.$cstNode));return{node:t,name:n,get nameSegment(){return a()},selectionSegment:eo(t.$cstNode),type:t.$type,documentUri:i.uri,path:o}}},ff=class{constructor(t){this.nodeLocator=t.workspace.AstNodeLocator}async createDescriptions(t,n=fe.CancellationToken.None){let r=[],i=t.parseResult.value;for(let o of yt(i))await Ge(n),Gr(o).forEach(s=>{s.reference.error||r.push(...this.createInfoDescriptions(s))});return r}createInfoDescriptions(t){let n=t.reference;if(n.error||!n.$refNode)return[];let r=[];it(n)&&n.$nodeDescription?r=[n.$nodeDescription]:Mt(n)&&(r=n.items.map(l=>l.$nodeDescription).filter(l=>l!==void 0));let i=st(t.container).uri,o=this.nodeLocator.getAstNodePath(t.container),s=[],a=eo(n.$refNode);for(let l of r)s.push({sourceUri:i,sourcePath:o,targetUri:l.documentUri,targetPath:l.path,segment:a,local:Qe.equals(l.documentUri,i)});return s}};var df=class{constructor(){this.segmentSeparator="/",this.indexSeparator="@"}getAstNodePath(t){if(t.$container){let n=this.getAstNodePath(t.$container),r=this.getPathSegment(t);return n+this.segmentSeparator+r}return""}getPathSegment({$containerProperty:t,$containerIndex:n}){if(!t)throw new Error("Missing '$containerProperty' in AST node.");return n!==void 0?t+this.indexSeparator+n:t}getAstNode(t,n){return n.split(this.segmentSeparator).reduce((i,o)=>{if(!i||o.length===0)return i;let s=o.indexOf(this.indexSeparator);if(s>0){let a=o.substring(0,s),l=parseInt(o.substring(s+1));return i[a]?.[l]}return i[o]},t)}};var pf=class{constructor(t){this._ready=new Ir,this.onConfigurationSectionUpdateEmitter=new Gu.Emitter,this.settings={},this.workspaceConfig=!1,this.serviceRegistry=t.ServiceRegistry}get ready(){return this._ready.promise}initialize(t){this.workspaceConfig=t.capabilities.workspace?.configuration??!1}async initialized(t){if(this.workspaceConfig){if(t.register){let n=this.serviceRegistry.all;t.register({section:n.map(r=>this.toSectionName(r.LanguageMetaData.languageId))})}if(t.fetchConfiguration){let n=this.serviceRegistry.all.map(i=>({section:this.toSectionName(i.LanguageMetaData.languageId)})),r=await t.fetchConfiguration(n);n.forEach((i,o)=>{this.updateSectionConfiguration(i.section,r[o])})}}this._ready.resolve()}updateConfiguration(t){typeof t.settings!="object"||t.settings===null||Object.entries(t.settings).forEach(([n,r])=>{this.updateSectionConfiguration(n,r),this.onConfigurationSectionUpdateEmitter.fire({section:n,configuration:r})})}updateSectionConfiguration(t,n){this.settings[t]=n}async getConfiguration(t,n){await this.ready;let r=this.toSectionName(t);if(this.settings[r])return this.settings[r][n]}toSectionName(t){return`${t}`}get onConfigurationSectionUpdate(){return this.onConfigurationSectionUpdateEmitter.event}};var Bo;(function(e){function t(n){return{dispose:async()=>await n()}}e.create=t})(Bo||(Bo={}));var hf=class{constructor(t){this.updateBuildOptions={validation:{categories:["built-in","fast"]}},this.updateListeners=[],this.buildPhaseListeners=new Jt,this.documentPhaseListeners=new Jt,this.buildState=new Map,this.documentBuildWaiters=new Map,this.currentState=de.Changed,this.langiumDocuments=t.workspace.LangiumDocuments,this.langiumDocumentFactory=t.workspace.LangiumDocumentFactory,this.textDocuments=t.workspace.TextDocuments,this.indexManager=t.workspace.IndexManager,this.fileSystemProvider=t.workspace.FileSystemProvider,this.workspaceManager=()=>t.workspace.WorkspaceManager,this.serviceRegistry=t.ServiceRegistry}async build(t,n={},r=fe.CancellationToken.None){for(let i of t){let o=i.uri.toString();if(i.state===de.Validated){if(typeof n.validation=="boolean"&&n.validation)this.resetToState(i,de.IndexedReferences);else if(typeof n.validation=="object"){let s=this.findMissingValidationCategories(i,n);s.length>0&&(this.buildState.set(o,{completed:!1,options:{validation:{categories:s}},result:this.buildState.get(o)?.result}),i.state=de.IndexedReferences)}}else this.buildState.delete(o)}this.currentState=de.Changed,await this.emitUpdate(t.map(i=>i.uri),[]),await this.buildDocuments(t,n,r)}async update(t,n,r=fe.CancellationToken.None){this.currentState=de.Changed;let i=[];for(let l of n){let c=this.langiumDocuments.deleteDocuments(l);for(let u of c)i.push(u.uri),this.cleanUpDeleted(u)}let o=(await Promise.all(t.map(l=>this.findChangedUris(l)))).flat();for(let l of o){let c=this.langiumDocuments.getDocument(l);c===void 0&&(c=this.langiumDocumentFactory.fromModel({$type:"INVALID"},l),c.state=de.Changed,this.langiumDocuments.addDocument(c)),this.resetToState(c,de.Changed)}let s=ye(o).concat(i).map(l=>l.toString()).toSet();this.langiumDocuments.all.filter(l=>!s.has(l.uri.toString())&&this.shouldRelink(l,s)).forEach(l=>this.resetToState(l,de.ComputedScopes)),await this.emitUpdate(o,i),await Ge(r);let a=this.sortDocuments(this.langiumDocuments.all.filter(l=>l.state<de.Validated||!this.buildState.get(l.uri.toString())?.completed||this.resultsAreIncomplete(l,this.updateBuildOptions)).toArray());await this.buildDocuments(a,this.updateBuildOptions,r)}resultsAreIncomplete(t,n){return this.findMissingValidationCategories(t,n).length>=1}findMissingValidationCategories(t,n){let r=this.buildState.get(t.uri.toString()),i=this.serviceRegistry.getServices(t.uri).validation.ValidationRegistry.getAllValidationCategories(t),o=r?.result?.validationChecks?new Set(r?.result?.validationChecks):r?.completed?i:new Set,s=n===void 0||n.validation===!0?i:typeof n.validation=="object"?n.validation.categories??i:[];return ye(s).filter(a=>!o.has(a)).toArray()}async findChangedUris(t){if(this.langiumDocuments.getDocument(t)??this.textDocuments?.get(t))return[t];try{let r=await this.fileSystemProvider.stat(t);if(r.isDirectory)return await this.workspaceManager().searchFolder(t);if(this.workspaceManager().shouldIncludeEntry(r))return[t]}catch{}return[]}async emitUpdate(t,n){await Promise.all(this.updateListeners.map(r=>r(t,n)))}sortDocuments(t){let n=0,r=t.length-1;for(;n<r;){for(;n<t.length&&this.hasTextDocument(t[n]);)n++;for(;r>=0&&!this.hasTextDocument(t[r]);)r--;n<r&&([t[n],t[r]]=[t[r],t[n]])}return t}hasTextDocument(t){return!!this.textDocuments?.get(t.uri)}shouldRelink(t,n){return t.references.some(r=>r.error!==void 0)?!0:this.indexManager.isAffected(t,n)}onUpdate(t){return this.updateListeners.push(t),Bo.create(()=>{let n=this.updateListeners.indexOf(t);n>=0&&this.updateListeners.splice(n,1)})}resetToState(t,n){switch(n){case de.Changed:case de.Parsed:this.indexManager.removeContent(t.uri);case de.IndexedContent:t.localSymbols=void 0;case de.ComputedScopes:this.serviceRegistry.getServices(t.uri).references.Linker.unlink(t);case de.Linked:this.indexManager.removeReferences(t.uri);case de.IndexedReferences:t.diagnostics=void 0,this.buildState.delete(t.uri.toString());case de.Validated:}t.state>n&&(t.state=n)}cleanUpDeleted(t){this.buildState.delete(t.uri.toString()),this.indexManager.remove(t.uri),t.state=de.Changed}async buildDocuments(t,n,r){this.prepareBuild(t,n),await this.runCancelable(t,de.Parsed,r,s=>this.langiumDocumentFactory.update(s,r)),await this.runCancelable(t,de.IndexedContent,r,s=>this.indexManager.updateContent(s,r)),await this.runCancelable(t,de.ComputedScopes,r,async s=>{let a=this.serviceRegistry.getServices(s.uri).references.ScopeComputation;s.localSymbols=await a.collectLocalSymbols(s,r)});let i=t.filter(s=>this.shouldLink(s));await this.runCancelable(i,de.Linked,r,s=>this.serviceRegistry.getServices(s.uri).references.Linker.link(s,r)),await this.runCancelable(i,de.IndexedReferences,r,s=>this.indexManager.updateReferences(s,r));let o=t.filter(s=>this.shouldValidate(s)?!0:(this.markAsCompleted(s),!1));await this.runCancelable(o,de.Validated,r,async s=>{await this.validate(s,r),this.markAsCompleted(s)})}markAsCompleted(t){let n=this.buildState.get(t.uri.toString());n&&(n.completed=!0)}prepareBuild(t,n){for(let r of t){let i=r.uri.toString(),o=this.buildState.get(i);(!o||o.completed)&&this.buildState.set(i,{completed:!1,options:n,result:o?.result})}}async runCancelable(t,n,r,i){for(let s of t)s.state<n&&(await Ge(r),await i(s),s.state=n,await this.notifyDocumentPhase(s,n,r));let o=t.filter(s=>s.state===n);await this.notifyBuildPhase(o,n,r),this.currentState=n}onBuildPhase(t,n){return this.buildPhaseListeners.add(t,n),Bo.create(()=>{this.buildPhaseListeners.delete(t,n)})}onDocumentPhase(t,n){return this.documentPhaseListeners.add(t,n),Bo.create(()=>{this.documentPhaseListeners.delete(t,n)})}waitUntil(t,n,r){let i;return n&&"path"in n?i=n:r=n,r??(r=fe.CancellationToken.None),i?this.awaitDocumentState(t,i,r):this.awaitBuilderState(t,r)}awaitDocumentState(t,n,r){let i=this.langiumDocuments.getDocument(n);if(i){if(i.state>=t)return Promise.resolve(n);if(r.isCancellationRequested)return Promise.reject(hi);if(this.currentState>=t&&t>i.state)return Promise.reject(new Hu.ResponseError(Ym.RequestFailed,`Document state of ${n.toString()} is ${de[i.state]}, requiring ${de[t]}, but workspace state is already ${de[this.currentState]}. Returning undefined.`))}else return Promise.reject(new Hu.ResponseError(Ym.ServerCancelled,`No document found for URI: ${n.toString()}`));return new Promise((o,s)=>{let a=this.onDocumentPhase(t,c=>{Qe.equals(c.uri,n)&&(a.dispose(),l.dispose(),o(c.uri))}),l=r.onCancellationRequested(()=>{a.dispose(),l.dispose(),s(hi)})})}awaitBuilderState(t,n){return this.currentState>=t?Promise.resolve():n.isCancellationRequested?Promise.reject(hi):new Promise((r,i)=>{let o=this.onBuildPhase(t,()=>{o.dispose(),s.dispose(),r()}),s=n.onCancellationRequested(()=>{o.dispose(),s.dispose(),i(hi)})})}async notifyDocumentPhase(t,n,r){let o=this.documentPhaseListeners.get(n).slice();for(let s of o)try{await Ge(r),await s(t,r)}catch(a){if(!Rr(a))throw a}}async notifyBuildPhase(t,n,r){if(t.length===0)return;let o=this.buildPhaseListeners.get(n).slice();for(let s of o)await Ge(r),await s(t,r)}shouldLink(t){return this.getBuildOptions(t).eagerLinking??!0}shouldValidate(t){return!!this.getBuildOptions(t).validation}async validate(t,n){let r=this.serviceRegistry.getServices(t.uri).validation.DocumentValidator,i=this.getBuildOptions(t),o=typeof i.validation=="object"?{...i.validation}:{};o.categories=this.findMissingValidationCategories(t,i);let s=await r.validateDocument(t,o,n);t.diagnostics?t.diagnostics.push(...s):t.diagnostics=s;let a=this.buildState.get(t.uri.toString());a&&(a.result??(a.result={}),a.result.validationChecks?a.result.validationChecks=ye(a.result.validationChecks).concat(o.categories).distinct().toArray():a.result.validationChecks=[...o.categories])}getBuildOptions(t){return this.buildState.get(t.uri.toString())?.options??{}}};var mf=class{constructor(t){this.symbolIndex=new Map,this.symbolByTypeIndex=new nf,this.referenceIndex=new Map,this.documents=t.workspace.LangiumDocuments,this.serviceRegistry=t.ServiceRegistry,this.astReflection=t.AstReflection}findAllReferences(t,n){let r=st(t).uri,i=[];return this.referenceIndex.forEach(o=>{o.forEach(s=>{Qe.equals(s.targetUri,r)&&s.targetPath===n&&i.push(s)})}),ye(i)}allElements(t,n){let r=ye(this.symbolIndex.keys());return n&&(r=r.filter(i=>!n||n.has(i))),r.map(i=>this.getFileDescriptions(i,t)).flat()}getFileDescriptions(t,n){return n?this.symbolByTypeIndex.get(t,n,()=>(this.symbolIndex.get(t)??[]).filter(o=>this.astReflection.isSubtype(o.type,n))):this.symbolIndex.get(t)??[]}remove(t){this.removeContent(t),this.removeReferences(t)}removeContent(t){let n=t.toString();this.symbolIndex.delete(n),this.symbolByTypeIndex.clear(n)}removeReferences(t){let n=t.toString();this.referenceIndex.delete(n)}async updateContent(t,n=fe.CancellationToken.None){let i=await this.serviceRegistry.getServices(t.uri).references.ScopeComputation.collectExportedSymbols(t,n),o=t.uri.toString();this.symbolIndex.set(o,i),this.symbolByTypeIndex.clear(o)}async updateReferences(t,n=fe.CancellationToken.None){let i=await this.serviceRegistry.getServices(t.uri).workspace.ReferenceDescriptionProvider.createDescriptions(t,n);this.referenceIndex.set(t.uri.toString(),i)}isAffected(t,n){let r=this.referenceIndex.get(t.uri.toString());return r?r.some(i=>!i.local&&n.has(i.targetUri.toString())):!1}};var gf=class{constructor(t){this.initialBuildOptions={},this._ready=new Ir,this.serviceRegistry=t.ServiceRegistry,this.langiumDocuments=t.workspace.LangiumDocuments,this.documentBuilder=t.workspace.DocumentBuilder,this.fileSystemProvider=t.workspace.FileSystemProvider,this.mutex=t.workspace.WorkspaceLock}get ready(){return this._ready.promise}get workspaceFolders(){return this.folders}initialize(t){this.folders=t.workspaceFolders??void 0}initialized(t){return this.mutex.write(n=>this.initializeWorkspace(this.folders??[],n))}async initializeWorkspace(t,n=fe.CancellationToken.None){let r=await this.performStartup(t);await Ge(n),await this.documentBuilder.build(r,this.initialBuildOptions,n)}async performStartup(t){let n=[],r=s=>{n.push(s),this.langiumDocuments.hasDocument(s.uri)||this.langiumDocuments.addDocument(s)};await this.loadAdditionalDocuments(t,r);let i=[];await Promise.all(t.map(s=>this.getRootFolder(s)).map(async s=>this.traverseFolder(s,i)));let o=ye(i).distinct(s=>s.toString()).filter(s=>!this.langiumDocuments.hasDocument(s));return await this.loadWorkspaceDocuments(o,r),this._ready.resolve(),n}async loadWorkspaceDocuments(t,n){await Promise.all(t.map(async r=>{let i=await this.langiumDocuments.getOrCreateDocument(r);n(i)}))}loadAdditionalDocuments(t,n){return Promise.resolve()}getRootFolder(t){return Ce.parse(t.uri)}async traverseFolder(t,n){try{let r=await this.fileSystemProvider.readDirectory(t);await Promise.all(r.map(async i=>{this.shouldIncludeEntry(i)&&(i.isDirectory?await this.traverseFolder(i.uri,n):i.isFile&&n.push(i.uri))}))}catch(r){console.error("Failure to read directory content of "+t.toString(!0),r)}}async searchFolder(t){let n=[];return await this.traverseFolder(t,n),n}shouldIncludeEntry(t){let n=Qe.basename(t.uri);return n.startsWith(".")?!1:t.isDirectory?n!=="node_modules"&&n!=="out":t.isFile?this.serviceRegistry.hasServices(t.uri):!1}};var yf=class{buildUnexpectedCharactersMessage(t,n,r,i,o){return co.buildUnexpectedCharactersMessage(t,n,r,i,o)}buildUnableToPopLexerModeMessage(t){return co.buildUnableToPopLexerModeMessage(t)}},tg={mode:"full"},Wo=class{constructor(t){this.errorMessageProvider=t.parser.LexerErrorMessageProvider,this.tokenBuilder=t.parser.TokenBuilder;let n=this.tokenBuilder.buildTokens(t.Grammar,{caseInsensitive:t.LanguageMetaData.caseInsensitive});this.tokenTypes=this.toTokenTypeDictionary(n);let r=n0(n)?Object.values(n):n,i=t.LanguageMetaData.mode==="production";this.chevrotainLexer=new Me(r,{positionTracking:"full",skipValidations:i,errorMessageProvider:this.errorMessageProvider})}get definition(){return this.tokenTypes}tokenize(t,n=tg){let r=this.chevrotainLexer.tokenize(t);return{tokens:r.tokens,errors:r.errors,hidden:r.groups.hidden??[],report:this.tokenBuilder.flushLexingReport?.(t)}}toTokenTypeDictionary(t){if(n0(t))return t;let n=r0(t)?Object.values(t.modes).flat():t,r={};return n.forEach(i=>r[i.name]=i),r}};function ng(e){return Array.isArray(e)&&(e.length===0||"name"in e[0])}function r0(e){return e&&"modes"in e&&"defaultMode"in e}function n0(e){return!ng(e)&&!r0(e)}var i0;(function(e){function t(n){return typeof n=="string"}e.is=t})(i0||(i0={}));var rg;(function(e){function t(n){return typeof n=="string"}e.is=t})(rg||(rg={}));var o0;(function(e){e.MIN_VALUE=-2147483648,e.MAX_VALUE=2147483647;function t(n){return typeof n=="number"&&e.MIN_VALUE<=n&&n<=e.MAX_VALUE}e.is=t})(o0||(o0={}));var xf;(function(e){e.MIN_VALUE=0,e.MAX_VALUE=2147483647;function t(n){return typeof n=="number"&&e.MIN_VALUE<=n&&n<=e.MAX_VALUE}e.is=t})(xf||(xf={}));var ve;(function(e){function t(r,i){return r===Number.MAX_VALUE&&(r=xf.MAX_VALUE),i===Number.MAX_VALUE&&(i=xf.MAX_VALUE),{line:r,character:i}}e.create=t;function n(r){let i=r;return N.objectLiteral(i)&&N.uinteger(i.line)&&N.uinteger(i.character)}e.is=n})(ve||(ve={}));var he;(function(e){function t(r,i,o,s){if(N.uinteger(r)&&N.uinteger(i)&&N.uinteger(o)&&N.uinteger(s))return{start:ve.create(r,i),end:ve.create(o,s)};if(ve.is(r)&&ve.is(i))return{start:r,end:i};throw new Error(`Range#create called with invalid arguments[${r}, ${i}, ${o}, ${s}]`)}e.create=t;function n(r){let i=r;return N.objectLiteral(i)&&ve.is(i.start)&&ve.is(i.end)}e.is=n})(he||(he={}));var Ef;(function(e){function t(r,i){return{uri:r,range:i}}e.create=t;function n(r){let i=r;return N.objectLiteral(i)&&he.is(i.range)&&(N.string(i.uri)||N.undefined(i.uri))}e.is=n})(Ef||(Ef={}));var s0;(function(e){function t(r,i,o,s){return{targetUri:r,targetRange:i,targetSelectionRange:o,originSelectionRange:s}}e.create=t;function n(r){let i=r;return N.objectLiteral(i)&&he.is(i.targetRange)&&N.string(i.targetUri)&&he.is(i.targetSelectionRange)&&(he.is(i.originSelectionRange)||N.undefined(i.originSelectionRange))}e.is=n})(s0||(s0={}));var ig;(function(e){function t(r,i,o,s){return{red:r,green:i,blue:o,alpha:s}}e.create=t;function n(r){let i=r;return N.objectLiteral(i)&&N.numberRange(i.red,0,1)&&N.numberRange(i.green,0,1)&&N.numberRange(i.blue,0,1)&&N.numberRange(i.alpha,0,1)}e.is=n})(ig||(ig={}));var a0;(function(e){function t(r,i){return{range:r,color:i}}e.create=t;function n(r){let i=r;return N.objectLiteral(i)&&he.is(i.range)&&ig.is(i.color)}e.is=n})(a0||(a0={}));var l0;(function(e){function t(r,i,o){return{label:r,textEdit:i,additionalTextEdits:o}}e.create=t;function n(r){let i=r;return N.objectLiteral(i)&&N.string(i.label)&&(N.undefined(i.textEdit)||Uo.is(i))&&(N.undefined(i.additionalTextEdits)||N.typedArray(i.additionalTextEdits,Uo.is))}e.is=n})(l0||(l0={}));var c0;(function(e){e.Comment="comment",e.Imports="imports",e.Region="region"})(c0||(c0={}));var u0;(function(e){function t(r,i,o,s,a,l){let c={startLine:r,endLine:i};return N.defined(o)&&(c.startCharacter=o),N.defined(s)&&(c.endCharacter=s),N.defined(a)&&(c.kind=a),N.defined(l)&&(c.collapsedText=l),c}e.create=t;function n(r){let i=r;return N.objectLiteral(i)&&N.uinteger(i.startLine)&&N.uinteger(i.startLine)&&(N.undefined(i.startCharacter)||N.uinteger(i.startCharacter))&&(N.undefined(i.endCharacter)||N.uinteger(i.endCharacter))&&(N.undefined(i.kind)||N.string(i.kind))}e.is=n})(u0||(u0={}));var og;(function(e){function t(r,i){return{location:r,message:i}}e.create=t;function n(r){let i=r;return N.defined(i)&&Ef.is(i.location)&&N.string(i.message)}e.is=n})(og||(og={}));var f0;(function(e){e.Error=1,e.Warning=2,e.Information=3,e.Hint=4})(f0||(f0={}));var d0;(function(e){e.Unnecessary=1,e.Deprecated=2})(d0||(d0={}));var p0;(function(e){function t(n){let r=n;return N.objectLiteral(r)&&N.string(r.href)}e.is=t})(p0||(p0={}));var wf;(function(e){function t(o,s,a,l,c,u){let f={range:o,message:s};return N.defined(a)&&(f.severity=a),N.defined(l)&&(f.code=l),N.defined(c)&&(f.source=c),N.defined(u)&&(f.relatedInformation=u),f}e.create=t;function n(o){var s;let a=o;return N.defined(a)&&he.is(a.range)&&(N.string(a.message)||gi.is(a.message))&&(N.number(a.severity)||N.undefined(a.severity))&&(N.integer(a.code)||N.string(a.code)||N.undefined(a.code))&&(N.undefined(a.codeDescription)||N.string((s=a.codeDescription)===null||s===void 0?void 0:s.href))&&(N.string(a.source)||N.undefined(a.source))&&(N.undefined(a.relatedInformation)||N.typedArray(a.relatedInformation,og.is))}e.is=n;function r(o){return N.string(o.message)}e.is3_17=r;function i(o){if(N.string(o.message))return o.message;if(gi.is(o.message))return o.message.value;throw new Error(`Unknown message type ${typeof o.message}`)}e.getMessageString=i})(wf||(wf={}));var Xo;(function(e){function t(r,i,...o){let s={title:r,command:i};return N.defined(o)&&o.length>0&&(s.arguments=o),s}e.create=t;function n(r){let i=r;return N.defined(i)&&N.string(i.title)&&(i.tooltip===void 0||N.string(i.tooltip))&&N.string(i.command)}e.is=n})(Xo||(Xo={}));var Uo;(function(e){function t(o,s){return{range:o,newText:s}}e.replace=t;function n(o,s){return{range:{start:o,end:o},newText:s}}e.insert=n;function r(o){return{range:o,newText:""}}e.del=r;function i(o){let s=o;return N.objectLiteral(s)&&N.string(s.newText)&&he.is(s.range)}e.is=i})(Uo||(Uo={}));var Tf;(function(e){function t(r,i,o){let s={label:r};return i!==void 0&&(s.needsConfirmation=i),o!==void 0&&(s.description=o),s}e.create=t;function n(r){let i=r;return N.objectLiteral(i)&&N.string(i.label)&&(N.boolean(i.needsConfirmation)||i.needsConfirmation===void 0)&&(N.string(i.description)||i.description===void 0)}e.is=n})(Tf||(Tf={}));var mi;(function(e){function t(n){let r=n;return N.string(r)}e.is=t})(mi||(mi={}));var h0;(function(e){function t(o,s,a){return{range:o,newText:s,annotationId:a}}e.replace=t;function n(o,s,a){return{range:{start:o,end:o},newText:s,annotationId:a}}e.insert=n;function r(o,s){return{range:o,newText:"",annotationId:s}}e.del=r;function i(o){let s=o;return Uo.is(s)&&(Tf.is(s.annotationId)||mi.is(s.annotationId))}e.is=i})(h0||(h0={}));var sg;(function(e){function t(r,i){return{textDocument:r,edits:i}}e.create=t;function n(r){let i=r;return N.defined(i)&&fg.is(i.textDocument)&&Array.isArray(i.edits)}e.is=n})(sg||(sg={}));var ag;(function(e){function t(r,i,o){let s={kind:"create",uri:r};return i!==void 0&&(i.overwrite!==void 0||i.ignoreIfExists!==void 0)&&(s.options=i),o!==void 0&&(s.annotationId=o),s}e.create=t;function n(r){let i=r;return i&&i.kind==="create"&&N.string(i.uri)&&(i.options===void 0||(i.options.overwrite===void 0||N.boolean(i.options.overwrite))&&(i.options.ignoreIfExists===void 0||N.boolean(i.options.ignoreIfExists)))&&(i.annotationId===void 0||mi.is(i.annotationId))}e.is=n})(ag||(ag={}));var lg;(function(e){function t(r,i,o,s){let a={kind:"rename",oldUri:r,newUri:i};return o!==void 0&&(o.overwrite!==void 0||o.ignoreIfExists!==void 0)&&(a.options=o),s!==void 0&&(a.annotationId=s),a}e.create=t;function n(r){let i=r;return i&&i.kind==="rename"&&N.string(i.oldUri)&&N.string(i.newUri)&&(i.options===void 0||(i.options.overwrite===void 0||N.boolean(i.options.overwrite))&&(i.options.ignoreIfExists===void 0||N.boolean(i.options.ignoreIfExists)))&&(i.annotationId===void 0||mi.is(i.annotationId))}e.is=n})(lg||(lg={}));var cg;(function(e){function t(r,i,o){let s={kind:"delete",uri:r};return i!==void 0&&(i.recursive!==void 0||i.ignoreIfNotExists!==void 0)&&(s.options=i),o!==void 0&&(s.annotationId=o),s}e.create=t;function n(r){let i=r;return i&&i.kind==="delete"&&N.string(i.uri)&&(i.options===void 0||(i.options.recursive===void 0||N.boolean(i.options.recursive))&&(i.options.ignoreIfNotExists===void 0||N.boolean(i.options.ignoreIfNotExists)))&&(i.annotationId===void 0||mi.is(i.annotationId))}e.is=n})(cg||(cg={}));var ug;(function(e){function t(n){let r=n;return r&&(r.changes!==void 0||r.documentChanges!==void 0)&&(r.documentChanges===void 0||r.documentChanges.every(i=>N.string(i.kind)?ag.is(i)||lg.is(i)||cg.is(i):sg.is(i)))}e.is=t})(ug||(ug={}));var m0;(function(e){function t(n){let r=n;return N.objectLiteral(r)&&he.is(r.range)&&gg.isSnippet(r.snippet)&&(r.annotationId===void 0||Tf.is(r.annotationId)||mi.is(r.annotationId))}e.is=t})(m0||(m0={}));var g0;(function(e){function t(r){return{uri:r}}e.create=t;function n(r){let i=r;return N.defined(i)&&N.string(i.uri)}e.is=n})(g0||(g0={}));var y0;(function(e){function t(r,i){return{uri:r,version:i}}e.create=t;function n(r){let i=r;return N.defined(i)&&N.string(i.uri)&&N.integer(i.version)}e.is=n})(y0||(y0={}));var fg;(function(e){function t(r,i){return{uri:r,version:i}}e.create=t;function n(r){let i=r;return N.defined(i)&&N.string(i.uri)&&(i.version===null||N.integer(i.version))}e.is=n})(fg||(fg={}));var x0;(function(e){e.ABAP="abap",e.WindowsBat="bat",e.BibTeX="bibtex",e.Clojure="clojure",e.Coffeescript="coffeescript",e.C="c",e.CPP="cpp",e.CSharp="csharp",e.CSS="css",e.D="d",e.Delphi="pascal",e.Diff="diff",e.Dart="dart",e.Dockerfile="dockerfile",e.Elixir="elixir",e.Erlang="erlang",e.FSharp="fsharp",e.GitCommit="git-commit",e.GitRebase="git-rebase",e.Go="go",e.Groovy="groovy",e.Handlebars="handlebars",e.Haskell="haskell",e.HTML="html",e.Ini="ini",e.Java="java",e.JavaScript="javascript",e.JavaScriptReact="javascriptreact",e.JSON="json",e.LaTeX="latex",e.Less="less",e.Lua="lua",e.Makefile="makefile",e.Markdown="markdown",e.ObjectiveC="objective-c",e.ObjectiveCPP="objective-cpp",e.Pascal="pascal",e.Perl="perl",e.Perl6="perl6",e.PHP="php",e.Plaintext="plaintext",e.Powershell="powershell",e.Pug="jade",e.Python="python",e.R="r",e.Razor="razor",e.Ruby="ruby",e.Rust="rust",e.SCSS="scss",e.SASS="sass",e.Scala="scala",e.ShaderLab="shaderlab",e.ShellScript="shellscript",e.SQL="sql",e.Swift="swift",e.TypeScript="typescript",e.TypeScriptReact="typescriptreact",e.TeX="tex",e.VisualBasic="vb",e.XML="xml",e.XSL="xsl",e.YAML="yaml"})(x0||(x0={}));var E0;(function(e){function t(r,i,o,s){return{uri:r,languageId:i,version:o,text:s}}e.create=t;function n(r){let i=r;return N.defined(i)&&N.string(i.uri)&&N.string(i.languageId)&&N.integer(i.version)&&N.string(i.text)}e.is=n})(E0||(E0={}));var dg;(function(e){e.PlainText="plaintext",e.Markdown="markdown";function t(n){let r=n;return r===e.PlainText||r===e.Markdown}e.is=t})(dg||(dg={}));var gi;(function(e){function t(n){let r=n;return N.objectLiteral(n)&&dg.is(r.kind)&&N.string(r.value)}e.is=t})(gi||(gi={}));var w0;(function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25})(w0||(w0={}));var T0;(function(e){e.PlainText=1,e.Snippet=2})(T0||(T0={}));var v0;(function(e){e.Deprecated=1})(v0||(v0={}));var _0;(function(e){function t(r,i,o){return{newText:r,insert:i,replace:o}}e.create=t;function n(r){let i=r;return i&&N.string(i.newText)&&he.is(i.insert)&&he.is(i.replace)}e.is=n})(_0||(_0={}));var A0;(function(e){e.asIs=1,e.adjustIndentation=2})(A0||(A0={}));var k0;(function(e){e.Replace=1,e.Merge=2})(k0||(k0={}));var I0;(function(e){function t(n){let r=n;return r&&(N.string(r.detail)||r.detail===void 0)&&(N.string(r.description)||r.description===void 0)}e.is=t})(I0||(I0={}));var R0;(function(e){function t(n){return{label:n}}e.create=t})(R0||(R0={}));var S0;(function(e){function t(n,r){return{items:n||[],isIncomplete:!!r}}e.create=t})(S0||(S0={}));var vf;(function(e){function t(r){return r.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}e.fromPlainText=t;function n(r){let i=r;return N.string(i)||N.objectLiteral(i)&&N.string(i.language)&&N.string(i.value)}e.is=n})(vf||(vf={}));var b0;(function(e){function t(n){let r=n;return!!r&&N.objectLiteral(r)&&(gi.is(r.contents)||vf.is(r.contents)||N.typedArray(r.contents,vf.is))&&(n.range===void 0||he.is(n.range))}e.is=t})(b0||(b0={}));var N0;(function(e){function t(n,r){return r?{label:n,documentation:r}:{label:n}}e.create=t})(N0||(N0={}));var L0;(function(e){function t(n,r,...i){let o={label:n};return N.defined(r)&&(o.documentation=r),N.defined(i)?o.parameters=i:o.parameters=[],o}e.create=t})(L0||(L0={}));var P0;(function(e){e.Text=1,e.Read=2,e.Write=3})(P0||(P0={}));var O0;(function(e){function t(n,r){let i={range:n};return N.number(r)&&(i.kind=r),i}e.create=t})(O0||(O0={}));var C0;(function(e){e.File=1,e.Module=2,e.Namespace=3,e.Package=4,e.Class=5,e.Method=6,e.Property=7,e.Field=8,e.Constructor=9,e.Enum=10,e.Interface=11,e.Function=12,e.Variable=13,e.Constant=14,e.String=15,e.Number=16,e.Boolean=17,e.Array=18,e.Object=19,e.Key=20,e.Null=21,e.EnumMember=22,e.Struct=23,e.Event=24,e.Operator=25,e.TypeParameter=26})(C0||(C0={}));var $0;(function(e){e.Deprecated=1})($0||($0={}));var D0;(function(e){function t(n,r,i,o,s){let a={name:n,kind:r,location:{uri:o,range:i}};return s&&(a.containerName=s),a}e.create=t})(D0||(D0={}));var M0;(function(e){function t(n,r,i,o){return o!==void 0?{name:n,kind:r,location:{uri:i,range:o}}:{name:n,kind:r,location:{uri:i}}}e.create=t})(M0||(M0={}));var F0;(function(e){function t(r,i,o,s,a,l){let c={name:r,detail:i,kind:o,range:s,selectionRange:a};return l!==void 0&&(c.children=l),c}e.create=t;function n(r){let i=r;return i&&N.string(i.name)&&N.number(i.kind)&&he.is(i.range)&&he.is(i.selectionRange)&&(i.detail===void 0||N.string(i.detail))&&(i.deprecated===void 0||N.boolean(i.deprecated))&&(i.children===void 0||Array.isArray(i.children))&&(i.tags===void 0||Array.isArray(i.tags))}e.is=n})(F0||(F0={}));var B0;(function(e){e.Empty="",e.QuickFix="quickfix",e.Refactor="refactor",e.RefactorExtract="refactor.extract",e.RefactorInline="refactor.inline",e.RefactorMove="refactor.move",e.RefactorRewrite="refactor.rewrite",e.Source="source",e.SourceOrganizeImports="source.organizeImports",e.SourceFixAll="source.fixAll",e.Notebook="notebook"})(B0||(B0={}));var _f;(function(e){e.Invoked=1,e.Automatic=2})(_f||(_f={}));var W0;(function(e){function t(r,i,o){let s={diagnostics:r};return i!=null&&(s.only=i),o!=null&&(s.triggerKind=o),s}e.create=t;function n(r){let i=r;return N.defined(i)&&N.typedArray(i.diagnostics,wf.is)&&(i.only===void 0||N.typedArray(i.only,N.string))&&(i.triggerKind===void 0||i.triggerKind===_f.Invoked||i.triggerKind===_f.Automatic)}e.is=n})(W0||(W0={}));var pg;(function(e){e.LLMGenerated=1;function t(n){return N.defined(n)&&n===e.LLMGenerated}e.is=t})(pg||(pg={}));var X0;(function(e){function t(r,i,o){let s={title:r},a=!0;return typeof i=="string"?(a=!1,s.kind=i):Xo.is(i)?s.command=i:s.edit=i,a&&o!==void 0&&(s.kind=o),s}e.create=t;function n(r){let i=r;return i&&N.string(i.title)&&(i.diagnostics===void 0||N.typedArray(i.diagnostics,wf.is))&&(i.kind===void 0||N.string(i.kind))&&(i.edit!==void 0||i.command!==void 0)&&(i.command===void 0||Xo.is(i.command))&&(i.isPreferred===void 0||N.boolean(i.isPreferred))&&(i.edit===void 0||ug.is(i.edit))&&(i.tags===void 0||N.typedArray(i.tags,pg.is))}e.is=n})(X0||(X0={}));var U0;(function(e){function t(r,i){let o={range:r};return N.defined(i)&&(o.data=i),o}e.create=t;function n(r){let i=r;return N.defined(i)&&he.is(i.range)&&(N.undefined(i.command)||Xo.is(i.command))}e.is=n})(U0||(U0={}));var G0;(function(e){function t(r,i){return{tabSize:r,insertSpaces:i}}e.create=t;function n(r){let i=r;return N.defined(i)&&N.uinteger(i.tabSize)&&N.boolean(i.insertSpaces)}e.is=n})(G0||(G0={}));var H0;(function(e){function t(r,i,o){return{range:r,target:i,data:o}}e.create=t;function n(r){let i=r;return N.defined(i)&&he.is(i.range)&&(N.undefined(i.target)||N.string(i.target))}e.is=n})(H0||(H0={}));var z0;(function(e){function t(r,i){return{range:r,parent:i}}e.create=t;function n(r){let i=r;return N.objectLiteral(i)&&he.is(i.range)&&(i.parent===void 0||e.is(i.parent))}e.is=n})(z0||(z0={}));var j0;(function(e){e.namespace="namespace",e.type="type",e.class="class",e.enum="enum",e.interface="interface",e.struct="struct",e.typeParameter="typeParameter",e.parameter="parameter",e.variable="variable",e.property="property",e.enumMember="enumMember",e.event="event",e.function="function",e.method="method",e.macro="macro",e.keyword="keyword",e.modifier="modifier",e.comment="comment",e.string="string",e.number="number",e.regexp="regexp",e.operator="operator",e.decorator="decorator",e.label="label"})(j0||(j0={}));var Y0;(function(e){e.declaration="declaration",e.definition="definition",e.readonly="readonly",e.static="static",e.deprecated="deprecated",e.abstract="abstract",e.async="async",e.modification="modification",e.documentation="documentation",e.defaultLibrary="defaultLibrary"})(Y0||(Y0={}));var V0;(function(e){function t(n){let r=n;return N.objectLiteral(r)&&(r.resultId===void 0||typeof r.resultId=="string")&&Array.isArray(r.data)&&(r.data.length===0||typeof r.data[0]=="number")}e.is=t})(V0||(V0={}));var K0;(function(e){function t(r,i){return{range:r,text:i}}e.create=t;function n(r){let i=r;return i!=null&&he.is(i.range)&&N.string(i.text)}e.is=n})(K0||(K0={}));var q0;(function(e){function t(r,i,o){return{range:r,variableName:i,caseSensitiveLookup:o}}e.create=t;function n(r){let i=r;return i!=null&&he.is(i.range)&&N.boolean(i.caseSensitiveLookup)&&(N.string(i.variableName)||i.variableName===void 0)}e.is=n})(q0||(q0={}));var Z0;(function(e){function t(r,i){return{range:r,expression:i}}e.create=t;function n(r){let i=r;return i!=null&&he.is(i.range)&&(N.string(i.expression)||i.expression===void 0)}e.is=n})(Z0||(Z0={}));var J0;(function(e){function t(r,i){return{frameId:r,stoppedLocation:i}}e.create=t;function n(r){let i=r;return N.defined(i)&&he.is(r.stoppedLocation)}e.is=n})(J0||(J0={}));var hg;(function(e){e.Type=1,e.Parameter=2;function t(n){return n===1||n===2}e.is=t})(hg||(hg={}));var mg;(function(e){function t(r){return{value:r}}e.create=t;function n(r){let i=r;return N.objectLiteral(i)&&(i.tooltip===void 0||N.string(i.tooltip)||gi.is(i.tooltip))&&(i.location===void 0||Ef.is(i.location))&&(i.command===void 0||Xo.is(i.command))}e.is=n})(mg||(mg={}));var Q0;(function(e){function t(r,i,o){let s={position:r,label:i};return o!==void 0&&(s.kind=o),s}e.create=t;function n(r){let i=r;return N.objectLiteral(i)&&ve.is(i.position)&&(N.string(i.label)||N.typedArray(i.label,mg.is))&&(i.kind===void 0||hg.is(i.kind))&&i.textEdits===void 0||N.typedArray(i.textEdits,Uo.is)&&(i.tooltip===void 0||N.string(i.tooltip)||gi.is(i.tooltip))&&(i.paddingLeft===void 0||N.boolean(i.paddingLeft))&&(i.paddingRight===void 0||N.boolean(i.paddingRight))}e.is=n})(Q0||(Q0={}));var gg;(function(e){function t(r){return{kind:"snippet",value:r}}e.createSnippet=t;function n(r){let i=r;return N.objectLiteral(i)&&i.kind==="snippet"&&N.string(i.value)}e.isSnippet=n})(gg||(gg={}));var eA;(function(e){function t(n,r,i,o){return{insertText:n,filterText:r,range:i,command:o}}e.create=t})(eA||(eA={}));var tA;(function(e){function t(n){return{items:n}}e.create=t})(tA||(tA={}));var nA;(function(e){e.Invoked=1,e.Automatic=2})(nA||(nA={}));var rA;(function(e){function t(n,r){return{range:n,text:r}}e.create=t})(rA||(rA={}));var iA;(function(e){function t(n,r){return{triggerKind:n,selectedCompletionInfo:r}}e.create=t})(iA||(iA={}));var oA;(function(e){function t(n){let r=n;return N.objectLiteral(r)&&rg.is(r.uri)&&N.string(r.name)}e.is=t})(oA||(oA={}));var sA;(function(e){function t(o,s,a,l){return new yg(o,s,a,l)}e.create=t;function n(o){let s=o;return!!(N.defined(s)&&N.string(s.uri)&&(N.undefined(s.languageId)||N.string(s.languageId))&&N.uinteger(s.lineCount)&&N.func(s.getText)&&N.func(s.positionAt)&&N.func(s.offsetAt))}e.is=n;function r(o,s){let a=o.getText(),l=i(s,(u,f)=>{let d=u.range.start.line-f.range.start.line;return d===0?u.range.start.character-f.range.start.character:d}),c=a.length;for(let u=l.length-1;u>=0;u--){let f=l[u],d=o.offsetAt(f.range.start),p=o.offsetAt(f.range.end);if(p<=c)a=a.substring(0,d)+f.newText+a.substring(p,a.length);else throw new Error("Overlapping edit");c=d}return a}e.applyEdits=r;function i(o,s){if(o.length<=1)return o;let a=o.length/2|0,l=o.slice(0,a),c=o.slice(a);i(l,s),i(c,s);let u=0,f=0,d=0;for(;u<l.length&&f<c.length;)s(l[u],c[f])<=0?o[d++]=l[u++]:o[d++]=c[f++];for(;u<l.length;)o[d++]=l[u++];for(;f<c.length;)o[d++]=c[f++];return o}})(sA||(sA={}));var yg=class{constructor(t,n,r,i){this._uri=t,this._languageId=n,this._version=r,this._content=i,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(t){if(t){let n=this.offsetAt(t.start),r=this.offsetAt(t.end);return this._content.substring(n,r)}return this._content}update(t,n){this._content=t.text,this._version=n,this._lineOffsets=void 0}getLineOffsets(){if(this._lineOffsets===void 0){let t=[],n=this._content,r=!0;for(let i=0;i<n.length;i++){r&&(t.push(i),r=!1);let o=n.charAt(i);r=o==="\r"||o===`
|
|
119
119
|
`,o==="\r"&&i+1<n.length&&n.charAt(i+1)===`
|
|
120
|
-
`&&i++}r&&n.length>0&&t.push(n.length),this._lineOffsets=t}return this._lineOffsets}positionAt(t){t=Math.max(Math.min(t,this._content.length),0);let n=this.getLineOffsets(),r=0,i=n.length;if(i===0)return
|
|
121
|
-
${n}`),this.inline?`{${t}}`:t}toMarkdown(t){return t?.renderTag?.(this)??this.toMarkdownDefault(t)}toMarkdownDefault(t){let n=this.content.toMarkdown(t);if(this.inline){let o=
|
|
122
|
-
${n}`),this.inline?`{${i}}`:i}};function
|
|
120
|
+
`&&i++}r&&n.length>0&&t.push(n.length),this._lineOffsets=t}return this._lineOffsets}positionAt(t){t=Math.max(Math.min(t,this._content.length),0);let n=this.getLineOffsets(),r=0,i=n.length;if(i===0)return ve.create(0,t);for(;r<i;){let s=Math.floor((r+i)/2);n[s]>t?i=s:r=s+1}let o=r-1;return ve.create(o,t-n[o])}offsetAt(t){let n=this.getLineOffsets();if(t.line>=n.length)return this._content.length;if(t.line<0)return 0;let r=n[t.line],i=t.line+1<n.length?n[t.line+1]:this._content.length;return Math.max(Math.min(r+t.character,i),r)}get lineCount(){return this.getLineOffsets().length}},N;(function(e){let t=Object.prototype.toString;function n(p){return typeof p<"u"}e.defined=n;function r(p){return typeof p>"u"}e.undefined=r;function i(p){return p===!0||p===!1}e.boolean=i;function o(p){return t.call(p)==="[object String]"}e.string=o;function s(p){return t.call(p)==="[object Number]"}e.number=s;function a(p,m,g){return t.call(p)==="[object Number]"&&m<=p&&p<=g}e.numberRange=a;function l(p){return t.call(p)==="[object Number]"&&-2147483648<=p&&p<=2147483647}e.integer=l;function c(p){return t.call(p)==="[object Number]"&&0<=p&&p<=2147483647}e.uinteger=c;function u(p){return t.call(p)==="[object Function]"}e.func=u;function f(p){return p!==null&&typeof p=="object"}e.objectLiteral=f;function d(p,m){return Array.isArray(p)&&p.every(m)}e.typedArray=d})(N||(N={}));function cA(e,t,n){let r,i;typeof e=="string"?(i=t,r=n):(i=e.range.start,r=t),i||(i=ve.create(0,0));let o=fA(e),s=wg(r),a=MM({lines:o,position:i,options:s});return UM({index:0,tokens:a,position:i})}function uA(e,t){let n=wg(t),r=fA(e);if(r.length===0)return!1;let i=r[0],o=r[r.length-1],s=n.start,a=n.end;return!!s?.exec(i)&&!!a?.exec(o)}function fA(e){let t="";return typeof e=="string"?t=e:t=e.text,t.split(ew)}var aA=/\s*(@([\p{L}][\p{L}\p{N}]*)?)/uy,DM=/\{(@[\p{L}][\p{L}\p{N}]*)(\s*)([^\r\n}]+)?\}/gu;function MM(e){let t=[],n=e.position.line,r=e.position.character;for(let i=0;i<e.lines.length;i++){let o=i===0,s=i===e.lines.length-1,a=e.lines[i],l=0;if(o&&e.options.start){let u=e.options.start?.exec(a);u&&(l=u.index+u[0].length)}else{let u=e.options.line?.exec(a);u&&(l=u.index+u[0].length)}if(s){let u=e.options.end?.exec(a);u&&(a=a.substring(0,u.index))}if(a=a.substring(0,XM(a)),Eg(a,l)>=a.length){if(t.length>0){let u=ve.create(n,r);t.push({type:"break",content:"",range:he.create(u,u)})}}else{aA.lastIndex=l;let u=aA.exec(a);if(u){let f=u[0],d=u[1],p=ve.create(n,r+l),m=ve.create(n,r+l+f.length);t.push({type:"tag",content:d,range:he.create(p,m)}),l+=f.length,l=Eg(a,l)}if(l<a.length){let f=a.substring(l),d=Array.from(f.matchAll(DM));t.push(...FM(d,f,n,r+l))}}n++,r=0}return t.length>0&&t[t.length-1].type==="break"?t.slice(0,-1):t}function FM(e,t,n,r){let i=[];if(e.length===0){let o=ve.create(n,r),s=ve.create(n,r+t.length);i.push({type:"text",content:t,range:he.create(o,s)})}else{let o=0;for(let a of e){let l=a.index,c=t.substring(o,l);c.length>0&&i.push({type:"text",content:t.substring(o,l),range:he.create(ve.create(n,o+r),ve.create(n,l+r))});let u=c.length+1,f=a[1];if(i.push({type:"inline-tag",content:f,range:he.create(ve.create(n,o+u+r),ve.create(n,o+u+f.length+r))}),u+=f.length,a.length===4){u+=a[2].length;let d=a[3];i.push({type:"text",content:d,range:he.create(ve.create(n,o+u+r),ve.create(n,o+u+d.length+r))})}else i.push({type:"text",content:"",range:he.create(ve.create(n,o+u+r),ve.create(n,o+u+r))});o=l+a[0].length}let s=t.substring(o);s.length>0&&i.push({type:"text",content:s,range:he.create(ve.create(n,o+r),ve.create(n,o+r+s.length))})}return i}var BM=/\S/,WM=/\s*$/;function Eg(e,t){let n=e.substring(t).match(BM);return n?t+n.index:e.length}function XM(e){let t=e.match(WM);if(t&&typeof t.index=="number")return t.index}function UM(e){let t=ve.create(e.position.line,e.position.character);if(e.tokens.length===0)return new Af([],he.create(t,t));let n=[];for(;e.index<e.tokens.length;){let o=GM(e,n[n.length-1]);o&&n.push(o)}let r=n[0]?.range.start??t,i=n[n.length-1]?.range.end??t;return new Af(n,he.create(r,i))}function GM(e,t){let n=e.tokens[e.index];if(n.type==="tag")return pA(e,!1);if(n.type==="text"||n.type==="inline-tag")return dA(e);HM(n,t),e.index++}function HM(e,t){if(t){let n=new kf("",e.range);"inlines"in t?t.inlines.push(n):t.content.inlines.push(n)}}function dA(e){let t=e.tokens[e.index],n=t,r=t,i=[];for(;t&&t.type!=="break"&&t.type!=="tag";)i.push(zM(e)),r=t,t=e.tokens[e.index];return new Da(i,he.create(n.range.start,r.range.end))}function zM(e){return e.tokens[e.index].type==="inline-tag"?pA(e,!0):hA(e)}function pA(e,t){let n=e.tokens[e.index++],r=n.content.substring(1);if(e.tokens[e.index]?.type==="text")if(t){let o=hA(e);return new $a(r,new Da([o],o.range),t,he.create(n.range.start,o.range.end))}else{let o=dA(e);return new $a(r,o,t,he.create(n.range.start,o.range.end))}else{let o=n.range;return new $a(r,new Da([],o),t,o)}}function hA(e){let t=e.tokens[e.index++];return new kf(t.content,t.range)}function wg(e){if(!e)return wg({start:"/**",end:"*/",line:"*"});let{start:t,end:n,line:r}=e;return{start:xg(t,!0),end:xg(n,!1),line:xg(r,!0)}}function xg(e,t){if(typeof e=="string"||typeof e=="object"){let n=typeof e=="string"?Qr(e):e.source;return t?new RegExp(`^\\s*${n}`):new RegExp(`\\s*${n}\\s*$`)}else return e}var Af=class{constructor(t,n){this.elements=t,this.range=n}getTag(t){return this.getAllTags().find(n=>n.name===t)}getTags(t){return this.getAllTags().filter(n=>n.name===t)}getAllTags(){return this.elements.filter(t=>"name"in t)}toString(){let t="";for(let n of this.elements)if(t.length===0)t=n.toString();else{let r=n.toString();t+=lA(t)+r}return t.trim()}toMarkdown(t){let n="";for(let r of this.elements)if(n.length===0)n=r.toMarkdown(t);else{let i=r.toMarkdown(t);n+=lA(n)+i}return n.trim()}},$a=class{constructor(t,n,r,i){this.name=t,this.content=n,this.inline=r,this.range=i}toString(){let t=`@${this.name}`,n=this.content.toString();return this.content.inlines.length===1?t=`${t} ${n}`:this.content.inlines.length>1&&(t=`${t}
|
|
121
|
+
${n}`),this.inline?`{${t}}`:t}toMarkdown(t){return t?.renderTag?.(this)??this.toMarkdownDefault(t)}toMarkdownDefault(t){let n=this.content.toMarkdown(t);if(this.inline){let o=jM(this.name,n,t??{});if(typeof o=="string")return o}let r="";t?.tag==="italic"||t?.tag===void 0?r="*":t?.tag==="bold"?r="**":t?.tag==="bold-italic"&&(r="***");let i=`${r}@${this.name}${r}`;return this.content.inlines.length===1?i=`${i} \u2014 ${n}`:this.content.inlines.length>1&&(i=`${i}
|
|
122
|
+
${n}`),this.inline?`{${i}}`:i}};function jM(e,t,n){if(e==="linkplain"||e==="linkcode"||e==="link"){let r=t.indexOf(" "),i=t;if(r>0){let s=Eg(t,r);i=t.substring(s),t=t.substring(0,r)}return(e==="linkcode"||e==="link"&&n.link==="code")&&(i=`\`${i}\``),n.renderLink?.(t,i)??YM(t,i)}}function YM(e,t){try{return Ce.parse(e,!0),`[${t}](${e})`}catch{return e}}var Da=class{constructor(t,n){this.inlines=t,this.range=n}toString(){let t="";for(let n=0;n<this.inlines.length;n++){let r=this.inlines[n],i=this.inlines[n+1];t+=r.toString(),i&&i.range.start.line>r.range.start.line&&(t+=`
|
|
123
123
|
`)}return t}toMarkdown(t){let n="";for(let r=0;r<this.inlines.length;r++){let i=this.inlines[r],o=this.inlines[r+1];n+=i.toMarkdown(t),o&&o.range.start.line>i.range.start.line&&(n+=`
|
|
124
|
-
`)}return n}},
|
|
124
|
+
`)}return n}},kf=class{constructor(t,n){this.text=t,this.range=n}toString(){return this.text}toMarkdown(){return this.text}};function lA(e){return e.endsWith(`
|
|
125
125
|
`)?`
|
|
126
126
|
`:`
|
|
127
127
|
|
|
128
|
-
`}var kf=class{constructor(t){this.indexManager=t.shared.workspace.IndexManager,this.commentProvider=t.documentation.CommentProvider}getDocumentation(t){let n=this.commentProvider.getComment(t);if(n&&nA(n))return tA(n).toMarkdown({renderLink:(i,o)=>this.documentationLinkRenderer(t,i,o),renderTag:i=>this.documentationTagRenderer(t,i)})}documentationLinkRenderer(t,n,r){let i=this.findNameInLocalSymbols(t,n)??this.findNameInGlobalScope(t,n);if(i&&i.nameSegment){let o=i.nameSegment.range.start.line+1,s=i.nameSegment.range.start.character+1,a=i.documentUri.with({fragment:`L${o},${s}`});return`[${r}](${a.toString()})`}else return}documentationTagRenderer(t,n){}findNameInLocalSymbols(t,n){let i=st(t).localSymbols;if(!i)return;let o=t;do{let a=i.getStream(o).find(l=>l.name===n);if(a)return a;o=o.$container}while(o)}findNameInGlobalScope(t,n){return this.indexManager.allElements().find(i=>i.name===n)}};var If=class{constructor(t){this.grammarConfig=()=>t.parser.GrammarConfig}getComment(t){return Yv(t)?t.$comment:zE(t.$cstNode,this.grammarConfig().multilineCommentRules)?.text}};var Rf=class{constructor(t){this.syncParser=t.parser.LangiumParser}parse(t,n){return Promise.resolve(this.syncParser.parse(t))}};var Sf;(function(e){e[e.Normal=0]="Normal",e[e.Immediate=1]="Immediate"})(Sf||(Sf={}));var bf=class{constructor(){this.previousTokenSource=new fe.CancellationTokenSource,this.writeQueue=[],this.readQueue=[],this.immediateReads=[],this.done=!0}write(t){this.cancelWrite();let n=Xv();return this.previousTokenSource=n,this.enqueue(this.writeQueue,t,n.token)}read(t,n=Sf.Normal){if(n===Sf.Immediate){let r=Promise.resolve().then(()=>t());this.immediateReads.push(r);let i=()=>{this.immediateReads.splice(this.immediateReads.indexOf(r),1)};return r.then(i,i),r}return this.enqueue(this.readQueue,t)}enqueue(t,n,r=fe.CancellationToken.None){let i=new Ir,o={action:n,deferred:i,cancellationToken:r};return t.push(o),this.performNextOperation(),i.promise}async performNextOperation(){if(!this.done)return;let t=[];if(this.writeQueue.length>0)for(t.push(this.writeQueue.shift()),this.done=!1;this.immediateReads.length>0;)await Promise.allSettled(this.immediateReads.slice());else if(this.readQueue.length>0)t.push(...this.readQueue.splice(0,this.readQueue.length)),this.done=!1;else return;await Promise.all(t.map(async({action:n,deferred:r,cancellationToken:i})=>{try{let o=await Promise.resolve().then(()=>n(i));r.resolve(o)}catch(o){Rr(o)?r.resolve(void 0):r.reject(o)}})),this.done=!0,this.performNextOperation()}cancelWrite(){this.previousTokenSource.cancel()}};var Nf=class{constructor(t){this.grammarElementIdMap=new Pa,this.tokenTypeIdMap=new Pa,this.cstNodeBuilder=new Lo,this.grammar=t.Grammar,this.lexer=t.parser.Lexer,this.linker=t.references.Linker}dehydrate(t){return{lexerErrors:t.lexerErrors,lexerReport:t.lexerReport?this.dehydrateLexerReport(t.lexerReport):void 0,parserErrors:t.parserErrors.map(n=>({...n,message:n.message})),value:this.dehydrateAstNode(t.value,this.createDehyrationContext(t.value))}}dehydrateLexerReport(t){return t}createDehyrationContext(t){let n=new Map,r=new Map;for(let i of yt(t))n.set(i,{});if(t.$cstNode)for(let i of qs(t.$cstNode))r.set(i,{});return{astNodes:n,cstNodes:r}}dehydrateAstNode(t,n){let r=n.astNodes.get(t);r.$type=t.$type,r.$containerIndex=t.$containerIndex,r.$containerProperty=t.$containerProperty,t.$cstNode!==void 0&&(r.$cstNode=this.dehydrateCstNode(t.$cstNode,n));for(let[i,o]of Object.entries(t))if(!i.startsWith("$"))if(Array.isArray(o)){let s=[];r[i]=s;for(let a of o)Ue(a)?s.push(this.dehydrateAstNode(a,n)):it(a)?s.push(this.dehydrateReference(a,n)):s.push(a)}else Ue(o)?r[i]=this.dehydrateAstNode(o,n):it(o)?r[i]=this.dehydrateReference(o,n):o!==void 0&&(r[i]=o);return r}dehydrateReference(t,n){let r={};return r.$refText=t.$refText,t.$refNode&&(r.$refNode=n.cstNodes.get(t.$refNode)),r}dehydrateCstNode(t,n){let r=n.cstNodes.get(t);if(tc(t)?r.fullText=t.fullText:r.grammarSource=this.getGrammarElementId(t.grammarSource),r.hidden=t.hidden,tr(t))r.content=t.content.map(i=>this.dehydrateCstNode(i,n));else if(ec(t)){r.tokenType=t.tokenType.name,r.offset=t.offset,r.length=t.length;let{start:i,end:o}=t.range;r.startLine=i.line,r.startColumn=i.character,r.endLine=o.line,r.endColumn=o.character}return r}hydrate(t){let n=t.value,r=this.createHydrationContext(n);return"$cstNode"in n&&this.hydrateCstNode(n.$cstNode,r),{lexerErrors:t.lexerErrors,lexerReport:t.lexerReport,parserErrors:t.parserErrors,value:this.hydrateAstNode(n,r)}}createHydrationContext(t){let n=new Map,r=new Map;for(let i of yt(t))n.set(i,{});if(t.$cstNode)for(let i of qs(t.$cstNode)){let o;"fullText"in i?o=new Na(i.fullText):"content"in i?o=new Oo:"tokenType"in i&&(o=this.hydrateCstLeafNode(i)),o&&r.set(i,o)}return{astNodes:n,cstNodes:r,linkedCstNodes:new Set}}hydrateAstNode(t,n){let r=n.astNodes.get(t);if(r.$type=t.$type,r.$containerIndex=t.$containerIndex,r.$containerProperty=t.$containerProperty,t.$cstNode){let i=n.cstNodes.get(t.$cstNode);r.$cstNode=i,i&&!n.linkedCstNodes.has(i)&&(n.linkedCstNodes.add(i),i.astNode=r)}for(let[i,o]of Object.entries(t))if(!i.startsWith("$"))if(Array.isArray(o)){let s=[];r[i]=s;for(let a of o)Ue(a)?s.push(this.setParent(this.hydrateAstNode(a,n),r)):it(a)?s.push(this.hydrateReference(a,r,i,n)):s.push(a)}else Ue(o)?r[i]=this.setParent(this.hydrateAstNode(o,n),r):it(o)?r[i]=this.hydrateReference(o,r,i,n):o!==void 0&&(r[i]=o);return r}setParent(t,n){return t.$container=n,t}hydrateReference(t,n,r,i){return this.linker.buildReference(n,r,i.cstNodes.get(t.$refNode),t.$refText)}hydrateCstNode(t,n,r=0){let i=n.cstNodes.get(t);if(typeof t.grammarSource=="number"&&(i.grammarSource=this.getGrammarElement(t.grammarSource)),tr(i)){let o=[];for(let s of t.content)o.push(this.hydrateCstNode(s,n,r++));this.cstNodeBuilder.appendChildren(i,o)}return i}hydrateCstLeafNode(t){let n=this.getTokenType(t.tokenType);return new ba(t.offset,t.length,t.startLine,t.startColumn,t.endLine,t.endColumn,n,t.hidden)}getTokenType(t){return this.lexer.definition[t]}getGrammarElementId(t){if(t)return this.grammarElementIdMap.size===0&&this.createGrammarElementIdMap(),this.grammarElementIdMap.get(t)}getGrammarElement(t){return this.grammarElementIdMap.size===0&&this.createGrammarElementIdMap(),this.grammarElementIdMap.getKey(t)}createGrammarElementIdMap(){let t=0;for(let n of yt(this.grammar))yc(n)&&this.grammarElementIdMap.set(n,t++)}};function Lf(e){return{documentation:{CommentProvider:t=>new If(t),DocumentationProvider:t=>new kf(t)},parser:{AsyncParser:t=>new Rf(t),GrammarConfig:t=>nw(t),LangiumParser:t=>Cv(t),CompletionParser:t=>Pv(t),ValueConverter:()=>new Co,TokenBuilder:()=>new Po,Lexer:t=>new Bo(t),ParserErrorMessageProvider:()=>new La,LexerErrorMessageProvider:()=>new gf},workspace:{AstNodeLocator:()=>new ff,AstNodeDescriptionProvider:t=>new cf(t),ReferenceDescriptionProvider:t=>new uf(t)},references:{Linker:t=>new Ku(t),NameProvider:()=>new qu,ScopeProvider:t=>new rf(t),ScopeComputation:t=>new Ju(t),References:t=>new Zu(t)},serializer:{Hydrator:t=>new Nf(t),JsonSerializer:t=>new of(t)},validation:{DocumentValidator:t=>new lf(t),ValidationRegistry:t=>new af(t)},shared:()=>e.shared}}function Of(e){return{ServiceRegistry:t=>new sf(t),workspace:{LangiumDocuments:t=>new Vu(t),LangiumDocumentFactory:t=>new Yu(t),DocumentBuilder:t=>new pf(t),IndexManager:t=>new hf(t),WorkspaceManager:t=>new mf(t),FileSystemProvider:t=>e.fileSystemProvider(t),WorkspaceLock:()=>new bf,ConfigurationProvider:t=>new df(t)},profilers:{}}}var aA;(function(e){e.merge=(t,n)=>Ma(Ma({},t),n)})(aA||(aA={}));function Uo(e,t,n,r,i,o,s,a,l){let c=[e,t,n,r,i,o,s,a,l].reduce(Ma,{});return uA(c)}var GM=Symbol("isProxy");function uA(e,t){let n=new Proxy({},{deleteProperty:()=>!1,set:()=>{throw new Error("Cannot set property on injected service container")},get:(r,i)=>i===GM?!0:cA(r,i,e,t||n),getOwnPropertyDescriptor:(r,i)=>(cA(r,i,e,t||n),Object.getOwnPropertyDescriptor(r,i)),has:(r,i)=>i in e,ownKeys:()=>[...Object.getOwnPropertyNames(e)]});return n}var lA=Symbol();function cA(e,t,n,r){if(t in e){if(e[t]instanceof Error)throw new Error("Construction failure. Please make sure that your dependencies are constructable. Cause: "+e[t]);if(e[t]===lA)throw new Error('Cycle detected. Please make "'+String(t)+'" lazy. Visit https://langium.org/docs/reference/configuration-services/#resolving-cyclic-dependencies');return e[t]}else if(t in n){let i=n[t];e[t]=lA;try{e[t]=typeof i=="function"?i(r):uA(i,r)}catch(o){throw e[t]=o instanceof Error?o:void 0,o}return e[t]}else return}function Ma(e,t){if(t){for(let[n,r]of Object.entries(t))if(!(n==="__proto__"||n==="constructor"||n==="prototype")&&r!=null)if(typeof r=="object"){let i=e[n];typeof i=="object"&&i!==null?e[n]=Ma(i,r):e[n]=Ma({},r)}else e[n]=r}return e}var fA={indentTokenName:"INDENT",dedentTokenName:"DEDENT",whitespaceTokenName:"WS",ignoreIndentationDelimiters:[]},Go;(function(e){e.REGULAR="indentation-sensitive",e.IGNORE_INDENTATION="ignore-indentation"})(Go||(Go={}));var Fa=class extends Po{constructor(t=fA){super(),this.indentationStack=[0],this.whitespaceRegExp=/[ \t]+/y,this.options={...fA,...t},this.indentTokenType=lr({name:this.options.indentTokenName,pattern:this.indentMatcher.bind(this),line_breaks:!1}),this.dedentTokenType=lr({name:this.options.dedentTokenName,pattern:this.dedentMatcher.bind(this),line_breaks:!1})}buildTokens(t,n){let r=super.buildTokens(t,n);if(!Qm(r))throw new Error("Invalid tokens built by default builder");let{indentTokenName:i,dedentTokenName:o,whitespaceTokenName:s,ignoreIndentationDelimiters:a}=this.options,l,c,u,f=[];for(let d of r){for(let[p,m]of a)d.name===p?d.PUSH_MODE=Go.IGNORE_INDENTATION:d.name===m&&(d.POP_MODE=!0);d.name===o?l=d:d.name===i?c=d:d.name===s?u=d:f.push(d)}if(!l||!c||!u)throw new Error("Some indentation/whitespace tokens not found!");return a.length>0?{modes:{[Go.REGULAR]:[l,c,...f,u],[Go.IGNORE_INDENTATION]:[...f,u]},defaultMode:Go.REGULAR}:[l,c,u,...f]}flushLexingReport(t){return{...super.flushLexingReport(t),remainingDedents:this.flushRemainingDedents(t)}}isStartOfLine(t,n){return n===0||`\r
|
|
129
|
-
`.includes(t[n-1])}matchWhitespace(t,n,r,i){this.whitespaceRegExp.lastIndex=n;let o=this.whitespaceRegExp.exec(t);return{currIndentLevel:o?.[0].length??0,prevIndentLevel:this.indentationStack.at(-1),match:o}}createIndentationTokenInstance(t,n,r,i){let o=this.getLineNumber(n,i);return Sn(t,r,i,i+r.length,o,o,1,r.length)}getLineNumber(t,n){return t.substring(0,n).split(/\r\n|\r|\n/).length}indentMatcher(t,n,r,i){if(!this.isStartOfLine(t,n))return null;let{currIndentLevel:o,prevIndentLevel:s,match:a}=this.matchWhitespace(t,n,r,i);return o<=s?null:(this.indentationStack.push(o),a)}dedentMatcher(t,n,r,i){if(!this.isStartOfLine(t,n))return null;let{currIndentLevel:o,prevIndentLevel:s,match:a}=this.matchWhitespace(t,n,r,i);if(o>=s)return null;let l=this.indentationStack.lastIndexOf(o);if(l===-1)return this.diagnostics.push({severity:"error",message:`Invalid dedent level ${o} at offset: ${n}. Current indentation stack: ${this.indentationStack}`,offset:n,length:a?.[0]?.length??0,line:this.getLineNumber(t,n),column:1}),null;let c=this.indentationStack.length-l-1,u=t.substring(0,n).match(/[\r\n]+$/)?.[0].length??1;for(let f=0;f<c;f++){let d=this.createIndentationTokenInstance(this.dedentTokenType,t,"",n-(u-1));r.push(d),this.indentationStack.pop()}return null}buildTerminalToken(t){let n=super.buildTerminalToken(t),{indentTokenName:r,dedentTokenName:i,whitespaceTokenName:o}=this.options;return n.name===r?this.indentTokenType:n.name===i?this.dedentTokenType:n.name===o?lr({name:o,pattern:this.whitespaceRegExp,group:Me.SKIPPED}):n}flushRemainingDedents(t){let n=[];for(;this.indentationStack.length>1;)n.push(this.createIndentationTokenInstance(this.dedentTokenType,t,"",t.length)),this.indentationStack.pop();return this.indentationStack=[0],n}},Pf=class extends Bo{constructor(t){if(super(t),t.parser.TokenBuilder instanceof Fa)this.indentationTokenBuilder=t.parser.TokenBuilder;else throw new Error("IndentationAwareLexer requires an accompanying IndentationAwareTokenBuilder")}tokenize(t,n=Jm){let r=super.tokenize(t),i=r.report;n?.mode==="full"&&r.tokens.push(...i.remainingDedents),i.remainingDedents=[];let{indentTokenType:o,dedentTokenType:s}=this.indentationTokenBuilder,a=o.tokenTypeIdx,l=s.tokenTypeIdx,c=[],u=r.tokens.length-1;for(let f=0;f<u;f++){let d=r.tokens[f],p=r.tokens[f+1];if(d.tokenTypeIdx===a&&p.tokenTypeIdx===l){f++;continue}c.push(d)}return u>=0&&c.push(r.tokens[u]),r.tokens=c,r}};var xg=class{stat(t){throw new Error("No file system is available.")}statSync(t){throw new Error("No file system is available.")}async exists(){return!1}existsSync(){return!1}readBinary(){throw new Error("No file system is available.")}readBinarySync(){throw new Error("No file system is available.")}readFile(){throw new Error("No file system is available.")}readFileSync(){throw new Error("No file system is available.")}async readDirectory(){return[]}readDirectorySync(){return[]}},Cf={fileSystemProvider:()=>new xg};var HM={Grammar:()=>{},LanguageMetaData:()=>({caseInsensitive:!1,fileExtensions:[".langium"],languageId:"langium"})},zM={AstReflection:()=>new Ks};function jM(){let e=Uo(Of(Cf),zM),t=Uo(Lf({shared:e}),HM);return e.ServiceRegistry.register(t),t}function dA(e){let t=jM(),n=t.serializer.JsonSerializer.deserialize(e);return t.shared.workspace.LangiumDocumentFactory.fromModel(n,Ce.parse(`memory:/${n.name??"grammar"}.langium`)),n}var Ho={$type:"AnchorDeclaration",description:"description",name:"name",properties:"properties",title:"title"};function is(e){return We.isInstance(e,Ho.$type)}var Eg={$type:"BlockProperty",key:"key",value:"value"};var Ag={$type:"CalendarBlock",properties:"properties"};function za(e){return We.isInstance(e,Ag.$type)}var Dn={$type:"ConfigEntry"};function hA(e){return We.isInstance(e,Dn.$type)}var Bf={$type:"DefaultDeclaration",entityType:"entityType",properties:"properties"};function nt(e){return We.isInstance(e,Bf.$type)}var kg={$type:"DescriptionDirective",text:"text"};function ja(e){return We.isInstance(e,kg.$type)}var $f={$type:"EntityProperty",key:"key",value:"value",values:"values"};var zo={$type:"FootnoteDeclaration",description:"description",name:"name",properties:"properties",title:"title"};function Rg(e){return We.isInstance(e,zo.$type)}var jo={$type:"GroupBlock",content:"content",name:"name",properties:"properties",title:"title"};function $e(e){return We.isInstance(e,jo.$type)}var Ba={$type:"GroupContent"};var wg={$type:"IncludeDeclaration",options:"options",path:"path"};var Tg={$type:"IncludeOption",key:"key",value:"value"};var Yo={$type:"ItemDeclaration",description:"description",name:"name",properties:"properties",title:"title"};function Ve(e){return We.isInstance(e,Yo.$type)}var Vo={$type:"LabelDeclaration",description:"description",name:"name",properties:"properties",title:"title"};function Ya(e){return We.isInstance(e,Vo.$type)}var Ko={$type:"MilestoneDeclaration",description:"description",name:"name",properties:"properties",title:"title"};function xn(e){return We.isInstance(e,Ko.$type)}var Xa={$type:"NonWorkingDeclaration",name:"name",properties:"properties",title:"title"};function br(e){return We.isInstance(e,Xa.$type)}var _g={$type:"NowlineDirective",properties:"properties",version:"version"};var Sr={$type:"NowlineFile",configEntries:"configEntries",directive:"directive",hasConfig:"hasConfig",includes:"includes",roadmapDecl:"roadmapDecl",roadmapEntries:"roadmapEntries"};function os(e){return We.isInstance(e,Sr.$type)}var qo={$type:"ParallelBlock",content:"content",name:"name",properties:"properties",title:"title"};function et(e){return We.isInstance(e,qo.$type)}var Df={$type:"ParallelContent"};var Zo={$type:"PersonDeclaration",description:"description",name:"name",properties:"properties",title:"title"};function Va(e){return We.isInstance(e,Zo.$type)}var pA={$type:"PersonMemberRef",ref:"ref"};var Mf={$type:"RoadmapDeclaration",name:"name",properties:"properties",title:"title"};var Qt={$type:"RoadmapEntry"};var Ig={$type:"ScaleBlock",properties:"properties"};function mA(e){return We.isInstance(e,Ig.$type)}var Jo={$type:"SizeDeclaration",description:"description",name:"name",properties:"properties",title:"title"};function yi(e){return We.isInstance(e,Jo.$type)}var Qo={$type:"StatusDeclaration",description:"description",name:"name",properties:"properties",title:"title"};function Ka(e){return We.isInstance(e,Qo.$type)}var Ua={$type:"StyleDeclaration",name:"name",properties:"properties",title:"title"};function Bt(e){return We.isInstance(e,Ua.$type)}var vg={$type:"StyleProperty",key:"key",value:"value"};var Wa={$type:"SwimlaneContent"};var es={$type:"SwimlaneDeclaration",content:"content",name:"name",properties:"properties",title:"title"};function Ke(e){return We.isInstance(e,es.$type)}var ts={$type:"SymbolDeclaration",description:"description",name:"name",properties:"properties",title:"title"};function xi(e){return We.isInstance(e,ts.$type)}var Ff={$type:"TeamContent"};var ns={$type:"TeamDeclaration",content:"content",name:"name",properties:"properties",title:"title"};function en(e){return We.isInstance(e,ns.$type)}var rs={$type:"WaveDeclaration",description:"description",name:"name",properties:"properties",title:"title"};function Tt(e){return We.isInstance(e,rs.$type)}var Ga={$type:"WorkingDeclaration",name:"name",properties:"properties",title:"title"};function qa(e){return We.isInstance(e,Ga.$type)}var Ha=class extends Xi{constructor(){super(...arguments);M(this,"types",{AnchorDeclaration:{name:Ho.$type,properties:{description:{name:Ho.description,optional:!0},name:{name:Ho.name,optional:!0},properties:{name:Ho.properties,defaultValue:[],optional:!0},title:{name:Ho.title,optional:!0}},superTypes:[Qt.$type]},BlockProperty:{name:Eg.$type,properties:{key:{name:Eg.key},value:{name:Eg.value}},superTypes:[]},CalendarBlock:{name:Ag.$type,properties:{properties:{name:Ag.properties,defaultValue:[],optional:!0}},superTypes:[Dn.$type]},ConfigEntry:{name:Dn.$type,properties:{},superTypes:[]},DefaultDeclaration:{name:Bf.$type,properties:{entityType:{name:Bf.entityType},properties:{name:Bf.properties,defaultValue:[],optional:!0}},superTypes:[Dn.$type]},DescriptionDirective:{name:kg.$type,properties:{text:{name:kg.text}},superTypes:[Ba.$type,Df.$type,Wa.$type,Ff.$type]},EntityProperty:{name:$f.$type,properties:{key:{name:$f.key},value:{name:$f.value,optional:!0},values:{name:$f.values,defaultValue:[],optional:!0}},superTypes:[]},FootnoteDeclaration:{name:zo.$type,properties:{description:{name:zo.description,optional:!0},name:{name:zo.name,optional:!0},properties:{name:zo.properties,defaultValue:[],optional:!0},title:{name:zo.title,optional:!0}},superTypes:[Qt.$type]},GroupBlock:{name:jo.$type,properties:{content:{name:jo.content,defaultValue:[]},name:{name:jo.name,optional:!0},properties:{name:jo.properties,defaultValue:[],optional:!0},title:{name:jo.title,optional:!0}},superTypes:[Ba.$type,Df.$type,Wa.$type]},GroupContent:{name:Ba.$type,properties:{},superTypes:[]},IncludeDeclaration:{name:wg.$type,properties:{options:{name:wg.options,defaultValue:[],optional:!0},path:{name:wg.path}},superTypes:[]},IncludeOption:{name:Tg.$type,properties:{key:{name:Tg.key},value:{name:Tg.value}},superTypes:[]},ItemDeclaration:{name:Yo.$type,properties:{description:{name:Yo.description,optional:!0},name:{name:Yo.name,optional:!0},properties:{name:Yo.properties,defaultValue:[],optional:!0},title:{name:Yo.title,optional:!0}},superTypes:[Ba.$type,Df.$type,Wa.$type]},LabelDeclaration:{name:Vo.$type,properties:{description:{name:Vo.description,optional:!0},name:{name:Vo.name,optional:!0},properties:{name:Vo.properties,defaultValue:[],optional:!0},title:{name:Vo.title,optional:!0}},superTypes:[Qt.$type]},MilestoneDeclaration:{name:Ko.$type,properties:{description:{name:Ko.description,optional:!0},name:{name:Ko.name,optional:!0},properties:{name:Ko.properties,defaultValue:[],optional:!0},title:{name:Ko.title,optional:!0}},superTypes:[Qt.$type]},NonWorkingDeclaration:{name:Xa.$type,properties:{name:{name:Xa.name,optional:!0},properties:{name:Xa.properties,defaultValue:[],optional:!0},title:{name:Xa.title,optional:!0}},superTypes:[Dn.$type]},NowlineDirective:{name:_g.$type,properties:{properties:{name:_g.properties,defaultValue:[],optional:!0},version:{name:_g.version}},superTypes:[]},NowlineFile:{name:Sr.$type,properties:{configEntries:{name:Sr.configEntries,defaultValue:[],optional:!0},directive:{name:Sr.directive,optional:!0},hasConfig:{name:Sr.hasConfig,defaultValue:!1,optional:!0},includes:{name:Sr.includes,defaultValue:[],optional:!0},roadmapDecl:{name:Sr.roadmapDecl,optional:!0},roadmapEntries:{name:Sr.roadmapEntries,defaultValue:[],optional:!0}},superTypes:[]},ParallelBlock:{name:qo.$type,properties:{content:{name:qo.content,defaultValue:[]},name:{name:qo.name,optional:!0},properties:{name:qo.properties,defaultValue:[],optional:!0},title:{name:qo.title,optional:!0}},superTypes:[Ba.$type,Wa.$type]},ParallelContent:{name:Df.$type,properties:{},superTypes:[]},PersonDeclaration:{name:Zo.$type,properties:{description:{name:Zo.description,optional:!0},name:{name:Zo.name,optional:!0},properties:{name:Zo.properties,defaultValue:[],optional:!0},title:{name:Zo.title,optional:!0}},superTypes:[Qt.$type]},PersonMemberRef:{name:pA.$type,properties:{ref:{name:pA.ref}},superTypes:[Ff.$type]},RoadmapDeclaration:{name:Mf.$type,properties:{name:{name:Mf.name,optional:!0},properties:{name:Mf.properties,defaultValue:[],optional:!0},title:{name:Mf.title,optional:!0}},superTypes:[]},RoadmapEntry:{name:Qt.$type,properties:{},superTypes:[]},ScaleBlock:{name:Ig.$type,properties:{properties:{name:Ig.properties,defaultValue:[],optional:!0}},superTypes:[Dn.$type]},SizeDeclaration:{name:Jo.$type,properties:{description:{name:Jo.description,optional:!0},name:{name:Jo.name,optional:!0},properties:{name:Jo.properties,defaultValue:[],optional:!0},title:{name:Jo.title,optional:!0}},superTypes:[Qt.$type]},StatusDeclaration:{name:Qo.$type,properties:{description:{name:Qo.description,optional:!0},name:{name:Qo.name,optional:!0},properties:{name:Qo.properties,defaultValue:[],optional:!0},title:{name:Qo.title,optional:!0}},superTypes:[Qt.$type]},StyleDeclaration:{name:Ua.$type,properties:{name:{name:Ua.name,optional:!0},properties:{name:Ua.properties,defaultValue:[],optional:!0},title:{name:Ua.title,optional:!0}},superTypes:[Dn.$type]},StyleProperty:{name:vg.$type,properties:{key:{name:vg.key},value:{name:vg.value}},superTypes:[]},SwimlaneContent:{name:Wa.$type,properties:{},superTypes:[]},SwimlaneDeclaration:{name:es.$type,properties:{content:{name:es.content,defaultValue:[],optional:!0},name:{name:es.name,optional:!0},properties:{name:es.properties,defaultValue:[],optional:!0},title:{name:es.title,optional:!0}},superTypes:[Qt.$type]},SymbolDeclaration:{name:ts.$type,properties:{description:{name:ts.description,optional:!0},name:{name:ts.name,optional:!0},properties:{name:ts.properties,defaultValue:[],optional:!0},title:{name:ts.title,optional:!0}},superTypes:[Dn.$type]},TeamContent:{name:Ff.$type,properties:{},superTypes:[]},TeamDeclaration:{name:ns.$type,properties:{content:{name:ns.content,defaultValue:[],optional:!0},name:{name:ns.name,optional:!0},properties:{name:ns.properties,defaultValue:[],optional:!0},title:{name:ns.title,optional:!0}},superTypes:[Qt.$type,Ff.$type]},WaveDeclaration:{name:rs.$type,properties:{description:{name:rs.description,optional:!0},name:{name:rs.name,optional:!0},properties:{name:rs.properties,defaultValue:[],optional:!0},title:{name:rs.title,optional:!0}},superTypes:[Qt.$type]},WorkingDeclaration:{name:Ga.$type,properties:{name:{name:Ga.name,optional:!0},properties:{name:Ga.properties,defaultValue:[],optional:!0},title:{name:Ga.title,optional:!0}},superTypes:[Dn.$type]}})}},We=new Ha;function _t(e){let t=[];for(let n of e.content)ja(n)||t.push(n);return t}function*yA(e){for(let t of e)yield*Sg(t)}function*Sg(e){for(let t of _t(e))yield t,($e(t)||et(t))&&(yield*Sg(t))}function*xA(e){for(let t of e.content)en(t)&&(yield t,yield*xA(t))}function*bg(e){Ke(e)||$e(e)||et(e)?yield*Sg(e):en(e)&&(yield*xA(e))}function*Mn(e,t={}){t.config&&(yield*e.configEntries),t.roadmap&&e.roadmapDecl&&(yield e.roadmapDecl);for(let n of e.roadmapEntries)yield n,yield*bg(n)}function Wf(e,t){gA(e,t);for(let n of bg(e))gA(n,t)}function gA(e,t){let n=e.properties;if(Array.isArray(n))for(let r of n)t(r,e)}function Xf(e,t){t(e.name,e);for(let n of bg(e))t(n.name,n)}function EA(e){return e.name}function wA(e){let t=new Set;for(let n of Mn(e,{roadmap:!0})){let r=EA(n);r&&t.add(r)}return t}function TA(e){let t=new Map;for(let n of Mn(e,{roadmap:!0})){let r=EA(n);r&&!t.has(r)&&t.set(r,n)}return t}function Q(e){return e.key.endsWith(":")?e.key.slice(0,-1):e.key}function vt(e,t){return e.find(n=>Q(n)===t)}function ie(e,t){return vt(e,t)?.value}function Be(e,t){let n=vt(e,t);return n?n.value!==void 0?[n.value]:[...n.values]:[]}var ot=/^\d{4}-\d{2}-\d{2}$/;function ve(e){if(!e||!ot.test(e))return null;let[t,n,r]=e.split("-").map(s=>Number.parseInt(s,10)),i=new Date(0);return i.setUTCFullYear(t,n-1,r),i.getUTCFullYear()===t&&i.getUTCMonth()===n-1&&i.getUTCDate()===r?i:null}function He(e){return ve(e)!==null}var vA={sun:0,mon:1,tue:2,wed:3,thu:4,fri:5,sat:6};function Lg(e){return Object.hasOwn(vA,e)}var Og=new Set(["date","start","end","every"]);function Za(e){let t=new Map;for(let l of e.properties){let c=Q(l);Og.has(c)&&!t.has(c)&&t.set(c,l)}let n=YM(t),r={own:t,shape:n,wellFormed:!1},i=t.get("date");if(i){let l=Ng(i);l.every(He)&&(r.dates=l)}let o=_A(t.get("start"));o!==void 0&&(r.start=o);let s=_A(t.get("end"));s!==void 0&&(r.end=s);let a=t.get("every");if(a){let l=Ng(a);l.every(Lg)&&(r.weekdays=l.map(c=>vA[c]))}return r.wellFormed=n!=="malformed"&&(!i||r.dates!==void 0&&r.dates.length>0)&&(!t.has("start")||r.start!==void 0)&&(!t.has("end")||r.end!==void 0)&&!(r.start!==void 0&&r.end!==void 0&&r.end<r.start)&&(!a||r.weekdays!==void 0&&r.weekdays.length>0),r}function Uf(e){return e.some(t=>t.$type==="NonWorkingDeclaration"&&t.name==="weekend")}function YM(e){let t=e.has("start"),n=e.has("end");return e.has("date")?e.has("every")||t||n?"malformed":"dated":e.has("every")?t&&n?"bounded-recurrence":t||n?"half-bounded-recurrence":"open-recurrence":t&&n?"range":"malformed"}function Ng(e){return e.value!==void 0?[e.value]:[...e.values]}function _A(e){if(!e)return;let t=Ng(e);return t.length===1&&He(t[0])?t[0]:void 0}function Gf(e,t,n){let r=[],i=n.defaults.get(e);if(i){let l=Pg("default-style",i.properties,n);l&&r.push(l),r.push({level:"default",props:i.properties})}let o=vt(t,"labels"),s=o?o.value?[o.value]:o.values:[];for(let l of[...s].reverse()){let c=n.labels.get(l);if(!c){r.push({level:"label",id:l,label:void 0});continue}let u=Pg("label-style",c.properties,n);u&&r.push(u)}let a=Pg("entity-style",t,n);return a&&r.push(a),r.push({level:"inline",props:t}),r}function Pg(e,t,n){let r=vt(t,"style")?.value;if(r)return{level:e,id:r,decl:n.styles.get(r)}}var Hf=["planned","in-progress","active","done","completed","at-risk","blocked"],Ei=["none","multiplier","person","people","points","time"],Ja=[...Ei,"shield","warning","lock","calendar"],AA=["hide","show"],kA={border:["solid","dashed","dotted"],shadow:["none","subtle","soft","hard"],font:["sans","serif","mono"],weight:["thin","light","normal","bold"],italic:["true","false"],"text-size":["none","xs","sm","md","lg","xl"],padding:["none","xs","sm","md","lg","xl"],spacing:["none","xs","sm","md","lg","xl"],"header-height":["none","xs","sm","md","lg","xl"],"corner-radius":["none","xs","sm","md","lg","xl","full"],bracket:["none","solid","dashed"],"header-position":["beside","above"],"timeline-position":["top","bottom","both"],"minor-grid":["true","false"]},IA=["red","blue","yellow","green","orange","purple","violet","gray","grey","navy","white","none"],RA=["business","full","custom"],SA=["merge","ignore","isolate"],bA=["bg","fg","text","border","icon","shadow","font","weight","italic","text-size","padding","spacing","header-height","corner-radius","bracket","header-position","capacity-icon","timeline-position","minor-grid","non-working"],NA=["header-height","header-position","timeline-position","minor-grid","non-working"],Qa="none",LA=["days-per-week","days-per-month","days-per-quarter","days-per-year"],OA=["name","label-every","label"],PA=["item","label","swimlane","roadmap","milestone","footnote","anchor","parallel","group"],CA=["labels","link","style","description"],$A={RoadmapDeclaration:["author","start","length","scale","calendar","logo","logo-size"],AnchorDeclaration:["date"],SwimlaneDeclaration:["owner","capacity","utilization-warn-at","utilization-over-at","status","after","before"],ItemDeclaration:["size","duration","status","owner","after","before","remaining","capacity"],ParallelBlock:["owner","after","before","status"],GroupBlock:["owner","after","before","status"],MilestoneDeclaration:["date","after"],FootnoteDeclaration:["on"],PersonDeclaration:[],TeamDeclaration:[],LabelDeclaration:[],SizeDeclaration:["effort"],StatusDeclaration:[],WaveDeclaration:["after"]},DA=["locale"];function se(e,t){return e.length*t*.58}function MA(e,t,n){if(se(e,n)<=t)return e;let r=Array.from(e.trimStart());for(let i=r.length-1;i>=1;i--){let s=`${r.slice(0,i).join("").trimEnd()}\u2026`;if(se(s,n)<=t)return s}return`${r[0]??""}\u2026`}function wi(e,t,n,r=t){if(!e)return[];let i=e.split(/\s+/).filter(a=>a.length>0);if(i.length===0)return[];let o=[],s="";for(let a of i){let l=s?`${s} ${a}`:a,c=o.length===0?r:t;s&&se(l,n)>c?(o.push(s),s=a):s=l}return s&&o.push(s),o}var VM=new Set(Ei),KM=/^\d+$/,qM=/^\d+\.\d+$/,ZM=/^\d+(?:\.\d+)?%$/;function Nr(e){if(!e)return null;if(KM.test(e)){let t=parseInt(e,10);return t>0?t:null}if(qM.test(e)){let t=parseFloat(e);return Number.isFinite(t)&&t>0?t:null}if(ZM.test(e)){let t=parseFloat(e.slice(0,-1))/100;return Number.isFinite(t)&&t>0?t:null}return null}function el(e){if(Number.isInteger(e))return String(e);let t=e.toFixed(6);return t=t.replace(/0+$/,""),t=t.replace(/\.$/,""),t}function JM(e){for(let t of e.properties)if(Q(t)==="unicode"&&t.value)return t.value}function tl(e,t){if(e==="none")return null;if(VM.has(e))return{kind:"builtin",name:e};let n=t.get(e);return n?{kind:"literal",text:JM(n)??e}:{kind:"literal",text:e}}function nl(e,t,n){if(!t)return e.length*n*.58;if(t.kind==="builtin"&&t.name==="multiplier")return(e.length+1)*n*.58;let r=1,i=t.kind==="builtin"?FA:.1;return e.length*n*.58+(i+r)*n}var ss=.6,FA=.25;function rl(e,t,n,r){if(t?.kind!=="builtin"||t.name==="multiplier")return;let i=n*FA;return r?[se(r,n),n*ss,se(e,n),i]:[se(e,n),i]}function Ti(e){return e.toISOString().slice(0,10)}var as={mode:"business",daysPerWeek:5,daysPerMonth:22,daysPerQuarter:65,daysPerYear:260},QM={mode:"full",daysPerWeek:7,daysPerMonth:30,daysPerQuarter:91,daysPerYear:365};function BA(e,t){let r=vt(e.roadmapDecl?.properties??[],"calendar")?.value??"business";if(r==="business")return{...as};if(r==="full")return{...QM};if(t){let i=(o,s)=>{let a=vt(t.properties,o),l=a?parseInt(a.value,10):NaN;return Number.isFinite(l)&&l>0?l:s};return{mode:"custom",daysPerWeek:i("days-per-week",as.daysPerWeek),daysPerMonth:i("days-per-month",as.daysPerMonth),daysPerQuarter:i("days-per-quarter",as.daysPerQuarter),daysPerYear:i("days-per-year",as.daysPerYear)}}return{...as}}var zf=/^(\d+(?:\.\d+)?)([dwmqy])$/;function ls(e,t){let n=zf.exec(e);if(!n)return 0;let r=parseFloat(n[1]);switch(n[2]){case"d":return r;case"w":return r*t.daysPerWeek;case"m":return r*t.daysPerMonth;case"q":return r*t.daysPerQuarter;case"y":return r*t.daysPerYear;default:return 0}}function WA(e,t,n){return e?zf.test(e)?ls(e,n):t.get(e)?.effortDays??0:0}function XA(e,t,n){let r=ie(e,"duration");if(r&&zf.test(r))return ls(r,n);let i=ie(e,"size"),o=i?t.get(i):void 0;if(!o)return 0;let s=Nr(ie(e,"capacity"))??1;return o.effortDays/s}function UA(e,t,n){let r=ie(e,"size"),i=r?t.get(r):void 0;if(i)return i.effortDays;let o=ie(e,"duration");if(o&&zf.test(o)){let s=Nr(ie(e,"capacity"))??1;return ls(o,n)*s}return 0}function cs(e,t){let n=new Map;for(let[r,i]of e){let s=vt(i.properties,"effort")?.value;if(!s)continue;let a=ls(s,t);a<=0||n.set(r,{name:r,title:i.title||void 0,effortDays:a,effortLiteral:s})}return n}function At(e,t){return Math.round((t.getTime()-e.getTime())/864e5)}function Xe(e,t){let n=new Date(e.getTime());return n.setUTCDate(n.getUTCDate()+t),n}function Dg(e){return e!=="business"?[]:[{working:!1,every:new Set([0,6]),id:"weekend",title:"Weekend"}]}function Mg(e,t=Dg(e.mode)){return nF(n=>YA(n,e),t)}function jf(e,t,n,r){if(!e.hasNonWorkingDays)return Xe(t,r);let i=Math.floor(r);return i<=Math.floor(n)?e.dateAtWorkingIndex(t,n):Xe(e.dateAtWorkingIndex(t,i-1),1)}function jA(e,t){return YA(e,t)}function YA(e,t){switch(e){case"days":return 1;case"weeks":return t.daysPerWeek;case"months":return t.daysPerMonth;case"quarters":return t.daysPerQuarter;case"years":return t.daysPerYear}}function VA(e){switch(e){case"days":return 1;case"weeks":return 7;case"months":return 30;case"quarters":return 91;case"years":return 365}}var KA=864e5,ze=7,eF=4,tF=1e8,qA=14;function nF(e,t){let n=[];for(let g of t){let E=iF(g);E&&n.push(E)}let r=n.map(g=>g.copy),i=aF(n),o=uF(i,cF(n)),s=QA(o,JA(n)),a=dF(n,o),l=(g,E)=>pF(a,g,E),c=s[0],u=s[s.length-1];for(let g of[c,u])if(g.kind!=="mask"||g.workingPerWeek===0)throw new RangeError("working calendar: an unbounded stretch has no working weekday");let f=s.some(g=>g.kind==="non-working"||g.kind==="mask"&&g.workingPerWeek<ze),d=lF(i);if(!f)return rF(e,r,d,l);let p=new $g(s,ek(n,!1)),m=(g,E)=>p.dateAt(g,E);return{rules:r,hasNonWorkingDays:!0,weekStart:hF(i),workingWeekdays:d,daysPerUnit:e,addUnits:(g,E,x)=>m(g,E*e(x)),isWorkingDay:g=>p.isWorkingDay(g),workingIndexOf:(g,E)=>p.indexOf(g,E),dateAtWorkingIndex:m,nonWorkingRuns:(g,E)=>p.runs(g,E),workingExceptionRuns:l}}function rF(e,t,n,r){return{rules:t,hasNonWorkingDays:!1,weekStart:void 0,workingWeekdays:n,daysPerUnit:e,addUnits:(i,o,s)=>Xe(i,o*e(s)),isWorkingDay:()=>!0,workingIndexOf:(i,o)=>At(i,o),dateAtWorkingIndex:(i,o)=>Xe(i,o),nonWorkingRuns:()=>[],workingExceptionRuns:r}}function iF(e){let t=e.every===void 0?void 0:sF(e.every),n=e.start!==void 0||e.end!==void 0;if(t===0||e.dates!==void 0&&(t!==void 0||n)||t===void 0&&e.dates===void 0&&(e.start===void 0||e.end===void 0))return;let i=e.start===void 0?-1/0:Lt(e.start),o=e.end===void 0?1/0:Lt(e.end);if(Number.isNaN(i)||Number.isNaN(o)||o<i)return;let s=e.dates?.map(Lt);if(s?.some(Number.isNaN))return;let a=s?s.map(l=>({start:l,end:l+1})):[{start:i,end:o+1}];return{copy:oF(e),working:e.working,mask:t,spans:a}}function oF(e){let t={working:e.working};return e.every!==void 0&&(t.every=new Set(e.every)),e.dates!==void 0&&(t.dates=e.dates.map(n=>new Date(n.getTime()))),e.start!==void 0&&(t.start=new Date(e.start.getTime())),e.end!==void 0&&(t.end=new Date(e.end.getTime())),e.id!==void 0&&(t.id=e.id),e.title!==void 0&&(t.title=e.title),t}function sF(e){let t=0;for(let n of e){if(!Number.isInteger(n)||n<0||n>=ze)throw new RangeError(`working calendar: weekday ${n} is outside 0..6`);t|=1<<n}return t}function aF(e){let t=0,n=0;for(let r of e)r.mask===void 0||!ZA(r.spans[0])||(r.working?n|=r.mask:t|=r.mask);return t&~n}function lF(e){let t=new Set;for(let n=0;n<ze;n++)(e&1<<n)===0&&t.add(n);return t}function ZA(e){return e.start===-1/0&&e.end===1/0}function cF(e){let t=[];for(let n of e)n.mask===void 0||ZA(n.spans[0])||t.push({...n.spans[0],working:n.working,mask:n.mask});return t}function uF(e,t){let n=new Array(ze).fill(0),r=new Array(ze).fill(0),i=(u,f)=>{let d=u.working?r:n;for(let p=0;p<ze;p++)u.mask&1<<p&&(d[p]+=f)},o=()=>{let u=e;for(let f=0;f<ze;f++)n[f]>0&&(u|=1<<f),r[f]>0&&(u&=~(1<<f));return u},s=[];for(let u of t)u.start===-1/0?i(u,1):s.push({at:u.start,span:u,delta:1}),u.end!==1/0&&s.push({at:u.end,span:u,delta:-1});s.sort((u,f)=>u.at-f.at);let a=[],l=-1/0,c=0;for(;;){let u=c<s.length?s[c].at:1/0;if(l<u&&fF(a,{start:l,end:u,mask:o()}),u===1/0)return a;for(;c<s.length&&s[c].at===u;)i(s[c].span,s[c].delta),c++;l=u}}function fF(e,t){let n=e[e.length-1];n&&n.mask===t.mask?n.end=t.end:e.push(t)}function JA(e){let t=[];for(let s of e)if(s.mask===void 0)for(let a of s.spans)t.push({at:a.start,working:s.working,delta:1}),t.push({at:a.end,working:s.working,delta:-1});t.sort((s,a)=>s.at-a.at);let n=[],r=0,i=0,o=0;for(;o<t.length;){let s=t[o].at;for(;o<t.length&&t[o].at===s;)t[o].working?r+=t[o].delta:i+=t[o].delta,o++;if(o===t.length||r===0&&i===0)continue;let a=r>0?"working":"non-working",l=t[o].at,c=n[n.length-1];c&&c.kind===a&&c.end===s?c.end=l:n.push({start:s,end:l,kind:a})}return n}function QA(e,t){let n=[],r=0;for(let i of e){for(;r<t.length&&t[r].end<=i.start;)r++;let o=i.start;for(let s=r;s<t.length&&t[s].start<i.end;s++){let a=Math.max(t[s].start,i.start),l=Math.min(t[s].end,i.end);o<a&&n.push(GA(o,a,i.mask)),n.push({start:a,end:l,kind:t[s].kind}),o=l}o<i.end&&n.push(GA(o,i.end,i.mask))}return n}function GA(e,t,n){let r=[];for(let o=0;o<ze;o++)r.push((n&1<<o)!==0);let i=r.filter(o=>!o).length;return{start:e,end:t,kind:"mask",off:r,workingPerWeek:i}}function ek(e,t){let n=[];for(let[r,i]of e.entries()){let o=i.copy.title;if(i.mask!==void 0||i.working!==t||o===void 0||i.spans.length===0)continue;let s=i.spans.reduce((a,l)=>Math.min(a,l.start),1/0);n.push({title:o,spans:i.spans,first:s,order:r})}return n.sort((r,i)=>r.first-i.first||r.order-i.order),n.map(({title:r,spans:i})=>({title:r,spans:i}))}function dF(e,t){let n=ek(e,!0);if(n.length===0)return[];let r=e.filter(l=>!l.working),i=QA(t,JA(r)),o=new Map;n.forEach((l,c)=>{for(let u of l.spans)for(let f=u.start;f<u.end;f++){if(!rk(i,f))continue;let d=o.get(f)??new Set;d.add(c),o.set(f,d)}});let s=[...o.keys()].sort((l,c)=>l-c),a=[];for(let l=0;l<s.length;){let c=l,u=new Set;for(;c<s.length&&s[c]-s[l]===c-l;){for(let f of o.get(s[c])??[])u.add(f);c++}a.push({from:il(s[l]),through:il(s[c-1]),titles:[...u].sort((f,d)=>f-d).map(f=>n[f].title)}),l=c}return a}function pF(e,t,n){let r=Lt(t),i=Lt(n);return Number.isNaN(r)||Number.isNaN(i)?[]:e.filter(o=>Lt(o.from)<i&&Lt(o.through)>=r).map(o=>({from:new Date(o.from.getTime()),through:new Date(o.through.getTime()),titles:[...o.titles]}))}function hF(e){let t=i=>(e&1<<i)!==0,n,r=0;for(let i=0;i<ze;i++){if(t(i)||!t((i+6)%ze))continue;let o=0;for(;o<ze&&t((i+6-o)%ze);)o++;o>r&&(n=i,r=o)}return n}function Lt(e){return Math.round(e.getTime()/KA)}function il(e){return new Date(e*KA)}function ol(e){return((e+eF)%ze+ze)%ze}function tk(){return new Error("working calendar: remainder scan exceeded its cap (internal error)")}function nk(e,t){let n=0,r=e.length-1;for(;n<r;){let i=n+r>>1;t>=e[i].end?n=i+1:r=i}return n}function rk(e,t){let n=e[nk(e,t)];return n.kind==="mask"?n.off[ol(t)]:n.kind==="non-working"}function Cg(e,t,n){if(e.kind!=="mask")return e.kind==="working"?n-t:0;let r=Math.floor((n-t)/ze),i=r*e.workingPerWeek;for(let o=t+r*ze;o<n;o++)e.off[ol(o)]||i++;return i}function HA(e,t,n){if(e.kind!=="mask")return t+n;let r=t+Math.floor(n/e.workingPerWeek)*ze,i=n%e.workingPerWeek;for(let o=0;o<qA;o++,r++)if(!e.off[ol(r)]){if(i===0)return r;i--}throw tk()}function zA(e,t,n){if(e.kind!=="mask")return t-n;let r=Math.floor((n-1)/e.workingPerWeek),i=t-r*ze,o=n-r*e.workingPerWeek;for(let s=0;s<qA;s++)if(i--,!e.off[ol(i)]&&(o--,o===0))return i;throw tk()}var $g=class{constructor(t,n){M(this,"pieces");M(this,"titled");this.pieces=t,this.titled=n}isWorkingDay(t){let n=Lt(t);return Number.isNaN(n)||!this.isNonWorking(n)}indexOf(t,n){let r=Lt(t),i=Lt(n);if(Number.isNaN(r)||Number.isNaN(i))return Number.NaN;let o=this.nthFrom(i,0);return o>=r?this.count(r,o):-this.count(o,r)}dateAt(t,n){let r=Lt(t),i=Math.floor(n);return Number.isNaN(r)||!Number.isFinite(i)||Math.abs(i)>tF?new Date(Number.NaN):il(i>=0?this.nthFrom(r,i):this.nthBefore(r,-i))}runs(t,n){let r=Lt(t),i=Lt(n);if(Number.isNaN(r)||Number.isNaN(i)||r>=i)return[];let o=[],s=this.isNonWorking(r)?this.nthBefore(r,1)+1:this.nextNonWorking(r,i);for(;s<i;){let a=this.nthFrom(s,0)-1;o.push({from:il(s),through:il(a),titles:this.titlesIn(s,a)}),s=this.nextNonWorking(a+1,i)}return o}pieceAt(t){return nk(this.pieces,t)}isNonWorking(t){return rk(this.pieces,t)}count(t,n){let r=0;for(let i=this.pieceAt(t);i<this.pieces.length&&this.pieces[i].start<n;i++){let o=this.pieces[i];r+=Cg(o,Math.max(t,o.start),Math.min(n,o.end))}return r}nthFrom(t,n){let r=t,i=n;for(let o=this.pieceAt(t);o<this.pieces.length;o++){let s=this.pieces[o];if(s.end===1/0)return HA(s,r,i);let a=Cg(s,r,s.end);if(i<a)return HA(s,r,i);i-=a,r=s.end}throw new Error("working calendar: forward walk left the last piece (internal error)")}nthBefore(t,n){let r=t,i=n;for(let o=this.pieceAt(t-1);o>=0;o--){let s=this.pieces[o];if(s.start===-1/0)return zA(s,r,i);let a=Cg(s,s.start,r);if(i<=a)return zA(s,r,i);i-=a,r=s.start}throw new Error("working calendar: backward walk left the first piece (internal error)")}nextNonWorking(t,n){for(let r=this.pieceAt(t);r<this.pieces.length&&this.pieces[r].start<n;r++){let i=this.pieces[r],o=Math.max(t,i.start);if(i.kind==="non-working")return o;if(!(i.kind!=="mask"||i.workingPerWeek===ze)){for(let s=0;s<ze&&o+s<i.end;s++)if(i.off[ol(o+s)])return o+s}}return n}titlesIn(t,n){let r=[];for(let i of this.titled)i.spans.some(o=>o.start<=n&&o.end>t)&&r.push(i.title);return r}};function Yf(e,t){let n=BA(e,t.config.calendar),r=mF(n,t.config.calendarDeclarations);try{return{config:n,working:Mg(n,r)}}catch(i){if(!(i instanceof RangeError))throw i;return{config:n,working:Mg(n)}}}function mF(e,t){let n=Uf(t)?[]:Dg(e.mode);for(let r of t){let i=gF(r);i&&n.push(i)}return n.sort(yF)}function gF(e){let t=Za(e);if(!t.wellFormed)return;let n={working:e.$type==="WorkingDeclaration"};return e.name&&(n.id=e.name),e.title!==void 0&&(n.title=e.title),t.dates&&(n.dates=t.dates.map(Fg)),t.start&&(n.start=Fg(t.start)),t.end&&(n.end=Fg(t.end)),t.weekdays&&(n.every=new Set(t.weekdays)),n}function Fg(e){return ve(e)}function yF(e,t){return us(ik(e),ik(t))||us(e.title,t.title)||us(e.id,t.id)||Number(e.working)-Number(t.working)||us(ok(e),ok(t))||us(e.start?.getTime(),t.start?.getTime())||us(e.end?.getTime(),t.end?.getTime())||xF(e.dates??[],t.dates??[])}function ik(e){return e.dates?Math.min(...e.dates.map(t=>t.getTime())):e.start?.getTime()}function ok(e){if(!e.every)return;let t=0;for(let n of e.every)t|=1<<n;return t}function us(e,t){return e===t?0:e===void 0?-1:t===void 0?1:e<t?-1:1}function xF(e,t){let n=e.map(i=>i.getTime()).sort((i,o)=>i-o),r=t.map(i=>i.getTime()).sort((i,o)=>i-o);for(let i=0;i<Math.min(n.length,r.length);i++)if(n[i]!==r[i])return n[i]-r[i];return n.length-r.length}function sk(e){let{naturalPixelsPerDay:t,dayCount:n,chromeWidth:r,maxWidth:i}=e;if(i===void 0||r+n*t<=i)return t;let o=(i-r)/n,s=Math.min(t,1);return Math.max(s,o)}var Fn=12,Bn=6,Vf=20,_i=38,Or=13,sl=11,al=16,Bg=2;function Kf(e){return _i+(Math.max(1,e)-1)*al}function qf(e,t){return t?Kf(e):Vf+(Math.max(1,e)-1)*al}function Wg(e,t){return Math.max(0,qf(e,t)-_i)}var vi=12,Xg=12,Lr=5,fs=22,Ug=14,ll=10,Xt=8,Pr=14,Ai=6,ak=4;function ds(e,t){let n=Fn;if(e){let r=Ai+Pr+ak-Fn;n=Fn+Math.max(0,r)}if(t&&!zg(t.barWidth)){let r=jg(0,e)+pt;n=Math.max(n,r+Wt)}return n}var Wt=4,Cr=2*vi,Gg=Ai+Pr+Wt+vi+Lr,ps=fs+1;function Zf(e){let t=e.barRightX+Bn,n=!1,r=null;e.iconSpills&&(r=t,t=r+Pr,n=!0);let i=null;e.captionWidth!==null&&(n&&(t+=Wt),i=t,t+=e.captionWidth,n=!0);let o=null;e.footnoteCount>0&&(n&&(t+=Wt),o=t,t+=e.footnoteCount*Xt,n=!0);let s=null;return e.dotSpills&&(n&&(t+=Wt),s=t+Lr,t=s+Lr),{iconSpillX:r,captionX:i,footnoteSpillStartX:o,dotSpillCx:s,rightX:t}}var pt=12,cl=6,Hg=6,lk=5,tn=Wt,ck=cl+pt+tn+pt+Hg;function zg(e){return e<ck}function jg(e,t){return t?e+Ai+Pr+tn:e+cl}function Yg(e,t){let n;return t>0?n=e-fs-(t-1)*Xt-tn:n=e-vi-Lr-tn,n-pt}function ul(e){let{barWidth:t,footnoteLabels:n,hasBeforeGlyph:r}=e,i=Number.POSITIVE_INFINITY;t>=Cr&&(i=Math.min(i,-(vi+Lr)));let o=n.length;if(o>0&&t>=ps)for(let a=0;a<o;a+=1){let c=-fs-(o-1-a)*Xt-se(n[a],ll);i=Math.min(i,c)}return r&&t>=ck&&(i=Math.min(i,Yg(0,o))),Math.max(Fn,-i+Wt)}var $r=13,Wn=3,Xn=4,EF=4,Jf=$r+EF,wF=.25;function uk(e,t){if(e.length===0)return{rows:[[]],expanded:!1};let n=[[]],r=0,i=t,o=!1;for(let s of e){let a=n[n.length-1],l=(a.length===0?0:Xn)+s.width,c=r+l;if(c<=i){a.push(s),r=c;continue}if(a.length===0){a.push(s),r=s.width;continue}let u=c-i,f=s.width*wF;if(!o&&u<=f){a.push(s),r=c,i=c,o=!0;continue}n.push([s]),r=s.width,i=t}return{rows:n,expanded:o}}var fk={none:0,xs:2,sm:4,md:8,lg:16,xl:24},dk={none:0,xs:4,sm:8,md:12,lg:20,xl:32},ki={none:0,xs:10,sm:12,md:14,lg:18,xl:24},Ii={none:0,xs:2,sm:4,md:8,lg:12,xl:20,full:9999},Vg={xs:18,sm:24,md:36,lg:48,xl:72},Kg=1,nn=4,fl={none:0,xs:16,sm:20,md:24,lg:32,xl:40},pk=fl.md;function dl(e){return Math.round(e/2+3)}var TF=dl(pk),Ri=10,pl=22,hl=15,ml="6 4",qg=36,Ut=16,Zg=Ut/2,gl=10,Jg=Ut-4,hs=6,Qf=2.25,hk=1,kt=12,mk=32,gk=120,Qg=240,ey=72,ed=28,Gt=16,ty=22,ms=18,td="Powered by",ny="https://nowline.io",yl=.22,Dr=40,nd=32,yk=.58,_F=td.length*nd*yk,vF=10,xl=_F+vF,ry=xl+74,iy=5,rd=xl+81,AF=3*Dr*yk,kF=rd+AF,IF=12+Dr,oy=kF*yl,xk=IF*yl,id=4;var sy={sans:'system-ui, -apple-system, "Segoe UI", Roboto, sans-serif',serif:'Georgia, "Times New Roman", serif',mono:"ui-monospace, SFMono-Regular, Menlo, Consolas, monospace"},Ek={days:7,weeks:4,months:3,quarters:4,years:5},ay=.1,ly=20,cy=2,uy="2 2",fy=.13,dy=6,py=2,hy=.12,El=.25,Un=10,od=14,sd=8,Gn=6,gs=2,ad=3,Si=.5,ld=18,cd=10,my=6,gy=11;var wk=18,wl=13,ud=ki.xs,yy=10,Tk=6,_k=6,xy=.12,Ey=.06,wy=2;function fd(e){return e.drawn?{header:e.hasTitle||e.hasPins||e.hasBracket?wk:0,pad:Tk}:{header:0,pad:0}}function ys(e,t){return t?e+pt+tn:e}function Ty(e){return e.length*ud*.58}function xs(e){if(e.kind==="item")return Number.NEGATIVE_INFINITY;let t=Number.NEGATIVE_INFINITY,n=e.inlineDatePins??[];for(let r of n)t=Math.max(t,r.glyphTopLeft.x+r.glyphSize);if(e.title&&e.headerHeight>0){let r=n.some(i=>i.side==="after");t=Math.max(t,ys(e.box.x,r)+Ty(e.title))}return t}function RF(e,t){return e.endX-Math.min(t/2,(e.endX-e.startX)/2)}function SF(e,t){return e.startX+Math.min(t/2,(e.endX-e.startX)/2)}function Es(e){return e<3?{headWidth:3,head:"dot"}:{headWidth:Math.min(7,e),head:"arrow"}}var _y=(e,t,n)=>e>=t-.01&&e<=n+.01;function bF(e,t){return t.rowY===void 0||!_y(t.rowY,e.top,e.bottom)?!1:e.rowY===void 0||_y(e.rowY,t.top,t.bottom)}function NF(e,t,n,r,i){let o=[];for(let l of e){if(l.x>=n+1||l.x+l.width<=t-1)continue;let c=l.y-1,u=l.y+l.height+1;u<=r||c>=i||o.push([Math.max(r,c),Math.min(i,u)])}o.sort((l,c)=>l[0]-c[0]);let s=[],a=r;for(let[l,c]of o)l-a>=2&&s.push([a,l]),a=Math.max(a,c);return i-a>=2&&s.push([a,i]),s}function vk(e,t,n,r){let i=Math.min(n,r),o=Math.max(n,r),s=0;for(let a of e)Math.abs(a.x-t)>1||a.bottom<=i||a.top>=o||s++;return s}function Ak(e,t,n,r){let i=Math.min(n,r),o=Math.max(n,r),s=0;for(let a of e)a.height<=0||t<=a.x||t>=a.x+a.width||a.y+a.height<=i||a.y>=o||s++;return s}function LF(e,t,n,r){let i=Math.min(e.x,t.x),o=Math.max(e.x,t.x),s=Math.min(e.y,t.y),a=Math.max(e.y,t.y),l=null;for(let f of NF(r.blocks,i,o,s,a)){let d=(f[0]+f[1])/2,p=[vk(r.edges,e.x,e.y,d)+vk(r.edges,t.x,d,t.y),Ak(r.blocks,e.x,e.y,d)+Ak(r.blocks,t.x,d,t.y),Math.abs(d-e.y)];(!l||OF(p,l.key))&&(l={gap:f,centre:d,key:p})}if(l)return{gap:l.gap,centre:l.centre};let c=Math.min(4,(a-s)/2),u=e.y+n*c;return{gap:[s,a],centre:u}}function OF(e,t){for(let n=0;n<e.length;n++)if(e[n]!==t[n])return e[n]<t[n];return!1}function PF(e,t){let n=[0];for(let r=1;r*2.5<=t+.01;r++)n.push(-e*r*2.5,e*r*2.5);return n}function CF(e){let t=[],n=new Map,r=[...e].sort((i,o)=>i.centre-o.centre||i.xLo-o.xLo||i.index-o.index);for(let i of r){let[o,s]=i.gap,a=t.find(c=>c.bundle===i.bundle&&c.y>=o-.01&&c.y<=s+.01),l=i.centre;if(a)l=a.y;else{let c=PF(i.dir,(s-o)/2),u=Number.POSITIVE_INFINITY;for(let f of c){let d=i.centre+f,p=t.filter(m=>m.bundle!==i.bundle&&Math.abs(m.y-d)<2.5-.01&&m.xLo<i.xHi+1&&m.xHi>i.xLo-1).length;if(p<u&&(u=p,l=d),p===0)break}}t.push({y:l,xLo:i.xLo,xHi:i.xHi,bundle:i.bundle}),n.set(i.index,l)}return n}function kk(e,t,n){let r=new Array(e.length).fill(null),i=[];e.forEach((s,a)=>{let{source:l,target:c}=s,u=c.startX-l.endX>.01;if(bF(l,c)&&c.startX>=l.endX-.01){if(!u)return;let y=l.exitY!==void 0&&_y(l.exitY,c.top,c.bottom)?l.exitY:c.rowY??0;r[a]={fromId:s.fromId,toId:s.toId,waypoints:[{x:l.endX,y},{x:c.paintedX,y}],slack:!0,...Es(c.bottom-c.top)};return}let f=RF(l,n),d=SF(c,n),p,m,g;if(c.top>=l.bottom-.01)g=1,p={x:f,y:l.bottom},m={x:d,y:c.top};else if(c.bottom<=l.top+.01)g=-1,p={x:f,y:l.top},m={x:d,y:c.bottom};else{let y=Math.max(l.bottom,c.bottom)+4;r[a]={fromId:s.fromId,toId:s.toId,waypoints:[{x:f,y:l.bottom},{x:f,y},{x:d,y},{x:d,y:c.bottom}],slack:u,...Es(c.paintedWidth)};return}if(Math.abs(f-d)<.01){r[a]={fromId:s.fromId,toId:s.toId,waypoints:[p,m],slack:u,...Es(c.paintedWidth)};return}let{gap:E,centre:x}=LF(p,m,g,t);i.push({index:a,req:s,from:p,to:m,dir:g,gap:E,centre:x,xLo:Math.min(f,d),xHi:Math.max(f,d),bundle:`${Math.round(d*100)}:${g}`})});let o=CF(i);for(let s of i){let a=o.get(s.index)??s.centre,l=s.req.target.startX-s.req.source.endX>.01;r[s.index]={fromId:s.req.fromId,toId:s.req.toId,waypoints:[s.from,{x:s.from.x,y:a},{x:s.to.x,y:a},s.to],slack:l,...Es(s.req.target.paintedWidth)}}return r}var $F=new Set(" ijlI.,:;!'|`"),DF=new Set('frt()[]{}/\\1-_"'),MF=new Set("mwMW@%"),FF=.95;function Ik(e){let t=0;for(let n of e)$F.has(n)?t+=.28:DF.has(n)?t+=.4:MF.has(n)?t+=.9:/[A-Z0-9]/.test(n)?t+=.7:t+=.6;return t}function Rk(e){return Ik(e)*12}function Sk(e){return Ik(e)*10*FF}var Tl=10,vy=3,dd=6,bk=12,Nk=12,Lk=56,Ok=10;function Ay(e,t,n,r=0,i=0){let o=e+Ok,s=o+bk,a=Rk(t),l=s+a,c=0,u=0,f=0;n&&(c=Tl+vy+Sk(n),u=l+dd,f=u+Tl+vy,l=u+c);let d=0;r>0&&(d=l+dd,l=d+r);let p=0;i>0&&(p=l+dd+i,l=p);let m=l-o+Nk,g=Math.max(Lk,m);return{titleTextWidth:a,ownerTextWidth:c,capacityBadgeWidth:r,footnoteIndicatorWidth:i,titleX:s,ownerX:u,ownerTextX:f,badgeX:d,footnoteRightX:p,tabX:o,tabW:g,rightX:o+g}}function pd(e){let t=ie(e.roadmapDecl?.properties??[],"logo");return t||void 0}function WF(e){let t=ie(e.roadmapDecl?.properties??[],"logo-size");return t!==void 0&&t in Vg?t:"md"}function Pk(e,t){let n=e.width/e.height,r=Vg[t],i=r*n;return i>160&&(i=160,r=i/n),{width:i,height:r}}function Ck(e,t){let n=pd(e);if(!(!n||!t)&&t.width>0&&t.height>0&&!(!Number.isFinite(t.width)||!Number.isFinite(t.height)))return{...Pk(t,WF(e)),assetRef:n,intrinsic:t}}function _l(e,t,n){let r=e+24,i=r+10,o=t.length*6,s=Math.max(60,o+10+10),a=r+s+6,l=a+18,c=0,u=0,f=0,d=0,p=l;return n&&(u=l+6,c=n.length*5.5,f=u-3,d=c+6,p=f+d),{labelTextWidth:o,sourceTextWidth:c,tabX:r,tabWidth:s,tabLabelX:i,badgeX:a,badgeSize:18,sourceHaloX:f,sourceHaloWidth:d,sourceTextX:u,chromeRightX:p}}var $k="lexing-error",Dk="parsing-error";function Mk(e){if(!e||typeof e!="object")return!1;let t=e.code;return t===$k||t===Dk}function bi(e){let t=[];for(let n of e.parseResult.lexerErrors)t.push({origin:"lexer",error:n});for(let n of e.parseResult.parserErrors)t.push({origin:"parser",error:n});for(let n of e.diagnostics??[]){let r=n;Mk(r.data)||t.push({origin:"validation",diagnostic:r})}return t}var XF=/did you mean ['"]?([^'"?]+)['"]?\??/i;function hd(e){let t=e.match(XF);return t?t[1].trim():void 0}function md(e){let t=e.toLowerCase();return t.includes("duplicate identifier")?"duplicate-identifier":t.includes("unknown reference")||t.includes("did you mean")?"unknown-reference":t.includes("circular")?"circular-dependency":t.includes("requires")&&t.includes("date:")?"missing-date":t.includes("duration")?"duration":t.includes("include")?"include":t.includes("indent")?"indentation":"validation"}function Fk(e){if(!e||typeof e!="object")return;let t=e;if(typeof t.code=="string"&&Array.isArray(t.args))return t.code}function ky(e){let t=Fk(e.data);return t||(typeof e.code=="string"&&e.code!==""?e.code:typeof e.code=="number"?String(e.code):md(e.message))}var Bk,Wk=()=>Bk??(Bk=dA(`{
|
|
128
|
+
`}var If=class{constructor(t){this.indexManager=t.shared.workspace.IndexManager,this.commentProvider=t.documentation.CommentProvider}getDocumentation(t){let n=this.commentProvider.getComment(t);if(n&&uA(n))return cA(n).toMarkdown({renderLink:(i,o)=>this.documentationLinkRenderer(t,i,o),renderTag:i=>this.documentationTagRenderer(t,i)})}documentationLinkRenderer(t,n,r){let i=this.findNameInLocalSymbols(t,n)??this.findNameInGlobalScope(t,n);if(i&&i.nameSegment){let o=i.nameSegment.range.start.line+1,s=i.nameSegment.range.start.character+1,a=i.documentUri.with({fragment:`L${o},${s}`});return`[${r}](${a.toString()})`}else return}documentationTagRenderer(t,n){}findNameInLocalSymbols(t,n){let i=st(t).localSymbols;if(!i)return;let o=t;do{let a=i.getStream(o).find(l=>l.name===n);if(a)return a;o=o.$container}while(o)}findNameInGlobalScope(t,n){return this.indexManager.allElements().find(i=>i.name===n)}};var Rf=class{constructor(t){this.grammarConfig=()=>t.parser.GrammarConfig}getComment(t){return t0(t)?t.$comment:QE(t.$cstNode,this.grammarConfig().multilineCommentRules)?.text}};var Sf=class{constructor(t){this.syncParser=t.parser.LangiumParser}parse(t,n){return Promise.resolve(this.syncParser.parse(t))}};var bf;(function(e){e[e.Normal=0]="Normal",e[e.Immediate=1]="Immediate"})(bf||(bf={}));var Nf=class{constructor(){this.previousTokenSource=new fe.CancellationTokenSource,this.writeQueue=[],this.readQueue=[],this.immediateReads=[],this.done=!0}write(t){this.cancelWrite();let n=K_();return this.previousTokenSource=n,this.enqueue(this.writeQueue,t,n.token)}read(t,n=bf.Normal){if(n===bf.Immediate){let r=Promise.resolve().then(()=>t());this.immediateReads.push(r);let i=()=>{this.immediateReads.splice(this.immediateReads.indexOf(r),1)};return r.then(i,i),r}return this.enqueue(this.readQueue,t)}enqueue(t,n,r=fe.CancellationToken.None){let i=new Ir,o={action:n,deferred:i,cancellationToken:r};return t.push(o),this.performNextOperation(),i.promise}async performNextOperation(){if(!this.done)return;let t=[];if(this.writeQueue.length>0)for(t.push(this.writeQueue.shift()),this.done=!1;this.immediateReads.length>0;)await Promise.allSettled(this.immediateReads.slice());else if(this.readQueue.length>0)t.push(...this.readQueue.splice(0,this.readQueue.length)),this.done=!1;else return;await Promise.all(t.map(async({action:n,deferred:r,cancellationToken:i})=>{try{let o=await Promise.resolve().then(()=>n(i));r.resolve(o)}catch(o){Rr(o)?r.resolve(void 0):r.reject(o)}})),this.done=!0,this.performNextOperation()}cancelWrite(){this.previousTokenSource.cancel()}};var Lf=class{constructor(t){this.grammarElementIdMap=new Oa,this.tokenTypeIdMap=new Oa,this.cstNodeBuilder=new Po,this.grammar=t.Grammar,this.lexer=t.parser.Lexer,this.linker=t.references.Linker}dehydrate(t){return{lexerErrors:t.lexerErrors,lexerReport:t.lexerReport?this.dehydrateLexerReport(t.lexerReport):void 0,parserErrors:t.parserErrors.map(n=>({...n,message:n.message})),value:this.dehydrateAstNode(t.value,this.createDehyrationContext(t.value))}}dehydrateLexerReport(t){return t}createDehyrationContext(t){let n=new Map,r=new Map;for(let i of yt(t))n.set(i,{});if(t.$cstNode)for(let i of qs(t.$cstNode))r.set(i,{});return{astNodes:n,cstNodes:r}}dehydrateAstNode(t,n){let r=n.astNodes.get(t);r.$type=t.$type,r.$containerIndex=t.$containerIndex,r.$containerProperty=t.$containerProperty,t.$cstNode!==void 0&&(r.$cstNode=this.dehydrateCstNode(t.$cstNode,n));for(let[i,o]of Object.entries(t))if(!i.startsWith("$"))if(Array.isArray(o)){let s=[];r[i]=s;for(let a of o)Ue(a)?s.push(this.dehydrateAstNode(a,n)):it(a)?s.push(this.dehydrateReference(a,n)):s.push(a)}else Ue(o)?r[i]=this.dehydrateAstNode(o,n):it(o)?r[i]=this.dehydrateReference(o,n):o!==void 0&&(r[i]=o);return r}dehydrateReference(t,n){let r={};return r.$refText=t.$refText,t.$refNode&&(r.$refNode=n.cstNodes.get(t.$refNode)),r}dehydrateCstNode(t,n){let r=n.cstNodes.get(t);if(nc(t)?r.fullText=t.fullText:r.grammarSource=this.getGrammarElementId(t.grammarSource),r.hidden=t.hidden,tr(t))r.content=t.content.map(i=>this.dehydrateCstNode(i,n));else if(tc(t)){r.tokenType=t.tokenType.name,r.offset=t.offset,r.length=t.length;let{start:i,end:o}=t.range;r.startLine=i.line,r.startColumn=i.character,r.endLine=o.line,r.endColumn=o.character}return r}hydrate(t){let n=t.value,r=this.createHydrationContext(n);return"$cstNode"in n&&this.hydrateCstNode(n.$cstNode,r),{lexerErrors:t.lexerErrors,lexerReport:t.lexerReport,parserErrors:t.parserErrors,value:this.hydrateAstNode(n,r)}}createHydrationContext(t){let n=new Map,r=new Map;for(let i of yt(t))n.set(i,{});if(t.$cstNode)for(let i of qs(t.$cstNode)){let o;"fullText"in i?o=new Na(i.fullText):"content"in i?o=new Oo:"tokenType"in i&&(o=this.hydrateCstLeafNode(i)),o&&r.set(i,o)}return{astNodes:n,cstNodes:r,linkedCstNodes:new Set}}hydrateAstNode(t,n){let r=n.astNodes.get(t);if(r.$type=t.$type,r.$containerIndex=t.$containerIndex,r.$containerProperty=t.$containerProperty,t.$cstNode){let i=n.cstNodes.get(t.$cstNode);r.$cstNode=i,i&&!n.linkedCstNodes.has(i)&&(n.linkedCstNodes.add(i),i.astNode=r)}for(let[i,o]of Object.entries(t))if(!i.startsWith("$"))if(Array.isArray(o)){let s=[];r[i]=s;for(let a of o)Ue(a)?s.push(this.setParent(this.hydrateAstNode(a,n),r)):it(a)?s.push(this.hydrateReference(a,r,i,n)):s.push(a)}else Ue(o)?r[i]=this.setParent(this.hydrateAstNode(o,n),r):it(o)?r[i]=this.hydrateReference(o,r,i,n):o!==void 0&&(r[i]=o);return r}setParent(t,n){return t.$container=n,t}hydrateReference(t,n,r,i){return this.linker.buildReference(n,r,i.cstNodes.get(t.$refNode),t.$refText)}hydrateCstNode(t,n,r=0){let i=n.cstNodes.get(t);if(typeof t.grammarSource=="number"&&(i.grammarSource=this.getGrammarElement(t.grammarSource)),tr(i)){let o=[];for(let s of t.content)o.push(this.hydrateCstNode(s,n,r++));this.cstNodeBuilder.appendChildren(i,o)}return i}hydrateCstLeafNode(t){let n=this.getTokenType(t.tokenType);return new ba(t.offset,t.length,t.startLine,t.startColumn,t.endLine,t.endColumn,n,t.hidden)}getTokenType(t){return this.lexer.definition[t]}getGrammarElementId(t){if(t)return this.grammarElementIdMap.size===0&&this.createGrammarElementIdMap(),this.grammarElementIdMap.get(t)}getGrammarElement(t){return this.grammarElementIdMap.size===0&&this.createGrammarElementIdMap(),this.grammarElementIdMap.getKey(t)}createGrammarElementIdMap(){let t=0;for(let n of yt(this.grammar))xc(n)&&this.grammarElementIdMap.set(n,t++)}};function Pf(e){return{documentation:{CommentProvider:t=>new Rf(t),DocumentationProvider:t=>new If(t)},parser:{AsyncParser:t=>new Sf(t),GrammarConfig:t=>uw(t),LangiumParser:t=>U_(t),CompletionParser:t=>X_(t),ValueConverter:()=>new $o,TokenBuilder:()=>new Co,Lexer:t=>new Wo(t),ParserErrorMessageProvider:()=>new La,LexerErrorMessageProvider:()=>new yf},workspace:{AstNodeLocator:()=>new df,AstNodeDescriptionProvider:t=>new uf(t),ReferenceDescriptionProvider:t=>new ff(t)},references:{Linker:t=>new qu(t),NameProvider:()=>new Zu,ScopeProvider:t=>new of(t),ScopeComputation:t=>new Qu(t),References:t=>new Ju(t)},serializer:{Hydrator:t=>new Lf(t),JsonSerializer:t=>new sf(t)},validation:{DocumentValidator:t=>new cf(t),ValidationRegistry:t=>new lf(t)},shared:()=>e.shared}}function Of(e){return{ServiceRegistry:t=>new af(t),workspace:{LangiumDocuments:t=>new Ku(t),LangiumDocumentFactory:t=>new Vu(t),DocumentBuilder:t=>new hf(t),IndexManager:t=>new mf(t),WorkspaceManager:t=>new gf(t),FileSystemProvider:t=>e.fileSystemProvider(t),WorkspaceLock:()=>new Nf,ConfigurationProvider:t=>new pf(t)},profilers:{}}}var mA;(function(e){e.merge=(t,n)=>Ma(Ma({},t),n)})(mA||(mA={}));function Go(e,t,n,r,i,o,s,a,l){let c=[e,t,n,r,i,o,s,a,l].reduce(Ma,{});return xA(c)}var VM=Symbol("isProxy");function xA(e,t){let n=new Proxy({},{deleteProperty:()=>!1,set:()=>{throw new Error("Cannot set property on injected service container")},get:(r,i)=>i===VM?!0:yA(r,i,e,t||n),getOwnPropertyDescriptor:(r,i)=>(yA(r,i,e,t||n),Object.getOwnPropertyDescriptor(r,i)),has:(r,i)=>i in e,ownKeys:()=>[...Object.getOwnPropertyNames(e)]});return n}var gA=Symbol();function yA(e,t,n,r){if(t in e){if(e[t]instanceof Error)throw new Error("Construction failure. Please make sure that your dependencies are constructable. Cause: "+e[t]);if(e[t]===gA)throw new Error('Cycle detected. Please make "'+String(t)+'" lazy. Visit https://langium.org/docs/reference/configuration-services/#resolving-cyclic-dependencies');return e[t]}else if(t in n){let i=n[t];e[t]=gA;try{e[t]=typeof i=="function"?i(r):xA(i,r)}catch(o){throw e[t]=o instanceof Error?o:void 0,o}return e[t]}else return}function Ma(e,t){if(t){for(let[n,r]of Object.entries(t))if(!(n==="__proto__"||n==="constructor"||n==="prototype")&&r!=null)if(typeof r=="object"){let i=e[n];typeof i=="object"&&i!==null?e[n]=Ma(i,r):e[n]=Ma({},r)}else e[n]=r}return e}var EA={indentTokenName:"INDENT",dedentTokenName:"DEDENT",whitespaceTokenName:"WS",ignoreIndentationDelimiters:[]},Ho;(function(e){e.REGULAR="indentation-sensitive",e.IGNORE_INDENTATION="ignore-indentation"})(Ho||(Ho={}));var Fa=class extends Co{constructor(t=EA){super(),this.indentationStack=[0],this.whitespaceRegExp=/[ \t]+/y,this.options={...EA,...t},this.indentTokenType=lr({name:this.options.indentTokenName,pattern:this.indentMatcher.bind(this),line_breaks:!1}),this.dedentTokenType=lr({name:this.options.dedentTokenName,pattern:this.dedentMatcher.bind(this),line_breaks:!1})}buildTokens(t,n){let r=super.buildTokens(t,n);if(!ng(r))throw new Error("Invalid tokens built by default builder");let{indentTokenName:i,dedentTokenName:o,whitespaceTokenName:s,ignoreIndentationDelimiters:a}=this.options,l,c,u,f=[];for(let d of r){for(let[p,m]of a)d.name===p?d.PUSH_MODE=Ho.IGNORE_INDENTATION:d.name===m&&(d.POP_MODE=!0);d.name===o?l=d:d.name===i?c=d:d.name===s?u=d:f.push(d)}if(!l||!c||!u)throw new Error("Some indentation/whitespace tokens not found!");return a.length>0?{modes:{[Ho.REGULAR]:[l,c,...f,u],[Ho.IGNORE_INDENTATION]:[...f,u]},defaultMode:Ho.REGULAR}:[l,c,u,...f]}flushLexingReport(t){return{...super.flushLexingReport(t),remainingDedents:this.flushRemainingDedents(t)}}isStartOfLine(t,n){return n===0||`\r
|
|
129
|
+
`.includes(t[n-1])}matchWhitespace(t,n,r,i){this.whitespaceRegExp.lastIndex=n;let o=this.whitespaceRegExp.exec(t);return{currIndentLevel:o?.[0].length??0,prevIndentLevel:this.indentationStack.at(-1),match:o}}createIndentationTokenInstance(t,n,r,i){let o=this.getLineNumber(n,i);return Sn(t,r,i,i+r.length,o,o,1,r.length)}getLineNumber(t,n){return t.substring(0,n).split(/\r\n|\r|\n/).length}indentMatcher(t,n,r,i){if(!this.isStartOfLine(t,n))return null;let{currIndentLevel:o,prevIndentLevel:s,match:a}=this.matchWhitespace(t,n,r,i);return o<=s?null:(this.indentationStack.push(o),a)}dedentMatcher(t,n,r,i){if(!this.isStartOfLine(t,n))return null;let{currIndentLevel:o,prevIndentLevel:s,match:a}=this.matchWhitespace(t,n,r,i);if(o>=s)return null;let l=this.indentationStack.lastIndexOf(o);if(l===-1)return this.diagnostics.push({severity:"error",message:`Invalid dedent level ${o} at offset: ${n}. Current indentation stack: ${this.indentationStack}`,offset:n,length:a?.[0]?.length??0,line:this.getLineNumber(t,n),column:1}),null;let c=this.indentationStack.length-l-1,u=t.substring(0,n).match(/[\r\n]+$/)?.[0].length??1;for(let f=0;f<c;f++){let d=this.createIndentationTokenInstance(this.dedentTokenType,t,"",n-(u-1));r.push(d),this.indentationStack.pop()}return null}buildTerminalToken(t){let n=super.buildTerminalToken(t),{indentTokenName:r,dedentTokenName:i,whitespaceTokenName:o}=this.options;return n.name===r?this.indentTokenType:n.name===i?this.dedentTokenType:n.name===o?lr({name:o,pattern:this.whitespaceRegExp,group:Me.SKIPPED}):n}flushRemainingDedents(t){let n=[];for(;this.indentationStack.length>1;)n.push(this.createIndentationTokenInstance(this.dedentTokenType,t,"",t.length)),this.indentationStack.pop();return this.indentationStack=[0],n}},Cf=class extends Wo{constructor(t){if(super(t),t.parser.TokenBuilder instanceof Fa)this.indentationTokenBuilder=t.parser.TokenBuilder;else throw new Error("IndentationAwareLexer requires an accompanying IndentationAwareTokenBuilder")}tokenize(t,n=tg){let r=super.tokenize(t),i=r.report;n?.mode==="full"&&r.tokens.push(...i.remainingDedents),i.remainingDedents=[];let{indentTokenType:o,dedentTokenType:s}=this.indentationTokenBuilder,a=o.tokenTypeIdx,l=s.tokenTypeIdx,c=[],u=r.tokens.length-1;for(let f=0;f<u;f++){let d=r.tokens[f],p=r.tokens[f+1];if(d.tokenTypeIdx===a&&p.tokenTypeIdx===l){f++;continue}c.push(d)}return u>=0&&c.push(r.tokens[u]),r.tokens=c,r}};var Tg=class{stat(t){throw new Error("No file system is available.")}statSync(t){throw new Error("No file system is available.")}async exists(){return!1}existsSync(){return!1}readBinary(){throw new Error("No file system is available.")}readBinarySync(){throw new Error("No file system is available.")}readFile(){throw new Error("No file system is available.")}readFileSync(){throw new Error("No file system is available.")}async readDirectory(){return[]}readDirectorySync(){return[]}},$f={fileSystemProvider:()=>new Tg};var KM={Grammar:()=>{},LanguageMetaData:()=>({caseInsensitive:!1,fileExtensions:[".langium"],languageId:"langium"})},qM={AstReflection:()=>new Ks};function ZM(){let e=Go(Of($f),qM),t=Go(Pf({shared:e}),KM);return e.ServiceRegistry.register(t),t}function wA(e){let t=ZM(),n=t.serializer.JsonSerializer.deserialize(e);return t.shared.workspace.LangiumDocumentFactory.fromModel(n,Ce.parse(`memory:/${n.name??"grammar"}.langium`)),n}var zo={$type:"AnchorDeclaration",description:"description",name:"name",properties:"properties",title:"title"};function os(e){return We.isInstance(e,zo.$type)}var vg={$type:"BlockProperty",key:"key",value:"value"};var Rg={$type:"CalendarBlock",properties:"properties"};function za(e){return We.isInstance(e,Rg.$type)}var Dn={$type:"ConfigEntry"};function vA(e){return We.isInstance(e,Dn.$type)}var Wf={$type:"DefaultDeclaration",entityType:"entityType",properties:"properties"};function nt(e){return We.isInstance(e,Wf.$type)}var Sg={$type:"DescriptionDirective",text:"text"};function ja(e){return We.isInstance(e,Sg.$type)}var Df={$type:"EntityProperty",key:"key",value:"value",values:"values"};var jo={$type:"FootnoteDeclaration",description:"description",name:"name",properties:"properties",title:"title"};function Ng(e){return We.isInstance(e,jo.$type)}var Yo={$type:"GroupBlock",content:"content",name:"name",properties:"properties",title:"title"};function $e(e){return We.isInstance(e,Yo.$type)}var Ba={$type:"GroupContent"};var _g={$type:"IncludeDeclaration",options:"options",path:"path"};var Ag={$type:"IncludeOption",key:"key",value:"value"};var Vo={$type:"ItemDeclaration",description:"description",name:"name",properties:"properties",title:"title"};function Ve(e){return We.isInstance(e,Vo.$type)}var Ko={$type:"LabelDeclaration",description:"description",name:"name",properties:"properties",title:"title"};function Ya(e){return We.isInstance(e,Ko.$type)}var qo={$type:"MilestoneDeclaration",description:"description",name:"name",properties:"properties",title:"title"};function xn(e){return We.isInstance(e,qo.$type)}var Xa={$type:"NonWorkingDeclaration",name:"name",properties:"properties",title:"title"};function br(e){return We.isInstance(e,Xa.$type)}var kg={$type:"NowlineDirective",properties:"properties",version:"version"};var Sr={$type:"NowlineFile",configEntries:"configEntries",directive:"directive",hasConfig:"hasConfig",includes:"includes",roadmapDecl:"roadmapDecl",roadmapEntries:"roadmapEntries"};function ss(e){return We.isInstance(e,Sr.$type)}var Zo={$type:"ParallelBlock",content:"content",name:"name",properties:"properties",title:"title"};function et(e){return We.isInstance(e,Zo.$type)}var Mf={$type:"ParallelContent"};var Jo={$type:"PersonDeclaration",description:"description",name:"name",properties:"properties",title:"title"};function Va(e){return We.isInstance(e,Jo.$type)}var TA={$type:"PersonMemberRef",ref:"ref"};var Ff={$type:"RoadmapDeclaration",name:"name",properties:"properties",title:"title"};var en={$type:"RoadmapEntry"};var bg={$type:"ScaleBlock",properties:"properties"};function _A(e){return We.isInstance(e,bg.$type)}var Qo={$type:"SizeDeclaration",description:"description",name:"name",properties:"properties",title:"title"};function yi(e){return We.isInstance(e,Qo.$type)}var es={$type:"StatusDeclaration",description:"description",name:"name",properties:"properties",title:"title"};function Ka(e){return We.isInstance(e,es.$type)}var Ua={$type:"StyleDeclaration",name:"name",properties:"properties",title:"title"};function Wt(e){return We.isInstance(e,Ua.$type)}var Ig={$type:"StyleProperty",key:"key",value:"value"};var Wa={$type:"SwimlaneContent"};var ts={$type:"SwimlaneDeclaration",content:"content",name:"name",properties:"properties",title:"title"};function Ke(e){return We.isInstance(e,ts.$type)}var ns={$type:"SymbolDeclaration",description:"description",name:"name",properties:"properties",title:"title"};function xi(e){return We.isInstance(e,ns.$type)}var Bf={$type:"TeamContent"};var rs={$type:"TeamDeclaration",content:"content",name:"name",properties:"properties",title:"title"};function tn(e){return We.isInstance(e,rs.$type)}var is={$type:"WaveDeclaration",description:"description",name:"name",properties:"properties",title:"title"};function Tt(e){return We.isInstance(e,is.$type)}var Ga={$type:"WorkingDeclaration",name:"name",properties:"properties",title:"title"};function qa(e){return We.isInstance(e,Ga.$type)}var Ha=class extends Ui{constructor(){super(...arguments);M(this,"types",{AnchorDeclaration:{name:zo.$type,properties:{description:{name:zo.description,optional:!0},name:{name:zo.name,optional:!0},properties:{name:zo.properties,defaultValue:[],optional:!0},title:{name:zo.title,optional:!0}},superTypes:[en.$type]},BlockProperty:{name:vg.$type,properties:{key:{name:vg.key},value:{name:vg.value}},superTypes:[]},CalendarBlock:{name:Rg.$type,properties:{properties:{name:Rg.properties,defaultValue:[],optional:!0}},superTypes:[Dn.$type]},ConfigEntry:{name:Dn.$type,properties:{},superTypes:[]},DefaultDeclaration:{name:Wf.$type,properties:{entityType:{name:Wf.entityType},properties:{name:Wf.properties,defaultValue:[],optional:!0}},superTypes:[Dn.$type]},DescriptionDirective:{name:Sg.$type,properties:{text:{name:Sg.text}},superTypes:[Ba.$type,Mf.$type,Wa.$type,Bf.$type]},EntityProperty:{name:Df.$type,properties:{key:{name:Df.key},value:{name:Df.value,optional:!0},values:{name:Df.values,defaultValue:[],optional:!0}},superTypes:[]},FootnoteDeclaration:{name:jo.$type,properties:{description:{name:jo.description,optional:!0},name:{name:jo.name,optional:!0},properties:{name:jo.properties,defaultValue:[],optional:!0},title:{name:jo.title,optional:!0}},superTypes:[en.$type]},GroupBlock:{name:Yo.$type,properties:{content:{name:Yo.content,defaultValue:[]},name:{name:Yo.name,optional:!0},properties:{name:Yo.properties,defaultValue:[],optional:!0},title:{name:Yo.title,optional:!0}},superTypes:[Ba.$type,Mf.$type,Wa.$type]},GroupContent:{name:Ba.$type,properties:{},superTypes:[]},IncludeDeclaration:{name:_g.$type,properties:{options:{name:_g.options,defaultValue:[],optional:!0},path:{name:_g.path}},superTypes:[]},IncludeOption:{name:Ag.$type,properties:{key:{name:Ag.key},value:{name:Ag.value}},superTypes:[]},ItemDeclaration:{name:Vo.$type,properties:{description:{name:Vo.description,optional:!0},name:{name:Vo.name,optional:!0},properties:{name:Vo.properties,defaultValue:[],optional:!0},title:{name:Vo.title,optional:!0}},superTypes:[Ba.$type,Mf.$type,Wa.$type]},LabelDeclaration:{name:Ko.$type,properties:{description:{name:Ko.description,optional:!0},name:{name:Ko.name,optional:!0},properties:{name:Ko.properties,defaultValue:[],optional:!0},title:{name:Ko.title,optional:!0}},superTypes:[en.$type]},MilestoneDeclaration:{name:qo.$type,properties:{description:{name:qo.description,optional:!0},name:{name:qo.name,optional:!0},properties:{name:qo.properties,defaultValue:[],optional:!0},title:{name:qo.title,optional:!0}},superTypes:[en.$type]},NonWorkingDeclaration:{name:Xa.$type,properties:{name:{name:Xa.name,optional:!0},properties:{name:Xa.properties,defaultValue:[],optional:!0},title:{name:Xa.title,optional:!0}},superTypes:[Dn.$type]},NowlineDirective:{name:kg.$type,properties:{properties:{name:kg.properties,defaultValue:[],optional:!0},version:{name:kg.version}},superTypes:[]},NowlineFile:{name:Sr.$type,properties:{configEntries:{name:Sr.configEntries,defaultValue:[],optional:!0},directive:{name:Sr.directive,optional:!0},hasConfig:{name:Sr.hasConfig,defaultValue:!1,optional:!0},includes:{name:Sr.includes,defaultValue:[],optional:!0},roadmapDecl:{name:Sr.roadmapDecl,optional:!0},roadmapEntries:{name:Sr.roadmapEntries,defaultValue:[],optional:!0}},superTypes:[]},ParallelBlock:{name:Zo.$type,properties:{content:{name:Zo.content,defaultValue:[]},name:{name:Zo.name,optional:!0},properties:{name:Zo.properties,defaultValue:[],optional:!0},title:{name:Zo.title,optional:!0}},superTypes:[Ba.$type,Wa.$type]},ParallelContent:{name:Mf.$type,properties:{},superTypes:[]},PersonDeclaration:{name:Jo.$type,properties:{description:{name:Jo.description,optional:!0},name:{name:Jo.name,optional:!0},properties:{name:Jo.properties,defaultValue:[],optional:!0},title:{name:Jo.title,optional:!0}},superTypes:[en.$type]},PersonMemberRef:{name:TA.$type,properties:{ref:{name:TA.ref}},superTypes:[Bf.$type]},RoadmapDeclaration:{name:Ff.$type,properties:{name:{name:Ff.name,optional:!0},properties:{name:Ff.properties,defaultValue:[],optional:!0},title:{name:Ff.title,optional:!0}},superTypes:[]},RoadmapEntry:{name:en.$type,properties:{},superTypes:[]},ScaleBlock:{name:bg.$type,properties:{properties:{name:bg.properties,defaultValue:[],optional:!0}},superTypes:[Dn.$type]},SizeDeclaration:{name:Qo.$type,properties:{description:{name:Qo.description,optional:!0},name:{name:Qo.name,optional:!0},properties:{name:Qo.properties,defaultValue:[],optional:!0},title:{name:Qo.title,optional:!0}},superTypes:[en.$type]},StatusDeclaration:{name:es.$type,properties:{description:{name:es.description,optional:!0},name:{name:es.name,optional:!0},properties:{name:es.properties,defaultValue:[],optional:!0},title:{name:es.title,optional:!0}},superTypes:[en.$type]},StyleDeclaration:{name:Ua.$type,properties:{name:{name:Ua.name,optional:!0},properties:{name:Ua.properties,defaultValue:[],optional:!0},title:{name:Ua.title,optional:!0}},superTypes:[Dn.$type]},StyleProperty:{name:Ig.$type,properties:{key:{name:Ig.key},value:{name:Ig.value}},superTypes:[]},SwimlaneContent:{name:Wa.$type,properties:{},superTypes:[]},SwimlaneDeclaration:{name:ts.$type,properties:{content:{name:ts.content,defaultValue:[],optional:!0},name:{name:ts.name,optional:!0},properties:{name:ts.properties,defaultValue:[],optional:!0},title:{name:ts.title,optional:!0}},superTypes:[en.$type]},SymbolDeclaration:{name:ns.$type,properties:{description:{name:ns.description,optional:!0},name:{name:ns.name,optional:!0},properties:{name:ns.properties,defaultValue:[],optional:!0},title:{name:ns.title,optional:!0}},superTypes:[Dn.$type]},TeamContent:{name:Bf.$type,properties:{},superTypes:[]},TeamDeclaration:{name:rs.$type,properties:{content:{name:rs.content,defaultValue:[],optional:!0},name:{name:rs.name,optional:!0},properties:{name:rs.properties,defaultValue:[],optional:!0},title:{name:rs.title,optional:!0}},superTypes:[en.$type,Bf.$type]},WaveDeclaration:{name:is.$type,properties:{description:{name:is.description,optional:!0},name:{name:is.name,optional:!0},properties:{name:is.properties,defaultValue:[],optional:!0},title:{name:is.title,optional:!0}},superTypes:[en.$type]},WorkingDeclaration:{name:Ga.$type,properties:{name:{name:Ga.name,optional:!0},properties:{name:Ga.properties,defaultValue:[],optional:!0},title:{name:Ga.title,optional:!0}},superTypes:[Dn.$type]}})}},We=new Ha;function vt(e){let t=[];for(let n of e.content)ja(n)||t.push(n);return t}function*kA(e){for(let t of e)yield*Lg(t)}function*Lg(e){for(let t of vt(e))yield t,($e(t)||et(t))&&(yield*Lg(t))}function*IA(e){for(let t of e.content)tn(t)&&(yield t,yield*IA(t))}function*Pg(e){Ke(e)||$e(e)||et(e)?yield*Lg(e):tn(e)&&(yield*IA(e))}function*Mn(e,t={}){t.config&&(yield*e.configEntries),t.roadmap&&e.roadmapDecl&&(yield e.roadmapDecl);for(let n of e.roadmapEntries)yield n,yield*Pg(n)}function Xf(e,t){AA(e,t);for(let n of Pg(e))AA(n,t)}function AA(e,t){let n=e.properties;if(Array.isArray(n))for(let r of n)t(r,e)}function Uf(e,t){t(e.name,e);for(let n of Pg(e))t(n.name,n)}function RA(e){return e.name}function SA(e){let t=new Set;for(let n of Mn(e,{roadmap:!0})){let r=RA(n);r&&t.add(r)}return t}function bA(e){let t=new Map;for(let n of Mn(e,{roadmap:!0})){let r=RA(n);r&&!t.has(r)&&t.set(r,n)}return t}function Q(e){return e.key.endsWith(":")?e.key.slice(0,-1):e.key}function _t(e,t){return e.find(n=>Q(n)===t)}function ie(e,t){return _t(e,t)?.value}function Be(e,t){let n=_t(e,t);return n?n.value!==void 0?[n.value]:[...n.values]:[]}var ot=/^\d{4}-\d{2}-\d{2}$/;function _e(e){if(!e||!ot.test(e))return null;let[t,n,r]=e.split("-").map(s=>Number.parseInt(s,10)),i=new Date(0);return i.setUTCFullYear(t,n-1,r),i.getUTCFullYear()===t&&i.getUTCMonth()===n-1&&i.getUTCDate()===r?i:null}function He(e){return _e(e)!==null}var LA={sun:0,mon:1,tue:2,wed:3,thu:4,fri:5,sat:6};function Cg(e){return Object.hasOwn(LA,e)}var $g=new Set(["date","start","end","every"]);function Za(e){let t=new Map;for(let l of e.properties){let c=Q(l);$g.has(c)&&!t.has(c)&&t.set(c,l)}let n=JM(t),r={own:t,shape:n,wellFormed:!1},i=t.get("date");if(i){let l=Og(i);l.every(He)&&(r.dates=l)}let o=NA(t.get("start"));o!==void 0&&(r.start=o);let s=NA(t.get("end"));s!==void 0&&(r.end=s);let a=t.get("every");if(a){let l=Og(a);l.every(Cg)&&(r.weekdays=l.map(c=>LA[c]))}return r.wellFormed=n!=="malformed"&&(!i||r.dates!==void 0&&r.dates.length>0)&&(!t.has("start")||r.start!==void 0)&&(!t.has("end")||r.end!==void 0)&&!(r.start!==void 0&&r.end!==void 0&&r.end<r.start)&&(!a||r.weekdays!==void 0&&r.weekdays.length>0),r}function Gf(e){return e.some(t=>t.$type==="NonWorkingDeclaration"&&t.name==="weekend")}function JM(e){let t=e.has("start"),n=e.has("end");return e.has("date")?e.has("every")||t||n?"malformed":"dated":e.has("every")?t&&n?"bounded-recurrence":t||n?"half-bounded-recurrence":"open-recurrence":t&&n?"range":"malformed"}function Og(e){return e.value!==void 0?[e.value]:[...e.values]}function NA(e){if(!e)return;let t=Og(e);return t.length===1&&He(t[0])?t[0]:void 0}function Hf(e,t,n){let r=[],i=n.defaults.get(e);if(i){let l=Dg("default-style",i.properties,n);l&&r.push(l),r.push({level:"default",props:i.properties})}let o=_t(t,"labels"),s=o?o.value?[o.value]:o.values:[];for(let l of[...s].reverse()){let c=n.labels.get(l);if(!c){r.push({level:"label",id:l,label:void 0});continue}let u=Dg("label-style",c.properties,n);u&&r.push(u)}let a=Dg("entity-style",t,n);return a&&r.push(a),r.push({level:"inline",props:t}),r}function Dg(e,t,n){let r=_t(t,"style")?.value;if(r)return{level:e,id:r,decl:n.styles.get(r)}}var zf=["planned","in-progress","active","done","completed","at-risk","blocked"],Ei=["none","multiplier","person","people","points","time"],Ja=[...Ei,"shield","warning","lock","calendar"],PA=["hide","show"],OA={border:["solid","dashed","dotted"],shadow:["none","subtle","soft","hard"],font:["sans","serif","mono"],weight:["thin","light","normal","bold"],italic:["true","false"],"text-size":["none","xs","sm","md","lg","xl"],padding:["none","xs","sm","md","lg","xl"],spacing:["none","xs","sm","md","lg","xl"],"header-height":["none","xs","sm","md","lg","xl"],"corner-radius":["none","xs","sm","md","lg","xl","full"],bracket:["none","solid","dashed"],"header-position":["beside","above"],"timeline-position":["top","bottom","both"],"minor-grid":["true","false"]},CA=["red","blue","yellow","green","orange","purple","violet","gray","grey","navy","white","none"],$A=["business","full","custom"],DA=["merge","ignore","isolate"],MA=["bg","fg","text","border","icon","shadow","font","weight","italic","text-size","padding","spacing","header-height","corner-radius","bracket","header-position","capacity-icon","timeline-position","minor-grid","non-working"],FA=["header-height","header-position","timeline-position","minor-grid","non-working"],Qa="none",BA=["days-per-week","days-per-month","days-per-quarter","days-per-year"],WA=["name","label-every","label"],XA=["item","label","swimlane","roadmap","milestone","footnote","anchor","parallel","group"],UA=["labels","link","style","description"],GA={RoadmapDeclaration:["author","start","length","scale","calendar","logo","logo-size"],AnchorDeclaration:["date"],SwimlaneDeclaration:["owner","capacity","utilization-warn-at","utilization-over-at","status","after","before"],ItemDeclaration:["size","duration","status","owner","after","before","remaining","capacity"],ParallelBlock:["owner","after","before","status"],GroupBlock:["owner","after","before","status"],MilestoneDeclaration:["date","after"],FootnoteDeclaration:["on"],PersonDeclaration:[],TeamDeclaration:[],LabelDeclaration:[],SizeDeclaration:["effort"],StatusDeclaration:[],WaveDeclaration:["after"]},HA=["locale"];function se(e,t){return e.length*t*.58}function zA(e,t,n){if(se(e,n)<=t)return e;let r=Array.from(e.trimStart());for(let i=r.length-1;i>=1;i--){let s=`${r.slice(0,i).join("").trimEnd()}\u2026`;if(se(s,n)<=t)return s}return`${r[0]??""}\u2026`}function wi(e,t,n,r=t){if(!e)return[];let i=e.split(/\s+/).filter(a=>a.length>0);if(i.length===0)return[];let o=[],s="";for(let a of i){let l=s?`${s} ${a}`:a,c=o.length===0?r:t;s&&se(l,n)>c?(o.push(s),s=a):s=l}return s&&o.push(s),o}var QM=new Set(Ei),eF=/^\d+$/,tF=/^\d+\.\d+$/,nF=/^\d+(?:\.\d+)?%$/;function Nr(e){if(!e)return null;if(eF.test(e)){let t=parseInt(e,10);return t>0?t:null}if(tF.test(e)){let t=parseFloat(e);return Number.isFinite(t)&&t>0?t:null}if(nF.test(e)){let t=parseFloat(e.slice(0,-1))/100;return Number.isFinite(t)&&t>0?t:null}return null}function el(e){if(Number.isInteger(e))return String(e);let t=e.toFixed(6);return t=t.replace(/0+$/,""),t=t.replace(/\.$/,""),t}function rF(e){for(let t of e.properties)if(Q(t)==="unicode"&&t.value)return t.value}function tl(e,t){if(e==="none")return null;if(QM.has(e))return{kind:"builtin",name:e};let n=t.get(e);return n?{kind:"literal",text:rF(n)??e}:{kind:"literal",text:e}}function nl(e,t,n){if(!t)return e.length*n*.58;if(t.kind==="builtin"&&t.name==="multiplier")return(e.length+1)*n*.58;let r=1,i=t.kind==="builtin"?jA:.1;return e.length*n*.58+(i+r)*n}var as=.6,jA=.25;function rl(e,t,n,r){if(t?.kind!=="builtin"||t.name==="multiplier")return;let i=n*jA;return r?[se(r,n),n*as,se(e,n),i]:[se(e,n),i]}function Ti(e){return e.toISOString().slice(0,10)}var ls={mode:"business",daysPerWeek:5,daysPerMonth:22,daysPerQuarter:65,daysPerYear:260},iF={mode:"full",daysPerWeek:7,daysPerMonth:30,daysPerQuarter:91,daysPerYear:365};function YA(e,t){let r=_t(e.roadmapDecl?.properties??[],"calendar")?.value??"business";if(r==="business")return{...ls};if(r==="full")return{...iF};if(t){let i=(o,s)=>{let a=_t(t.properties,o),l=a?parseInt(a.value,10):NaN;return Number.isFinite(l)&&l>0?l:s};return{mode:"custom",daysPerWeek:i("days-per-week",ls.daysPerWeek),daysPerMonth:i("days-per-month",ls.daysPerMonth),daysPerQuarter:i("days-per-quarter",ls.daysPerQuarter),daysPerYear:i("days-per-year",ls.daysPerYear)}}return{...ls}}var jf=/^(\d+(?:\.\d+)?)([dwmqy])$/;function cs(e,t){let n=jf.exec(e);if(!n)return 0;let r=parseFloat(n[1]);switch(n[2]){case"d":return r;case"w":return r*t.daysPerWeek;case"m":return r*t.daysPerMonth;case"q":return r*t.daysPerQuarter;case"y":return r*t.daysPerYear;default:return 0}}function VA(e,t,n){return e?jf.test(e)?cs(e,n):t.get(e)?.effortDays??0:0}function KA(e,t,n){let r=ie(e,"duration");if(r&&jf.test(r))return cs(r,n);let i=ie(e,"size"),o=i?t.get(i):void 0;if(!o)return 0;let s=Nr(ie(e,"capacity"))??1;return o.effortDays/s}function qA(e,t,n){let r=ie(e,"size"),i=r?t.get(r):void 0;if(i)return i.effortDays;let o=ie(e,"duration");if(o&&jf.test(o)){let s=Nr(ie(e,"capacity"))??1;return cs(o,n)*s}return 0}function us(e,t){let n=new Map;for(let[r,i]of e){let s=_t(i.properties,"effort")?.value;if(!s)continue;let a=cs(s,t);a<=0||n.set(r,{name:r,title:i.title||void 0,effortDays:a,effortLiteral:s})}return n}function At(e,t){return Math.round((t.getTime()-e.getTime())/864e5)}function Xe(e,t){let n=new Date(e.getTime());return n.setUTCDate(n.getUTCDate()+t),n}function Bg(e){return e!=="business"?[]:[{working:!1,every:new Set([0,6]),id:"weekend",title:"Weekend"}]}function Wg(e,t=Bg(e.mode)){return aF(n=>tk(n,e),t)}function Yf(e,t,n,r){if(!e.hasNonWorkingDays)return Xe(t,r);let i=Math.floor(r);return i<=Math.floor(n)?e.dateAtWorkingIndex(t,n):Xe(e.dateAtWorkingIndex(t,i-1),1)}function ek(e,t){return tk(e,t)}function tk(e,t){switch(e){case"days":return 1;case"weeks":return t.daysPerWeek;case"months":return t.daysPerMonth;case"quarters":return t.daysPerQuarter;case"years":return t.daysPerYear}}function nk(e){switch(e){case"days":return 1;case"weeks":return 7;case"months":return 30;case"quarters":return 91;case"years":return 365}}var rk=864e5,ze=7,oF=4,sF=1e8,ik=14;function aF(e,t){let n=[];for(let g of t){let w=cF(g);w&&n.push(w)}let r=n.map(g=>g.copy),i=dF(n),o=mF(i,hF(n)),s=ak(o,sk(n)),a=yF(n,o),l=(g,w)=>xF(a,g,w),c=s[0],u=s[s.length-1];for(let g of[c,u])if(g.kind!=="mask"||g.workingPerWeek===0)throw new RangeError("working calendar: an unbounded stretch has no working weekday");let f=s.some(g=>g.kind==="non-working"||g.kind==="mask"&&g.workingPerWeek<ze),d=pF(i);if(!f)return lF(e,r,d,l);let p=new Fg(s,lk(n,!1)),m=(g,w)=>p.dateAt(g,w);return{rules:r,hasNonWorkingDays:!0,weekStart:EF(i),workingWeekdays:d,daysPerUnit:e,addUnits:(g,w,x)=>m(g,w*e(x)),isWorkingDay:g=>p.isWorkingDay(g),workingIndexOf:(g,w)=>p.indexOf(g,w),dateAtWorkingIndex:m,nonWorkingRuns:(g,w)=>p.runs(g,w),workingExceptionRuns:l}}function lF(e,t,n,r){return{rules:t,hasNonWorkingDays:!1,weekStart:void 0,workingWeekdays:n,daysPerUnit:e,addUnits:(i,o,s)=>Xe(i,o*e(s)),isWorkingDay:()=>!0,workingIndexOf:(i,o)=>At(i,o),dateAtWorkingIndex:(i,o)=>Xe(i,o),nonWorkingRuns:()=>[],workingExceptionRuns:r}}function cF(e){let t=e.every===void 0?void 0:fF(e.every),n=e.start!==void 0||e.end!==void 0;if(t===0||e.dates!==void 0&&(t!==void 0||n)||t===void 0&&e.dates===void 0&&(e.start===void 0||e.end===void 0))return;let i=e.start===void 0?-1/0:Lt(e.start),o=e.end===void 0?1/0:Lt(e.end);if(Number.isNaN(i)||Number.isNaN(o)||o<i)return;let s=e.dates?.map(Lt);if(s?.some(Number.isNaN))return;let a=s?s.map(l=>({start:l,end:l+1})):[{start:i,end:o+1}];return{copy:uF(e),working:e.working,mask:t,spans:a}}function uF(e){let t={working:e.working};return e.every!==void 0&&(t.every=new Set(e.every)),e.dates!==void 0&&(t.dates=e.dates.map(n=>new Date(n.getTime()))),e.start!==void 0&&(t.start=new Date(e.start.getTime())),e.end!==void 0&&(t.end=new Date(e.end.getTime())),e.id!==void 0&&(t.id=e.id),e.title!==void 0&&(t.title=e.title),t}function fF(e){let t=0;for(let n of e){if(!Number.isInteger(n)||n<0||n>=ze)throw new RangeError(`working calendar: weekday ${n} is outside 0..6`);t|=1<<n}return t}function dF(e){let t=0,n=0;for(let r of e)r.mask===void 0||!ok(r.spans[0])||(r.working?n|=r.mask:t|=r.mask);return t&~n}function pF(e){let t=new Set;for(let n=0;n<ze;n++)(e&1<<n)===0&&t.add(n);return t}function ok(e){return e.start===-1/0&&e.end===1/0}function hF(e){let t=[];for(let n of e)n.mask===void 0||ok(n.spans[0])||t.push({...n.spans[0],working:n.working,mask:n.mask});return t}function mF(e,t){let n=new Array(ze).fill(0),r=new Array(ze).fill(0),i=(u,f)=>{let d=u.working?r:n;for(let p=0;p<ze;p++)u.mask&1<<p&&(d[p]+=f)},o=()=>{let u=e;for(let f=0;f<ze;f++)n[f]>0&&(u|=1<<f),r[f]>0&&(u&=~(1<<f));return u},s=[];for(let u of t)u.start===-1/0?i(u,1):s.push({at:u.start,span:u,delta:1}),u.end!==1/0&&s.push({at:u.end,span:u,delta:-1});s.sort((u,f)=>u.at-f.at);let a=[],l=-1/0,c=0;for(;;){let u=c<s.length?s[c].at:1/0;if(l<u&&gF(a,{start:l,end:u,mask:o()}),u===1/0)return a;for(;c<s.length&&s[c].at===u;)i(s[c].span,s[c].delta),c++;l=u}}function gF(e,t){let n=e[e.length-1];n&&n.mask===t.mask?n.end=t.end:e.push(t)}function sk(e){let t=[];for(let s of e)if(s.mask===void 0)for(let a of s.spans)t.push({at:a.start,working:s.working,delta:1}),t.push({at:a.end,working:s.working,delta:-1});t.sort((s,a)=>s.at-a.at);let n=[],r=0,i=0,o=0;for(;o<t.length;){let s=t[o].at;for(;o<t.length&&t[o].at===s;)t[o].working?r+=t[o].delta:i+=t[o].delta,o++;if(o===t.length||r===0&&i===0)continue;let a=r>0?"working":"non-working",l=t[o].at,c=n[n.length-1];c&&c.kind===a&&c.end===s?c.end=l:n.push({start:s,end:l,kind:a})}return n}function ak(e,t){let n=[],r=0;for(let i of e){for(;r<t.length&&t[r].end<=i.start;)r++;let o=i.start;for(let s=r;s<t.length&&t[s].start<i.end;s++){let a=Math.max(t[s].start,i.start),l=Math.min(t[s].end,i.end);o<a&&n.push(ZA(o,a,i.mask)),n.push({start:a,end:l,kind:t[s].kind}),o=l}o<i.end&&n.push(ZA(o,i.end,i.mask))}return n}function ZA(e,t,n){let r=[];for(let o=0;o<ze;o++)r.push((n&1<<o)!==0);let i=r.filter(o=>!o).length;return{start:e,end:t,kind:"mask",off:r,workingPerWeek:i}}function lk(e,t){let n=[];for(let[r,i]of e.entries()){let o=i.copy.title;if(i.mask!==void 0||i.working!==t||o===void 0||i.spans.length===0)continue;let s=i.spans.reduce((a,l)=>Math.min(a,l.start),1/0);n.push({title:o,spans:i.spans,first:s,order:r})}return n.sort((r,i)=>r.first-i.first||r.order-i.order),n.map(({title:r,spans:i})=>({title:r,spans:i}))}function yF(e,t){let n=lk(e,!0);if(n.length===0)return[];let r=e.filter(l=>!l.working),i=ak(t,sk(r)),o=new Map;n.forEach((l,c)=>{for(let u of l.spans)for(let f=u.start;f<u.end;f++){if(!fk(i,f))continue;let d=o.get(f)??new Set;d.add(c),o.set(f,d)}});let s=[...o.keys()].sort((l,c)=>l-c),a=[];for(let l=0;l<s.length;){let c=l,u=new Set;for(;c<s.length&&s[c]-s[l]===c-l;){for(let f of o.get(s[c])??[])u.add(f);c++}a.push({from:il(s[l]),through:il(s[c-1]),titles:[...u].sort((f,d)=>f-d).map(f=>n[f].title)}),l=c}return a}function xF(e,t,n){let r=Lt(t),i=Lt(n);return Number.isNaN(r)||Number.isNaN(i)?[]:e.filter(o=>Lt(o.from)<i&&Lt(o.through)>=r).map(o=>({from:new Date(o.from.getTime()),through:new Date(o.through.getTime()),titles:[...o.titles]}))}function EF(e){let t=i=>(e&1<<i)!==0,n,r=0;for(let i=0;i<ze;i++){if(t(i)||!t((i+6)%ze))continue;let o=0;for(;o<ze&&t((i+6-o)%ze);)o++;o>r&&(n=i,r=o)}return n}function Lt(e){return Math.round(e.getTime()/rk)}function il(e){return new Date(e*rk)}function ol(e){return((e+oF)%ze+ze)%ze}function ck(){return new Error("working calendar: remainder scan exceeded its cap (internal error)")}function uk(e,t){let n=0,r=e.length-1;for(;n<r;){let i=n+r>>1;t>=e[i].end?n=i+1:r=i}return n}function fk(e,t){let n=e[uk(e,t)];return n.kind==="mask"?n.off[ol(t)]:n.kind==="non-working"}function Mg(e,t,n){if(e.kind!=="mask")return e.kind==="working"?n-t:0;let r=Math.floor((n-t)/ze),i=r*e.workingPerWeek;for(let o=t+r*ze;o<n;o++)e.off[ol(o)]||i++;return i}function JA(e,t,n){if(e.kind!=="mask")return t+n;let r=t+Math.floor(n/e.workingPerWeek)*ze,i=n%e.workingPerWeek;for(let o=0;o<ik;o++,r++)if(!e.off[ol(r)]){if(i===0)return r;i--}throw ck()}function QA(e,t,n){if(e.kind!=="mask")return t-n;let r=Math.floor((n-1)/e.workingPerWeek),i=t-r*ze,o=n-r*e.workingPerWeek;for(let s=0;s<ik;s++)if(i--,!e.off[ol(i)]&&(o--,o===0))return i;throw ck()}var Fg=class{constructor(t,n){M(this,"pieces");M(this,"titled");this.pieces=t,this.titled=n}isWorkingDay(t){let n=Lt(t);return Number.isNaN(n)||!this.isNonWorking(n)}indexOf(t,n){let r=Lt(t),i=Lt(n);if(Number.isNaN(r)||Number.isNaN(i))return Number.NaN;let o=this.nthFrom(i,0);return o>=r?this.count(r,o):-this.count(o,r)}dateAt(t,n){let r=Lt(t),i=Math.floor(n);return Number.isNaN(r)||!Number.isFinite(i)||Math.abs(i)>sF?new Date(Number.NaN):il(i>=0?this.nthFrom(r,i):this.nthBefore(r,-i))}runs(t,n){let r=Lt(t),i=Lt(n);if(Number.isNaN(r)||Number.isNaN(i)||r>=i)return[];let o=[],s=this.isNonWorking(r)?this.nthBefore(r,1)+1:this.nextNonWorking(r,i);for(;s<i;){let a=this.nthFrom(s,0)-1;o.push({from:il(s),through:il(a),titles:this.titlesIn(s,a)}),s=this.nextNonWorking(a+1,i)}return o}pieceAt(t){return uk(this.pieces,t)}isNonWorking(t){return fk(this.pieces,t)}count(t,n){let r=0;for(let i=this.pieceAt(t);i<this.pieces.length&&this.pieces[i].start<n;i++){let o=this.pieces[i];r+=Mg(o,Math.max(t,o.start),Math.min(n,o.end))}return r}nthFrom(t,n){let r=t,i=n;for(let o=this.pieceAt(t);o<this.pieces.length;o++){let s=this.pieces[o];if(s.end===1/0)return JA(s,r,i);let a=Mg(s,r,s.end);if(i<a)return JA(s,r,i);i-=a,r=s.end}throw new Error("working calendar: forward walk left the last piece (internal error)")}nthBefore(t,n){let r=t,i=n;for(let o=this.pieceAt(t-1);o>=0;o--){let s=this.pieces[o];if(s.start===-1/0)return QA(s,r,i);let a=Mg(s,s.start,r);if(i<=a)return QA(s,r,i);i-=a,r=s.start}throw new Error("working calendar: backward walk left the first piece (internal error)")}nextNonWorking(t,n){for(let r=this.pieceAt(t);r<this.pieces.length&&this.pieces[r].start<n;r++){let i=this.pieces[r],o=Math.max(t,i.start);if(i.kind==="non-working")return o;if(!(i.kind!=="mask"||i.workingPerWeek===ze)){for(let s=0;s<ze&&o+s<i.end;s++)if(i.off[ol(o+s)])return o+s}}return n}titlesIn(t,n){let r=[];for(let i of this.titled)i.spans.some(o=>o.start<=n&&o.end>t)&&r.push(i.title);return r}};function Vf(e,t){let n=YA(e,t.config.calendar),r=wF(n,t.config.calendarDeclarations);try{return{config:n,working:Wg(n,r)}}catch(i){if(!(i instanceof RangeError))throw i;return{config:n,working:Wg(n)}}}function wF(e,t){let n=Gf(t)?[]:Bg(e.mode);for(let r of t){let i=TF(r);i&&n.push(i)}return n.sort(vF)}function TF(e){let t=Za(e);if(!t.wellFormed)return;let n={working:e.$type==="WorkingDeclaration"};return e.name&&(n.id=e.name),e.title!==void 0&&(n.title=e.title),t.dates&&(n.dates=t.dates.map(Xg)),t.start&&(n.start=Xg(t.start)),t.end&&(n.end=Xg(t.end)),t.weekdays&&(n.every=new Set(t.weekdays)),n}function Xg(e){return _e(e)}function vF(e,t){return fs(dk(e),dk(t))||fs(e.title,t.title)||fs(e.id,t.id)||Number(e.working)-Number(t.working)||fs(pk(e),pk(t))||fs(e.start?.getTime(),t.start?.getTime())||fs(e.end?.getTime(),t.end?.getTime())||_F(e.dates??[],t.dates??[])}function dk(e){return e.dates?Math.min(...e.dates.map(t=>t.getTime())):e.start?.getTime()}function pk(e){if(!e.every)return;let t=0;for(let n of e.every)t|=1<<n;return t}function fs(e,t){return e===t?0:e===void 0?-1:t===void 0?1:e<t?-1:1}function _F(e,t){let n=e.map(i=>i.getTime()).sort((i,o)=>i-o),r=t.map(i=>i.getTime()).sort((i,o)=>i-o);for(let i=0;i<Math.min(n.length,r.length);i++)if(n[i]!==r[i])return n[i]-r[i];return n.length-r.length}function hk(e){let{naturalPixelsPerDay:t,dayCount:n,chromeWidth:r,maxWidth:i}=e;if(i===void 0||r+n*t<=i)return t;let o=(i-r)/n,s=Math.min(t,1);return Math.max(s,o)}var Fn=12,Bn=6,Kf=20,vi=38,Pr=13,sl=11,al=16,Ug=2;function qf(e){return vi+(Math.max(1,e)-1)*al}function Zf(e,t){return t?qf(e):Kf+(Math.max(1,e)-1)*al}function Gg(e,t){return Math.max(0,Zf(e,t)-vi)}var _i=12,Hg=12,Lr=5,ds=22,zg=14,ll=10,Ut=8,Or=14,Ai=6,mk=4;function ps(e,t){let n=Fn;if(e){let r=Ai+Or+mk-Fn;n=Fn+Math.max(0,r)}if(t&&!Vg(t.barWidth)){let r=Kg(0,e)+pt;n=Math.max(n,r+Xt)}return n}var Xt=4,Cr=2*_i,jg=Ai+Or+Xt+_i+Lr,hs=ds+1;function Jf(e){let t=e.barRightX+Bn,n=!1,r=null;e.iconSpills&&(r=t,t=r+Or,n=!0);let i=null;e.captionWidth!==null&&(n&&(t+=Xt),i=t,t+=e.captionWidth,n=!0);let o=null;e.footnoteCount>0&&(n&&(t+=Xt),o=t,t+=e.footnoteCount*Ut,n=!0);let s=null;return e.dotSpills&&(n&&(t+=Xt),s=t+Lr,t=s+Lr),{iconSpillX:r,captionX:i,footnoteSpillStartX:o,dotSpillCx:s,rightX:t}}var pt=12,cl=6,Yg=6,gk=5,nn=Xt,yk=cl+pt+nn+pt+Yg;function Vg(e){return e<yk}function Kg(e,t){return t?e+Ai+Or+nn:e+cl}function qg(e,t){let n;return t>0?n=e-ds-(t-1)*Ut-nn:n=e-_i-Lr-nn,n-pt}function ul(e){let{barWidth:t,footnoteLabels:n,hasBeforeGlyph:r}=e,i=Number.POSITIVE_INFINITY;t>=Cr&&(i=Math.min(i,-(_i+Lr)));let o=n.length;if(o>0&&t>=hs)for(let a=0;a<o;a+=1){let c=-ds-(o-1-a)*Ut-se(n[a],ll);i=Math.min(i,c)}return r&&t>=yk&&(i=Math.min(i,qg(0,o))),Math.max(Fn,-i+Xt)}var $r=13,Wn=3,Xn=4,AF=4,Qf=$r+AF,kF=.25;function xk(e,t){if(e.length===0)return{rows:[[]],expanded:!1};let n=[[]],r=0,i=t,o=!1;for(let s of e){let a=n[n.length-1],l=(a.length===0?0:Xn)+s.width,c=r+l;if(c<=i){a.push(s),r=c;continue}if(a.length===0){a.push(s),r=s.width;continue}let u=c-i,f=s.width*kF;if(!o&&u<=f){a.push(s),r=c,i=c,o=!0;continue}n.push([s]),r=s.width,i=t}return{rows:n,expanded:o}}var Ek={none:0,xs:2,sm:4,md:8,lg:16,xl:24},wk={none:0,xs:4,sm:8,md:12,lg:20,xl:32},ki={none:0,xs:10,sm:12,md:14,lg:18,xl:24},Ii={none:0,xs:2,sm:4,md:8,lg:12,xl:20,full:9999},Zg={xs:18,sm:24,md:36,lg:48,xl:72},Jg=1,rn=4,fl={none:0,xs:16,sm:20,md:24,lg:32,xl:40},Tk=fl.md;function dl(e){return Math.round(e/2+3)}var IF=dl(Tk),Ri=10,pl=22,hl=15,ml="6 4",Qg=36,Gt=16,ey=Gt/2,gl=10,ty=Gt-4,ms=6,ed=2.25,vk=1,kt=12,_k=32,Ak=120,ny=240,ry=72,td=28,Ht=16,iy=22,gs=18,nd="Powered by",oy="https://nowline.io",yl=.22,Dr=40,rd=32,kk=.58,RF=nd.length*rd*kk,SF=10,xl=RF+SF,sy=xl+74,ay=5,id=xl+81,bF=3*Dr*kk,NF=id+bF,LF=12+Dr,ly=NF*yl,Ik=LF*yl,od=4;var cy={sans:'system-ui, -apple-system, "Segoe UI", Roboto, sans-serif',serif:'Georgia, "Times New Roman", serif',mono:"ui-monospace, SFMono-Regular, Menlo, Consolas, monospace"},Rk={days:7,weeks:4,months:3,quarters:4,years:5},uy=.1,fy=20,dy=2,py="2 2",hy=.13,my=6,gy=2,yy=.12,El=.25,Un=10,sd=14,ad=8,Gn=6,ys=2,ld=3,Si=.5,cd=18,ud=10,xy=6,Ey=11;var Sk=18,wl=13,fd=ki.xs,wy=10,bk=6,Nk=6,Ty=.12,vy=.06,_y=2;function dd(e){return e.drawn?{header:e.hasTitle||e.hasPins||e.hasBracket?Sk:0,pad:bk}:{header:0,pad:0}}function xs(e,t){return t?e+pt+nn:e}function Ay(e){return e.length*fd*.58}function Es(e){if(e.kind==="item")return Number.NEGATIVE_INFINITY;let t=Number.NEGATIVE_INFINITY,n=e.inlineDatePins??[];for(let r of n)t=Math.max(t,r.glyphTopLeft.x+r.glyphSize);if(e.title&&e.headerHeight>0){let r=n.some(i=>i.side==="after");t=Math.max(t,xs(e.box.x,r)+Ay(e.title))}return t}function PF(e,t){return e.endX-Math.min(t/2,(e.endX-e.startX)/2)}function OF(e,t){return e.startX+Math.min(t/2,(e.endX-e.startX)/2)}function ws(e){return e<3?{headWidth:3,head:"dot"}:{headWidth:Math.min(7,e),head:"arrow"}}var ky=(e,t,n)=>e>=t-.01&&e<=n+.01;function CF(e,t){return t.rowY===void 0||!ky(t.rowY,e.top,e.bottom)?!1:e.rowY===void 0||ky(e.rowY,t.top,t.bottom)}function $F(e,t,n,r,i){let o=[];for(let l of e){if(l.x>=n+1||l.x+l.width<=t-1)continue;let c=l.y-1,u=l.y+l.height+1;u<=r||c>=i||o.push([Math.max(r,c),Math.min(i,u)])}o.sort((l,c)=>l[0]-c[0]);let s=[],a=r;for(let[l,c]of o)l-a>=2&&s.push([a,l]),a=Math.max(a,c);return i-a>=2&&s.push([a,i]),s}function Lk(e,t,n,r){let i=Math.min(n,r),o=Math.max(n,r),s=0;for(let a of e)Math.abs(a.x-t)>1||a.bottom<=i||a.top>=o||s++;return s}function Pk(e,t,n,r){let i=Math.min(n,r),o=Math.max(n,r),s=0;for(let a of e)a.height<=0||t<=a.x||t>=a.x+a.width||a.y+a.height<=i||a.y>=o||s++;return s}function DF(e,t,n,r){let i=Math.min(e.x,t.x),o=Math.max(e.x,t.x),s=Math.min(e.y,t.y),a=Math.max(e.y,t.y),l=null;for(let f of $F(r.blocks,i,o,s,a)){let d=(f[0]+f[1])/2,p=[Lk(r.edges,e.x,e.y,d)+Lk(r.edges,t.x,d,t.y),Pk(r.blocks,e.x,e.y,d)+Pk(r.blocks,t.x,d,t.y),Math.abs(d-e.y)];(!l||MF(p,l.key))&&(l={gap:f,centre:d,key:p})}if(l)return{gap:l.gap,centre:l.centre};let c=Math.min(4,(a-s)/2),u=e.y+n*c;return{gap:[s,a],centre:u}}function MF(e,t){for(let n=0;n<e.length;n++)if(e[n]!==t[n])return e[n]<t[n];return!1}function FF(e,t){let n=[0];for(let r=1;r*2.5<=t+.01;r++)n.push(-e*r*2.5,e*r*2.5);return n}function BF(e){let t=[],n=new Map,r=[...e].sort((i,o)=>i.centre-o.centre||i.xLo-o.xLo||i.index-o.index);for(let i of r){let[o,s]=i.gap,a=t.find(c=>c.bundle===i.bundle&&c.y>=o-.01&&c.y<=s+.01),l=i.centre;if(a)l=a.y;else{let c=FF(i.dir,(s-o)/2),u=Number.POSITIVE_INFINITY;for(let f of c){let d=i.centre+f,p=t.filter(m=>m.bundle!==i.bundle&&Math.abs(m.y-d)<2.5-.01&&m.xLo<i.xHi+1&&m.xHi>i.xLo-1).length;if(p<u&&(u=p,l=d),p===0)break}}t.push({y:l,xLo:i.xLo,xHi:i.xHi,bundle:i.bundle}),n.set(i.index,l)}return n}function Ok(e,t,n){let r=new Array(e.length).fill(null),i=[];e.forEach((s,a)=>{let{source:l,target:c}=s,u=c.startX-l.endX>.01;if(CF(l,c)&&c.startX>=l.endX-.01){if(!u)return;let y=l.exitY!==void 0&&ky(l.exitY,c.top,c.bottom)?l.exitY:c.rowY??0;r[a]={fromId:s.fromId,toId:s.toId,waypoints:[{x:l.endX,y},{x:c.paintedX,y}],slack:!0,...ws(c.bottom-c.top)};return}let f=PF(l,n),d=OF(c,n),p,m,g;if(c.top>=l.bottom-.01)g=1,p={x:f,y:l.bottom},m={x:d,y:c.top};else if(c.bottom<=l.top+.01)g=-1,p={x:f,y:l.top},m={x:d,y:c.bottom};else{let y=Math.max(l.bottom,c.bottom)+4;r[a]={fromId:s.fromId,toId:s.toId,waypoints:[{x:f,y:l.bottom},{x:f,y},{x:d,y},{x:d,y:c.bottom}],slack:u,...ws(c.paintedWidth)};return}if(Math.abs(f-d)<.01){r[a]={fromId:s.fromId,toId:s.toId,waypoints:[p,m],slack:u,...ws(c.paintedWidth)};return}let{gap:w,centre:x}=DF(p,m,g,t);i.push({index:a,req:s,from:p,to:m,dir:g,gap:w,centre:x,xLo:Math.min(f,d),xHi:Math.max(f,d),bundle:`${Math.round(d*100)}:${g}`})});let o=BF(i);for(let s of i){let a=o.get(s.index)??s.centre,l=s.req.target.startX-s.req.source.endX>.01;r[s.index]={fromId:s.req.fromId,toId:s.req.toId,waypoints:[s.from,{x:s.from.x,y:a},{x:s.to.x,y:a},s.to],slack:l,...ws(s.req.target.paintedWidth)}}return r}var WF=new Set(" ijlI.,:;!'|`"),XF=new Set('frt()[]{}/\\1-_"'),UF=new Set("mwMW@%"),GF=.95;function Ck(e){let t=0;for(let n of e)WF.has(n)?t+=.28:XF.has(n)?t+=.4:UF.has(n)?t+=.9:/[A-Z0-9]/.test(n)?t+=.7:t+=.6;return t}function $k(e){return Ck(e)*12}function Dk(e){return Ck(e)*10*GF}var Tl=10,Iy=3,pd=6,Mk=12,Fk=12,Bk=56,Wk=10;function Ry(e,t,n,r=0,i=0){let o=e+Wk,s=o+Mk,a=$k(t),l=s+a,c=0,u=0,f=0;n&&(c=Tl+Iy+Dk(n),u=l+pd,f=u+Tl+Iy,l=u+c);let d=0;r>0&&(d=l+pd,l=d+r);let p=0;i>0&&(p=l+pd+i,l=p);let m=l-o+Fk,g=Math.max(Bk,m);return{titleTextWidth:a,ownerTextWidth:c,capacityBadgeWidth:r,footnoteIndicatorWidth:i,titleX:s,ownerX:u,ownerTextX:f,badgeX:d,footnoteRightX:p,tabX:o,tabW:g,rightX:o+g}}function hd(e){let t=ie(e.roadmapDecl?.properties??[],"logo");return t||void 0}function zF(e){let t=ie(e.roadmapDecl?.properties??[],"logo-size");return t!==void 0&&t in Zg?t:"md"}function Xk(e,t){let n=e.width/e.height,r=Zg[t],i=r*n;return i>160&&(i=160,r=i/n),{width:i,height:r}}function Uk(e,t){let n=hd(e);if(!(!n||!t)&&t.width>0&&t.height>0&&!(!Number.isFinite(t.width)||!Number.isFinite(t.height)))return{...Xk(t,zF(e)),assetRef:n,intrinsic:t}}function vl(e,t,n){let r=e+24,i=r+10,o=t.length*6,s=Math.max(60,o+10+10),a=r+s+6,l=a+18,c=0,u=0,f=0,d=0,p=l;return n&&(u=l+6,c=n.length*5.5,f=u-3,d=c+6,p=f+d),{labelTextWidth:o,sourceTextWidth:c,tabX:r,tabWidth:s,tabLabelX:i,badgeX:a,badgeSize:18,sourceHaloX:f,sourceHaloWidth:d,sourceTextX:u,chromeRightX:p}}var Gk="lexing-error",Hk="parsing-error";function zk(e){if(!e||typeof e!="object")return!1;let t=e.code;return t===Gk||t===Hk}function bi(e){let t=[];for(let n of e.parseResult.lexerErrors)t.push({origin:"lexer",error:n});for(let n of e.parseResult.parserErrors)t.push({origin:"parser",error:n});for(let n of e.diagnostics??[]){let r=n;zk(r.data)||t.push({origin:"validation",diagnostic:r})}return t}var jF=/did you mean ['"]?([^'"?]+)['"]?\??/i;function jk(e){let t=e.match(jF);return t?t[1].trim():void 0}var YF={"NL.W0700":e=>e.suggested||void 0,"NL.E1101":e=>"suggestion"in e?e.suggestion?.id:void 0};function VF(e,t){let n=YF[e];return n?.(...t)}function md(e,t){let n=Sy(t);return n===void 0?jk(e):VF(n,t.args)}function gd(e){let t=e.toLowerCase();return t.includes("duplicate identifier")?"duplicate-identifier":t.includes("unknown reference")||t.includes("did you mean")?"unknown-reference":t.includes("circular")?"circular-dependency":t.includes("requires")&&t.includes("date:")?"missing-date":t.includes("duration")?"duration":t.includes("include")?"include":t.includes("indent")?"indentation":"validation"}function Sy(e){if(!e||typeof e!="object")return;let t=e;if(typeof t.code=="string"&&Array.isArray(t.args))return t.code}function by(e){let t=Sy(e.data);return t||(typeof e.code=="string"&&e.code!==""?e.code:typeof e.code=="number"?String(e.code):gd(e.message))}var Yk,Vk=()=>Yk??(Yk=wA(`{
|
|
130
130
|
"$type": "Grammar",
|
|
131
131
|
"isDeclared": true,
|
|
132
132
|
"name": "Nowline",
|
|
@@ -2913,9 +2913,9 @@ ${n}`),this.inline?`{${i}}`:i}};function XM(e,t,n){if(e==="linkplain"||e==="link
|
|
|
2913
2913
|
"imports": [],
|
|
2914
2914
|
"interfaces": [],
|
|
2915
2915
|
"types": []
|
|
2916
|
-
}`));var UF={languageId:"nowline",fileExtensions:[".nowline"],caseInsensitive:!1,mode:"development"},Xk={AstReflection:()=>new Ha},Uk={Grammar:()=>Wk(),LanguageMetaData:()=>UF,parser:{}};var Gk={item:"an item",group:"a group",parallel:"a parallel block",swimlane:"a swimlane",anchor:"an anchor",milestone:"a milestone","floating-milestone":"a milestone without a date",wave:"a wave",label:"a label",size:"a size",status:"a status",person:"a person",team:"a team",footnote:"a footnote",roadmap:"the roadmap",style:"a style",symbol:"a symbol"},GF={item:"item",group:"group",parallel:"parallel block",swimlane:"swimlane",anchor:"anchor",milestone:"milestone","floating-milestone":"milestone",wave:"wave",label:"label",size:"size",status:"status",person:"person",team:"team",footnote:"footnote",roadmap:"roadmap",style:"style",symbol:"symbol"},Iy=e=>e.charAt(0).toUpperCase()+e.slice(1);function ws(e){return e.kind==="parallel-block"?`the parallel block on line ${e.line}`:e.kind==="group-block"?`the group on line ${e.line}`:`${e.kind} "${e.name}"`}function Hk(e){return e.name||e.line===void 0?`"${e.name}"`:ws({kind:e.kind==="parallel"?"parallel-block":"group-block",line:e.line})}function Ry(e,t=!0){if(e.name)return`${e.kind} "${e.name}"`;let n=e.kind==="parallel"?"parallel block":e.kind,r=t?"the ":"";return e.line===void 0?`${r}${n}`:`${r}${n} on line ${e.line}`}function zk(e){return e.name?`${Iy(e.kind)} "${e.name}"`:Iy(Ry(e))}function jk(e){return e===null?"has no start floor":`opens no earlier than ${e}`}function Yk(e){return e?e.title===void 0?` Did you mean wave:${e.id}?`:` Did you mean wave:${e.id} ("${e.title}")?`:""}function HF(e){let t=e.slice(0,5).map(r=>`"${r}"`),n=e.length-t.length;return n>0?`${t.join(", ")} and ${n} more`:`${t.slice(0,-1).join(", ")} and ${t[t.length-1]}`}function gd(e){return`[${e.join(", ")}]`}var Vk={"NL.E0001":()=>"Config section must appear before roadmap.","NL.E0002":()=>"Include declarations must appear before the config section.","NL.E0003":()=>"Include declarations must appear before the roadmap section.","NL.E0004":()=>"At least one swimlane is required.","NL.E0005":e=>`Line ${e.line}: mixed tabs and spaces in indentation. Use either tabs or spaces consistently.`,"NL.E0100":e=>`Invalid version format "${e.version}". Expected format: v1, v2, etc.`,"NL.E0101":e=>`This file requires Nowline ${e.version}, but the parser only supports up to ${e.supported}.`,"NL.E0102":e=>`Unknown directive property "${e.key}". Allowed: ${e.allowed}.`,"NL.E0103":e=>`Duplicate directive property "${e.key}".`,"NL.E0104":e=>`Invalid locale "${e.value}". Use a BCP-47 tag like "en-US", "fr", or "fr-CA".`,"NL.E0200":e=>`Invalid include mode "${e.value}". Must be merge, ignore, or isolate.`,"NL.E0201":e=>`Duplicate "${e.key}" option on include.`,"NL.E0202":e=>{switch(e.reason){case"mismatch":return`Included "${e.path}" declares waves ${gd(e.child)}, but this file's waves are ${gd(e.parent)}. Every included roadmap must declare the same waves in the same order: copy this file's wave lines into "${e.path}".`;case"child-none":return`Included "${e.path}" declares no waves, but this file's waves are ${gd(e.parent)}. Copy this file's wave lines into "${e.path}" so its work joins the waves.`;case"parent-none":return`Included "${e.path}" declares waves ${gd(e.child)}, but this file declares none. Declare the same waves here so the barriers apply to the whole roadmap.`;case"floor":return`Wave "${e.id}" in "${e.path}" ${jk(e.childFloor)}, but this file's wave "${e.id}" ${jk(e.parentFloor)}. A wave must have the same start floor in every included roadmap.`}},"NL.E0300":e=>`Duplicate identifier "${e.name}". First declared at ${e.location}.`,"NL.E0301":e=>`${e.type} must have an identifier, a title, or both.`,"NL.E0302":e=>`${e.key}: reference "${e.value}" does not resolve to any declared entity in this file.`,"NL.E0400":e=>`Invalid duration "${e.value}". Use a raw duration literal like 0.5d, 2w, 1m, 2q. Use "size:NAME" to reference a declared size.`,"NL.E0401":e=>`Invalid size "${e.value}". Use the id of a declared size (e.g. xs, m, lg).`,"NL.E0402":e=>`Invalid effort "${e.value}". Use a raw duration literal like 0.5d, 2w, 1m, 2q.`,"NL.E0403":e=>`Invalid remaining value "${e.value}". Use a percentage like 30% or a duration literal like 1w, 0.5d.`,"NL.E0404":e=>`Remaining must be between 0% and 100%, got ${e.value}.`,"NL.E0405":e=>`Invalid ${e.key} "${e.value}". Use ISO 8601 format: YYYY-MM-DD.`,"NL.E0406":e=>`Invalid scale "${e.value}". Use a raw duration literal like 1w, 2w, 1q (no name lookup).`,"NL.E0407":e=>`Invalid calendar "${e.value}". Must be business, full, or custom.`,"NL.E0408":e=>`Property "${e.key}" requires at least one reference.`,"NL.E0410":e=>`"${e.key}:" accepts at most one inline date per direction; collapse the multiple dates to a single binding date or use a declared anchor.`,"NL.E0411":e=>`Inline date in "${e.key}:" is not allowed on ${e.type}. Allowed only on item, parallel, and group, and on a wave's after:; for a milestone use "date:" instead.`,"NL.E0412":e=>`Inline date "${e.date}" in "${e.key}:" requires the roadmap to declare "start:". Add start:YYYY-MM-DD to the roadmap.`,"NL.E0413":e=>`Inline date "${e.date}" in "${e.key}:" is before roadmap start ${e.start}.`,"NL.E0500":e=>`Anchor "${e.name}" requires a "date:" property.`,"NL.E0501":e=>`Anchor "${e.name}" has a date but the roadmap is missing "start:". Add start:YYYY-MM-DD to the roadmap.`,"NL.E0502":e=>`Anchor "${e.name}" date ${e.date} is before roadmap start ${e.start}.`,"NL.E0503":e=>`Milestone "${e.name}" requires at least one of "date:" or "after:".`,"NL.E0504":e=>`Milestone "${e.name}" date ${e.date} is before roadmap start ${e.start}.`,"NL.E0505":()=>'Footnote requires an "on:" property referencing one or more entities.',"NL.E0600":e=>`Item "${e.name}" requires a "size:" or "duration:" property.`,"NL.E0800":e=>`Invalid non-working value "${e.value}". Use hide or show.`,"NL.E0801":e=>`Invalid color "${e.value}" for "${e.key}". Use a named color, hex value, or "none".`,"NL.E0802":e=>`Invalid value "${e.value}" for "${e.key}". Allowed: ${e.allowed}.`,"NL.E0803":e=>`Unknown style property "${e.key}".`,"NL.E0804":e=>`Raw style property "${e.key}" is not allowed on ${e.entity}. Declare a named style in config and reference it via "style:id".`,"NL.E0805":e=>`Symbol id "${e.name}" collides with a built-in icon name. Reserved built-ins: ${e.builtins}.`,"NL.E0806":e=>`Symbol "${e.name}" requires a "unicode:" property (e.g. unicode:"\u{1F4B0}" or unicode:"\\u{1F464}").`,"NL.E0807":e=>`Symbol "${e.name}" unicode: must be a non-empty value.`,"NL.E0808":e=>`Symbol "${e.name}" ascii: must be 1-3 ASCII characters (got ${e.length} character${e.length===1?"":"s"}).`,"NL.E0809":e=>`Unknown symbol property "${e.key}". Allowed: unicode, ascii, link, description.`,"NL.E0810":e=>`Duplicate symbol id "${e.name}". First declared at ${e.location}.`,"NL.E0811":e=>`${e.key}: "${e.value}" is neither a built-in (${e.builtins}) nor a declared symbol. Add "symbol ${e.value} unicode:..." earlier in config or use a quoted Unicode literal.`,"NL.E0812":e=>`${e.key}: symbol "${e.value}" is referenced before its declaration. Move "symbol ${e.value}" above this entry.`,"NL.E0900":e=>`A ${e.kind} declaration takes date:, or start: and end:, or every: with optional start: and end:.`,"NL.E0901":e=>`Unknown ${e.kind} property "${e.key}". Allowed: date, start, end, every.`,"NL.E0902":e=>`${e.key}: on a ${e.kind} declaration takes one date, not a list.`,"NL.E0903":e=>`end: ${e.end} is before start: ${e.start}.`,"NL.E0904":e=>`Invalid weekday "${e.value}". Use sun, mon, tue, wed, thu, fri or sat.`,"NL.E0905":e=>`Weekday "${e.value}" is listed more than once.`,"NL.E0906":()=>"This leaves no working day in the week with no end date. Keep at least one weekday working.","NL.E0907":e=>`Duplicate ${e.kind} id "${e.name}".`,"NL.W0700":e=>`Unknown property "${e.key}" on ${e.entity}. The renderer ignores it.${e.suggested?` Did you mean "${e.suggested}"?`:""}`,"NL.W0701":e=>`Wave "${e.id}" in "${e.path}" differs from this file's definition (${e.fields.map(t=>`${t.field} ${t.there===""?"none":`"${t.there}"`} there, ${t.here===""?"none":`"${t.here}"`} here`).join("; ")}); this file's definition is used.`,"NL.W0702":e=>`"wave:" on ${e.target.kind==="default"?`"default ${e.target.entityType}"`:!e.target.name&&e.target.line!==void 0?`the ${e.target.kind==="parallel"?"parallel block":e.target.kind} on line ${e.target.line}`:`${e.target.kind} "${e.target.name}"`} is ignored: this roadmap declares no waves. Declare waves with "wave <id>" to use it, or remove the property.`,"NL.W0703":e=>`"${e.key}" on "default ${e.entityType}" is ignored: it is a roadmap-only style key. Set it on "default roadmap" instead.`,"NL.W0704":e=>`"timeline-position:${e.position}" draws no dates: "header-height:none" removes every timeline date strip. Set header-height to xs, sm, md, lg or xl to show them.`,"NL.W0705":e=>`days-per-week is ${e.daysPerWeek}, but the week leaves ${e.working} working days.`,"NL.E1100":e=>`Wave ${e.title===void 0?`on line ${e.line}`:`"${e.title}"`} needs an explicit identifier so work can reference it with wave:<id>, e.g. wave build "Build".`,"NL.E1101":e=>{switch(e.reason){case"list":return`"wave:" takes exactly one wave id; an item belongs to at most one wave. Got "${e.value}".`;case"unknown":return`Wave "${e.value}" is not declared. Declared waves: ${e.declared.length>0?e.declared.join(", "):"none"}. Add "wave ${e.value}" above the first swimlane that uses it.${Yk(e.suggestion)}`;case"forward":return`Wave "${e.value}" is used before its declaration on line ${e.line}. Declare waves above the swimlanes that use them.`;case"not-a-wave":return`"wave:" must name a wave, but "${e.value}" is ${Gk[e.kind]}.${Yk(e.suggestion)}`}},"NL.E1102":e=>`${Iy(Ry(e.entity))} has wave:${e.wave}, but its enclosing ${Ry(e.container,!1)} has wave:${e.containerWave}. A container's wave applies to everything inside it; remove one of the two wave: properties.`,"NL.E1103":e=>{switch(e.reason){case"sequence":{let t=e.items.length>1,n=`${t?"Items":"Item"} ${e.items.map(i=>`"${i}"`).join(", ")} (wave "${e.itemWave}")`,r=typeof e.ref=="string"?`"${e.ref}"`:ws(e.ref);return`${n} ${t?"come":"comes"} after ${r} (wave "${e.refWave}") in ${ws(e.flow)}. Work in a lane or group runs in order, so it must also be ordered by wave: move ${r} below "${e.last}", or change their waves.`}case"join":return`Item "${e.name}" (wave "${e.wave}") comes after ${ws(e.block)} in ${ws(e.flow)}, and that block cannot end before its track "${e.track}" (wave "${e.trackWave}") does. Move "${e.name}" above the block or into a track of its own, or change one of their waves.`;case"after-item":return e.container?`${zk(e.container)} has after:${e.refId}, but "${e.ref}" is in later wave "${e.refWave}". Wave "${e.refWave}" cannot start until wave "${e.wave}" ends, so "${e.name}" (wave "${e.wave}") inside it could never start: move "${e.name}" to wave "${e.refWave}" or later, or remove the after:.`:`Item "${e.name}" (wave "${e.wave}") has after:${e.refId}, but "${e.ref}" is in later wave "${e.refWave}". Wave "${e.refWave}" cannot start until wave "${e.wave}" ends, so "${e.name}" could never start: move it to wave "${e.refWave}" or later, or remove the after:.`;case"after-wave":return e.container?`${zk(e.container)} (wave "${e.wave}") has after:${e.refId}, but work cannot wait for the end of its own wave or a later one. Use an earlier wave, or move the ${e.container.kind} to a later wave.`:`Item "${e.name}" (wave "${e.wave}") has after:${e.refId}, but work cannot wait for the end of its own wave or a later one. Use an earlier wave, or move "${e.name}" to a later wave.`;case"chain":return`Item "${e.name}" (wave "${e.wave}") could never start: through ${e.chain.join(" \u2192 ")}, it waits for work that cannot start until wave "${e.wave}" has ended. Move "${e.name}" to a later wave, or break the chain.`}},"NL.E1104":e=>{switch(e.reason){case"swimlane":return`"wave:" is not allowed on swimlane "${e.name}": a swimlane spans every wave. Put wave: on its items, or wrap them in "group wave:${e.value}".`;case"milestone":return`"wave:" is not allowed on milestone "${e.name}". To place a milestone at the end of a wave, use after:${e.value}.`;case"other":return`"wave:" is not allowed on ${GF[e.type]} "${e.name}"; only item, group, and parallel can belong to a wave.`}},"NL.E1105":e=>e.reason==="before"?`"before:" is not allowed on wave "${e.name}". A wave's end comes from its items; to give a wave a deadline, add a dated milestone: milestone ${e.name}-due date:<YYYY-MM-DD> after:${e.name}.`:`"${e.key}:" is not allowed on wave "${e.name}". A wave's span comes from its items; only after: (an anchor, a dated milestone, or one ISO date) can hold back a wave's start.`,"NL.E1106":e=>`Wave "${e.name}" has after:${e.ref}, but "${e.ref}" is ${Gk[e.kind]}. A wave's after: accepts only anchors, dated milestones, or one ISO date; to make a wave wait for work, put that work in an earlier wave.`,"NL.W1000":e=>`Now-line date ${e.date} is outside the roadmap window (${e.start} \u2013 ${e.end}); it will not be drawn.`,"NL.W1002":e=>`Wave barriers did not settle after ${e.passes} layout passes, so the drawn schedule may not respect the wave order. The roadmap probably has an ordering conflict that validation did not catch.`,"NL.W1100":e=>{let t=Hk(e);return e.reason==="item"?`before:${e.ref} on ${t} can never be met: ${t} is in wave "${e.wave}", which cannot start until "${e.ref}" (wave "${e.refWave}") has finished. The overrun will be painted.`:`before:${e.ref} on ${t} can never be met: ${t} is in wave "${e.wave}", which cannot finish before wave "${e.ref}" starts. The overrun will be painted.`},"NL.W1101":e=>{let t=Hk(e);switch(e.reason){case"forward-lane":return`${e.key}:${e.ref} on ${t} refers to "${e.ref}", which is in a later swimlane ("${e.lane}"). Layout places swimlanes in order and ignores references to work it has not placed yet, so it ignores this ${e.key}:. Move swimlane "${e.lane}" above swimlane "${e.ownLane}", or remove the ${e.key}:.`;case"forward-flow":return`${e.key}:${e.ref} on ${t} refers to "${e.ref}", which comes later in ${ws(e.flow)}. Layout ignores references to work it has not placed yet, so it ignores this ${e.key}:. Move "${e.ref}" above ${t}, or remove the ${e.key}:.`;case"ancestor":return`${e.key}:${e.ref} on ${t} refers to "${e.ref}", which contains it. Layout ignores references to an enclosing group or parallel, so it ignores this ${e.key}:. Remove the ${e.key}:.`;case"floating-milestone":return`${e.key}:${e.ref} on ${t} refers to milestone "${e.ref}", which has no date. Floating milestones are placed after all work, so layout ignores this ${e.key}:. Reference the milestone's predecessors or a wave instead.`}},"NL.I1000":e=>`Title on item "${e.name}" is wider than its bar at this scale; it rendered to the right of the bar.`,"NL.I1001":e=>`Label chips on item "${e.name}" did not fit inside the bar; they rendered in a spill column to the right.`,"NL.I1002":e=>`Item "${e.name}" is too narrow to show its marker at this scale; decorations spilled beside the bar.`,"NL.I1003":e=>e.anchor?`Item "${e.name}" extends past its "before:" anchor "${e.anchor}".`:`Item "${e.name}" extends past its "before:" anchor.`,"NL.I1004":e=>`Swimlane "${e.lane}" packed into ${e.rows} rows to avoid overlap.`,"NL.I1005":e=>`Swimlane "${e.lane}" is over capacity in one or more periods (red utilization band).`,"NL.I1006":e=>e.names.length===1?`Wave "${e.names[0]}" won't be displayed: it has no items assigned.`:`Waves ${HF(e.names)} won't be displayed: they have no items assigned.`,"NL.I1007":e=>`Milestone "${e.name}" (${e.date}) is overrun: wave "${e.wave}" ends ${e.end}.`,"NL.I1008":e=>`Item "${e.name}" is pinned to ${e.pin} (${e.key}:), a non-working day; it starts on ${e.start}.`};var V=e=>`\xAB\xA0${e}\xA0\xBB`,Kk={item:"un \xE9l\xE9ment",group:"un groupe",parallel:"un bloc parall\xE8le",swimlane:"une swimlane",anchor:"une ancre",milestone:"un jalon","floating-milestone":"un jalon sans date",wave:"une vague",label:"une \xE9tiquette",size:"une taille",status:"un statut",person:"une personne",team:"une \xE9quipe",footnote:"une note de bas de page",roadmap:"la roadmap",style:"un style",symbol:"un symbole"},zF={item:"l'\xE9l\xE9ment",group:"le groupe",parallel:"le bloc parall\xE8le",swimlane:"la swimlane",anchor:"l'ancre",milestone:"le jalon","floating-milestone":"le jalon",wave:"la vague",label:"l'\xE9tiquette",size:"la taille",status:"le statut",person:"la personne",team:"l'\xE9quipe",footnote:"la note de bas de page",roadmap:"la roadmap",style:"le style",symbol:"le symbole"},Sy=e=>e.charAt(0).toUpperCase()+e.slice(1);function Ts(e){return e.kind==="parallel-block"?`le bloc parall\xE8le \xE0 la ligne ${e.line}`:e.kind==="group-block"?`le groupe \xE0 la ligne ${e.line}`:`${e.kind==="group"?"le groupe":e.kind==="parallel"?"le bloc parall\xE8le":"la swimlane"} ${V(e.name)}`}function by(e,t=!1){if(e.name||e.line===void 0)return t?`de ${V(e.name)}`:V(e.name);let n=Ts({kind:e.kind==="parallel"?"parallel-block":"group-block",line:e.line});return t?`du ${n.slice(3)}`:n}function Ny(e){let t=e.kind==="item"?"\xE9l\xE9ment":e.kind==="group"?"groupe":"bloc parall\xE8le",n=e.kind==="item"?"l'":"le ";return e.name?`${n}${t} ${V(e.name)}`:e.line===void 0?`${n}${t}`:`${n}${t} \xE0 la ligne ${e.line}`}function qk(e){let t=e.kind==="parallel"?"le bloc parall\xE8le":"le groupe";return e.name?`${t} ${V(e.name)}`:e.line===void 0?t:`${t} \xE0 la ligne ${e.line}`}function Zk(e){return e?e.title===void 0?` Vouliez-vous dire wave:${e.id}\xA0?`:` Vouliez-vous dire wave:${e.id} (${V(e.title)})\xA0?`:""}function jF(e){let t=e.slice(0,5).map(V),n=e.length-t.length;return n>0?`${t.join(", ")} et ${n} autre${n>1?"s":""}`:`${t.slice(0,-1).join(", ")} et ${t[t.length-1]}`}function yd(e){return`[${e.join(", ")}]`}function Jk(e){return e===null?"n'a pas de borne de d\xE9part":`ne s'ouvre pas avant ${e}`}function Qk(e){return e===""?"aucun":V(e)}var YF={title:"titre",style:"style",labels:"\xE9tiquettes",link:"lien",description:"description"},eI={"NL.E0001":()=>"La section config doit pr\xE9c\xE9der la section roadmap.","NL.E0002":()=>"Les d\xE9clarations include doivent pr\xE9c\xE9der la section config.","NL.E0003":()=>"Les d\xE9clarations include doivent pr\xE9c\xE9der la section roadmap.","NL.E0004":()=>"Au moins une swimlane est requise.","NL.E0005":e=>`Ligne ${e.line}\xA0: tabulations et espaces m\xE9lang\xE9s dans l'indentation. Utilisez l'un ou l'autre, mais pas les deux.`,"NL.E0100":e=>`Format de version invalide \xAB\xA0${e.version}\xA0\xBB. Format attendu\xA0: v1, v2, etc.`,"NL.E0101":e=>`Ce fichier requiert Nowline ${e.version}, mais l'analyseur ne prend en charge que jusqu'\xE0 ${e.supported}.`,"NL.E0102":e=>`Propri\xE9t\xE9 de directive inconnue \xAB\xA0${e.key}\xA0\xBB. Valeurs admises\xA0: ${e.allowed}.`,"NL.E0103":e=>`Propri\xE9t\xE9 de directive \xAB\xA0${e.key}\xA0\xBB en double.`,"NL.E0104":e=>`Locale invalide \xAB\xA0${e.value}\xA0\xBB. Utilisez une \xE9tiquette BCP-47 telle que \xAB\xA0en-US\xA0\xBB, \xAB\xA0fr\xA0\xBB ou \xAB\xA0fr-CA\xA0\xBB.`,"NL.E0200":e=>`Mode d'include invalide \xAB\xA0${e.value}\xA0\xBB. Doit \xEAtre merge, ignore ou isolate.`,"NL.E0201":e=>`Option \xAB\xA0${e.key}\xA0\xBB en double sur include.`,"NL.E0202":e=>{switch(e.reason){case"mismatch":return`L'include ${V(e.path)} d\xE9clare les vagues ${yd(e.child)}, mais celles de ce fichier sont ${yd(e.parent)}. Chaque roadmap incluse doit d\xE9clarer les m\xEAmes vagues dans le m\xEAme ordre\xA0: copiez les lignes wave de ce fichier dans ${V(e.path)}.`;case"child-none":return`L'include ${V(e.path)} ne d\xE9clare aucune vague, mais celles de ce fichier sont ${yd(e.parent)}. Copiez les lignes wave de ce fichier dans ${V(e.path)} pour que son travail rejoigne les vagues.`;case"parent-none":return`L'include ${V(e.path)} d\xE9clare les vagues ${yd(e.child)}, mais ce fichier n'en d\xE9clare aucune. D\xE9clarez les m\xEAmes vagues ici pour que les barri\xE8res s'appliquent \xE0 toute la roadmap.`;case"floor":return`La vague ${V(e.id)} dans ${V(e.path)} ${Jk(e.childFloor)}, mais la vague ${V(e.id)} de ce fichier ${Jk(e.parentFloor)}. Une vague doit avoir la m\xEAme borne de d\xE9part dans chaque roadmap incluse.`}},"NL.E0300":e=>`Identifiant en double \xAB\xA0${e.name}\xA0\xBB. Premi\xE8re d\xE9claration \xE0 ${e.location}.`,"NL.E0301":e=>`${e.type} doit comporter un identifiant, un titre, ou les deux.`,"NL.E0302":e=>`La r\xE9f\xE9rence \xAB\xA0${e.value}\xA0\xBB de \xAB\xA0${e.key}:\xA0\xBB ne d\xE9signe aucune entit\xE9 d\xE9clar\xE9e dans ce fichier.`,"NL.E0400":e=>`Dur\xE9e invalide \xAB\xA0${e.value}\xA0\xBB. Utilisez un litt\xE9ral de dur\xE9e brut comme 0.5d, 2w, 1m, 2q. Utilisez \xAB\xA0size:NOM\xA0\xBB pour r\xE9f\xE9rencer une taille d\xE9clar\xE9e.`,"NL.E0401":e=>`Taille invalide \xAB\xA0${e.value}\xA0\xBB. Utilisez l'identifiant d'une taille d\xE9clar\xE9e (p.\xA0ex. xs, m, lg).`,"NL.E0402":e=>`Effort invalide \xAB\xA0${e.value}\xA0\xBB. Utilisez un litt\xE9ral de dur\xE9e brut comme 0.5d, 2w, 1m, 2q.`,"NL.E0403":e=>`Valeur restante invalide \xAB\xA0${e.value}\xA0\xBB. Utilisez un pourcentage tel que 30% ou un litt\xE9ral de dur\xE9e comme 1w, 0.5d.`,"NL.E0404":e=>`La valeur restante doit \xEAtre comprise entre 0 % et 100 %, re\xE7u ${e.value}.`,"NL.E0405":e=>`${e.key} invalide \xAB\xA0${e.value}\xA0\xBB. Utilisez le format ISO 8601\xA0: AAAA-MM-JJ.`,"NL.E0406":e=>`\xC9chelle invalide \xAB\xA0${e.value}\xA0\xBB. Utilisez un litt\xE9ral de dur\xE9e brut comme 1w, 2w, 1q (pas de recherche par nom).`,"NL.E0407":e=>`Calendrier invalide \xAB\xA0${e.value}\xA0\xBB. Doit \xEAtre business, full ou custom.`,"NL.E0408":e=>`La propri\xE9t\xE9 \xAB\xA0${e.key}\xA0\xBB exige au moins une r\xE9f\xE9rence.`,"NL.E0410":e=>`\xAB\xA0${e.key}:\xA0\xBB n'accepte qu'une seule date inline par direction\xA0; regroupez les dates en une seule date contraignante ou utilisez une ancre d\xE9clar\xE9e.`,"NL.E0411":e=>`Une date inline dans \xAB\xA0${e.key}:\xA0\xBB n'est pas autoris\xE9e sur ${e.type}. Autoris\xE9e seulement sur item, parallel et group, et sur le \xAB\xA0after:\xA0\xBB d'une vague\xA0; pour un milestone utilisez \xAB\xA0date:\xA0\xBB \xE0 la place.`,"NL.E0412":e=>`La date inline \xAB\xA0${e.date}\xA0\xBB dans \xAB\xA0${e.key}:\xA0\xBB exige que la roadmap d\xE9clare \xAB\xA0start:\xA0\xBB. Ajoutez start:AAAA-MM-JJ \xE0 la roadmap.`,"NL.E0413":e=>`La date inline \xAB\xA0${e.date}\xA0\xBB dans \xAB\xA0${e.key}:\xA0\xBB pr\xE9c\xE8de le d\xE9but de la roadmap (${e.start}).`,"NL.E0500":e=>`L'ancre \xAB\xA0${e.name}\xA0\xBB exige une propri\xE9t\xE9 \xAB\xA0date:\xA0\xBB.`,"NL.E0501":e=>`L'ancre \xAB\xA0${e.name}\xA0\xBB a une date, mais \xAB\xA0start:\xA0\xBB manque sur la roadmap. Ajoutez start:AAAA-MM-JJ \xE0 la roadmap.`,"NL.E0502":e=>`La date ${e.date} de l'ancre \xAB\xA0${e.name}\xA0\xBB pr\xE9c\xE8de le d\xE9but de la roadmap (${e.start}).`,"NL.E0503":e=>`Le jalon \xAB\xA0${e.name}\xA0\xBB exige au moins l'une des propri\xE9t\xE9s \xAB\xA0date:\xA0\xBB ou \xAB\xA0after:\xA0\xBB.`,"NL.E0504":e=>`La date ${e.date} du jalon \xAB\xA0${e.name}\xA0\xBB pr\xE9c\xE8de le d\xE9but de la roadmap (${e.start}).`,"NL.E0505":()=>"Une note de bas de page exige une propri\xE9t\xE9 \xAB\xA0on:\xA0\xBB r\xE9f\xE9ren\xE7ant au moins une entit\xE9.","NL.E0600":e=>`L'\xE9l\xE9ment \xAB\xA0${e.name}\xA0\xBB exige une propri\xE9t\xE9 \xAB\xA0size:\xA0\xBB ou \xAB\xA0duration:\xA0\xBB.`,"NL.E0800":e=>`Valeur non-working invalide \xAB\xA0${e.value}\xA0\xBB. Utilisez hide ou show.`,"NL.E0801":e=>`Couleur invalide \xAB\xA0${e.value}\xA0\xBB pour \xAB\xA0${e.key}\xA0\xBB. Utilisez une couleur nomm\xE9e, une valeur hexad\xE9cimale ou \xAB\xA0none\xA0\xBB.`,"NL.E0802":e=>`Valeur invalide \xAB\xA0${e.value}\xA0\xBB pour \xAB\xA0${e.key}\xA0\xBB. Valeurs admises\xA0: ${e.allowed}.`,"NL.E0803":e=>`Propri\xE9t\xE9 de style inconnue \xAB\xA0${e.key}\xA0\xBB.`,"NL.E0804":e=>`La propri\xE9t\xE9 de style brute \xAB\xA0${e.key}\xA0\xBB n'est pas permise sur ${e.entity}. D\xE9clarez un style nomm\xE9 dans la config et r\xE9f\xE9rencez-le avec \xAB\xA0style:id\xA0\xBB.`,"NL.E0805":e=>`L'identifiant de symbole \xAB\xA0${e.name}\xA0\xBB entre en conflit avec le nom d'une ic\xF4ne int\xE9gr\xE9e. Noms r\xE9serv\xE9s\xA0: ${e.builtins}.`,"NL.E0806":e=>`Le symbole \xAB\xA0${e.name}\xA0\xBB exige une propri\xE9t\xE9 \xAB\xA0unicode:\xA0\xBB (p.\xA0ex. unicode:"\u{1F4B0}" ou unicode:"\\u{1F464}").`,"NL.E0807":e=>`La propri\xE9t\xE9 \xAB\xA0unicode:\xA0\xBB du symbole \xAB\xA0${e.name}\xA0\xBB doit avoir une valeur non vide.`,"NL.E0808":e=>`La propri\xE9t\xE9 \xAB\xA0ascii:\xA0\xBB du symbole \xAB\xA0${e.name}\xA0\xBB doit compter de 1 \xE0 3 caract\xE8res ASCII (re\xE7u\xA0: ${e.length} caract\xE8re${e.length>1?"s":""}).`,"NL.E0809":e=>`Propri\xE9t\xE9 de symbole inconnue \xAB\xA0${e.key}\xA0\xBB. Valeurs admises\xA0: unicode, ascii, link, description.`,"NL.E0810":e=>`Identifiant de symbole en double \xAB\xA0${e.name}\xA0\xBB. Premi\xE8re d\xE9claration \xE0 ${e.location}.`,"NL.E0811":e=>`${e.key}: \xAB\xA0${e.value}\xA0\xBB n'est ni une ic\xF4ne int\xE9gr\xE9e (${e.builtins}) ni un symbole d\xE9clar\xE9. Ajoutez \xAB\xA0symbol ${e.value} unicode:...\xA0\xBB plus haut dans la config ou utilisez un litt\xE9ral Unicode entre guillemets.`,"NL.E0812":e=>`${e.key}: le symbole \xAB\xA0${e.value}\xA0\xBB est r\xE9f\xE9renc\xE9 avant sa d\xE9claration. D\xE9placez \xAB\xA0symbol ${e.value}\xA0\xBB au-dessus de cette entr\xE9e.`,"NL.E0900":e=>`Une d\xE9claration ${e.kind} prend date:, ou start: et end:, ou every: avec start: et end: facultatifs.`,"NL.E0901":e=>`Propri\xE9t\xE9 ${e.kind} inconnue \xAB\xA0${e.key}\xA0\xBB. Autoris\xE9es\xA0: date, start, end, every.`,"NL.E0902":e=>`${e.key}: sur une d\xE9claration ${e.kind} prend une seule date, pas une liste.`,"NL.E0903":e=>`end: ${e.end} pr\xE9c\xE8de start: ${e.start}.`,"NL.E0904":e=>`Jour de semaine invalide \xAB\xA0${e.value}\xA0\xBB. Utilisez sun, mon, tue, wed, thu, fri ou sat.`,"NL.E0905":e=>`Le jour \xAB\xA0${e.value}\xA0\xBB appara\xEEt plusieurs fois.`,"NL.E0906":()=>"Il ne reste aucun jour ouvr\xE9 dans la semaine sans date de fin. Gardez au moins un jour ouvr\xE9.","NL.E0907":e=>`Identifiant ${e.kind} \xAB\xA0${e.name}\xA0\xBB en double.`,"NL.W0700":e=>`Propri\xE9t\xE9 inconnue \xAB\xA0${e.key}\xA0\xBB sur ${e.entity}. Le moteur de rendu l'ignore.${e.suggested?` Vouliez-vous dire \xAB\xA0${e.suggested}\xA0\xBB\xA0?`:""}`,"NL.W0701":e=>`La vague ${V(e.id)} dans ${V(e.path)} diff\xE8re de la d\xE9finition de ce fichier (${e.fields.map(t=>`${YF[t.field]} ${Qk(t.there)} l\xE0-bas, ${Qk(t.here)} ici`).join("\xA0; ")})\xA0; la d\xE9finition de ce fichier est utilis\xE9e.`,"NL.W0702":e=>`\xAB\xA0wave:\xA0\xBB sur ${e.target.kind==="default"?V(`default ${e.target.entityType}`):!e.target.name&&e.target.line!==void 0?e.target.kind==="item"||e.target.kind==="group"||e.target.kind==="parallel"?Ny({kind:e.target.kind,name:"",line:e.target.line}):`${e.target.kind} \xE0 la ligne ${e.target.line}`:`${e.target.kind} ${V(e.target.name)}`} est ignor\xE9\xA0: cette roadmap ne d\xE9clare aucune vague. D\xE9clarez des vagues avec \xAB\xA0wave <id>\xA0\xBB pour l'utiliser, ou retirez la propri\xE9t\xE9.`,"NL.W0703":e=>`${V(e.key)} sur ${V(`default ${e.entityType}`)} est ignor\xE9\xA0: c'est une cl\xE9 de style propre \xE0 la roadmap. D\xE9finissez-la plut\xF4t sur \xAB\xA0default roadmap\xA0\xBB.`,"NL.W0704":e=>`${V(`timeline-position:${e.position}`)} n'affiche aucune date\xA0: ${V("header-height:none")} retire tous les bandeaux de dates de la frise. Donnez \xE0 header-height la valeur xs, sm, md, lg ou xl pour les afficher.`,"NL.W0705":e=>`days-per-week vaut ${e.daysPerWeek}, mais la semaine laisse ${e.working} jours ouvr\xE9s.`,"NL.E1100":e=>`La vague ${e.title===void 0?`\xE0 la ligne ${e.line}`:V(e.title)} exige un identifiant explicite pour que le travail puisse la r\xE9f\xE9rencer avec wave:<id>, p.\xA0ex. wave build "Build".`,"NL.E1101":e=>{switch(e.reason){case"list":return`\xAB\xA0wave:\xA0\xBB accepte exactement un identifiant de vague\xA0; un \xE9l\xE9ment appartient \xE0 une seule vague au plus. Re\xE7u ${V(e.value)}.`;case"unknown":return`La vague ${V(e.value)} n'est pas d\xE9clar\xE9e. Vagues d\xE9clar\xE9es\xA0: ${e.declared.length>0?e.declared.join(", "):"aucune"}. Ajoutez \xAB\xA0wave ${e.value}\xA0\xBB au-dessus de la premi\xE8re swimlane qui l'utilise.${Zk(e.suggestion)}`;case"forward":return`La vague ${V(e.value)} est utilis\xE9e avant sa d\xE9claration \xE0 la ligne ${e.line}. D\xE9clarez les vagues au-dessus des swimlanes qui les utilisent.`;case"not-a-wave":return`\xAB\xA0wave:\xA0\xBB doit nommer une vague, mais ${V(e.value)} est ${Kk[e.kind]}.${Zk(e.suggestion)}`}},"NL.E1102":e=>`${Sy(Ny(e.entity))} a wave:${e.wave}, mais ${Ny(e.container)} qui le contient a wave:${e.containerWave}. La vague d'un conteneur s'applique \xE0 tout ce qu'il contient\xA0; retirez l'une des deux propri\xE9t\xE9s wave:.`,"NL.E1103":e=>{switch(e.reason){case"sequence":{let t=e.items.length>1,n=`${t?"Les \xE9l\xE9ments":"L'\xE9l\xE9ment"} ${e.items.map(V).join(", ")} (vague ${V(e.itemWave)})`,r=typeof e.ref=="string"?V(e.ref):Ts(e.ref);return`${n} ${t?"viennent":"vient"} apr\xE8s ${r} (vague ${V(e.refWave)}) dans ${Ts(e.flow)}. Le travail d'une swimlane ou d'un groupe s'ex\xE9cute dans l'ordre, il doit donc aussi \xEAtre ordonn\xE9 par vague\xA0: d\xE9placez ${r} sous ${V(e.last)}, ou changez leurs vagues.`}case"join":return`L'\xE9l\xE9ment ${V(e.name)} (vague ${V(e.wave)}) vient apr\xE8s ${Ts(e.block)} dans ${Ts(e.flow)}, et ce bloc ne peut pas se terminer avant sa piste ${V(e.track)} (vague ${V(e.trackWave)}). D\xE9placez ${V(e.name)} au-dessus du bloc ou dans une piste distincte, ou changez l'une de leurs vagues.`;case"after-item":return e.container?`${Sy(qk(e.container))} a after:${e.refId}, mais ${V(e.ref)} est dans la vague ult\xE9rieure ${V(e.refWave)}. La vague ${V(e.refWave)} ne peut pas d\xE9marrer avant la fin de la vague ${V(e.wave)}, donc ${V(e.name)} (vague ${V(e.wave)}) \xE0 l'int\xE9rieur ne pourrait jamais d\xE9marrer\xA0: d\xE9placez ${V(e.name)} dans la vague ${V(e.refWave)} ou une vague ult\xE9rieure, ou retirez le after:.`:`L'\xE9l\xE9ment ${V(e.name)} (vague ${V(e.wave)}) a after:${e.refId}, mais ${V(e.ref)} est dans la vague ult\xE9rieure ${V(e.refWave)}. La vague ${V(e.refWave)} ne peut pas d\xE9marrer avant la fin de la vague ${V(e.wave)}, donc ${V(e.name)} ne pourrait jamais d\xE9marrer\xA0: d\xE9placez-le dans la vague ${V(e.refWave)} ou une vague ult\xE9rieure, ou retirez le after:.`;case"after-wave":{let t=e.container?.kind==="parallel"?"bloc parall\xE8le":"groupe";return e.container?`${Sy(qk(e.container))} (vague ${V(e.wave)}) a after:${e.refId}, mais le travail ne peut pas attendre la fin de sa propre vague ni d'une vague ult\xE9rieure. Utilisez une vague ant\xE9rieure, ou d\xE9placez le ${t} dans une vague ult\xE9rieure.`:`L'\xE9l\xE9ment ${V(e.name)} (vague ${V(e.wave)}) a after:${e.refId}, mais le travail ne peut pas attendre la fin de sa propre vague ni d'une vague ult\xE9rieure. Utilisez une vague ant\xE9rieure, ou d\xE9placez ${V(e.name)} dans une vague ult\xE9rieure.`}case"chain":return`L'\xE9l\xE9ment ${V(e.name)} (vague ${V(e.wave)}) ne pourrait jamais d\xE9marrer\xA0: via ${e.chain.join(" \u2192 ")}, il attend du travail qui ne peut pas d\xE9marrer avant la fin de la vague ${V(e.wave)}. D\xE9placez ${V(e.name)} dans une vague ult\xE9rieure, ou rompez la cha\xEEne.`}},"NL.E1104":e=>{switch(e.reason){case"swimlane":return`\xAB\xA0wave:\xA0\xBB n'est pas autoris\xE9 sur la swimlane ${V(e.name)}\xA0: une swimlane couvre toutes les vagues. Placez wave: sur ses \xE9l\xE9ments, ou regroupez-les dans \xAB\xA0group wave:${e.value}\xA0\xBB.`;case"milestone":return`\xAB\xA0wave:\xA0\xBB n'est pas autoris\xE9 sur le jalon ${V(e.name)}. Pour placer un jalon \xE0 la fin d'une vague, utilisez after:${e.value}.`;case"other":return`\xAB\xA0wave:\xA0\xBB n'est pas autoris\xE9 sur ${zF[e.type]} ${V(e.name)}\xA0; seuls item, group et parallel peuvent appartenir \xE0 une vague.`}},"NL.E1105":e=>e.reason==="before"?`\xAB\xA0before:\xA0\xBB n'est pas autoris\xE9 sur la vague ${V(e.name)}. La fin d'une vague d\xE9coule de ses \xE9l\xE9ments\xA0; pour donner une \xE9ch\xE9ance \xE0 une vague, ajoutez un jalon dat\xE9\xA0: milestone ${e.name}-due date:<AAAA-MM-JJ> after:${e.name}.`:`\xAB\xA0${e.key}:\xA0\xBB n'est pas autoris\xE9 sur la vague ${V(e.name)}. L'\xE9tendue d'une vague d\xE9coule de ses \xE9l\xE9ments\xA0; seul after: (une ancre, un jalon dat\xE9 ou une date ISO) peut retarder le d\xE9but d'une vague.`,"NL.E1106":e=>`La vague ${V(e.name)} a after:${e.ref}, mais ${V(e.ref)} est ${Kk[e.kind]}. Le after: d'une vague accepte seulement des ancres, des jalons dat\xE9s ou une date ISO\xA0; pour qu'une vague attende du travail, placez ce travail dans une vague ant\xE9rieure.`,"NL.W1002":e=>`Les barri\xE8res de vagues ne se sont pas stabilis\xE9es apr\xE8s ${e.passes} passes de mise en page\xA0; le calendrier dessin\xE9 pourrait donc ne pas respecter l'ordre des vagues. La roadmap comporte probablement un conflit d'ordre que la validation n'a pas d\xE9tect\xE9.`,"NL.W1100":e=>{let t=by(e);return e.reason==="item"?`before:${e.ref} sur ${t} ne peut jamais \xEAtre respect\xE9\xA0: ${t} est dans la vague ${V(e.wave)}, qui ne peut pas d\xE9marrer avant la fin de ${V(e.ref)} (vague ${V(e.refWave)}). Le d\xE9passement sera peint.`:`before:${e.ref} sur ${t} ne peut jamais \xEAtre respect\xE9\xA0: ${t} est dans la vague ${V(e.wave)}, qui ne peut pas se terminer avant le d\xE9but de la vague ${V(e.ref)}. Le d\xE9passement sera peint.`},"NL.W1101":e=>{let t=by(e);switch(e.reason){case"forward-lane":return`${e.key}:${e.ref} sur ${t} r\xE9f\xE9rence ${V(e.ref)}, qui se trouve dans une swimlane ult\xE9rieure (${V(e.lane)}). La mise en page place les swimlanes dans l'ordre et ignore les r\xE9f\xE9rences \xE0 du travail qu'elle n'a pas encore plac\xE9, elle ignore donc ce ${e.key}:. D\xE9placez la swimlane ${V(e.lane)} au-dessus de la swimlane ${V(e.ownLane)}, ou retirez le ${e.key}:.`;case"forward-flow":return`${e.key}:${e.ref} sur ${t} r\xE9f\xE9rence ${V(e.ref)}, qui vient plus tard dans ${Ts(e.flow)}. La mise en page ignore les r\xE9f\xE9rences \xE0 du travail qu'elle n'a pas encore plac\xE9, elle ignore donc ce ${e.key}:. D\xE9placez ${V(e.ref)} au-dessus ${by(e,!0)}, ou retirez le ${e.key}:.`;case"ancestor":return`${e.key}:${e.ref} sur ${t} r\xE9f\xE9rence ${V(e.ref)}, qui le contient. La mise en page ignore les r\xE9f\xE9rences \xE0 un groupe ou un bloc parall\xE8le englobant, elle ignore donc ce ${e.key}:. Retirez le ${e.key}:.`;case"floating-milestone":return`${e.key}:${e.ref} sur ${t} r\xE9f\xE9rence le jalon ${V(e.ref)}, qui n'a pas de date. Les jalons sans date sont plac\xE9s apr\xE8s tout le travail, la mise en page ignore donc ce ${e.key}:. R\xE9f\xE9rencez plut\xF4t les pr\xE9d\xE9cesseurs du jalon ou une vague.`}},"NL.I1006":e=>e.names.length===1?`La vague ${V(e.names[0])} ne sera pas affich\xE9e\xA0: aucun \xE9l\xE9ment ne lui est affect\xE9.`:`Les vagues ${jF(e.names)} ne seront pas affich\xE9es\xA0: aucun \xE9l\xE9ment ne leur est affect\xE9.`,"NL.I1007":e=>`Le jalon ${V(e.name)} (${e.date}) est d\xE9pass\xE9\xA0: la vague ${V(e.wave)} se termine le ${e.end}.`,"NL.I1008":e=>`L'\xE9l\xE9ment ${V(e.name)} est \xE9pingl\xE9 \xE0 ${e.pin} (${e.key}:), un jour non ouvr\xE9\xA0; il d\xE9marre le ${e.start}.`};var tI={};var nI={};var VF=new Map([["en-US",Vk],["fr",eI],["fr-CA",tI],["fr-FR",nI]]);function rn(e,t,...n){for(let r of KF(e)){let o=VF.get(r)?.[t];if(o)return o(...n)}return t}var rI="en-US";function KF(e){let t=[],n=qF(e);for(;n.length>0;){t.includes(n)||t.push(n);let r=n.lastIndexOf("-");if(r<=0)break;n=n.slice(0,r)}return t.includes(rI)||t.push(rI),t}function qF(e){return e.split("-").map((n,r)=>r===0?n.toLowerCase():/^[a-zA-Z]{2}$/.test(n)?n.toUpperCase():n).join("-")}var ZF=/[\\/]/;function sI(e){for(let t=e.length-1;t>=0;t--){let n=e.charCodeAt(t);if(n===47||n===92)return t}return-1}function iI(...e){for(let t of e)if(t){if(t.includes("\\")&&!t.includes("/"))return"\\";if(t.includes("/"))return"/"}return"/"}function JF(e){return e?e[0]==="/"||e[0]==="\\"?!0:e.length>=3&&/^[A-Za-z]:[\\/]/.test(e):!1}function aI(e){let t=sI(e);return t<0?".":t===0?e[0]:t===2&&/^[A-Za-z]:[\\/]/.test(e)?e.slice(0,3):e.slice(0,t)}function _s(e){let t=sI(e);return t<0?e:e.slice(t+1)}function Ly(e,t){if(JF(t))return oI(t,iI(t));let n=iI(e,t);return oI(`${e}${n}${t}`,n)}function oI(e,t){let n="",r=e,i=/^([A-Za-z]:)([\\/])?/.exec(r);i?(n=i[1]+(i[2]?t:""),r=r.slice(i[0].length)):(r[0]==="/"||r[0]==="\\")&&(n=t,r=r.replace(/^[\\/]+/,""));let o=[];for(let s of r.split(ZF))if(!(s===""||s===".")){if(s===".."){o.length>0&&o[o.length-1]!==".."?o.pop():n||o.push("..");continue}o.push(s)}return n+o.join(t)}function It(e){return/[\r\n]/.test(e)?e.replace(/\s*[\r\n]+\s*/g," ").trim():e}function lI(e,t,n){if(e===t)return 0;let r=e.length,i=t.length;if(Math.abs(r-i)>n)return n+1;if(r===0)return i;if(i===0)return r;let o=new Array(i+1),s=new Array(i+1);for(let a=0;a<=i;a++)o[a]=a;for(let a=1;a<=r;a++){s[0]=a;let l=a;for(let u=1;u<=i;u++){let f=e.charCodeAt(a-1)===t.charCodeAt(u-1)?0:1;s[u]=Math.min(o[u]+1,s[u-1]+1,o[u-1]+f),s[u]<l&&(l=s[u])}if(l>n)return n+1;let c=o;o=s,s=c}return o[i]}function cI(e,t,n=2){let r,i=n+1;for(let o of t){let s=lI(e,o,n);if(s<i&&(r=o,i=s,s===0))break}return r}function uI(e,t,n=2){let r,i=n+1,o=!1;for(let s of t){let a=lI(e,s,n);a<i?(r=s,i=a,o=!1):a===i&&a<=n&&s!==r&&(o=!0)}return o?void 0:r}function Re(e){return e.name??(e.title===void 0?"<unnamed>":It(e.title))}function Mr(e){return e.$type==="NonWorkingDeclaration"?"non-working":e.$type.replace(/Declaration$|Block$/,"").toLowerCase()}function vl(e){let t=Mr(e),n=e.name??(e.title===void 0?void 0:It(e.title));return n?`${t} "${n}"`:t}function En(e){let t=e.$cstNode;return t?t.range.start.line+1:0}function xd(e,t){return`"${e}" cannot be set on "default ${t}". Identity-defining, sizing, sequencing, reference, and prose properties must be explicit on each entity.`}function on(e){let t=new Set,n=[];for(let r of e.roadmapEntries)!Tt(r)||!r.name||t.has(r.name)||(t.add(r.name),n.push(r));return n}function QF(e){let t=new Map;return on(e).forEach((n,r)=>{t.set(n.name,r+1)}),t}function dI(e){return(e.properties??[]).filter(n=>Q(n)==="wave")}function pI(e){return dI(e)[0]}function Oy(e){return e.value!==void 0?e.value:e.values.length===1?e.values[0]:`[${e.values.join(", ")}]`}function e2(e){let t=e;for(;t?.$container&&!os(t.$container);)t=t.$container;let n=t?.$container;if(!(!t||!n||!os(n)))return{file:n,index:n.roadmapEntries.indexOf(t),waveDecls:hI(n)}}function hI(e){let t=new Map;return e.roadmapEntries.forEach((n,r)=>{Tt(n)&&n.name&&!t.has(n.name)&&t.set(n.name,r)}),t}function Py(e,t,n,r=e2(t)){let i=Oy(e);if(e.value===void 0&&e.values.length!==1)return{status:"list",value:i};let o=n.get(i);if(o===void 0)return{status:"missing",value:i};if(r){let s=r.waveDecls.get(i);if(s!==void 0&&(r.index<0||s>r.index))return{status:"forward",value:i,line:En(r.file.roadmapEntries[s])}}return{status:"valid",id:i,index:o}}function t2(e){return $e(e)||et(e)}function n2(e,t,n,r){let i=pI(e);if(!i)return t;let o=Py(i,e,n,r);if(o.status==="valid")return t??o.index}function Ed(e,t){let n=new Map,r=new Map,i=new Map,o=(s,a,l)=>{let c=n2(s,a,t,l);c!==void 0&&n.set(s,c);let u=c;if($e(s)||et(s)){let f=[];for(let d of _t(s))f.push(o(d,c,l));c===void 0&&($e(s)?u=f[0]:f.length>0&&!f.includes(void 0)&&(u=Math.min(...f)))}return u!==void 0&&r.set(s,u),u};for(let s of e){let a,l=s.$container;if(os(l)){let c=i.get(l);c||(c=hI(l),i.set(l,c)),a={file:l,index:l.roadmapEntries.indexOf(s),waveDecls:c}}for(let c of _t(s))o(c,void 0,a)}return{waveOf:n,leadOf:r}}function mI(e){return(e.properties??[]).find(n=>Q(n)==="date")?.value}function vs(e){let t=TA(e);return n=>t.get(n)}function kl(e,t){let n=null;for(let r of e.properties){if(Q(r)!=="after")continue;let i=r.value!==void 0?[r.value]:r.values;for(let o of i){if(!o)continue;let s;if(ot.test(o))s=o;else{let a=t(o);(is(a)||xn(a))&&(s=mI(a))}s===void 0||!He(s)||(n===null||s>n.date)&&(n={date:s,ref:o})}}return n}var gI=new Set(["before","date","start","length","duration","size","capacity","remaining","wave"]);function Ni(e){return Tt(e.$container)&&gI.has(Q(e))}var r2={ItemDeclaration:"item",GroupBlock:"group",ParallelBlock:"parallel",SwimlaneDeclaration:"swimlane",AnchorDeclaration:"anchor",MilestoneDeclaration:"milestone",WaveDeclaration:"wave",LabelDeclaration:"label",SizeDeclaration:"size",StatusDeclaration:"status",PersonDeclaration:"person",TeamDeclaration:"team",FootnoteDeclaration:"footnote",RoadmapDeclaration:"roadmap",StyleDeclaration:"style",SymbolDeclaration:"symbol"};function Al(e){return r2[e.$type]??Mr(e)}function i2(e,t){let n=[],r=Re(e),i=!e.name&&e.title===void 0;if(e.name||n.push({severity:"error",code:"NL.E1100",args:{...e.title===void 0?{}:{title:It(e.title)},line:En(e)},node:e}),i)return n;for(let o of e.properties){let s=Q(o);if(gI.has(s)){n.push({severity:"error",code:"NL.E1105",args:s==="before"?{reason:"before",name:r}:{reason:"other",key:s,name:r},node:o,property:"key"});continue}if(s!=="after")continue;let a=o.value!==void 0?[o.value]:o.values;for(let l of a){if(!l||ot.test(l))continue;let c=t(l);if(!(!c||is(c))){if(xn(c)){if(mI(c)!==void 0)continue;n.push({severity:"error",code:"NL.E1106",args:{name:r,ref:l,kind:"floating-milestone"},node:o});continue}n.push({severity:"error",code:"NL.E1106",args:{name:r,ref:l,kind:Al(c)},node:o})}}}return n}function wd(e){let t=vs(e);return e.roadmapEntries.filter(Tt).flatMap(n=>i2(n,t))}function o2(e){return[...Mn(e,{config:!0,roadmap:!0})].filter(t=>hA(t)?nt(t):!Tt(t))}function s2(e,t){let n=e.toLowerCase(),r=t.filter(o=>o.title!==void 0&&It(o.title).toLowerCase()===n),i;if(r.length===1)i=r[0];else{let o=uI(e,t.map(s=>s.name));i=o===void 0?void 0:t.find(s=>s.name===o)}if(i)return i.title===void 0?{id:i.name}:{id:i.name,title:It(i.title)}}function a2(e,t,n){let r=n(t);if(r)return Al(r);for(let i of e.configEntries)if((Bt(i)||xi(i))&&i.name===t)return Al(i)}function l2(e,t){let n=e.$container;for(;t2(n);){let r=pI(n);if(r)return Py(r,n,t).status==="valid"?{container:n,prop:r}:void 0;n=n?.$container}}function fI(e,t){let n=t.name??(t.title===void 0?"":It(t.title));return n?{kind:e,name:n}:{kind:e,name:n,line:En(t)}}function c2(e){if(nt(e))return{kind:"default",entityType:e.entityType};let t=e,n=t.name??(t.title===void 0?"":It(t.title)),r=Al(e);return n?{kind:r,name:n}:{kind:r,name:n,line:En(e)}}function u2(e,t,n,r,i,o){let s=Py(n,t,i);switch(s.status){case"list":return{severity:"error",code:"NL.E1101",args:{reason:"list",value:s.value},node:n};case"forward":return{severity:"error",code:"NL.E1101",args:{reason:"forward",value:s.value,line:s.line},node:n};case"missing":{let u=a2(e,s.value,o),f=s2(s.value,r);return{severity:"error",code:"NL.E1101",args:u===void 0?{reason:"unknown",value:s.value,declared:r.map(d=>d.name),...f?{suggestion:f}:{}}:{reason:"not-a-wave",value:s.value,kind:u,...f?{suggestion:f}:{}},node:n}}case"valid":break}let a=l2(t,i);if(!a)return;let l=Oy(a.prop);if(l===s.id)return;let c=Ve(t)?"item":$e(t)?"group":"parallel";return{severity:"error",code:"NL.E1102",args:{entity:fI(c,t),wave:s.id,container:fI($e(a.container)?"group":"parallel",a.container),containerWave:l},node:n}}function Td(e){let t=on(e),n=t.length>0,r=QF(e),i=vs(e),o=[];for(let s of o2(e)){let a=dI(s);if(a.length===0)continue;if(!n){for(let m of a)o.push({severity:"warning",code:"NL.W0702",args:{target:c2(s)},node:m,property:"key"});continue}if(nt(s)){for(let m of a)o.push({severity:"error",message:xd("wave",s.entityType),node:m});continue}let l=s,c=Re(l);if(!l.name&&l.title===void 0&&!Ve(s)&&!$e(s)&&!et(s))continue;if(Ke(s)||xn(s)){for(let m of a)o.push({severity:"error",code:"NL.E1104",args:{reason:Ke(s)?"swimlane":"milestone",name:c,value:Oy(m)},node:m});continue}if(!Ve(s)&&!$e(s)&&!et(s)){for(let m of a)o.push({severity:"error",code:"NL.E1104",args:{reason:"other",type:Al(s),name:c},node:m});continue}let[f,...d]=a,p=u2(e,s,f,t,r,i);if(p&&o.push(p),d.length>0){let m=a.flatMap(g=>g.value!==void 0?[g.value]:g.values);for(let g of d)o.push({severity:"error",code:"NL.E1101",args:{reason:"list",value:`[${m.join(", ")}]`},node:g})}}return o}var f2=["after-wave","after-item","sequence","join"];function Li(e){return e.name??(e.title===void 0?void 0:It(e.title))}function _d(e){let t=Li(e);if(Ke(e))return{kind:"swimlane",name:Re(e)};let n=$e(e);return t?{kind:n?"group":"parallel",name:t}:{kind:n?"group-block":"parallel-block",line:En(e)}}function yI(e){let t=Li(e);return t!==void 0||e.$type==="ItemDeclaration"?t:{kind:$e(e)?"group-block":"parallel-block",line:En(e)}}function xI(e){return e.$type==="ItemDeclaration"||Li(e)!==void 0?{name:Re(e)}:{name:"",kind:$e(e)?"group":"parallel",line:En(e)}}function d2(e){let t=$e(e)?"group":"parallel",n=Li(e);return n?{kind:t,name:n}:{kind:t,name:"",line:En(e)}}function Cy(e){return(e.value!==void 0?[e.value]:e.values).filter(t=>!!t)}function p2(e){return xn(e)&&!e.properties.some(t=>Q(t)==="date")}function As(e,t,n={}){if(t.length===0)return[];let r=new Map;t.forEach((v,C)=>{v.name&&r.set(v.name,C+1)});let i=v=>t[v-1]?.name??"",{lanes:o,lookup:s}=e,{waveOf:a,leadOf:l}=Ed(o,r),c=[],u=new Map,f=0,d=(v,C,W,G)=>{let K=c.length,q={node:v,lane:C,parent:W,children:[],prev:G,start:f++,reg:-1,ew:a.get(v),lw:l.get(v),after:[],afterWaves:[]};if(c.push(q),$e(v)||et(v)){let J=-1;for(let re of _t(v))J=d(re,C,K,$e(v)?J:-1),q.children.push(J);q.reg=f++}else q.reg=q.start;if(v.name){let J=u.get(v.name)??[];J.push(K),u.set(v.name,J)}return K};o.forEach((v,C)=>{let W=-1;for(let G of _t(v))W=d(G,C,-1,W)});let p=(v,C)=>{let W=u.get(v);if(W){for(let G=W.length-1;G>=0;G--)if(c[W[G]].reg<c[C].start)return W[G]}},m=[],g=n.suppressCycleRefs??!0?m2(c,o,s):()=>!1;for(let v=0;v<c.length;v++){let C=c[v],W=xI(C.node);for(let G of C.node.properties){let K=Q(G);if(!(K!=="after"&&K!=="before"))for(let q of Cy(G)){if(ot.test(q))continue;let J=p(q,v),re=J===void 0?r.get(q):void 0;if(K==="after"&&(J!==void 0?C.after.push({from:J,prop:G,ref:q}):re!==void 0&&C.afterWaves.push({prop:G,ref:q,j:re})),J!==void 0||re!==void 0)continue;let le=u.get(q)?.[0];if(le===void 0&&!p2(s(q))||g(C.node.name,K,q))continue;let ce=!1;for(let pe=C.parent;pe>=0&&!ce;pe=c[pe].parent)ce=c[pe].node.name===q;m.push({severity:"warning",code:"NL.W1101",args:le===void 0?{reason:"floating-milestone",key:K,ref:q,...W}:ce?{reason:"ancestor",key:K,ref:q,...W}:c[le].lane!==C.lane?{reason:"forward-lane",key:K,ref:q,...W,lane:Re(o[c[le].lane]),ownLane:Re(o[C.lane])}:{reason:"forward-flow",key:K,ref:q,...W,flow:_d(h2(c,o,v,le))},node:G})}}}let E=new Array(c.length),x=new Array(c.length);for(let v=c.length-1;v>=0;v--){let C=c[v];if(C.node.$type==="ItemDeclaration"){E[v]=C.ew,x[v]=C.ew;continue}for(let W of C.children){let G=E[W],K=x[W];G!==void 0&&(E[v]=Math.max(E[v]??G,G)),K!==void 0&&(x[v]=Math.min(x[v]??K,K))}}for(let v=0;v<c.length;v++){let C=E[v];if(C===void 0)continue;let W=xI(c[v].node);for(let G of c[v].node.properties)if(Q(G)==="before")for(let K of Cy(G)){if(ot.test(K))continue;let q=p(K,v);if(q!==void 0){let re=x[q];if(re===void 0||C<=re)continue;m.push({severity:"warning",code:"NL.W1100",args:{reason:"item",ref:K,...W,wave:i(C),refWave:i(re)},node:G});continue}let J=r.get(K);J===void 0||C<J||m.push({severity:"warning",code:"NL.W1100",args:{reason:"wave",ref:K,...W,wave:i(C)},node:G})}}let y=v=>c[v].node.$type!=="ItemDeclaration",w=v=>{let{parent:C}=c[v];return C<0?!1:et(c[C].node)||c[C].children[0]===v},_=new Array(c.length).fill(0),k=new Array(c.length).fill(0),N=v=>{let C=c[v],W=[];C.lw!==void 0&&W.push({term:{kind:C.ew!==void 0?"wave":"lead"},value:C.lw-1});for(let G of C.afterWaves)W.push({term:{kind:"after-wave",prop:G.prop,ref:G.ref},value:G.j});w(v)&&W.push({term:{kind:"parent",from:C.parent},value:_[C.parent]}),C.prev>=0&&W.push({term:{kind:"seq",from:C.prev},value:k[C.prev]});for(let G of C.after)W.push({term:{kind:"after",from:G.from,prop:G.prop,ref:G.ref},value:k[G.from]});return W},B=v=>{let C=_[v];for(let W of c[v].children)C=Math.max(C,k[W]);return C},$=c.map((v,C)=>[2*C+1]),X=c.map(()=>[]);for(let v=0;v<c.length;v++){let C=c[v];w(v)&&$[C.parent].push(2*v),C.prev>=0&&X[C.prev].push(2*v);for(let W of C.after)X[W.from].push(2*v);C.parent>=0&&X[v].push(2*C.parent+1)}let j=[],D=new Array(2*c.length).fill(!0);for(let v=0;v<c.length;v++)j.push(2*v,2*v+1);for(let v=0;v<j.length;v++){let C=j[v];D[C]=!1;let W=C>>1,G=(C&1)===1,K=G?B(W):Math.max(0,...N(W).map(q=>q.value));if(!(K<=(G?k[W]:_[W]))){G?k[W]=K:_[W]=K;for(let q of G?X[W]:$[W])D[q]||(D[q]=!0,j.push(q))}}let I=(v,C)=>N(v).filter(W=>W.value===C).map(W=>W.term),R=(v,C)=>{if(!y(v))return[{kind:"start"}];let W=c[v].children.filter(G=>k[G]===C).map(G=>({kind:"child",from:G}));return W.length>0?$e(c[v].node)?W.reverse():W:_[v]===C?[{kind:"start"}]:[]},P=(v,C)=>{let W=[{i:v,via:v}];for(;W.length>0;){let{i:G,via:K}=W.pop(),q=R(G,C);for(let J=q.length-1;J>=0;J--){let re=q[J];if(re.kind==="start"){let le=c[G].ew;if(le!==void 0&&le-1===C)return{origin:G,via:K}}else re.kind==="child"&&W.push({i:re.from,via:G===v?re.from:K})}}},A=(v,C)=>{let W=c[v].ew;return W!==void 0&&W-1===C},L=(v,C)=>{let W=v;for(;c[W].prev>=0||w(W);){let G=c[W].prev;if(G<0){W=c[W].parent;continue}let K=c[G].ew;if(K!==void 0&&K>C)return G;W=G}},T=new Map,O=[],S=new Map,F=(v,C,W)=>`${v}:${c[v].node.properties.indexOf(C)}:${W}`,z=(v,C)=>{let W=[],G=v;for(;;){let K=I(G,C);for(let J of K)if(J.kind==="after-wave")W.push({variant:"after-wave",owner:G,prop:J.prop,ref:J.ref});else if(J.kind==="after")A(J.from,C)&&W.push({variant:"after-item",owner:G,prop:J.prop,ref:J.ref});else if(J.kind==="seq"){let re=J.from,le=c[re].node;if(et(le)&&c[re].ew===void 0){let ce=P(re,C),pe=ce&&(Li(c[ce.via].node)??Li(c[ce.origin].node));pe&&W.push({variant:"join",owner:G,block:re,track:pe})}else if(A(re,C)){let ce=yI(le);ce&&W.push({variant:"sequence",owner:G,pred:re,ref:ce})}}let q=K.find(J=>J.kind==="parent");if(!q)break;G=q.from}for(let K of f2){let q=W.find(J=>J.variant===K);if(q)return q}},U=(v,C)=>{let W=[{key:2*v,from:-1}],G=new Set([2*v]),K,q=(J,re)=>{G.has(J)||(G.add(J),W.push({key:J,from:re}))};for(let J=0;J<W.length;J++){let re=W[J].key>>1;if(re!==v&&T.has(re)){K??(K=re);continue}if((W[J].key&1)===1){for(let pe of R(re,C))pe.kind==="start"?q(2*re,J):pe.kind==="child"&&q(2*pe.from+1,J);continue}let le=I(re,C),ce=le.find(pe=>pe.kind==="wave"||pe.kind==="lead")??le.find(pe=>pe.kind==="after-wave");if(ce){let pe=[];for(let ht=J;ht>=0;ht=W[ht].from){let mt=W[ht].key>>1;pe[pe.length-1]!==mt&&pe.push(mt)}let rt=Re(c[re].node);return{path:pe,origin:ce.kind==="after-wave"?`${rt} (after:${ce.ref})`:`${rt} (wave "${i(C+1)}")`}}for(let pe of le)pe.kind==="parent"?q(2*pe.from,J):(pe.kind==="seq"||pe.kind==="after")&&q(2*pe.from+1,J)}return{hit:K}},ee=(v,C,W,G)=>{let K=Re(c[C].node),q=i(W),J=i(G+1),re=c[v.owner].node,le=v.owner===C?void 0:d2(re);switch(v.variant){case"after-wave":{let ce=c[v.owner].ew===void 0?void 0:le;return{node:v.prop,run:[C],build:()=>({reason:"after-wave",name:K,wave:q,refId:v.ref,...ce?{container:ce}:{}})}}case"after-item":return{node:v.prop,run:[C],build:()=>({reason:"after-item",name:K,wave:q,refId:v.ref,ref:v.ref,refWave:J,...le?{container:le}:{}})};case"join":{let ce=c[v.block];return{node:c[C].node,run:[C],build:()=>({reason:"join",name:K,wave:q,block:_d(ce.node),flow:_d(EI(c,o,v.block)),track:v.track,trackWave:J})}}case"sequence":{let ce=v.pred,pe=c[ce].parent,rt=ht=>{if(pe<0)return c[ht].lane===c[ce].lane;for(let mt=c[ht].parent;mt>=0;mt=c[mt].parent)if(mt===pe)return!0;return!1};return{node:c[C].node,run:[C],build:ht=>{let mt=ht.filter(rt);return{reason:"sequence",items:mt.map(Jl=>Re(c[Jl].node)),itemWave:q,ref:v.ref,refWave:i(c[ce].ew??G+1),flow:_d(EI(c,o,ce)),last:Re(c[mt[mt.length-1]].node)}},seq:{pred:ce,ref:v.ref,inFlow:rt}}}}},Y=(v,C)=>(O.push(C),v!==void 0&&S.set(v,C),C),ne=(v,C,W,G)=>{let K=v.variant==="sequence"?`sequence:${v.pred}:${W}`:v.variant==="join"?`join:${v.block}:${W}`:`${v.variant}:${F(v.owner,v.prop,v.ref)}`,q=S.get(K);return q?(q.run.push(C),q):Y(K,ee(v,C,W,G))};for(let v=0;v<c.length;v++){let C=c[v],W=C.ew;if(C.node.$type!=="ItemDeclaration"||W===void 0||_[v]<W)continue;let G=_[v],K=z(v,G),q;if(K)q=ne(K,v,W,G);else{let J=U(v,G);if("path"in J){let re=J.path.slice(1).filter(rt=>!y(rt)||Li(c[rt].node)!==void 0).map(rt=>Re(c[rt].node)),le=[J.origin,...re.filter((rt,ht)=>re[ht-1]!==rt)],ce=Re(C.node),pe=i(W);q=Y(void 0,{node:C.node,run:[v],build:()=>({reason:"chain",name:ce,wave:pe,chain:le})})}else{let re=J.hit===void 0?void 0:T.get(J.hit),le=re?.seq;if(le?.inFlow(v)){let ce=L(v,W),pe=ce===void 0?void 0:yI(c[ce].node),rt=ce!==void 0&&pe!==void 0?{variant:"sequence",owner:v,pred:ce,ref:pe}:{variant:"sequence",owner:v,pred:le.pred,ref:le.ref};q=ne(rt,v,W,G)}else q=re,q?.run.push(v)}}q&&T.set(v,q)}for(let v of O)m.push({severity:"error",code:"NL.E1103",args:v.build(v.run),node:v.node});return m}function EI(e,t,n){let r=e[n].parent;return r<0?t[e[n].lane]:e[r].node}function h2(e,t,n,r){let i=new Set;for(let o=e[r].parent;o>=0;o=e[o].parent)i.add(o);for(let o=e[n].parent;o>=0;o=e[o].parent)if(i.has(o))return e[o].node;return t[e[n].lane]}function m2(e,t,n){let r=new Map,i=(c,u)=>{let f=r.get(c)??new Set;f.add(u),r.set(c,f)},o=[],s=(c,u)=>{if(c)for(let f of u){let d=Q(f);if(!(d!=="after"&&d!=="before"))for(let p of Cy(f))ot.test(p)||(d==="after"?i(c,p):i(p,c),o.push(p))}};for(let c of t)s(c.name,c.properties);for(let c of e)s(c.node.name,c.node.properties);let a=new Set;for(;o.length>0;){let c=o.pop();if(a.has(c))continue;a.add(c);let u=n(c);xn(u)&&s(u.name,u.properties)}let l=(c,u)=>{let f=new Set([c]),d=[c];for(;d.length>0;){let p=d.pop();if(p===u)return!0;for(let m of r.get(p)??[])f.has(m)||(f.add(m),d.push(m))}return!1};return(c,u,f)=>c?u==="after"?l(f,c):l(c,f):!1}function ks(e){return t=>e.anchors.get(t)??e.milestones.get(t)??e.waves?.get(t)}function Rl(e){let t=e.$document?.parseResult;return!!t&&(t.lexerErrors.length>0||t.parserErrors.length>0)}function TI(e,t,n){return n||Rl(e)?!1:!!e.roadmapDecl||t.swimlanes.size>0||on(e).length>0}function Il(e,t){if(!e.$cstNode)return{};let{start:n,end:r}=Zm({node:e,...t===void 0?{}:{property:t}});return{line:n.line,range:{start:{line:n.line,character:n.character},end:{line:r.line,character:r.character}}}}function Oi(e,t,n,r,...i){return{severity:e,message:rn("en-US",r,...i),sourcePath:t,...n,code:r,args:i,rule:"wave"}}function vd(e){return e.map(t=>t.name)}function wI(e){let t=n=>{let r=e.properties.find(i=>Q(i)===n);return r?r.value??r.values.join(", "):""};return{title:e.title===void 0?"":It(e.title),style:t("style"),labels:t("labels"),link:t("link"),description:e.description?It(e.description.text):""}}var g2=["title","style","labels","link","description"];function _I(e,t,n){let r={diagnostics:[],failed:!1};if(n.mode==="ignore"||!n.participates||n.childFile.roadmapEntries.some(p=>Tt(p)&&!p.name))return r;let i=n.parentAbs,o=Il(n.inc),s=n.childRelPath,a=on(e),l=on(n.childFile),c=p=>({diagnostics:[p],failed:!0});if(a.length===0&&l.length===0)return r;if(l.length===0)return c(Oi("error",i,o,"NL.E0202",{reason:"child-none",path:s,parent:vd(a)}));if(a.length===0)return c(Oi("error",i,o,"NL.E0202",{reason:"parent-none",path:s,child:vd(l)}));if(a.length!==l.length||a.some((p,m)=>p.name!==l[m].name))return c(Oi("error",i,o,"NL.E0202",{reason:"mismatch",path:s,child:vd(l),parent:vd(a)}));let u=ks(t),f=ks(n.childContent);for(let p=0;p<a.length;p++){let m=kl(a[p],u)?.date??null,g=kl(l[p],f)?.date??null;if(m!==g)return c(Oi("error",i,o,"NL.E0202",{reason:"floor",id:a[p].name,path:s,childFloor:g,parentFloor:m}))}let d=[];for(let p=0;p<a.length;p++){let m=wI(a[p]),g=wI(l[p]),E=g2.filter(x=>m[x]!==g[x]).map(x=>({field:x,there:g[x],here:m[x]}));E.length!==0&&d.push(Oi("warning",i,o,"NL.W0701",{id:a[p].name,path:s,fields:E}))}return{diagnostics:d,failed:!1}}function y2(e){let t=e;for(;t&&!os(t);)t=t.$container;return t}function vI(e){let{rootFile:t,rootAbs:n,rootContent:r,files:i,edges:o,failed:s}=e,a=[],l=new Set,c=k=>{let N=JSON.stringify([k.sourcePath,k.line,k.code,k.args,k.message]);l.has(N)||(l.add(N),a.push(k))},u=k=>{let N=y2(k);return N?i.get(N):void 0},f=(k,N)=>{let B=Il(k.node,k.property);return"message"in k?{severity:k.severity,message:k.message,sourcePath:N,...B,rule:"wave"}:Oi(k.severity,N,B,k.code,k.args)},d=[],p=new Set([n]),m=k=>{for(let N of o.get(k)??[])N.mode==="ignore"||!N.participates||p.has(N.childAbs)||(p.add(N.childAbs),s.has(N.childAbs)||d.push({file:N.childFile,abs:N.childAbs}),m(N.childAbs))};m(n);let g=on(t),E=new Map(g.map(k=>[k.name,k]));for(let{file:k,abs:N}of d){for(let $ of wd(k))c(f($,N));for(let $ of Td(k))c(f($,N));if(E.size===0)continue;let B=($,X)=>{let j=$===void 0?void 0:E.get($);if(!j||Tt(X))return;let D=j.$cstNode?j.$cstNode.range.start.line+1:0;c(Oi("error",N,Il(X),"NL.E0300",{name:$,location:`${_s(n)}:${D}`}))};k.roadmapDecl&&B(k.roadmapDecl.name,k.roadmapDecl);for(let $ of k.roadmapEntries)Xf($,B);for(let $ of k.configEntries)Bt($)&&B($.name,$)}if(g.length===0)return a;let x=k=>"message"in k?k.message:`${k.code}\0${JSON.stringify(k.args)}`,y=new Map,w={lanes:t.roadmapEntries.filter(Ke),lookup:vs(t)};for(let k of As(w,g,{suppressCycleRefs:!1})){let N=y.get(k.node)??new Set;N.add(x(k)),y.set(k.node,N)}let _=k=>{for(let N of k){if(y.get(N.node)?.has(x(N)))continue;let B=u(N.node);B===void 0||s.has(B)||c(f(N,B))}};_(As({lanes:[...r.swimlanes.values()],lookup:ks(r)},g,{suppressCycleRefs:!1}));for(let k of r.isolatedRegions){let N=k.content.roadmap?u(k.content.roadmap):void 0;if(N!==void 0&&s.has(N))continue;let B=[...k.content.waves?.values()??[]];B.length!==0&&_(As({lanes:[...k.content.swimlanes.values()],lookup:ks(k.content)},B,{suppressCycleRefs:!1}))}return a}function Ad(e){let t=wA(e),n=[];for(let r of e.roadmapEntries)Wf(r,i=>{let o=Q(i);if(o!=="after"&&o!=="before"&&o!=="on"||Ni(i))return;let s=i.value?[i.value]:i.values;for(let a of s)a&&((o==="after"||o==="before")&&ot.test(a)||t.has(a)||n.push({prop:i,key:o,value:a}))});return n}function AI(e,t){let n=[],r=new Set([e]),i=o=>{for(let s of t.get(o)??[])if(!(s.mode==="ignore"||r.has(s.childAbs))){if(r.add(s.childAbs),!Rl(s.childFile))for(let{prop:a,key:l,value:c}of Ad(s.childFile)){let u=[{key:l,value:c}];n.push({severity:"error",message:rn("en-US","NL.E0302",...u),sourcePath:s.childAbs,...Il(a),code:"NL.E0302",args:u})}i(s.childAbs)}};return i(e),n}function RI(e){let t=e?.properties.find(n=>n.key==="start");if(!(!t?.value||!He(t.value)))return t.value}function E2(e,t,n){return t&&n?`Included "${e}" declares start:${n}, which doesn't match this file's start:${t}. Both files must declare the same start date, or neither should.`:t?`Included "${e}" has no start:, but this file declares start:${t}. Both files must declare the same start date, or neither should.`:`Included "${e}" declares start:${n}, but this file has no start:. Both files must declare the same start date, or neither should.`}function Fr(e){return e.code!==void 0||e.rule==="wave"||e.syntax!==void 0}function SI(){return{styles:new Map,defaults:new Map,symbols:new Map,calendarDeclarations:[]}}function bI(){return{persons:new Map,teams:new Map,anchors:new Map,labels:new Map,sizes:new Map,statuses:new Map,swimlanes:new Map,milestones:new Map,footnotes:new Map,isolatedRegions:[]}}async function Dy(e,t,n){let r=n.readFile??(async l=>{let{nodeReadFile:c}=await Promise.resolve().then(()=>(II(),kI));return c(l)}),i=Ly("",t),o={services:n.services,rootAbs:i,diagnostics:[],resolving:[],processed:new Map,readFile:r,files:new Map,edges:new Map,stubs:new Set,failedWaves:new Set},{config:s,content:a}=await OI(e,i,o);return o.diagnostics.push(...vI({rootFile:e,rootAbs:i,rootContent:a,files:o.files,edges:o.edges,failed:o.failedWaves})),o.diagnostics.push(...AI(i,o.edges)),{config:s,content:a,diagnostics:o.diagnostics,processedFiles:new Set(o.processed.keys())}}async function OI(e,t,n){if(n.processed.has(t))return n.processed.get(t);if(n.resolving.includes(t)){n.diagnostics.push({severity:"error",message:`Circular include detected: ${[...n.resolving,t].join(" \u2192 ")}`,sourcePath:t});let c={config:SI(),content:bI()};return n.stubs.add(c.content),n.processed.set(t,c),c}t!==n.rootAbs&&n.diagnostics.push(...w2(e,t)),n.resolving.push(t),n.files.set(e,t);let r=SI(),i=bI();I2(r,e),N2(i,e);let o=on(e);o.length>0&&(i.waves=new Map(o.map(c=>[c.name,c])));let s=[];n.edges.set(t,s);let a=new Set;for(let c of e.includes){let u=c.path,f=Ly(aI(t),u);if(a.has(f)){n.diagnostics.push({severity:"error",message:`Duplicate include "${u}" in ${_s(t)}.`,sourcePath:t,line:c.$cstNode?.range.start.line});continue}a.add(f);let d=NI(c,"config")??"merge",p=NI(c,"roadmap")??"merge",m;try{let y=await n.readFile(f);m=await T2(n.services,y,f)}catch(y){n.diagnostics.push({severity:"error",message:`Could not read include "${u}": ${y.message}`,sourcePath:t,line:c.$cstNode?.range.start.line});continue}let{config:g,content:E}=await OI(m,f,n);s.push({parentAbs:t,inc:c,childRelPath:u,childAbs:f,mode:p,childFile:m,childContent:E,participates:TI(m,E,n.stubs.has(E))}),_2(r,g,d,f,n.diagnostics),v2(i,E,g,p,f,u,n.diagnostics);let x=!Rl(m);if(x&&p==="isolate"&&!E.roadmap&&n.diagnostics.push({severity:"error",message:`Cannot isolate "${u}": it has no roadmap declaration.`,sourcePath:t,line:c.$cstNode?.range.start.line}),x&&p!=="ignore"&&m.roadmapDecl){let y=RI(e.roadmapDecl),w=RI(m.roadmapDecl);y!==w&&n.diagnostics.push({severity:"error",message:E2(u,y,w),sourcePath:t,line:c.$cstNode?.range.start.line})}}i.waves&&b2(i,i.waves);for(let c of s){let{diagnostics:u,failed:f}=_I(e,i,c);n.diagnostics.push(...u),f&&n.failedWaves.add(c.childAbs)}n.resolving.pop();let l={config:r,content:i};return n.processed.set(t,l),l}function w2(e,t){let n=e.$document;if(!n)return[];let r=[];for(let i of bi(n)){if(i.origin==="validation")continue;let o=i.origin==="lexer"?i.error.line:i.error.token?.startLine;r.push({severity:"error",message:i.error.message,sourcePath:t,...o!==void 0&&Number.isFinite(o)?{line:o-1}:{},syntax:i})}return r}function NI(e,t){let n=e.options.find(r=>r.key===t);if(n&&(n.value==="merge"||n.value==="ignore"||n.value==="isolate"))return n.value}async function T2(e,t,n){let r=Ce.file(n),o=e.shared.workspace.LangiumDocumentFactory.fromString(t,r);return await e.shared.workspace.DocumentBuilder.build([o],{validation:!1}),o.parseResult.value}function _2(e,t,n,r,i){if(n==="ignore"||n==="isolate")return;let o=(s,a)=>i.push({severity:"warning",message:`${a} "${s}" from ${_s(r)} is shadowed by the parent's definition.`,sourcePath:r});$y(e.styles,t.styles,s=>o(s,"Style")),$y(e.defaults,t.defaults,s=>o(s,"Default")),$y(e.symbols,t.symbols,s=>o(s,"Symbol")),A2(e.calendarDeclarations,t.calendarDeclarations,s=>o(s.name,k2(s))),t.scale&&!e.scale&&(e.scale=t.scale),t.calendar&&!e.calendar&&(e.calendar=t.calendar)}function v2(e,t,n,r,i,o,s){if(r==="ignore")return;if(r==="isolate"){t.roadmap&&e.isolatedRegions.push({sourcePath:o,config:n,content:t});return}let a=(l,c)=>s.push({severity:"warning",message:`${c} "${l}" from ${_s(i)} is shadowed by the parent's definition.`,sourcePath:i});Hn(e.persons,t.persons,l=>a(l,"Person")),Hn(e.teams,t.teams,l=>a(l,"Team")),Hn(e.anchors,t.anchors,l=>a(l,"Anchor")),Hn(e.labels,t.labels,l=>a(l,"Label")),Hn(e.sizes,t.sizes,l=>a(l,"Size")),Hn(e.statuses,t.statuses,l=>a(l,"Status")),Hn(e.swimlanes,t.swimlanes,l=>a(l,"Swimlane")),Hn(e.milestones,t.milestones,l=>a(l,"Milestone")),Hn(e.footnotes,t.footnotes,l=>a(l,"Footnote")),t.roadmap&&!e.roadmap&&(e.roadmap=t.roadmap)}function $y(e,t,n){for(let[r,i]of t){if(e.has(r)){e.get(r)!==i&&n(r);continue}e.set(r,i)}}function A2(e,t,n){let r=new Set(e),i=new Set(e.filter(o=>o.name).map(LI));for(let o of t)if(!r.has(o)){if(o.name&&i.has(LI(o))){n(o);continue}e.push(o),r.add(o)}}function LI(e){return`${e.$type}:${e.name}`}function k2(e){return br(e)?"Non-working":"Working"}function Hn(e,t,n){let r=new Set(e.values());for(let[i,o]of t)if(!r.has(o)){if(!o.name&&o.title){e.set(My(e,PI(o.title)),o);continue}if(e.has(i)){n(i);continue}e.set(i,o)}}function I2(e,t){for(let n of t.configEntries)R2(e,n)}function R2(e,t){mA(t)?e.scale||(e.scale=t):za(t)?e.calendar||(e.calendar=t):Bt(t)?t.name&&!e.styles.has(t.name)&&e.styles.set(t.name,t):xi(t)?t.name&&!e.symbols.has(t.name)&&e.symbols.set(t.name,t):nt(t)?e.defaults.has(t.entityType)||e.defaults.set(t.entityType,t):(br(t)||qa(t))&&e.calendarDeclarations.push(t)}function S2(e){let t={swimlanes:new Set,persons:new Set,teams:new Set,anchors:new Set,labels:new Set,sizes:new Set,statuses:new Set,milestones:new Set,footnotes:new Set};for(let n of e){let r=n.name;if(r){if(Ke(n))t.swimlanes.add(r);else if(Va(n))t.persons.add(r);else if(en(n))t.teams.add(r);else if(is(n))t.anchors.add(r);else if(Ya(n))t.labels.add(r);else if(yi(n))t.sizes.add(r);else if(Ka(n))t.statuses.add(r);else if(xn(n))t.milestones.add(r);else if(Rg(n))t.footnotes.add(r);else if(Tt(n))for(let i of Object.values(t))i.add(r)}}return t}function b2(e,t){let n=[e.persons,e.teams,e.anchors,e.labels,e.sizes,e.statuses,e.swimlanes,e.milestones,e.footnotes],r=(i,o)=>t.has(i)&&!o.name&&!!o.title;for(let i of n){let o=[...i];if(!o.some(([a,l])=>r(a,l)))continue;let s=new Set([...i.keys(),...t.keys()]);i.clear();for(let[a,l]of o){let c=r(a,l)?My(i,a,s):a;s.add(c),i.set(c,l)}}}function N2(e,t){t.roadmapDecl&&!e.roadmap&&(e.roadmap=t.roadmapDecl);let n=S2(t.roadmapEntries);for(let r of t.roadmapEntries)L2(e,r,n)}function PI(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"entity"}function My(e,t,n){let r=o=>e.has(o)||(n?.has(o)??!1);if(!r(t))return t;let i=2;for(;r(`${t}-${i}`);)i++;return`${t}-${i}`}function zn(e,t,n){t.name?e.has(t.name)||e.set(t.name,t):t.title&&e.set(My(e,PI(t.title),n),t)}function L2(e,t,n){Ke(t)?zn(e.swimlanes,t,n.swimlanes):Va(t)?zn(e.persons,t,n.persons):en(t)?zn(e.teams,t,n.teams):is(t)?zn(e.anchors,t,n.anchors):Ya(t)?zn(e.labels,t,n.labels):yi(t)?zn(e.sizes,t,n.sizes):Ka(t)?zn(e.statuses,t,n.statuses):xn(t)?zn(e.milestones,t,n.milestones):Rg(t)&&zn(e.footnotes,t,n.footnotes)}function Sl(e){let t=e?.roadmapDecl?.properties.find(r=>Q(r)==="start");if(!t)return{kind:"missing"};let n=t.value;return!n||!He(n)?{kind:"invalid"}:{kind:"valid",iso:n,date:new Date(n)}}function Z(e,t,n,r,...i){e(t,rn("en-US",r,...i),{...n,data:{code:r,args:i}})}function kd(e,t){let n={node:t.node,...t.property===void 0?{}:{property:t.property}};if("message"in t){e(t.severity,t.message,n);return}Z(e,t.severity,n,t.code,t.args)}function Pi(e){let t=e.$cstNode;return t?`line ${t.range.start.line+1}`:"unknown location"}function Id(e){return/^[a-zA-Z_][a-zA-Z0-9_-]*$/.test(e)}var Fy="v1",Rd=new Set(Hf),CI=new Set(Ei),By=new Set(Ja),bl=new Set(bA),$I=new Set(AA),DI=new Set(NA),Nl=Object.fromEntries(Object.entries(kA).map(([e,t])=>[e,new Set(t)])),MI=new Set(IA),FI=new Set(RA),Sd=new Set(LA),Wy=new Set(OA),Xy=new Set(PA),BI={item:new Set(["size","duration","after","before","remaining","link","description","owner"]),milestone:new Set(["date","after","link","description"]),anchor:new Set(["date","link","description"]),footnote:new Set(["on","link","description"]),label:new Set(["link","description"]),swimlane:new Set(["capacity"]),roadmap:new Set,parallel:new Set,group:new Set},Uy=new Set(CA),WI=Object.fromEntries(Object.entries($A).map(([e,t])=>[e,new Set(t)])),O2=[{keys:new Set(["progress","percent","percentage","pct","complete","completion"]),requires:"remaining",suggest:"status: + remaining:"},{keys:new Set(["date","start"]),requires:"after",entities:new Set(["ItemDeclaration","ParallelBlock","GroupBlock"]),suggest:"after:<date>"}];function XI(e,t,n){let r=e.toLowerCase();for(let i of O2)if(!(!i.keys.has(r)||!t.has(i.requires))&&!(i.entities&&(n===void 0||!i.entities.has(n))))return i.suggest}var Ci=/^\d+(?:\.\d+)?[dwmqy]$/,UI=/^\d+%$/,GI=/^#[0-9a-fA-F]{3,8}$/,HI=/^v\d+$/,Gy=/^\d+$/,zI=/^[dwmqy]$/,Hy=/^\d+(\.\d+)?$/,Ll=/^\d+(\.\d+)?%$/,bd=/^\d+\.\d+$/,jI=/^\d+$/,YI=/^[\x20-\x7E]{1,3}$/,VI=/^[a-zA-Z]{2,3}(-[a-zA-Z]{2}|-\d{3})?$/,KI=new Set(SA),zy=new Set(DA);function ZI(e,t){let n=e.configEntries.filter(za),i=e.roadmapDecl?.properties.find(o=>Q(o)==="calendar")?.value;if(n.length>0&&i!=="custom")for(let o of n)t("error",'A "calendar" config block is only valid when the roadmap declares calendar:custom.',{node:o});if(i==="custom"&&n.length===0&&t("error",'calendar:custom requires a "calendar" config block with days-per-week, days-per-month, days-per-quarter, and days-per-year.',{node:e.roadmapDecl,property:"properties"}),i==="custom"&&n.length>0)for(let o of n){let s=new Set(o.properties.map(a=>Q(a)));for(let a of Sd)s.has(a)||t("error",`calendar:custom requires "${a}" in the calendar config block.`,{node:o})}}function JI(e,t){let n=new Set;for(let r of e.properties){let i=Q(r);if(!Sd.has(i)){t("error",`Unknown calendar property "${i}". Allowed: ${[...Sd].join(", ")}.`,{node:r,property:"key"});continue}n.has(i)&&t("error",`Duplicate calendar property "${i}".`,{node:r,property:"key"}),n.add(i),(!Gy.test(r.value)||parseInt(r.value,10)<=0)&&t("error",`"${i}" must be a positive integer, got "${r.value}".`,{node:r,property:"value"})}}function QI(e,t){let n=new Set;for(let r of e.properties){let i=Q(r);if(!Wy.has(i)){t("error",`Unknown scale property "${i}". Allowed: ${[...Wy].join(", ")}.`,{node:r,property:"key"});continue}n.has(i)&&t("error",`Duplicate scale property "${i}".`,{node:r,property:"key"}),n.add(i),i==="label-every"&&(!Gy.test(r.value)||parseInt(r.value,10)<=0)&&t("error",`"label-every" must be a positive integer, got "${r.value}".`,{node:r,property:"value"})}}function eR(e,t){let n=Mr(e),r=Za(e),{own:i}=r;for(let c of e.properties)Og.has(Q(c))||Z(t,"error",{node:c,property:"key"},"NL.E0901",{kind:n,key:Q(c)});r.shape==="malformed"&&Z(t,"error",{node:e},"NL.E0900",{kind:n});let o=i.get("date");o&&o.values.length>0&&o.values.forEach((c,u)=>{He(c)||Z(t,"error",{node:o,property:"values",index:u},"NL.E0405",{key:"date",value:c})});for(let c of["start","end"]){let u=i.get(c);u&&u.values.length>1?Z(t,"error",{node:u},"NL.E0902",{kind:n,key:c}):u&&u.values.length===1&&!He(u.values[0])&&Z(t,"error",{node:u,property:"values",index:0},"NL.E0405",{key:c,value:u.values[0]})}let{start:s,end:a}=r;s&&a&&a<s&&Z(t,"error",{node:i.get("end"),property:"value"},"NL.E0903",{start:s,end:a});let l=i.get("every");if(l){let c=new Set;(l.value!==void 0?[l.value]:l.values).forEach((f,d)=>{let p=l.values.length>0?{node:l,property:"values",index:d}:{node:l,property:"value"};Lg(f)?c.has(f)&&Z(t,"error",p,"NL.E0905",{value:f}):Z(t,"error",p,"NL.E0904",{value:f}),c.add(f)})}}function tR(e,t){let n=e.roadmapDecl;if(!n)return;let r=e.configEntries.filter(rR),i=r.map(y=>({decl:y,facts:Za(y)})).filter(({facts:y})=>y.wellFormed),o=y=>y.weekdays??[],s=i.filter(({facts:y})=>y.shape==="open-recurrence"),a=n.properties.find(y=>Q(y)==="calendar"),l=e.configEntries.find(za),c=a?.value==="custom"&&l!==void 0,u=a?.value==="full",f=c?l.properties.find(y=>Q(y)==="days-per-week"):void 0,d=parseInt(f?.value??"",10),p=c?Number.isFinite(d)&&d>0?d:qI:u?7:qI,m=Uf(r),g=new Set(!c&&!u&&!m?[0,6]:[]);for(let{decl:y,facts:w}of s)if(br(y))for(let _ of o(w))g.add(_);for(let{decl:y,facts:w}of s)if(qa(y))for(let _ of o(w))g.delete(_);if(g.size===7)for(let{decl:y}of s)br(y)&&Z(t,"error",{node:y},"NL.E0906");for(let{decl:y,facts:w}of i){if(!br(y)||w.shape!=="half-bounded-recurrence")continue;new Set([...g,...o(w)]).size===7&&Z(t,"error",{node:y},"NL.E0906")}let E=7-g.size;if(E===0||E===p)return;let x=c?f?{node:f,property:"value"}:{node:l}:a?{node:a}:s.length>0?{node:s[0].decl}:{node:n};Z(t,"warning",x,"NL.W0705",{daysPerWeek:p,working:E})}function nR(e,t){let n=new Map;for(let r of e.configEntries){if(!rR(r)||!r.name)continue;let i=`${r.$type}:${r.name}`;n.has(i)?Z(t,"error",{node:r,property:"name"},"NL.E0907",{kind:Mr(r),name:r.name}):n.set(i,r)}}var qI=5;function rR(e){return br(e)||qa(e)}function oR(e,t){e.properties.find(r=>Q(r)==="date")||Z(t,"error",{node:e},"NL.E0500",{name:Re(e)})}function sR(e,t){let n=e.properties.find(s=>Q(s)==="date");if(!n?.value)return;let r=n.value;if(!He(r))return;let i=new Date(r),o=Sl(e.$container);switch(o.kind){case"invalid":return;case"missing":Z(t,"error",{node:n,property:"value"},"NL.E0501",{name:Re(e)});return;case"valid":i<o.date&&Z(t,"error",{node:n,property:"value"},"NL.E0502",{name:Re(e),date:r,start:o.iso});return}}function aR(e,t){let n=e.properties.some(i=>Q(i)==="date"),r=e.properties.some(i=>Q(i)==="after");!n&&!r&&Z(t,"error",{node:e},"NL.E0503",{name:Re(e)})}function lR(e,t){let n=e.properties.find(s=>Q(s)==="date");if(!n?.value)return;let r=n.value;if(!He(r))return;let i=new Date(r),o=Sl(e.$container);switch(o.kind){case"invalid":return;case"missing":t("error",`Milestone "${Re(e)}" has a date but the roadmap is missing "start:". Add start:YYYY-MM-DD to the roadmap.`,{node:n,property:"value"});return;case"valid":i<o.date&&Z(t,"error",{node:n,property:"value"},"NL.E0504",{name:Re(e),date:r,start:o.iso});return}}function cR(e,t){e.properties.some(r=>Q(r)==="on")||Z(t,"error",{node:e},"NL.E0505")}function uR(e,t){for(let n of e.properties)Q(n)==="footnote"&&t("error",`Property "footnote:" is not valid on ${vl(e)}. Footnotes attach via "on:" on the footnote declaration \u2014 declare \`footnote <id> on:<target-id>\` instead.`,{node:n})}function fR(e,t){let n=e.properties.some(i=>Q(i)==="duration"),r=e.properties.some(i=>Q(i)==="size");!n&&!r&&Z(t,"error",{node:e},"NL.E0600",{name:Re(e)})}function dR(e,t){for(let n of e.properties){let r=Q(n);(r==="size"||r==="duration"||r==="remaining"||r==="capacity")&&t("error",`"${r}" is not valid on ${e.$type==="ParallelBlock"?"parallel":"group"} (computed from children).`,{node:n})}}function pR(e,t){let n=e.content.filter(r=>!ja(r));n.length===0?t("error","Parallel block must contain at least 2 children.",{node:e}):n.length===1&&t("warning","Parallel block has only 1 child. Use at least 2 for parallel execution.",{node:e})}function hR(e,t){e.content.filter(r=>!ja(r)).length===0&&t("error","Group must contain at least 1 child.",{node:e})}function mR(e,t){e.properties.find(r=>Q(r)==="effort")||t("error",`Size "${Re(e)}" requires an "effort:" property.`,{node:e}),e.name&&(Ci.test(e.name)||zI.test(e.name))&&t("error",`Size id "${e.name}" collides with the raw duration pattern. Choose a different name (e.g. "xs", "small", "quarter").`,{node:e,property:"name"})}function gR(e,t){e.name&&Rd.has(e.name)&&t("error",`Status id "${e.name}" collides with the built-in status value. Built-ins: ${Hf.join(", ")}.`,{node:e,property:"name"})}function yR(e,t){let n=new Map;for(let r of e.roadmapEntries)if(yi(r)&&r.name){let i=n.get(r.name);i?t("error",`Duplicate size id "${r.name}". First declared at ${Pi(i)}.`,{node:r,property:"name"}):n.set(r.name,r)}}function xR(e,t){if(nt(e)&&e.entityType!=="swimlane")return;let n=e.properties.find(s=>Q(s)==="utilization-warn-at"),r=e.properties.find(s=>Q(s)==="utilization-over-at");if(!n||!r)return;let i=iR(n.value),o=iR(r.value);i===null||o===null||i>o&&t("error",`utilization-warn-at (${n.value}) must be \u2264 utilization-over-at (${r.value}). Warn fires below over; if both fire at the same point, the warn band collapses to zero.`,{node:n,property:"value"})}function ER(e,t){let n=new Map,r=o=>!!o.title||o.properties.length>0||o.description!==void 0,i=o=>{if(!o.name)return;let s=r(o);n.has(o.name)||n.set(o.name,[]),n.get(o.name).push({node:o,isDeclaration:s}),!s&&o.$container.$type==="NowlineFile"&&t("warning",`Bare "person ${o.name}" at roadmap top level has no declaration. Either add properties (title, link, etc.) or remove the line.`,{node:o})};for(let o of Mn(e))Va(o)&&i(o);for(let[o,s]of n){let a=s.filter(l=>l.isDeclaration);if(a.length>1)for(let l=1;l<a.length;l++)t("error",`Person "${o}" is declared more than once. First declaration at ${Pi(a[0].node)}.`,{node:a[l].node})}}function iR(e){if(!e||e===Qa)return null;if(Ll.test(e)){let t=parseFloat(e);return Number.isFinite(t)&&t>0?t/100:null}if(bd.test(e)){let t=parseFloat(e);return Number.isFinite(t)&&t>0?t:null}return null}function wR(e,t){if(Ni(e))return;let n=Q(e),r=e.value,i=e.values,o=r?[r]:i;switch(n){case"status":break;case"duration":r&&!Ci.test(r)&&Z(t,"error",{node:e,property:"value"},"NL.E0400",{value:r});break;case"size":r&&!Id(r)&&Z(t,"error",{node:e,property:"value"},"NL.E0401",{value:r});break;case"effort":r&&!Ci.test(r)&&Z(t,"error",{node:e,property:"value"},"NL.E0402",{value:r});break;case"remaining":{if(r)if(UI.test(r)){let s=parseFloat(r);(s<0||s>100)&&Z(t,"error",{node:e,property:"value"},"NL.E0404",{value:r})}else Ci.test(r)||Z(t,"error",{node:e,property:"value"},"NL.E0403",{value:r});break}case"date":case"start":case"end":r&&!He(r)&&Z(t,"error",{node:e,property:"value"},"NL.E0405",{key:n,value:r});break;case"scale":r&&!Ci.test(r)&&Z(t,"error",{node:e,property:"value"},"NL.E0406",{value:r});break;case"calendar":r&&!FI.has(r)&&Z(t,"error",{node:e,property:"value"},"NL.E0407",{value:r});break;case"on":case"after":case"before":o.length===0&&Z(t,"error",{node:e},"NL.E0408",{key:n});break;case"capacity":{if(!r)break;let s=e.$container,a=$2(s);if(a==="invalid")break;a==="lane"?(!Hy.test(r)||parseFloat(r)<=0)&&t("error",`Invalid swimlane capacity "${r}". Use a positive integer (e.g. capacity:5) or decimal (e.g. capacity:1.5). Percent literals are not allowed on swimlanes.`,{node:e,property:"value"}):Ll.test(r)?parseFloat(r)<=0&&t("error",`Item capacity "${r}" must be positive.`,{node:e,property:"value"}):Hy.test(r)?parseFloat(r)<=0&&t("error",`Item capacity "${r}" must be positive.`,{node:e,property:"value"}):t("error",`Invalid item capacity "${r}". Use a positive integer (capacity:2), decimal (capacity:0.5), or percent literal (capacity:50%).`,{node:e,property:"value"});break}case"overcapacity":{t("error",'"overcapacity:" was removed. Use "utilization-over-at:none" (and/or "utilization-warn-at:none") to suppress the lane utilization underline.',{node:e});break}case"utilization-warn-at":case"utilization-over-at":{if(!r)break;if(!D2(e.$container)){t("error",`"${n}:" is only valid on "swimlane" or "default swimlane".`,{node:e});break}if(r===Qa)break;if(Ll.test(r)){parseFloat(r)<=0&&t("error",`${n} value "${r}" must be positive.`,{node:e,property:"value"});break}if(bd.test(r)){parseFloat(r)<=0&&t("error",`${n} value "${r}" must be positive.`,{node:e,property:"value"});break}if(jI.test(r)){t("error",`Ambiguous ${n} value "${r}". Use the percent form ("${r}%") or the decimal-fraction form ("0.${r}") to make the intent explicit.`,{node:e,property:"value"});break}t("error",`Invalid ${n} value "${r}". Use a positive percent (e.g. 80%), a positive decimal fraction (e.g. 0.8), or "none" to opt out.`,{node:e,property:"value"});break}case"capacity-icon":break;case"icon":break;case"non-working":nt(e.$container)&&kR(r,e,t);break;default:if(bl.has(n)){if(n==="bg"||n==="fg"||n==="text")r&&!AR(r)&&Z(t,"error",{node:e,property:"value"},"NL.E0801",{value:r,key:n});else if(n in Nl){let s=Nl[n];r&&!s.has(r)&&Z(t,"error",{node:e,property:"value"},"NL.E0802",{value:r,key:n,allowed:[...s].join(", ")})}}break}}function TR(e,t){for(let n of e.properties){let r=Q(n);bl.has(r)&&Z(t,"error",{node:n},"NL.E0804",{key:r,entity:vl(e)})}}function _R(e,t){let n=WI[e.$type];if(!n)return;let r=e.$type==="ParallelBlock"||e.$type==="GroupBlock"?new Set(["size","duration","remaining","capacity"]):null;for(let i of e.properties){let o=Q(i);if(n.has(o)||Uy.has(o)||bl.has(o)||o==="footnote"||r?.has(o)||o==="wave"||Ni(i))continue;let s=[...n,...Uy],a=XI(o,n,e.$type)??cI(o,s)??"";Z(t,"warning",{node:i,property:"key"},"NL.W0700",{key:o,entity:vl(e),suggested:a})}}function vR(e,t){let n=Q(e),r=e.value;if(n==="bg"||n==="fg"||n==="text")AR(r)||Z(t,"error",{node:e,property:"value"},"NL.E0801",{value:r,key:n});else if(n==="non-working")kR(r,e,t);else if(n in Nl){let i=Nl[n];i.has(r)||Z(t,"error",{node:e,property:"value"},"NL.E0802",{value:r,key:n,allowed:[...i].join(", ")})}else bl.has(n)||Z(t,"error",{node:e,property:"key"},"NL.E0803",{key:n})}function AR(e){return MI.has(e)||GI.test(e)}function kR(e,t,n){e===void 0||$I.has(e)||Z(n,"error",{node:t,property:"value"},"NL.E0800",{value:e})}function $2(e){return e?Ke(e)?"lane":Ve(e)?"item":nt(e)?e.entityType==="swimlane"?"lane":"item":"invalid":"invalid"}function D2(e){return e?!!(Ke(e)||nt(e)&&e.entityType==="swimlane"):!1}function IR(e,t){let n=new Map,r=new Map;for(let i=0;i<e.roadmapEntries.length;i++){let o=e.roadmapEntries[i];yi(o)&&o.name?n.has(o.name)||n.set(o.name,i):Ka(o)&&o.name&&(r.has(o.name)||r.set(o.name,i))}for(let i=0;i<e.roadmapEntries.length;i++){let o=e.roadmapEntries[i];Wf(o,s=>{if(Ni(s))return;let a=Q(s);if(a==="size"&&s.value){let l=s.value,c=n.get(l);c===void 0?t("error",`Size "${l}" is not declared. Add "size ${l} effort:<literal>" earlier in the roadmap section.`,{node:s,property:"value"}):c>=i&&t("error",`Size "${l}" is referenced before its declaration. Move "size ${l}" above this entity.`,{node:s,property:"value"})}else if(a==="status"&&s.value){let l=s.value;if(Rd.has(l))return;let c=r.get(l);c===void 0?t("error",`Status "${l}" is not a built-in and has no declaration. Add "status ${l}" earlier in the roadmap section.`,{node:s,property:"value"}):c>=i&&t("error",`Status "${l}" is referenced before its declaration. Move "status ${l}" above this entity.`,{node:s,property:"value"})}})}}function RR(e,t){for(let{prop:n,key:r,value:i}of Ad(e))Z(t,"error",{node:n},"NL.E0302",{key:r,value:i})}function SR(e,t){let n=Sl(e),r=i=>{let o=i.properties??[],s=Tt(i),a=Ve(i)||et(i)||$e(i)||s;for(let l of o){let c=Q(l);if(c!=="after"&&c!=="before"||s&&c==="before")continue;let f=(l.value?[l.value]:l.values).filter(d=>!!d&&ot.test(d));if(f.length!==0){if(!a){Z(t,"error",{node:l},"NL.E0411",{key:c,type:Mr(i)});continue}f.length>1&&Z(t,"error",{node:l},"NL.E0410",{key:c});for(let d of f){if(!He(d)){Z(t,"error",l.value!==void 0?{node:l,property:"value"}:{node:l,property:"values",index:l.values.indexOf(d)},"NL.E0405",{key:c,value:d});continue}switch(n.kind){case"invalid":continue;case"missing":Z(t,"error",{node:l},"NL.E0412",{key:c,date:d});continue;case"valid":{let p=ve(d);p&&p<n.date&&Z(t,"error",{node:l},"NL.E0413",{key:c,date:d,start:n.iso})}}}}}};for(let i of Mn(e))NR(i)||r(i)}function bR(e,t){let n=new Map,r=(d,p)=>{n.has(d)||n.set(d,new Set),n.get(d).add(p)},i=(d,p,m)=>{if(d)for(let g of p){let E=Q(g);if(E==="after"){let x=g.value?[g.value]:g.values;for(let y of x)y&&(ot.test(y)||r(d,y))}else if(E==="before"){let x=g.value?[g.value]:g.values;for(let y of x)y&&(ot.test(y)||r(y,d))}}},o=d=>{if(Tt(d))return;let p=d.name,m=d.properties??[];i(p,m,e)};for(let d of Mn(e))NR(d)||o(d);let s=0,a=1,l=2,c=new Map;for(let d of n.keys())c.set(d,s);let u=new Set,f=(d,p)=>{c.set(d,a),p.push(d);for(let m of n.get(d)??[]){let g=c.get(m)??s;if(g===a){let E=p.indexOf(m),x=p.slice(E).concat(m),y=[...x].sort().join("\u2192");u.has(y)||(u.add(y),t("error",`Circular dependency detected: ${x.join(" \u2192 ")}.`,{node:e.roadmapDecl??e}))}else g===s&&f(m,p)}p.pop(),c.set(d,l)};for(let d of n.keys())(c.get(d)??s)===s&&f(d,[])}function NR(e){return en(e)&&en(e.$container)}function LR(e,t){let n=e.hasConfig?Ac.findNodeForKeyword(e.$cstNode,"config")?.offset:void 0,r=e.roadmapDecl?.$cstNode?.offset;n!==void 0&&r!==void 0&&n>r&&Z(t,"error",{node:e,property:"hasConfig"},"NL.E0001");for(let i of e.includes){let o=i.$cstNode?.offset??0;n!==void 0&&o>n&&Z(t,"error",{node:i},"NL.E0002"),r!==void 0&&o>r&&Z(t,"error",{node:i},"NL.E0003")}}function OR(e,t){if(!HI.test(e.version)){Z(t,"error",{node:e,property:"version"},"NL.E0100",{version:e.version});return}let n=parseInt(e.version.slice(1),10),r=parseInt(Fy.slice(1),10);n>r&&Z(t,"error",{node:e,property:"version"},"NL.E0101",{version:e.version,supported:Fy})}function PR(e,t){let n=new Set;for(let r of e.properties){let i=Q(r);if(!zy.has(i)){Z(t,"error",{node:r,property:"key"},"NL.E0102",{key:i,allowed:[...zy].join(", ")});continue}if(n.has(i)&&Z(t,"error",{node:r,property:"key"},"NL.E0103",{key:i}),n.add(i),i==="locale"){let o=r.value;VI.test(o)||Z(t,"error",{node:r,property:"value"},"NL.E0104",{value:o})}}}function CR(e,t){!e.name&&!e.title&&Z(t,"error",{node:e},"NL.E0301",{type:e.$type})}function $R(e,t){let n=new Map,r=(i,o)=>{if(!i)return;let s=n.get(i);s?Z(t,"error",{node:o},"NL.E0300",{name:i,location:Pi(s)}):n.set(i,o)};e.roadmapDecl?.name&&r(e.roadmapDecl.name,e.roadmapDecl);for(let i of e.roadmapEntries)Xf(i,r);for(let i of e.configEntries)Bt(i)&&i.name&&r(i.name,i)}function DR(e,t){let n=e.$document?.textDocument.getText()??e.$cstNode?.text;if(!n)return;let r=n.split(/\r?\n/);for(let i=0;i<r.length;i++){let o=r[i];if(o.length===0)continue;let s=o.match(/^([\t ]+)/);if(!s)continue;let a=s[1];if(a.includes(" ")&&a.includes(" ")){Z(t,"error",{node:e},"NL.E0005",{line:i+1});return}}}function MR(e,t){let n=e.roadmapEntries.some(Ke);e.roadmapDecl&&!n&&Z(t,"error",{node:e.roadmapDecl},"NL.E0004")}function FR(e,t){KI.has(e.value)||Z(t,"error",{node:e,property:"value"},"NL.E0200",{value:e.value})}function BR(e,t){let n=new Set;for(let r of e.options){let i=Q(r);n.has(i)&&Z(t,"error",{node:r},"NL.E0201",{key:i}),n.add(i)}}function WR(e,t){if(!Xy.has(e.entityType)){t("error",`"${e.entityType}" is not a supported entity type for default. Allowed: ${[...Xy].join(", ")}.`,{node:e,property:"entityType"});return}let n=e.$container,r=-1;for(let o=0;o<n.configEntries.length;o++){let s=n.configEntries[o];if(nt(s)&&s.entityType===e.entityType){if(r<0)r=o;else if(s===e){t("error",`Duplicate "default ${e.entityType}" declaration. Only one is allowed per entity type per file.`,{node:e});break}}}let i=BI[e.entityType];if(i)for(let o of e.properties){let s=Q(o);i.has(s)&&t("error",xd(s,e.entityType),{node:o})}if(e.entityType!=="roadmap")for(let o of e.properties){let s=Q(o);DI.has(s)&&Z(t,"warning",{node:o,property:"key"},"NL.W0703",{key:s,entityType:e.entityType})}}function XR(e,t){let n=e.roadmapDecl;if(!n)return;let r=new Map,i=new Map;for(let c of e.configEntries)Bt(c)&&c.name&&!r.has(c.name)?r.set(c.name,c):nt(c)&&c.entityType==="roadmap"&&(i.has("roadmap")||i.set("roadmap",c));let o=new Map;for(let c of e.roadmapEntries)Ya(c)&&c.name&&!o.has(c.name)&&o.set(c.name,c);let s,a,l=c=>{for(let u of c){let f=Q(u);f==="header-height"?s=u:f==="timeline-position"&&(a=u)}};for(let c of Gf("roadmap",n.properties,{styles:r,defaults:i,labels:o}))switch(c.level){case"inline":break;case"default":l(c.props);break;case"label":return;default:if(!c.decl)return;l(c.decl.properties)}s?.value==="none"&&(a?.value!=="bottom"&&a?.value!=="both"||Z(t,"warning",{node:a,property:"value"},"NL.W0704",{position:a.value}))}function UR(e,t){e.name&&By.has(e.name)&&Z(t,"error",{node:e,property:"name"},"NL.E0805",{name:e.name,builtins:[...Ja].sort().join(", ")});let n=e.properties.find(i=>Q(i)==="unicode");n?(!n.value||n.value.length===0)&&Z(t,"error",{node:n,property:"value"},"NL.E0807",{name:Re(e)}):Z(t,"error",{node:e},"NL.E0806",{name:Re(e)});let r=e.properties.find(i=>Q(i)==="ascii");if(r){let i=r.value??"";YI.test(i)||Z(t,"error",{node:r,property:"value"},"NL.E0808",{name:Re(e),length:i.length})}for(let i of e.properties){let o=Q(i);o!=="unicode"&&o!=="ascii"&&o!=="link"&&o!=="description"&&Z(t,"error",{node:i,property:"key"},"NL.E0809",{key:o})}}function GR(e,t){let n=new Map;for(let r of e.configEntries)if(xi(r)&&r.name){let i=n.get(r.name);i?Z(t,"error",{node:r,property:"name"},"NL.E0810",{name:r.name,location:Pi(i)}):n.set(r.name,r)}}function HR(e,t){let n=new Map;for(let i=0;i<e.configEntries.length;i++){let o=e.configEntries[i];xi(o)&&o.name&&(n.has(o.name)||n.set(o.name,i))}let r=(i,o,s,a)=>{if(o!=="icon"&&o!=="capacity-icon"||!s||!Id(s)||o==="capacity-icon"&&CI.has(s)||o==="icon"&&By.has(s))return;let l=n.get(s);if(l===void 0){let c=o==="capacity-icon"?[...Ei].sort().join(", "):[...Ja].sort().join(", ");Z(t,"error",{node:a,property:"value"},"NL.E0811",{key:o,value:s,builtins:c})}else l>=i&&Z(t,"error",{node:a,property:"value"},"NL.E0812",{key:o,value:s})};for(let i=0;i<e.configEntries.length;i++){let o=e.configEntries[i];if(Bt(o))for(let s of o.properties)r(i,Q(s),s.value,s);else if(nt(o))for(let s of o.properties)r(i,Q(s),s.value,s)}}function zR(e){let t=e.validation.ValidationRegistry,n=e.validation.NowlineValidator,r={NowlineFile:[n.checkFileStructure,n.checkUniqueIdentifiers,n.checkSwimlaneRequired,n.checkIndentationConsistency,n.checkRoadmapOnlyKeywordsPosition,n.checkForwardReferences,n.checkReferenceResolution,n.checkInlineDatePins,n.checkCircularDependencies,n.checkWaves,n.checkDuplicateSizeIds,n.checkCalendarBlockConsistency,n.checkHiddenTimelineStrip,n.checkPersonDeclarations,n.checkDuplicateSymbolIds,n.checkSymbolReferences,n.checkCalendarWeek,n.checkDuplicateCalendarDeclarationIds],NowlineDirective:[n.checkDirectiveVersion,n.checkDirectiveProperties],IncludeOption:[n.checkIncludeMode],IncludeDeclaration:[n.checkIncludeDuplicateOptions],EntityProperty:[n.checkPropertyValues],RoadmapDeclaration:[n.checkEntityIdOrTitle,n.checkRoadmapProperties,n.checkNoRawStyleProperties,n.checkUnknownEntityProperties],AnchorDeclaration:[n.checkEntityIdOrTitle,n.checkAnchorRequiredDate,n.checkAnchorAgainstStart,n.checkNoRawStyleProperties,n.checkNoFootnoteProperty,n.checkUnknownEntityProperties],SwimlaneDeclaration:[n.checkEntityIdOrTitle,n.checkNoRawStyleProperties,n.checkUtilizationOrdering,n.checkNoFootnoteProperty,n.checkUnknownEntityProperties],ItemDeclaration:[n.checkEntityIdOrTitle,n.checkItemRequiredDuration,n.checkNoRawStyleProperties,n.checkNoFootnoteProperty,n.checkUnknownEntityProperties],ParallelBlock:[n.checkParallelMinChildren,n.checkNoComputedProperties,n.checkNoRawStyleProperties,n.checkNoFootnoteProperty,n.checkUnknownEntityProperties],GroupBlock:[n.checkGroupMinChildren,n.checkNoComputedProperties,n.checkNoRawStyleProperties,n.checkNoFootnoteProperty,n.checkUnknownEntityProperties],MilestoneDeclaration:[n.checkEntityIdOrTitle,n.checkMilestoneRequirement,n.checkMilestoneAgainstStart,n.checkNoRawStyleProperties,n.checkNoFootnoteProperty,n.checkUnknownEntityProperties],FootnoteDeclaration:[n.checkEntityIdOrTitle,n.checkFootnoteOn,n.checkNoRawStyleProperties,n.checkUnknownEntityProperties],PersonDeclaration:[n.checkEntityIdOrTitle,n.checkNoRawStyleProperties,n.checkNoFootnoteProperty,n.checkUnknownEntityProperties],TeamDeclaration:[n.checkEntityIdOrTitle,n.checkNoRawStyleProperties,n.checkNoFootnoteProperty,n.checkUnknownEntityProperties],StyleDeclaration:[n.checkEntityIdOrTitle],StyleProperty:[n.checkStylePropertyEnum],SymbolDeclaration:[n.checkEntityIdOrTitle,n.checkSymbolDeclaration],NonWorkingDeclaration:[n.checkCalendarDeclaration],WorkingDeclaration:[n.checkCalendarDeclaration],LabelDeclaration:[n.checkEntityIdOrTitle,n.checkNoRawStyleProperties,n.checkUnknownEntityProperties],SizeDeclaration:[n.checkEntityIdOrTitle,n.checkSizeDeclaration,n.checkNoRawStyleProperties,n.checkUnknownEntityProperties],StatusDeclaration:[n.checkEntityIdOrTitle,n.checkStatusDeclaration,n.checkNoRawStyleProperties,n.checkUnknownEntityProperties],WaveDeclaration:[n.checkNoRawStyleProperties,n.checkNoFootnoteProperty,n.checkUnknownEntityProperties],DefaultDeclaration:[n.checkDefaultDeclaration,n.checkUtilizationOrdering],CalendarBlock:[n.checkCalendarBlock],ScaleBlock:[n.checkScaleBlock]};t.register(r,n)}var Nd=class{checkFileStructure(t,n){LR(t,n)}checkRoadmapOnlyKeywordsPosition(t,n){}checkDirectiveVersion(t,n){OR(t,n)}checkDirectiveProperties(t,n){PR(t,n)}checkEntityIdOrTitle(t,n){CR(t,n)}checkUniqueIdentifiers(t,n){$R(t,n)}checkIndentationConsistency(t,n){DR(t,n)}checkSwimlaneRequired(t,n){MR(t,n)}checkIncludeMode(t,n){FR(t,n)}checkIncludeDuplicateOptions(t,n){BR(t,n)}checkPropertyValues(t,n){wR(t,n)}checkAnchorRequiredDate(t,n){oR(t,n)}checkAnchorAgainstStart(t,n){sR(t,n)}checkMilestoneRequirement(t,n){aR(t,n)}checkMilestoneAgainstStart(t,n){lR(t,n)}checkFootnoteOn(t,n){cR(t,n)}checkNoFootnoteProperty(t,n){uR(t,n)}checkItemRequiredDuration(t,n){fR(t,n)}checkNoComputedProperties(t,n){dR(t,n)}checkParallelMinChildren(t,n){pR(t,n)}checkGroupMinChildren(t,n){hR(t,n)}checkNoRawStyleProperties(t,n){TR(t,n)}checkUnknownEntityProperties(t,n){_R(t,n)}checkRoadmapProperties(t,n){}checkStylePropertyEnum(t,n){vR(t,n)}checkSizeDeclaration(t,n){mR(t,n)}checkStatusDeclaration(t,n){gR(t,n)}checkWaves(t,n){for(let o of wd(t))kd(n,o);for(let o of Td(t))kd(n,o);let r=on(t);if(r.length===0)return;let i={lanes:t.roadmapEntries.filter(Ke),lookup:vs(t)};for(let o of As(i,r))kd(n,o)}checkDuplicateSizeIds(t,n){yR(t,n)}checkUtilizationOrdering(t,n){xR(t,n)}checkDefaultDeclaration(t,n){WR(t,n)}checkHiddenTimelineStrip(t,n){XR(t,n)}checkCalendarBlockConsistency(t,n){ZI(t,n)}checkCalendarBlock(t,n){JI(t,n)}checkScaleBlock(t,n){QI(t,n)}checkForwardReferences(t,n){IR(t,n)}checkReferenceResolution(t,n){RR(t,n)}checkInlineDatePins(t,n){SR(t,n)}checkCircularDependencies(t,n){bR(t,n)}checkPersonDeclarations(t,n){ER(t,n)}checkSymbolDeclaration(t,n){UR(t,n)}checkDuplicateSymbolIds(t,n){GR(t,n)}checkCalendarDeclaration(t,n){eR(t,n)}checkCalendarWeek(t,n){tR(t,n)}checkDuplicateCalendarDeclarationIds(t,n){nR(t,n)}checkSymbolReferences(t,n){HR(t,n)}};var jy=class extends Co{runConverter(t,n,r){return t.name==="PROPERTY_KEY_WITH_COLON"||t.name==="INCLUDE_OPTION_KEY"?n.endsWith(":")?n.slice(0,-1):n:super.runConverter(t,n,r)}},Yy=class extends Fa{isStartOfLine(t,n){if(!super.isStartOfLine(t,n))return!1;let r=n-1;for(;r>=0&&(t[r]===" "||t[r]===" ");)r--;for(;r>=0&&(t[r]==="\r"||t[r]===`
|
|
2917
|
-
`);)r--;for(;r>=0&&(t[r]===" "||t[r]===" ");)r--;return r<0||t[r]!=="\\"}},jR={parser:{TokenBuilder:()=>new Yy({indentTokenName:"INDENT",dedentTokenName:"DEDENT",whitespaceTokenName:"WS",ignoreIndentationDelimiters:[["[","]"]]}),Lexer:e=>new Pf(e),ParserConfig:()=>({maxLookahead:4}),ValueConverter:()=>new jy},validation:{NowlineValidator:()=>new Nd}};function Vy(e={}){let t=e.shared??Uo(Of(Cf),Xk),n=Uo(Lf({shared:t}),Uk,jR);return t.ServiceRegistry.register(n),zR(n),{shared:t,Nowline:n}}function Ky(e,t){return t.code===void 0?t.message:rn(e,t.code,...t.args??[])}function $i(e){let{content:t}=e,n=[...t.waves?.values()??[]];if(n.length===0)return;let r=new Map;n.forEach((u,f)=>{r.set(u.name,f+1)});let i=ks(t),o=n.map(u=>kl(u,i)),s=new WeakMap,a=new WeakMap,l=u=>{let f=Ed(u,r);for(let[d,p]of f.waveOf)s.set(d,p);for(let[d,p]of f.leadOf)a.set(d,p)};l([...t.swimlanes.values()]);for(let u of t.isolatedRegions)l([...u.content.swimlanes.values()]);let c=u=>Ve(u)?s.get(u):void 0;return{waves:n,index:r,floors:o,waveOf:s,leadOf:a,memberWave:c,isMember:(u,f)=>{let d=c(u);return d!==void 0&&(f===void 0||d===f)}}}var Ol="en-US",U2={"en-US":{nowLabel:"now",quarterPrefix:"Q",waveHeldBy:"held by",waveNoItems:"no items",waveBackgroundItem:"Background (no wave)",waveLegendBackground:"Background work (not in a wave)"},fr:{nowLabel:"maint.",quarterPrefix:"T",waveHeldBy:"retenue par",waveNoItems:"aucun \xE9l\xE9ment",waveBackgroundItem:"Travail de fond (hors vague)",waveLegendBackground:"Travail de fond (dans aucune vague)"}};function YR(e,t){return t??e??Ol}function jn(e){let t={};for(let n of G2(e)){let r=U2[n];if(r)for(let i of Object.keys(r))t[i]===void 0&&r[i]!==void 0&&(t[i]=r[i])}return t}function G2(e){let t=[],n=H2(e);for(;n.length>0;){t.includes(n)||t.push(n);let r=n.lastIndexOf("-");if(r<=0)break;n=n.slice(0,r)}return t.includes(Ol)||t.push(Ol),t}function H2(e){return e.split("-").map((n,r)=>r===0?n.toLowerCase():/^[a-zA-Z]{2}$/.test(n)?n.toUpperCase():n).join("-")}function Ld(e){return e==="hide"||e==="show"}var VR={red:"#f87171",blue:"#60a5fa",yellow:"#facc15",green:"#34d399",orange:"#fb923c",purple:"#a78bfa",gray:"#94a3b8",navy:"#818cf8",white:"#e2e8f0"},Yn={bg:"none",fg:"#e2e8f0",text:"#e2e8f0",border:"solid",icon:"none",shadow:"none",font:"sans",weight:"normal",italic:!1,textSize:"md",padding:"sm",spacing:"sm",headerHeight:"sm",cornerRadius:"sm",bracket:"none",capacityIcon:"multiplier"},qy={name:"dark",surface:{page:"#0b1220",chart:"#111827",headerBox:"#1e293b"},entities:{roadmap:{...Yn,headerHeight:"md",padding:"md"},swimlane:{...Yn,fg:"#e2e8f0",text:"#e2e8f0",padding:"sm",spacing:"none",textSize:"sm"},item:{...Yn,bg:"#0f172a",fg:"#94a3b8",text:"#e2e8f0",shadow:"subtle",cornerRadius:"sm"},parallel:{...Yn,bg:"#8c84ff",bracket:"dashed",padding:"xs"},group:{...Yn,bg:"#f0a832",bracket:"solid",padding:"xs",fg:"#94a3b8"},anchor:{...Yn,bg:"#0b1220",fg:"#cbd5e1",text:"#cbd5e1",cornerRadius:"sm"},milestone:{...Yn,bg:"#e2e8f0",fg:"#e2e8f0",text:"#0b1220",border:"solid"},footnote:{...Yn,bg:"none",fg:"#94a3b8",text:"#e2e8f0",textSize:"sm"},label:{...Yn,bg:"#1e293b",fg:"#94a3b8",text:"#e2e8f0",textSize:"xs",padding:"xs",cornerRadius:"full"}},swimlane:{bandEven:"#111827",bandOdd:"#0f172a",separator:"#1f2937",frameTabText:"#e2e8f0",frameTabMuted:"#94a3b8",border:"#334155",tabFill:"#1e293b",tabStroke:"#475569",tabText:"#e2e8f0",ownerText:"#94a3b8",footnoteIndicator:"#f87171",rowTintEven:"#0f172a",rowTintOdd:"#1e293b",utilizationOk:"#34d399",utilizationWarn:"#fbbf24",utilizationOver:"#f87171"},timeline:{gridLine:"#475569",minorGridLine:"#334155",nonWorkingSeam:"#6b7a90",nonWorkingFill:"#94a3b8",tickMark:"#334155",labelText:"#cbd5e1",panelFill:"#0f172a",border:"#334155"},header:{cardBorder:"#475569",author:"#94a3b8"},item:{overflowX:"#f87171",linkIconFg:"#94a3b8",overflowTailFill:"#7f1d1d",overflowTailStroke:"#f87171",overflowCaption:"#fecaca"},parallel:{bracketStroke:"#cbd5e1"},anchorDiamond:{fill:"#0f172a",stroke:"#cbd5e1",label:"#cbd5e1",cutLine:"#94a3b8"},milestoneDiamond:{fill:"#e2e8f0",label:"#e2e8f0",cutLineNormal:"#a5b4fc",cutLineOverrun:"#ef4444",slack:"#cbd5e1"},footnotePanel:{fill:"#0f172a",border:"#334155",header:"#e2e8f0",title:"#e2e8f0",description:"#94a3b8",number:"#f87171"},nowline:{stroke:"#f87171",labelText:"#0b1220",labelBg:"#f87171"},milestone:{dashedInk:"#a5b4fc",overrun:"#ef4444"},anchor:{predecessorLine:"#94a3b8"},dependency:{edgeStroke:"#cbd5e1",overflowStroke:"#ef5350"},footnote:{indicatorText:"#f87171",descriptionMuted:"#94a3b8"},includeRegion:{border:"#475569",label:"#cbd5e1",badge:"#94a3b8",fill:"#0b1220",tabFill:"#111827",tabStroke:"#475569",tabText:"#e2e8f0",badgeFill:"#1e293b",badgeStroke:"#475569",badgeText:"#94a3b8"},wave:{stripFill:"#042f2e",stripFillAlt:"#134e4a",labelText:"#99f6e4",labelMuted:"#5eead4",boundary:"#2dd4bf",hatch:"#0f172a",hatchOnDark:"#ffffff"},arrowhead:{neutral:"#94a3b8",light:"#64748b",dark:"#e2e8f0"},status:{done:"#34d399",inProgress:"#60a5fa",atRisk:"#facc15",blocked:"#ef4444",planned:"#94a3b8",neutral:"#94a3b8"},statusTint:{done:"#052e16",inProgress:"#172554",atRisk:"#422006",blocked:"#7f1d1d",planned:"#1e293b",neutral:"#1e293b"},statusDot:{onLight:{done:"#065f46",inProgress:"#1e3a8a",atRisk:"#92400e",blocked:"#991b1b",planned:"#334155",neutral:"#334155"},onDark:{done:"#d1fae5",inProgress:"#dbeafe",atRisk:"#fef3c7",blocked:"#fee2e2",planned:"#e2e8f0",neutral:"#e2e8f0"}},attribution:{mark:"#cbd5e1",link:"#f87171"},diagnostic:{overlayBg:"#7f1d1d",errorText:"#fecaca"}};var KR={red:"#4a4a4a",blue:"#6b6b6b",green:"#8a8a8a",yellow:"#c8c8c8",orange:"#5c5c5c",purple:"#3a3a3a",gray:"#9e9e9e",navy:"#2a2a2a",white:"#ffffff"},Vn={bg:"none",fg:"#1a1a1a",text:"#1a1a1a",border:"solid",icon:"none",shadow:"none",font:"sans",weight:"normal",italic:!1,textSize:"md",padding:"sm",spacing:"sm",headerHeight:"sm",cornerRadius:"sm",bracket:"none",capacityIcon:"multiplier"},Zy={name:"grayscale",surface:{page:"#f5f5f5",chart:"#ffffff",headerBox:"#ffffff"},entities:{roadmap:{...Vn,headerHeight:"md",padding:"md"},swimlane:{...Vn,fg:"#3a3a3a",text:"#3a3a3a",padding:"sm",spacing:"none",textSize:"sm"},item:{...Vn,bg:"#ffffff",fg:"#9e9e9e",text:"#1a1a1a",shadow:"subtle",cornerRadius:"sm"},parallel:{...Vn,bg:"#9e9e9e",bracket:"dashed",padding:"xs"},group:{...Vn,bg:"#595959",bracket:"solid",padding:"xs",fg:"#595959"},anchor:{...Vn,bg:"#1a1a1a",fg:"#1a1a1a",text:"#1a1a1a",cornerRadius:"sm"},milestone:{...Vn,bg:"#2a2a2a",fg:"#2a2a2a",text:"#ffffff",border:"solid"},footnote:{...Vn,bg:"none",fg:"#595959",text:"#595959",textSize:"sm"},label:{...Vn,bg:"#e8e8e8",fg:"#595959",text:"#595959",textSize:"xs",padding:"xs",cornerRadius:"full"}},swimlane:{bandEven:"#ffffff",bandOdd:"#f5f5f5",separator:"#d4d4d4",frameTabText:"#3a3a3a",frameTabMuted:"#737373",border:"#d4d4d4",tabFill:"#e8e8e8",tabStroke:"#bdbdbd",tabText:"#3a3a3a",ownerText:"#737373",footnoteIndicator:"#4a4a4a",rowTintEven:"#ffffff",rowTintOdd:"#f5f5f5",utilizationOk:"#8a8a8a",utilizationWarn:"#595959",utilizationOver:"#1a1a1a"},timeline:{gridLine:"#bdbdbd",minorGridLine:"#d4d4d4",nonWorkingSeam:"#9a9a9a",nonWorkingFill:"#737373",tickMark:"#bdbdbd",labelText:"#737373",panelFill:"#ffffff",border:"#d4d4d4"},header:{cardBorder:"#d4d4d4",author:"#737373"},item:{overflowX:"#1a1a1a",linkIconFg:"#1a1a1a",overflowTailFill:"#e8e8e8",overflowTailStroke:"#4a4a4a",overflowCaption:"#3a3a3a"},parallel:{bracketStroke:"#3a3a3a"},anchorDiamond:{fill:"#ffffff",stroke:"#3a3a3a",label:"#3a3a3a",cutLine:"#737373"},milestoneDiamond:{fill:"#1a1a1a",label:"#1a1a1a",cutLineNormal:"#2a2a2a",cutLineOverrun:"#4a4a4a",slack:"#1a1a1a"},footnotePanel:{fill:"#ffffff",border:"#d4d4d4",header:"#1a1a1a",title:"#1a1a1a",description:"#737373",number:"#4a4a4a"},nowline:{stroke:"#1a1a1a",labelText:"#ffffff",labelBg:"#1a1a1a"},milestone:{dashedInk:"#9e9e9e",overrun:"#4a4a4a"},anchor:{predecessorLine:"#9e9e9e"},dependency:{edgeStroke:"#595959",overflowStroke:"#1a1a1a"},footnote:{indicatorText:"#4a4a4a",descriptionMuted:"#737373"},includeRegion:{border:"#9e9e9e",label:"#3a3a3a",badge:"#737373",fill:"#f5f5f5",tabFill:"#ffffff",tabStroke:"#bdbdbd",tabText:"#1a1a1a",badgeFill:"#e8e8e8",badgeStroke:"#bdbdbd",badgeText:"#595959"},wave:{stripFill:"#fafafa",stripFillAlt:"#e0e0e0",labelText:"#212121",labelMuted:"#616161",boundary:"#616161",hatch:"#000000",hatchOnDark:"#ffffff"},arrowhead:{neutral:"#595959",light:"#9e9e9e",dark:"#1a1a1a"},status:{done:"#8a8a8a",inProgress:"#595959",atRisk:"#737373",blocked:"#3a3a3a",planned:"#bdbdbd",neutral:"#bdbdbd"},statusTint:{done:"#ebebeb",inProgress:"#e4e4e4",atRisk:"#eeeeee",blocked:"#dcdcdc",planned:"#f5f5f5",neutral:"#f5f5f5"},statusDot:{onLight:{done:"#3a3a3a",inProgress:"#2a2a2a",atRisk:"#4a4a4a",blocked:"#1a1a1a",planned:"#595959",neutral:"#595959"},onDark:{done:"#d4d4d4",inProgress:"#e8e8e8",atRisk:"#c8c8c8",blocked:"#f0f0f0",planned:"#d4d4d4",neutral:"#d4d4d4"}},attribution:{mark:"#9e9e9e",link:"#1a1a1a"},diagnostic:{overlayBg:"#e8e8e8",errorText:"#1a1a1a"}};var qR={red:"#e53935",blue:"#1e88e5",yellow:"#fdd835",green:"#43a047",orange:"#fb8c00",purple:"#8e24aa",gray:"#9e9e9e",navy:"#0d47a1",white:"#ffffff"},Kn={bg:"none",fg:"#0f172a",text:"#0f172a",border:"solid",icon:"none",shadow:"none",font:"sans",weight:"normal",italic:!1,textSize:"md",padding:"sm",spacing:"sm",headerHeight:"sm",cornerRadius:"sm",bracket:"none",capacityIcon:"multiplier"},Jy={name:"light",surface:{page:"#f8fafc",chart:"#ffffff",headerBox:"#ffffff"},entities:{roadmap:{...Kn,headerHeight:"md",padding:"md"},swimlane:{...Kn,fg:"#334155",text:"#334155",padding:"sm",spacing:"none",textSize:"sm"},item:{...Kn,bg:"#ffffff",fg:"#94a3b8",text:"#0f172a",shadow:"subtle",cornerRadius:"sm"},parallel:{...Kn,bg:"#635cf1",bracket:"dashed",padding:"xs"},group:{...Kn,bg:"#ea9818",bracket:"solid",padding:"xs",fg:"#475569"},anchor:{...Kn,bg:"#0f172a",fg:"#0f172a",text:"#0f172a",cornerRadius:"sm"},milestone:{...Kn,bg:"#312e81",fg:"#312e81",text:"#ffffff",border:"solid"},footnote:{...Kn,bg:"none",fg:"#475569",text:"#475569",textSize:"sm"},label:{...Kn,bg:"#f1f5f9",fg:"#475569",text:"#475569",textSize:"xs",padding:"xs",cornerRadius:"full"}},swimlane:{bandEven:"#ffffff",bandOdd:"#f8fafc",separator:"#e2e8f0",frameTabText:"#334155",frameTabMuted:"#64748b",border:"#e2e8f0",tabFill:"#f1f5f9",tabStroke:"#cbd5e1",tabText:"#334155",ownerText:"#64748b",footnoteIndicator:"#dc2626",rowTintEven:"#ffffff",rowTintOdd:"#f8fafc",utilizationOk:"#10b981",utilizationWarn:"#f59e0b",utilizationOver:"#ef4444"},timeline:{gridLine:"#cbd5e1",minorGridLine:"#e2e8f0",nonWorkingSeam:"#a0aec0",nonWorkingFill:"#64748b",tickMark:"#cbd5e1",labelText:"#64748b",panelFill:"#ffffff",border:"#e2e8f0"},header:{cardBorder:"#e2e8f0",author:"#64748b"},item:{overflowX:"#dc2626",linkIconFg:"#0f172a",overflowTailFill:"#fee2e2",overflowTailStroke:"#ef4444",overflowCaption:"#b91c1c"},parallel:{bracketStroke:"#334155"},anchorDiamond:{fill:"#ffffff",stroke:"#334155",label:"#334155",cutLine:"#64748b"},milestoneDiamond:{fill:"#0f172a",label:"#0f172a",cutLineNormal:"#1e1b4b",cutLineOverrun:"#b91c1c",slack:"#0f172a"},footnotePanel:{fill:"#ffffff",border:"#e2e8f0",header:"#0f172a",title:"#0f172a",description:"#64748b",number:"#dc2626"},nowline:{stroke:"#e53e3e",labelText:"#ffffff",labelBg:"#e53e3e"},milestone:{dashedInk:"#94a3b8",overrun:"#ef4444"},anchor:{predecessorLine:"#94a3b8"},dependency:{edgeStroke:"#475569",overflowStroke:"#d32f2f"},footnote:{indicatorText:"#e53e3e",descriptionMuted:"#64748b"},includeRegion:{border:"#94a3b8",label:"#334155",badge:"#64748b",fill:"#f8fafc",tabFill:"#ffffff",tabStroke:"#cbd5e1",tabText:"#0f172a",badgeFill:"#e2e8f0",badgeStroke:"#cbd5e1",badgeText:"#475569"},wave:{stripFill:"#f0fdfa",stripFillAlt:"#ccfbf1",labelText:"#134e4a",labelMuted:"#0f766e",boundary:"#0d9488",hatch:"#0f172a",hatchOnDark:"#ffffff"},arrowhead:{neutral:"#475569",light:"#94a3b8",dark:"#0f172a"},status:{done:"#10b981",inProgress:"#3b82f6",atRisk:"#f59e0b",blocked:"#ef4444",planned:"#94a3b8",neutral:"#94a3b8"},statusTint:{done:"#ecfdf5",inProgress:"#eff6ff",atRisk:"#fffbeb",blocked:"#fee2e2",planned:"#f8fafc",neutral:"#f8fafc"},statusDot:{onLight:{done:"#065f46",inProgress:"#1e3a8a",atRisk:"#92400e",blocked:"#991b1b",planned:"#334155",neutral:"#334155"},onDark:{done:"#d1fae5",inProgress:"#dbeafe",atRisk:"#fef3c7",blocked:"#fee2e2",planned:"#e2e8f0",neutral:"#e2e8f0"}},attribution:{mark:"#94a3b8",link:"#e53e3e"},diagnostic:{overlayBg:"#fee2e2",errorText:"#991b1b"}};var ZR=["light","dark","grayscale"],Qy={light:Jy,dark:qy,grayscale:Zy};var z2={greyscale:"grayscale"};function ex(e){let t=e.toLowerCase(),n=z2[t]??t;return ZR.find(r=>r===n)}var j2={grey:"gray",violet:"purple"};function qn(e,t){if(e==="none")return"none";if(e.startsWith("#"))return e;let n=t.name==="dark"?VR:t.name==="grayscale"?KR:qR,r=j2[e]??e,i=n[r];return typeof i=="string"?i:e}function Y2(e,t){return{bg:qn(e.bg,t),fg:qn(e.fg,t),text:qn(e.text,t),border:e.border,icon:e.icon,shadow:e.shadow,font:e.font,weight:e.weight,italic:e.italic,textSize:e.textSize,padding:e.padding,spacing:e.spacing,headerHeight:e.headerHeight,cornerRadius:e.cornerRadius,bracket:e.bracket,headerPosition:"beside",capacityIcon:e.capacityIcon,timelinePosition:"top",minorGrid:!1,nonWorking:"hide"}}function JR(e,t,n,r){switch(t){case"bg":e.bg=qn(n,r);break;case"fg":e.fg=qn(n,r);break;case"text":e.text=qn(n,r);break;case"border":(n==="solid"||n==="dashed"||n==="dotted")&&(e.border=n);break;case"icon":e.icon=n;break;case"shadow":(n==="none"||n==="subtle"||n==="soft"||n==="hard")&&(e.shadow=n);break;case"font":(n==="sans"||n==="serif"||n==="mono")&&(e.font=n);break;case"weight":(n==="thin"||n==="light"||n==="normal"||n==="bold")&&(e.weight=n);break;case"italic":e.italic=n==="true";break;case"text-size":e.textSize=Pl(n,"xl");break;case"padding":e.padding=Pl(n,"xl");break;case"spacing":e.spacing=Pl(n,"xl");break;case"header-height":e.headerHeight=Pl(n,"xl");break;case"corner-radius":e.cornerRadius=Pl(n,"full");break;case"bracket":(n==="none"||n==="solid"||n==="dashed")&&(e.bracket=n);break;case"header-position":(n==="beside"||n==="above")&&(e.headerPosition=n);break;case"capacity-icon":e.capacityIcon=n;break;case"timeline-position":(n==="top"||n==="bottom"||n==="both")&&(e.timelinePosition=n);break;case"minor-grid":e.minorGrid=n==="true";break;case"non-working":Ld(n)&&(e.nonWorking=n);break;default:break}}function Pl(e,t){let n=["none","xs","sm","md","lg","xl","full"],r=n.indexOf(t),i=n.indexOf(e);return i<0?"md":i>r?n[r]:n[i]}function V2(e,t,n){if(t)for(let r of t.properties)JR(e,Q(r),r.value,n)}function K2(e,t,n){for(let r of t){let i=Q(r);r.value!==void 0&&JR(e,i,r.value,n)}}function Se(e,t,n){let r=n.theme.entities[e],i=Y2(r,n.theme);for(let o of Gf(e,t,n))switch(o.level){case"default":case"inline":K2(i,o.props,n.theme);break;case"label":break;default:V2(i,o.decl,n.theme)}return i}function QR(e,t){return Se("label",e.properties,t)}function tS(e,t){let r=vt(e.roadmapDecl?.properties??[],"scale")?.value,i="weeks",o,s;if(r)if(r==="days"||r==="weeks"||r==="months"||r==="quarters"||r==="years")i=r;else{let c=/^(\d+)([dwmqy])$/.exec(r);if(c){let u=Math.max(1,parseInt(c[1],10));switch(c[2]){case"d":i="days";break;case"w":i="weeks";break;case"m":i="months";break;case"q":i="quarters";break;case"y":i="years";break}o=tx(i)*u,s=1}}let a=s??Ek[i]??4,l=c=>s===void 0&&!c?{labelEveryDefault:!0}:{};if(t){let c=vt(t.properties,"label-every"),u=c&&parseInt(c.value,10)||0,f=u!==0?Math.max(1,u):a;return{unit:i,labelEvery:f,pixelsPerUnit:o??tx(i),...l(u!==0)}}return{unit:i,labelEvery:a,pixelsPerUnit:o??tx(i),...l(!1)}}function tx(e){switch(e){case"days":return mk;case"weeks":return 40;case"months":return 80;case"quarters":return 160;case"years":return 320}}var q2=.5,nx=.5,Cl=7;function Br(e){return e==="months"||e==="quarters"||e==="years"}function Od(e,t){let n=e.getUTCFullYear(),r=e.getUTCMonth();switch(t){case"months":return new Date(Date.UTC(n,r+1,1));case"quarters":return new Date(Date.UTC(n,r-r%3+3,1));case"years":return new Date(Date.UTC(n+1,0,1))}}function Z2(e,t){if(e.getUTCDate()!==1)return!1;let n=e.getUTCMonth();switch(t){case"months":return!0;case"quarters":return n%3===0;case"years":return n===0}}function Di(e,t,n,r,i){let o=Math.ceil(t-1e-6);if(i?.hasNonWorkingDays){if(!Br(n)&&o<=0)return 0;let a=o<=0?e:Xe(i.dateAtWorkingIndex(e,o-1),1),l=Br(n)?eS(a,n):n==="weeks"?nS(a,e,i.weekStart):a;return i.workingIndexOf(e,l)}if(!Br(n))return Math.ceil(t/r)*r;let s=Xe(e,o);return At(e,eS(s,n))}function eS(e,t){return Z2(e,t)?e:Od(e,t)}function nS(e,t,n){let r=n===void 0?-At(t,e):n-e.getUTCDay();return Xe(e,(r%Cl+Cl)%Cl)}function J2(e,t,n){return nS(Xe(e,1),t,n)}function Pd(e,t,n,r=Ol){if(e.calendar?.hasNonWorkingDays)return Q2(e,t,e.calendar,r);if(Br(t.unit))return oB(e,t,t.unit,r);let i=n.daysPerUnit(t.unit),o=i*e.pixelsPerDay,s=Math.max(1,Math.round(e.widthPx/e.pixelsPerDay)),a=Math.floor(s/i)+1,l=[];for(let c=0;c<a;c++){let u=c*i,f=e.originX+u*e.pixelsPerDay,d=c%t.labelEvery===0,p=c===a-1;l.push({x:f,labelX:p?void 0:f+o/2,major:d,label:d&&!p?ox(t.unit,Xe(e.domain[0],u),c,r):void 0})}return l}function Q2(e,t,n,r){let{unit:i}=t,[o,s]=e.domain,a=x=>Br(i)?Od(x,i):i==="weeks"?J2(x,o,n.weekStart):Xe(x,1),l=[o];for(let x=a(o);x<s;x=a(x))l.push(x);let c=e.forward(s),u=[];l.forEach((x,y)=>{let w=e.forward(x);(y+1<l.length?e.forward(l[y+1]):c)>w&&!nB(e,i,l,y)&&u.push({date:x,x:w})});let f=i==="days"&&t.labelEveryDefault===!0&&n.weekStart!==void 0,d=(x,y)=>f?tB(x,n,e.showsNonWorking):y%t.labelEvery===0,m=(e.showsNonWorking?VA(i):n.daysPerUnit(i))*e.pixelsPerDay,g=u.map(({date:x,x:y},w)=>{let _=(w+1<u.length?u[w+1].x:c)-y,k=d(x,w),N=k?ox(i,x,w,r):void 0,B=N===void 0?0:se(N,Ri),$=Br(i)?w===0||w===u.length-1:_<m-q2,X=N!==void 0&&!(B>_&&$);return{x:y,columnPx:_,major:k,label:N,labelPx:B,isNarrowed:$,isShown:X}});Br(i)||eB(g);let E=g.map(x=>({x:x.x,labelX:x.x+x.columnPx/2,major:x.major,label:x.isShown?x.label:void 0}));return s>o&&E.push({x:c,labelX:void 0,major:d(s,u.length),label:void 0}),E}function eB(e){let t=n=>{let r=e[n];return r===void 0||r.isShown?0:r.columnPx/2};e.forEach((n,r)=>{if(n.label===void 0||n.isShown||!n.isNarrowed||!(e[r-1]?.isNarrowed===!0||e[r+1]?.isNarrowed===!0))return;let o=n.labelPx/2,s=n.columnPx/2;n.isShown=o<=s+t(r-1)&&o<=s+t(r+1)})}function tB(e,t,n){let r=t.weekStart;if(n)return e.getUTCDay()===r;let i=(e.getUTCDay()-r+Cl)%Cl;for(let o=1;o<=i;o++)if(t.isWorkingDay(Xe(e,-o)))return!1;return!0}function nB(e,t,n,r){let i=e.calendar;if(!e.showsNonWorking||!i||!Br(t)||r===0||r!==n.length-1)return!1;let[o,s]=e.domain;return i.workingIndexOf(o,n[r])>=i.workingIndexOf(o,s)}function rx(e,t,n,r){let i=e.calendar;if(!i?.hasNonWorkingDays)return;let o=i.nonWorkingRuns(e.domain[0],e.domain[1]);if(o.length===0)return;let[s,a]=e.range;if(e.showsNonWorking)return o.map(c=>iB(e,c,n));let l=c=>t.some(u=>Math.abs(u.x-c)<nx&&(u.major||r));return o.map(c=>{let u=e.forward(c.from),f={x:u,width:e.forward(Xe(c.through,1))-u,from:c.from,through:c.through};c.titles.length>0&&(f.titles=c.titles,f.label=iS(c,i.workingWeekdays),f.cut=!0);let d=u-s>nx&&a-u>nx;return n==="days"&&d&&!l(u)&&(f.seam=!0),f})}function ix(e){let t=e.calendar?.workingExceptionRuns(e.domain[0],e.domain[1])??[];if(t.length===0)return;let[n]=e.range;return t.map(r=>({x:Math.max(n,e.forward(r.from)),from:r.from,through:r.through,titles:r.titles,label:rB(r)}))}function rB(e){let t=At(e.from,e.through)+1;return`${e.titles.join(", ")}${rS}+${t}d`}var rS=" \xB7 ";function iS(e,t){let n=0;for(let i=e.from;i<=e.through;i=Xe(i,1))t.has(i.getUTCDay())&&n++;let r=e.titles.join(", ");return n>0?`${r}${rS}${n}d`:r}function iB(e,t,n){let[r,i]=e.range,o=Math.max(r,e.forward(t.from)),s=Math.min(i,e.forward(Xe(t.through,1))),a={x:o,width:s-o,from:t.from,through:t.through};return t.titles.length>0&&(a.titles=t.titles,e.calendar&&(a.label=iS(t,e.calendar.workingWeekdays))),(n==="days"||n==="weeks"||t.titles.length>0)&&(a.band=!0),a}function oB(e,t,n,r){let[i,o]=e.domain,s=[i];for(let c=Od(i,n);c<o;c=Od(c,n))s.push(c);o>i&&s.push(o);let a=s.map(c=>e.forward(c)),l=s.length-1;return s.map((c,u)=>{let f=a[u],d=u%t.labelEvery===0;if(u===l)return{x:f,labelX:void 0,major:d,label:void 0};let p=a[u+1]-f,m=d?ox(n,c,u,r):void 0,g=u===0||u===l-1;return m!==void 0&&g&&se(m,Ri)>p&&(m=void 0),{x:f,labelX:f+p/2,major:d,label:m}})}function ox(e,t,n,r){switch(e){case"days":return`${t.getUTCMonth()+1}/${t.getUTCDate()}`;case"weeks":{let i=t.toLocaleString(r,{month:"short",timeZone:"UTC"}),o=t.getUTCDate().toString().padStart(2,"0");return`${i} ${o}`}case"months":return t.toLocaleString(r,{month:"short",timeZone:"UTC"});case"quarters":{let i=Math.floor(t.getUTCMonth()/3)+1;return`${jn(r).quarterPrefix}${i} ${t.getUTCFullYear()}`}case"years":return`${t.getUTCFullYear()}`}}function oS(e,t,n){let r=n.theme??"light",i=Qy[r],o=YR(n.locale,aB(e)),s={theme:i,styles:t.config.styles,defaults:t.config.defaults,labels:t.content.labels},a=Se("roadmap",e.roadmapDecl?.properties??[],s);return{themeName:r,theme:i,locale:o,styleCtx:s,roadmapStyle:a}}function sS(e,t,n,r,i){let{config:o,working:s}=Yf(e,t),a=tS(e,t.config.scale),{startDate:l,endDate:c}=sB(e,i,n.today,a),u=Ld(n.nonWorking)?n.nonWorking:r.roadmapStyle.nonWorking,f=u==="show"&&s.hasNonWorkingDays,d=Math.max(1,s.workingIndexOf(l,c)),p=f?Math.max(1,At(l,c)):d;return{cal:o,calendar:s,preset:a,schedule:i,startDate:l,naturalEndDate:c,spanDays:d,timelineDays:p,nonWorking:u}}function sB(e,t,n,r){let i=e.roadmapDecl?.properties??[],{config:o,working:s}=t.calendar,{startDate:a}=t,l=ie(i,"length"),c=0;if(l){let m=ls(l,o);m>0&&(c=m)}let u=t.extent.contentEndDay;if(n&&!(c>0)){let m=s.workingIndexOf(a,n);m>0&&(u=Math.max(u,m))}let f=jA(r.unit,o),d=Di(a,u>0?u:4*o.daysPerWeek,r.unit,f,s),p=Math.max(c,d);return{startDate:a,endDate:s.dateAtWorkingIndex(a,Math.max(1,p))}}function aB(e){return vt(e.directive?.properties??[],"locale")?.value}var lB=160,cB=64,uB=1e-6,Is=class{constructor(t,n){M(this,"scale");M(this,"startDate");M(this,"spanDays");M(this,"unit");M(this,"calendar");this.scale=n,this.startDate=t.startDate,this.spanDays=t.spanDays,this.unit=t.preset.unit,this.calendar=t.calendar}isPast(t,n){return this.scale.indexAtX(t)>n+uB}boundaryAtOrAfterX(t){return this.boundaryAtOrAfter(this.scale.indexAtX(t))}boundaryAtOrAfter(t){return Di(this.startDate,t,this.unit,this.calendar.daysPerUnit(this.unit),this.calendar)}captionColumn(t){let n=this.boundaryAtOrAfter(t);return{start:n,end:this.nextBoundary(n)}}captionLimit(t){let{start:n,end:r}=this.captionColumn(t),i=this.xAt(n),o=r;for(let s=0;s<cB;s++){let a=this.nextBoundary(o);if(a<=o||this.xAt(a)-i>lB)break;o=a}return o}nextBoundary(t){return Di(this.startDate,t+.5,this.unit,this.calendar.daysPerUnit(this.unit),this.calendar)}xAt(t){return this.scale.forward(this.calendar.dateAtWorkingIndex(this.startDate,t))}captionCapX(t){let n=this.isPast(t,this.spanDays)?Math.max(this.spanDays,this.boundaryAtOrAfterX(t)):this.spanDays;return this.xAt(this.captionLimit(n))}};function aS(e,t){e.box.y+=t;for(let n of e.inlineDatePins??[])n.glyphTopLeft.y+=t;if(e.kind==="item"){for(let n of e.labelChips)n.box.y+=t;e.overflowBox&&(e.overflowBox.y+=t);return}for(let n of e.children)aS(n,t)}function Rs(e,t){e.box.y+=t;for(let n of e.children)aS(n,t);for(let n of e.nested)Rs(n,t)}function lS(e,t){e.box.y+=t;for(let n of e.nestedSwimlanes)Rs(n,t);for(let n of[...e.anchors??[],...e.milestones??[]])n.center.y+=t,n.labelBox.y+=t,n.cutTopY+=t,n.cutBottomY+=t;for(let n of e.milestones??[])for(let r of n.slackArrows??[])r.y+=t;for(let n of e.edges??[])for(let r of n.waypoints)r.y+=t}function cS(e,t,n){e.cutTopY+=n,e.cutBottomY+=n,e.slackArrows?.forEach((r,i)=>{let o=t.slackArrows?.[i];o&&"y"in o&&(r.y+=n)})}var sx=class{constructor(t,n){M(this,"id");M(this,"anchor");this.id=t,this.anchor=n}place(t,n){let r=ie(this.anchor.properties,"date"),i=ve(r);if(!i)return null;let o=t.scale.forwardWithinDomain(i);if(o===null)return null;let s=Se("anchor",this.anchor.properties,t.styleCtx),a=t.markerRowPlacements.get(this.id),l=a?.centerY??t.timeline.markerRow.y,c={x:o,y:l},u=a?.labelBox??{x:o+6+6,y:l-4,width:0,height:12},f=a?.labelSide??"right";t.entityLeftEdges.set(this.id,o),t.entityRightEdges.set(this.id,o),t.entityMidpoints.set(this.id,c);let d={id:this.id,title:this.anchor.title??this.id,center:c,radius:6,style:s,predecessorPoints:[],cutTopY:t.chartTopY,cutBottomY:t.swimlaneBottomY,bumpedUp:(a?.rowIndex??0)>0,labelBox:u,labelSide:f};return!t.scale.showsNonWorking&&!t.calendar.isWorkingDay(i)&&(d.hiddenDate=Ti(i)),d}};function Cd(e,t,n){let r=[];for(let[i,o]of e){let s=new sx(i,o).place(t,n);s&&r.push(s)}return r}function Ml(e){if(e.kind==="item"){let n=e.textSpills||e.dotSpills||e.iconSpills||e.footnoteSpills;return Math.max(e.box.x+e.box.width,n?e.decorationsRightX:Number.NEGATIVE_INFINITY,e.chipsOutside?e.chipsRightX:Number.NEGATIVE_INFINITY)}let t=Math.max(e.box.x+e.box.width,xs(e));for(let n of e.children)t=Math.max(t,Ml(n));return t}function Wr(e){let t=0;for(let n of e)t=Math.max(t,uS(n.children)),n.nested.length>0&&(t=Math.max(t,Wr(n.nested)));return t}function uS(e){let t=0;for(let n of e)n.kind==="item"?t=Math.max(t,n.box.x+n.box.width):t=Math.max(t,uS(n.children));return t}function Ss(e){let t=0;for(let n of e)t=Math.max(t,fS(n.children)),n.nested.length>0&&(t=Math.max(t,Ss(n.nested)));return t}function fS(e){let t=0;for(let n of e)n.kind==="item"?n.textSpills&&(t=Math.max(t,n.decorationsRightX)):t=Math.max(t,fS(n.children));return t}function dB(e){return e.box.y+e.box.height-nn/2}function ax(e,t){let{box:n}=e;return{startX:e.dateSpan.startX,endX:e.dateSpan.endX,paintedX:n.x,paintedWidth:n.width,top:n.y,bottom:n.y+n.height,rowY:n.y+t/2,exitY:lx(e,t)}}function dS(e){let{box:t}=e;return{startX:t.x,endX:t.x+t.width,paintedX:t.x,paintedWidth:t.width,top:t.y,bottom:t.y+t.height}}function lx(e,t){return e.textSpills?dB(e):e.box.y+t/2}function pS(e){let{box:t,afterDate:n,beforeDate:r,hasLinkIcon:i,footnoteCount:o}=e;if(!n&&!r)return[];let s=[],a=pt,l=t.y+lk,c=zg(t.width);if(n){let u=jg(t.x,i),f=c?{x:t.x-Bn-a,y:l}:{x:u,y:l};s.push({side:"after",isoDate:n,glyphTopLeft:f,glyphSize:a,spilled:c})}if(r){let u=t.x+t.width,f=Yg(u,o),d=c?{x:u+Bn,y:l}:{x:f,y:l};s.push({side:"before",isoDate:r,glyphTopLeft:d,glyphSize:a,spilled:c})}return s}function $d(e){let{box:t,afterDate:n,beforeDate:r,title:i}=e;if(!n&&!r)return[];let o=[],s=pt,a=t.y+(wl-s)/2,l=i?ys(t.x,!!n)+Ty(i):t.x;if(n&&(l=Math.max(l,t.x+s),o.push({side:"after",isoDate:n,glyphTopLeft:{x:t.x,y:a},glyphSize:s,spilled:!1})),r){let c=t.x+t.width-Hg-s,u=l>t.x?l+tn:t.x;o.push({side:"before",isoDate:r,glyphTopLeft:{x:Math.max(c,u),y:a},glyphSize:s,spilled:!1})}return o}function Rt(e){for(let t of e)if(ve(t))return t}function Xr(e){return{after:Be(e,"after").map(n=>{let r=ve(n);return r?{raw:n,date:r}:{raw:n,ref:n}})}}function Dd(e){return e.floors.map(t=>t?ve(t.date):null)}function Md(e,t,n,r,i=0,o){let s=n.map(c=>c??-1/0),a=[];for(let c=0;c<e;c++){let u=hS(c===0?t:a[c-1],s[c],i);a.push(c===0?u:Math.max(u,o?.S[c]??-1/0))}let l=a.map((c,u)=>Math.max(c,o?.E[u]??-1/0));for(let c=1;c<=e+1;c++){let u=r(a,l).memberEnd,f=[],d=[];for(let p=0;p<e;p++)f.push(p===0?a[0]:hS(d[p-1],s[p],i)),d.push(Math.max(f[p],u[p]??-1/0));if(mS(a,f)&&mS(l,d))return{S:a,E:l,passes:c,capped:!1};a=f,l=d}return r(a,l),{S:a,E:l,passes:e+1,capped:!0}}function hS(e,t,n){return t-e>n?t:e}function mS(e,t){for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function gS(e,t,n){return Dd(e).map(r=>r?n.workingIndexOf(t,r):null)}var Mi=class{constructor(t,n){M(this,"plan");M(this,"S");M(this,"memberEnd");M(this,"binding");M(this,"memberCount");this.plan=t,this.S=n;let r=t.waves.length;this.memberEnd=new Array(r).fill(-1/0),this.binding=new Array(r).fill(void 0),this.memberCount=new Array(r).fill(0)}floor(t){let n=this.plan.waveOf.get(t),r=t.$type==="ItemDeclaration"?void 0:this.plan.leadOf.get(t),i;return n!==void 0&&(i=this.S[n-1]),r!==void 0&&(i=Math.max(i??-1/0,this.S[r-1])),i}apply(t,n){let r=this.floor(t);return r===void 0?n:Math.max(n,r)}accumulate(t,n){let r=this.plan.memberWave(t);r!==void 0&&(this.memberCount[r-1]++,n>this.memberEnd[r-1]&&(this.memberEnd[r-1]=n,this.binding[r-1]=t))}};function Fd(e,t,n,r,i,o=0){return e.waves.map((s,a)=>{let l={id:s.name,index:a+1,start:t.S[a],end:t.E[a],memberCount:n.memberCount[a]},c=n.binding[a];if(c!==void 0&&n.memberEnd[a]===t.E[a]&&t.E[a]>t.S[a]){let p=c.name??c.title;p!==void 0&&(l.heldBy=p)}let u=i[a],f=e.floors[a]?.ref,d=a===0?r:t.E[a-1];return u!=null&&f!==void 0&&u-d>o&&(l.floorRef=f),l})}var Ot=.5;function yS(e,t,n,r,i){let o=e.waves.map(()=>n);return{plan:e,ids:e.waves.map(s=>s.name),origin:n,floors:Dd(e).map(s=>s?t.forward(s):null),S:o,E:o,pass:new Mi(e,o),frozen:!1,backgroundTooltip:r,visible:i}}function xS(e,t,n){e.S=t,e.E=n,e.pass=new Mi(e.plan,t)}function ES(e,t){e.S=t.S,e.E=t.E,e.frozen=!0,e.solve=t}function Bd(e,t,n){e.ids.forEach((r,i)=>{t.set(r,e.S[i]),n.set(r,e.E[i])})}function Ur(e,t,n){return n.waves?n.waves.pass.apply(e,t):t}function wS(e,t,n){n.waves&&!n.waves.frozen&&n.waves.pass.accumulate(e,t)}function TS(e,t){if(t.waves?.visible)return t.waves.plan.memberWave(e)!==void 0?"member":"background"}function _S(e,t){for(let n of[...e.S,...e.E])if(!(Math.abs(n-e.origin)<Ot)&&Math.abs(t-n)<Ot)return!0;return!1}function cx(e,t){let n=Math.round((e-t.timeline.originX)/t.timeline.pixelsPerDay);if(!t.scale.showsNonWorking)return n;let r=t.timeline.startDate;return t.calendar.workingIndexOf(r,Xe(r,n))}function Wd(e,t){return t.calendar.dateAtWorkingIndex(t.timeline.startDate,cx(e,t))}function vS(e,t,n){return jf(n.calendar,n.timeline.startDate,cx(e,n),cx(t,n))}function Fl(e,t,n){return Ur(e,Bl(e.properties,t,n),n)}var pB=!0;function AS(){return pB}function Bl(e,t,n){let{after:r}=Xr(e);if(r.length>0){let i=t;for(let o of r){if("date"in o){let a=n.scale.forwardWithinDomain(o.date);a!==null&&(i=Math.max(i,a));continue}let s=n.entityRightEdges.get(o.ref);s!==void 0&&(i=Math.max(i,s))}return i}return t}function kS(e,t,n){if(!n.calendar.hasNonWorkingDays)return;let r=hB(e);if(!r||n.calendar.isWorkingDay(r.date))return;let i=n.scale.forwardWithinDomain(r.date);if(!(i===null||Math.abs(t-i)>=Ot))return{key:r.key,pin:r.raw,start:Ti(Wd(t,n))}}function hB(e){let{after:t}=Xr(e);for(let n of t)if("date"in n)return{key:"after",raw:n.raw,date:n.date}}function ux(e){if(!e||e==="none"||e==="transparent")return 1;let t=e.startsWith("#")?e.slice(1):e;if(t.length===3&&(t=t.split("").map(s=>s+s).join("")),t.length!==6)return 1;let n=parseInt(t.slice(0,2),16)/255,r=parseInt(t.slice(2,4),16)/255,i=parseInt(t.slice(4,6),16)/255,o=s=>s<=.03928?s/12.92:((s+.055)/1.055)**2.4;return .2126*o(n)+.7152*o(r)+.0722*o(i)}function mB(e,t){return ux(e)>=.24?t.statusDot.onLight:t.statusDot.onDark}function IS(e,t,n){let r=mB(t,n),i={done:r.done,"in-progress":r.inProgress,"at-risk":r.atRisk,blocked:r.blocked,planned:r.planned,neutral:r.neutral};return i[e]??i.neutral}var gB=.24;function yB(e){return e==="none"?"transparent":e}function Xd(e){return ux(yB(e))>=gB?"dark":"light"}function bs(e,t,n){return e.scale.showsNonWorking?e.scale.advanceX(t,n)-t:n*e.timeline.pixelsPerDay}function Wl(e,t){return{x:e,startX:e,y:t,height:0}}function RS(e,t){let n=e.schedule.byNode.get(t);if(!n)throw new Error(`layout: item "${t.name??t.title??"(unnamed)"}" is not in the day schedule`);return n.days}function xB(e){let t=new Map(e),n=r=>{for(let i of r.content)en(i)&&(i.name&&!t.has(i.name)&&t.set(i.name,i),n(i))};for(let r of e.values())n(r);return t}function Ud(e,t,n,r){return{cal:t.cal,schedule:t.schedule,styleCtx:{theme:t.theme,styles:e.config.styles,defaults:e.config.defaults,labels:e.content.labels},sizes:cs(e.content.sizes,t.cal),labels:e.content.labels,teams:xB(e.content.teams),persons:e.content.persons,symbols:e.config.symbols,footnoteIndex:r.footnotes?.index??new Map,footnoteHosts:r.footnotes?.hosts??new Map,timeline:t.timeline,scale:t.scale,calendar:t.calendar,...t.axisColumns?{axisColumns:t.axisColumns}:{},bandScale:t.bandScale,entityLeftEdges:new Map,entityRightEdges:new Map,entityMidpoints:new Map,markerIds:new Set([...e.content.anchors.keys(),...e.content.milestones.keys()]),placedItems:new Map,itemFlowKey:new Map,currentFlowKey:"",slackCorridors:[],markerRowPlacements:r.markerRowPlacements??new Map,chartTopY:n.chartTopY,chartBottomY:n.chartBottomY,swimlaneBottomY:n.swimlaneBottomY,nextParallelId:0,nextGroupId:0,...t.waves?{waves:t.waves}:{}}}var SS=12,EB=4,Gd=13,wB=11;function TB(e,t){return(e?se(e,wB):0)+t}function zd(e){return Math.max(0,Math.min(hk,(e-Kg)/2))}function fx(e){return Math.max(Kg,e-2*zd(e))}function bS(e){if(!/[\r\n]/.test(e))return;let t=e.replace(/\r\n?/g,`
|
|
2916
|
+
}`));var KF={languageId:"nowline",fileExtensions:[".nowline"],caseInsensitive:!1,mode:"development"},Kk={AstReflection:()=>new Ha},qk={Grammar:()=>Vk(),LanguageMetaData:()=>KF,parser:{}};var Zk={item:"an item",group:"a group",parallel:"a parallel block",swimlane:"a swimlane",anchor:"an anchor",milestone:"a milestone","floating-milestone":"a milestone without a date",wave:"a wave",label:"a label",size:"a size",status:"a status",person:"a person",team:"a team",footnote:"a footnote",roadmap:"the roadmap",style:"a style",symbol:"a symbol"},qF={item:"item",group:"group",parallel:"parallel block",swimlane:"swimlane",anchor:"anchor",milestone:"milestone","floating-milestone":"milestone",wave:"wave",label:"label",size:"size",status:"status",person:"person",team:"team",footnote:"footnote",roadmap:"roadmap",style:"style",symbol:"symbol"},Ny=e=>e.charAt(0).toUpperCase()+e.slice(1);function Ts(e){return e.kind==="parallel-block"?`the parallel block on line ${e.line}`:e.kind==="group-block"?`the group on line ${e.line}`:`${e.kind} "${e.name}"`}function Jk(e){return e.name||e.line===void 0?`"${e.name}"`:Ts({kind:e.kind==="parallel"?"parallel-block":"group-block",line:e.line})}function Ly(e,t=!0){if(e.name)return`${e.kind} "${e.name}"`;let n=e.kind==="parallel"?"parallel block":e.kind,r=t?"the ":"";return e.line===void 0?`${r}${n}`:`${r}${n} on line ${e.line}`}function Qk(e){return e.name?`${Ny(e.kind)} "${e.name}"`:Ny(Ly(e))}function eI(e){return e===null?"has no start floor":`opens no earlier than ${e}`}function tI(e){return e?e.title===void 0?` Did you mean wave:${e.id}?`:` Did you mean wave:${e.id} ("${e.title}")?`:""}function ZF(e){let t=e.slice(0,5).map(r=>`"${r}"`),n=e.length-t.length;return n>0?`${t.join(", ")} and ${n} more`:`${t.slice(0,-1).join(", ")} and ${t[t.length-1]}`}function yd(e){return`[${e.join(", ")}]`}var nI={"NL.E0001":()=>"Config section must appear before roadmap.","NL.E0002":()=>"Include declarations must appear before the config section.","NL.E0003":()=>"Include declarations must appear before the roadmap section.","NL.E0004":()=>"At least one swimlane is required.","NL.E0005":e=>`Line ${e.line}: mixed tabs and spaces in indentation. Use either tabs or spaces consistently.`,"NL.E0100":e=>`Invalid version format "${e.version}". Expected format: v1, v2, etc.`,"NL.E0101":e=>`This file requires Nowline ${e.version}, but the parser only supports up to ${e.supported}.`,"NL.E0102":e=>`Unknown directive property "${e.key}". Allowed: ${e.allowed}.`,"NL.E0103":e=>`Duplicate directive property "${e.key}".`,"NL.E0104":e=>`Invalid locale "${e.value}". Use a BCP-47 tag like "en-US", "fr", or "fr-CA".`,"NL.E0200":e=>`Invalid include mode "${e.value}". Must be merge, ignore, or isolate.`,"NL.E0201":e=>`Duplicate "${e.key}" option on include.`,"NL.E0202":e=>{switch(e.reason){case"mismatch":return`Included "${e.path}" declares waves ${yd(e.child)}, but this file's waves are ${yd(e.parent)}. Every included roadmap must declare the same waves in the same order: copy this file's wave lines into "${e.path}".`;case"child-none":return`Included "${e.path}" declares no waves, but this file's waves are ${yd(e.parent)}. Copy this file's wave lines into "${e.path}" so its work joins the waves.`;case"parent-none":return`Included "${e.path}" declares waves ${yd(e.child)}, but this file declares none. Declare the same waves here so the barriers apply to the whole roadmap.`;case"floor":return`Wave "${e.id}" in "${e.path}" ${eI(e.childFloor)}, but this file's wave "${e.id}" ${eI(e.parentFloor)}. A wave must have the same start floor in every included roadmap.`}},"NL.E0203":e=>{switch(e.reason){case"not-found":return`Cannot read include "${e.path}": file not found.`;case"is-directory":return`Cannot read include "${e.path}": it is a directory.`;case"permission-denied":return`Cannot read include "${e.path}": permission denied.`;case"not-nowline":return`Cannot read include "${e.path}": only .nowline files can be included.`;case"unreadable":return e.detail?`Cannot read include "${e.path}": ${e.detail}`:`Cannot read include "${e.path}".`}},"NL.E0204":e=>`Circular include: "${e.path}" is already being included (${e.chain}).`,"NL.E0205":e=>`Duplicate include "${e.path}". Include each file once.`,"NL.E0206":e=>`Cannot isolate "${e.path}": it has no roadmap declaration.`,"NL.E0207":e=>e.parentStart&&e.childStart?`Included "${e.path}" declares start:${e.childStart}, which doesn't match this file's start:${e.parentStart}. Both files must declare the same start date, or neither should.`:e.parentStart?`Included "${e.path}" has no start:, but this file declares start:${e.parentStart}. Both files must declare the same start date, or neither should.`:`Included "${e.path}" declares start:${e.childStart}, but this file has no start:. Both files must declare the same start date, or neither should.`,"NL.E0208":e=>{switch(e.reason){case"absolute":return`Include "${e.path}" is an absolute path. With an include root, an include must be a relative path inside it.`;case"parent":return`Include "${e.path}" resolves outside the include root.`;case"symlink":return`Include "${e.path}" resolves outside the include root through a symbolic link.`}},"NL.E0209":e=>`Includes are not supported in this context: "${e.path}" was not read.`,"NL.E0210":e=>`Include "${e.path}" is more than ${e.max} includes deep. Flatten the include chain.`,"NL.E0300":e=>`Duplicate identifier "${e.name}". First declared at ${e.location}.`,"NL.E0301":e=>`${e.type} must have an identifier, a title, or both.`,"NL.E0302":e=>`${e.key}: reference "${e.value}" does not resolve to any declared entity in this file.`,"NL.E0400":e=>`Invalid duration "${e.value}". Use a raw duration literal like 0.5d, 2w, 1m, 2q. Use "size:NAME" to reference a declared size.`,"NL.E0401":e=>`Invalid size "${e.value}". Use the id of a declared size (e.g. xs, m, lg).`,"NL.E0402":e=>`Invalid effort "${e.value}". Use a raw duration literal like 0.5d, 2w, 1m, 2q.`,"NL.E0403":e=>`Invalid remaining value "${e.value}". Use a percentage like 30% or a duration literal like 1w, 0.5d.`,"NL.E0404":e=>`Remaining must be between 0% and 100%, got ${e.value}.`,"NL.E0405":e=>`Invalid ${e.key} "${e.value}". Use ISO 8601 format: YYYY-MM-DD.`,"NL.E0406":e=>`Invalid scale "${e.value}". Use a raw duration literal like 1w, 2w, 1q (no name lookup).`,"NL.E0407":e=>`Invalid calendar "${e.value}". Must be business, full, or custom.`,"NL.E0408":e=>`Property "${e.key}" requires at least one reference.`,"NL.E0410":e=>`"${e.key}:" accepts at most one inline date per direction; collapse the multiple dates to a single binding date or use a declared anchor.`,"NL.E0411":e=>`Inline date in "${e.key}:" is not allowed on ${e.type}. Allowed only on item, parallel, and group, and on a wave's after:; for a milestone use "date:" instead.`,"NL.E0412":e=>`Inline date "${e.date}" in "${e.key}:" requires the roadmap to declare "start:". Add start:YYYY-MM-DD to the roadmap.`,"NL.E0413":e=>`Inline date "${e.date}" in "${e.key}:" is before roadmap start ${e.start}.`,"NL.E0500":e=>`Anchor "${e.name}" requires a "date:" property.`,"NL.E0501":e=>`Anchor "${e.name}" has a date but the roadmap is missing "start:". Add start:YYYY-MM-DD to the roadmap.`,"NL.E0502":e=>`Anchor "${e.name}" date ${e.date} is before roadmap start ${e.start}.`,"NL.E0503":e=>`Milestone "${e.name}" requires at least one of "date:" or "after:".`,"NL.E0504":e=>`Milestone "${e.name}" date ${e.date} is before roadmap start ${e.start}.`,"NL.E0505":()=>'Footnote requires an "on:" property referencing one or more entities.',"NL.E0600":e=>`Item "${e.name}" requires a "size:" or "duration:" property.`,"NL.E0800":e=>`Invalid non-working value "${e.value}". Use hide or show.`,"NL.E0801":e=>`Invalid color "${e.value}" for "${e.key}". Use a named color, hex value, or "none".`,"NL.E0802":e=>`Invalid value "${e.value}" for "${e.key}". Allowed: ${e.allowed}.`,"NL.E0803":e=>`Unknown style property "${e.key}".`,"NL.E0804":e=>`Raw style property "${e.key}" is not allowed on ${e.entity}. Declare a named style in config and reference it via "style:id".`,"NL.E0805":e=>`Symbol id "${e.name}" collides with a built-in icon name. Reserved built-ins: ${e.builtins}.`,"NL.E0806":e=>`Symbol "${e.name}" requires a "unicode:" property (e.g. unicode:"\u{1F4B0}" or unicode:"\\u{1F464}").`,"NL.E0807":e=>`Symbol "${e.name}" unicode: must be a non-empty value.`,"NL.E0808":e=>`Symbol "${e.name}" ascii: must be 1-3 ASCII characters (got ${e.length} character${e.length===1?"":"s"}).`,"NL.E0809":e=>`Unknown symbol property "${e.key}". Allowed: unicode, ascii, link, description.`,"NL.E0810":e=>`Duplicate symbol id "${e.name}". First declared at ${e.location}.`,"NL.E0811":e=>`${e.key}: "${e.value}" is neither a built-in (${e.builtins}) nor a declared symbol. Add "symbol ${e.value} unicode:..." earlier in config or use a quoted Unicode literal.`,"NL.E0812":e=>`${e.key}: symbol "${e.value}" is referenced before its declaration. Move "symbol ${e.value}" above this entry.`,"NL.E0900":e=>`A ${e.kind} declaration takes date:, or start: and end:, or every: with optional start: and end:.`,"NL.E0901":e=>`Unknown ${e.kind} property "${e.key}". Allowed: date, start, end, every.`,"NL.E0902":e=>`${e.key}: on a ${e.kind} declaration takes one date, not a list.`,"NL.E0903":e=>`end: ${e.end} is before start: ${e.start}.`,"NL.E0904":e=>`Invalid weekday "${e.value}". Use sun, mon, tue, wed, thu, fri or sat.`,"NL.E0905":e=>`Weekday "${e.value}" is listed more than once.`,"NL.E0906":()=>"This leaves no working day in the week with no end date. Keep at least one weekday working.","NL.E0907":e=>`Duplicate ${e.kind} id "${e.name}".`,"NL.W0700":e=>`Unknown property "${e.key}" on ${e.entity}. The renderer ignores it.${e.suggested?` Did you mean "${e.suggested}"?`:""}`,"NL.W0701":e=>`Wave "${e.id}" in "${e.path}" differs from this file's definition (${e.fields.map(t=>`${t.field} ${t.there===""?"none":`"${t.there}"`} there, ${t.here===""?"none":`"${t.here}"`} here`).join("; ")}); this file's definition is used.`,"NL.W0702":e=>`"wave:" on ${e.target.kind==="default"?`"default ${e.target.entityType}"`:!e.target.name&&e.target.line!==void 0?`the ${e.target.kind==="parallel"?"parallel block":e.target.kind} on line ${e.target.line}`:`${e.target.kind} "${e.target.name}"`} is ignored: this roadmap declares no waves. Declare waves with "wave <id>" to use it, or remove the property.`,"NL.W0703":e=>`"${e.key}" on "default ${e.entityType}" is ignored: it is a roadmap-only style key. Set it on "default roadmap" instead.`,"NL.W0704":e=>`"timeline-position:${e.position}" draws no dates: "header-height:none" removes every timeline date strip. Set header-height to xs, sm, md, lg or xl to show them.`,"NL.W0705":e=>`days-per-week is ${e.daysPerWeek}, but the week leaves ${e.working} working days.`,"NL.E1100":e=>`Wave ${e.title===void 0?`on line ${e.line}`:`"${e.title}"`} needs an explicit identifier so work can reference it with wave:<id>, e.g. wave build "Build".`,"NL.E1101":e=>{switch(e.reason){case"list":return`"wave:" takes exactly one wave id; an item belongs to at most one wave. Got "${e.value}".`;case"unknown":return`Wave "${e.value}" is not declared. Declared waves: ${e.declared.length>0?e.declared.join(", "):"none"}. Add "wave ${e.value}" above the first swimlane that uses it.${tI(e.suggestion)}`;case"forward":return`Wave "${e.value}" is used before its declaration on line ${e.line}. Declare waves above the swimlanes that use them.`;case"not-a-wave":return`"wave:" must name a wave, but "${e.value}" is ${Zk[e.kind]}.${tI(e.suggestion)}`}},"NL.E1102":e=>`${Ny(Ly(e.entity))} has wave:${e.wave}, but its enclosing ${Ly(e.container,!1)} has wave:${e.containerWave}. A container's wave applies to everything inside it; remove one of the two wave: properties.`,"NL.E1103":e=>{switch(e.reason){case"sequence":{let t=e.items.length>1,n=`${t?"Items":"Item"} ${e.items.map(i=>`"${i}"`).join(", ")} (wave "${e.itemWave}")`,r=typeof e.ref=="string"?`"${e.ref}"`:Ts(e.ref);return`${n} ${t?"come":"comes"} after ${r} (wave "${e.refWave}") in ${Ts(e.flow)}. Work in a lane or group runs in order, so it must also be ordered by wave: move ${r} below "${e.last}", or change their waves.`}case"join":return`Item "${e.name}" (wave "${e.wave}") comes after ${Ts(e.block)} in ${Ts(e.flow)}, and that block cannot end before its track "${e.track}" (wave "${e.trackWave}") does. Move "${e.name}" above the block or into a track of its own, or change one of their waves.`;case"after-item":return e.container?`${Qk(e.container)} has after:${e.refId}, but "${e.ref}" is in later wave "${e.refWave}". Wave "${e.refWave}" cannot start until wave "${e.wave}" ends, so "${e.name}" (wave "${e.wave}") inside it could never start: move "${e.name}" to wave "${e.refWave}" or later, or remove the after:.`:`Item "${e.name}" (wave "${e.wave}") has after:${e.refId}, but "${e.ref}" is in later wave "${e.refWave}". Wave "${e.refWave}" cannot start until wave "${e.wave}" ends, so "${e.name}" could never start: move it to wave "${e.refWave}" or later, or remove the after:.`;case"after-wave":return e.container?`${Qk(e.container)} (wave "${e.wave}") has after:${e.refId}, but work cannot wait for the end of its own wave or a later one. Use an earlier wave, or move the ${e.container.kind} to a later wave.`:`Item "${e.name}" (wave "${e.wave}") has after:${e.refId}, but work cannot wait for the end of its own wave or a later one. Use an earlier wave, or move "${e.name}" to a later wave.`;case"chain":return`Item "${e.name}" (wave "${e.wave}") could never start: through ${e.chain.join(" \u2192 ")}, it waits for work that cannot start until wave "${e.wave}" has ended. Move "${e.name}" to a later wave, or break the chain.`}},"NL.E1104":e=>{switch(e.reason){case"swimlane":return`"wave:" is not allowed on swimlane "${e.name}": a swimlane spans every wave. Put wave: on its items, or wrap them in "group wave:${e.value}".`;case"milestone":return`"wave:" is not allowed on milestone "${e.name}". To place a milestone at the end of a wave, use after:${e.value}.`;case"other":return`"wave:" is not allowed on ${qF[e.type]} "${e.name}"; only item, group, and parallel can belong to a wave.`}},"NL.E1105":e=>e.reason==="before"?`"before:" is not allowed on wave "${e.name}". A wave's end comes from its items; to give a wave a deadline, add a dated milestone: milestone ${e.name}-due date:<YYYY-MM-DD> after:${e.name}.`:`"${e.key}:" is not allowed on wave "${e.name}". A wave's span comes from its items; only after: (an anchor, a dated milestone, or one ISO date) can hold back a wave's start.`,"NL.E1106":e=>`Wave "${e.name}" has after:${e.ref}, but "${e.ref}" is ${Zk[e.kind]}. A wave's after: accepts only anchors, dated milestones, or one ISO date; to make a wave wait for work, put that work in an earlier wave.`,"NL.W1000":e=>`Now-line date ${e.date} is outside the roadmap window (${e.start} \u2013 ${e.end}); it will not be drawn.`,"NL.W1002":e=>`Wave barriers did not settle after ${e.passes} layout passes, so the drawn schedule may not respect the wave order. The roadmap probably has an ordering conflict that validation did not catch.`,"NL.W1100":e=>{let t=Jk(e);return e.reason==="item"?`before:${e.ref} on ${t} can never be met: ${t} is in wave "${e.wave}", which cannot start until "${e.ref}" (wave "${e.refWave}") has finished. The overrun will be painted.`:`before:${e.ref} on ${t} can never be met: ${t} is in wave "${e.wave}", which cannot finish before wave "${e.ref}" starts. The overrun will be painted.`},"NL.W1101":e=>{let t=Jk(e);switch(e.reason){case"forward-lane":return`${e.key}:${e.ref} on ${t} refers to "${e.ref}", which is in a later swimlane ("${e.lane}"). Layout places swimlanes in order and ignores references to work it has not placed yet, so it ignores this ${e.key}:. Move swimlane "${e.lane}" above swimlane "${e.ownLane}", or remove the ${e.key}:.`;case"forward-flow":return`${e.key}:${e.ref} on ${t} refers to "${e.ref}", which comes later in ${Ts(e.flow)}. Layout ignores references to work it has not placed yet, so it ignores this ${e.key}:. Move "${e.ref}" above ${t}, or remove the ${e.key}:.`;case"ancestor":return`${e.key}:${e.ref} on ${t} refers to "${e.ref}", which contains it. Layout ignores references to an enclosing group or parallel, so it ignores this ${e.key}:. Remove the ${e.key}:.`;case"floating-milestone":return`${e.key}:${e.ref} on ${t} refers to milestone "${e.ref}", which has no date. Floating milestones are placed after all work, so layout ignores this ${e.key}:. Reference the milestone's predecessors or a wave instead.`}},"NL.I1000":e=>`Title on item "${e.name}" is wider than its bar at this scale; it rendered to the right of the bar.`,"NL.I1001":e=>`Label chips on item "${e.name}" did not fit inside the bar; they rendered in a spill column to the right.`,"NL.I1002":e=>`Item "${e.name}" is too narrow to show its marker at this scale; decorations spilled beside the bar.`,"NL.I1003":e=>e.anchor?`Item "${e.name}" extends past its "before:" anchor "${e.anchor}".`:`Item "${e.name}" extends past its "before:" anchor.`,"NL.I1004":e=>`Swimlane "${e.lane}" packed into ${e.rows} rows to avoid overlap.`,"NL.I1005":e=>`Swimlane "${e.lane}" is over capacity in one or more periods (red utilization band).`,"NL.I1006":e=>e.names.length===1?`Wave "${e.names[0]}" won't be displayed: it has no items assigned.`:`Waves ${ZF(e.names)} won't be displayed: they have no items assigned.`,"NL.I1007":e=>`Milestone "${e.name}" (${e.date}) is overrun: wave "${e.wave}" ends ${e.end}.`,"NL.I1008":e=>`Item "${e.name}" is pinned to ${e.pin} (${e.key}:), a non-working day; it starts on ${e.start}.`};var H=e=>`\xAB\xA0${e}\xA0\xBB`,rI={item:"un \xE9l\xE9ment",group:"un groupe",parallel:"un bloc parall\xE8le",swimlane:"une swimlane",anchor:"une ancre",milestone:"un jalon","floating-milestone":"un jalon sans date",wave:"une vague",label:"une \xE9tiquette",size:"une taille",status:"un statut",person:"une personne",team:"une \xE9quipe",footnote:"une note de bas de page",roadmap:"la roadmap",style:"un style",symbol:"un symbole"},JF={item:"l'\xE9l\xE9ment",group:"le groupe",parallel:"le bloc parall\xE8le",swimlane:"la swimlane",anchor:"l'ancre",milestone:"le jalon","floating-milestone":"le jalon",wave:"la vague",label:"l'\xE9tiquette",size:"la taille",status:"le statut",person:"la personne",team:"l'\xE9quipe",footnote:"la note de bas de page",roadmap:"la roadmap",style:"le style",symbol:"le symbole"},Py=e=>e.charAt(0).toUpperCase()+e.slice(1);function vs(e){return e.kind==="parallel-block"?`le bloc parall\xE8le \xE0 la ligne ${e.line}`:e.kind==="group-block"?`le groupe \xE0 la ligne ${e.line}`:`${e.kind==="group"?"le groupe":e.kind==="parallel"?"le bloc parall\xE8le":"la swimlane"} ${H(e.name)}`}function Oy(e,t=!1){if(e.name||e.line===void 0)return t?`de ${H(e.name)}`:H(e.name);let n=vs({kind:e.kind==="parallel"?"parallel-block":"group-block",line:e.line});return t?`du ${n.slice(3)}`:n}function Cy(e){let t=e.kind==="item"?"\xE9l\xE9ment":e.kind==="group"?"groupe":"bloc parall\xE8le",n=e.kind==="item"?"l'":"le ";return e.name?`${n}${t} ${H(e.name)}`:e.line===void 0?`${n}${t}`:`${n}${t} \xE0 la ligne ${e.line}`}function iI(e){let t=e.kind==="parallel"?"le bloc parall\xE8le":"le groupe";return e.name?`${t} ${H(e.name)}`:e.line===void 0?t:`${t} \xE0 la ligne ${e.line}`}function oI(e){return e?e.title===void 0?` Vouliez-vous dire wave:${e.id}\xA0?`:` Vouliez-vous dire wave:${e.id} (${H(e.title)})\xA0?`:""}function QF(e){let t=e.slice(0,5).map(H),n=e.length-t.length;return n>0?`${t.join(", ")} et ${n} autre${n>1?"s":""}`:`${t.slice(0,-1).join(", ")} et ${t[t.length-1]}`}function xd(e){return`[${e.join(", ")}]`}function sI(e){return e===null?"n'a pas de borne de d\xE9part":`ne s'ouvre pas avant ${e}`}function aI(e){return e===""?"aucun":H(e)}var e2={title:"titre",style:"style",labels:"\xE9tiquettes",link:"lien",description:"description"},lI={"NL.E0001":()=>"La section config doit pr\xE9c\xE9der la section roadmap.","NL.E0002":()=>"Les d\xE9clarations include doivent pr\xE9c\xE9der la section config.","NL.E0003":()=>"Les d\xE9clarations include doivent pr\xE9c\xE9der la section roadmap.","NL.E0004":()=>"Au moins une swimlane est requise.","NL.E0005":e=>`Ligne ${e.line}\xA0: tabulations et espaces m\xE9lang\xE9s dans l'indentation. Utilisez l'un ou l'autre, mais pas les deux.`,"NL.E0100":e=>`Format de version invalide \xAB\xA0${e.version}\xA0\xBB. Format attendu\xA0: v1, v2, etc.`,"NL.E0101":e=>`Ce fichier requiert Nowline ${e.version}, mais l'analyseur ne prend en charge que jusqu'\xE0 ${e.supported}.`,"NL.E0102":e=>`Propri\xE9t\xE9 de directive inconnue \xAB\xA0${e.key}\xA0\xBB. Valeurs admises\xA0: ${e.allowed}.`,"NL.E0103":e=>`Propri\xE9t\xE9 de directive \xAB\xA0${e.key}\xA0\xBB en double.`,"NL.E0104":e=>`Locale invalide \xAB\xA0${e.value}\xA0\xBB. Utilisez une \xE9tiquette BCP-47 telle que \xAB\xA0en-US\xA0\xBB, \xAB\xA0fr\xA0\xBB ou \xAB\xA0fr-CA\xA0\xBB.`,"NL.E0200":e=>`Mode d'include invalide \xAB\xA0${e.value}\xA0\xBB. Doit \xEAtre merge, ignore ou isolate.`,"NL.E0201":e=>`Option \xAB\xA0${e.key}\xA0\xBB en double sur include.`,"NL.E0202":e=>{switch(e.reason){case"mismatch":return`L'include ${H(e.path)} d\xE9clare les vagues ${xd(e.child)}, mais celles de ce fichier sont ${xd(e.parent)}. Chaque roadmap incluse doit d\xE9clarer les m\xEAmes vagues dans le m\xEAme ordre\xA0: copiez les lignes wave de ce fichier dans ${H(e.path)}.`;case"child-none":return`L'include ${H(e.path)} ne d\xE9clare aucune vague, mais celles de ce fichier sont ${xd(e.parent)}. Copiez les lignes wave de ce fichier dans ${H(e.path)} pour que son travail rejoigne les vagues.`;case"parent-none":return`L'include ${H(e.path)} d\xE9clare les vagues ${xd(e.child)}, mais ce fichier n'en d\xE9clare aucune. D\xE9clarez les m\xEAmes vagues ici pour que les barri\xE8res s'appliquent \xE0 toute la roadmap.`;case"floor":return`La vague ${H(e.id)} dans ${H(e.path)} ${sI(e.childFloor)}, mais la vague ${H(e.id)} de ce fichier ${sI(e.parentFloor)}. Une vague doit avoir la m\xEAme borne de d\xE9part dans chaque roadmap incluse.`}},"NL.E0203":e=>{switch(e.reason){case"not-found":return`Impossible de lire l'include ${H(e.path)}\xA0: fichier introuvable.`;case"is-directory":return`Impossible de lire l'include ${H(e.path)}\xA0: c'est un r\xE9pertoire.`;case"permission-denied":return`Impossible de lire l'include ${H(e.path)}\xA0: permission refus\xE9e.`;case"not-nowline":return`Impossible de lire l'include ${H(e.path)}\xA0: seuls les fichiers .nowline peuvent \xEAtre inclus.`;case"unreadable":return e.detail?`Impossible de lire l'include ${H(e.path)}\xA0: ${e.detail}`:`Impossible de lire l'include ${H(e.path)}.`}},"NL.E0204":e=>`Include circulaire\xA0: ${H(e.path)} est d\xE9j\xE0 en cours d'inclusion (${e.chain}).`,"NL.E0205":e=>`Include ${H(e.path)} en double. Incluez chaque fichier une seule fois.`,"NL.E0206":e=>`Impossible d'isoler ${H(e.path)}\xA0: il ne d\xE9clare aucune roadmap.`,"NL.E0207":e=>e.parentStart&&e.childStart?`L'include ${H(e.path)} d\xE9clare start:${e.childStart}, qui ne correspond pas au start:${e.parentStart} de ce fichier. Les deux fichiers doivent d\xE9clarer la m\xEAme date de d\xE9but, ou aucun des deux.`:e.parentStart?`L'include ${H(e.path)} n'a pas de start:, mais ce fichier d\xE9clare start:${e.parentStart}. Les deux fichiers doivent d\xE9clarer la m\xEAme date de d\xE9but, ou aucun des deux.`:`L'include ${H(e.path)} d\xE9clare start:${e.childStart}, mais ce fichier n'a pas de start:. Les deux fichiers doivent d\xE9clarer la m\xEAme date de d\xE9but, ou aucun des deux.`,"NL.E0208":e=>{switch(e.reason){case"absolute":return`L'include ${H(e.path)} est un chemin absolu. Avec une racine d'include, un include doit \xEAtre un chemin relatif \xE0 l'int\xE9rieur de celle-ci.`;case"parent":return`L'include ${H(e.path)} se r\xE9sout hors de la racine d'include.`;case"symlink":return`L'include ${H(e.path)} se r\xE9sout hors de la racine d'include par un lien symbolique.`}},"NL.E0209":e=>`Les includes ne sont pas pris en charge dans ce contexte\xA0: ${H(e.path)} n'a pas \xE9t\xE9 lu.`,"NL.E0210":e=>`L'include ${H(e.path)} d\xE9passe ${e.max} niveaux d'inclusion. Aplatissez la cha\xEEne d'includes.`,"NL.E0300":e=>`Identifiant en double \xAB\xA0${e.name}\xA0\xBB. Premi\xE8re d\xE9claration \xE0 ${e.location}.`,"NL.E0301":e=>`${e.type} doit comporter un identifiant, un titre, ou les deux.`,"NL.E0302":e=>`La r\xE9f\xE9rence \xAB\xA0${e.value}\xA0\xBB de \xAB\xA0${e.key}:\xA0\xBB ne d\xE9signe aucune entit\xE9 d\xE9clar\xE9e dans ce fichier.`,"NL.E0400":e=>`Dur\xE9e invalide \xAB\xA0${e.value}\xA0\xBB. Utilisez un litt\xE9ral de dur\xE9e brut comme 0.5d, 2w, 1m, 2q. Utilisez \xAB\xA0size:NOM\xA0\xBB pour r\xE9f\xE9rencer une taille d\xE9clar\xE9e.`,"NL.E0401":e=>`Taille invalide \xAB\xA0${e.value}\xA0\xBB. Utilisez l'identifiant d'une taille d\xE9clar\xE9e (p.\xA0ex. xs, m, lg).`,"NL.E0402":e=>`Effort invalide \xAB\xA0${e.value}\xA0\xBB. Utilisez un litt\xE9ral de dur\xE9e brut comme 0.5d, 2w, 1m, 2q.`,"NL.E0403":e=>`Valeur restante invalide \xAB\xA0${e.value}\xA0\xBB. Utilisez un pourcentage tel que 30% ou un litt\xE9ral de dur\xE9e comme 1w, 0.5d.`,"NL.E0404":e=>`La valeur restante doit \xEAtre comprise entre 0 % et 100 %, re\xE7u ${e.value}.`,"NL.E0405":e=>`${e.key} invalide \xAB\xA0${e.value}\xA0\xBB. Utilisez le format ISO 8601\xA0: AAAA-MM-JJ.`,"NL.E0406":e=>`\xC9chelle invalide \xAB\xA0${e.value}\xA0\xBB. Utilisez un litt\xE9ral de dur\xE9e brut comme 1w, 2w, 1q (pas de recherche par nom).`,"NL.E0407":e=>`Calendrier invalide \xAB\xA0${e.value}\xA0\xBB. Doit \xEAtre business, full ou custom.`,"NL.E0408":e=>`La propri\xE9t\xE9 \xAB\xA0${e.key}\xA0\xBB exige au moins une r\xE9f\xE9rence.`,"NL.E0410":e=>`\xAB\xA0${e.key}:\xA0\xBB n'accepte qu'une seule date inline par direction\xA0; regroupez les dates en une seule date contraignante ou utilisez une ancre d\xE9clar\xE9e.`,"NL.E0411":e=>`Une date inline dans \xAB\xA0${e.key}:\xA0\xBB n'est pas autoris\xE9e sur ${e.type}. Autoris\xE9e seulement sur item, parallel et group, et sur le \xAB\xA0after:\xA0\xBB d'une vague\xA0; pour un milestone utilisez \xAB\xA0date:\xA0\xBB \xE0 la place.`,"NL.E0412":e=>`La date inline \xAB\xA0${e.date}\xA0\xBB dans \xAB\xA0${e.key}:\xA0\xBB exige que la roadmap d\xE9clare \xAB\xA0start:\xA0\xBB. Ajoutez start:AAAA-MM-JJ \xE0 la roadmap.`,"NL.E0413":e=>`La date inline \xAB\xA0${e.date}\xA0\xBB dans \xAB\xA0${e.key}:\xA0\xBB pr\xE9c\xE8de le d\xE9but de la roadmap (${e.start}).`,"NL.E0500":e=>`L'ancre \xAB\xA0${e.name}\xA0\xBB exige une propri\xE9t\xE9 \xAB\xA0date:\xA0\xBB.`,"NL.E0501":e=>`L'ancre \xAB\xA0${e.name}\xA0\xBB a une date, mais \xAB\xA0start:\xA0\xBB manque sur la roadmap. Ajoutez start:AAAA-MM-JJ \xE0 la roadmap.`,"NL.E0502":e=>`La date ${e.date} de l'ancre \xAB\xA0${e.name}\xA0\xBB pr\xE9c\xE8de le d\xE9but de la roadmap (${e.start}).`,"NL.E0503":e=>`Le jalon \xAB\xA0${e.name}\xA0\xBB exige au moins l'une des propri\xE9t\xE9s \xAB\xA0date:\xA0\xBB ou \xAB\xA0after:\xA0\xBB.`,"NL.E0504":e=>`La date ${e.date} du jalon \xAB\xA0${e.name}\xA0\xBB pr\xE9c\xE8de le d\xE9but de la roadmap (${e.start}).`,"NL.E0505":()=>"Une note de bas de page exige une propri\xE9t\xE9 \xAB\xA0on:\xA0\xBB r\xE9f\xE9ren\xE7ant au moins une entit\xE9.","NL.E0600":e=>`L'\xE9l\xE9ment \xAB\xA0${e.name}\xA0\xBB exige une propri\xE9t\xE9 \xAB\xA0size:\xA0\xBB ou \xAB\xA0duration:\xA0\xBB.`,"NL.E0800":e=>`Valeur non-working invalide \xAB\xA0${e.value}\xA0\xBB. Utilisez hide ou show.`,"NL.E0801":e=>`Couleur invalide \xAB\xA0${e.value}\xA0\xBB pour \xAB\xA0${e.key}\xA0\xBB. Utilisez une couleur nomm\xE9e, une valeur hexad\xE9cimale ou \xAB\xA0none\xA0\xBB.`,"NL.E0802":e=>`Valeur invalide \xAB\xA0${e.value}\xA0\xBB pour \xAB\xA0${e.key}\xA0\xBB. Valeurs admises\xA0: ${e.allowed}.`,"NL.E0803":e=>`Propri\xE9t\xE9 de style inconnue \xAB\xA0${e.key}\xA0\xBB.`,"NL.E0804":e=>`La propri\xE9t\xE9 de style brute \xAB\xA0${e.key}\xA0\xBB n'est pas permise sur ${e.entity}. D\xE9clarez un style nomm\xE9 dans la config et r\xE9f\xE9rencez-le avec \xAB\xA0style:id\xA0\xBB.`,"NL.E0805":e=>`L'identifiant de symbole \xAB\xA0${e.name}\xA0\xBB entre en conflit avec le nom d'une ic\xF4ne int\xE9gr\xE9e. Noms r\xE9serv\xE9s\xA0: ${e.builtins}.`,"NL.E0806":e=>`Le symbole \xAB\xA0${e.name}\xA0\xBB exige une propri\xE9t\xE9 \xAB\xA0unicode:\xA0\xBB (p.\xA0ex. unicode:"\u{1F4B0}" ou unicode:"\\u{1F464}").`,"NL.E0807":e=>`La propri\xE9t\xE9 \xAB\xA0unicode:\xA0\xBB du symbole \xAB\xA0${e.name}\xA0\xBB doit avoir une valeur non vide.`,"NL.E0808":e=>`La propri\xE9t\xE9 \xAB\xA0ascii:\xA0\xBB du symbole \xAB\xA0${e.name}\xA0\xBB doit compter de 1 \xE0 3 caract\xE8res ASCII (re\xE7u\xA0: ${e.length} caract\xE8re${e.length>1?"s":""}).`,"NL.E0809":e=>`Propri\xE9t\xE9 de symbole inconnue \xAB\xA0${e.key}\xA0\xBB. Valeurs admises\xA0: unicode, ascii, link, description.`,"NL.E0810":e=>`Identifiant de symbole en double \xAB\xA0${e.name}\xA0\xBB. Premi\xE8re d\xE9claration \xE0 ${e.location}.`,"NL.E0811":e=>`${e.key}: \xAB\xA0${e.value}\xA0\xBB n'est ni une ic\xF4ne int\xE9gr\xE9e (${e.builtins}) ni un symbole d\xE9clar\xE9. Ajoutez \xAB\xA0symbol ${e.value} unicode:...\xA0\xBB plus haut dans la config ou utilisez un litt\xE9ral Unicode entre guillemets.`,"NL.E0812":e=>`${e.key}: le symbole \xAB\xA0${e.value}\xA0\xBB est r\xE9f\xE9renc\xE9 avant sa d\xE9claration. D\xE9placez \xAB\xA0symbol ${e.value}\xA0\xBB au-dessus de cette entr\xE9e.`,"NL.E0900":e=>`Une d\xE9claration ${e.kind} prend date:, ou start: et end:, ou every: avec start: et end: facultatifs.`,"NL.E0901":e=>`Propri\xE9t\xE9 ${e.kind} inconnue \xAB\xA0${e.key}\xA0\xBB. Autoris\xE9es\xA0: date, start, end, every.`,"NL.E0902":e=>`${e.key}: sur une d\xE9claration ${e.kind} prend une seule date, pas une liste.`,"NL.E0903":e=>`end: ${e.end} pr\xE9c\xE8de start: ${e.start}.`,"NL.E0904":e=>`Jour de semaine invalide \xAB\xA0${e.value}\xA0\xBB. Utilisez sun, mon, tue, wed, thu, fri ou sat.`,"NL.E0905":e=>`Le jour \xAB\xA0${e.value}\xA0\xBB appara\xEEt plusieurs fois.`,"NL.E0906":()=>"Il ne reste aucun jour ouvr\xE9 dans la semaine sans date de fin. Gardez au moins un jour ouvr\xE9.","NL.E0907":e=>`Identifiant ${e.kind} \xAB\xA0${e.name}\xA0\xBB en double.`,"NL.W0700":e=>`Propri\xE9t\xE9 inconnue \xAB\xA0${e.key}\xA0\xBB sur ${e.entity}. Le moteur de rendu l'ignore.${e.suggested?` Vouliez-vous dire \xAB\xA0${e.suggested}\xA0\xBB\xA0?`:""}`,"NL.W0701":e=>`La vague ${H(e.id)} dans ${H(e.path)} diff\xE8re de la d\xE9finition de ce fichier (${e.fields.map(t=>`${e2[t.field]} ${aI(t.there)} l\xE0-bas, ${aI(t.here)} ici`).join("\xA0; ")})\xA0; la d\xE9finition de ce fichier est utilis\xE9e.`,"NL.W0702":e=>`\xAB\xA0wave:\xA0\xBB sur ${e.target.kind==="default"?H(`default ${e.target.entityType}`):!e.target.name&&e.target.line!==void 0?e.target.kind==="item"||e.target.kind==="group"||e.target.kind==="parallel"?Cy({kind:e.target.kind,name:"",line:e.target.line}):`${e.target.kind} \xE0 la ligne ${e.target.line}`:`${e.target.kind} ${H(e.target.name)}`} est ignor\xE9\xA0: cette roadmap ne d\xE9clare aucune vague. D\xE9clarez des vagues avec \xAB\xA0wave <id>\xA0\xBB pour l'utiliser, ou retirez la propri\xE9t\xE9.`,"NL.W0703":e=>`${H(e.key)} sur ${H(`default ${e.entityType}`)} est ignor\xE9\xA0: c'est une cl\xE9 de style propre \xE0 la roadmap. D\xE9finissez-la plut\xF4t sur \xAB\xA0default roadmap\xA0\xBB.`,"NL.W0704":e=>`${H(`timeline-position:${e.position}`)} n'affiche aucune date\xA0: ${H("header-height:none")} retire tous les bandeaux de dates de la frise. Donnez \xE0 header-height la valeur xs, sm, md, lg ou xl pour les afficher.`,"NL.W0705":e=>`days-per-week vaut ${e.daysPerWeek}, mais la semaine laisse ${e.working} jours ouvr\xE9s.`,"NL.E1100":e=>`La vague ${e.title===void 0?`\xE0 la ligne ${e.line}`:H(e.title)} exige un identifiant explicite pour que le travail puisse la r\xE9f\xE9rencer avec wave:<id>, p.\xA0ex. wave build "Build".`,"NL.E1101":e=>{switch(e.reason){case"list":return`\xAB\xA0wave:\xA0\xBB accepte exactement un identifiant de vague\xA0; un \xE9l\xE9ment appartient \xE0 une seule vague au plus. Re\xE7u ${H(e.value)}.`;case"unknown":return`La vague ${H(e.value)} n'est pas d\xE9clar\xE9e. Vagues d\xE9clar\xE9es\xA0: ${e.declared.length>0?e.declared.join(", "):"aucune"}. Ajoutez \xAB\xA0wave ${e.value}\xA0\xBB au-dessus de la premi\xE8re swimlane qui l'utilise.${oI(e.suggestion)}`;case"forward":return`La vague ${H(e.value)} est utilis\xE9e avant sa d\xE9claration \xE0 la ligne ${e.line}. D\xE9clarez les vagues au-dessus des swimlanes qui les utilisent.`;case"not-a-wave":return`\xAB\xA0wave:\xA0\xBB doit nommer une vague, mais ${H(e.value)} est ${rI[e.kind]}.${oI(e.suggestion)}`}},"NL.E1102":e=>`${Py(Cy(e.entity))} a wave:${e.wave}, mais ${Cy(e.container)} qui le contient a wave:${e.containerWave}. La vague d'un conteneur s'applique \xE0 tout ce qu'il contient\xA0; retirez l'une des deux propri\xE9t\xE9s wave:.`,"NL.E1103":e=>{switch(e.reason){case"sequence":{let t=e.items.length>1,n=`${t?"Les \xE9l\xE9ments":"L'\xE9l\xE9ment"} ${e.items.map(H).join(", ")} (vague ${H(e.itemWave)})`,r=typeof e.ref=="string"?H(e.ref):vs(e.ref);return`${n} ${t?"viennent":"vient"} apr\xE8s ${r} (vague ${H(e.refWave)}) dans ${vs(e.flow)}. Le travail d'une swimlane ou d'un groupe s'ex\xE9cute dans l'ordre, il doit donc aussi \xEAtre ordonn\xE9 par vague\xA0: d\xE9placez ${r} sous ${H(e.last)}, ou changez leurs vagues.`}case"join":return`L'\xE9l\xE9ment ${H(e.name)} (vague ${H(e.wave)}) vient apr\xE8s ${vs(e.block)} dans ${vs(e.flow)}, et ce bloc ne peut pas se terminer avant sa piste ${H(e.track)} (vague ${H(e.trackWave)}). D\xE9placez ${H(e.name)} au-dessus du bloc ou dans une piste distincte, ou changez l'une de leurs vagues.`;case"after-item":return e.container?`${Py(iI(e.container))} a after:${e.refId}, mais ${H(e.ref)} est dans la vague ult\xE9rieure ${H(e.refWave)}. La vague ${H(e.refWave)} ne peut pas d\xE9marrer avant la fin de la vague ${H(e.wave)}, donc ${H(e.name)} (vague ${H(e.wave)}) \xE0 l'int\xE9rieur ne pourrait jamais d\xE9marrer\xA0: d\xE9placez ${H(e.name)} dans la vague ${H(e.refWave)} ou une vague ult\xE9rieure, ou retirez le after:.`:`L'\xE9l\xE9ment ${H(e.name)} (vague ${H(e.wave)}) a after:${e.refId}, mais ${H(e.ref)} est dans la vague ult\xE9rieure ${H(e.refWave)}. La vague ${H(e.refWave)} ne peut pas d\xE9marrer avant la fin de la vague ${H(e.wave)}, donc ${H(e.name)} ne pourrait jamais d\xE9marrer\xA0: d\xE9placez-le dans la vague ${H(e.refWave)} ou une vague ult\xE9rieure, ou retirez le after:.`;case"after-wave":{let t=e.container?.kind==="parallel"?"bloc parall\xE8le":"groupe";return e.container?`${Py(iI(e.container))} (vague ${H(e.wave)}) a after:${e.refId}, mais le travail ne peut pas attendre la fin de sa propre vague ni d'une vague ult\xE9rieure. Utilisez une vague ant\xE9rieure, ou d\xE9placez le ${t} dans une vague ult\xE9rieure.`:`L'\xE9l\xE9ment ${H(e.name)} (vague ${H(e.wave)}) a after:${e.refId}, mais le travail ne peut pas attendre la fin de sa propre vague ni d'une vague ult\xE9rieure. Utilisez une vague ant\xE9rieure, ou d\xE9placez ${H(e.name)} dans une vague ult\xE9rieure.`}case"chain":return`L'\xE9l\xE9ment ${H(e.name)} (vague ${H(e.wave)}) ne pourrait jamais d\xE9marrer\xA0: via ${e.chain.join(" \u2192 ")}, il attend du travail qui ne peut pas d\xE9marrer avant la fin de la vague ${H(e.wave)}. D\xE9placez ${H(e.name)} dans une vague ult\xE9rieure, ou rompez la cha\xEEne.`}},"NL.E1104":e=>{switch(e.reason){case"swimlane":return`\xAB\xA0wave:\xA0\xBB n'est pas autoris\xE9 sur la swimlane ${H(e.name)}\xA0: une swimlane couvre toutes les vagues. Placez wave: sur ses \xE9l\xE9ments, ou regroupez-les dans \xAB\xA0group wave:${e.value}\xA0\xBB.`;case"milestone":return`\xAB\xA0wave:\xA0\xBB n'est pas autoris\xE9 sur le jalon ${H(e.name)}. Pour placer un jalon \xE0 la fin d'une vague, utilisez after:${e.value}.`;case"other":return`\xAB\xA0wave:\xA0\xBB n'est pas autoris\xE9 sur ${JF[e.type]} ${H(e.name)}\xA0; seuls item, group et parallel peuvent appartenir \xE0 une vague.`}},"NL.E1105":e=>e.reason==="before"?`\xAB\xA0before:\xA0\xBB n'est pas autoris\xE9 sur la vague ${H(e.name)}. La fin d'une vague d\xE9coule de ses \xE9l\xE9ments\xA0; pour donner une \xE9ch\xE9ance \xE0 une vague, ajoutez un jalon dat\xE9\xA0: milestone ${e.name}-due date:<AAAA-MM-JJ> after:${e.name}.`:`\xAB\xA0${e.key}:\xA0\xBB n'est pas autoris\xE9 sur la vague ${H(e.name)}. L'\xE9tendue d'une vague d\xE9coule de ses \xE9l\xE9ments\xA0; seul after: (une ancre, un jalon dat\xE9 ou une date ISO) peut retarder le d\xE9but d'une vague.`,"NL.E1106":e=>`La vague ${H(e.name)} a after:${e.ref}, mais ${H(e.ref)} est ${rI[e.kind]}. Le after: d'une vague accepte seulement des ancres, des jalons dat\xE9s ou une date ISO\xA0; pour qu'une vague attende du travail, placez ce travail dans une vague ant\xE9rieure.`,"NL.W1002":e=>`Les barri\xE8res de vagues ne se sont pas stabilis\xE9es apr\xE8s ${e.passes} passes de mise en page\xA0; le calendrier dessin\xE9 pourrait donc ne pas respecter l'ordre des vagues. La roadmap comporte probablement un conflit d'ordre que la validation n'a pas d\xE9tect\xE9.`,"NL.W1100":e=>{let t=Oy(e);return e.reason==="item"?`before:${e.ref} sur ${t} ne peut jamais \xEAtre respect\xE9\xA0: ${t} est dans la vague ${H(e.wave)}, qui ne peut pas d\xE9marrer avant la fin de ${H(e.ref)} (vague ${H(e.refWave)}). Le d\xE9passement sera peint.`:`before:${e.ref} sur ${t} ne peut jamais \xEAtre respect\xE9\xA0: ${t} est dans la vague ${H(e.wave)}, qui ne peut pas se terminer avant le d\xE9but de la vague ${H(e.ref)}. Le d\xE9passement sera peint.`},"NL.W1101":e=>{let t=Oy(e);switch(e.reason){case"forward-lane":return`${e.key}:${e.ref} sur ${t} r\xE9f\xE9rence ${H(e.ref)}, qui se trouve dans une swimlane ult\xE9rieure (${H(e.lane)}). La mise en page place les swimlanes dans l'ordre et ignore les r\xE9f\xE9rences \xE0 du travail qu'elle n'a pas encore plac\xE9, elle ignore donc ce ${e.key}:. D\xE9placez la swimlane ${H(e.lane)} au-dessus de la swimlane ${H(e.ownLane)}, ou retirez le ${e.key}:.`;case"forward-flow":return`${e.key}:${e.ref} sur ${t} r\xE9f\xE9rence ${H(e.ref)}, qui vient plus tard dans ${vs(e.flow)}. La mise en page ignore les r\xE9f\xE9rences \xE0 du travail qu'elle n'a pas encore plac\xE9, elle ignore donc ce ${e.key}:. D\xE9placez ${H(e.ref)} au-dessus ${Oy(e,!0)}, ou retirez le ${e.key}:.`;case"ancestor":return`${e.key}:${e.ref} sur ${t} r\xE9f\xE9rence ${H(e.ref)}, qui le contient. La mise en page ignore les r\xE9f\xE9rences \xE0 un groupe ou un bloc parall\xE8le englobant, elle ignore donc ce ${e.key}:. Retirez le ${e.key}:.`;case"floating-milestone":return`${e.key}:${e.ref} sur ${t} r\xE9f\xE9rence le jalon ${H(e.ref)}, qui n'a pas de date. Les jalons sans date sont plac\xE9s apr\xE8s tout le travail, la mise en page ignore donc ce ${e.key}:. R\xE9f\xE9rencez plut\xF4t les pr\xE9d\xE9cesseurs du jalon ou une vague.`}},"NL.I1006":e=>e.names.length===1?`La vague ${H(e.names[0])} ne sera pas affich\xE9e\xA0: aucun \xE9l\xE9ment ne lui est affect\xE9.`:`Les vagues ${QF(e.names)} ne seront pas affich\xE9es\xA0: aucun \xE9l\xE9ment ne leur est affect\xE9.`,"NL.I1007":e=>`Le jalon ${H(e.name)} (${e.date}) est d\xE9pass\xE9\xA0: la vague ${H(e.wave)} se termine le ${e.end}.`,"NL.I1008":e=>`L'\xE9l\xE9ment ${H(e.name)} est \xE9pingl\xE9 \xE0 ${e.pin} (${e.key}:), un jour non ouvr\xE9\xA0; il d\xE9marre le ${e.start}.`};var cI={};var uI={};var t2=new Map([["en-US",nI],["fr",lI],["fr-CA",cI],["fr-FR",uI]]);function Pt(e,t,...n){for(let r of n2(e)){let o=t2.get(r)?.[t];if(o)return o(...n)}return t}var fI="en-US";function n2(e){let t=[],n=r2(e);for(;n.length>0;){t.includes(n)||t.push(n);let r=n.lastIndexOf("-");if(r<=0)break;n=n.slice(0,r)}return t.includes(fI)||t.push(fI),t}function r2(e){return e.split("-").map((n,r)=>r===0?n.toLowerCase():/^[a-zA-Z]{2}$/.test(n)?n.toUpperCase():n).join("-")}var i2=/[\\/]/;function hI(e){for(let t=e.length-1;t>=0;t--){let n=e.charCodeAt(t);if(n===47||n===92)return t}return-1}function dI(...e){for(let t of e)if(t){if(t.includes("\\")&&!t.includes("/"))return"\\";if(t.includes("/"))return"/"}return"/"}function $y(e){return e?e[0]==="/"||e[0]==="\\"?!0:e.length>=3&&/^[A-Za-z]:[\\/]/.test(e):!1}function wd(e){let t=hI(e);return t<0?".":t===0?e[0]:t===2&&/^[A-Za-z]:[\\/]/.test(e)?e.slice(0,3):e.slice(0,t)}function _l(e){let t=hI(e);return t<0?e:e.slice(t+1)}function Al(e,t){if($y(t))return pI(t,dI(t));let n=dI(e,t);return pI(`${e}${n}${t}`,n)}function pI(e,t){let n="",r=e,i=/^([A-Za-z]:)([\\/])?/.exec(r);i?(n=i[1]+(i[2]?t:""),r=r.slice(i[0].length)):(r[0]==="/"||r[0]==="\\")&&(n=t,r=r.replace(/^[\\/]+/,""));let o=[];for(let s of r.split(i2))if(!(s===""||s===".")){if(s===".."){o.length>0&&o[o.length-1]!==".."?o.pop():n||o.push("..");continue}o.push(s)}return n+o.join(t)}function Ed(e){let t=Al("",e).replace(/\\/g,"/"),n=/^[A-Za-z]:/.test(t)?t.slice(0,2).toLowerCase():"",r=n?t.slice(2):t;return[n,...r.split("/").filter(i=>i!=="")]}function Dy(e,t){let n=Ed(e),r=Ed(t);return n.length<=r.length&&n.every((i,o)=>i===r[o])}function mI(e,t){let n=Ed(e),r=Ed(t);if(n[0]!==r[0])return t;let i=0;for(;i<n.length&&i<r.length&&n[i]===r[i];)i++;return[...n.slice(i).map(()=>".."),...r.slice(i)].join("/")||"."}function It(e){return/[\r\n]/.test(e)?e.replace(/\s*[\r\n]+\s*/g," ").trim():e}function gI(e,t,n){if(e===t)return 0;let r=e.length,i=t.length;if(Math.abs(r-i)>n)return n+1;if(r===0)return i;if(i===0)return r;let o=new Array(i+1),s=new Array(i+1);for(let a=0;a<=i;a++)o[a]=a;for(let a=1;a<=r;a++){s[0]=a;let l=a;for(let u=1;u<=i;u++){let f=e.charCodeAt(a-1)===t.charCodeAt(u-1)?0:1;s[u]=Math.min(o[u]+1,s[u-1]+1,o[u-1]+f),s[u]<l&&(l=s[u])}if(l>n)return n+1;let c=o;o=s,s=c}return o[i]}function yI(e,t,n=2){let r,i=n+1;for(let o of t){let s=gI(e,o,n);if(s<i&&(r=o,i=s,s===0))break}return r}function xI(e,t,n=2){let r,i=n+1,o=!1;for(let s of t){let a=gI(e,s,n);a<i?(r=s,i=a,o=!1):a===i&&a<=n&&s!==r&&(o=!0)}return o?void 0:r}function Re(e){return e.name??(e.title===void 0?"<unnamed>":It(e.title))}function Mr(e){return e.$type==="NonWorkingDeclaration"?"non-working":e.$type.replace(/Declaration$|Block$/,"").toLowerCase()}function kl(e){let t=Mr(e),n=e.name??(e.title===void 0?void 0:It(e.title));return n?`${t} "${n}"`:t}function En(e){let t=e.$cstNode;return t?t.range.start.line+1:0}function Td(e,t){return`"${e}" cannot be set on "default ${t}". Identity-defining, sizing, sequencing, reference, and prose properties must be explicit on each entity.`}function on(e){let t=new Set,n=[];for(let r of e.roadmapEntries)!Tt(r)||!r.name||t.has(r.name)||(t.add(r.name),n.push(r));return n}function o2(e){let t=new Map;return on(e).forEach((n,r)=>{t.set(n.name,r+1)}),t}function wI(e){return(e.properties??[]).filter(n=>Q(n)==="wave")}function TI(e){return wI(e)[0]}function My(e){return e.value!==void 0?e.value:e.values.length===1?e.values[0]:`[${e.values.join(", ")}]`}function s2(e){let t=e;for(;t?.$container&&!ss(t.$container);)t=t.$container;let n=t?.$container;if(!(!t||!n||!ss(n)))return{file:n,index:n.roadmapEntries.indexOf(t),waveDecls:vI(n)}}function vI(e){let t=new Map;return e.roadmapEntries.forEach((n,r)=>{Tt(n)&&n.name&&!t.has(n.name)&&t.set(n.name,r)}),t}function Fy(e,t,n,r=s2(t)){let i=My(e);if(e.value===void 0&&e.values.length!==1)return{status:"list",value:i};let o=n.get(i);if(o===void 0)return{status:"missing",value:i};if(r){let s=r.waveDecls.get(i);if(s!==void 0&&(r.index<0||s>r.index))return{status:"forward",value:i,line:En(r.file.roadmapEntries[s])}}return{status:"valid",id:i,index:o}}function a2(e){return $e(e)||et(e)}function l2(e,t,n,r){let i=TI(e);if(!i)return t;let o=Fy(i,e,n,r);if(o.status==="valid")return t??o.index}function vd(e,t){let n=new Map,r=new Map,i=new Map,o=(s,a,l)=>{let c=l2(s,a,t,l);c!==void 0&&n.set(s,c);let u=c;if($e(s)||et(s)){let f=[];for(let d of vt(s))f.push(o(d,c,l));c===void 0&&($e(s)?u=f[0]:f.length>0&&!f.includes(void 0)&&(u=Math.min(...f)))}return u!==void 0&&r.set(s,u),u};for(let s of e){let a,l=s.$container;if(ss(l)){let c=i.get(l);c||(c=vI(l),i.set(l,c)),a={file:l,index:l.roadmapEntries.indexOf(s),waveDecls:c}}for(let c of vt(s))o(c,void 0,a)}return{waveOf:n,leadOf:r}}function _I(e){return(e.properties??[]).find(n=>Q(n)==="date")?.value}function _s(e){let t=bA(e);return n=>t.get(n)}function Rl(e,t){let n=null;for(let r of e.properties){if(Q(r)!=="after")continue;let i=r.value!==void 0?[r.value]:r.values;for(let o of i){if(!o)continue;let s;if(ot.test(o))s=o;else{let a=t(o);(os(a)||xn(a))&&(s=_I(a))}s===void 0||!He(s)||(n===null||s>n.date)&&(n={date:s,ref:o})}}return n}var AI=new Set(["before","date","start","length","duration","size","capacity","remaining","wave"]);function Ni(e){return Tt(e.$container)&&AI.has(Q(e))}var c2={ItemDeclaration:"item",GroupBlock:"group",ParallelBlock:"parallel",SwimlaneDeclaration:"swimlane",AnchorDeclaration:"anchor",MilestoneDeclaration:"milestone",WaveDeclaration:"wave",LabelDeclaration:"label",SizeDeclaration:"size",StatusDeclaration:"status",PersonDeclaration:"person",TeamDeclaration:"team",FootnoteDeclaration:"footnote",RoadmapDeclaration:"roadmap",StyleDeclaration:"style",SymbolDeclaration:"symbol"};function Il(e){return c2[e.$type]??Mr(e)}function u2(e,t){let n=[],r=Re(e),i=!e.name&&e.title===void 0;if(e.name||n.push({severity:"error",code:"NL.E1100",args:{...e.title===void 0?{}:{title:It(e.title)},line:En(e)},node:e}),i)return n;for(let o of e.properties){let s=Q(o);if(AI.has(s)){n.push({severity:"error",code:"NL.E1105",args:s==="before"?{reason:"before",name:r}:{reason:"other",key:s,name:r},node:o,property:"key"});continue}if(s!=="after")continue;let a=o.value!==void 0?[o.value]:o.values;for(let l of a){if(!l||ot.test(l))continue;let c=t(l);if(!(!c||os(c))){if(xn(c)){if(_I(c)!==void 0)continue;n.push({severity:"error",code:"NL.E1106",args:{name:r,ref:l,kind:"floating-milestone"},node:o});continue}n.push({severity:"error",code:"NL.E1106",args:{name:r,ref:l,kind:Il(c)},node:o})}}}return n}function _d(e){let t=_s(e);return e.roadmapEntries.filter(Tt).flatMap(n=>u2(n,t))}function f2(e){return[...Mn(e,{config:!0,roadmap:!0})].filter(t=>vA(t)?nt(t):!Tt(t))}function d2(e,t){let n=e.toLowerCase(),r=t.filter(o=>o.title!==void 0&&It(o.title).toLowerCase()===n),i;if(r.length===1)i=r[0];else{let o=xI(e,t.map(s=>s.name));i=o===void 0?void 0:t.find(s=>s.name===o)}if(i)return i.title===void 0?{id:i.name}:{id:i.name,title:It(i.title)}}function p2(e,t,n){let r=n(t);if(r)return Il(r);for(let i of e.configEntries)if((Wt(i)||xi(i))&&i.name===t)return Il(i)}function h2(e,t){let n=e.$container;for(;a2(n);){let r=TI(n);if(r)return Fy(r,n,t).status==="valid"?{container:n,prop:r}:void 0;n=n?.$container}}function EI(e,t){let n=t.name??(t.title===void 0?"":It(t.title));return n?{kind:e,name:n}:{kind:e,name:n,line:En(t)}}function m2(e){if(nt(e))return{kind:"default",entityType:e.entityType};let t=e,n=t.name??(t.title===void 0?"":It(t.title)),r=Il(e);return n?{kind:r,name:n}:{kind:r,name:n,line:En(e)}}function g2(e,t,n,r,i,o){let s=Fy(n,t,i);switch(s.status){case"list":return{severity:"error",code:"NL.E1101",args:{reason:"list",value:s.value},node:n};case"forward":return{severity:"error",code:"NL.E1101",args:{reason:"forward",value:s.value,line:s.line},node:n};case"missing":{let u=p2(e,s.value,o),f=d2(s.value,r);return{severity:"error",code:"NL.E1101",args:u===void 0?{reason:"unknown",value:s.value,declared:r.map(d=>d.name),...f?{suggestion:f}:{}}:{reason:"not-a-wave",value:s.value,kind:u,...f?{suggestion:f}:{}},node:n}}case"valid":break}let a=h2(t,i);if(!a)return;let l=My(a.prop);if(l===s.id)return;let c=Ve(t)?"item":$e(t)?"group":"parallel";return{severity:"error",code:"NL.E1102",args:{entity:EI(c,t),wave:s.id,container:EI($e(a.container)?"group":"parallel",a.container),containerWave:l},node:n}}function Ad(e){let t=on(e),n=t.length>0,r=o2(e),i=_s(e),o=[];for(let s of f2(e)){let a=wI(s);if(a.length===0)continue;if(!n){for(let m of a)o.push({severity:"warning",code:"NL.W0702",args:{target:m2(s)},node:m,property:"key"});continue}if(nt(s)){for(let m of a)o.push({severity:"error",message:Td("wave",s.entityType),node:m});continue}let l=s,c=Re(l);if(!l.name&&l.title===void 0&&!Ve(s)&&!$e(s)&&!et(s))continue;if(Ke(s)||xn(s)){for(let m of a)o.push({severity:"error",code:"NL.E1104",args:{reason:Ke(s)?"swimlane":"milestone",name:c,value:My(m)},node:m});continue}if(!Ve(s)&&!$e(s)&&!et(s)){for(let m of a)o.push({severity:"error",code:"NL.E1104",args:{reason:"other",type:Il(s),name:c},node:m});continue}let[f,...d]=a,p=g2(e,s,f,t,r,i);if(p&&o.push(p),d.length>0){let m=a.flatMap(g=>g.value!==void 0?[g.value]:g.values);for(let g of d)o.push({severity:"error",code:"NL.E1101",args:{reason:"list",value:`[${m.join(", ")}]`},node:g})}}return o}var y2=["after-wave","after-item","sequence","join"];function Li(e){return e.name??(e.title===void 0?void 0:It(e.title))}function kd(e){let t=Li(e);if(Ke(e))return{kind:"swimlane",name:Re(e)};let n=$e(e);return t?{kind:n?"group":"parallel",name:t}:{kind:n?"group-block":"parallel-block",line:En(e)}}function kI(e){let t=Li(e);return t!==void 0||e.$type==="ItemDeclaration"?t:{kind:$e(e)?"group-block":"parallel-block",line:En(e)}}function II(e){return e.$type==="ItemDeclaration"||Li(e)!==void 0?{name:Re(e)}:{name:"",kind:$e(e)?"group":"parallel",line:En(e)}}function x2(e){let t=$e(e)?"group":"parallel",n=Li(e);return n?{kind:t,name:n}:{kind:t,name:"",line:En(e)}}function By(e){return(e.value!==void 0?[e.value]:e.values).filter(t=>!!t)}function E2(e){return xn(e)&&!e.properties.some(t=>Q(t)==="date")}function As(e,t,n={}){if(t.length===0)return[];let r=new Map;t.forEach((A,C)=>{A.name&&r.set(A.name,C+1)});let i=A=>t[A-1]?.name??"",{lanes:o,lookup:s}=e,{waveOf:a,leadOf:l}=vd(o,r),c=[],u=new Map,f=0,d=(A,C,W,G)=>{let K=c.length,q={node:A,lane:C,parent:W,children:[],prev:G,start:f++,reg:-1,ew:a.get(A),lw:l.get(A),after:[],afterWaves:[]};if(c.push(q),$e(A)||et(A)){let J=-1;for(let re of vt(A))J=d(re,C,K,$e(A)?J:-1),q.children.push(J);q.reg=f++}else q.reg=q.start;if(A.name){let J=u.get(A.name)??[];J.push(K),u.set(A.name,J)}return K};o.forEach((A,C)=>{let W=-1;for(let G of vt(A))W=d(G,C,-1,W)});let p=(A,C)=>{let W=u.get(A);if(W){for(let G=W.length-1;G>=0;G--)if(c[W[G]].reg<c[C].start)return W[G]}},m=[],g=n.suppressCycleRefs??!0?T2(c,o,s):()=>!1;for(let A=0;A<c.length;A++){let C=c[A],W=II(C.node);for(let G of C.node.properties){let K=Q(G);if(!(K!=="after"&&K!=="before"))for(let q of By(G)){if(ot.test(q))continue;let J=p(q,A),re=J===void 0?r.get(q):void 0;if(K==="after"&&(J!==void 0?C.after.push({from:J,prop:G,ref:q}):re!==void 0&&C.afterWaves.push({prop:G,ref:q,j:re})),J!==void 0||re!==void 0)continue;let le=u.get(q)?.[0];if(le===void 0&&!E2(s(q))||g(C.node.name,K,q))continue;let ce=!1;for(let pe=C.parent;pe>=0&&!ce;pe=c[pe].parent)ce=c[pe].node.name===q;m.push({severity:"warning",code:"NL.W1101",args:le===void 0?{reason:"floating-milestone",key:K,ref:q,...W}:ce?{reason:"ancestor",key:K,ref:q,...W}:c[le].lane!==C.lane?{reason:"forward-lane",key:K,ref:q,...W,lane:Re(o[c[le].lane]),ownLane:Re(o[C.lane])}:{reason:"forward-flow",key:K,ref:q,...W,flow:kd(w2(c,o,A,le))},node:G})}}}let w=new Array(c.length),x=new Array(c.length);for(let A=c.length-1;A>=0;A--){let C=c[A];if(C.node.$type==="ItemDeclaration"){w[A]=C.ew,x[A]=C.ew;continue}for(let W of C.children){let G=w[W],K=x[W];G!==void 0&&(w[A]=Math.max(w[A]??G,G)),K!==void 0&&(x[A]=Math.min(x[A]??K,K))}}for(let A=0;A<c.length;A++){let C=w[A];if(C===void 0)continue;let W=II(c[A].node);for(let G of c[A].node.properties)if(Q(G)==="before")for(let K of By(G)){if(ot.test(K))continue;let q=p(K,A);if(q!==void 0){let re=x[q];if(re===void 0||C<=re)continue;m.push({severity:"warning",code:"NL.W1100",args:{reason:"item",ref:K,...W,wave:i(C),refWave:i(re)},node:G});continue}let J=r.get(K);J===void 0||C<J||m.push({severity:"warning",code:"NL.W1100",args:{reason:"wave",ref:K,...W,wave:i(C)},node:G})}}let y=A=>c[A].node.$type!=="ItemDeclaration",E=A=>{let{parent:C}=c[A];return C<0?!1:et(c[C].node)||c[C].children[0]===A},_=new Array(c.length).fill(0),T=new Array(c.length).fill(0),I=A=>{let C=c[A],W=[];C.lw!==void 0&&W.push({term:{kind:C.ew!==void 0?"wave":"lead"},value:C.lw-1});for(let G of C.afterWaves)W.push({term:{kind:"after-wave",prop:G.prop,ref:G.ref},value:G.j});E(A)&&W.push({term:{kind:"parent",from:C.parent},value:_[C.parent]}),C.prev>=0&&W.push({term:{kind:"seq",from:C.prev},value:T[C.prev]});for(let G of C.after)W.push({term:{kind:"after",from:G.from,prop:G.prop,ref:G.ref},value:T[G.from]});return W},B=A=>{let C=_[A];for(let W of c[A].children)C=Math.max(C,T[W]);return C},$=c.map((A,C)=>[2*C+1]),X=c.map(()=>[]);for(let A=0;A<c.length;A++){let C=c[A];E(A)&&$[C.parent].push(2*A),C.prev>=0&&X[C.prev].push(2*A);for(let W of C.after)X[W.from].push(2*A);C.parent>=0&&X[A].push(2*C.parent+1)}let Y=[],D=new Array(2*c.length).fill(!0);for(let A=0;A<c.length;A++)Y.push(2*A,2*A+1);for(let A=0;A<Y.length;A++){let C=Y[A];D[C]=!1;let W=C>>1,G=(C&1)===1,K=G?B(W):Math.max(0,...I(W).map(q=>q.value));if(!(K<=(G?T[W]:_[W]))){G?T[W]=K:_[W]=K;for(let q of G?X[W]:$[W])D[q]||(D[q]=!0,Y.push(q))}}let R=(A,C)=>I(A).filter(W=>W.value===C).map(W=>W.term),S=(A,C)=>{if(!y(A))return[{kind:"start"}];let W=c[A].children.filter(G=>T[G]===C).map(G=>({kind:"child",from:G}));return W.length>0?$e(c[A].node)?W.reverse():W:_[A]===C?[{kind:"start"}]:[]},O=(A,C)=>{let W=[{i:A,via:A}];for(;W.length>0;){let{i:G,via:K}=W.pop(),q=S(G,C);for(let J=q.length-1;J>=0;J--){let re=q[J];if(re.kind==="start"){let le=c[G].ew;if(le!==void 0&&le-1===C)return{origin:G,via:K}}else re.kind==="child"&&W.push({i:re.from,via:G===A?re.from:K})}}},k=(A,C)=>{let W=c[A].ew;return W!==void 0&&W-1===C},L=(A,C)=>{let W=A;for(;c[W].prev>=0||E(W);){let G=c[W].prev;if(G<0){W=c[W].parent;continue}let K=c[G].ew;if(K!==void 0&&K>C)return G;W=G}},v=new Map,P=[],b=new Map,F=(A,C,W)=>`${A}:${c[A].node.properties.indexOf(C)}:${W}`,j=(A,C)=>{let W=[],G=A;for(;;){let K=R(G,C);for(let J of K)if(J.kind==="after-wave")W.push({variant:"after-wave",owner:G,prop:J.prop,ref:J.ref});else if(J.kind==="after")k(J.from,C)&&W.push({variant:"after-item",owner:G,prop:J.prop,ref:J.ref});else if(J.kind==="seq"){let re=J.from,le=c[re].node;if(et(le)&&c[re].ew===void 0){let ce=O(re,C),pe=ce&&(Li(c[ce.via].node)??Li(c[ce.origin].node));pe&&W.push({variant:"join",owner:G,block:re,track:pe})}else if(k(re,C)){let ce=kI(le);ce&&W.push({variant:"sequence",owner:G,pred:re,ref:ce})}}let q=K.find(J=>J.kind==="parent");if(!q)break;G=q.from}for(let K of y2){let q=W.find(J=>J.variant===K);if(q)return q}},U=(A,C)=>{let W=[{key:2*A,from:-1}],G=new Set([2*A]),K,q=(J,re)=>{G.has(J)||(G.add(J),W.push({key:J,from:re}))};for(let J=0;J<W.length;J++){let re=W[J].key>>1;if(re!==A&&v.has(re)){K??(K=re);continue}if((W[J].key&1)===1){for(let pe of S(re,C))pe.kind==="start"?q(2*re,J):pe.kind==="child"&&q(2*pe.from+1,J);continue}let le=R(re,C),ce=le.find(pe=>pe.kind==="wave"||pe.kind==="lead")??le.find(pe=>pe.kind==="after-wave");if(ce){let pe=[];for(let ht=J;ht>=0;ht=W[ht].from){let mt=W[ht].key>>1;pe[pe.length-1]!==mt&&pe.push(mt)}let rt=Re(c[re].node);return{path:pe,origin:ce.kind==="after-wave"?`${rt} (after:${ce.ref})`:`${rt} (wave "${i(C+1)}")`}}for(let pe of le)pe.kind==="parent"?q(2*pe.from,J):(pe.kind==="seq"||pe.kind==="after")&&q(2*pe.from+1,J)}return{hit:K}},ee=(A,C,W,G)=>{let K=Re(c[C].node),q=i(W),J=i(G+1),re=c[A.owner].node,le=A.owner===C?void 0:x2(re);switch(A.variant){case"after-wave":{let ce=c[A.owner].ew===void 0?void 0:le;return{node:A.prop,run:[C],build:()=>({reason:"after-wave",name:K,wave:q,refId:A.ref,...ce?{container:ce}:{}})}}case"after-item":return{node:A.prop,run:[C],build:()=>({reason:"after-item",name:K,wave:q,refId:A.ref,ref:A.ref,refWave:J,...le?{container:le}:{}})};case"join":{let ce=c[A.block];return{node:c[C].node,run:[C],build:()=>({reason:"join",name:K,wave:q,block:kd(ce.node),flow:kd(RI(c,o,A.block)),track:A.track,trackWave:J})}}case"sequence":{let ce=A.pred,pe=c[ce].parent,rt=ht=>{if(pe<0)return c[ht].lane===c[ce].lane;for(let mt=c[ht].parent;mt>=0;mt=c[mt].parent)if(mt===pe)return!0;return!1};return{node:c[C].node,run:[C],build:ht=>{let mt=ht.filter(rt);return{reason:"sequence",items:mt.map(Ql=>Re(c[Ql].node)),itemWave:q,ref:A.ref,refWave:i(c[ce].ew??G+1),flow:kd(RI(c,o,ce)),last:Re(c[mt[mt.length-1]].node)}},seq:{pred:ce,ref:A.ref,inFlow:rt}}}}},V=(A,C)=>(P.push(C),A!==void 0&&b.set(A,C),C),ne=(A,C,W,G)=>{let K=A.variant==="sequence"?`sequence:${A.pred}:${W}`:A.variant==="join"?`join:${A.block}:${W}`:`${A.variant}:${F(A.owner,A.prop,A.ref)}`,q=b.get(K);return q?(q.run.push(C),q):V(K,ee(A,C,W,G))};for(let A=0;A<c.length;A++){let C=c[A],W=C.ew;if(C.node.$type!=="ItemDeclaration"||W===void 0||_[A]<W)continue;let G=_[A],K=j(A,G),q;if(K)q=ne(K,A,W,G);else{let J=U(A,G);if("path"in J){let re=J.path.slice(1).filter(rt=>!y(rt)||Li(c[rt].node)!==void 0).map(rt=>Re(c[rt].node)),le=[J.origin,...re.filter((rt,ht)=>re[ht-1]!==rt)],ce=Re(C.node),pe=i(W);q=V(void 0,{node:C.node,run:[A],build:()=>({reason:"chain",name:ce,wave:pe,chain:le})})}else{let re=J.hit===void 0?void 0:v.get(J.hit),le=re?.seq;if(le?.inFlow(A)){let ce=L(A,W),pe=ce===void 0?void 0:kI(c[ce].node),rt=ce!==void 0&&pe!==void 0?{variant:"sequence",owner:A,pred:ce,ref:pe}:{variant:"sequence",owner:A,pred:le.pred,ref:le.ref};q=ne(rt,A,W,G)}else q=re,q?.run.push(A)}}q&&v.set(A,q)}for(let A of P)m.push({severity:"error",code:"NL.E1103",args:A.build(A.run),node:A.node});return m}function RI(e,t,n){let r=e[n].parent;return r<0?t[e[n].lane]:e[r].node}function w2(e,t,n,r){let i=new Set;for(let o=e[r].parent;o>=0;o=e[o].parent)i.add(o);for(let o=e[n].parent;o>=0;o=e[o].parent)if(i.has(o))return e[o].node;return t[e[n].lane]}function T2(e,t,n){let r=new Map,i=(c,u)=>{let f=r.get(c)??new Set;f.add(u),r.set(c,f)},o=[],s=(c,u)=>{if(c)for(let f of u){let d=Q(f);if(!(d!=="after"&&d!=="before"))for(let p of By(f))ot.test(p)||(d==="after"?i(c,p):i(p,c),o.push(p))}};for(let c of t)s(c.name,c.properties);for(let c of e)s(c.node.name,c.node.properties);let a=new Set;for(;o.length>0;){let c=o.pop();if(a.has(c))continue;a.add(c);let u=n(c);xn(u)&&s(u.name,u.properties)}let l=(c,u)=>{let f=new Set([c]),d=[c];for(;d.length>0;){let p=d.pop();if(p===u)return!0;for(let m of r.get(p)??[])f.has(m)||(f.add(m),d.push(m))}return!1};return(c,u,f)=>c?u==="after"?l(f,c):l(c,f):!1}function ks(e){return t=>e.anchors.get(t)??e.milestones.get(t)??e.waves?.get(t)}function Sl(e){let t=e.$document?.parseResult;return!!t&&(t.lexerErrors.length>0||t.parserErrors.length>0)}function bI(e,t){return Sl(e)?!1:!!e.roadmapDecl||t.swimlanes.size>0||on(e).length>0}function Oi(e,t){if(!e.$cstNode)return{};let{start:n,end:r}=eg({node:e,...t===void 0?{}:{property:t}});return{line:n.line,range:{start:{line:n.line,character:n.character},end:{line:r.line,character:r.character}}}}function Pi(e,t,n,r,...i){return{severity:e,message:Pt("en-US",r,...i),sourcePath:t,...n,code:r,args:i,rule:"wave"}}function Id(e){return e.map(t=>t.name)}function SI(e){let t=n=>{let r=e.properties.find(i=>Q(i)===n);return r?r.value??r.values.join(", "):""};return{title:e.title===void 0?"":It(e.title),style:t("style"),labels:t("labels"),link:t("link"),description:e.description?It(e.description.text):""}}var v2=["title","style","labels","link","description"];function NI(e,t,n){let r={diagnostics:[],failed:!1};if(n.mode==="ignore"||!n.participates||n.childFile.roadmapEntries.some(p=>Tt(p)&&!p.name))return r;let i=n.parentAbs,o=Oi(n.inc),s=n.childRelPath,a=on(e),l=on(n.childFile),c=p=>({diagnostics:[p],failed:!0});if(a.length===0&&l.length===0)return r;if(l.length===0)return c(Pi("error",i,o,"NL.E0202",{reason:"child-none",path:s,parent:Id(a)}));if(a.length===0)return c(Pi("error",i,o,"NL.E0202",{reason:"parent-none",path:s,child:Id(l)}));if(a.length!==l.length||a.some((p,m)=>p.name!==l[m].name))return c(Pi("error",i,o,"NL.E0202",{reason:"mismatch",path:s,child:Id(l),parent:Id(a)}));let u=ks(t),f=ks(n.childContent);for(let p=0;p<a.length;p++){let m=Rl(a[p],u)?.date??null,g=Rl(l[p],f)?.date??null;if(m!==g)return c(Pi("error",i,o,"NL.E0202",{reason:"floor",id:a[p].name,path:s,childFloor:g,parentFloor:m}))}let d=[];for(let p=0;p<a.length;p++){let m=SI(a[p]),g=SI(l[p]),w=v2.filter(x=>m[x]!==g[x]).map(x=>({field:x,there:g[x],here:m[x]}));w.length!==0&&d.push(Pi("warning",i,o,"NL.W0701",{id:a[p].name,path:s,fields:w}))}return{diagnostics:d,failed:!1}}function _2(e){let t=e;for(;t&&!ss(t);)t=t.$container;return t}function LI(e){let{rootFile:t,rootAbs:n,rootContent:r,files:i,edges:o,failed:s}=e,a=[],l=new Set,c=T=>{let I=JSON.stringify([T.sourcePath,T.line,T.code,T.args,T.message]);l.has(I)||(l.add(I),a.push(T))},u=T=>{let I=_2(T);return I?i.get(I):void 0},f=(T,I)=>{let B=Oi(T.node,T.property);return"message"in T?{severity:T.severity,message:T.message,sourcePath:I,...B,rule:"wave"}:Pi(T.severity,I,B,T.code,T.args)},d=[],p=new Set([n]),m=T=>{for(let I of o.get(T)??[])I.mode==="ignore"||!I.participates||p.has(I.childAbs)||(p.add(I.childAbs),s.has(I.childAbs)||d.push({file:I.childFile,abs:I.childAbs}),m(I.childAbs))};m(n);let g=on(t),w=new Map(g.map(T=>[T.name,T]));for(let{file:T,abs:I}of d){for(let $ of _d(T))c(f($,I));for(let $ of Ad(T))c(f($,I));if(w.size===0)continue;let B=($,X)=>{let Y=$===void 0?void 0:w.get($);if(!Y||Tt(X))return;let D=Y.$cstNode?Y.$cstNode.range.start.line+1:0;c(Pi("error",I,Oi(X),"NL.E0300",{name:$,location:`${_l(n)}:${D}`}))};T.roadmapDecl&&B(T.roadmapDecl.name,T.roadmapDecl);for(let $ of T.roadmapEntries)Uf($,B);for(let $ of T.configEntries)Wt($)&&B($.name,$)}if(g.length===0)return a;let x=T=>"message"in T?T.message:`${T.code}\0${JSON.stringify(T.args)}`,y=new Map,E={lanes:t.roadmapEntries.filter(Ke),lookup:_s(t)};for(let T of As(E,g,{suppressCycleRefs:!1})){let I=y.get(T.node)??new Set;I.add(x(T)),y.set(T.node,I)}let _=T=>{for(let I of T){if(y.get(I.node)?.has(x(I)))continue;let B=u(I.node);B===void 0||s.has(B)||c(f(I,B))}};_(As({lanes:[...r.swimlanes.values()],lookup:ks(r)},g,{suppressCycleRefs:!1}));for(let T of r.isolatedRegions){let I=T.content.roadmap?u(T.content.roadmap):void 0;if(I!==void 0&&s.has(I))continue;let B=[...T.content.waves?.values()??[]];B.length!==0&&_(As({lanes:[...T.content.swimlanes.values()],lookup:ks(T.content)},B,{suppressCycleRefs:!1}))}return a}function Rd(e){let t=SA(e),n=[];for(let r of e.roadmapEntries)Xf(r,i=>{let o=Q(i);if(o!=="after"&&o!=="before"&&o!=="on"||Ni(i))return;let s=i.value?[i.value]:i.values;for(let a of s)a&&((o==="after"||o==="before")&&ot.test(a)||t.has(a)||n.push({prop:i,key:o,value:a}))});return n}function PI(e,t){let n=[],r=new Set([e]),i=o=>{for(let s of t.get(o)??[])if(!(s.mode==="ignore"||r.has(s.childAbs))){if(r.add(s.childAbs),!Sl(s.childFile))for(let{prop:a,key:l,value:c}of Rd(s.childFile)){let u=[{key:l,value:c}];n.push({severity:"error",message:Pt("en-US","NL.E0302",...u),sourcePath:s.childAbs,...Oi(a),code:"NL.E0302",args:u})}i(s.childAbs)}};return i(e),n}function OI(e){let t=e?.properties.find(n=>n.key==="start");if(!(!t?.value||!He(t.value)))return t.value}function Fr(e){return e.code!==void 0||e.rule==="wave"||e.syntax!==void 0}function k2(){return{styles:new Map,defaults:new Map,symbols:new Map,calendarDeclarations:[]}}function I2(){return{persons:new Map,teams:new Map,anchors:new Map,labels:new Map,sizes:new Map,statuses:new Map,swimlanes:new Map,milestones:new Map,footnotes:new Map,isolatedRegions:[]}}var Gy=16;async function Hy(e,t,n){let r=n.readFile??(async u=>{let{nodeReadFile:f}=await Promise.resolve().then(()=>(Xy(),Wy));return f(u)}),i=n.includePolicy,o=(i?.kind==="rooted"?i.realPath:void 0)??(async u=>{let{nodeRealPath:f}=await Promise.resolve().then(()=>(Xy(),Wy));return f(u)}),s=Al("",t),a={services:n.services,rootAbs:s,policy:i,realPath:o,displayBase:i?.kind==="rooted"?i.root:wd(s),diagnostics:[],resolving:[],processed:new Map,readFile:r,files:new Map,edges:new Map,failedWaves:new Set},{config:l,content:c}=await DI(e,s,a);return a.diagnostics.push(...LI({rootFile:e,rootAbs:s,rootContent:c,files:a.files,edges:a.edges,failed:a.failedWaves})),a.diagnostics.push(...PI(s,a.edges)),{config:l,content:c,diagnostics:a.diagnostics,processedFiles:new Set(a.processed.keys())}}async function DI(e,t,n){if(n.processed.has(t))return n.processed.get(t);t!==n.rootAbs&&n.diagnostics.push(...b2(e,t)),n.resolving.push(t),n.files.set(e,t);let r=k2(),i=I2();$2(r,e),B2(i,e);let o=on(e);o.length>0&&(i.waves=new Map(o.map(c=>[c.name,c])));let s=[];n.edges.set(t,s);let a=new Set;for(let c of e.includes){let u=c.path,f=(T,...I)=>{n.diagnostics.push(R2(t,c,T,...I))};if(n.policy?.kind==="disabled"){f("NL.E0209",{path:u});continue}let d=await S2(t,u,n);if("refused"in d){f("NL.E0208",d.refused);continue}if("unreadable"in d){f("NL.E0203",d.unreadable);continue}let p=d.absPath;if(a.has(p)){f("NL.E0205",{path:u});continue}a.add(p);let m=n.resolving.indexOf(p);if(m>=0){let T=[...n.resolving.slice(m),p].map(I=>mI(n.displayBase,I)).join(" \u2192 ");f("NL.E0204",{path:u,chain:T});continue}if(n.resolving.length>Gy){f("NL.E0210",{path:u,max:Gy});continue}if(!p.endsWith(".nowline")){f("NL.E0203",{reason:"not-nowline",path:u});continue}let g=CI(c,"config")??"merge",w=CI(c,"roadmap")??"merge",x;try{let T=await n.readFile(p);x=await N2(n.services,T,p)}catch(T){f("NL.E0203",MI(u,T));continue}let{config:y,content:E}=await DI(x,p,n);s.push({parentAbs:t,inc:c,childRelPath:u,childAbs:p,mode:w,childFile:x,childContent:E,participates:bI(x,E)}),L2(r,y,g,p,n.diagnostics),P2(i,E,y,w,p,u,n.diagnostics);let _=!Sl(x);if(_&&w==="isolate"&&!E.roadmap&&f("NL.E0206",{path:u}),_&&w!=="ignore"&&x.roadmapDecl){let T=OI(e.roadmapDecl),I=OI(x.roadmapDecl);T!==I&&f("NL.E0207",{path:u,...T?{parentStart:T}:{},...I?{childStart:I}:{}})}}i.waves&&F2(i,i.waves);for(let c of s){let{diagnostics:u,failed:f}=NI(e,i,c);n.diagnostics.push(...u),f&&n.failedWaves.add(c.childAbs)}n.resolving.pop();let l={config:r,content:i};return n.processed.set(t,l),l}function R2(e,t,n,...r){return{severity:"error",message:Pt("en-US",n,...r),sourcePath:e,...Oi(t,"path"),code:n,args:r}}async function S2(e,t,n){let r=n.policy;if(r?.kind!=="rooted")return{absPath:Al(wd(e),t)};if($y(t))return{refused:{reason:"absolute",path:t}};let i=Al(wd(e),t);if(!Dy(r.root,i))return{refused:{reason:"parent",path:t}};let o;try{o=await n.realPath(i)}catch(s){return{unreadable:MI(t,s)}}return Dy(r.root,o)?{absPath:o}:{refused:{reason:"symlink",path:t}}}function MI(e,t){switch(t?.code){case"ENOENT":case"ENOTDIR":return{reason:"not-found",path:e};case"EISDIR":return{reason:"is-directory",path:e};case"EACCES":case"EPERM":return{reason:"permission-denied",path:e}}let n=t instanceof Error?t.message:void 0;return{reason:"unreadable",path:e,...n?{detail:n}:{}}}function b2(e,t){let n=e.$document;if(!n)return[];let r=[];for(let i of bi(n)){if(i.origin==="validation")continue;let o=i.origin==="lexer"?i.error.line:i.error.token?.startLine;r.push({severity:"error",message:i.error.message,sourcePath:t,...o!==void 0&&Number.isFinite(o)?{line:o-1}:{},syntax:i})}return r}function CI(e,t){let n=e.options.find(r=>r.key===t);if(n&&(n.value==="merge"||n.value==="ignore"||n.value==="isolate"))return n.value}async function N2(e,t,n){let r=Ce.file(n),o=e.shared.workspace.LangiumDocumentFactory.fromString(t,r);return await e.shared.workspace.DocumentBuilder.build([o],{validation:!1}),o.parseResult.value}function L2(e,t,n,r,i){if(n==="ignore"||n==="isolate")return;let o=(s,a)=>i.push({severity:"warning",message:`${a} "${s}" from ${_l(r)} is shadowed by the parent's definition.`,sourcePath:r});Uy(e.styles,t.styles,s=>o(s,"Style")),Uy(e.defaults,t.defaults,s=>o(s,"Default")),Uy(e.symbols,t.symbols,s=>o(s,"Symbol")),O2(e.calendarDeclarations,t.calendarDeclarations,s=>o(s.name,C2(s))),t.scale&&!e.scale&&(e.scale=t.scale),t.calendar&&!e.calendar&&(e.calendar=t.calendar)}function P2(e,t,n,r,i,o,s){if(r==="ignore")return;if(r==="isolate"){t.roadmap&&e.isolatedRegions.push({sourcePath:o,config:n,content:t});return}let a=(l,c)=>s.push({severity:"warning",message:`${c} "${l}" from ${_l(i)} is shadowed by the parent's definition.`,sourcePath:i});Hn(e.persons,t.persons,l=>a(l,"Person")),Hn(e.teams,t.teams,l=>a(l,"Team")),Hn(e.anchors,t.anchors,l=>a(l,"Anchor")),Hn(e.labels,t.labels,l=>a(l,"Label")),Hn(e.sizes,t.sizes,l=>a(l,"Size")),Hn(e.statuses,t.statuses,l=>a(l,"Status")),Hn(e.swimlanes,t.swimlanes,l=>a(l,"Swimlane")),Hn(e.milestones,t.milestones,l=>a(l,"Milestone")),Hn(e.footnotes,t.footnotes,l=>a(l,"Footnote")),t.roadmap&&!e.roadmap&&(e.roadmap=t.roadmap)}function Uy(e,t,n){for(let[r,i]of t){if(e.has(r)){e.get(r)!==i&&n(r);continue}e.set(r,i)}}function O2(e,t,n){let r=new Set(e),i=new Set(e.filter(o=>o.name).map($I));for(let o of t)if(!r.has(o)){if(o.name&&i.has($I(o))){n(o);continue}e.push(o),r.add(o)}}function $I(e){return`${e.$type}:${e.name}`}function C2(e){return br(e)?"Non-working":"Working"}function Hn(e,t,n){let r=new Set(e.values());for(let[i,o]of t)if(!r.has(o)){if(!o.name&&o.title){e.set(zy(e,FI(o.title)),o);continue}if(e.has(i)){n(i);continue}e.set(i,o)}}function $2(e,t){for(let n of t.configEntries)D2(e,n)}function D2(e,t){_A(t)?e.scale||(e.scale=t):za(t)?e.calendar||(e.calendar=t):Wt(t)?t.name&&!e.styles.has(t.name)&&e.styles.set(t.name,t):xi(t)?t.name&&!e.symbols.has(t.name)&&e.symbols.set(t.name,t):nt(t)?e.defaults.has(t.entityType)||e.defaults.set(t.entityType,t):(br(t)||qa(t))&&e.calendarDeclarations.push(t)}function M2(e){let t={swimlanes:new Set,persons:new Set,teams:new Set,anchors:new Set,labels:new Set,sizes:new Set,statuses:new Set,milestones:new Set,footnotes:new Set};for(let n of e){let r=n.name;if(r){if(Ke(n))t.swimlanes.add(r);else if(Va(n))t.persons.add(r);else if(tn(n))t.teams.add(r);else if(os(n))t.anchors.add(r);else if(Ya(n))t.labels.add(r);else if(yi(n))t.sizes.add(r);else if(Ka(n))t.statuses.add(r);else if(xn(n))t.milestones.add(r);else if(Ng(n))t.footnotes.add(r);else if(Tt(n))for(let i of Object.values(t))i.add(r)}}return t}function F2(e,t){let n=[e.persons,e.teams,e.anchors,e.labels,e.sizes,e.statuses,e.swimlanes,e.milestones,e.footnotes],r=(i,o)=>t.has(i)&&!o.name&&!!o.title;for(let i of n){let o=[...i];if(!o.some(([a,l])=>r(a,l)))continue;let s=new Set([...i.keys(),...t.keys()]);i.clear();for(let[a,l]of o){let c=r(a,l)?zy(i,a,s):a;s.add(c),i.set(c,l)}}}function B2(e,t){t.roadmapDecl&&!e.roadmap&&(e.roadmap=t.roadmapDecl);let n=M2(t.roadmapEntries);for(let r of t.roadmapEntries)W2(e,r,n)}function FI(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"entity"}function zy(e,t,n){let r=o=>e.has(o)||(n?.has(o)??!1);if(!r(t))return t;let i=2;for(;r(`${t}-${i}`);)i++;return`${t}-${i}`}function zn(e,t,n){t.name?e.has(t.name)||e.set(t.name,t):t.title&&e.set(zy(e,FI(t.title),n),t)}function W2(e,t,n){Ke(t)?zn(e.swimlanes,t,n.swimlanes):Va(t)?zn(e.persons,t,n.persons):tn(t)?zn(e.teams,t,n.teams):os(t)?zn(e.anchors,t,n.anchors):Ya(t)?zn(e.labels,t,n.labels):yi(t)?zn(e.sizes,t,n.sizes):Ka(t)?zn(e.statuses,t,n.statuses):xn(t)?zn(e.milestones,t,n.milestones):Ng(t)&&zn(e.footnotes,t,n.footnotes)}function bl(e){let t=e?.roadmapDecl?.properties.find(r=>Q(r)==="start");if(!t)return{kind:"missing"};let n=t.value;return!n||!He(n)?{kind:"invalid"}:{kind:"valid",iso:n,date:new Date(n)}}function Z(e,t,n,r,...i){e(t,Pt("en-US",r,...i),{...n,data:{code:r,args:i}})}function Sd(e,t){let n={node:t.node,...t.property===void 0?{}:{property:t.property}};if("message"in t){e(t.severity,t.message,n);return}Z(e,t.severity,n,t.code,t.args)}function Ci(e){let t=e.$cstNode;return t?`line ${t.range.start.line+1}`:"unknown location"}function bd(e){return/^[a-zA-Z_][a-zA-Z0-9_-]*$/.test(e)}var jy="v1",Nd=new Set(zf),BI=new Set(Ei),Yy=new Set(Ja),Nl=new Set(MA),WI=new Set(PA),XI=new Set(FA),Ll=Object.fromEntries(Object.entries(OA).map(([e,t])=>[e,new Set(t)])),UI=new Set(CA),GI=new Set($A),Ld=new Set(BA),Vy=new Set(WA),Ky=new Set(XA),HI={item:new Set(["size","duration","after","before","remaining","link","description","owner"]),milestone:new Set(["date","after","link","description"]),anchor:new Set(["date","link","description"]),footnote:new Set(["on","link","description"]),label:new Set(["link","description"]),swimlane:new Set(["capacity"]),roadmap:new Set,parallel:new Set,group:new Set},qy=new Set(UA),zI=Object.fromEntries(Object.entries(GA).map(([e,t])=>[e,new Set(t)])),X2=[{keys:new Set(["progress","percent","percentage","pct","complete","completion"]),requires:"remaining",suggest:"status: + remaining:"},{keys:new Set(["date","start"]),requires:"after",entities:new Set(["ItemDeclaration","ParallelBlock","GroupBlock"]),suggest:"after:<date>"}];function jI(e,t,n){let r=e.toLowerCase();for(let i of X2)if(!(!i.keys.has(r)||!t.has(i.requires))&&!(i.entities&&(n===void 0||!i.entities.has(n))))return i.suggest}var $i=/^\d+(?:\.\d+)?[dwmqy]$/,YI=/^\d+%$/,VI=/^#[0-9a-fA-F]{3,8}$/,KI=/^v\d+$/,Zy=/^\d+$/,qI=/^[dwmqy]$/,Jy=/^\d+(\.\d+)?$/,Pl=/^\d+(\.\d+)?%$/,Pd=/^\d+\.\d+$/,ZI=/^\d+$/,JI=/^[\x20-\x7E]{1,3}$/,QI=/^[a-zA-Z]{2,3}(-[a-zA-Z]{2}|-\d{3})?$/,eR=new Set(DA),Qy=new Set(HA);function nR(e,t){let n=e.configEntries.filter(za),i=e.roadmapDecl?.properties.find(o=>Q(o)==="calendar")?.value;if(n.length>0&&i!=="custom")for(let o of n)t("error",'A "calendar" config block is only valid when the roadmap declares calendar:custom.',{node:o});if(i==="custom"&&n.length===0&&t("error",'calendar:custom requires a "calendar" config block with days-per-week, days-per-month, days-per-quarter, and days-per-year.',{node:e.roadmapDecl,property:"properties"}),i==="custom"&&n.length>0)for(let o of n){let s=new Set(o.properties.map(a=>Q(a)));for(let a of Ld)s.has(a)||t("error",`calendar:custom requires "${a}" in the calendar config block.`,{node:o})}}function rR(e,t){let n=new Set;for(let r of e.properties){let i=Q(r);if(!Ld.has(i)){t("error",`Unknown calendar property "${i}". Allowed: ${[...Ld].join(", ")}.`,{node:r,property:"key"});continue}n.has(i)&&t("error",`Duplicate calendar property "${i}".`,{node:r,property:"key"}),n.add(i),(!Zy.test(r.value)||parseInt(r.value,10)<=0)&&t("error",`"${i}" must be a positive integer, got "${r.value}".`,{node:r,property:"value"})}}function iR(e,t){let n=new Set;for(let r of e.properties){let i=Q(r);if(!Vy.has(i)){t("error",`Unknown scale property "${i}". Allowed: ${[...Vy].join(", ")}.`,{node:r,property:"key"});continue}n.has(i)&&t("error",`Duplicate scale property "${i}".`,{node:r,property:"key"}),n.add(i),i==="label-every"&&(!Zy.test(r.value)||parseInt(r.value,10)<=0)&&t("error",`"label-every" must be a positive integer, got "${r.value}".`,{node:r,property:"value"})}}function oR(e,t){let n=Mr(e),r=Za(e),{own:i}=r;for(let c of e.properties)$g.has(Q(c))||Z(t,"error",{node:c,property:"key"},"NL.E0901",{kind:n,key:Q(c)});r.shape==="malformed"&&Z(t,"error",{node:e},"NL.E0900",{kind:n});let o=i.get("date");o&&o.values.length>0&&o.values.forEach((c,u)=>{He(c)||Z(t,"error",{node:o,property:"values",index:u},"NL.E0405",{key:"date",value:c})});for(let c of["start","end"]){let u=i.get(c);u&&u.values.length>1?Z(t,"error",{node:u},"NL.E0902",{kind:n,key:c}):u&&u.values.length===1&&!He(u.values[0])&&Z(t,"error",{node:u,property:"values",index:0},"NL.E0405",{key:c,value:u.values[0]})}let{start:s,end:a}=r;s&&a&&a<s&&Z(t,"error",{node:i.get("end"),property:"value"},"NL.E0903",{start:s,end:a});let l=i.get("every");if(l){let c=new Set;(l.value!==void 0?[l.value]:l.values).forEach((f,d)=>{let p=l.values.length>0?{node:l,property:"values",index:d}:{node:l,property:"value"};Cg(f)?c.has(f)&&Z(t,"error",p,"NL.E0905",{value:f}):Z(t,"error",p,"NL.E0904",{value:f}),c.add(f)})}}function sR(e,t){let n=e.roadmapDecl;if(!n)return;let r=e.configEntries.filter(lR),i=r.map(y=>({decl:y,facts:Za(y)})).filter(({facts:y})=>y.wellFormed),o=y=>y.weekdays??[],s=i.filter(({facts:y})=>y.shape==="open-recurrence"),a=n.properties.find(y=>Q(y)==="calendar"),l=e.configEntries.find(za),c=a?.value==="custom"&&l!==void 0,u=a?.value==="full",f=c?l.properties.find(y=>Q(y)==="days-per-week"):void 0,d=parseInt(f?.value??"",10),p=c?Number.isFinite(d)&&d>0?d:tR:u?7:tR,m=Gf(r),g=new Set(!c&&!u&&!m?[0,6]:[]);for(let{decl:y,facts:E}of s)if(br(y))for(let _ of o(E))g.add(_);for(let{decl:y,facts:E}of s)if(qa(y))for(let _ of o(E))g.delete(_);if(g.size===7)for(let{decl:y}of s)br(y)&&Z(t,"error",{node:y},"NL.E0906");for(let{decl:y,facts:E}of i){if(!br(y)||E.shape!=="half-bounded-recurrence")continue;new Set([...g,...o(E)]).size===7&&Z(t,"error",{node:y},"NL.E0906")}let w=7-g.size;if(w===0||w===p)return;let x=c?f?{node:f,property:"value"}:{node:l}:a?{node:a}:s.length>0?{node:s[0].decl}:{node:n};Z(t,"warning",x,"NL.W0705",{daysPerWeek:p,working:w})}function aR(e,t){let n=new Map;for(let r of e.configEntries){if(!lR(r)||!r.name)continue;let i=`${r.$type}:${r.name}`;n.has(i)?Z(t,"error",{node:r,property:"name"},"NL.E0907",{kind:Mr(r),name:r.name}):n.set(i,r)}}var tR=5;function lR(e){return br(e)||qa(e)}function uR(e,t){e.properties.find(r=>Q(r)==="date")||Z(t,"error",{node:e},"NL.E0500",{name:Re(e)})}function fR(e,t){let n=e.properties.find(s=>Q(s)==="date");if(!n?.value)return;let r=n.value;if(!He(r))return;let i=new Date(r),o=bl(e.$container);switch(o.kind){case"invalid":return;case"missing":Z(t,"error",{node:n,property:"value"},"NL.E0501",{name:Re(e)});return;case"valid":i<o.date&&Z(t,"error",{node:n,property:"value"},"NL.E0502",{name:Re(e),date:r,start:o.iso});return}}function dR(e,t){let n=e.properties.some(i=>Q(i)==="date"),r=e.properties.some(i=>Q(i)==="after");!n&&!r&&Z(t,"error",{node:e},"NL.E0503",{name:Re(e)})}function pR(e,t){let n=e.properties.find(s=>Q(s)==="date");if(!n?.value)return;let r=n.value;if(!He(r))return;let i=new Date(r),o=bl(e.$container);switch(o.kind){case"invalid":return;case"missing":t("error",`Milestone "${Re(e)}" has a date but the roadmap is missing "start:". Add start:YYYY-MM-DD to the roadmap.`,{node:n,property:"value"});return;case"valid":i<o.date&&Z(t,"error",{node:n,property:"value"},"NL.E0504",{name:Re(e),date:r,start:o.iso});return}}function hR(e,t){e.properties.some(r=>Q(r)==="on")||Z(t,"error",{node:e},"NL.E0505")}function mR(e,t){for(let n of e.properties)Q(n)==="footnote"&&t("error",`Property "footnote:" is not valid on ${kl(e)}. Footnotes attach via "on:" on the footnote declaration \u2014 declare \`footnote <id> on:<target-id>\` instead.`,{node:n})}function gR(e,t){let n=e.properties.some(i=>Q(i)==="duration"),r=e.properties.some(i=>Q(i)==="size");!n&&!r&&Z(t,"error",{node:e},"NL.E0600",{name:Re(e)})}function yR(e,t){for(let n of e.properties){let r=Q(n);(r==="size"||r==="duration"||r==="remaining"||r==="capacity")&&t("error",`"${r}" is not valid on ${e.$type==="ParallelBlock"?"parallel":"group"} (computed from children).`,{node:n})}}function xR(e,t){let n=e.content.filter(r=>!ja(r));n.length===0?t("error","Parallel block must contain at least 2 children.",{node:e}):n.length===1&&t("warning","Parallel block has only 1 child. Use at least 2 for parallel execution.",{node:e})}function ER(e,t){e.content.filter(r=>!ja(r)).length===0&&t("error","Group must contain at least 1 child.",{node:e})}function wR(e,t){e.properties.find(r=>Q(r)==="effort")||t("error",`Size "${Re(e)}" requires an "effort:" property.`,{node:e}),e.name&&($i.test(e.name)||qI.test(e.name))&&t("error",`Size id "${e.name}" collides with the raw duration pattern. Choose a different name (e.g. "xs", "small", "quarter").`,{node:e,property:"name"})}function TR(e,t){e.name&&Nd.has(e.name)&&t("error",`Status id "${e.name}" collides with the built-in status value. Built-ins: ${zf.join(", ")}.`,{node:e,property:"name"})}function vR(e,t){let n=new Map;for(let r of e.roadmapEntries)if(yi(r)&&r.name){let i=n.get(r.name);i?t("error",`Duplicate size id "${r.name}". First declared at ${Ci(i)}.`,{node:r,property:"name"}):n.set(r.name,r)}}function _R(e,t){if(nt(e)&&e.entityType!=="swimlane")return;let n=e.properties.find(s=>Q(s)==="utilization-warn-at"),r=e.properties.find(s=>Q(s)==="utilization-over-at");if(!n||!r)return;let i=cR(n.value),o=cR(r.value);i===null||o===null||i>o&&t("error",`utilization-warn-at (${n.value}) must be \u2264 utilization-over-at (${r.value}). Warn fires below over; if both fire at the same point, the warn band collapses to zero.`,{node:n,property:"value"})}function AR(e,t){let n=new Map,r=o=>!!o.title||o.properties.length>0||o.description!==void 0,i=o=>{if(!o.name)return;let s=r(o);n.has(o.name)||n.set(o.name,[]),n.get(o.name).push({node:o,isDeclaration:s}),!s&&o.$container.$type==="NowlineFile"&&t("warning",`Bare "person ${o.name}" at roadmap top level has no declaration. Either add properties (title, link, etc.) or remove the line.`,{node:o})};for(let o of Mn(e))Va(o)&&i(o);for(let[o,s]of n){let a=s.filter(l=>l.isDeclaration);if(a.length>1)for(let l=1;l<a.length;l++)t("error",`Person "${o}" is declared more than once. First declaration at ${Ci(a[0].node)}.`,{node:a[l].node})}}function cR(e){if(!e||e===Qa)return null;if(Pl.test(e)){let t=parseFloat(e);return Number.isFinite(t)&&t>0?t/100:null}if(Pd.test(e)){let t=parseFloat(e);return Number.isFinite(t)&&t>0?t:null}return null}function kR(e,t){if(Ni(e))return;let n=Q(e),r=e.value,i=e.values,o=r?[r]:i;switch(n){case"status":break;case"duration":r&&!$i.test(r)&&Z(t,"error",{node:e,property:"value"},"NL.E0400",{value:r});break;case"size":r&&!bd(r)&&Z(t,"error",{node:e,property:"value"},"NL.E0401",{value:r});break;case"effort":r&&!$i.test(r)&&Z(t,"error",{node:e,property:"value"},"NL.E0402",{value:r});break;case"remaining":{if(r)if(YI.test(r)){let s=parseFloat(r);(s<0||s>100)&&Z(t,"error",{node:e,property:"value"},"NL.E0404",{value:r})}else $i.test(r)||Z(t,"error",{node:e,property:"value"},"NL.E0403",{value:r});break}case"date":case"start":case"end":r&&!He(r)&&Z(t,"error",{node:e,property:"value"},"NL.E0405",{key:n,value:r});break;case"scale":r&&!$i.test(r)&&Z(t,"error",{node:e,property:"value"},"NL.E0406",{value:r});break;case"calendar":r&&!GI.has(r)&&Z(t,"error",{node:e,property:"value"},"NL.E0407",{value:r});break;case"on":case"after":case"before":o.length===0&&Z(t,"error",{node:e},"NL.E0408",{key:n});break;case"capacity":{if(!r)break;let s=e.$container,a=H2(s);if(a==="invalid")break;a==="lane"?(!Jy.test(r)||parseFloat(r)<=0)&&t("error",`Invalid swimlane capacity "${r}". Use a positive integer (e.g. capacity:5) or decimal (e.g. capacity:1.5). Percent literals are not allowed on swimlanes.`,{node:e,property:"value"}):Pl.test(r)?parseFloat(r)<=0&&t("error",`Item capacity "${r}" must be positive.`,{node:e,property:"value"}):Jy.test(r)?parseFloat(r)<=0&&t("error",`Item capacity "${r}" must be positive.`,{node:e,property:"value"}):t("error",`Invalid item capacity "${r}". Use a positive integer (capacity:2), decimal (capacity:0.5), or percent literal (capacity:50%).`,{node:e,property:"value"});break}case"overcapacity":{t("error",'"overcapacity:" was removed. Use "utilization-over-at:none" (and/or "utilization-warn-at:none") to suppress the lane utilization underline.',{node:e});break}case"utilization-warn-at":case"utilization-over-at":{if(!r)break;if(!z2(e.$container)){t("error",`"${n}:" is only valid on "swimlane" or "default swimlane".`,{node:e});break}if(r===Qa)break;if(Pl.test(r)){parseFloat(r)<=0&&t("error",`${n} value "${r}" must be positive.`,{node:e,property:"value"});break}if(Pd.test(r)){parseFloat(r)<=0&&t("error",`${n} value "${r}" must be positive.`,{node:e,property:"value"});break}if(ZI.test(r)){t("error",`Ambiguous ${n} value "${r}". Use the percent form ("${r}%") or the decimal-fraction form ("0.${r}") to make the intent explicit.`,{node:e,property:"value"});break}t("error",`Invalid ${n} value "${r}". Use a positive percent (e.g. 80%), a positive decimal fraction (e.g. 0.8), or "none" to opt out.`,{node:e,property:"value"});break}case"capacity-icon":break;case"icon":break;case"non-working":nt(e.$container)&&NR(r,e,t);break;default:if(Nl.has(n)){if(n==="bg"||n==="fg"||n==="text")r&&!bR(r)&&Z(t,"error",{node:e,property:"value"},"NL.E0801",{value:r,key:n});else if(n in Ll){let s=Ll[n];r&&!s.has(r)&&Z(t,"error",{node:e,property:"value"},"NL.E0802",{value:r,key:n,allowed:[...s].join(", ")})}}break}}function IR(e,t){for(let n of e.properties){let r=Q(n);Nl.has(r)&&Z(t,"error",{node:n},"NL.E0804",{key:r,entity:kl(e)})}}function RR(e,t){let n=zI[e.$type];if(!n)return;let r=e.$type==="ParallelBlock"||e.$type==="GroupBlock"?new Set(["size","duration","remaining","capacity"]):null;for(let i of e.properties){let o=Q(i);if(n.has(o)||qy.has(o)||Nl.has(o)||o==="footnote"||r?.has(o)||o==="wave"||Ni(i))continue;let s=[...n,...qy],a=jI(o,n,e.$type)??yI(o,s)??"";Z(t,"warning",{node:i,property:"key"},"NL.W0700",{key:o,entity:kl(e),suggested:a})}}function SR(e,t){let n=Q(e),r=e.value;if(n==="bg"||n==="fg"||n==="text")bR(r)||Z(t,"error",{node:e,property:"value"},"NL.E0801",{value:r,key:n});else if(n==="non-working")NR(r,e,t);else if(n in Ll){let i=Ll[n];i.has(r)||Z(t,"error",{node:e,property:"value"},"NL.E0802",{value:r,key:n,allowed:[...i].join(", ")})}else Nl.has(n)||Z(t,"error",{node:e,property:"key"},"NL.E0803",{key:n})}function bR(e){return UI.has(e)||VI.test(e)}function NR(e,t,n){e===void 0||WI.has(e)||Z(n,"error",{node:t,property:"value"},"NL.E0800",{value:e})}function H2(e){return e?Ke(e)?"lane":Ve(e)?"item":nt(e)?e.entityType==="swimlane"?"lane":"item":"invalid":"invalid"}function z2(e){return e?!!(Ke(e)||nt(e)&&e.entityType==="swimlane"):!1}function LR(e,t){let n=new Map,r=new Map;for(let i=0;i<e.roadmapEntries.length;i++){let o=e.roadmapEntries[i];yi(o)&&o.name?n.has(o.name)||n.set(o.name,i):Ka(o)&&o.name&&(r.has(o.name)||r.set(o.name,i))}for(let i=0;i<e.roadmapEntries.length;i++){let o=e.roadmapEntries[i];Xf(o,s=>{if(Ni(s))return;let a=Q(s);if(a==="size"&&s.value){let l=s.value,c=n.get(l);c===void 0?t("error",`Size "${l}" is not declared. Add "size ${l} effort:<literal>" earlier in the roadmap section.`,{node:s,property:"value"}):c>=i&&t("error",`Size "${l}" is referenced before its declaration. Move "size ${l}" above this entity.`,{node:s,property:"value"})}else if(a==="status"&&s.value){let l=s.value;if(Nd.has(l))return;let c=r.get(l);c===void 0?t("error",`Status "${l}" is not a built-in and has no declaration. Add "status ${l}" earlier in the roadmap section.`,{node:s,property:"value"}):c>=i&&t("error",`Status "${l}" is referenced before its declaration. Move "status ${l}" above this entity.`,{node:s,property:"value"})}})}}function PR(e,t){for(let{prop:n,key:r,value:i}of Rd(e))Z(t,"error",{node:n},"NL.E0302",{key:r,value:i})}function OR(e,t){let n=bl(e),r=i=>{let o=i.properties??[],s=Tt(i),a=Ve(i)||et(i)||$e(i)||s;for(let l of o){let c=Q(l);if(c!=="after"&&c!=="before"||s&&c==="before")continue;let f=(l.value?[l.value]:l.values).filter(d=>!!d&&ot.test(d));if(f.length!==0){if(!a){Z(t,"error",{node:l},"NL.E0411",{key:c,type:Mr(i)});continue}f.length>1&&Z(t,"error",{node:l},"NL.E0410",{key:c});for(let d of f){if(!He(d)){Z(t,"error",l.value!==void 0?{node:l,property:"value"}:{node:l,property:"values",index:l.values.indexOf(d)},"NL.E0405",{key:c,value:d});continue}switch(n.kind){case"invalid":continue;case"missing":Z(t,"error",{node:l},"NL.E0412",{key:c,date:d});continue;case"valid":{let p=_e(d);p&&p<n.date&&Z(t,"error",{node:l},"NL.E0413",{key:c,date:d,start:n.iso})}}}}}};for(let i of Mn(e))$R(i)||r(i)}function CR(e,t){let n=new Map,r=(d,p)=>{n.has(d)||n.set(d,new Set),n.get(d).add(p)},i=(d,p,m)=>{if(d)for(let g of p){let w=Q(g);if(w==="after"){let x=g.value?[g.value]:g.values;for(let y of x)y&&(ot.test(y)||r(d,y))}else if(w==="before"){let x=g.value?[g.value]:g.values;for(let y of x)y&&(ot.test(y)||r(y,d))}}},o=d=>{if(Tt(d))return;let p=d.name,m=d.properties??[];i(p,m,e)};for(let d of Mn(e))$R(d)||o(d);let s=0,a=1,l=2,c=new Map;for(let d of n.keys())c.set(d,s);let u=new Set,f=(d,p)=>{c.set(d,a),p.push(d);for(let m of n.get(d)??[]){let g=c.get(m)??s;if(g===a){let w=p.indexOf(m),x=p.slice(w).concat(m),y=[...x].sort().join("\u2192");u.has(y)||(u.add(y),t("error",`Circular dependency detected: ${x.join(" \u2192 ")}.`,{node:e.roadmapDecl??e}))}else g===s&&f(m,p)}p.pop(),c.set(d,l)};for(let d of n.keys())(c.get(d)??s)===s&&f(d,[])}function $R(e){return tn(e)&&tn(e.$container)}function DR(e,t){let n=e.hasConfig?kc.findNodeForKeyword(e.$cstNode,"config")?.offset:void 0,r=e.roadmapDecl?.$cstNode?.offset;n!==void 0&&r!==void 0&&n>r&&Z(t,"error",{node:e,property:"hasConfig"},"NL.E0001");for(let i of e.includes){let o=i.$cstNode?.offset??0;n!==void 0&&o>n&&Z(t,"error",{node:i},"NL.E0002"),r!==void 0&&o>r&&Z(t,"error",{node:i},"NL.E0003")}}function MR(e,t){if(!KI.test(e.version)){Z(t,"error",{node:e,property:"version"},"NL.E0100",{version:e.version});return}let n=parseInt(e.version.slice(1),10),r=parseInt(jy.slice(1),10);n>r&&Z(t,"error",{node:e,property:"version"},"NL.E0101",{version:e.version,supported:jy})}function FR(e,t){let n=new Set;for(let r of e.properties){let i=Q(r);if(!Qy.has(i)){Z(t,"error",{node:r,property:"key"},"NL.E0102",{key:i,allowed:[...Qy].join(", ")});continue}if(n.has(i)&&Z(t,"error",{node:r,property:"key"},"NL.E0103",{key:i}),n.add(i),i==="locale"){let o=r.value;QI.test(o)||Z(t,"error",{node:r,property:"value"},"NL.E0104",{value:o})}}}function BR(e,t){!e.name&&!e.title&&Z(t,"error",{node:e},"NL.E0301",{type:e.$type})}function WR(e,t){let n=new Map,r=(i,o)=>{if(!i)return;let s=n.get(i);s?Z(t,"error",{node:o},"NL.E0300",{name:i,location:Ci(s)}):n.set(i,o)};e.roadmapDecl?.name&&r(e.roadmapDecl.name,e.roadmapDecl);for(let i of e.roadmapEntries)Uf(i,r);for(let i of e.configEntries)Wt(i)&&i.name&&r(i.name,i)}function XR(e,t){let n=e.$document?.textDocument.getText()??e.$cstNode?.text;if(!n)return;let r=n.split(/\r?\n/);for(let i=0;i<r.length;i++){let o=r[i];if(o.length===0)continue;let s=o.match(/^([\t ]+)/);if(!s)continue;let a=s[1];if(a.includes(" ")&&a.includes(" ")){Z(t,"error",{node:e},"NL.E0005",{line:i+1});return}}}function UR(e,t){let n=e.roadmapEntries.some(Ke);e.roadmapDecl&&!n&&Z(t,"error",{node:e.roadmapDecl},"NL.E0004")}function GR(e,t){eR.has(e.value)||Z(t,"error",{node:e,property:"value"},"NL.E0200",{value:e.value})}function HR(e,t){let n=new Set;for(let r of e.options){let i=Q(r);n.has(i)&&Z(t,"error",{node:r},"NL.E0201",{key:i}),n.add(i)}}function zR(e,t){if(!Ky.has(e.entityType)){t("error",`"${e.entityType}" is not a supported entity type for default. Allowed: ${[...Ky].join(", ")}.`,{node:e,property:"entityType"});return}let n=e.$container,r=-1;for(let o=0;o<n.configEntries.length;o++){let s=n.configEntries[o];if(nt(s)&&s.entityType===e.entityType){if(r<0)r=o;else if(s===e){t("error",`Duplicate "default ${e.entityType}" declaration. Only one is allowed per entity type per file.`,{node:e});break}}}let i=HI[e.entityType];if(i)for(let o of e.properties){let s=Q(o);i.has(s)&&t("error",Td(s,e.entityType),{node:o})}if(e.entityType!=="roadmap")for(let o of e.properties){let s=Q(o);XI.has(s)&&Z(t,"warning",{node:o,property:"key"},"NL.W0703",{key:s,entityType:e.entityType})}}function jR(e,t){let n=e.roadmapDecl;if(!n)return;let r=new Map,i=new Map;for(let c of e.configEntries)Wt(c)&&c.name&&!r.has(c.name)?r.set(c.name,c):nt(c)&&c.entityType==="roadmap"&&(i.has("roadmap")||i.set("roadmap",c));let o=new Map;for(let c of e.roadmapEntries)Ya(c)&&c.name&&!o.has(c.name)&&o.set(c.name,c);let s,a,l=c=>{for(let u of c){let f=Q(u);f==="header-height"?s=u:f==="timeline-position"&&(a=u)}};for(let c of Hf("roadmap",n.properties,{styles:r,defaults:i,labels:o}))switch(c.level){case"inline":break;case"default":l(c.props);break;case"label":return;default:if(!c.decl)return;l(c.decl.properties)}s?.value==="none"&&(a?.value!=="bottom"&&a?.value!=="both"||Z(t,"warning",{node:a,property:"value"},"NL.W0704",{position:a.value}))}function YR(e,t){e.name&&Yy.has(e.name)&&Z(t,"error",{node:e,property:"name"},"NL.E0805",{name:e.name,builtins:[...Ja].sort().join(", ")});let n=e.properties.find(i=>Q(i)==="unicode");n?(!n.value||n.value.length===0)&&Z(t,"error",{node:n,property:"value"},"NL.E0807",{name:Re(e)}):Z(t,"error",{node:e},"NL.E0806",{name:Re(e)});let r=e.properties.find(i=>Q(i)==="ascii");if(r){let i=r.value??"";JI.test(i)||Z(t,"error",{node:r,property:"value"},"NL.E0808",{name:Re(e),length:i.length})}for(let i of e.properties){let o=Q(i);o!=="unicode"&&o!=="ascii"&&o!=="link"&&o!=="description"&&Z(t,"error",{node:i,property:"key"},"NL.E0809",{key:o})}}function VR(e,t){let n=new Map;for(let r of e.configEntries)if(xi(r)&&r.name){let i=n.get(r.name);i?Z(t,"error",{node:r,property:"name"},"NL.E0810",{name:r.name,location:Ci(i)}):n.set(r.name,r)}}function KR(e,t){let n=new Map;for(let i=0;i<e.configEntries.length;i++){let o=e.configEntries[i];xi(o)&&o.name&&(n.has(o.name)||n.set(o.name,i))}let r=(i,o,s,a)=>{if(o!=="icon"&&o!=="capacity-icon"||!s||!bd(s)||o==="capacity-icon"&&BI.has(s)||o==="icon"&&Yy.has(s))return;let l=n.get(s);if(l===void 0){let c=o==="capacity-icon"?[...Ei].sort().join(", "):[...Ja].sort().join(", ");Z(t,"error",{node:a,property:"value"},"NL.E0811",{key:o,value:s,builtins:c})}else l>=i&&Z(t,"error",{node:a,property:"value"},"NL.E0812",{key:o,value:s})};for(let i=0;i<e.configEntries.length;i++){let o=e.configEntries[i];if(Wt(o))for(let s of o.properties)r(i,Q(s),s.value,s);else if(nt(o))for(let s of o.properties)r(i,Q(s),s.value,s)}}function qR(e){let t=e.validation.ValidationRegistry,n=e.validation.NowlineValidator,r={NowlineFile:[n.checkFileStructure,n.checkUniqueIdentifiers,n.checkSwimlaneRequired,n.checkIndentationConsistency,n.checkRoadmapOnlyKeywordsPosition,n.checkForwardReferences,n.checkReferenceResolution,n.checkInlineDatePins,n.checkCircularDependencies,n.checkWaves,n.checkDuplicateSizeIds,n.checkCalendarBlockConsistency,n.checkHiddenTimelineStrip,n.checkPersonDeclarations,n.checkDuplicateSymbolIds,n.checkSymbolReferences,n.checkCalendarWeek,n.checkDuplicateCalendarDeclarationIds],NowlineDirective:[n.checkDirectiveVersion,n.checkDirectiveProperties],IncludeOption:[n.checkIncludeMode],IncludeDeclaration:[n.checkIncludeDuplicateOptions],EntityProperty:[n.checkPropertyValues],RoadmapDeclaration:[n.checkEntityIdOrTitle,n.checkRoadmapProperties,n.checkNoRawStyleProperties,n.checkUnknownEntityProperties],AnchorDeclaration:[n.checkEntityIdOrTitle,n.checkAnchorRequiredDate,n.checkAnchorAgainstStart,n.checkNoRawStyleProperties,n.checkNoFootnoteProperty,n.checkUnknownEntityProperties],SwimlaneDeclaration:[n.checkEntityIdOrTitle,n.checkNoRawStyleProperties,n.checkUtilizationOrdering,n.checkNoFootnoteProperty,n.checkUnknownEntityProperties],ItemDeclaration:[n.checkEntityIdOrTitle,n.checkItemRequiredDuration,n.checkNoRawStyleProperties,n.checkNoFootnoteProperty,n.checkUnknownEntityProperties],ParallelBlock:[n.checkParallelMinChildren,n.checkNoComputedProperties,n.checkNoRawStyleProperties,n.checkNoFootnoteProperty,n.checkUnknownEntityProperties],GroupBlock:[n.checkGroupMinChildren,n.checkNoComputedProperties,n.checkNoRawStyleProperties,n.checkNoFootnoteProperty,n.checkUnknownEntityProperties],MilestoneDeclaration:[n.checkEntityIdOrTitle,n.checkMilestoneRequirement,n.checkMilestoneAgainstStart,n.checkNoRawStyleProperties,n.checkNoFootnoteProperty,n.checkUnknownEntityProperties],FootnoteDeclaration:[n.checkEntityIdOrTitle,n.checkFootnoteOn,n.checkNoRawStyleProperties,n.checkUnknownEntityProperties],PersonDeclaration:[n.checkEntityIdOrTitle,n.checkNoRawStyleProperties,n.checkNoFootnoteProperty,n.checkUnknownEntityProperties],TeamDeclaration:[n.checkEntityIdOrTitle,n.checkNoRawStyleProperties,n.checkNoFootnoteProperty,n.checkUnknownEntityProperties],StyleDeclaration:[n.checkEntityIdOrTitle],StyleProperty:[n.checkStylePropertyEnum],SymbolDeclaration:[n.checkEntityIdOrTitle,n.checkSymbolDeclaration],NonWorkingDeclaration:[n.checkCalendarDeclaration],WorkingDeclaration:[n.checkCalendarDeclaration],LabelDeclaration:[n.checkEntityIdOrTitle,n.checkNoRawStyleProperties,n.checkUnknownEntityProperties],SizeDeclaration:[n.checkEntityIdOrTitle,n.checkSizeDeclaration,n.checkNoRawStyleProperties,n.checkUnknownEntityProperties],StatusDeclaration:[n.checkEntityIdOrTitle,n.checkStatusDeclaration,n.checkNoRawStyleProperties,n.checkUnknownEntityProperties],WaveDeclaration:[n.checkNoRawStyleProperties,n.checkNoFootnoteProperty,n.checkUnknownEntityProperties],DefaultDeclaration:[n.checkDefaultDeclaration,n.checkUtilizationOrdering],CalendarBlock:[n.checkCalendarBlock],ScaleBlock:[n.checkScaleBlock]};t.register(r,n)}var Od=class{checkFileStructure(t,n){DR(t,n)}checkRoadmapOnlyKeywordsPosition(t,n){}checkDirectiveVersion(t,n){MR(t,n)}checkDirectiveProperties(t,n){FR(t,n)}checkEntityIdOrTitle(t,n){BR(t,n)}checkUniqueIdentifiers(t,n){WR(t,n)}checkIndentationConsistency(t,n){XR(t,n)}checkSwimlaneRequired(t,n){UR(t,n)}checkIncludeMode(t,n){GR(t,n)}checkIncludeDuplicateOptions(t,n){HR(t,n)}checkPropertyValues(t,n){kR(t,n)}checkAnchorRequiredDate(t,n){uR(t,n)}checkAnchorAgainstStart(t,n){fR(t,n)}checkMilestoneRequirement(t,n){dR(t,n)}checkMilestoneAgainstStart(t,n){pR(t,n)}checkFootnoteOn(t,n){hR(t,n)}checkNoFootnoteProperty(t,n){mR(t,n)}checkItemRequiredDuration(t,n){gR(t,n)}checkNoComputedProperties(t,n){yR(t,n)}checkParallelMinChildren(t,n){xR(t,n)}checkGroupMinChildren(t,n){ER(t,n)}checkNoRawStyleProperties(t,n){IR(t,n)}checkUnknownEntityProperties(t,n){RR(t,n)}checkRoadmapProperties(t,n){}checkStylePropertyEnum(t,n){SR(t,n)}checkSizeDeclaration(t,n){wR(t,n)}checkStatusDeclaration(t,n){TR(t,n)}checkWaves(t,n){for(let o of _d(t))Sd(n,o);for(let o of Ad(t))Sd(n,o);let r=on(t);if(r.length===0)return;let i={lanes:t.roadmapEntries.filter(Ke),lookup:_s(t)};for(let o of As(i,r))Sd(n,o)}checkDuplicateSizeIds(t,n){vR(t,n)}checkUtilizationOrdering(t,n){_R(t,n)}checkDefaultDeclaration(t,n){zR(t,n)}checkHiddenTimelineStrip(t,n){jR(t,n)}checkCalendarBlockConsistency(t,n){nR(t,n)}checkCalendarBlock(t,n){rR(t,n)}checkScaleBlock(t,n){iR(t,n)}checkForwardReferences(t,n){LR(t,n)}checkReferenceResolution(t,n){PR(t,n)}checkInlineDatePins(t,n){OR(t,n)}checkCircularDependencies(t,n){CR(t,n)}checkPersonDeclarations(t,n){AR(t,n)}checkSymbolDeclaration(t,n){YR(t,n)}checkDuplicateSymbolIds(t,n){VR(t,n)}checkCalendarDeclaration(t,n){oR(t,n)}checkCalendarWeek(t,n){sR(t,n)}checkDuplicateCalendarDeclarationIds(t,n){aR(t,n)}checkSymbolReferences(t,n){KR(t,n)}};var ex=class extends $o{runConverter(t,n,r){return t.name==="PROPERTY_KEY_WITH_COLON"||t.name==="INCLUDE_OPTION_KEY"?n.endsWith(":")?n.slice(0,-1):n:super.runConverter(t,n,r)}},tx=class extends Fa{isStartOfLine(t,n){if(!super.isStartOfLine(t,n))return!1;let r=n-1;for(;r>=0&&(t[r]===" "||t[r]===" ");)r--;for(;r>=0&&(t[r]==="\r"||t[r]===`
|
|
2917
|
+
`);)r--;for(;r>=0&&(t[r]===" "||t[r]===" ");)r--;return r<0||t[r]!=="\\"}},ZR={parser:{TokenBuilder:()=>new tx({indentTokenName:"INDENT",dedentTokenName:"DEDENT",whitespaceTokenName:"WS",ignoreIndentationDelimiters:[["[","]"]]}),Lexer:e=>new Cf(e),ParserConfig:()=>({maxLookahead:4}),ValueConverter:()=>new ex},validation:{NowlineValidator:()=>new Od}};function nx(e={}){let t=e.shared??Go(Of($f),Kk),n=Go(Pf({shared:t}),qk,ZR);return t.ServiceRegistry.register(n),qR(n),{shared:t,Nowline:n}}function rx(e,t){return t.code===void 0?t.message:Pt(e,t.code,...t.args??[])}function Di(e){let{content:t}=e,n=[...t.waves?.values()??[]];if(n.length===0)return;let r=new Map;n.forEach((u,f)=>{r.set(u.name,f+1)});let i=ks(t),o=n.map(u=>Rl(u,i)),s=new WeakMap,a=new WeakMap,l=u=>{let f=vd(u,r);for(let[d,p]of f.waveOf)s.set(d,p);for(let[d,p]of f.leadOf)a.set(d,p)};l([...t.swimlanes.values()]);for(let u of t.isolatedRegions)l([...u.content.swimlanes.values()]);let c=u=>Ve(u)?s.get(u):void 0;return{waves:n,index:r,floors:o,waveOf:s,leadOf:a,memberWave:c,isMember:(u,f)=>{let d=c(u);return d!==void 0&&(f===void 0||d===f)}}}var Ol="en-US",Z2={"en-US":{nowLabel:"now",quarterPrefix:"Q",waveHeldBy:"held by",waveNoItems:"no items",waveBackgroundItem:"Background (no wave)",waveLegendBackground:"Background work (not in a wave)"},fr:{nowLabel:"maint.",quarterPrefix:"T",waveHeldBy:"retenue par",waveNoItems:"aucun \xE9l\xE9ment",waveBackgroundItem:"Travail de fond (hors vague)",waveLegendBackground:"Travail de fond (dans aucune vague)"}};function JR(e,t){return t??e??Ol}function jn(e){let t={};for(let n of J2(e)){let r=Z2[n];if(r)for(let i of Object.keys(r))t[i]===void 0&&r[i]!==void 0&&(t[i]=r[i])}return t}function J2(e){let t=[],n=Q2(e);for(;n.length>0;){t.includes(n)||t.push(n);let r=n.lastIndexOf("-");if(r<=0)break;n=n.slice(0,r)}return t.includes(Ol)||t.push(Ol),t}function Q2(e){return e.split("-").map((n,r)=>r===0?n.toLowerCase():/^[a-zA-Z]{2}$/.test(n)?n.toUpperCase():n).join("-")}function Cd(e){return e==="hide"||e==="show"}var QR={red:"#f87171",blue:"#60a5fa",yellow:"#facc15",green:"#34d399",orange:"#fb923c",purple:"#a78bfa",gray:"#94a3b8",navy:"#818cf8",white:"#e2e8f0"},Yn={bg:"none",fg:"#e2e8f0",text:"#e2e8f0",border:"solid",icon:"none",shadow:"none",font:"sans",weight:"normal",italic:!1,textSize:"md",padding:"sm",spacing:"sm",headerHeight:"sm",cornerRadius:"sm",bracket:"none",capacityIcon:"multiplier"},ix={name:"dark",surface:{page:"#0b1220",chart:"#111827",headerBox:"#1e293b"},entities:{roadmap:{...Yn,headerHeight:"md",padding:"md"},swimlane:{...Yn,fg:"#e2e8f0",text:"#e2e8f0",padding:"sm",spacing:"none",textSize:"sm"},item:{...Yn,bg:"#0f172a",fg:"#94a3b8",text:"#e2e8f0",shadow:"subtle",cornerRadius:"sm"},parallel:{...Yn,bg:"#8c84ff",bracket:"dashed",padding:"xs"},group:{...Yn,bg:"#f0a832",bracket:"solid",padding:"xs",fg:"#94a3b8"},anchor:{...Yn,bg:"#0b1220",fg:"#cbd5e1",text:"#cbd5e1",cornerRadius:"sm"},milestone:{...Yn,bg:"#e2e8f0",fg:"#e2e8f0",text:"#0b1220",border:"solid"},footnote:{...Yn,bg:"none",fg:"#94a3b8",text:"#e2e8f0",textSize:"sm"},label:{...Yn,bg:"#1e293b",fg:"#94a3b8",text:"#e2e8f0",textSize:"xs",padding:"xs",cornerRadius:"full"}},swimlane:{bandEven:"#111827",bandOdd:"#0f172a",separator:"#1f2937",frameTabText:"#e2e8f0",frameTabMuted:"#94a3b8",border:"#334155",tabFill:"#1e293b",tabStroke:"#475569",tabText:"#e2e8f0",ownerText:"#94a3b8",footnoteIndicator:"#f87171",rowTintEven:"#0f172a",rowTintOdd:"#1e293b",utilizationOk:"#34d399",utilizationWarn:"#fbbf24",utilizationOver:"#f87171"},timeline:{gridLine:"#475569",minorGridLine:"#334155",nonWorkingSeam:"#6b7a90",nonWorkingFill:"#94a3b8",tickMark:"#334155",labelText:"#cbd5e1",panelFill:"#0f172a",border:"#334155"},header:{cardBorder:"#475569",author:"#94a3b8"},item:{overflowX:"#f87171",linkIconFg:"#94a3b8",overflowTailFill:"#7f1d1d",overflowTailStroke:"#f87171",overflowCaption:"#fecaca"},parallel:{bracketStroke:"#cbd5e1"},anchorDiamond:{fill:"#0f172a",stroke:"#cbd5e1",label:"#cbd5e1",cutLine:"#94a3b8"},milestoneDiamond:{fill:"#e2e8f0",label:"#e2e8f0",cutLineNormal:"#a5b4fc",cutLineOverrun:"#ef4444",slack:"#cbd5e1"},footnotePanel:{fill:"#0f172a",border:"#334155",header:"#e2e8f0",title:"#e2e8f0",description:"#94a3b8",number:"#f87171"},nowline:{stroke:"#f87171",labelText:"#0b1220",labelBg:"#f87171"},milestone:{dashedInk:"#a5b4fc",overrun:"#ef4444"},anchor:{predecessorLine:"#94a3b8"},dependency:{edgeStroke:"#cbd5e1",overflowStroke:"#ef5350"},footnote:{indicatorText:"#f87171",descriptionMuted:"#94a3b8"},includeRegion:{border:"#475569",label:"#cbd5e1",badge:"#94a3b8",fill:"#0b1220",tabFill:"#111827",tabStroke:"#475569",tabText:"#e2e8f0",badgeFill:"#1e293b",badgeStroke:"#475569",badgeText:"#94a3b8"},wave:{stripFill:"#042f2e",stripFillAlt:"#134e4a",labelText:"#99f6e4",labelMuted:"#5eead4",boundary:"#2dd4bf",hatch:"#0f172a",hatchOnDark:"#ffffff"},arrowhead:{neutral:"#94a3b8",light:"#64748b",dark:"#e2e8f0"},status:{done:"#34d399",inProgress:"#60a5fa",atRisk:"#facc15",blocked:"#ef4444",planned:"#94a3b8",neutral:"#94a3b8"},statusTint:{done:"#052e16",inProgress:"#172554",atRisk:"#422006",blocked:"#7f1d1d",planned:"#1e293b",neutral:"#1e293b"},statusDot:{onLight:{done:"#065f46",inProgress:"#1e3a8a",atRisk:"#92400e",blocked:"#991b1b",planned:"#334155",neutral:"#334155"},onDark:{done:"#d1fae5",inProgress:"#dbeafe",atRisk:"#fef3c7",blocked:"#fee2e2",planned:"#e2e8f0",neutral:"#e2e8f0"}},attribution:{mark:"#cbd5e1",link:"#f87171"},diagnostic:{overlayBg:"#7f1d1d",errorText:"#fecaca"}};var eS={red:"#4a4a4a",blue:"#6b6b6b",green:"#8a8a8a",yellow:"#c8c8c8",orange:"#5c5c5c",purple:"#3a3a3a",gray:"#9e9e9e",navy:"#2a2a2a",white:"#ffffff"},Vn={bg:"none",fg:"#1a1a1a",text:"#1a1a1a",border:"solid",icon:"none",shadow:"none",font:"sans",weight:"normal",italic:!1,textSize:"md",padding:"sm",spacing:"sm",headerHeight:"sm",cornerRadius:"sm",bracket:"none",capacityIcon:"multiplier"},ox={name:"grayscale",surface:{page:"#f5f5f5",chart:"#ffffff",headerBox:"#ffffff"},entities:{roadmap:{...Vn,headerHeight:"md",padding:"md"},swimlane:{...Vn,fg:"#3a3a3a",text:"#3a3a3a",padding:"sm",spacing:"none",textSize:"sm"},item:{...Vn,bg:"#ffffff",fg:"#9e9e9e",text:"#1a1a1a",shadow:"subtle",cornerRadius:"sm"},parallel:{...Vn,bg:"#9e9e9e",bracket:"dashed",padding:"xs"},group:{...Vn,bg:"#595959",bracket:"solid",padding:"xs",fg:"#595959"},anchor:{...Vn,bg:"#1a1a1a",fg:"#1a1a1a",text:"#1a1a1a",cornerRadius:"sm"},milestone:{...Vn,bg:"#2a2a2a",fg:"#2a2a2a",text:"#ffffff",border:"solid"},footnote:{...Vn,bg:"none",fg:"#595959",text:"#595959",textSize:"sm"},label:{...Vn,bg:"#e8e8e8",fg:"#595959",text:"#595959",textSize:"xs",padding:"xs",cornerRadius:"full"}},swimlane:{bandEven:"#ffffff",bandOdd:"#f5f5f5",separator:"#d4d4d4",frameTabText:"#3a3a3a",frameTabMuted:"#737373",border:"#d4d4d4",tabFill:"#e8e8e8",tabStroke:"#bdbdbd",tabText:"#3a3a3a",ownerText:"#737373",footnoteIndicator:"#4a4a4a",rowTintEven:"#ffffff",rowTintOdd:"#f5f5f5",utilizationOk:"#8a8a8a",utilizationWarn:"#595959",utilizationOver:"#1a1a1a"},timeline:{gridLine:"#bdbdbd",minorGridLine:"#d4d4d4",nonWorkingSeam:"#9a9a9a",nonWorkingFill:"#737373",tickMark:"#bdbdbd",labelText:"#737373",panelFill:"#ffffff",border:"#d4d4d4"},header:{cardBorder:"#d4d4d4",author:"#737373"},item:{overflowX:"#1a1a1a",linkIconFg:"#1a1a1a",overflowTailFill:"#e8e8e8",overflowTailStroke:"#4a4a4a",overflowCaption:"#3a3a3a"},parallel:{bracketStroke:"#3a3a3a"},anchorDiamond:{fill:"#ffffff",stroke:"#3a3a3a",label:"#3a3a3a",cutLine:"#737373"},milestoneDiamond:{fill:"#1a1a1a",label:"#1a1a1a",cutLineNormal:"#2a2a2a",cutLineOverrun:"#4a4a4a",slack:"#1a1a1a"},footnotePanel:{fill:"#ffffff",border:"#d4d4d4",header:"#1a1a1a",title:"#1a1a1a",description:"#737373",number:"#4a4a4a"},nowline:{stroke:"#1a1a1a",labelText:"#ffffff",labelBg:"#1a1a1a"},milestone:{dashedInk:"#9e9e9e",overrun:"#4a4a4a"},anchor:{predecessorLine:"#9e9e9e"},dependency:{edgeStroke:"#595959",overflowStroke:"#1a1a1a"},footnote:{indicatorText:"#4a4a4a",descriptionMuted:"#737373"},includeRegion:{border:"#9e9e9e",label:"#3a3a3a",badge:"#737373",fill:"#f5f5f5",tabFill:"#ffffff",tabStroke:"#bdbdbd",tabText:"#1a1a1a",badgeFill:"#e8e8e8",badgeStroke:"#bdbdbd",badgeText:"#595959"},wave:{stripFill:"#fafafa",stripFillAlt:"#e0e0e0",labelText:"#212121",labelMuted:"#616161",boundary:"#616161",hatch:"#000000",hatchOnDark:"#ffffff"},arrowhead:{neutral:"#595959",light:"#9e9e9e",dark:"#1a1a1a"},status:{done:"#8a8a8a",inProgress:"#595959",atRisk:"#737373",blocked:"#3a3a3a",planned:"#bdbdbd",neutral:"#bdbdbd"},statusTint:{done:"#ebebeb",inProgress:"#e4e4e4",atRisk:"#eeeeee",blocked:"#dcdcdc",planned:"#f5f5f5",neutral:"#f5f5f5"},statusDot:{onLight:{done:"#3a3a3a",inProgress:"#2a2a2a",atRisk:"#4a4a4a",blocked:"#1a1a1a",planned:"#595959",neutral:"#595959"},onDark:{done:"#d4d4d4",inProgress:"#e8e8e8",atRisk:"#c8c8c8",blocked:"#f0f0f0",planned:"#d4d4d4",neutral:"#d4d4d4"}},attribution:{mark:"#9e9e9e",link:"#1a1a1a"},diagnostic:{overlayBg:"#e8e8e8",errorText:"#1a1a1a"}};var tS={red:"#e53935",blue:"#1e88e5",yellow:"#fdd835",green:"#43a047",orange:"#fb8c00",purple:"#8e24aa",gray:"#9e9e9e",navy:"#0d47a1",white:"#ffffff"},Kn={bg:"none",fg:"#0f172a",text:"#0f172a",border:"solid",icon:"none",shadow:"none",font:"sans",weight:"normal",italic:!1,textSize:"md",padding:"sm",spacing:"sm",headerHeight:"sm",cornerRadius:"sm",bracket:"none",capacityIcon:"multiplier"},sx={name:"light",surface:{page:"#f8fafc",chart:"#ffffff",headerBox:"#ffffff"},entities:{roadmap:{...Kn,headerHeight:"md",padding:"md"},swimlane:{...Kn,fg:"#334155",text:"#334155",padding:"sm",spacing:"none",textSize:"sm"},item:{...Kn,bg:"#ffffff",fg:"#94a3b8",text:"#0f172a",shadow:"subtle",cornerRadius:"sm"},parallel:{...Kn,bg:"#635cf1",bracket:"dashed",padding:"xs"},group:{...Kn,bg:"#ea9818",bracket:"solid",padding:"xs",fg:"#475569"},anchor:{...Kn,bg:"#0f172a",fg:"#0f172a",text:"#0f172a",cornerRadius:"sm"},milestone:{...Kn,bg:"#312e81",fg:"#312e81",text:"#ffffff",border:"solid"},footnote:{...Kn,bg:"none",fg:"#475569",text:"#475569",textSize:"sm"},label:{...Kn,bg:"#f1f5f9",fg:"#475569",text:"#475569",textSize:"xs",padding:"xs",cornerRadius:"full"}},swimlane:{bandEven:"#ffffff",bandOdd:"#f8fafc",separator:"#e2e8f0",frameTabText:"#334155",frameTabMuted:"#64748b",border:"#e2e8f0",tabFill:"#f1f5f9",tabStroke:"#cbd5e1",tabText:"#334155",ownerText:"#64748b",footnoteIndicator:"#dc2626",rowTintEven:"#ffffff",rowTintOdd:"#f8fafc",utilizationOk:"#10b981",utilizationWarn:"#f59e0b",utilizationOver:"#ef4444"},timeline:{gridLine:"#cbd5e1",minorGridLine:"#e2e8f0",nonWorkingSeam:"#a0aec0",nonWorkingFill:"#64748b",tickMark:"#cbd5e1",labelText:"#64748b",panelFill:"#ffffff",border:"#e2e8f0"},header:{cardBorder:"#e2e8f0",author:"#64748b"},item:{overflowX:"#dc2626",linkIconFg:"#0f172a",overflowTailFill:"#fee2e2",overflowTailStroke:"#ef4444",overflowCaption:"#b91c1c"},parallel:{bracketStroke:"#334155"},anchorDiamond:{fill:"#ffffff",stroke:"#334155",label:"#334155",cutLine:"#64748b"},milestoneDiamond:{fill:"#0f172a",label:"#0f172a",cutLineNormal:"#1e1b4b",cutLineOverrun:"#b91c1c",slack:"#0f172a"},footnotePanel:{fill:"#ffffff",border:"#e2e8f0",header:"#0f172a",title:"#0f172a",description:"#64748b",number:"#dc2626"},nowline:{stroke:"#e53e3e",labelText:"#ffffff",labelBg:"#e53e3e"},milestone:{dashedInk:"#94a3b8",overrun:"#ef4444"},anchor:{predecessorLine:"#94a3b8"},dependency:{edgeStroke:"#475569",overflowStroke:"#d32f2f"},footnote:{indicatorText:"#e53e3e",descriptionMuted:"#64748b"},includeRegion:{border:"#94a3b8",label:"#334155",badge:"#64748b",fill:"#f8fafc",tabFill:"#ffffff",tabStroke:"#cbd5e1",tabText:"#0f172a",badgeFill:"#e2e8f0",badgeStroke:"#cbd5e1",badgeText:"#475569"},wave:{stripFill:"#f0fdfa",stripFillAlt:"#ccfbf1",labelText:"#134e4a",labelMuted:"#0f766e",boundary:"#0d9488",hatch:"#0f172a",hatchOnDark:"#ffffff"},arrowhead:{neutral:"#475569",light:"#94a3b8",dark:"#0f172a"},status:{done:"#10b981",inProgress:"#3b82f6",atRisk:"#f59e0b",blocked:"#ef4444",planned:"#94a3b8",neutral:"#94a3b8"},statusTint:{done:"#ecfdf5",inProgress:"#eff6ff",atRisk:"#fffbeb",blocked:"#fee2e2",planned:"#f8fafc",neutral:"#f8fafc"},statusDot:{onLight:{done:"#065f46",inProgress:"#1e3a8a",atRisk:"#92400e",blocked:"#991b1b",planned:"#334155",neutral:"#334155"},onDark:{done:"#d1fae5",inProgress:"#dbeafe",atRisk:"#fef3c7",blocked:"#fee2e2",planned:"#e2e8f0",neutral:"#e2e8f0"}},attribution:{mark:"#94a3b8",link:"#e53e3e"},diagnostic:{overlayBg:"#fee2e2",errorText:"#991b1b"}};var nS=["light","dark","grayscale"],ax={light:sx,dark:ix,grayscale:ox};var eB={greyscale:"grayscale"};function lx(e){let t=e.toLowerCase(),n=eB[t]??t;return nS.find(r=>r===n)}var tB={grey:"gray",violet:"purple"};function qn(e,t){if(e==="none")return"none";if(e.startsWith("#"))return e;let n=t.name==="dark"?QR:t.name==="grayscale"?eS:tS,r=tB[e]??e,i=n[r];return typeof i=="string"?i:e}function nB(e,t){return{bg:qn(e.bg,t),fg:qn(e.fg,t),text:qn(e.text,t),border:e.border,icon:e.icon,shadow:e.shadow,font:e.font,weight:e.weight,italic:e.italic,textSize:e.textSize,padding:e.padding,spacing:e.spacing,headerHeight:e.headerHeight,cornerRadius:e.cornerRadius,bracket:e.bracket,headerPosition:"beside",capacityIcon:e.capacityIcon,timelinePosition:"top",minorGrid:!1,nonWorking:"hide"}}function rS(e,t,n,r){switch(t){case"bg":e.bg=qn(n,r);break;case"fg":e.fg=qn(n,r);break;case"text":e.text=qn(n,r);break;case"border":(n==="solid"||n==="dashed"||n==="dotted")&&(e.border=n);break;case"icon":e.icon=n;break;case"shadow":(n==="none"||n==="subtle"||n==="soft"||n==="hard")&&(e.shadow=n);break;case"font":(n==="sans"||n==="serif"||n==="mono")&&(e.font=n);break;case"weight":(n==="thin"||n==="light"||n==="normal"||n==="bold")&&(e.weight=n);break;case"italic":e.italic=n==="true";break;case"text-size":e.textSize=Cl(n,"xl");break;case"padding":e.padding=Cl(n,"xl");break;case"spacing":e.spacing=Cl(n,"xl");break;case"header-height":e.headerHeight=Cl(n,"xl");break;case"corner-radius":e.cornerRadius=Cl(n,"full");break;case"bracket":(n==="none"||n==="solid"||n==="dashed")&&(e.bracket=n);break;case"header-position":(n==="beside"||n==="above")&&(e.headerPosition=n);break;case"capacity-icon":e.capacityIcon=n;break;case"timeline-position":(n==="top"||n==="bottom"||n==="both")&&(e.timelinePosition=n);break;case"minor-grid":e.minorGrid=n==="true";break;case"non-working":Cd(n)&&(e.nonWorking=n);break;default:break}}function Cl(e,t){let n=["none","xs","sm","md","lg","xl","full"],r=n.indexOf(t),i=n.indexOf(e);return i<0?"md":i>r?n[r]:n[i]}function rB(e,t,n){if(t)for(let r of t.properties)rS(e,Q(r),r.value,n)}function iB(e,t,n){for(let r of t){let i=Q(r);r.value!==void 0&&rS(e,i,r.value,n)}}function Se(e,t,n){let r=n.theme.entities[e],i=nB(r,n.theme);for(let o of Hf(e,t,n))switch(o.level){case"default":case"inline":iB(i,o.props,n.theme);break;case"label":break;default:rB(i,o.decl,n.theme)}return i}function iS(e,t){return Se("label",e.properties,t)}function sS(e,t){let r=_t(e.roadmapDecl?.properties??[],"scale")?.value,i="weeks",o,s;if(r)if(r==="days"||r==="weeks"||r==="months"||r==="quarters"||r==="years")i=r;else{let c=/^(\d+)([dwmqy])$/.exec(r);if(c){let u=Math.max(1,parseInt(c[1],10));switch(c[2]){case"d":i="days";break;case"w":i="weeks";break;case"m":i="months";break;case"q":i="quarters";break;case"y":i="years";break}o=cx(i)*u,s=1}}let a=s??Rk[i]??4,l=c=>s===void 0&&!c?{labelEveryDefault:!0}:{};if(t){let c=_t(t.properties,"label-every"),u=c&&parseInt(c.value,10)||0,f=u!==0?Math.max(1,u):a;return{unit:i,labelEvery:f,pixelsPerUnit:o??cx(i),...l(u!==0)}}return{unit:i,labelEvery:a,pixelsPerUnit:o??cx(i),...l(!1)}}function cx(e){switch(e){case"days":return _k;case"weeks":return 40;case"months":return 80;case"quarters":return 160;case"years":return 320}}var oB=.5,ux=.5,$l=7;function Br(e){return e==="months"||e==="quarters"||e==="years"}function $d(e,t){let n=e.getUTCFullYear(),r=e.getUTCMonth();switch(t){case"months":return new Date(Date.UTC(n,r+1,1));case"quarters":return new Date(Date.UTC(n,r-r%3+3,1));case"years":return new Date(Date.UTC(n+1,0,1))}}function sB(e,t){if(e.getUTCDate()!==1)return!1;let n=e.getUTCMonth();switch(t){case"months":return!0;case"quarters":return n%3===0;case"years":return n===0}}function Mi(e,t,n,r,i){let o=Math.ceil(t-1e-6);if(i?.hasNonWorkingDays){if(!Br(n)&&o<=0)return 0;let a=o<=0?e:Xe(i.dateAtWorkingIndex(e,o-1),1),l=Br(n)?oS(a,n):n==="weeks"?aS(a,e,i.weekStart):a;return i.workingIndexOf(e,l)}if(!Br(n))return Math.ceil(t/r)*r;let s=Xe(e,o);return At(e,oS(s,n))}function oS(e,t){return sB(e,t)?e:$d(e,t)}function aS(e,t,n){let r=n===void 0?-At(t,e):n-e.getUTCDay();return Xe(e,(r%$l+$l)%$l)}function aB(e,t,n){return aS(Xe(e,1),t,n)}function Dd(e,t,n,r=Ol){if(e.calendar?.hasNonWorkingDays)return lB(e,t,e.calendar,r);if(Br(t.unit))return hB(e,t,t.unit,r);let i=n.daysPerUnit(t.unit),o=i*e.pixelsPerDay,s=Math.max(1,Math.round(e.widthPx/e.pixelsPerDay)),a=Math.floor(s/i)+1,l=[];for(let c=0;c<a;c++){let u=c*i,f=e.originX+u*e.pixelsPerDay,d=c%t.labelEvery===0,p=c===a-1;l.push({x:f,labelX:p?void 0:f+o/2,major:d,label:d&&!p?px(t.unit,Xe(e.domain[0],u),c,r):void 0})}return l}function lB(e,t,n,r){let{unit:i}=t,[o,s]=e.domain,a=x=>Br(i)?$d(x,i):i==="weeks"?aB(x,o,n.weekStart):Xe(x,1),l=[o];for(let x=a(o);x<s;x=a(x))l.push(x);let c=e.forward(s),u=[];l.forEach((x,y)=>{let E=e.forward(x);(y+1<l.length?e.forward(l[y+1]):c)>E&&!fB(e,i,l,y)&&u.push({date:x,x:E})});let f=i==="days"&&t.labelEveryDefault===!0&&n.weekStart!==void 0,d=(x,y)=>f?uB(x,n,e.showsNonWorking):y%t.labelEvery===0,m=(e.showsNonWorking?nk(i):n.daysPerUnit(i))*e.pixelsPerDay,g=u.map(({date:x,x:y},E)=>{let _=(E+1<u.length?u[E+1].x:c)-y,T=d(x,E),I=T?px(i,x,E,r):void 0,B=I===void 0?0:se(I,Ri),$=Br(i)?E===0||E===u.length-1:_<m-oB,X=I!==void 0&&!(B>_&&$);return{x:y,columnPx:_,major:T,label:I,labelPx:B,isNarrowed:$,isShown:X}});Br(i)||cB(g);let w=g.map(x=>({x:x.x,labelX:x.x+x.columnPx/2,major:x.major,label:x.isShown?x.label:void 0}));return s>o&&w.push({x:c,labelX:void 0,major:d(s,u.length),label:void 0}),w}function cB(e){let t=n=>{let r=e[n];return r===void 0||r.isShown?0:r.columnPx/2};e.forEach((n,r)=>{if(n.label===void 0||n.isShown||!n.isNarrowed||!(e[r-1]?.isNarrowed===!0||e[r+1]?.isNarrowed===!0))return;let o=n.labelPx/2,s=n.columnPx/2;n.isShown=o<=s+t(r-1)&&o<=s+t(r+1)})}function uB(e,t,n){let r=t.weekStart;if(n)return e.getUTCDay()===r;let i=(e.getUTCDay()-r+$l)%$l;for(let o=1;o<=i;o++)if(t.isWorkingDay(Xe(e,-o)))return!1;return!0}function fB(e,t,n,r){let i=e.calendar;if(!e.showsNonWorking||!i||!Br(t)||r===0||r!==n.length-1)return!1;let[o,s]=e.domain;return i.workingIndexOf(o,n[r])>=i.workingIndexOf(o,s)}function fx(e,t,n,r){let i=e.calendar;if(!i?.hasNonWorkingDays)return;let o=i.nonWorkingRuns(e.domain[0],e.domain[1]);if(o.length===0)return;let[s,a]=e.range;if(e.showsNonWorking)return o.map(c=>pB(e,c,n));let l=c=>t.some(u=>Math.abs(u.x-c)<ux&&(u.major||r));return o.map(c=>{let u=e.forward(c.from),f={x:u,width:e.forward(Xe(c.through,1))-u,from:c.from,through:c.through};c.titles.length>0&&(f.titles=c.titles,f.label=cS(c,i.workingWeekdays),f.cut=!0);let d=u-s>ux&&a-u>ux;return n==="days"&&d&&!l(u)&&(f.seam=!0),f})}function dx(e){let t=e.calendar?.workingExceptionRuns(e.domain[0],e.domain[1])??[];if(t.length===0)return;let[n]=e.range;return t.map(r=>({x:Math.max(n,e.forward(r.from)),from:r.from,through:r.through,titles:r.titles,label:dB(r)}))}function dB(e){let t=At(e.from,e.through)+1;return`${e.titles.join(", ")}${lS}+${t}d`}var lS=" \xB7 ";function cS(e,t){let n=0;for(let i=e.from;i<=e.through;i=Xe(i,1))t.has(i.getUTCDay())&&n++;let r=e.titles.join(", ");return n>0?`${r}${lS}${n}d`:r}function pB(e,t,n){let[r,i]=e.range,o=Math.max(r,e.forward(t.from)),s=Math.min(i,e.forward(Xe(t.through,1))),a={x:o,width:s-o,from:t.from,through:t.through};return t.titles.length>0&&(a.titles=t.titles,e.calendar&&(a.label=cS(t,e.calendar.workingWeekdays))),(n==="days"||n==="weeks"||t.titles.length>0)&&(a.band=!0),a}function hB(e,t,n,r){let[i,o]=e.domain,s=[i];for(let c=$d(i,n);c<o;c=$d(c,n))s.push(c);o>i&&s.push(o);let a=s.map(c=>e.forward(c)),l=s.length-1;return s.map((c,u)=>{let f=a[u],d=u%t.labelEvery===0;if(u===l)return{x:f,labelX:void 0,major:d,label:void 0};let p=a[u+1]-f,m=d?px(n,c,u,r):void 0,g=u===0||u===l-1;return m!==void 0&&g&&se(m,Ri)>p&&(m=void 0),{x:f,labelX:f+p/2,major:d,label:m}})}function px(e,t,n,r){switch(e){case"days":return`${t.getUTCMonth()+1}/${t.getUTCDate()}`;case"weeks":{let i=t.toLocaleString(r,{month:"short",timeZone:"UTC"}),o=t.getUTCDate().toString().padStart(2,"0");return`${i} ${o}`}case"months":return t.toLocaleString(r,{month:"short",timeZone:"UTC"});case"quarters":{let i=Math.floor(t.getUTCMonth()/3)+1;return`${jn(r).quarterPrefix}${i} ${t.getUTCFullYear()}`}case"years":return`${t.getUTCFullYear()}`}}function uS(e,t,n){let r=n.theme??"light",i=ax[r],o=JR(n.locale,gB(e)),s={theme:i,styles:t.config.styles,defaults:t.config.defaults,labels:t.content.labels},a=Se("roadmap",e.roadmapDecl?.properties??[],s);return{themeName:r,theme:i,locale:o,styleCtx:s,roadmapStyle:a}}function fS(e,t,n,r,i){let{config:o,working:s}=Vf(e,t),a=sS(e,t.config.scale),{startDate:l,endDate:c}=mB(e,i,n.today,a),u=Cd(n.nonWorking)?n.nonWorking:r.roadmapStyle.nonWorking,f=u==="show"&&s.hasNonWorkingDays,d=Math.max(1,s.workingIndexOf(l,c)),p=f?Math.max(1,At(l,c)):d;return{cal:o,calendar:s,preset:a,schedule:i,startDate:l,naturalEndDate:c,spanDays:d,timelineDays:p,nonWorking:u}}function mB(e,t,n,r){let i=e.roadmapDecl?.properties??[],{config:o,working:s}=t.calendar,{startDate:a}=t,l=ie(i,"length"),c=0;if(l){let m=cs(l,o);m>0&&(c=m)}let u=t.extent.contentEndDay;if(n&&!(c>0)){let m=s.workingIndexOf(a,n);m>0&&(u=Math.max(u,m))}let f=ek(r.unit,o),d=Mi(a,u>0?u:4*o.daysPerWeek,r.unit,f,s),p=Math.max(c,d);return{startDate:a,endDate:s.dateAtWorkingIndex(a,Math.max(1,p))}}function gB(e){return _t(e.directive?.properties??[],"locale")?.value}var yB=160,xB=64,EB=1e-6,Is=class{constructor(t,n){M(this,"scale");M(this,"startDate");M(this,"spanDays");M(this,"unit");M(this,"calendar");this.scale=n,this.startDate=t.startDate,this.spanDays=t.spanDays,this.unit=t.preset.unit,this.calendar=t.calendar}isPast(t,n){return this.scale.indexAtX(t)>n+EB}boundaryAtOrAfterX(t){return this.boundaryAtOrAfter(this.scale.indexAtX(t))}boundaryAtOrAfter(t){return Mi(this.startDate,t,this.unit,this.calendar.daysPerUnit(this.unit),this.calendar)}captionColumn(t){let n=this.boundaryAtOrAfter(t);return{start:n,end:this.nextBoundary(n)}}captionLimit(t){let{start:n,end:r}=this.captionColumn(t),i=this.xAt(n),o=r;for(let s=0;s<xB;s++){let a=this.nextBoundary(o);if(a<=o||this.xAt(a)-i>yB)break;o=a}return o}nextBoundary(t){return Mi(this.startDate,t+.5,this.unit,this.calendar.daysPerUnit(this.unit),this.calendar)}xAt(t){return this.scale.forward(this.calendar.dateAtWorkingIndex(this.startDate,t))}captionCapX(t){let n=this.isPast(t,this.spanDays)?Math.max(this.spanDays,this.boundaryAtOrAfterX(t)):this.spanDays;return this.xAt(this.captionLimit(n))}};function dS(e,t){e.box.y+=t;for(let n of e.inlineDatePins??[])n.glyphTopLeft.y+=t;if(e.kind==="item"){for(let n of e.labelChips)n.box.y+=t;e.overflowBox&&(e.overflowBox.y+=t);return}for(let n of e.children)dS(n,t)}function Rs(e,t){e.box.y+=t;for(let n of e.children)dS(n,t);for(let n of e.nested)Rs(n,t)}function pS(e,t){e.box.y+=t;for(let n of e.nestedSwimlanes)Rs(n,t);for(let n of[...e.anchors??[],...e.milestones??[]])n.center.y+=t,n.labelBox.y+=t,n.cutTopY+=t,n.cutBottomY+=t;for(let n of e.milestones??[])for(let r of n.slackArrows??[])r.y+=t;for(let n of e.edges??[])for(let r of n.waypoints)r.y+=t}function hS(e,t,n){e.cutTopY+=n,e.cutBottomY+=n,e.slackArrows?.forEach((r,i)=>{let o=t.slackArrows?.[i];o&&"y"in o&&(r.y+=n)})}var hx=class{constructor(t,n){M(this,"id");M(this,"anchor");this.id=t,this.anchor=n}place(t,n){let r=ie(this.anchor.properties,"date"),i=_e(r);if(!i)return null;let o=t.scale.forwardWithinDomain(i);if(o===null)return null;let s=Se("anchor",this.anchor.properties,t.styleCtx),a=t.markerRowPlacements.get(this.id),l=a?.centerY??t.timeline.markerRow.y,c={x:o,y:l},u=a?.labelBox??{x:o+6+6,y:l-4,width:0,height:12},f=a?.labelSide??"right";t.entityLeftEdges.set(this.id,o),t.entityRightEdges.set(this.id,o),t.entityMidpoints.set(this.id,c);let d={id:this.id,title:this.anchor.title??this.id,center:c,radius:6,style:s,predecessorPoints:[],cutTopY:t.chartTopY,cutBottomY:t.swimlaneBottomY,bumpedUp:(a?.rowIndex??0)>0,labelBox:u,labelSide:f};return!t.scale.showsNonWorking&&!t.calendar.isWorkingDay(i)&&(d.hiddenDate=Ti(i)),d}};function Md(e,t,n){let r=[];for(let[i,o]of e){let s=new hx(i,o).place(t,n);s&&r.push(s)}return r}function Fl(e){if(e.kind==="item"){let n=e.textSpills||e.dotSpills||e.iconSpills||e.footnoteSpills;return Math.max(e.box.x+e.box.width,n?e.decorationsRightX:Number.NEGATIVE_INFINITY,e.chipsOutside?e.chipsRightX:Number.NEGATIVE_INFINITY)}let t=Math.max(e.box.x+e.box.width,Es(e));for(let n of e.children)t=Math.max(t,Fl(n));return t}function Wr(e){let t=0;for(let n of e)t=Math.max(t,mS(n.children)),n.nested.length>0&&(t=Math.max(t,Wr(n.nested)));return t}function mS(e){let t=0;for(let n of e)n.kind==="item"?t=Math.max(t,n.box.x+n.box.width):t=Math.max(t,mS(n.children));return t}function Ss(e){let t=0;for(let n of e)t=Math.max(t,gS(n.children)),n.nested.length>0&&(t=Math.max(t,Ss(n.nested)));return t}function gS(e){let t=0;for(let n of e)n.kind==="item"?n.textSpills&&(t=Math.max(t,n.decorationsRightX)):t=Math.max(t,gS(n.children));return t}function TB(e){return e.box.y+e.box.height-rn/2}function mx(e,t){let{box:n}=e;return{startX:e.dateSpan.startX,endX:e.dateSpan.endX,paintedX:n.x,paintedWidth:n.width,top:n.y,bottom:n.y+n.height,rowY:n.y+t/2,exitY:gx(e,t)}}function yS(e){let{box:t}=e;return{startX:t.x,endX:t.x+t.width,paintedX:t.x,paintedWidth:t.width,top:t.y,bottom:t.y+t.height}}function gx(e,t){return e.textSpills?TB(e):e.box.y+t/2}function xS(e){let{box:t,afterDate:n,beforeDate:r,hasLinkIcon:i,footnoteCount:o}=e;if(!n&&!r)return[];let s=[],a=pt,l=t.y+gk,c=Vg(t.width);if(n){let u=Kg(t.x,i),f=c?{x:t.x-Bn-a,y:l}:{x:u,y:l};s.push({side:"after",isoDate:n,glyphTopLeft:f,glyphSize:a,spilled:c})}if(r){let u=t.x+t.width,f=qg(u,o),d=c?{x:u+Bn,y:l}:{x:f,y:l};s.push({side:"before",isoDate:r,glyphTopLeft:d,glyphSize:a,spilled:c})}return s}function Fd(e){let{box:t,afterDate:n,beforeDate:r,title:i}=e;if(!n&&!r)return[];let o=[],s=pt,a=t.y+(wl-s)/2,l=i?xs(t.x,!!n)+Ay(i):t.x;if(n&&(l=Math.max(l,t.x+s),o.push({side:"after",isoDate:n,glyphTopLeft:{x:t.x,y:a},glyphSize:s,spilled:!1})),r){let c=t.x+t.width-Yg-s,u=l>t.x?l+nn:t.x;o.push({side:"before",isoDate:r,glyphTopLeft:{x:Math.max(c,u),y:a},glyphSize:s,spilled:!1})}return o}function Rt(e){for(let t of e)if(_e(t))return t}function Xr(e){return{after:Be(e,"after").map(n=>{let r=_e(n);return r?{raw:n,date:r}:{raw:n,ref:n}})}}function Bd(e){return e.floors.map(t=>t?_e(t.date):null)}function Wd(e,t,n,r,i=0,o){let s=n.map(c=>c??-1/0),a=[];for(let c=0;c<e;c++){let u=ES(c===0?t:a[c-1],s[c],i);a.push(c===0?u:Math.max(u,o?.S[c]??-1/0))}let l=a.map((c,u)=>Math.max(c,o?.E[u]??-1/0));for(let c=1;c<=e+1;c++){let u=r(a,l).memberEnd,f=[],d=[];for(let p=0;p<e;p++)f.push(p===0?a[0]:ES(d[p-1],s[p],i)),d.push(Math.max(f[p],u[p]??-1/0));if(wS(a,f)&&wS(l,d))return{S:a,E:l,passes:c,capped:!1};a=f,l=d}return r(a,l),{S:a,E:l,passes:e+1,capped:!0}}function ES(e,t,n){return t-e>n?t:e}function wS(e,t){for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function TS(e,t,n){return Bd(e).map(r=>r?n.workingIndexOf(t,r):null)}var Fi=class{constructor(t,n){M(this,"plan");M(this,"S");M(this,"memberEnd");M(this,"binding");M(this,"memberCount");this.plan=t,this.S=n;let r=t.waves.length;this.memberEnd=new Array(r).fill(-1/0),this.binding=new Array(r).fill(void 0),this.memberCount=new Array(r).fill(0)}floor(t){let n=this.plan.waveOf.get(t),r=t.$type==="ItemDeclaration"?void 0:this.plan.leadOf.get(t),i;return n!==void 0&&(i=this.S[n-1]),r!==void 0&&(i=Math.max(i??-1/0,this.S[r-1])),i}apply(t,n){let r=this.floor(t);return r===void 0?n:Math.max(n,r)}accumulate(t,n){let r=this.plan.memberWave(t);r!==void 0&&(this.memberCount[r-1]++,n>this.memberEnd[r-1]&&(this.memberEnd[r-1]=n,this.binding[r-1]=t))}};function Xd(e,t,n,r,i,o=0){return e.waves.map((s,a)=>{let l={id:s.name,index:a+1,start:t.S[a],end:t.E[a],memberCount:n.memberCount[a]},c=n.binding[a];if(c!==void 0&&n.memberEnd[a]===t.E[a]&&t.E[a]>t.S[a]){let p=c.name??c.title;p!==void 0&&(l.heldBy=p)}let u=i[a],f=e.floors[a]?.ref,d=a===0?r:t.E[a-1];return u!=null&&f!==void 0&&u-d>o&&(l.floorRef=f),l})}var Ot=.5;function vS(e,t,n,r,i){let o=e.waves.map(()=>n);return{plan:e,ids:e.waves.map(s=>s.name),origin:n,floors:Bd(e).map(s=>s?t.forward(s):null),S:o,E:o,pass:new Fi(e,o),frozen:!1,backgroundTooltip:r,visible:i}}function _S(e,t,n){e.S=t,e.E=n,e.pass=new Fi(e.plan,t)}function AS(e,t){e.S=t.S,e.E=t.E,e.frozen=!0,e.solve=t}function Ud(e,t,n){e.ids.forEach((r,i)=>{t.set(r,e.S[i]),n.set(r,e.E[i])})}function Ur(e,t,n){return n.waves?n.waves.pass.apply(e,t):t}function kS(e,t,n){n.waves&&!n.waves.frozen&&n.waves.pass.accumulate(e,t)}function IS(e,t){if(t.waves?.visible)return t.waves.plan.memberWave(e)!==void 0?"member":"background"}function RS(e,t){for(let n of[...e.S,...e.E])if(!(Math.abs(n-e.origin)<Ot)&&Math.abs(t-n)<Ot)return!0;return!1}function yx(e,t){let n=Math.round((e-t.timeline.originX)/t.timeline.pixelsPerDay);if(!t.scale.showsNonWorking)return n;let r=t.timeline.startDate;return t.calendar.workingIndexOf(r,Xe(r,n))}function Gd(e,t){return t.calendar.dateAtWorkingIndex(t.timeline.startDate,yx(e,t))}function SS(e,t,n){return Yf(n.calendar,n.timeline.startDate,yx(e,n),yx(t,n))}function Bl(e,t,n){return Ur(e,Wl(e.properties,t,n),n)}var vB=!0;function bS(){return vB}function Wl(e,t,n){let{after:r}=Xr(e);if(r.length>0){let i=t;for(let o of r){if("date"in o){let a=n.scale.forwardWithinDomain(o.date);a!==null&&(i=Math.max(i,a));continue}let s=n.entityRightEdges.get(o.ref);s!==void 0&&(i=Math.max(i,s))}return i}return t}function NS(e,t,n){if(!n.calendar.hasNonWorkingDays)return;let r=_B(e);if(!r||n.calendar.isWorkingDay(r.date))return;let i=n.scale.forwardWithinDomain(r.date);if(!(i===null||Math.abs(t-i)>=Ot))return{key:r.key,pin:r.raw,start:Ti(Gd(t,n))}}function _B(e){let{after:t}=Xr(e);for(let n of t)if("date"in n)return{key:"after",raw:n.raw,date:n.date}}function xx(e){if(!e||e==="none"||e==="transparent")return 1;let t=e.startsWith("#")?e.slice(1):e;if(t.length===3&&(t=t.split("").map(s=>s+s).join("")),t.length!==6)return 1;let n=parseInt(t.slice(0,2),16)/255,r=parseInt(t.slice(2,4),16)/255,i=parseInt(t.slice(4,6),16)/255,o=s=>s<=.03928?s/12.92:((s+.055)/1.055)**2.4;return .2126*o(n)+.7152*o(r)+.0722*o(i)}function AB(e,t){return xx(e)>=.24?t.statusDot.onLight:t.statusDot.onDark}function LS(e,t,n){let r=AB(t,n),i={done:r.done,"in-progress":r.inProgress,"at-risk":r.atRisk,blocked:r.blocked,planned:r.planned,neutral:r.neutral};return i[e]??i.neutral}var kB=.24;function IB(e){return e==="none"?"transparent":e}function Hd(e){return xx(IB(e))>=kB?"dark":"light"}function bs(e,t,n){return e.scale.showsNonWorking?e.scale.advanceX(t,n)-t:n*e.timeline.pixelsPerDay}function Xl(e,t){return{x:e,startX:e,y:t,height:0}}function PS(e,t){let n=e.schedule.byNode.get(t);if(!n)throw new Error(`layout: item "${t.name??t.title??"(unnamed)"}" is not in the day schedule`);return n.days}function RB(e){let t=new Map(e),n=r=>{for(let i of r.content)tn(i)&&(i.name&&!t.has(i.name)&&t.set(i.name,i),n(i))};for(let r of e.values())n(r);return t}function zd(e,t,n,r){return{cal:t.cal,schedule:t.schedule,styleCtx:{theme:t.theme,styles:e.config.styles,defaults:e.config.defaults,labels:e.content.labels},sizes:us(e.content.sizes,t.cal),labels:e.content.labels,teams:RB(e.content.teams),persons:e.content.persons,symbols:e.config.symbols,footnoteIndex:r.footnotes?.index??new Map,footnoteHosts:r.footnotes?.hosts??new Map,timeline:t.timeline,scale:t.scale,calendar:t.calendar,...t.axisColumns?{axisColumns:t.axisColumns}:{},bandScale:t.bandScale,entityLeftEdges:new Map,entityRightEdges:new Map,entityMidpoints:new Map,markerIds:new Set([...e.content.anchors.keys(),...e.content.milestones.keys()]),placedItems:new Map,itemFlowKey:new Map,currentFlowKey:"",slackCorridors:[],markerRowPlacements:r.markerRowPlacements??new Map,chartTopY:n.chartTopY,chartBottomY:n.chartBottomY,swimlaneBottomY:n.swimlaneBottomY,nextParallelId:0,nextGroupId:0,...t.waves?{waves:t.waves}:{}}}var OS=12,SB=4,jd=13,bB=11;function NB(e,t){return(e?se(e,bB):0)+t}function Vd(e){return Math.max(0,Math.min(vk,(e-Jg)/2))}function Ex(e){return Math.max(Jg,e-2*Vd(e))}function CS(e){if(!/[\r\n]/.test(e))return;let t=e.replace(/\r\n?/g,`
|
|
2918
2918
|
`).split(`
|
|
2919
|
-
`).map(i=>i.trim()),n=0,r=t.length;for(;n<r&&t[n]==="";)n+=1;for(;r>n&&t[r-1]==="";)r-=1;return t.slice(n,r)}function _B(e,t,n,r=t,i=r){let o=e,s=bS(e);if(s){if(s.length>=2)return{textSpills:!(n<=t&&s.every((u,f)=>se(u,Gd)<=(f===0?i:t))),titleLines:s};o=s[0]??""}let a=o.length>0&&se(o,Gd)>r,l=n>t;if(!a&&!l)return{textSpills:!1,titleLines:[o]};if(a&&!l)for(let c of[r,i]){let u=wi(o,t,Gd,c);if(u.length>=2&&u.length<=Bg&&u.every((f,d)=>se(f,Gd)<=(d===0?c:t)))return{textSpills:!1,titleLines:u}}return{textSpills:!0,titleLines:[o]}}function NS(e,t,n){let r=bS(e);return r&&r.length>=2?r:!t.textSpills&&!n&&t.titleLines.length>=2?t.titleLines:[r?r[0]??"":e]}function LS(e){let{visualWidth:t}=e,n=ds(!!e.hasLinkIcon,e.hasAfterGlyph?{barWidth:t}:void 0),r=Math.max(0,t-n-SS),i=TB(e.metaText,e.metaTrailingWidth??0),o=e.titleFirstLineRightReservePx??ul({barWidth:t,footnoteLabels:[],hasBeforeGlyph:!1}),s=Math.max(0,t-n-o),a=Math.max(s,t-n-Math.max(SS,o-Wt));return{leftInset:n,fit:_B(e.title,r,i,s,a)}}var vB;function OS(e,t,n){vB?.(e,t,n)}var Hd=class{constructor(t){M(this,"geometry");this.geometry=t}get id(){return this.geometry.id}measure(t){return{width:this.geometry.naturalWidth,height:t.bands.bandwidth()+this.geometry.barExtra}}place(t,n){let{naturalWidth:r,visualWidth:i,caption:o,barExtra:s}=this.geometry,a=n.bands.bandwidth(),l=t.x+zd(r),c={x:l,y:t.y,width:i,height:s>0?a+s:a},{textSpills:u,titleLines:f}=o.fit,d=u?l+i+EB:l+o.leftInset;return{id:this.geometry.id,box:c,textX:d,textSpills:u,titleLines:f}}};function AB(e){switch(e){case"done":case"completed":return"done";case"in-progress":case"active":return"in-progress";case"at-risk":case"blocked":case"planned":return e;case void 0:return"planned";default:return"neutral"}}function kB(e){if(!e)return 0;let t=/^(\d{1,3})%$/.exec(e);return t?Math.max(0,Math.min(100,parseInt(t[1],10)))/100:0}function IB(e,t){if(e)return/^\d+(?:\.\d+)?[dwmqy]$/.test(e)||/^\d+%$/.test(e)?e:t.sizes.get(e)?.effortLiteral??e}function RB(e,t){if(e)return t.teams.get(e)?.title??t.persons.get(e)?.title??e}function SB(e){if(!e)return{icon:"none"};let t=e.toLowerCase();return t.includes("linear.app")?{icon:"linear",href:e}:t.includes("github.com")?{icon:"github",href:e}:t.includes("atlassian.net")||t.includes("jira.")?{icon:"jira",href:e}:{icon:"generic",href:e}}function jd(e,t,n,r,i){let o=QR(e,t),s=e.name??e.title??"",a=o.padding==="none"?"xs":o.padding,l=dk[a],c=Math.max(20,Math.round(s.length*5.5+l*2));return i!==void 0&&(c=Math.min(c,i)),{text:s,style:o,box:{x:n,y:r,width:c,height:$r}}}function bB(e,t){let n=UA(e,t.sizes,t.cal),r=WA(ie(e,"remaining"),t.sizes,t.cal),i=ie(e,"status"),o=AB(i),s=kB(i);s===0&&o==="done"&&(s=1);let a=/^(\d{1,3})%$/.exec(ie(e,"remaining")??"");return s===0&&o==="in-progress"&&a&&(s=1-Math.max(0,Math.min(100,parseInt(a[1],10)))/100),s===0&&o==="in-progress"&&r>0&&n>0&&(s=Math.max(0,Math.min(1,1-r/n))),{status:o,progress:s}}function NB(e,t,n,r,i,o){let s=ie(e,"duration"),a=!!s&&/^\d+(?:\.\d+)?[dwmqy]$/.test(s),l=n?n.title??n.name:"",c=a?s:l||void 0,u=ie(e,"remaining"),f=IB(u,t),d=RB(ie(e,"owner"),t),p=()=>[c,d].filter(Boolean).join(" "),m;if(r==="in-progress"&&f){let w=p();m=w?`${w} \u2014 ${f} remaining`:`${f} remaining`}else if(r==="in-progress"&&i>0&&i<1){let w=Math.round((1-i)*100),_=p();m=_?`${_} \u2014 ${w}% remaining`:`${w}% remaining`}else(d||c)&&(m=p()||void 0);let g=ie(e,"capacity"),E=Nr(g),x=null,y=0;if(E!==null){let w=el(E),_=tl(o,t.symbols),k=11,N=rl(w,_,k,m);x={value:E,text:w,icon:_,...N!==void 0?{iconDxTerms:N}:{}};let B=N!==void 0?k*ss:se(" ",k);y=(m?B:0)+nl(w,_,k)}return{metaText:m,ownerDisplay:d,capacity:x,capacityTrailingWidth:y}}function LB(e,t){let n=new Set;if(e){for(let[r,i]of t.footnoteHosts.entries())if(i.includes(e)){let o=t.footnoteIndex.get(r);o!==void 0&&n.add(o)}}return[...n].sort((r,i)=>r-i)}function OB(e,t,n){return ul({barWidth:e,footnoteLabels:t.map(String),hasBeforeGlyph:Rt(n)!==void 0})}var PB={done:"done","in-progress":"inProgress","at-risk":"atRisk",blocked:"blocked",planned:"planned",neutral:"neutral"};function CB(e,t,n){let r=PB[t],i={...e};return i.bg===n.entities.item.bg&&(i.bg=n.statusTint[r]),i.fg===n.entities.item.fg&&(i.fg=n.status[r]),i}function $B(e,t,n,r,i){if(n===0)return 0;let o=r-nn-$r-Wn,s;e&&t?s=Math.max(_i,i)+Wn:e?s=o:s=Math.max(o,i+Wn);let l=s+(n-1)*Jf+$r+Wn+nn;return Math.max(0,l-r)}function DB(e,t,n){let r=n.axisColumns;if(!t.textSpills||!r)return{lines:e,truncated:!1};let i=Math.max(0,...e.map(g=>se(g,Or))),{metaText:o,capacityTrailingWidth:s}=t.meta,a=(o?se(o,sl):0)+s,l=Math.max(i,a),c=Zf({barRightX:t.barRightX,iconSpills:t.iconSpills,captionWidth:l,footnoteCount:t.visualWidth<ps?t.footnoteCount:0,dotSpills:t.visualWidth<Cr}),u=r.captionCapX(t.barRightX);if(c.rightX<=u+MB||c.captionX===null)return{lines:e,truncated:!1};let f=c.rightX-(c.captionX+l),d=u-c.captionX-f,p=!1;return{lines:e.map(g=>{let E=MA(g,d,Or);return E!==g&&(p=!0),E}),truncated:p}}var MB=1e-6;function Yd(e,t,n){let r=e.properties,i=Se("item",r,n.styleCtx),o=ie(r,"size"),s=o?n.sizes.get(o)??null:null,a=RS(n,e),l=Be(r,"after"),c=Be(r,"before"),u=bs(n,t,a),f=fx(u),d=SB(ie(r,"link")),p=d.icon!=="none",m=fx(u),g=Be(r,"labels"),E=[];for(let z of g){let U=n.labels.get(z);if(!U)continue;let ee=jd(U,n.styleCtx,0,0);E.push({id:U,width:ee.box.width})}let x=0;for(let z=0;z<E.length;z+=1)z>0&&(x+=Xn),x+=E[z].width;let y=Math.max(0,m-2*Fn),w=E.length>0&&x>y,{status:_,progress:k}=bB(r,n),N=CB(i,_,n.styleCtx.theme),B=NB(r,n,s,_,k,N.capacityIcon),$=e.title??e.name??"",X=LB(e.name,n),j=LS({title:$,visualWidth:f,metaText:B.metaText,metaTrailingWidth:B.capacityTrailingWidth,hasLinkIcon:p,hasAfterGlyph:Rt(l)!==void 0,titleFirstLineRightReservePx:OB(m,X,c)}),D=p&&f<Gg,I=j.fit.textSpills||D,R=DB(NS($,j.fit,D),{textSpills:I,iconSpills:D,barRightX:t+zd(u)+f,visualWidth:f,footnoteCount:X.length,meta:B},n),P=R.lines,A=w?uk(E,f):null,L=A?A.rows.length:E.length>0?1:0,T=B.metaText!==void 0||B.capacity!==null,O=qf(P.length,T),S=Wg(P.length,T),F=$B(w,I,L,n.bandScale.bandwidth(),O);return{node:e,id:e.name??"",startX:t,durationDays:a,naturalWidth:u,visualWidth:f,naturalVisualWidth:m,style:N,size:s,status:_,progress:k,meta:B,link:d,chips:{samples:E,outside:w,pack:A,rowCount:L},footnoteIndicators:X,caption:{...j,title:$,iconSpills:D,lines:P,truncated:R.truncated,lastBaseline:O},barExtra:Math.max(S,F)}}function Vd(e,t,n,r){let i=e.properties,o=Be(i,"after"),s=Be(i,"before"),a=Bl(i,t.x,n);n.waves&&(a=Ur(e,a,n));let l=kS(i,a,n),c=n.scale.startX(a),u=r??Yd(e,c,n);if(u.startX!==c)throw new Error(`layout: item "${e.name??e.title??"(unnamed)"}" was measured at x ${u.startX} but placed at x ${c}`);let{naturalWidth:f,style:d,status:p,progress:m,footnoteIndicators:g,caption:E}=u,{metaText:x,ownerDisplay:y,capacity:w,capacityTrailingWidth:_}=u.meta,k=u.link,N=k.icon!=="none",B=u.chips.samples,$=u.chips.outside,X=c,j=c+f,D=c+bs(n,c,u.durationDays),I=!1,R,P;if(s.length>0){let qe,er;for(let $t of s){let Ms=ve($t),Fs=Ms?n.scale.forwardWithinDomain(Ms)??void 0:n.entityLeftEdges.get($t);Fs!==void 0&&(qe===void 0||Fs<qe)&&(qe=Fs,er=$t)}qe!==void 0&&D>qe&&(I=!0,R={x:qe,y:t.y,width:j-qe,height:n.bandScale.bandwidth()},P=er)}let A=E.title,L=new Hd(u),T={time:n.scale,bands:n.bandScale,style:d},O=L.place({x:X,y:t.y},T),S=O.box,F=n.bandScale.bandwidth(),z=S.width<Cr,U=E.iconSpills,ee=S.width<ps,Y=O.textSpills||U,ne=E.lines,v=u.chips.pack,C=E.lastBaseline,W=u.barExtra,G=[],K=S.y+F-nn-$r-Wn,q=S.y+($&&Y?Math.max(_i,C):C)+Wn,re=$&&Y||!$&&B.length>0?Math.max(K,q):K,le=$?S.x+S.width+Bn:S.x+Fn,ce=le;if(v)for(let qe=0;qe<v.rows.length;qe+=1){let er=re+qe*Jf,$t=le;for(let Fs of v.rows[qe]){let fE=jd(Fs.id,n.styleCtx,$t,er);G.push(fE),$t+=fE.box.width+Xn}let Ms=$t-Xn;Ms>ce&&(ce=Ms)}else{let qe=le;for(let er of B){let $t=jd(er.id,n.styleCtx,qe,re);G.push($t),qe+=$t.box.width+Xn}ce=B.length>0?qe-Xn:le}let pe=y??ie(i,"owner"),rt=e.description?.text,ht=g.length>0&&ee,mt=null;if(Y){let qe=Math.max(...ne.map($t=>se($t,Or))),er=(x?se(x,11):0)+_;mt=Math.max(qe,er)}let Jl=Zf({barRightX:S.x+S.width,iconSpills:U,captionWidth:mt,footnoteCount:ht?g.length:0,dotSpills:z}),{iconSpillX:VN,footnoteSpillStartX:KN,dotSpillCx:qN}=Jl,ZN=Math.max(S.x+S.width,Jl.rightX),Ds=e.name;Ds&&(n.entityLeftEdges.set(Ds,X),n.entityRightEdges.set(Ds,D)),wS(e,D,n);let cE=Ds??dx(e);n.itemFlowKey.set(cE,n.currentFlowKey),t.startX=X,t.x=D,t.height=Math.max(t.height,n.bandScale.step()+W);let uE=pS({box:S,afterDate:Rt(o),beforeDate:Rt(s),hasLinkIcon:N,footnoteCount:g.length}),Qn={kind:"item",id:Ds,title:A,...ne.length>=2||ne[0]!==A?{titleLines:ne}:{},box:S,dateSpan:{startX:X,endX:j},status:p,statusDotColor:IS(p,d.bg,n.styleCtx.theme),progressFraction:m,footnoteIndicators:g,labelChips:G,chipsOutside:$,chipsRightX:ce,linkIcon:k.icon,linkHref:k.href,hasOverflow:I,overflowBox:R,overflowAnchorId:P,owner:pe,description:rt,metaText:x,textSpills:Y,dotSpills:z,iconSpills:U,footnoteSpills:ht,dotSpillCx:qN,iconSpillX:VN,footnoteSpillStartX:KN,decorationsRightX:ZN,capacity:w,size:u.size,style:d,inlineDatePins:uE.length>0?uE:void 0},Ql=TS(e,n);return Ql!==void 0&&(Qn.waveRole=Ql),Ql==="background"&&(Qn.waveHatch=Xd(d.bg)),l!==void 0&&(Qn.nonWorkingPin=l),E.truncated&&(Qn.titleTruncated=!0),Ql==="background"&&n.waves&&(Qn.waveTooltip=n.waves.backgroundTooltip),n.placedItems.set(cE,Qn),OS(L,T,Qn),Qn}function dx(e){let t=e.$cstNode?.range.start;return`#item@${t?t.line+1:0}:${t?t.character+1:0}`}function px(e){let t=new Map;for(let n of yA(e))Ve(n)&&t.set(n.name??dx(n),n);return t}var FB=.01;function BB(e,t){let n={blocks:[],edges:[]},r=new Map,i=(a,l,c)=>{n.blocks.push({x:a,y:c,width:l,height:0})},o=(a,l)=>{let{box:c}=a;if(a.kind==="item"){n.blocks.push({...c,width:Ml(a)-c.x}),n.edges.push({x:c.x,top:c.y,bottom:c.y+c.height},{x:c.x+c.width,top:c.y,bottom:c.y+c.height});return}l&&a.id&&r.set(a.id,a),a.kind==="group"&&a.waveOnly||(a.headerHeight>0&&n.blocks.push({x:c.x,y:c.y,width:Math.max(c.width,xs(a)-c.x),height:a.headerHeight}),i(c.x,c.width,c.y+c.height),n.edges.push({x:c.x,top:c.y,bottom:c.y+c.height},{x:c.x+c.width,top:c.y,bottom:c.y+c.height}));for(let u of a.children)o(u,l)},s=(a,l)=>{i(a.box.x,a.box.width,a.box.y),i(a.box.x,a.box.width,a.box.y+a.box.height);for(let c of a.children)o(c,l);for(let c of a.nested)s(c,l)};for(let a of e)s(a,!0);for(let a of t){i(a.box.x,a.box.width,a.box.y),i(a.box.x,a.box.width,a.box.y+a.box.height);for(let l of a.nestedSwimlanes)s(l,!1)}return{obstacles:n,containers:r}}function hx(e,t,n,r){let{obstacles:i,containers:o}=BB(t,n),s=r.bandScale.bandwidth(),a=Se("item",[],r.styleCtx),l=[];for(let[p,m]of e){let g=r.placedItems.get(p);if(!g)continue;let E=ax(g,s);for(let x of Be(m.properties,"after")){let y=r.placedItems.get(x),w=y?void 0:o.get(x),_;if(y?_=ax(y,s):w&&(_=dS(w)),_){l.push({fromId:x,toId:p,source:_,target:E});continue}let k=r.entityMidpoints.get(x);if(!k||E.startX-k.x<=FB)continue;let N=E.rowY??E.top;l.push({fromId:x,toId:p,waypoints:[{x:k.x,y:N},{x:E.paintedX,y:N}],slack:!0,...Es(E.bottom-E.top),style:a})}}let c=l.filter(p=>p!==null&&"source"in p),u=kk(c,i,r.scale.pixelsPerDay),f=new Map(c.map((p,m)=>[p,u[m]])),d=[];for(let p of l){if(!p)continue;if(!("source"in p)){d.push(p);continue}let m=f.get(p);m&&d.push({...m,style:a})}return d}function qd(e,t=0){let n=new Map,r=new Map;return[...e.entries()].forEach(([i,o],s)=>{n.set(i,t+s+1),r.set(i,Be(o.properties,"on"))}),{index:n,hosts:r}}var Kd=11,WB=120,XB=6,PS="\u2014 ";function $S(e,t,n,r,i=[]){let o=Gt,s=n+Gt,a=r-2*Gt,l=o+2*Gt,c=o+a-Gt,u=s+ed+Gt,f=[],d=0,p=(g,E,x)=>{for(let[y,w]of g){let _=w.title??y,k=w.description?.text,N=UB(_,k,l,c),B=u+d*ms,$=j=>({x:j.x,y:B+j.row*ms,text:j.text}),X={number:E.footnoteIndex.get(y)??f.length+1,y:B,title:_,titleLines:N.title.map($),description:k,style:Se("footnote",w.properties,E.styleCtx)};N.description.length>0&&(X.descriptionLines=N.description.map($)),x!==void 0&&(X.region=x),f.push(X),d+=N.rows}};p(e,t);for(let g of i){if(g.footnotes.size===0)continue;let E=u+d*ms;d+=1;let x=f.length;p(g.footnotes,g.ctx,g.title),f[x].regionHeadingY=E}return{box:{x:o,y:s,width:a,height:f.length===0?0:ed+d*ms+Gt},entries:f}}function UB(e,t,n,r){let i=r-n,o=CS(e,i,i),s=o.map((g,E)=>({x:n,row:E,text:g}));if(!t)return{title:s,description:[],rows:o.length};let a=se(PS,Kd),l=t.trim().split(/\s+/)[0]??"",c=n+Math.max(WB,e.length*XB),u=o.length===1&&a+se(l,Kd)<=r-c,f=u?c:n,d=u?o.length-1:o.length,p=CS(t,i,r-f-a),m=p.map((g,E)=>({x:E===0?f:n,row:d+E,text:E===0?`${PS}${g}`:g}));return{title:s,description:m,rows:d+p.length}}function CS(e,t,n){if(se(e,Kd)<=n)return[e];let r=wi(e,t,Kd,n);return r.length>0?r:[e]}function Xl(e,t,n){let r=[],i=(o,s,a)=>{let l=ve(ie(s.properties,"date"));if(!l)return;let c=n.forwardWithinDomain(l);c!==null&&r.push({id:o,centerX:c,radius:6,title:s.title??o,fontSize:10,bold:a,date:l,isMilestone:a})};for(let[o,s]of e)i(o,s,!1);for(let[o,s]of t)i(o,s,!0);return r}function Jd(e,t){return[...HB(e),...zB(t)]}function Ns(e,t){let n=new Map;for(let[r,i]of e){let o=t+13+i.rowIndex*26;n.set(r,{rowIndex:i.rowIndex,centerY:o,labelBox:{...i.labelBox,y:o-4},labelSide:i.labelSide})}return n}function mx(e){return`nonworking:${e.from.toISOString().slice(0,10)}`}function gx(e){return`working:${e.from.toISOString().slice(0,10)}`}function MS(e,t,n){return{id:e,centerX:t,radius:0,title:n,fontSize:10,bold:!1}}function HB(e){let t=[];for(let n of e??[])n.label!==void 0&&t.push(MS(mx(n),n.x,n.label));return t}function zB(e){return(e??[]).map(t=>MS(gx(t),t.x,t.label))}function Fi(e,t,n,r){let i=n;for(let o of e){let s=FS(o,r),a=o.centerX+o.radius+6+s,c=o.centerX-o.radius-6-s>=t&&o.slipFromX===void 0;a>n&&!c&&(i=Math.max(i,a+kt))}return i}function FS(e,t){return t(e.title,e.fontSize)*(e.bold?1.05:1)}function Qd(e){let t=[];for(let n of e)for(let r of n.slackArrows??[])"marker"in r&&r.marker!==n.id&&t.push({from:r.marker,to:n.id});return t}function Ls(e,t,n,r,i=[]){let o=[...e].sort((u,f)=>u.centerX-f.centerX),s=new Map,a=[],l=new Map(e.map(u=>[u.id,u])),c=i.filter(u=>l.has(u.from)&&l.has(u.to));for(let u of o){let f=FS(u,r),d=u.centerX+u.radius+6,p=u.centerX-u.radius-6-f,m=d+f<=n,g=p>=t,E=u.centerX-u.radius,x=u.centerX+u.radius,y=T=>T==="right"?d:p,w=T=>T==="right"?m:g,_=u.slipFromX===void 0?[]:[{left:u.slipFromX-u.radius,right:u.centerX-u.radius}],k=c.filter(T=>T.from===u.id).map(T=>{let O=l.get(T.to);return{left:Math.min(u.centerX,O.centerX)+u.radius,right:Math.max(u.centerX,O.centerX)-O.radius}}).concat(_).filter(T=>T.right>T.left),N=-1,B=Number.POSITIVE_INFINITY;for(let T of c){if(T.to===u.id){let O=s.get(T.from);O&&(B=Math.min(B,O.rowIndex))}if(T.from===u.id){let O=s.get(T.to);O&&(N=Math.max(N,O.rowIndex))}}let $=T=>{let O=y(T);return k.some(S=>S.left<O+f&&S.right>O)},X=T=>w(T)&&!$(T),j=X("right")||u.slipFromX!==void 0?"right":X("left")?"left":m?"right":"left",D=(T,O)=>{let S=Math.min(E,T),F=Math.max(x,T+f),z=[{left:S,right:F},...k];return a[O].some(U=>z.some(ee=>U.left<ee.right&&U.right>ee.left))},I=-1,R="right",P=d;e:for(let T=a.length-1;T>=0;T--)if(!(T<N||T>B))for(let O of["right","left"]){if(!X(O))continue;let S=y(O);if(!D(S,T)){I=T,R=O,P=S;break e}}if(I===-1&&N>=0&&N<B){let T=N+1;for(let[O,S]of s)S.rowIndex>=T&&s.set(O,{...S,rowIndex:S.rowIndex+1});a.splice(T,0,[]),I=T,R=j,P=y(R)}else if(I===-1){for(let[T,O]of s)s.set(T,{...O,rowIndex:O.rowIndex+1});a=[[],...a],I=0,R=j,P=y(R)}let A=Math.min(E,P),L=Math.max(x,P+f);a[I].push({left:A,right:L},...k),s.set(u.id,{rowIndex:I,labelBox:{x:P,y:0,width:f,height:12},labelSide:R})}return{placements:s,rowCount:a.length}}function yx(e,t){let n=[];for(let r of e){let i=t.placedItems.get(r),o=t.entityRightEdges.get(r);if(o===void 0)continue;let s=i?lx(i,t.bandScale.bandwidth()):void 0;if(!i&&t.waves?.plan.index.has(r)){n.push({ref:r,endX:o,y:s,flowKey:`wave:${r}`,wave:r});continue}let a=t.itemFlowKey.get(r)??`marker:${r}`;if(!i&&t.markerIds.has(r)){n.push({ref:r,endX:o,y:s,marker:!0,flowKey:a});continue}n.push({ref:r,endX:o,y:s,flowKey:a})}return n}function xx(e){let t=new Map;for(let n of e){let r=t.get(n.flowKey);(!r||n.endX>r.endX)&&t.set(n.flowKey,n)}return Array.from(t.values())}function jB(e,t){return Math.abs(t-e.endX)<=12}function BS(e,t){return e.endX>=t||e.wave!==void 0?null:e.y!==void 0?{x:e.endX,y:e.y}:e.marker&&!jB(e,t)?{x:e.endX,marker:e.ref}:null}function YB(e){let t=null;for(let n of e)n.wave===void 0&&(!t||n.endX>t.endX)&&(t=n);return t}function VB(e,t){let n;for(let r of e)r.wave===void 0||r.endX-t<Ot||(!n||r.endX>n.endX)&&(n=r);return n}var Ex=class{constructor(t,n){M(this,"id");M(this,"milestone");this.id=t,this.milestone=n}place(t){let n=this.milestone,r=Se("milestone",n.properties,t.styleCtx),i=ie(n.properties,"date"),o=Be(n.properties,"after"),s=ve(i),a=t.timeline.markerRow.y,l=6,c=n.title??this.id,u=null,f=a,d=!1,p,m=!1,g,E;if(s){let _=t.scale.forwardWithinDomain(s);if(_===null)return null;u=_,d=!0;let k=t.markerRowPlacements.get(this.id);k&&(f=k.centerY);let N=yx(o,t),B=xx(N),$=YB(B),X=VB(B,_);E=X?.wave;let j=Math.max($&&$.endX>_?$.endX:_,X?.endX??_);j>_&&(m=!0,j-_>12&&(g=j))}else if(o.length>0){let _=yx(o,t),k=xx(_);k.sort(($,X)=>X.endX-$.endX);let N=k[0]?.endX??t.timeline.originX;u=N,d=!1;let B=[];for(let $=1;$<k.length;$++){let X=BS(k[$],N);X&&B.push(X)}B.length>0&&(p=B)}if(u===null)return null;let x={x:u,y:f};t.entityLeftEdges.set(this.id,x.x),t.entityRightEdges.set(this.id,x.x),t.entityMidpoints.set(this.id,x);let y={id:this.id,title:c,x:u,radius:l,fixed:d,slackArrows:p,isOverrun:m,style:r,cutTopY:t.chartTopY,cutBottomY:t.swimlaneBottomY};g!==void 0&&(y.slipX=g);let w=g??u;return t.waves&&(g!==void 0||!m)&&_S(t.waves,w)&&(y.onWaveBoundary=!0),E!==void 0&&s&&(y.overrunByWave=E,y.overrunDate=Ti(s)),s&&!t.scale.showsNonWorking&&!t.calendar.isWorkingDay(s)&&(y.hiddenDate=Ti(s)),y}};function ep(e,t){let n=[];for(let[r,i]of e){let o=new Ex(r,i).place(t);o&&n.push(o)}return n}function tp(e,t){let n=r=>{let i=t.get(r);if(!i)throw new Error(`layout: marker "${r}" has no marker-row placement`);return i};return e.map(r=>{let i=n(r.id),o={id:r.id,title:r.title,center:{x:r.x,y:i.centerY},radius:r.radius,fixed:r.fixed,slackArrows:r.slackArrows?.map(s=>"y"in s?{x:s.x,y:s.y}:{x:s.x,y:n(s.marker).centerY}),isOverrun:r.isOverrun,style:r.style,cutTopY:r.cutTopY,cutBottomY:r.cutBottomY,labelBox:i.labelBox,labelSide:i.labelSide};return r.slipX!==void 0&&(o.slip={x:r.slipX}),r.onWaveBoundary&&(o.onWaveBoundary=!0),r.overrunByWave!==void 0&&(o.overrunByWave=r.overrunByWave),r.overrunDate!==void 0&&(o.overrunDate=r.overrunDate),r.hiddenDate!==void 0&&(o.hiddenDate=r.hiddenDate),o})}function WS(e,t){let n=[];for(let[r,i]of e){if(ve(ie(i.properties,"date")))continue;let o=yx(Be(i.properties,"after"),t),s=xx(o);if(s.length===0)continue;s.sort((l,c)=>c.endX-l.endX);let a=s[0].endX;for(let l=1;l<s.length;l++){let c=s[l],u=BS(c,a);u&&"y"in u&&n.push({xStart:c.endX,xEnd:a,y:u.y,slackPredId:c.ref,milestoneId:r})}}return n}var Ul=16,KB=8,qB=6;function US(e,t,n,r,i,o){wx(e.content.anchors,t);let s=ep(e.content.milestones,t),a=ZB(e.content.anchors,s,t);if(a.length===0)return{anchors:[],milestones:[],laneShift:0};let l=Ul,c=Ls(a,l,Fi(a,l,o-Ul,se),se,Qd(s)),u=n+KB,f=u+c.rowCount*26+qB-r,d=i+f,p=Ns(c.placements,u);t.markerRowPlacements=p,t.chartTopY=r+f,t.swimlaneBottomY=d;let m=Cd(e.content.anchors,t,new Set),g=tp(s.map(E=>({...E,cutTopY:t.chartTopY,cutBottomY:d,slackArrows:E.slackArrows?.map(x=>"y"in x?{x:x.x,y:x.y+f}:x)})),p);return{anchors:m,milestones:g,laneShift:f}}function GS(e,t){let n=[...(e.anchors??[]).map(i=>XS(i,!1)),...(e.milestones??[]).map(i=>XS(i,!0))];return n.length===0?t:Fi(n,e.box.x+Ul,t-Ul,se)+Ul}function HS(e){let t=0;for(let n of[...e.anchors??[],...e.milestones??[]])t=Math.max(t,n.labelBox.x+n.labelBox.width);return t}function ZB(e,t,n){let r=Xl(e,new Map,n.scale),i=o=>({id:o.id,centerX:o.slipX??o.x,radius:o.radius,title:o.title,fontSize:10,bold:!0,...o.slipX!==void 0?{slipFromX:o.x}:{}});return r.push(...t.filter(o=>o.fixed).map(i)),r.push(...t.filter(o=>!o.fixed).map(i)),r}function XS(e,t){let n="slip"in e?e.slip?.x:void 0;return{id:e.id??"",centerX:n??e.center.x,radius:e.radius,title:e.title,fontSize:10,bold:t,...n!==void 0?{slipFromX:e.center.x}:{}}}function wx(e,t){for(let n of Xl(e,new Map,t.scale))t.entityLeftEdges.set(n.id,n.centerX),t.entityRightEdges.set(n.id,n.centerX)}var JB=.8,QB=1;function eW(e){let t=[];return jS(e,t),t}function jS(e,t){for(let n of e)if(n.kind==="item"){let r=tW(n);r>0&&n.box.width>0&&t.push({startX:n.box.x,endX:n.box.x+n.box.width,load:r})}else(n.kind==="parallel"||n.kind==="group")&&jS(n.children,t)}function tW(e){return e.capacity?e.capacity.value:e.size?1:0}function YS(e){if(e.capacityValue<=0||e.warnFraction===null&&e.overFraction===null)return null;let t=eW(e.children);if(t.length===0)return null;let n=new Set;for(let s of t)n.add(s.startX),n.add(s.endX);let r=Array.from(n).sort((s,a)=>s-a);if(r.length<2)return null;let i=[];for(let s=0;s<r.length-1;s++){let a=r[s],l=r[s+1],c=(a+l)/2,u=0;for(let f of t)f.startX<=c&&c<f.endX&&(u+=f.load);i.push({startX:a,endX:l,load:u,classification:nW(u,e.capacityValue,e.warnFraction,e.overFraction)})}let o=[];for(let s of i){let a=o[o.length-1];a&&a.classification===s.classification&&a.endX===s.startX?a.endX=s.endX:o.push({...s})}return{segments:o,capacityValue:e.capacityValue,warnFraction:e.warnFraction,overFraction:e.overFraction}}function nW(e,t,n,r){let i=e/t;return r!==null&&i>=r?"red":n!==null&&i>=n?"yellow":"green"}function VS(e,t){let n=t.get("swimlane"),r=zS(ie(e.properties,"utilization-warn-at"),n?ie(n.properties,"utilization-warn-at"):void 0,JB),i=zS(ie(e.properties,"utilization-over-at"),n?ie(n.properties,"utilization-over-at"):void 0,QB);return{warn:r,over:i}}function zS(e,t,n){let i=oW(e??t);return i.kind==="unset"?n:i.kind==="none"?null:i.value}var rW=/^\d+(?:\.\d+)?%$/,iW=/^\d+\.\d+$/;function oW(e){if(e===void 0)return{kind:"unset"};if(e==="none")return{kind:"none"};if(rW.test(e)){let t=parseFloat(e)/100;return Number.isFinite(t)&&t>0?{kind:"number",value:t}:{kind:"unset"}}if(iW.test(e)){let t=parseFloat(e);return Number.isFinite(t)&&t>0?{kind:"number",value:t}:{kind:"unset"}}return{kind:"unset"}}var np=class{constructor(t){M(this,"rows");M(this,"opts");M(this,"paintedRightX");this.opts=t,this.paintedRightX=t.laneLeftX,this.rows=[{y:t.originY,height:t.minRowHeight,rightEdge:t.laneLeftX,spillX:t.laneLeftX,contentOffsetY:0}]}placeItem(t){let n=this.rows[this.rows.length-1],i=t.desiredStart>=n.rightEdge&&t.desiredStart>=n.spillX&&!this.rowIntersectsCorridor(n,t)&&!this.rowCrossesOwnCorridor(n,t)?n:this.appendRow(Math.max(this.opts.minRowHeight,t.predictedHeight));return{rowIndex:this.rows.length-1,y:i.y+i.contentOffsetY}}placeBlock(){let t=this.rows[this.rows.length-1];if(t.rightEdge>this.opts.laneLeftX){let n=this.appendRow(this.opts.minRowHeight);return{rowIndex:this.rows.length-1,y:n.y}}return{rowIndex:this.rows.length-1,y:t.y}}commitItem(t){let n=this.rows[t.rowIndex];n.height=Math.max(n.height,n.contentOffsetY+Math.max(t.placed.box.height,t.rowHeight??0)),n.rightEdge=t.logicalEnd,n.spillX=t.spillReservation??this.opts.laneLeftX}commitBlock(t){let n=this.rows[t.rowIndex];n.height=Math.max(n.height,t.blockHeight),n.contentOffsetY=t.contentOffsetY??0,n.rightEdge=t.blockEnd,n.spillX=t.spillReservation??this.opts.laneLeftX,t.paintedRight!==void 0&&t.paintedRight>this.paintedRightX&&(this.paintedRightX=t.paintedRight)}usedHeight(){let t=this.rows[this.rows.length-1];return t.y+t.height-this.opts.originY}usedRightX(){let t=this.paintedRightX;for(let n of this.rows)n.rightEdge>t&&(t=n.rightEdge),n.spillX>t&&(t=n.spillX);return t}rowIntersectsCorridor(t,n){return this.opts.slackCorridors.some(r=>r.y>=t.y&&r.y<t.y+t.height&&n.desiredStart<r.xEnd&&n.desiredEnd>r.xStart&&r.slackPredId!==n.childId&&!n.pendingIds?.has(r.slackPredId))}rowCrossesOwnCorridor(t,n){return this.opts.slackCorridors.some(r=>r.slackPredId===n.childId&&r.xStart<n.desiredStart&&t.rightEdge>Math.max(r.xStart,this.opts.laneLeftX))}appendRow(t){let n=this.rows[this.rows.length-1],r={y:n.y+n.height,height:t,rightEdge:this.opts.laneLeftX,spillX:this.opts.laneLeftX,contentOffsetY:0};return this.rows.push(r),r}};function Tx(e){return Ve(e)?e.name?[e.name]:[]:_t(e).flatMap(Tx)}function rp(e,t,n,r){let i=n.bandScale.step(),o=t.leftX,s=new np({laneLeftX:o,originY:t.firstRowY,minRowHeight:i,slackCorridors:n.slackCorridors}),a=o,l=Number.POSITIVE_INFINITY,c=new Set(_t(e).flatMap(Tx)),u=[];for(let f of _t(e)){for(let $ of Tx(f))c.delete($);if(!Ve(f)){let $=Fl(f,a,n),{rowIndex:X,y:j}=s.placeBlock(),D=Wl($,j),I=r.sequenceOne(f,D,n);u.push(I);let R=I.box.x+I.box.width,P=Math.max(i,D.height),A=qS(I);s.commitBlock({rowIndex:X,placed:I,blockHeight:P,blockEnd:R,contentOffsetY:sW(I),spillReservation:A>R?A:null,paintedRight:Ml(I)}),l=Math.min(l,D.startX),a=Math.max(a,D.x);continue}let d=f,p=Fl(d,a,n),m=n.scale.startX(p),g=Yd(d,m,n),E=m+g.naturalWidth,x=i+g.barExtra,{rowIndex:y,y:w}=s.placeItem({childId:d.name??"",desiredStart:m,desiredEnd:E,predictedHeight:x,pendingIds:c}),_=Wl(p,w),k=Vd(d,_,n,g);u.push(k),l=Math.min(l,_.startX);let N=Math.max(m+g.naturalWidth,k.box.x+k.box.width),B=m+bs(n,m,g.durationDays);a=Math.max(a,B),s.commitItem({rowIndex:y,placed:k,logicalEnd:N,spillReservation:KS(k),rowHeight:x})}return l===Number.POSITIVE_INFINITY&&(l=n.scale.startX(o)),{children:u,timeCursorX:a,timeStartX:l,packer:s}}function sW(e){return e.kind==="item"?0:(e.children[0]?.box.y??e.box.y)-e.box.y}function KS(e){return e.textSpills||e.chipsOutside||e.dotSpills||e.iconSpills||e.footnoteSpills?Math.max(e.decorationsRightX,e.chipsOutside?e.chipsRightX:0)+6:null}function qS(e){let t=e.box.x+e.box.width;if(e.kind==="item")return Math.max(t,KS(e)??t);let n=xs(e);return Math.max(t,n>t?n+_k:t,...e.children.map(qS))}var _x=10;function aW(e,t,n){let r=ie(e.properties,"capacity"),i=Nr(r);if(i===null)return{capacity:null,badgeWidthPx:0};let o=el(i),s=tl(t.capacityIcon,n),a=nl(o,s,_x),l=rl(o,s,_x);return{capacity:{value:i,text:o,icon:s,...l!==void 0?{iconDxTerms:l}:{}},badgeWidthPx:a}}var lW=10,cW=38,uW=8;function fW(e,t){let n=ie(e.properties,"owner");if(!n)return;let r=t.teams.get(n);if(r)return{text:r.title??n,kind:"team"};let i=t.persons.get(n);return i?{text:i.title??n,kind:"person"}:{text:n,kind:"team"}}function dW(e,t){if(!e.name)return[];let n=[];for(let[r,i]of t.footnoteHosts.entries())if(i.includes(e.name)){let o=t.footnoteIndex.get(r);o!==void 0&&n.push(o)}return n.sort((r,i)=>r-i),n}function pW(e,t,n){for(let r of e.content)if(r.$type!=="DescriptionDirective")return n.scale.startX(Fl(r,t,n))}var Os=class{constructor(t,n){M(this,"input");M(this,"helpers");this.input=t,this.helpers=n}get id(){return this.input.lane.name??""}place(t,n){let{lane:r,bandIndex:i}=this.input,{helpers:o}=this,s=Se("swimlane",r.properties,n.styleCtx),a=t.x,l=n.bandScale.step(),c=n.currentFlowKey;n.currentFlowKey=`lane:${r.name??i}`;let{capacity:u,badgeWidthPx:f}=aW(r,s,n.symbols),d=dW(r,n),p=d.length>0?se(d.join(","),_x):0,m=0,g=fW(r,n),E=r.title??r.name??"",x=E?Ay(m,E,g?.text,f,p):null,y=x?.rightX??0,w=pW(r,a,n),_=!r.title||w===void 0||w>=y+uW,k=t.y+(_?lW:cW),N=rp(r,{leftX:a,firstRowY:k},n,o),{children:B}=N,$=k-t.y,X=Math.max(l+32,$+N.packer.usedHeight()+16),j=Math.max(N.packer.usedRightX(),y),D={x:m,y:t.y,width:0,height:X},I=u?(()=>{let{warn:R,over:P}=VS(r,n.styleCtx.defaults);return YS({children:B,capacityValue:u.value,warnFraction:R,overFraction:P})})():null;return n.currentFlowKey=c,{positioned:{id:r.name,title:E,box:D,bandIndex:i,children:B,nested:[],style:s,owner:g?.text,ownerKind:g?.kind,footnoteIndicators:d,capacity:u,tab:x,utilization:I},usedHeight:X,usedRightX:j}}};var hW=18,mW=14,gW=14,yW=16,xW=24;function vx(e,t,n,r,i){let o=n+hW,s=[],a=[],l=!0,c=t.footnoteIndex.size;for(let u of e){l||(o+=yW),l=!1;let f=u.content.roadmap?.title??u.sourcePath,d=o+mW,p=Ud(u,{theme:t.styleCtx.theme,cal:t.cal,schedule:t.schedule,timeline:t.timeline,scale:t.scale,calendar:t.calendar,axisColumns:t.axisColumns,bandScale:t.bandScale,waves:t.waves},{chartTopY:d,chartBottomY:d,swimlaneBottomY:d},{footnotes:qd(u.content.footnotes,c)});c+=u.content.footnotes.size,t.waves?Bd(t.waves,p.entityLeftEdges,p.entityRightEdges):wx(u.content.anchors,p);let m=[],g=d,E=0;for(let N of u.content.swimlanes.values()){p.nextParallelId=0,p.nextGroupId=0;let{positioned:B,usedHeight:$}=new Os({lane:N,bandIndex:E},r).place({x:p.timeline.originX,y:g},p);m.push(B),g+=$,E++}let x=US(u,p,o,d,g,i);if(x.laneShift!==0){for(let N of m)Rs(N,x.laneShift);g+=x.laneShift}let y=g,w=Math.max(t.bandScale.bandwidth(),y-o+gW),_={x:0,y:o,width:0,height:w},k={sourcePath:u.sourcePath,label:f,box:_,nestedSwimlanes:m,style:Se("swimlane",[],t.styleCtx)};x.anchors.length>0&&(k.anchors=x.anchors),x.milestones.length>0&&(k.milestones=x.milestones),s.push(k),a.push(p),o+=w}return{regions:s,contexts:a,endY:o}}function ZS(e,t,n){let r=Gl(e,t,n);e.box.width=r;for(let i of e.nestedSwimlanes)i.box.width=r}function Gl(e,t,n){let r=e.box.x,{chromeRightX:i}=_l(r,e.label,e.sourcePath),o=Wr(e.nestedSwimlanes),s=Math.max(i,o,HS(e),n)+xW;return Math.min(t-r,s-r)}function JS(e,t,n,r){if(!e)return null;let i=t.scale.forwardWithinDomain(e);if(i===null)return null;let o=t.timeline.box.y,s=t.timeline.tickPanelY,a=jn(n).nowLabel,l=se(a,gl),c=Math.max(qg,Math.ceil(l+2*hs)),u=t.timeline.originX-kt,f=c/2,d;i-f<u?d="flag-right":i+f>r?d="flag-left":d="center";let p=t.timeline.bottomTickPanelY,m=t.timeline.bottomTickPanelHeight??0,g=p!==void 0&&m>0?p+m:t.swimlaneBottomY;return{x:i,topY:s,bottomY:g,pillTopY:o,pillMode:d,label:a,pillWidth:c,style:Se("item",[],t.styleCtx)}}function ip(e){let t=e.trim().replace(/^#/,"");if(t.length===3&&(t=t.split("").map(n=>n+n).join("")),!/^[0-9a-fA-F]{6}$/.test(t))throw new Error(`Unsupported hex colour: ${e}`);return[Number.parseInt(t.slice(0,2),16),Number.parseInt(t.slice(2,4),16),Number.parseInt(t.slice(4,6),16)]}function QS(e){let[t,n,r]=ip(e).map(i=>{let o=i/255;return o<=.03928?o/12.92:((o+.055)/1.055)**2.4});return .2126*t+.7152*n+.0722*r}function op(e,t){let n=QS(e),r=QS(t);return(Math.max(n,r)+.05)/(Math.min(n,r)+.05)}var EW=4.5;function nb(e,t,n,r,i){if(!e.frozen||!e.solve)throw new Error("buildWaves: the wave barrier has not settled");let o=Fd(e.plan,e.solve,e.pass,e.origin,e.floors,Ot),s=o.every(y=>y.memberCount===0),a=t.timeline.waveStrip??{y:t.timeline.tickPanelY+t.timeline.tickPanelHeight,height:0};if(!t.timeline.waveStrip&&!s)throw new Error("buildWaves: the timeline has no wave strip");let l=t.timeline.box.x,c=l+t.timeline.box.width,u=a.y+ad,f=a.height-2*ad,d=0,p=o.map((y,w)=>{let _=e.plan.waves[w],k=_.title??y.id,N=y.memberCount===0,B=Wd(y.start,t),$=vS(y.start,y.end,t),X=N?void 0:d++,j=TW(y.id,t),D=_W(_.properties,X,t),I=Math.max(y.start,l),R=Math.min(y.end,c),P=Math.max(0,R-I),A=Rt(e.plan.floors[w]?.ref!==void 0?[e.plan.floors[w].ref]:[]),L=A!==void 0&&P>=cl+pt+Gn,T=L?pt+tn:0,O,S=!1;if(!N){if(j.length>0){let K=j.length*Xt;O=eb(k,y.id,w+1,P,K+T),S=O!==void 0}O??(O=eb(k,y.id,w+1,P,T))}let F=N?y.start:(I+R)/2,z=N?Ax(B):`${Ax(B)} \u2013 ${Ax($)}`,U=[k,z];N?U.push(n.waveNoItems):y.heldBy!==void 0&&U.push(`${n.waveHeldBy} ${y.heldBy}`);let ee,Y=o[w-1];if(!s&&Y!==void 0&&y.floorRef!==void 0&&y.start-Y.end>Ot){let K=Math.max(Y.end,l),q=Math.min(y.start,c),J=se(y.floorRef,Un);if(J+2*Gn<=q-K){let re=(K+q)/2,le=J+2*gs;ee={text:y.floorRef,x:re,halo:{x:re-le/2,y:u,width:le,height:f}}}}let ne={x:y.start,y:a.y,width:y.end-y.start,height:a.height},v=N?void 0:wW(ne,t.timeline.box),C,W,G;if(v){L&&A!==void 0&&(G={side:"after",isoDate:A,glyphTopLeft:{x:v.x+cl,y:a.y+(a.height-pt)/2},glyphSize:pt,spilled:!1});let K=v.x+v.width,q=S?j.length*Xt:0;if(q){let J=K-Gn+gs,re=K-Gn-q-gs;W={rightX:K-Gn,halo:{x:re,y:u,width:J-re,height:f}}}if(O){let J=rb(O.label),re=q?Math.min(F,K-Gn-q-J/2):F,le=G?Math.max(re,G.glyphTopLeft.x+pt+tn+J/2):re,ce=J+2*gs;C={x:le,halo:{x:le-ce/2,y:u,width:ce,height:f}}}}return{id:y.id,title:k,index:w,...X!==void 0?{visibleOrdinal:X}:{},startX:y.start,endX:y.end,startDate:B,endDate:$,memberCount:y.memberCount,empty:N,...y.heldBy!==void 0?{heldBy:y.heldBy}:{},...y.floorRef!==void 0?{floorRef:y.floorRef}:{},columnBox:{x:y.start,y:t.chartTopY,width:y.end-y.start,height:t.swimlaneBottomY-t.chartTopY},strip:{box:{x:y.start,y:a.y,width:y.end-y.start,height:a.height},...O?{label:O.label}:{},labelKind:O?.kind??"none",labelX:F,...v?{cell:v}:{},...C?{labelDraw:C}:{},...G?{inlineDatePin:G}:{},...W?{superscripts:W}:{},tooltip:U.join(" \xB7 "),footnotesShown:S,...ee?{gapLabel:ee}:{}},style:D,footnoteIndicators:j}}),m=s?[]:kW(p,e.origin,a.y,t),g=kx(r),E=i.map(y=>kx(y.nestedSwimlanes));return{waves:p,boundaries:m,crossings:tb(g,m),regionCrossings:E.map(y=>tb(y,m)),hasBackground:g.length+E.flat().length>0}}function wW(e,t){let n=Si,r={x:e.x,y:e.y+n,width:e.width,height:e.height-2*n},i={x:t.x+n,y:e.y,width:t.width-2*n,height:e.height},o=Math.max(r.x,i.x),s=Math.max(r.y,i.y),a=Math.min(r.x+r.width,i.x+i.width),l=Math.min(r.y+r.height,i.y+i.height);if(!(a<=o||l<=s))return{x:o,y:s,width:a-o,height:l-s}}function rb(e){return se(e,Un)*1.05}function eb(e,t,n,r,i){let o=a=>rb(a)+i+2*Gn<=r;if(o(e))return{kind:"title",label:e};if(t!==e&&o(t))return{kind:"id",label:t};for(let a=e.length-1;a>=3;a--){let l=e.slice(0,a).trimEnd();if(l.length<3)break;let c=`${l}\u2026`;if(o(c))return{kind:"ellipsis",label:c}}let s=`#${n}`;if(o(s))return{kind:"ordinal",label:s}}function TW(e,t){let n=[];for(let[r,i]of t.footnoteHosts.entries()){if(!i.includes(e))continue;let o=t.footnoteIndex.get(r);o!==void 0&&n.push(o)}return n.sort((r,i)=>r-i)}function _W(e,t,n){let r=n.styleCtx.theme,i=new Map,o=ie(e,"style"),s=o?n.styleCtx.styles.get(o):void 0;for(let d of s?.properties??[])i.set(Q(d),d.value);let a=d=>{let p=i.get(d);if(p===void 0)return;let m=qn(p,r);return m==="none"?void 0:m},l=a("bg"),c=t!==void 0&&t%2===1?r.wave.stripFillAlt:r.wave.stripFill,u=l?vW(c,l,El)??c:c,f=i.get("border");return{...l?{tint:l}:{},stripFill:c,text:a("text")??AW(r.wave,u),boundary:a("fg")??r.wave.boundary,boundaryDash:f==="dashed"?"4 2":f==="dotted"?"1 2":null}}var sp=/^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/;function vW(e,t,n){if(!sp.test(e)||!sp.test(t))return;let r=ip(e),i=ip(t);return`#${r.map((o,s)=>Math.round(o*(1-n)+i[s]*n).toString(16).padStart(2,"0")).join("")}`}function AW(e,t){let n=e.labelText;return!sp.test(n)||!sp.test(t)||op(n,t)>=EW?n:op(e.hatch,t)>=op(e.hatchOnDark,t)?e.hatch:e.hatchOnDark}function kW(e,t,n,r){let i=[];for(let a of e)a.empty||(i.push({x:a.startX,wave:a,opening:!0}),i.push({x:a.endX,wave:a,opening:!1}));i.sort((a,l)=>a.x-l.x);let o=[],s=0;for(;s<i.length;){let a=s;for(;a<i.length&&i[a].x-i[s].x<Ot;)a++;let l=i.slice(s,a);s=a;let c=l[0].x;if(Math.abs(c-t)<Ot)continue;let u=(l.find(f=>f.opening)??l[0]).wave;o.push({x:c,topY:n,bottomY:r.swimlaneBottomY,stroke:u.style.boundary,dash:u.style.boundaryDash})}return o}function kx(e){let t=[],n=r=>{for(let i of r)i.kind==="item"?i.waveRole==="background"&&t.push(i):n(i.children)};for(let r of e)n(r.children),t.push(...kx(r.nested));return t}function tb(e,t){let n=[];for(let r of e){let i=r.box.x,o=r.box.x+r.box.width;for(let s of t)i<s.x&&s.x<o&&n.push({x:s.x,topY:r.box.y,bottomY:r.box.y+r.box.height,stroke:s.stroke})}return n}function ib(e,t,n,r){if(!e.hasBackground)return;let i=t.timeline.originX,o=n.waveLegendBackground,s=ld+my,a=s+se(o,Un),l={kind:"background",text:o,swatch:{x:i,y:r+(od-cd)/2,width:ld,height:cd},hatch:Xd(t.styleCtx.theme.entities.item.bg),runs:[{text:o,x:i+s,y:r+gy}]};return{box:{x:i,y:r,width:a,height:od},entries:[l]}}function Ax(e){return e.toISOString().slice(0,10)}var ob=1e-6,Ps=class{constructor(t){M(this,"domain");M(this,"range");M(this,"pixelsPerDay");M(this,"calendar");M(this,"nonWorking");this.domain=t.domain,this.range=t.range,this.calendar=t.calendar,this.nonWorking=t.nonWorking??"hide";let n=Math.max(1,this.showsNonWorking?At(t.domain[0],t.domain[1]):this.indexOf(t.domain[1]));this.pixelsPerDay=(t.range[1]-t.range[0])/n}get showsNonWorking(){return this.nonWorking==="show"&&this.calendar?.hasNonWorkingDays===!0}indexOf(t){return this.calendar?this.calendar.workingIndexOf(this.domain[0],t):At(this.domain[0],t)}dayAt(t){let n=(t-this.range[0])/this.pixelsPerDay;return{days:n,day:Math.floor(n+ob)}}forward(t){return this.showsNonWorking?this.range[0]+At(this.domain[0],t)*this.pixelsPerDay:this.range[0]+this.indexOf(t)*this.pixelsPerDay}forwardWithinDomain(t){return t<this.domain[0]||t>this.domain[1]?null:this.forward(t)}invert(t){let n=Math.round((t-this.range[0])/this.pixelsPerDay);return this.showsNonWorking?Xe(this.domain[0],n):this.calendar?this.calendar.dateAtWorkingIndex(this.domain[0],n):Xe(this.domain[0],n)}indexAtX(t){let{days:n,day:r}=this.dayAt(t);if(!this.showsNonWorking||!this.calendar)return n;let i=Xe(this.domain[0],r),o=this.calendar.workingIndexOf(this.domain[0],i);return this.calendar.isWorkingDay(i)?o+Math.max(0,n-r):o}startX(t){if(!this.showsNonWorking||!this.calendar)return t;let n=Xe(this.domain[0],this.dayAt(t).day);if(this.calendar.isWorkingDay(n))return t;let r=this.calendar.workingIndexOf(this.domain[0],n);return this.forward(this.calendar.dateAtWorkingIndex(this.domain[0],r))}advanceX(t,n){if(!this.showsNonWorking||!this.calendar)return t+n*this.pixelsPerDay;let r=this.startX(t);if(n<=0)return r;let i=this.indexAtX(r)+n,o=Math.ceil(i-ob)-1,s=i-o,a=this.calendar.dateAtWorkingIndex(this.domain[0],o);return this.forward(a)+s*this.pixelsPerDay}get originX(){return this.range[0]}get widthPx(){return this.range[1]-this.range[0]}};var ap=6,RW=4,sb=8,cp=class{constructor(t){M(this,"input");this.input=t}measure(){let{title:t,author:n,style:r,logo:i}=this.input,o=r.headerPosition==="beside",s=SW(t,n,i),a=i?Math.max(ey,i.height+20):ey;return{position:r.headerPosition,titleLines:s.titleLines,authorLines:s.authorLines,cardWidth:s.cardWidth,cardHeight:s.cardHeight,textCardHeight:s.textCardHeight,logoSlot:s.logoSlot,...i?{logo:i}:{},chartLeftX:o?s.boxWidth:0,aboveHeight:a,chartTopY:o?sb:a+sb,minRowsBottomY:o?s.cardHeight+RW:0}}place(t,n){let{title:r,author:i,style:o}=this.input,s=t.position==="beside",a=s?{x:0,y:0,width:t.chartLeftX,height:n.chartBottomY}:{x:0,y:0,width:n.canvasRightX,height:t.aboveHeight},l=s?{x:ap,y:n.rowsBottomY-t.cardHeight,width:t.cardWidth,height:t.cardHeight}:{x:0,y:0,width:n.canvasRightX,height:t.aboveHeight},c,u;return t.logo&&(c={box:{x:a.x+l.x+16,y:a.y+l.y+(l.height-t.logo.height)/2,width:t.logo.width,height:t.logo.height},assetRef:t.logo.assetRef,intrinsic:t.logo.intrinsic},u={x:t.logoSlot,y:Math.max(0,(l.height-t.textCardHeight)/2)}),{box:a,position:o.headerPosition,title:r,author:i,titleLines:t.titleLines,authorLines:t.authorLines,cardBox:l,logo:c,...u?{textInset:u}:{},style:o}}};function SW(e,t,n){let r=Qg-32,i=wi(e,r,16),o=wi(t??"",r,11),s=0;for(let E of i)s=Math.max(s,se(E,16));for(let E of o)s=Math.max(s,se(E,11));let a=i.length>0||o.length>0,l=n?n.width+(a?12:0):0,c=s+32,u=Math.max(gk-ap,Math.min(Qg-ap,c)+l),f=i.length>0?(i.length-1)*20:0,d=o.length>0?18+(o.length-1)*14:0,p=26+f+d+14,m=n?Math.max(p,n.height+20):p,g=u+ap;return{titleLines:i,authorLines:o,cardWidth:u,cardHeight:m,textCardHeight:p,logoSlot:l,boxWidth:g}}function up(e){for(let t of e.waves?.values()??[])if(t.memberCount>0)return!0;return!1}function Hl(e,t,n={}){let r=Yf(e,t),{config:i,working:o}=r,s=cs(t.content.sizes,i),a=ie(e.roadmapDecl?.properties??[],"start"),l=ve(a)??bW(n.today??new Date),c=R=>o.workingIndexOf(l,R),u=R=>o.dateAtWorkingIndex(l,R),f=(R,P)=>jf(o,l,R,P),d=0,p=R=>{d=Math.max(d,R)},m=new Map,g=new Map,E=new Map,x=new Map,y=new WeakMap,w=new Map,_=new WeakMap,k=new Map;for(let[R,P]of t.content.anchors){let A=ve(ie(P.properties,"date"));if(A){let L=c(A);g.set(R,L),k.set(R,A),p(L)}}let N=()=>({itemEnd:m,anchorEnd:g,milestoneEnd:E,sizes:s,itemResults:x,inByNode:!0}),B=(R,P,A)=>{let L=S=>{if("date"in S)return c(S.date);let F=S.ref;return R.itemEnd.has(F)?R.itemEnd.get(F):R.anchorEnd.has(F)?R.anchorEnd.get(F):R.milestoneEnd.has(F)?R.milestoneEnd.get(F):0},T=(S,F)=>{let z=F;for(let U of _t(S))z=O(U,z),A(z);return z},O=(S,F)=>{if(Ve(S)){let z=XA(S.properties,R.sizes,i),{after:U}=Xr(S.properties),ee=U.length>0?Math.max(F,...U.map(L)):F;P&&(ee=P.apply(S,ee));let Y=ee+z,ne={start:u(ee),end:f(ee,Y),days:z};return R.inByNode&&y.set(S,ne),S.name&&(R.itemEnd.set(S.name,Y),R.itemResults?.set(S.name,ne)),P?.accumulate(S,Y),Y}if(et(S)){let{after:z}=Xr(S.properties),U=z.length>0?Math.max(F,...z.map(L)):F;P&&(U=P.apply(S,U));let ee=U;for(let Y of _t(S))ee=Math.max(ee,O(Y,U));return S.name&&R.itemEnd.set(S.name,ee),ee}if($e(S)){let{after:z}=Xr(S.properties),U=z.length>0?Math.max(F,...z.map(L)):F;P&&(U=P.apply(S,U));let ee=T(S,U);return S.name&&R.itemEnd.set(S.name,ee),ee}return F};return{walkLane:T,resolveAfterDay:L}},$=(R,P)=>{let A=ve(ie(R.properties,"date"));if(A)return c(A);let{after:L}=Xr(R.properties);return L.length>0?Math.max(0,...L.map(P)):void 0},X=(R,P)=>{let A=new Map,L=new Map,T=new Map;for(let[F,z]of R.anchors){let U=ve(ie(z.properties,"date"));if(U){let ee=c(U);L.set(F,ee),p(ee)}}let{walkLane:O,resolveAfterDay:S}=B({itemEnd:A,anchorEnd:L,milestoneEnd:T,sizes:cs(R.sizes,i),inByNode:P},void 0,p);for(let F of R.swimlanes.values())O(F,0);for(let[F,z]of R.milestones){let U=$(z,S);U!==void 0&&(T.set(F,U),p(U))}for(let F of R.isolatedRegions)X(F.content,!1)},j=n.plan!==void 0?n.plan??void 0:$i(t),D;if(j){let R=j.waves.map(S=>S.name),P=gS(j,l,o),A,L=0,T=S=>{L=Math.max(L,S)},O=Md(R.length,0,P,(S,F)=>{let z=R.map((Y,ne)=>[Y,F[ne]]);m=new Map(z),x=new Map,y=new WeakMap,L=0;let U=new Mi(j,S),{walkLane:ee}=B(N(),U,T);for(let Y of t.content.swimlanes.values())ee(Y,0);for(let Y of t.content.isolatedRegions){let ne=B({itemEnd:new Map(z),anchorEnd:new Map,milestoneEnd:new Map,sizes:cs(Y.content.sizes,i),inByNode:!0},U,T);for(let v of Y.content.swimlanes.values())ne.walkLane(v,0)}return A=U,U});p(Math.max(L,...O.S,...O.E.slice(-1))),D=new Map;for(let S of Fd(j,O,A,0,P))D.set(S.id,{index:S.index,start:u(S.start),end:f(S.start,S.end),memberCount:S.memberCount,...S.heldBy!==void 0?{heldBy:S.heldBy}:{},...S.floorRef!==void 0?{floorRef:S.floorRef}:{}})}else{let{walkLane:R}=B(N(),void 0,p);for(let P of t.content.swimlanes.values())R(P,0)}let{resolveAfterDay:I}=B(N(),void 0,p);for(let[R,P]of t.content.milestones){let A=$(P,I);if(A===void 0)continue;let L=ve(ie(P.properties,"date"))??u(A);E.set(R,A),w.set(R,L),_.set(P,L),p(A)}if(!j)for(let R of t.content.isolatedRegions)X(R.content,!0);return{startDate:l,calendar:r,items:x,byNode:y,milestones:w,milestoneByNode:_,anchors:k,...D?{waves:D}:{},...j?{plan:j}:{},resolved:t,extent:{contentEndDay:d}}}function bW(e){return new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()))}var NW=8;function cb(e,t,n,r,i){let{locale:o,styleCtx:s}=r,{calendar:a,preset:l,startDate:c,timelineDays:u,nonWorking:f}=i,d=i.naturalEndDate,p=up(i.schedule)?i.schedule.plan:void 0,m=r.roadmapStyle,g=fl[m.headerHeight]??fl.md,E=g>0&&m.timelinePosition!=="bottom",x=g>0&&(m.timelinePosition==="bottom"||m.timelinePosition==="both"),y=e.roadmapDecl?.title??e.roadmapDecl?.name??"",w=ie(e.roadmapDecl?.properties??[],"author"),_=new cp({title:y,author:w,style:m,logo:Ck(e,n.logo)}),k=_.measure(),{chartLeftX:N}=k,B=sk({naturalPixelsPerDay:l.pixelsPerUnit/a.daysPerUnit(l.unit),dayCount:u,chromeWidth:N+2*kt,maxWidth:n.width}),$=u*B,X=N+kt,j=$,I=n.today!==void 0&&n.today>=c&&n.today<=d?Ut:0,R=E?g:0,P=p?ly:0,A=new Ps({domain:[c,d],range:[X,X+$],calendar:a,nonWorking:f}),L=Jd(rx(A,[],l.unit,!1),ix(A)),T=t.content.anchors.size+t.content.milestones.size>0||L.length>0,O=X+j+kt,S=Xl(t.content.anchors,t.content.milestones,A),F=[...S,...L],z=Ls(F,N,Fi(F,N,O,se),se),U=T?Math.max(1,z.rowCount):0,ee=U*26,Y=I+R+P+ee,ne=Y+NW,v=Nx(k,Y),C=v+I,W=C+R,G=W+P,K=Pd(A,l,a,o),q={box:{x:X,y:v,width:$,height:0},ticks:K,pixelsPerDay:B,originX:X,startDate:c,endDate:d,labelStyle:Se("roadmap",[],s),pillRowHeight:I,tickPanelY:C,tickPanelHeight:R,markerRow:{y:G+13,height:ee,collisionY:G-8},minorGrid:m.minorGrid,...p?{waveStrip:{y:W,height:P}}:{}};return Lx(q,A,l.unit),{header:k,headerNode:_,axis:{originX:X,ppd:B,naturalWidth:$,scale:A},naturalChartRightX:O,bands:{timelineY:v,pillRowHeight:I,tickPanelY:C,tickPanelHeight:R,waveStripY:W,markerRowY:G,estimatedMarkerRows:U,rowsHeight:Y,chartTopY:v+ne,bottomTickPanelHeight:x?g:0},timeline:q,markers:{datePinned:S,placements:Ns(z.placements,G),hasEntities:T}}}function Nx(e,t){return Math.max(e.chartTopY,e.minRowsBottomY-t)}function Lx(e,t,n){let r=rx(t,e.ticks,n,e.minorGrid);r&&(e.nonWorkingDisplay=t.showsNonWorking?"show":"hide",e.nonWorking=r);let i=ix(t);i&&(e.workingExceptions=i)}var ub=8,Ox=class{constructor(t){M(this,"rightX");M(this,"frozen",!1);this.rightX=t}grow(t){if(this.frozen)throw new Error("layout: the canvas grew after it was frozen");return t<=this.rightX?!1:(this.rightX=t,!0)}freeze(){this.frozen=!0}get provisional(){return this.rightX}get final(){if(!this.frozen)throw new Error("layout: the canvas was read before it was final");return this.rightX}},LW;var fp=class{constructor(t,n,r,i,o,s,a){M(this,"file");M(this,"resolved");M(this,"options");M(this,"scope");M(this,"window");M(this,"measured");M(this,"chart");M(this,"canvas");M(this,"chartY");M(this,"draft",{});M(this,"scaleIsFinal",!1);M(this,"band");M(this,"rowsTop");M(this,"rowsBottom");M(this,"why");this.file=t,this.resolved=n,this.options=r,this.scope=i,this.window=o,this.measured=s,this.chart=a,this.canvas=new Ox(s.naturalChartRightX);let l=a.ctx;this.chartY={get top(){return l.chartTopY},set top(c){l.chartTopY=c},get swimlaneBottom(){return l.swimlaneBottomY},set swimlaneBottom(c){l.swimlaneBottomY=c},get bottom(){return l.chartBottomY},set bottom(c){l.chartBottomY=c}}}get ctx(){return this.chart.ctx}get scale(){return this.chart.ctx.scale}finalScale(){if(!this.scaleIsFinal)throw new Error("layout: the final scale was read before the timeline extension");return this.chart.ctx.scale}extendScale(t){if(this.scaleIsFinal)throw new Error("layout: the scale was extended after it was final");this.chart.ctx.scale=t}settleScale(){this.scaleIsFinal=!0}markerBand(){if(!this.band)throw new Error("layout: the marker band was read before the final pack");return this.band}setMarkerBand(t){if(this.band)throw new Error("layout: the marker band was packed twice");this.band=t,this.chart.ctx.markerRowPlacements=t.placements}headerRowsTop(){return this.rowsTop||(this.rowsTop=OW(this.measured,this.options.today,this.finalScale())),this.rowsTop}headerRowsBottom(){if(this.rowsBottom===void 0)throw new Error("layout: the header rows bottom was read before the rows grew");return this.rowsBottom}setHeaderRowsBottom(t){if(this.rowsBottom!==void 0)throw new Error("layout: the header rows grew twice");this.rowsBottom=t}explain(t){this.why=t}report(t,n){LW?.(t,n,this.why),this.why=void 0}};function OW(e,t,n){let{bands:r,header:i}=e;if(!(r.pillRowHeight===0&&t!==void 0&&n.forwardWithinDomain(t)!==null))return{timelineY:r.timelineY,pillRowHeight:r.pillRowHeight,tickPanelY:r.tickPanelY,markerRowY:r.markerRowY,shift:0};let s=Nx(i,Ut+r.rowsHeight),a=s+Ut,l=a-r.tickPanelY;return{timelineY:s,pillRowHeight:Ut,tickPanelY:a,markerRowY:r.markerRowY+l,shift:l}}function PW(e){return e.canvas.grow(e.chart.maxRightX+kt)}function CW(e){let{swimlanes:t,includes:n,milestones:r}=e.chart,{calendar:i,preset:o,startDate:s,spanDays:a,nonWorking:l}=e.window,{originX:c,ppd:u}=e.measured.axis,f=e.measured.timeline,d=Wr(t);for(let N of n)d=Math.max(d,Wr(N.nestedSwimlanes));let p=0;for(let N of e.measured.markers.datePinned)p=Math.max(p,N.centerX+N.radius);let m=0;for(let N of r)N.fixed?p=Math.max(p,N.x+N.radius):m=Math.max(m,N.x+N.radius);for(let N of n){for(let B of N.anchors??[])p=Math.max(p,B.center.x+B.radius);for(let B of N.milestones??[])B.fixed?p=Math.max(p,B.center.x+B.radius):m=Math.max(m,B.center.x+B.radius)}let g=Math.max(d,p,m),E=i.daysPerUnit(o.unit),x=e.scale.showsNonWorking?e.scale.indexAtX(g):(g-c)/u,y=x>0?Di(s,x,o.unit,E,i):0,w=Ss(t);for(let N of n)w=Math.max(w,Ss(N.nestedSwimlanes));let _=new Is(e.window,e.scale);if(w>0){let N=Math.max(a,y);_.isPast(w,N)&&(y=Math.max(y,Math.min(_.boundaryAtOrAfterX(w),_.captionLimit(N))))}let k=!1;if(y>a){let N={bar:d,caption:w,datedMarker:p,afterMilestone:m};e.explain(Object.keys(N).filter(j=>N[j]>0&&_.isPast(N[j],a)));let B=i.dateAtWorkingIndex(s,y),$=e.scale.showsNonWorking?At(s,B)*u:y*u,X=new Ps({domain:[s,B],range:[c,c+$],calendar:i,nonWorking:l});e.extendScale(X),f.endDate=B,f.box.width=$,f.ticks=Pd(X,o,i,e.scope.locale),Lx(f,X,o.unit),e.canvas.grow(c+$+kt),k=!0}return e.settleScale(),k}function $W(e){let t=e.measured.timeline,n=new Map;for(let l of e.chart.milestones)l.slipX!==void 0&&n.set(l.id,l.slipX);let r=e.measured.markers.datePinned.map(l=>{let c=l.isMilestone?n.get(l.id):void 0;return{id:l.id,centerX:c??l.centerX,radius:l.radius,title:l.title,fontSize:l.fontSize,bold:l.bold,...c!==void 0?{slipFromX:l.centerX}:{}}});for(let l of e.chart.milestones)l.fixed||r.push({id:l.id,centerX:l.x,radius:l.radius,title:l.title,fontSize:10,bold:!0});let i=Jd(t.nonWorking,t.workingExceptions);r.push(...i),e.draft.markerEntries={all:r,calendarCount:i.length};let o=Fi(r,e.measured.header.chartLeftX,e.canvas.provisional,se),s=fb(e,e.draft.markerEntries);for(let l of e.chart.includes)o=Math.max(o,GS(l,e.canvas.provisional)),o=Math.max(o,l.box.x+Gl(l,Number.POSITIVE_INFINITY,s));let a=e.canvas.grow(o);return e.canvas.freeze(),a}function fb(e,t){let{swimlanes:n,includes:r}=e.chart,i=Math.max(Wr(n),Ss(n));for(let s of r){i=Math.max(i,Wr(s.nestedSwimlanes),Ss(s.nestedSwimlanes));for(let a of[...s.anchors??[],...s.milestones??[]])i=Math.max(i,a.labelBox.x+a.labelBox.width)}if(t){let s=t.all.slice(0,t.all.length-t.calendarCount);for(let a of s){let l=se(a.title,a.fontSize)*(a.bold?1.05:1);i=Math.max(i,a.centerX+a.radius+6+l)}}let o=e.options.today?e.scale.forwardWithinDomain(e.options.today):null;return o!==null&&(i=Math.max(i,o)),i}function DW(e){let t=e.canvas.final,n=e.measured.naturalChartRightX,r=fb(e,Pt(e.draft.markerEntries,"the marker entries")),i=e.chart.swimlanes.length>0&&t!==n;for(let o of e.chart.swimlanes)o.box.width=t;for(let o of e.chart.includes)Gl(o,t,r)!==Gl(o,n,r)&&(i=!0),ZS(o,t,r);return i}function MW(e){let t=Pt(e.draft.markerEntries,"the marker entries"),n=Ls(t.all,e.measured.header.chartLeftX,e.canvas.final,se,Qd(e.chart.milestones)),r=Ns(n.placements,e.headerRowsTop().markerRowY),i=e.measured.markers.hasEntities||t.calendarCount>0?Math.max(1,n.rowCount):0;e.setMarkerBand({rowCount:i,placements:r});let o=!1;for(let[s,a]of e.measured.markers.placements){let l=r.get(s);(!l||!ZW(a,l))&&(o=!0)}return o}function FW(e){let t=e.markerBand(),n=e.ctx,r=e.measured.timeline,i=tp(e.chart.milestones,t.placements),o=i.some(s=>n.entityMidpoints.get(s.id??"")?.y!==s.center.y);for(let s of r.nonWorking??[]){if(s.label===void 0)continue;let a=t.placements.get(mx(s));a&&(s.labelBox=a.labelBox,s.labelSide=a.labelSide)}for(let s of r.workingExceptions??[]){let a=t.placements.get(gx(s));a&&(s.labelBox=a.labelBox,s.labelSide=a.labelSide)}for(let s of e.measured.markers.datePinned){let a=t.placements.get(s.id);a&&n.entityMidpoints.set(s.id,{x:s.centerX,y:a.centerY})}for(let s of i)s.fixed||n.entityMidpoints.set(s.id??"",{x:s.center.x,y:s.center.y});return e.draft.milestones=i,o}function BW(e){let t=e.markerBand(),n=e.headerRowsTop(),r=e.measured.bands,i=r.estimatedMarkerRows,s=e.ctx.timeline,a=!1;n.pillRowHeight!==r.pillRowHeight&&(s.box.y=n.timelineY,s.pillRowHeight=n.pillRowHeight,s.tickPanelY=n.tickPanelY,s.waveStrip&&(s.waveStrip.y+=n.shift),s.markerRow.y+=n.shift,s.markerRow.collisionY+=n.shift,a=!0);let l=n.shift;t.rowCount>i&&(l+=(t.rowCount-i)*26,s.markerRow.height=t.rowCount*26,a=!0),e.setHeaderRowsBottom(n.markerRowY+s.markerRow.height);let c=r.chartTopY+l;e.chartY.top=c,e.chartY.bottom+=c,e.chartY.swimlaneBottom+=c,s.box.height=e.chartY.bottom-s.box.y;for(let d of e.chart.swimlanes)Rs(d,c);for(let d of e.chart.includes)lS(d,c);let u=e.chart.milestones,f=Pt(e.draft.milestones,"the milestones");for(let d=0;d<f.length;d++)cS(f[d],u[d],c);return a}function WW(e){let t=e.measured.bands.bottomTickPanelHeight;return t<=0?!1:(e.ctx.timeline.bottomTickPanelY=e.chartY.bottom+ub,e.ctx.timeline.bottomTickPanelHeight=t,e.chartY.bottom+=ub+t,!0)}function XW(e){e.finalScale();let t=e.ctx;if(!t.waves)return!1;let n=nb(t.waves,t,jn(e.scope.locale),e.chart.swimlanes,e.chart.includes);return n.regionCrossings.forEach((r,i)=>{r.length>0&&(e.chart.includes[i].waveCrossings=r)}),e.draft.waves=n,!0}function UW(e){e.finalScale(),e.markerBand();let t=new Set(Pt(e.draft.milestones,"the milestones").map(r=>r.center.x)),n=Cd(e.resolved.content.anchors,e.ctx,t);return e.draft.anchors=n,n.length>0}function GW(e){let t=px(e.chart.laneEntries),n=hx(t,e.chart.swimlanes,e.chart.includes,e.ctx);e.draft.edges=n;let r=0;return e.resolved.content.isolatedRegions.forEach((i,o)=>{let s=e.chart.includes[o],a=e.chart.regionContexts[o];if(!s||!a)return;let l=hx(px([...i.content.swimlanes.values()]),s.nestedSwimlanes,[],a);l.length>0&&(s.edges=l),r+=l.length}),n.length+r>0}function HW(e){e.finalScale();let t=JS(e.options.today,e.ctx,e.scope.locale,e.canvas.final);return e.draft.nowline=t,t!==null}function zW(e){let t=e.draft.waves;if(!t)return!1;let n=ib(t,e.ctx,jn(e.scope.locale),e.chartY.bottom+sd);return n?(e.chartY.bottom+=sd+n.box.height,e.draft.waveLegend=n,!0):!1}function jW(e){let t=e.resolved.content.isolatedRegions.flatMap((r,i)=>{let o=e.chart.regionContexts[i],s=e.chart.includes[i];return o&&s?[{title:s.label,footnotes:r.content.footnotes,ctx:o}]:[]}),n=$S(e.resolved.content.footnotes,e.ctx,e.chartY.bottom,e.canvas.final,t);return e.draft.footnotes=n,n.entries.length>0}function YW(e){let{header:t,headerNode:n}=e.measured;return e.draft.header=n.place(t,{rowsBottomY:e.headerRowsBottom(),chartBottomY:e.chartY.bottom,canvasRightX:e.canvas.final}),t.position==="beside"}function VW(e){let t=Pt(e.draft.footnotes,"the footnote panel"),n=e.canvas.final,r=t.entries.length>0?t.box.y+t.box.height:e.chartY.bottom,i={x:n-kt-oy,y:r+kt,width:oy,height:xk};return e.draft.attributionBox=i,e.draft.height=i.y+i.height+kt,!0}var KW=[{name:"growCanvasForSpill",reads:["placement"],writes:["canvas"],run:PW},{name:"extendTimeline",reads:["placement","window","scale"],writes:["scale","timeline","calendarRuns","canvas"],run:CW},{name:"growCanvasForMarkerLabels",reads:["placement","calendarRuns","canvas","scale"],writes:["markerEntries","canvas"],run:$W},{name:"fitWidths",reads:["placement","canvas","markerEntries","scale"],writes:["laneWidths"],run:DW},{name:"packMarkers",reads:["placement","canvas","markerEntries","headerBands","scale"],writes:["markerBand"],run:MW},{name:"placeMarkers",reads:["placement","markerBand","calendarRuns"],writes:["milestones","calendarLabels","markerMidpoints"],run:FW},{name:"growHeaderRows",reads:["placement","markerBand","headerBands","scale","milestones","chartTop","laneBottom"],writes:["chartTop","rowsBottom","laneBottom","chartBottom","laneY","milestones","timeline"],run:BW},{name:"bottomTickPanel",reads:["headerBands","chartBottom"],writes:["chartBottom","timeline"],run:WW},{name:"waves",reads:["scale","chartTop","laneBottom","timeline","laneY"],writes:["waves","timeline"],run:XW},{name:"anchors",reads:["scale","markerBand","chartTop","laneBottom","milestones"],writes:["anchors","markerMidpoints"],run:UW},{name:"dependencyEdges",reads:["laneY","markerMidpoints"],writes:["edges"],run:GW},{name:"nowline",reads:["scale","canvas","laneBottom","timeline"],writes:["nowline"],run:HW},{name:"waveLegend",reads:["waves","canvas","chartBottom"],writes:["legend","chartBottom"],run:zW},{name:"footnotePanel",reads:["chartBottom","canvas"],writes:["footnotes"],run:jW},{name:"header",reads:["chartBottom","canvas","rowsBottom"],writes:["header"],run:YW},{name:"attribution",reads:["footnotes","chartBottom","canvas"],writes:["attribution"],run:VW}];function db(e,t=KW){for(let n of t)e.report(n.name,n.run(e));return qW(e)}function qW(e){let{draft:t}=e,{themeName:n,theme:r}=e.scope,{swimlanes:i,includes:o,waveSolve:s}=e.chart,a=e.canvas.final,l=e.measured.header.chartLeftX,c=t.waves,u=t.waveLegend;return{width:a,height:Pt(t.height,"the canvas height"),theme:n,palette:r,backgroundColor:r.surface.page,header:{...Pt(t.header,"the header"),attributionBox:Pt(t.attributionBox,"the attribution box")},timeline:e.measured.timeline,nowline:Pt(t.nowline,"the now-line"),swimlanes:i,anchors:Pt(t.anchors,"the anchors"),milestones:Pt(t.milestones,"the milestones"),edges:Pt(t.edges,"the edges"),footnotes:Pt(t.footnotes,"the footnote panel"),includes:o,chartBox:{x:l,y:e.chartY.top,width:a-l,height:e.chartY.bottom-e.chartY.top},...s?{waveSolve:s}:{},...c?{waves:c.waves}:{},...c&&c.boundaries.length>0?{waveBoundaries:c.boundaries}:{},...c&&c.crossings.length>0?{waveCrossings:c.crossings}:{},...u?{waveLegend:u}:{}}}function Pt(e,t){if(e===void 0)throw new Error(`layout: ${t} was read before its step ran`);return e}function ZW(e,t){return e.rowIndex===t.rowIndex&&e.centerY===t.centerY&&e.labelSide===t.labelSide&&e.labelBox.x===t.labelBox.x&&e.labelBox.y===t.labelBox.y&&e.labelBox.width===t.labelBox.width&&e.labelBox.height===t.labelBox.height}var Cs=class extends Map{constructor(t,n=eX){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),t!=null)for(let[r,i]of t)this.set(r,i)}get(t){return super.get(pb(this,t))}has(t){return super.has(pb(this,t))}set(t,n){return super.set(JW(this,t),n)}delete(t){return super.delete(QW(this,t))}};function pb({_intern:e,_key:t},n){let r=t(n);return e.has(r)?e.get(r):n}function JW({_intern:e,_key:t},n){let r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function QW({_intern:e,_key:t},n){let r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function eX(e){return e!==null&&typeof e=="object"?e.valueOf():e}function dp(e,t,n){e=+e,t=+t,n=(i=arguments.length)<2?(t=e,e=0,1):i<3?1:+n;for(var r=-1,i=Math.max(0,Math.ceil((t-e)/n))|0,o=new Array(i);++r<i;)o[r]=e+r*n;return o}function pp(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}var hb=Symbol("implicit");function hp(){var e=new Cs,t=[],n=[],r=hb;function i(o){let s=e.get(o);if(s===void 0){if(r!==hb)return r;e.set(o,s=t.push(o)-1)}return n[s%n.length]}return i.domain=function(o){if(!arguments.length)return t.slice();t=[],e=new Cs;for(let s of o)e.has(s)||e.set(s,t.push(s)-1);return i},i.range=function(o){return arguments.length?(n=Array.from(o),i):n.slice()},i.unknown=function(o){return arguments.length?(r=o,i):r},i.copy=function(){return hp(t,n).unknown(r)},pp.apply(i,arguments),i}function zl(){var e=hp().unknown(void 0),t=e.domain,n=e.range,r=0,i=1,o,s,a=!1,l=0,c=0,u=.5;delete e.unknown;function f(){var d=t().length,p=i<r,m=p?i:r,g=p?r:i;o=(g-m)/Math.max(1,d-l+c*2),a&&(o=Math.floor(o)),m+=(g-m-o*(d-l))*u,s=o*(1-l),a&&(m=Math.round(m),s=Math.round(s));var E=dp(d).map(function(x){return m+o*x});return n(p?E.reverse():E)}return e.domain=function(d){return arguments.length?(t(d),f()):t()},e.range=function(d){return arguments.length?([r,i]=d,r=+r,i=+i,f()):[r,i]},e.rangeRound=function(d){return[r,i]=d,r=+r,i=+i,a=!0,f()},e.bandwidth=function(){return s},e.step=function(){return o},e.round=function(d){return arguments.length?(a=!!d,f()):a},e.padding=function(d){return arguments.length?(l=Math.min(1,c=+d),f()):l},e.paddingInner=function(d){return arguments.length?(l=Math.min(1,d),f()):l},e.paddingOuter=function(d){return arguments.length?(c=+d,f()):c},e.align=function(d){return arguments.length?(u=Math.max(0,Math.min(1,d)),f()):u},e.copy=function(){return zl(t(),[r,i]).round(a).paddingInner(l).paddingOuter(c).align(u)},pp.apply(f(),arguments)}var Px=class e{constructor(t,n,r){M(this,"bandwidthPx");M(this,"stepPx");M(this,"d3");this.bandwidthPx=t,this.stepPx=n,this.d3=r}static fixedRow(t){return new e(t.bandwidth,t.step)}static forRows(t){let n=Array.from({length:t.count},(i,o)=>String(o)),r=zl().domain(n).range(t.range).paddingInner(t.paddingInner??0).paddingOuter(t.paddingOuter??0);return new e(r.bandwidth(),r.step(),r)}bandwidth(){return this.bandwidthPx}step(){return this.stepPx}forward(t){if(!this.d3)throw new Error("BandScale.forward is only available on closed-domain bands (BandScale.forRows)");let n=this.d3(t);if(n===void 0)throw new Error(`BandScale: unknown band id "${t}"`);return n}},tX={bandwidth:56,step:64};function mb(){return Px.fixedRow(tX)}var gb=8;function yb(e,t,n,r,i){let{theme:o,styleCtx:s}=t,{cal:a,calendar:l,schedule:c}=n,u=c.plan,{originX:f,scale:d}=r.axis,{timeline:p}=r,m=Ud(e,{theme:o,cal:a,schedule:c,timeline:p,scale:d,calendar:l,axisColumns:new Is(n,d),bandScale:mb(),waves:u?yS(u,d,f,jn(t.locale).waveBackgroundItem,up(c)):void 0},{chartTopY:0,chartBottomY:0,swimlaneBottomY:0},{footnotes:qd(e.content.footnotes),markerRowPlacements:new Map(r.markers.placements)});for(let T of r.markers.datePinned){let O=m.markerRowPlacements.get(T.id);O&&(m.entityLeftEdges.set(T.id,T.centerX),m.entityRightEdges.set(T.id,T.centerX),m.entityMidpoints.set(T.id,{x:T.centerX,y:O.centerY}))}let g=new Map(m.entityLeftEdges),E=new Map(m.entityRightEdges),x=new Map(m.entityMidpoints),y=()=>{m.entityLeftEdges=new Map(g),m.entityRightEdges=new Map(E),m.entityMidpoints=new Map(x),m.placedItems=new Map,m.itemFlowKey=new Map,m.currentFlowKey="",m.waves&&Bd(m.waves,m.entityLeftEdges,m.entityRightEdges)},w=[...e.content.swimlanes.values()],_=Se("swimlane",[],s),k=fk[_.spacing]??0,N=()=>{m.nextParallelId=0,m.nextGroupId=0;let T=[],O=m.chartTopY,S=0,F=m.timeline.originX;for(let z of w){S>0&&(O+=k);let{positioned:U,usedHeight:ee,usedRightX:Y}=new Os({lane:z,bandIndex:S},i).place({x:m.timeline.originX,y:O},m);T.push(U),O+=ee,Y>F&&(F=Y),S++}return{swimlanes:T,nextY:O,maxRightX:F}},B=e.content.isolatedRegions,$,X,j=m.waves;if(j){let T,O=AS()?nX(j.ids,c,d):void 0,S=Md(j.ids.length,j.origin,j.floors,(F,z)=>(xS(j,F,z),y(),T=N(),B.length>0&&vx(B,m,T.nextY+gb,i,r.naturalChartRightX),j.pass),Ot,O);ES(j,S),X={passes:S.passes,capped:S.capped},$=T}else $=N();let D=$.swimlanes,I=$.nextY,R=WS(e.content.milestones,m);R.length>0&&(y(),m.slackCorridors=R,$=N(),D=$.swimlanes,I=$.nextY);let P=[],A=[];if(B.length>0){let T=vx(B,m,I+gb,i,r.naturalChartRightX);P=T.regions,A=T.contexts,I=T.endY}m.chartBottomY=I,m.swimlaneBottomY=I;let L=ep(e.content.milestones,m);return{ctx:m,swimlanes:D,includes:P,regionContexts:A,milestones:L,laneEntries:w,maxRightX:$.maxRightX,bottomY:I,...X?{waveSolve:X}:{}}}function nX(e,t,n){let r=e.map(i=>t.waves?.get(i));return{S:r.map(i=>i?n.forward(i.start):null),E:r.map(i=>i?n.forward(i.end):null)}}var mp=class{constructor(t,n){M(this,"node");M(this,"helpers");this.node=t,this.helpers=n}get id(){return this.node.name??""}place(t,n){let{node:r}=this,{helpers:i}=this,o=Se("group",r.properties,n.styleCtx),s=Ur(r,Bl(r.properties,t.x,n),n),a=n.waves!==void 0&&r.title===void 0&&ie(r.properties,"wave")!==void 0&&ie(r.properties,"style")===void 0&&Be(r.properties,"labels").length===0,l=a?void 0:r.title??r.name,c=n.currentFlowKey;n.nextGroupId+=1,n.currentFlowKey=`${c}/group:${r.name??`group-${n.nextGroupId}`}`;let u=Rt(Be(r.properties,"after")),f=Rt(Be(r.properties,"before")),d=fd({drawn:!a,hasTitle:!!l,hasPins:!!(u||f),hasBracket:o.bracket!=="none"}),p=rp(r,{leftX:s,firstRowY:t.y+d.header+d.pad},n,i),{children:m,timeCursorX:g,timeStartX:E}=p,x=n.bandScale.step(),y=x-n.bandScale.bandwidth(),w=Math.max(x,p.packer.usedHeight())-y,_={x:E,y:t.y,width:g-E,height:d.header+d.pad+w+d.pad};t.startX=_.x,t.x=g,t.height=Math.max(t.height,_.height+y);let k=r.name;k&&(n.entityLeftEdges.set(k,_.x),n.entityRightEdges.set(k,g)),n.currentFlowKey=c;let N=a?[]:$d({box:_,afterDate:u,beforeDate:f,title:l});return{kind:"group",id:k,title:l,box:_,headerHeight:d.header,children:m,style:o,inlineDatePins:N.length>0?N:void 0,...a?{waveOnly:!0}:{}}}};var gp=class{constructor(t,n){M(this,"node");M(this,"helpers");this.node=t,this.helpers=n}get id(){return this.node.name??""}place(t,n){let{node:r}=this,{helpers:i}=this,o=Se("parallel",r.properties,n.styleCtx),s=Ur(r,t.x,n),a=Rt(Be(r.properties,"after")),l=Rt(Be(r.properties,"before")),c=r.title??r.name,u=fd({drawn:!0,hasTitle:!!c,hasPins:!!(a||l),hasBracket:o.bracket!=="none"}),f=t.y+u.header+u.pad,d=[],p=Number.POSITIVE_INFINITY,m=Number.NEGATIVE_INFINITY,g=0,E=n.currentFlowKey;n.nextParallelId+=1;let x=r.name??`parallel-${n.nextParallelId}`,y=0;for(let X of r.content){if(X.$type==="DescriptionDirective")continue;n.currentFlowKey=`${E}/par:${x}#${y}`;let j=Wl(s,f+g),D=i.sequenceOne(X,j,n);d.push(D),g+=Math.max(n.bandScale.step(),j.height),p=Math.min(p,j.startX),m=Math.max(m,j.x),y++}n.currentFlowKey=E,d.length===0&&(p=n.scale.showsNonWorking?n.scale.startX(s):s,m=p);let w=n.bandScale.step(),_=w-n.bandScale.bandwidth(),k=Math.max(w,g)-_,N={x:p,y:t.y,width:m-p,height:u.header+u.pad+k+u.pad};t.startX=N.x,t.x=m,t.height=Math.max(t.height,N.height+_);let B=r.name;B&&(n.entityLeftEdges.set(B,N.x),n.entityRightEdges.set(B,m));let $=$d({box:N,afterDate:a,beforeDate:l,title:c});return{kind:"parallel",id:B,title:c,box:N,headerHeight:u.header,children:d,style:o,inlineDatePins:$.length>0?$:void 0}}};function rX(e,t,n){return new gp(e,{sequenceOne:yp}).place(t,n)}function iX(e,t,n){return new mp(e,{sequenceOne:yp}).place(t,n)}function yp(e,t,n){if(Ve(e))return Vd(e,t,n);if(et(e))return rX(e,t,n);if($e(e))return iX(e,t,n);throw new Error(`Unknown swimlane child type: ${e.$type??"unknown"}`)}var xp=class{place(t,n,r,i){let o={sequenceOne:yp},s=oS(t,n,r),a=sS(t,n,r,s,i),l=cb(t,n,r,s,a),c=yb(n,s,a,l,o);return db(new fp(t,n,r,s,a,l,c))}};function Cx(e,t,n={}){let r=n.schedule?.resolved===t?n.schedule:Hl(e,t,{today:n.today,plan:$i(t)??null});return new xp().place(e,t,n,r)}function Ep(e){return e.toISOString().slice(0,10)}function xb(e){return e.id!==void 0?e.id:/[\r\n]/.test(e.title)?e.title.replace(/\s*[\r\n]+\s*/g," ").trim():e.title}function $x(e,t){for(let n of e)n.kind==="item"?t(n):$x(n.children,t)}function oX(e,t,n){let r=xb(e);e.textSpills&&n.push(sn(t,"NL.I1000","info",{name:r},r)),e.chipsOutside&&n.push(sn(t,"NL.I1001","info",{name:r},r)),(e.box.width<Cr||e.dotSpills||e.iconSpills||e.footnoteSpills)&&n.push(sn(t,"NL.I1002","info",{name:r},r)),e.hasOverflow&&n.push(sn(t,"NL.I1003","info",{name:r,anchor:e.overflowAnchorId},r)),Eb(e,t,n)}function Eb(e,t,n){let r=e.nonWorkingPin;if(!r)return;let i=xb(e);n.push(sn(t,"NL.I1008","info",{name:i,pin:r.pin,key:r.key,start:r.start},i))}function sn(e,t,n,r,i){return{message:rn(e,t,r),severity:n,code:t,entityId:i,lspSeverity:n==="warning"?2:3,data:{code:t,args:r}}}function wb(e,t,n){let r=e.id??e.title,i=[];$x(e.children,a=>i.push(a));for(let a of i)oX(a,t,n);let o=new Set(i.map(a=>a.box.y));o.size>1&&n.push(sn(t,"NL.I1004","info",{lane:r,rows:o.size},r)),(e.utilization?.segments.some(a=>a.classification==="red")??!1)&&n.push(sn(t,"NL.I1005","info",{lane:r},r));for(let a of e.nested)wb(a,t,n)}function Tb(e,t,n){$x(e.children,r=>{Eb(r,t,n)});for(let r of e.nested)Tb(r,t,n)}function sX(e,t,n){e.waveSolve?.capped&&n.push(sn(t,"NL.W1002","warning",{passes:e.waveSolve.passes}));let r=e.waves??[],i=r.filter(o=>o.empty).map(o=>o.id);if(i.length>0){let o={names:i};n.push(sn(t,"NL.I1006","info",o,i.length===1?i[0]:void 0))}for(let o of e.milestones){if(o.overrunByWave===void 0||o.overrunDate===void 0)continue;let s=r.find(l=>l.id===o.overrunByWave);if(!s)continue;let a=o.id??o.title;n.push(sn(t,"NL.I1007","info",{name:a,date:o.overrunDate,wave:s.id,end:Ep(s.endDate)},a))}}function Dx(e,t={}){let n=t.locale??"en-US",r=[];for(let i of e.swimlanes)wb(i,n,r);for(let i of e.includes)for(let o of i.nestedSwimlanes)Tb(o,n,r);if(sX(e,n,r),t.today){let i=t.today,o=e.timeline.startDate,s=e.timeline.endDate;(i<o||i>s)&&r.push(sn(n,"NL.W1000","warning",{date:Ep(i),start:Ep(o),end:Ep(s)}))}return r}var Bi=class extends Error{constructor(t){super(t),this.name="TimezoneError"}};function Mx(e){if(!e||e.toLowerCase()==="local")return{kind:"local"};if(e.toUpperCase()==="UTC")return{kind:"utc"};if(e==="Z")return{kind:"offset",ms:0};let t=/^([+-])(\d{2})(?::?(\d{2}))?$/.exec(e);if(t){let n=t[1]==="+"?1:-1,r=parseInt(t[2],10),i=t[3]!==void 0?parseInt(t[3],10):0;if(r>23||i>59)throw new Bi(`nowline: invalid timezone offset "${e}". Hours must be 0\u201323 and minutes 0\u201359.`);return{kind:"offset",ms:n*(r*60+i)*6e4}}try{return{kind:"iana",name:Intl.DateTimeFormat(void 0,{timeZone:e}).resolvedOptions().timeZone}}catch{throw new Bi(`nowline: unrecognised timezone "${e}". Use "local", "UTC", an ISO 8601 offset (e.g. "+05:30", "-07:00", "Z"), or an IANA timezone name (e.g. "America/Los_Angeles", "Asia/Kolkata").`)}}function wp(e,t){switch(t.kind){case"local":return new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate()));case"utc":return new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()));case"offset":{let n=new Date(e.getTime()+t.ms);return new Date(Date.UTC(n.getUTCFullYear(),n.getUTCMonth(),n.getUTCDate()))}case"iana":{let n=new Intl.DateTimeFormat("en-CA",{timeZone:t.name,year:"numeric",month:"2-digit",day:"2-digit"}).formatToParts(e),r=0,i=0,o=0;for(let s of n)s.type==="year"?r=parseInt(s.value,10):s.type==="month"?i=parseInt(s.value,10)-1:s.type==="day"&&(o=parseInt(s.value,10));return new Date(Date.UTC(r,i,o))}}}var _b=/^(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?)(Z|([+-])(\d{2})(?::?(\d{2}))?)$/,vb=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?$/;function Ab(e){return(ot.test(e)||_b.test(e)||vb.test(e))&&!He(e.slice(0,10))}function Fx(e={}){let t=e.zone??{kind:"local"},n=e.clock??(()=>new Date),r=e.now;if(!(r==="-"||r===null)){if(r instanceof Date)return r;if(r!==void 0){if(Ab(r))return;let i=ve(r);if(i)return i;let o=_b.exec(r);if(o){let s=new Date(r);if(!Number.isNaN(s.getTime())){if(o[2]==="Z")return wp(s,{kind:"utc"});let l=o[3]==="+"?1:-1,c=parseInt(o[4],10),u=o[5]!==void 0?parseInt(o[5],10):0,f=l*(c*60+u)*6e4;return wp(s,{kind:"offset",ms:f})}}return vb.test(r)?ve(r.slice(0,10))??void 0:void 0}return wp(n(),t)}}function aX(e){return e===2?"warning":e===3?"info":"error"}function kb(e,t){return{severity:aX(e.severity),code:ky(e),message:e.message,suggestion:hd(e.message),file:t,line:(e.range?.start.line??0)+1,column:(e.range?.start.character??0)+1}}function Bx(e,t){return{severity:"error",code:"parse-error",message:e.message,file:t,line:e.token?.startLine??1,column:e.token?.startColumn??1}}function Wx(e,t){return{severity:"error",code:"lex-error",message:e.message,file:t,line:e.line??1,column:e.column??1}}function Ib(e,t){if(e.syntax?.origin==="lexer")return Wx(e.syntax.error,e.sourcePath);if(e.syntax?.origin==="parser")return Bx(e.syntax.error,e.sourcePath);let n=(e.range?.start.line??e.line??0)+1,r=(e.range?.start.character??0)+1;if(!Fr(e))return{severity:e.severity,code:"include",message:e.message,file:e.sourcePath,line:n,column:1};let i=t?Ky(t,e):e.message,o=hd(i);return{severity:e.severity,code:e.code??md(e.message),message:i,...o===void 0?{}:{suggestion:o},file:e.sourcePath,line:n,column:r}}function Rb(e,t,n="warning"){return{severity:n,code:"render.warning",message:e,file:t,line:1,column:1}}function Sb(e,t){return{severity:e.severity,code:e.code,message:e.message,file:t,line:1,column:1}}var bb="__nowline_browser_noop_include__";async function Nb(e){throw new Error(`${bb}: include "${e}" was skipped \u2014 running in single-file mode.`)}function Xx(e){return e.includes(bb)}function Cb(e,t){let n=t==="image/png"?cX(e):t==="image/jpeg"?uX(e):fX(e);return n&&n.width>0&&n.height>0?n:void 0}var lX=[137,80,78,71,13,10,26,10];function Ux(e,t){return e[t]<<8|e[t+1]}function Lb(e,t){return(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0}function Ob(e,t){return e[t]|e[t+1]<<8}function Pb(e,t){return e[t]|e[t+1]<<8|e[t+2]<<16}function Tp(e,t,n){return String.fromCharCode(...e.subarray(t,t+n))}function cX(e){if(!(e.length<24||lX.some((t,n)=>e[n]!==t))&&Tp(e,12,4)==="IHDR")return{width:Lb(e,16),height:Lb(e,20)}}function uX(e){if(e.length<4||e[0]!==255||e[1]!==216)return;let t=2;for(;t+3<e.length;){if(e[t]!==255)return;let n=e[t+1];if(n===255){t+=1;continue}if(n===1||n>=208&&n<=217){t+=2;continue}let r=Ux(e,t+2);if(n>=192&&n<=207&&n!==196&&n!==200&&n!==204)return t+8>=e.length?void 0:{width:Ux(e,t+7),height:Ux(e,t+5)};if(r<2)return;t+=2+r}}function fX(e){if(e.length<16||Tp(e,0,4)!=="RIFF"||Tp(e,8,4)!=="WEBP")return;let t=Tp(e,12,4),n=t==="VP8L"?25:30;if(!(e.length<n)){if(t==="VP8 ")return e[23]!==157||e[24]!==1||e[25]!==42?void 0:{width:Ob(e,26)&16383,height:Ob(e,28)&16383};if(t==="VP8L"){if(e[20]!==47)return;let r=e[21],i=e[22],o=e[23],s=e[24];return{width:1+(r|(i&63)<<8),height:1+(i>>6|o<<2|(s&15)<<10)}}if(t==="VP8X")return{width:1+Pb(e,24),height:1+Pb(e,27)}}}var dX=new Set(["svg","g","defs","symbol","use","path","rect","circle","ellipse","line","polyline","polygon","text","tspan","title","desc","linearGradient","radialGradient","stop","clipPath","mask","pattern","filter","feGaussianBlur","feColorMatrix","feOffset","feMerge","feMergeNode","feFlood","feComposite","feBlend","feDropShadow","image"]),pX=new Set(["d","x","y","x1","y1","x2","y2","cx","cy","r","rx","ry","width","height","viewBox","preserveAspectRatio","fill","fill-opacity","fill-rule","stroke","stroke-width","stroke-opacity","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-dasharray","stroke-dashoffset","opacity","transform","points","id","clip-path","mask","filter","font-family","font-size","font-weight","font-style","text-anchor","dx","dy","rotate","letter-spacing","word-spacing","xmlns","href","xlink:href","offset","stop-color","stop-opacity","gradientUnits","gradientTransform","spreadMethod","maskUnits","maskContentUnits","stdDeviation","values","in","in2","mode","type","result","flood-color","flood-opacity","patternUnits","patternContentUnits","role","aria-label","display","visibility","clip-rule","color","font-variant","font-stretch","text-decoration","dominant-baseline","alignment-baseline","baseline-shift","writing-mode","paint-order","vector-effect","shape-rendering","text-rendering","image-rendering","color-interpolation","color-interpolation-filters"]),hX=new Set(["fill","fill-opacity","fill-rule","stroke","stroke-width","stroke-opacity","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-dasharray","stroke-dashoffset","opacity","clip-path","clip-rule","mask","filter","font-family","font-size","font-weight","font-style","font-variant","font-stretch","text-anchor","text-decoration","letter-spacing","word-spacing","dominant-baseline","alignment-baseline","baseline-shift","writing-mode","stop-color","stop-opacity","flood-color","flood-opacity","display","visibility","color","paint-order","vector-effect","shape-rendering","text-rendering","image-rendering","color-interpolation","color-interpolation-filters"]),mX=new Set(["line-height","text-align","font-variant-ligatures","font-variant-caps","font-variant-numeric","font-variant-east-asian","font-variant-position","font-variant-alternates","font-feature-settings","font-variation-settings","font-kerning","white-space","text-orientation","overflow","isolation","solid-color","solid-opacity","enable-background","color-rendering"]),gX=new Set(["none","normal","auto","initial","inherit","unset"]);function yX(e){return e==="xlink:href"?!1:e.includes(":")||e.startsWith("data-")||e==="version"||e==="baseProfile"||e==="enable-background"}function xX(e){return e==="metadata"||e.includes(":")&&!e.startsWith("svg:")}var EX=new Set(["x","y","width","height"]);function Db(e){let t=[],n=0,r=e.length;for(;n<r;){if(e[n]!=="<"){let u=n;for(;n<r&&e[n]!=="<";)n++;let f=e.slice(u,n);f.trim().length>0?t.push({kind:"text",text:f}):f.length>0&&t.push({kind:"text",text:f});continue}if(e.startsWith("<!--",n)){let u=e.indexOf("-->",n+4);if(u<0)break;t.push({kind:"comment",text:e.slice(n+4,u)}),n=u+3;continue}if(e.startsWith("<![CDATA[",n)){let u=e.indexOf("]]>",n+9);if(u<0)break;t.push({kind:"cdata",text:e.slice(n+9,u)}),n=u+3;continue}if(e.startsWith("<?",n)){let u=e.indexOf("?>",n+2);if(u<0)break;t.push({kind:"decl",text:e.slice(n+2,u)}),n=u+2;continue}if(e.startsWith("<!",n)){let u=e.indexOf(">",n+2);if(u<0)break;t.push({kind:"decl",text:e.slice(n+2,u)}),n=u+1;continue}if(e[n+1]==="/"){let u=e.indexOf(">",n+2);if(u<0)break;let f=e.slice(n+2,u).trim();t.push({kind:"close",name:f}),n=u+1;continue}let i=wX(e,n);if(i<0)break;let o=e.slice(n+1,i).trim(),s=o.endsWith("/"),a=s?o.slice(0,-1).trim():o,{name:l,attrs:c}=TX(a);t.push({kind:s?"self":"open",name:l,attrs:c}),n=i+1}return t}function wX(e,t){let n=t+1,r=null;for(;n<e.length;){let i=e[n];if(r)i===r&&(r=null);else if(i==='"'||i==="'")r=i;else if(i===">")return n;n++}return-1}function TX(e){let t=0;for(;t<e.length&&/\s/.test(e[t]);)t++;let n=t;for(;t<e.length&&!/\s/.test(e[t]);)t++;let r=e.slice(n,t),i={};for(;t<e.length;){for(;t<e.length&&/\s/.test(e[t]);)t++;if(t>=e.length)break;let o=t;for(;t<e.length&&e[t]!=="="&&!/\s/.test(e[t]);)t++;let s=e.slice(o,t);if(t>=e.length||e[t]!=="="){s&&(i[s]="");continue}if(t++,t>=e.length)break;let a=e[t];if(a!=='"'&&a!=="'"){let c=t;for(;t<e.length&&!/\s/.test(e[t]);)t++;i[s]=e.slice(c,t);continue}t++;let l=t;for(;t<e.length&&e[t]!==a;)t++;i[s]=e.slice(l,t),t<e.length&&t++}return{name:r,attrs:i}}function jl(e){return e.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function _X(e,t){if(e.startsWith("#")){let n=t.get(e.slice(1));return n?`#${n}`:null}if(/^url\(#[^)]+\)$/.test(e)){let n=e.slice(5,-1),r=t.get(n);return r?`url(#${r})`:null}return null}function Mb(e,t={}){let n=t.idPrefix??"nl-logo",r=t.onWarn??(()=>{}),i=Db(e),o="",s=0;for(let d of i)d.kind==="open"&&d.name==="style"?s++:d.kind==="close"&&d.name==="style"?s=Math.max(0,s-1):s>0&&(d.kind==="text"||d.kind==="cdata")&&(o+=d.text??"");let a=vX(o,d=>r(`sanitizer: dropping ${d}`)),l=new Map,c=0;for(let d of i)if((d.kind==="open"||d.kind==="self")&&d.attrs&&"id"in d.attrs){let p=d.attrs.id;p&&!l.has(p)&&l.set(p,`${n}-${c++}`)}let u=[],f=[];for(let d of i)if(d.kind!=="comment"&&d.kind!=="decl"){if(d.kind==="cdata"){f[f.length-1]&&u.push(jl(d.text??""));continue}if(d.kind==="text"){if(f.length===0||f[f.length-1]){let p=(d.text??"").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">");u.push(p)}continue}if(d.kind==="open"||d.kind==="self"){let p=d.name??"";if(p==="script"||p==="foreignObject"||p==="animate"||p==="animateTransform"||p==="animateMotion"||p==="set"){r(`sanitizer: dropping <${p}>`),d.kind==="open"&&f.push(!1);continue}if(p==="style"||xX(p)){d.kind==="open"&&f.push(!1);continue}if(!dX.has(p)){r(`sanitizer: dropping unknown element <${p}>`),d.kind==="open"&&f.push(!1);continue}let m=[`<${p}`],g=p==="svg"&&f.length===0,E=AX(d.attrs??{},a,r),x=Object.keys(E).sort();for(let y of x){let w=E[y];if(g&&t.stripRootSize&&EX.has(y))continue;if(/^on/i.test(y)){r(`sanitizer: dropping event handler ${y}`);continue}if(yX(y)||y==="class")continue;if(!pX.has(y)){r(`sanitizer: dropping attribute ${y}`);continue}if(y==="href"||y==="xlink:href"){let k=_X(w,l);if(k===null){r(`sanitizer: dropping external href ${w}`);continue}m.push(` ${y}="${jl(k)}"`);continue}if(y==="id"){let k=l.get(w);k&&m.push(` id="${jl(k)}"`);continue}let _=/url\(#([^)]+)\)/gi;if(/data:|javascript:|vbscript:|url\(|expression\s*\(|[\\{}]/i.test(w.replace(_,""))){r(`sanitizer: dropping suspicious value at ${y}`);continue}if(/url\(#/i.test(w)){let k=w.replace(_,(N,B)=>{let $=l.get(B);return $?`url(#${$})`:"none"});m.push(` ${y}="${jl(k)}"`);continue}m.push(` ${y}="${jl(w)}"`)}m.push(d.kind==="self"?"/>":">"),u.push(m.join("")),d.kind==="open"&&f.push(!0);continue}d.kind==="close"&&f.pop()&&u.push(`</${d.name}>`)}return u.join("")}function $b(e){if(e===void 0)return;let t=/^\s*([0-9]*\.?[0-9]+(?:e[+-]?[0-9]+)?)\s*(px)?\s*$/i.exec(e);if(!t)return;let n=Number(t[1]);return n>0&&Number.isFinite(n)?n:void 0}function _p(e){let t=Db(e).find(s=>(s.kind==="open"||s.kind==="self")&&s.name==="svg");if(!t)return;let n=t.attrs??{},r=$b(n.width),i=$b(n.height);if(r!==void 0&&i!==void 0)return{width:r,height:i};let o=(n.viewBox??"").trim().split(/[\s,]+/).map(Number);if(o.length===4&&o.every(Number.isFinite)&&o[2]>0&&o[3]>0)return{width:o[2],height:o[3]}}function Fb(e){let t=[];for(let n of e.split(";")){let r=n.indexOf(":");if(r<0)continue;let i=n.slice(0,r).trim().toLowerCase(),o=n.slice(r+1).replace(/!\s*important\s*$/i,"").trim();i&&o&&t.push({property:i,value:o})}return t}function vX(e,t){let n=[],r=e.replace(/\/\*[\s\S]*?\*\//g,""),i=/([^{}]+)\{([^{}]*)\}/g;for(let o of r.matchAll(i)){let s=o[1].trim(),a=s.split(",").map(l=>l.trim());if(s.startsWith("@")||!a.every(l=>/^\.[A-Za-z_][\w-]*$/.test(l))){t(`<style> rule ${s}`);continue}n.push({classes:a.map(l=>l.slice(1)),declarations:Fb(o[2])})}return/@[a-z-]+[^{;]*;/i.test(r)&&t("<style> at-rule"),n}function AX(e,t,n){let r=new Set((e.class??"").split(/\s+/).filter(Boolean)),i=[];for(let s of t)s.classes.some(a=>r.has(a))&&i.push(...s.declarations);if(e.style!==void 0&&i.push(...Fb(e.style)),i.length===0&&e.style===void 0)return e;let o={...e};delete o.style;for(let{property:s,value:a}of i)hX.has(s)?o[s]=a:!s.startsWith("-")&&!mX.has(s)&&!gX.has(a.toLowerCase())&&n(`sanitizer: dropping style property ${s}`);return o}var kX={".svg":"image/svg+xml",".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".webp":"image/webp"};function IX(e){let t=e.slice(e.lastIndexOf("/")+1),n=t.lastIndexOf(".");return n>0?t.slice(n).toLowerCase():""}async function Bb(e,t,n){if(!e||!t)return;let r=IX(e),i=kX[r];if(!i){n(`unsupported logo format: ${r||"(none)"} (${e})`);return}let o;try{o=await t(e)}catch(l){let c=l instanceof Error?l.message:String(l);n(`logo file not found: ${e} (${c})`);return}let s=o.bytes,a=i==="image/svg+xml"?_p(new TextDecoder().decode(s)):Cb(s,i);if(!a){let l=i==="image/svg+xml"?"no viewBox and no pixel width/height on the root <svg>":`not a readable ${r.slice(1).toUpperCase()} header`;n(`logo could not be parsed: ${e} (${l})`);return}return{ref:e,dimensions:a,asset:o}}var RX=1,SX=0;function bX(){return Ce.parse(`memory:///stage-${++SX}.nowline`)}async function NX(e){if(e.document)return e.document;let{workspace:t}=e.services.shared,n=t.LangiumDocumentFactory.fromString(e.source,bX());return await t.DocumentBuilder.build([n],{validation:!0}),n}function LX(e){return e.origin!=="validation"||e.diagnostic.severity===RX}async function Gx(e){let t=await NX(e),n=bi(t);if(n.some(LX))return{kind:"invalid",document:t,diagnostics:n};let r=t.parseResult.value,i=await Dy(r,e.sourcePath,{services:e.services.Nowline,readFile:e.readSource}),o=e.isToleratedIncludeError??(()=>!1),s=i.diagnostics.filter(_=>_.severity==="error"&&!o(_)),a=i.diagnostics.filter(Fr),l=s.find(_=>!Fr(_));if(l)return{kind:"include-error",document:t,legacy:l,routed:[],resolved:i};if(s.length>0)return{kind:"include-error",document:t,routed:a,resolved:i};let c=[],u=await Bb(pd(r),e.assetResolver,_=>c.push(_)),{theme:f,today:d,width:p,locale:m,nonWorking:g}=e.layout,E={theme:f,today:d,width:p,locale:m,nonWorking:g},x=$i(i)??null,y=Hl(r,i,{today:d,plan:x}),w=Cx(r,i,{...E,schedule:y,logo:u?.dimensions});return{kind:"staged",document:t,ast:r,resolved:i,routed:a,logo:u,warnings:c,plan:x,schedule:y,model:w,layout:E}}var Wb=/&/g,Xb=/</g,Ub=/>/g,OX=/"/g,PX=/'/g;function tt(e){return e.replace(Wb,"&").replace(Xb,"<").replace(Ub,">")}function an(e){return e.replace(Wb,"&").replace(Xb,"<").replace(Ub,">").replace(OX,""").replace(PX,"'")}function $s(e){let t=Object.keys(e).sort(),n=[];for(let r of t){let i=e[r];i==null||i===!1||(i===!0?n.push(r):n.push(`${r}="${an(String(i))}"`))}return n.length?` ${n.join(" ")}`:""}function H(e,t,n){return n===void 0||n===""?`<${e}${$s(t)}/>`:`<${e}${$s(t)}>${n}</${e}>`}function ae(e,t){return`<text${$s(e)}>${tt(t)}</text>`}function h(e){return Number.isFinite(e)?Number.isInteger(e)?e.toString():(Math.round(e*100)/100).toString():"0"}var DX="3 3";function vp(e,t){let n=e.waypoints;if(n.length<2)return"";let r=t.dependency.edgeStroke,i=n[n.length-1],o=n[n.length-2],s=Math.hypot(i.x-o.x,i.y-o.y);if(s===0)return"";let a=(i.x-o.x)/s,l=(i.y-o.y)/s,c=e.headWidth/2,u=e.head==="dot"?c:e.headWidth*5/7,f=s>u?[...n.slice(0,-1),{x:i.x-a*u,y:i.y-l*u}]:n.slice(0,-1),d=[MX(f,e.slack,r)],p=t.arrowhead.neutral;if(e.head==="dot")d.push(H("circle",{cx:h(i.x-a*c),cy:h(i.y-l*c),r:h(c),fill:p}));else{let m=i.x-a*u,g=i.y-l*u;d.push(H("path",{d:`M${h(m-l*c)} ${h(g+a*c)} L${h(i.x)} ${h(i.y)} L${h(m+l*c)} ${h(g-a*c)} z`,fill:p}))}return H("g",{"data-layer":"dependency"},d.join(""))}function MX(e,t,n){if(e.length<2)return"";let r={fill:"none",stroke:n,"stroke-width":1.1,"stroke-linejoin":"round"};if(!t)return H("path",{d:BX(e,id),...r});let{solid:i,dotted:o}=FX(e,id);return(i?H("path",{d:i,...r}):"")+(o?H("path",{d:o,...r,"stroke-dasharray":DX,"stroke-linecap":"round"}):"")}function FX(e,t){let n=e.length,r=[],i=[],o=[];for(let a=1;a<n-1;a++){let l=e[a-1],c=e[a],u=e[a+1],f=Math.hypot(c.x-l.x,c.y-l.y),d=Math.hypot(u.x-c.x,u.y-c.y),p=Math.min(t,f/2,d/2),m={x:Math.sign(c.x-l.x),y:Math.sign(c.y-l.y)},g={x:Math.sign(u.x-c.x),y:Math.sign(u.y-c.y)};r[a]={x:c.x-m.x*p,y:c.y-m.y*p},i[a]={x:c.x+g.x*p,y:c.y+g.y*p},p>0&&o.push(`M${h(r[a].x)} ${h(r[a].y)} Q${h(c.x)} ${h(c.y)} ${h(i[a].x)} ${h(i[a].y)}`)}let s=[];for(let a=0;a<n-1;a++){let l=a===0?e[0]:i[a],c=a===n-2?e[n-1]:r[a+1],u=`M${h(l.x)} ${h(l.y)} L${h(c.x)} ${h(c.y)}`;Math.abs(e[a+1].y-e[a].y)<1e-9?s.push(u):o.push(u)}return{solid:o.join(" "),dotted:s.join(" ")}}function BX(e,t){if(e.length<2)return"";let n=[`M${h(e[0].x)} ${h(e[0].y)}`];for(let r=1;r<e.length;r++){let i=e[r-1],o=e[r];if(r===e.length-1){n.push(`L${h(o.x)} ${h(o.y)}`);continue}let s=e[r+1],a=Math.sign(o.x-i.x),l=Math.sign(o.y-i.y),c=Math.sign(s.x-o.x),u=Math.sign(s.y-o.y),f=Math.hypot(o.x-i.x,o.y-i.y),d=Math.hypot(s.x-o.x,s.y-o.y),p=Math.min(t,f/2,d/2);if(p<=0||a!==0&&c!==0||l!==0&&u!==0){n.push(`L${h(o.x)} ${h(o.y)}`);continue}let m={x:o.x-a*p,y:o.y-l*p},g={x:o.x+c*p,y:o.y+u*p};n.push(`L${h(m.x)} ${h(m.y)}`),n.push(`Q${h(o.x)} ${h(o.y)} ${h(g.x)} ${h(g.y)}`)}return n.join(" ")}function Gb(e,t,n,r){if(e.entries.length===0)return"";let i=n.footnotePanel.fill,o=n.footnotePanel.border,s=n.footnotePanel.header,a=n.footnotePanel.title,l=n.footnotePanel.description,c=n.footnotePanel.number,u=[];u.push(H("rect",{x:h(e.box.x),y:h(e.box.y),width:h(e.box.width),height:h(e.box.height),rx:6,ry:6,fill:i,stroke:o,"stroke-width":1,filter:`url(#${t}-shadow-subtle)`})),u.push(ae({x:h(e.box.x+Gt),y:h(e.box.y+ty),"font-family":r.sans,"font-size":12,"font-weight":700,fill:s},"Footnotes"));let f=e.box.x+Gt;for(let d of e.entries){d.region!==void 0&&d.regionHeadingY!==void 0&&u.push(ae({x:h(f),y:h(d.regionHeadingY),"font-family":r.sans,"font-size":10,"font-weight":700,fill:s},d.region)),u.push(ae({x:h(f),y:h(d.y),"font-family":r.sans,"font-size":10,"font-weight":700,fill:c},String(d.number)));for(let p of d.titleLines)u.push(ae({x:h(p.x),y:h(p.y),"font-family":r.sans,"font-size":11,"font-weight":600,fill:a},p.text));for(let p of d.descriptionLines??[])u.push(ae({x:h(p.x),y:h(p.y),"font-family":r.sans,"font-size":11,fill:l},p.text))}return H("g",{"data-layer":"footnotes"},u.join(""))}function Hb(e,t,n,r){let i=e.box.x+e.cardBox.x,o=e.box.y+e.cardBox.y,s=e.cardBox.width,a=e.cardBox.height,l=e.style.bg==="none"?n.surface.headerBox:e.style.bg,c=n.header.cardBorder,u=H("rect",{x:h(i),y:h(o),width:h(s),height:h(a),rx:6,ry:6,fill:l,stroke:c,"stroke-width":1,filter:`url(#${t}-shadow-subtle)`}),f=i+16+(e.textInset?.x??0),d=o+(e.textInset?.y??0),p=[];e.titleLines.forEach((w,_)=>{p.push(ae({x:h(f),y:h(d+26+_*20),"font-family":r[e.style.font],"font-size":16,"font-weight":600,fill:e.style.text},w))});let m=p.join(""),g=d+26+Math.max(0,e.titleLines.length-1)*20,E=n.header.author,x=[];e.authorLines.forEach((w,_)=>{x.push(ae({x:h(f),y:h(g+18+_*14),"font-family":r[e.style.font],"font-size":11,fill:E},w))});let y=x.join("");return H("g",{"data-layer":"header","data-id":`${t}-header`},u+m+y)}function zb(e,t){let n=e.palette.attribution.mark,r=e.palette.attribution.link;if(e.swimlanes.length===0)return"";let i=e.header.attributionBox.x,o=e.header.attributionBox.y,s=Dr,a=ae({x:"0",y:s,"font-family":t.sans,"font-size":nd,"font-weight":400,fill:n},td)+ae({x:xl,y:s,"font-family":t.sans,"font-size":Dr,"font-weight":700,fill:n},"now")+H("rect",{x:ry,y:12,width:iy,height:Dr,fill:r})+ae({x:rd,y:s,"font-family":t.sans,"font-size":Dr,"font-weight":400,fill:n},"ine"),l=H("g",{transform:`translate(${h(i)} ${h(o)}) scale(${h(yl)})`},a);return H("a",{href:ny,target:"_blank",rel:"noopener","aria-label":"Powered by nowline"},H("g",{"data-layer":"attribution"},l))}async function jb(e,t,n,r){let i=e.assetRef??"",{x:o,y:s,width:a,height:l}=e.box,c;try{if(r.logo&&r.logo.ref===i)c=r.logo.asset;else if(t)c=await t(i);else return""}catch(d){let p=`logo file not found: ${i} (${d instanceof Error?d.message:String(d)})`;if(r.strict)throw d;return r.warn?.(p),""}let u=(c.mime??"").toLowerCase();if(u==="image/svg+xml"){let d=new TextDecoder().decode(c.bytes),p=e.intrinsic??_p(d)??{width:a,height:l},m=new Set,g=Mb(d,{idPrefix:`${n}-logo`,onWarn:E=>m.add(E.replace(/^sanitizer: dropping /,"")),stripRootSize:!0});return m.size>0&&r.warn?.(`logo ${i}: removed unsupported SVG content: ${[...m].join(", ")}`),H("svg",{"data-layer":"logo",x:h(o),y:h(s),width:h(a),height:h(l),viewBox:`0 0 ${h(p.width)} ${h(p.height)}`,preserveAspectRatio:"xMidYMid meet",overflow:"hidden"},g)}if(u==="image/png"||u==="image/jpeg"||u==="image/jpg"||u==="image/webp"){let d=WX(c.bytes);return H("image",{"data-layer":"logo",href:`data:${u};base64,${d}`,x:h(o),y:h(s),width:h(a),height:h(l),preserveAspectRatio:"xMidYMid meet"})}let f=`unsupported logo format: ${u} (${i})`;if(r.strict)throw new Error(f);return r.warn?.(f),""}function WX(e){if(typeof btoa<"u"){let n="";for(let r=0;r<e.length;r++)n+=String.fromCharCode(e[r]);return btoa(n)}let t=globalThis;if(t.Buffer)return t.Buffer.from(e).toString("base64");throw new Error("renderer: no base64 encoder available")}var Ap=class{constructor(t="nl"){M(this,"prefix");M(this,"counter",0);this.prefix=t}next(t){let n=`${this.prefix}-${this.counter++}`;return t?`${n}-${t}`:n}};function kp(e,t,n){let r=e.radius,i=e.center.x,o=e.center.y,s=t.anchorDiamond.fill,a=t.anchorDiamond.stroke,l=H("path",{d:`M${h(i)} ${h(o-r)} L${h(i+r)} ${h(o)} L${h(i)} ${h(o+r)} L${h(i-r)} ${h(o)} Z`,fill:s,stroke:a,"stroke-width":1.25}),c=t.anchorDiamond.label,u=e.labelSide==="left"?e.labelBox.x+e.labelBox.width:e.labelBox.x,f={x:h(u),y:h(o+4),"font-family":n.sans,"font-size":10,fill:c};e.labelSide==="left"&&(f["text-anchor"]="end");let d=e.title?ae(f,e.title):"";return H("g",{"data-layer":"anchor","data-id":e.id??null},Yb(e.hiddenDate)+l+d)}function Ip(e,t){let n=t.anchorDiamond.cutLine;return H("line",{x1:h(e.center.x),y1:h(e.center.y+e.radius+1),x2:h(e.center.x),y2:h(e.cutBottomY),stroke:n,"stroke-width":1,"stroke-dasharray":"1 3"})}function Rp(e,t,n){let r=e.center.x,i=e.center.y,o=e.radius,s=t.milestoneDiamond.cutLineOverrun,a=(m,g)=>H("path",{d:`M${h(m)} ${h(i-o)} L${h(m+o)} ${h(i)} L${h(m)} ${h(i+o)} L${h(m-o)} ${h(i)} Z`,fill:g,stroke:g,"stroke-width":1}),l=e.slip?.x,c;l!==void 0?c=a(r,s)+H("path",{d:`M${h(r+o)} ${h(i)} H${h(l-o)}`,fill:"none",stroke:s,"stroke-width":1.1,"stroke-dasharray":"3 3","stroke-linecap":"round"})+a(l,t.milestoneDiamond.fill):c=a(r,e.isOverrun?s:t.milestoneDiamond.fill);let u=e.isOverrun&&l===void 0?s:t.milestoneDiamond.label,f=e.labelSide==="left"?e.labelBox.x+e.labelBox.width:e.labelBox.x,d={x:h(f),y:h(i+4),"font-family":n.sans,"font-size":10,"font-weight":600,fill:u};e.labelSide==="left"&&(d["text-anchor"]="end");let p=e.title?ae(d,e.title):"";return H("g",{"data-layer":"milestone","data-id":e.id??null},Yb(e.hiddenDate)+c+p)}function Yb(e){return e===void 0?"":`<title>${tt(e)}</title>`}function Sp(e,t,n){let r=e.slip?.x??e.center.x,i=e.isOverrun&&e.slip===void 0?n.milestoneDiamond.cutLineOverrun:n.milestoneDiamond.cutLineNormal,o=[];if(e.onWaveBoundary||o.push(H("line",{x1:h(r),y1:h(e.center.y+e.radius+1),x2:h(r),y2:h(e.cutBottomY),stroke:i,"stroke-width":2,"stroke-dasharray":ml,"stroke-linecap":"round"})),e.slackArrows&&e.slackArrows.length>0)for(let s of e.slackArrows)o.push(H("path",{d:`M${h(s.x)} ${h(s.y)} H${h(e.center.x-6)}`,fill:"none",stroke:n.milestoneDiamond.slack,"stroke-width":1.1,"stroke-dasharray":"3 3","stroke-linecap":"round","marker-end":`url(#${t}-arrow-dark)`}));return o.join("")}var wn={person:{viewBox:"0 0 24 24",body:'<circle cx="12" cy="8" r="4" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><path d="M4 21a8 8 0 0 1 16 0" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>',ascii:"p"},people:{viewBox:"0 0 24 24",body:'<path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><circle cx="9" cy="7" r="4" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><path d="M22 21v-2a4 4 0 0 0-3-3.87" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><path d="M16 3.13a4 4 0 0 1 0 7.75" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>',ascii:"P"},points:{viewBox:"0 0 24 24",body:'<polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2" fill="currentColor" stroke="currentColor" stroke-width="1" stroke-linejoin="round"/>',ascii:"*"},time:{viewBox:"0 0 24 24",body:'<line x1="10" x2="14" y1="2" y2="2" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><line x1="12" x2="15" y1="14" y2="11" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><circle cx="12" cy="14" r="8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>',ascii:"t"}},XX={calendar:{viewBox:"0 0 24 24",body:'<rect x="3" y="4" width="18" height="18" rx="2" ry="2" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><line x1="16" x2="16" y1="2" y2="6" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><line x1="8" x2="8" y1="2" y2="6" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><line x1="3" x2="21" y1="10" y2="10" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>',ascii:"d"}},Vb={...wn,...XX};var pae={none:"",multiplier:"x",person:wn.person.ascii,people:wn.people.ascii,points:wn.points.ascii,time:wn.time.ascii};var UX={thin:100,light:300,normal:400,bold:700};function GX(e){return ki[e]??14}function bp(e,t,n){return{"font-family":t[e.font],"font-size":n??GX(e.textSize),"font-weight":UX[e.weight]??400,"font-style":e.italic?"italic":"normal",fill:e.text}}function HX(e){if(e.border==="dashed")return"4 3";if(e.border==="dotted")return"1 3"}function Kb(e,t,n,r,i,o={}){let s=Math.min(Ii[i.cornerRadius]??4,r/2,n/2);return H("rect",{x:h(e),y:h(t),width:h(n),height:h(r),rx:h(s),ry:h(s),fill:i.bg==="none"?"transparent":i.bg,stroke:i.fg,"stroke-width":1,"stroke-dasharray":HX(i)??null,...o})}function Np(e,t){let n=Math.max(e.x,t.x),r=Math.max(e.y,t.y),i=Math.min(e.x+e.width,t.x+t.width),o=Math.min(e.y+e.height,t.y+t.height);if(!(i<=n||o<=r))return{x:n,y:r,width:i-n,height:o-r}}var zX={none:{dx:0,dy:0,stdDeviation:0,opacity:0},subtle:{dx:0,dy:1,stdDeviation:1.5,opacity:.2},soft:{dx:0,dy:3,stdDeviation:5,opacity:.3},hard:{dx:2,dy:2,stdDeviation:0,opacity:.45}};function jX(e,t){let n=`${e}-shadow-${t}`,r=zX[t],i=`<feGaussianBlur in="SourceAlpha" stdDeviation="${r.stdDeviation}"/><feOffset dx="${r.dx}" dy="${r.dy}" result="offsetblur"/><feComponentTransfer><feFuncA type="linear" slope="${r.opacity}"/></feComponentTransfer><feMerge><feMergeNode/><feMergeNode in="SourceGraphic"/></feMerge>`;return H("filter",{id:n,x:"-50%",y:"-50%",width:"200%",height:"200%"},i)}function qb(e,t){return t==="none"?null:`url(#${e}-shadow-${t})`}function Zb(e){return["subtle","soft","hard"].map(t=>jX(e,t)).join("")}var YX=4,VX=8,KX=10;function Jb(e,t){return`url(#${e}-wave-hatch-${t})`}function Qb(e,t,n){let r=dy;return H("pattern",{id:`${e}-wave-hatch-${t}`,width:r,height:r,patternUnits:"userSpaceOnUse",patternTransform:"rotate(45)"},H("line",{x1:h(r/2),y1:0,x2:h(r/2),y2:r,stroke:t==="dark"?n.wave.hatch:n.wave.hatchOnDark,"stroke-width":py,opacity:fy}))}function eN(e){if(!e.waves)return[];let t=new Set,n=i=>{for(let o of i)o.kind==="item"?o.waveRole==="background"&&o.waveHatch&&t.add(o.waveHatch):n(o.children)},r=i=>{for(let o of i)n(o.children),r(o.nested)};r(e.swimlanes);for(let i of e.includes)r(i.nestedSwimlanes);for(let i of e.waveLegend?.entries??[])t.add(i.hatch);return["dark","light"].filter(i=>t.has(i))}function tN(e,t,n,r){let o=Math.min(Ii[t.cornerRadius]??4,e.height/2);return H("rect",{x:h(e.x+.5),y:h(e.y+.5),width:h(Math.max(0,e.width-2*.5)),height:h(Math.max(0,e.height-2*.5)),rx:h(o),ry:h(o),fill:Jb(r,n)})}var Hx=4;function qX(e,t){let n=Math.min(Hx-Si,e.width/2,e.height/2),r=1e-6;return{left:e.x<=t.box.x+Si+r?n:0,right:e.x+e.width>=t.box.x+t.box.width-Si-r?n:0}}function ZX(e,t){let{x:n,y:r,width:i,height:o}=e,s=(a,l,c)=>a>0?` A${h(a)} ${h(a)} 0 0 1 ${h(l)} ${h(c)}`:"";return`M${h(n+t.left)} ${h(r)} H${h(n+i-t.right)}`+s(t.right,n+i,r+t.right)+` V${h(r+o-t.right)}`+s(t.right,n+i-t.right,r+o)+` H${h(n+t.left)}`+s(t.left,n,r+o-t.left)+` V${h(r+t.left)}`+s(t.left,n+t.left,r)+" Z"}function zx(e,t,n){let r=o=>n&&(n.left>0||n.right>0)?H("path",{d:ZX(t,n),...o}):H("rect",{x:h(t.x),y:h(t.y),width:h(t.width),height:h(t.height),...o}),i=r({fill:e.style.stripFill});return e.style.tint?i+r({fill:e.style.tint,"fill-opacity":El}):i}function nN(e,t){let n=e.timeline,r=n.waveStrip;if(!e.waves||!r)return"";let i=[H("rect",{x:h(n.box.x),y:h(r.y),width:h(n.box.width),height:h(r.height),rx:Hx,ry:Hx,fill:t.timeline.panelFill,stroke:t.timeline.border,"stroke-width":1})];for(let o of e.waves){let s=o.strip.cell;s&&i.push(H("g",{"data-id":o.id},`<title>${tt(o.strip.tooltip)}</title>${zx(o,s,qX(s,n))}`))}return H("g",{"data-layer":"wave-strip"},i.join(""))}function Lp(e,t){let n=[];for(let r of e){if(!r.style.tint||r.empty)continue;let i=t?Np(r.columnBox,t):r.columnBox;!i||i.width<=0||i.height<=0||n.push(H("rect",{x:h(i.x),y:h(i.y),width:h(i.width),height:h(i.height),fill:r.style.tint,"fill-opacity":hy}))}return n.length===0?"":H("g",{"data-layer":"wave-bg"},n.join(""))}function Op(e,t){let n=[];for(let r of e??[]){let i=r.topY,o=r.bottomY;t&&(r.x<=t.x||r.x>=t.x+t.width||(i=Math.max(i,t.y),o=Math.min(o,t.y+t.height),o<=i))||n.push(H("line",{x1:h(r.x),y1:h(i),x2:h(r.x),y2:h(o),stroke:r.stroke,"stroke-width":cy,"stroke-dasharray":r.dash}))}return n.length===0?"":H("g",{"data-layer":"wave-boundary"},n.join(""))}function rN(e,t,n){let i=e.timeline.waveStrip;if(!e.waves||!i)return"";let o=i.y+i.height/2+YX,s=[],a=(l,c,u)=>H("rect",{x:h(u.x),y:h(u.y),width:h(u.width),height:h(u.height),fill:t.timeline.panelFill})+ae({x:h(l),y:h(o),"font-family":n.sans,"font-size":Un,"font-style":"italic",fill:t.wave.labelMuted,"text-anchor":"middle"},c);for(let l of e.waves){if(l.strip.gapLabel){let{text:d,x:p,halo:m}=l.strip.gapLabel;s.push(a(p,d,m))}if(!l.strip.cell)continue;let{labelDraw:c,superscripts:u,inlineDatePin:f}=l.strip;if(f&&s.push(Yl([f],l.style.text)),u&&s.push(zx(l,u.halo)),l.strip.label!==void 0&&c&&(s.push(zx(l,c.halo)),s.push(ae({x:h(c.x),y:h(o),"font-family":n.sans,"font-size":Un,"font-weight":600,fill:l.style.text,"text-anchor":"middle"},l.strip.label))),u){let d=u.rightX;for(let p=l.footnoteIndicators.length-1;p>=0;p--)s.push(ae({x:h(d),y:h(i.y+KX),"font-family":n.sans,"font-size":VX,"font-weight":700,fill:l.style.text,"text-anchor":"end"},String(l.footnoteIndicators[p]))),d-=Xt}}return s.length===0?"":H("g",{"data-layer":"wave-labels"},s.join(""))}function Pp(e){if(!e||e.length===0)return"";let t=e.map(n=>H("line",{x1:h(n.x),y1:h(n.topY),x2:h(n.x),y2:h(n.bottomY),stroke:n.stroke,"stroke-width":1,"stroke-dasharray":uy}));return H("g",{"data-layer":"wave-cross"},t.join(""))}function JX(e){let t=e.entities.item.bg;return t==="none"?"transparent":t}function iN(e,t,n,r){if(!e)return"";let i=[];for(let o of e.entries){let s=o.swatch,a=JX(n),l={x:h(s.x),y:h(s.y),width:h(s.width),height:h(s.height)};i.push(H("rect",{...l,rx:2,ry:2,fill:a,stroke:n.entities.item.fg,"stroke-width":1})),i.push(H("rect",{x:h(s.x+.5),y:h(s.y+.5),width:h(s.width-1),height:h(s.height-1),rx:2,ry:2,fill:Jb(t,o.hatch)}));for(let c of o.runs)i.push(ae({x:h(c.x),y:h(c.y),"font-family":r.sans,"font-size":Un,fill:n.wave.labelText},c.text))}return H("g",{"data-layer":"wave-legend"},i.join(""))}function oN(e,t){let n=e;for(let r of t.iconDxTerms??[])n+=r;return n}function jx(e,t,n,r,i,o){let s=t,{text:a,icon:l}=e,c={"font-family":i,"font-size":r,fill:o};if(!l)return ae({x:h(s),y:h(n),...c},a);if(l.kind==="builtin"&&l.name==="multiplier")return ae({x:h(s),y:h(n),...c},`${a}\xD7`);if(l.kind==="builtin"){let f=wn[l.name],d=ae({x:h(s),y:h(n),...c},a),p=r,m=oN(t,e),g=n-r*.85,E=`<svg x="${h(m)}" y="${h(g)}" width="${h(p)}" height="${h(p)}" viewBox="${f.viewBox}" style="color:${an(o)}" aria-hidden="true">${f.body}</svg>`;return d+E}let u=h(r*.1);return`<text x="${h(s)}" y="${h(n)}" font-family="${an(i)}" font-size="${r}" fill="${an(o)}">${tt(a)}<tspan dx="${u}">${tt(l.text)}</tspan></text>`}function QX(e){let{metaText:t,capacity:n,x:r,baselineY:i,fontSize:o,fontFamily:s,color:a}=e;if(!t&&!n)return"";let l={"font-family":s,"font-size":o,fill:a};if(!n)return ae({x:h(r),y:h(i),...l},t);if(!t)return jx(n,r,i,o,s,a);let c=h(o*ss),u=`<text x="${h(r)}" y="${h(i)}" font-family="${an(s)}" font-size="${o}" fill="${an(a)}">`,{text:f,icon:d}=n;if(!d)return u+tt(t)+`<tspan dx="${c}">${tt(f)}</tspan></text>`;if(d.kind==="builtin"&&d.name==="multiplier")return u+tt(t)+`<tspan dx="${c}">${tt(f)}\xD7</tspan></text>`;if(d.kind==="literal"){let k=h(o*.1);return u+tt(t)+`<tspan dx="${c}">${tt(f)}</tspan><tspan dx="${k}">${tt(d.text)}</tspan></text>`}let p=n.iconDxTerms??[],m=r;for(let k of p.slice(0,2))m+=k;let g=wn[d.name],E=o,x=oN(r,n),y=i-o*.85,w=u+tt(t)+"</text>"+ae({x:h(m),y:h(i),...l},f),_=`<svg x="${h(x)}" y="${h(y)}" width="${h(E)}" height="${h(E)}" viewBox="${g.viewBox}" style="color:${an(a)}" aria-hidden="true">${g.body}</svg>`;return w+_}function eU(e,t){let n=Vb.calendar,r=`<svg x="${h(e.glyphTopLeft.x)}" y="${h(e.glyphTopLeft.y)}" width="${h(e.glyphSize)}" height="${h(e.glyphSize)}" viewBox="${n.viewBox}" style="color:${an(t)}" aria-hidden="true">${n.body}</svg>`,i=`<title>${tt(e.isoDate)}</title>`;return H("g",{"data-layer":"inline-date-pin","data-side":e.side,"data-date":e.isoDate,"data-spilled":e.spilled?"true":null},i+r)}function Yl(e,t){return!e||e.length===0?"":e.map(n=>eU(n,t)).join("")}function sN(e){return e?.some(t=>t.side==="after")??!1}function tU(e){let t=[];return e.titleTruncated&&t.push(e.title),e.waveTooltip!==void 0&&t.push(e.waveTooltip),t.length>0?`<title>${tt(t.join(`
|
|
2920
|
-
`))}</title>`:""}function nU(e,t){let n=[],r=qb(t,e.style.shadow);return n.push(Kb(e.box.x,e.box.y,e.box.width,e.box.height,e.style,{filter:r??null})),e.waveRole==="background"&&e.waveHatch&&n.push(tN(e.box,e.style,e.waveHatch,t)),n.join("")}function rU(e){if(e.progressFraction>0){let t=Math.max(0,Math.min(e.box.width,e.box.width*e.progressFraction));return H("rect",{x:h(e.box.x),y:h(e.box.y+e.box.height-nn),width:h(t),height:nn,fill:e.style.fg,opacity:.55})}return""}function iU(e){let t=e.dotSpills&&e.dotSpillCx!==null?e.dotSpillCx:e.box.x+e.box.width-vi;return H("circle",{cx:h(t),cy:h(e.box.y+Xg),r:Lr,fill:e.statusDotColor})}function oU(e,t){let n;if(e.textSpills)n=e.box.x+e.box.width+Bn,e.iconSpills&&(n+=Pr+Wt);else{let r=!!e.linkIcon&&e.linkIcon!=="none",o=e.inlineDatePins?.find(s=>s.side==="after"&&!s.spilled)?ds(r,{barWidth:e.box.width}):ds(!t.noLinks&&r&&!e.iconSpills);n=e.box.x+o}return n}function sU(e,t,n,r){let i=[],o=e.style.text,s=n.entities.item.text,a=e.textSpills?s:o,l=e.textSpills?s:e.style.fg,c=e.titleLines??(e.title?[e.title]:[]);return c.forEach((u,f)=>{u!==""&&i.push(ae({x:h(t),y:h(e.box.y+Vf+f*al),"font-family":r[e.style.font],"font-size":Or,"font-weight":600,fill:a},u))}),(e.metaText||e.capacity)&&i.push(QX({metaText:e.metaText,capacity:e.capacity,x:t,baselineY:e.box.y+Kf(c.length),fontSize:sl,fontFamily:r[e.style.font],color:l})),i.join("")}function aU(e,t,n){let r=[],i=t.entities.item.text;if(e.footnoteIndicators.length>0){let o=e.box.y+Ug;if(e.footnoteSpills&&e.footnoteSpillStartX!==null){let s=e.footnoteSpillStartX;for(let a=0;a<e.footnoteIndicators.length;a++){let l=e.footnoteIndicators[a];r.push(ae({x:h(s),y:h(o),"font-family":n.sans,"font-size":ll,"font-weight":700,fill:i},String(l))),s+=Xt}}else{let s=e.box.x+e.box.width-fs;for(let a=e.footnoteIndicators.length-1;a>=0;a--){let l=e.footnoteIndicators[a];r.push(ae({x:h(s),y:h(o),"font-family":n.sans,"font-size":ll,"font-weight":700,fill:e.style.text,"text-anchor":"end"},String(l))),s-=Xt}}}return r.join("")}function lU(e,t,n){let r=[];if(!t.noLinks&&e.linkIcon&&e.linkIcon!=="none"){let i={linear:"#5e6ad2",github:"#0f172a",jira:"#0052cc",generic:n.item.linkIconFg},o=i[e.linkIcon]??i.generic,s=Pr,a=e.iconSpills&&e.iconSpillX!==null?e.iconSpillX:e.box.x+Ai,l=e.box.y+Ai,c=H("rect",{x:h(a),y:h(l),width:s,height:s,rx:2,ry:2,fill:o}),u=a,f=l,d=H("path",{d:`M${h(u+4)} ${h(f+10)} L${h(u+10)} ${h(f+4)} M${h(u+6)} ${h(f+4)} H${h(u+10)} V${h(f+8)}`,stroke:"#ffffff",fill:"none","stroke-width":1.1,"stroke-linecap":"round","stroke-linejoin":"round"}),p=c+d,m=e.linkHref?H("a",{href:e.linkHref,target:"_blank",rel:"noopener"},p):p;r.push(m)}return r.join("")}function cU(e,t,n){let r=[];if(e.hasOverflow&&e.overflowBox){let i=t.item.overflowTailFill,o=t.item.overflowTailStroke,s=t.item.overflowCaption;r.push(H("rect",{x:h(e.overflowBox.x),y:h(e.overflowBox.y),width:h(e.overflowBox.width),height:h(e.overflowBox.height),fill:i,stroke:o,"stroke-width":1})),e.overflowAnchorId&&e.overflowBox.width>60&&r.push(ae({x:h(e.overflowBox.x+e.overflowBox.width/2),y:h(e.overflowBox.y+e.overflowBox.height/2+3),"font-family":n.sans,"font-size":9,"font-weight":700,fill:s,"text-anchor":"middle"},`past ${e.overflowAnchorId}`))}return r.join("")}function uU(e,t){let n=[];for(let r of e.labelChips){let i=Math.min(Ii[r.style.cornerRadius]??8,r.box.height/2);n.push(H("rect",{x:h(r.box.x),y:h(r.box.y),width:h(r.box.width),height:h(r.box.height),rx:h(i),ry:h(i),fill:r.style.bg==="none"?"transparent":r.style.bg,stroke:r.style.fg,"stroke-width":.5})),n.push(ae({x:h(r.box.x+r.box.width/2),y:h(r.box.y+r.box.height/2+3),...bp(r.style,t,ki.xs),"text-anchor":"middle"},r.text))}return n.join("")}function aN(e,t,n,r,i){let o=[];return o.push(tU(e)),o.push(nU(e,n)),o.push(rU(e)),o.push(iU(e)),o.push(Yl(e.inlineDatePins,e.style.fg)),o.push(sU(e,oU(e,t),r,i)),o.push(aU(e,r,i)),o.push(lU(e,t,r)),o.push(cU(e,r,i)),o.push(uU(e,i)),H("g",{"data-layer":"item","data-id":e.id??null},o.join(""))}function fU(e,t,n,r,i,o){let s=[];if(!(e.kind==="group"&&e.waveOnly)){let l=e.box.y+e.headerHeight,c=e.box.height-e.headerHeight;if(e.style.bg!=="none"){let f=t<=wy;s.push(H("rect",{x:h(e.box.x),y:h(l),width:h(e.box.width),height:h(c),fill:f?e.style.bg:"none","fill-opacity":f?t===1?xy:Ey:null,stroke:f?null:e.style.bg,"stroke-opacity":f?null:.6,"stroke-width":f?null:1}))}let u=e.kind==="group"?e.style.fg:i.parallel.bracketStroke;if(e.headerHeight>0&&e.style.bracket!=="none"){let f=e.box.y+wl,d=e.box.x,p=e.box.x+e.box.width;s.push(H("path",{d:`M${h(d)} ${h(l)} V${h(f)} H${h(p)} V${h(l)}`,fill:"none",stroke:u,"stroke-width":1.2,"stroke-dasharray":e.style.bracket==="dashed"?"3 2":null}))}e.title&&e.headerHeight>0&&s.push(ae({x:h(ys(e.box.x,sN(e.inlineDatePins))),y:h(e.box.y+yy),...bp(e.style,o,ud),"font-weight":600,fill:u},e.title)),s.push(Yl(e.inlineDatePins,e.style.fg))}for(let l of e.children)s.push(cN(l,n,r,i,o,t));return H("g",{"data-layer":e.kind,"data-id":e.id??null},s.join(""))}function cN(e,t,n,r,i,o=0){return e.kind==="item"?aN(e,t,n,r,i):fU(e,o+1,t,n,r,i)}var lN=2;function dU(e,t){switch(e){case"green":return t.swimlane.utilizationOk;case"yellow":return t.swimlane.utilizationWarn;case"red":return t.swimlane.utilizationOver}}function pU(e,t){if(!e.utilization||e.utilization.segments.length===0)return"";let n=e.box.y+e.box.height-lN,r=e.utilization.segments.map(i=>{let o=i.endX-i.startX;return o<=0?"":H("rect",{x:h(i.startX),y:h(n),width:h(o),height:lN,fill:dU(i.classification,t),"data-utilization":i.classification,"data-load":h(i.load)})});return H("g",{"data-layer":"lane-utilization","data-id":e.id??null},r.join(""))}function uN(e,t){let n=e.bandIndex%2===0?t.swimlane.rowTintEven:t.swimlane.rowTintOdd,r=t.swimlane.border;return H("g",{"data-layer":"swimlane-bg","data-id":e.id??null},H("rect",{x:h(e.box.x),y:h(e.box.y),width:h(e.box.width),height:h(e.box.height),fill:n,stroke:r,"stroke-width":1}))}function Cp(e,t,n,r,i){let o=r.swimlane.tabFill,s=r.swimlane.tabStroke,a=r.swimlane.tabText,l=r.swimlane.ownerText,c=r.swimlane.footnoteIndicator,u=[],f=e.tab;if(f){let p=e.footnoteIndicators.length>0?e.footnoteIndicators.join(","):"",m=pl,g=e.box.y+10,E=g+hl;if(u.push(H("rect",{x:h(f.tabX),y:h(g),width:h(f.tabW),height:h(m),rx:4,ry:4,fill:o,stroke:s,"stroke-width":1})),u.push(ae({x:h(f.titleX),y:h(E),"font-family":i[e.style.font],"font-size":12,"font-weight":600,fill:a},e.title)),e.owner){let x=wn[e.ownerKind==="person"?"person":"people"],y=Tl;u.push(`<svg x="${h(f.ownerX)}" y="${h(E-y*.85)}" width="${h(y)}" height="${h(y)}" viewBox="${x.viewBox}" style="color:${an(l)}" aria-hidden="true">${x.body}</svg>`),u.push(ae({x:h(f.ownerTextX),y:h(E),"font-family":i[e.style.font],"font-size":10,fill:l},e.owner))}e.capacity&&u.push(jx(e.capacity,f.badgeX,E,10,i[e.style.font],l)),p&&u.push(ae({x:h(f.footnoteRightX),y:h(g+14),"font-family":i.sans,"font-size":10,"font-weight":700,fill:c,"text-anchor":"end"},p))}for(let d of e.children)u.push(cN(d,t,n,r,i));return u.push(pU(e,r)),H("g",{"data-layer":"swimlane","data-id":e.id??null},u.join(""))}function dN(e,t,n){let r=n.timeline.gridLine,i=n.timeline.minorGridLine,o=e.bottomTickPanelHeight??0,s=e.bottomTickPanelY!==void 0&&o>0,a=e.tickPanelY,l=s?e.bottomTickPanelY+o:e.box.y+e.box.height,c=t,u=e.box.y+e.box.height,f=[];for(let d of e.ticks)if(d.major)f.push(H("line",{x1:h(d.x),y1:h(a),x2:h(d.x),y2:h(l),stroke:r,"stroke-width":1}));else if(e.minorGrid){if(d.labelX===void 0)continue;f.push(H("line",{x1:h(d.x),y1:h(c),x2:h(d.x),y2:h(u),stroke:i,"stroke-width":1}))}for(let d of e.nonWorking??[])d.seam&&f.push(H("line",{x1:h(d.x),y1:h(c),x2:h(d.x),y2:h(u),stroke:n.timeline.nonWorkingSeam,"stroke-width":1,"stroke-dasharray":"1 3"}));return H("g",{"data-layer":"grid"},f.join(""))}function $p(e,t,n,r){let i=e.box.y+e.box.height,o=[];for(let s of e.nonWorking??[]){if(!s.band)continue;let a={x:s.x,y:t,width:s.width,height:i-t},l=r?Np(a,r):a;!l||l.width<=0||l.height<=0||o.push(H("rect",{x:h(l.x),y:h(l.y),width:h(l.width),height:h(l.height),fill:n.timeline.nonWorkingFill,"fill-opacity":ay}))}return o.length===0?"":H("g",{"data-layer":"non-working"},o.join(""))}function pN(e,t,n){let r=e.box.y+e.box.height,i=[];for(let o of e.nonWorking??[])o.label===void 0||!o.labelBox||(o.cut&&i.push(H("line",{x1:h(o.x),y1:h(o.labelBox.y+4),x2:h(o.x),y2:h(r),stroke:t.timeline.nonWorkingSeam,"stroke-width":1,"stroke-dasharray":"1 3"})),i.push(fN(o.label,o.labelBox,o.labelSide,t,n)));for(let o of e.workingExceptions??[])o.labelBox&&i.push(fN(o.label,o.labelBox,o.labelSide,t,n));return i.length===0?"":H("g",{"data-layer":"non-working-label"},i.join(""))}function fN(e,t,n,r,i){let o=n==="left",s=t.y+4,a={x:h(o?t.x+t.width:t.x),y:h(s+4),"font-family":i.sans,"font-size":10,fill:r.timeline.labelText};return o&&(a["text-anchor"]="end"),ae(a,e)}function hN(e,t,n){let r=t.timeline.panelFill,i=t.timeline.border,o=t.timeline.labelText,s=[],a=e.tickPanelY,l=e.tickPanelHeight,c=l>0,u=e.markerRow.height>0,f=e.waveStrip?e.waveStrip.y+e.waveStrip.height:a+l,d=e.markerRow.height,p=e.bottomTickPanelY,m=e.bottomTickPanelHeight??0,g=p!==void 0&&m>0;c&&s.push(H("rect",{x:h(e.box.x),y:h(a),width:h(e.box.width),height:h(l),rx:4,ry:4,fill:r,stroke:i,"stroke-width":1})),u&&s.push(H("rect",{x:h(e.box.x),y:h(f),width:h(e.box.width),height:h(d),rx:4,ry:4,fill:r,stroke:i,"stroke-width":1})),g&&s.push(H("rect",{x:h(e.box.x),y:h(p),width:h(e.box.width),height:h(m),rx:4,ry:4,fill:r,stroke:i,"stroke-width":1}));for(let E of e.ticks)E.major&&(!E.label||E.labelX===void 0||(c&&s.push(ae({x:h(E.labelX),y:h(a+dl(l)),"font-family":n.sans,"font-size":Ri,fill:o,"text-anchor":"middle"},E.label)),g&&s.push(ae({x:h(E.labelX),y:h(p+dl(m)),"font-family":n.sans,"font-size":Ri,fill:o,"text-anchor":"middle"},E.label))));return H("g",{"data-layer":"timeline"},s.join(""))}function mN(e,t,n,r,i,o){let s=r.includeRegion.border,a=r.includeRegion.fill,l=r.includeRegion.tabFill,c=r.includeRegion.tabStroke,u=r.includeRegion.tabText,f=r.includeRegion.badgeFill,d=r.includeRegion.badgeStroke,p=r.includeRegion.badgeText,m=e.box.x+8,g=e.box.y,E=e.box.width-16,x=e.box.height,y=H("rect",{x:h(m),y:h(g),width:h(E),height:h(x),rx:8,ry:8,fill:a,stroke:s,"stroke-width":1,"stroke-dasharray":ml}),w=pl,_=_l(e.box.x,e.label,e.sourcePath),k=g-w/2,N=H("rect",{x:h(_.tabX),y:h(k),width:h(_.tabWidth),height:w,rx:4,ry:4,fill:l,stroke:c,"stroke-width":1}),B=ae({x:h(_.tabLabelX),y:h(k+hl),"font-family":i.sans,"font-size":11,"font-weight":600,fill:u},e.label),$=_.badgeX,X=_.badgeSize,j=g-X/2,D=H("rect",{x:h($),y:h(j),width:X,height:X,rx:4,ry:4,fill:f,stroke:d,"stroke-width":1}),I=H("path",{d:`M${h($+7)} ${h(j+4)} H${h($+14)} V${h(j+11)} M${h($+4)} ${h(j+7)} H${h($+11)} V${h(j+14)} H${h($+4)} Z`,stroke:p,"stroke-width":1.4,fill:"none","stroke-linecap":"round","stroke-linejoin":"round"}),R=9,P=g+4,A=H("rect",{x:h(_.sourceHaloX),y:h(P-R),width:h(_.sourceHaloWidth),height:R+6,fill:a}),L=ae({x:h(_.sourceTextX),y:h(P),"font-family":i.mono,"font-size":R,fill:p},e.sourcePath),T={x:m,y:g,width:E,height:x},O=o?$p(o.timeline,o.chartBox.y,r,T):"",S=o?.waves?Lp(o.waves,T)+Op(o.waveBoundaries,T):"",F=o?.waves?Pp(e.waveCrossings):"",z=e.nestedSwimlanes.map(v=>Cp(v,t,n,r,i)).join(""),U=(e.edges??[]).map(v=>vp(v,r)).join(""),ee=e.anchors??[],Y=e.milestones??[],ne=ee.map(v=>Ip(v,r)).join("")+Y.map(v=>Sp(v,n,r)).join("")+ee.map(v=>kp(v,r,i)).join("")+Y.map(v=>Rp(v,r,i)).join("");return H("g",{"data-layer":"include"},y+O+S+U+z+F+ne+N+B+D+I+A+L)}function gN(e,t,n){if(!e)return"";let r=t.nowline.stroke,i=t.nowline.labelText,o=H("line",{x1:h(e.x),y1:h(e.topY),x2:h(e.x),y2:h(e.bottomY),stroke:r,"stroke-width":Qf}),s=hU(e,r),a=mU(e,i,n);return H("g",{"data-layer":"nowline"},o+s+a)}function yN(e){let t=Qf/2;return e.pillMode==="flag-right"?e.x-t:e.pillMode==="flag-left"?e.x+t:e.x}function hU(e,t){let n=e.pillTopY,r=e.pillTopY+Ut,i=Zg,o=e.pillWidth;if(e.pillMode==="center")return H("rect",{x:h(e.x-o/2),y:h(n),width:h(o),height:h(Ut),rx:i,ry:i,fill:t});let s=yN(e);if(e.pillMode==="flag-right"){let c=s+o,u=[`M ${h(s)} ${h(n)}`,`L ${h(c-i)} ${h(n)}`,`A ${i} ${i} 0 0 1 ${h(c)} ${h(n+i)}`,`L ${h(c)} ${h(r-i)}`,`A ${i} ${i} 0 0 1 ${h(c-i)} ${h(r)}`,`L ${h(s)} ${h(r)}`,"Z"].join(" ");return H("path",{d:u,fill:t})}let a=s-o,l=[`M ${h(s)} ${h(n)}`,`L ${h(a+i)} ${h(n)}`,`A ${i} ${i} 0 0 0 ${h(a)} ${h(n+i)}`,`L ${h(a)} ${h(r-i)}`,`A ${i} ${i} 0 0 0 ${h(a+i)} ${h(r)}`,`L ${h(s)} ${h(r)}`,"Z"].join(" ");return H("path",{d:l,fill:t})}function mU(e,t,n){let r=e.pillTopY+Jg,i=yN(e),o,s;return e.pillMode==="center"?(o=e.x,s="middle"):e.pillMode==="flag-right"?(o=i+hs,s="start"):(o=i-hs,s="end"),ae({x:h(o),y:h(r),"font-family":n.sans,"font-size":gl,"font-weight":700,fill:t,"text-anchor":s},e.label)}async function Yx(e,t={}){let r=new Ap(t.idPrefix??"nl").next("root"),i=e.palette,o=t.fontFamilies??sy,s=[],a=(u,f)=>`<marker id="${u}" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" fill="${f}"/></marker>`,l=`<defs>${Zb(r)}`+a(`${r}-arrow-dark`,i.arrowhead.dark)+eN(e).map(u=>Qb(r,u,i)).join("")+"</defs>";s.push(l),s.push(H("rect",{x:0,y:0,width:h(e.width),height:h(e.height),fill:e.backgroundColor})),s.push(hN(e.timeline,i,o)),s.push(nN(e,i));for(let u of e.swimlanes)s.push(uN(u,i));s.push($p(e.timeline,e.chartBox.y,i)),e.waves&&s.push(Lp(e.waves)),s.push(dN(e.timeline,e.chartBox.y,i)),s.push(Op(e.waveBoundaries)),s.push(rN(e,i,o));for(let u of e.edges)s.push(vp(u,i));for(let u of e.swimlanes)s.push(Cp(u,t,r,i,o));for(let u of e.includes)s.push(mN(u,t,r,i,o,e));s.push(Pp(e.waveCrossings));for(let u of e.anchors)s.push(Ip(u,i));for(let u of e.milestones)s.push(Sp(u,r,i));s.push(pN(e.timeline,i,o));for(let u of e.anchors)s.push(kp(u,i,o));for(let u of e.milestones)s.push(Rp(u,i,o));if(s.push(gN(e.nowline,i,o)),s.push(Gb(e.footnotes,r,i,o)),s.push(iN(e.waveLegend,r,i,o)),s.push(Hb(e.header,r,i,o)),s.push(zb(e,o)),e.header.logo&&(t.logo||t.assetResolver)){let u=await jb(e.header.logo,t.assetResolver,r,t);u&&s.push(u)}return`<svg${$s({xmlns:"http://www.w3.org/2000/svg",viewBox:`0 0 ${h(e.width)} ${h(e.height)}`,width:h(e.width),height:h(e.height),"data-theme":e.theme,"data-generator":"nowline"})}>${s.join("")}</svg>`}var Vx="/browser-source.nowline",gU={error:3,warning:2,info:1},yU={error:3,warning:2,info:1};function xN(e,t){return gU[e]>=yU[t]}var Dp,EN=0;function wN(){return Dp||(Dp=Vy()),Dp}function xU(){return Ce.parse(`memory:///nowline-browser-${++EN}.nowline`)}async function Kx(e,t={}){let n=t.filePath??Vx,r=wN(),o=r.shared.workspace.LangiumDocumentFactory.fromString(e,xU());return await r.shared.workspace.DocumentBuilder.build([o],{validation:!0}),{ast:o.parseResult.value,diagnostics:TN(o,n)}}function TN(e,t){return _N(bi(e),t)}function _N(e,t){return e.map(n=>n.origin==="lexer"?Wx(n.error,t):n.origin==="parser"?Bx(n.error,t):kb(n.diagnostic,t))}async function qx(e,t={}){let n=t.filePath??Vx,r=wN(),i,o;if(t.timezone)try{i=Mx(t.timezone)}catch(w){if(!(w instanceof Bi))throw w;o=w}let s=o?void 0:Fx({now:t.today,zone:i}),a=await Gx({source:e,sourcePath:n,services:r,readSource:t.readFile??Nb,assetResolver:t.assetResolver,isToleratedIncludeError:w=>Xx(w.message),layout:{theme:t.theme,today:s,locale:t.locale,width:t.width,nonWorking:t.nonWorking}});if(a.kind==="invalid")return{kind:"diagnostics",diagnostics:_N(a.diagnostics,n)};let l=a.kind==="include-error"&&a.legacy!==void 0,c=TN(a.document,n);for(let w of a.resolved.diagnostics){if(w.severity==="error"&&Xx(w.message)){t.onSkippedInclude?.({sourcePath:w.sourcePath,message:w.message});continue}l&&Fr(w)||c.push(Ib(w))}if(a.kind==="include-error"||c.some(w=>w.severity==="error"))return{kind:"diagnostics",diagnostics:c};if(o)return{kind:"diagnostics",diagnostics:[{severity:"error",code:"invalid-timezone",message:o.message,file:n,line:1,column:1}]};let u=[...a.warnings],{logo:f,model:d}=a,p=t.diagnosticLevel??"error",m=Dx(d,{today:s??void 0,locale:t.locale??"en-US"}).map(w=>Sb(w,n)),g=t.showLinks!==!1,E=t.strict===!0,x=await Yx(d,{idPrefix:t.idPrefix,assetResolver:t.assetResolver,logo:f,noLinks:!g,strict:E,warn:w=>u.push(w),fontFamilies:t.fontFamilies}),y=[...m,...u.map(w=>Rb(w,n,E?"error":"warning"))].filter(w=>xN(w.severity,p));return E&&y.length>0?{kind:"diagnostics",diagnostics:[...c,...y]}:{kind:"svg",svg:x,warnings:y}}function Zx(){Dp=void 0,EN=0}var vN="/embed.nowline",Jx=!1;async function AN(e){let{ast:t,diagnostics:n}=await Kx(e,{filePath:vN});return{ast:t,errors:n.filter(r=>r.severity==="error").map(r=>r.message)}}async function Mp(e,t={}){let n={filePath:vN,theme:t.theme,today:t.today,timezone:t.timezone,locale:t.locale,width:t.width,nonWorking:t.nonWorking,idPrefix:t.idPrefix,onSkippedInclude:()=>{Jx||(Jx=!0,console.warn("nowline: `include` directives are skipped in the browser embed (single-file mode). Render multi-file roadmaps with the CLI or the GitHub Action."))}},r=await qx(e,n);if(r.kind==="svg")return r.svg;let i=r.diagnostics.filter(o=>o.severity==="error").map(o=>o.message);throw new Vl(`Failed to render Nowline source: ${i.join("; ")}`,i)}var Vl=class extends Error{constructor(n,r){super(n);M(this,"details",r);this.name="EmbedRenderError"}};function kN(){Jx=!1,Zx()}var ln=Uint8Array,Ct=Uint16Array,rE=Int32Array,iE=new ln([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),oE=new ln([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),IN=new ln([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),NN=function(e,t){for(var n=new Ct(31),r=0;r<31;++r)n[r]=t+=1<<e[r-1];for(var i=new rE(n[30]),r=1;r<30;++r)for(var o=n[r];o<n[r+1];++o)i[o]=o-n[r]<<5|r;return{b:n,r:i}},LN=NN(iE,2),EU=LN.b,eE=LN.r;EU[28]=258,eE[258]=28;var ON=NN(oE,0),Sle=ON.b,RN=ON.r,tE=new Ct(32768);for(xe=0;xe<32768;++xe)Zn=(xe&43690)>>1|(xe&21845)<<1,Zn=(Zn&52428)>>2|(Zn&13107)<<2,Zn=(Zn&61680)>>4|(Zn&3855)<<4,tE[xe]=((Zn&65280)>>8|(Zn&255)<<8)>>1;var Zn,xe,Zl=(function(e,t,n){for(var r=e.length,i=0,o=new Ct(t);i<r;++i)e[i]&&++o[e[i]-1];var s=new Ct(t);for(i=1;i<t;++i)s[i]=s[i-1]+o[i-1]<<1;var a;if(n){a=new Ct(1<<t);var l=15-t;for(i=0;i<r;++i)if(e[i])for(var c=i<<4|e[i],u=t-e[i],f=s[e[i]-1]++<<u,d=f|(1<<u)-1;f<=d;++f)a[tE[f]>>l]=c}else for(a=new Ct(r),i=0;i<r;++i)e[i]&&(a[i]=tE[s[e[i]-1]++]>>15-e[i]);return a}),Wi=new ln(288);for(xe=0;xe<144;++xe)Wi[xe]=8;var xe;for(xe=144;xe<256;++xe)Wi[xe]=9;var xe;for(xe=256;xe<280;++xe)Wi[xe]=7;var xe;for(xe=280;xe<288;++xe)Wi[xe]=8;var xe,Fp=new ln(32);for(xe=0;xe<32;++xe)Fp[xe]=5;var xe,wU=Zl(Wi,9,0);var TU=Zl(Fp,5,0);var PN=function(e){return(e+7)/8|0},_U=function(e,t,n){return(t==null||t<0)&&(t=0),(n==null||n>e.length)&&(n=e.length),new ln(e.subarray(t,n))};var Jn=function(e,t,n){n<<=t&7;var r=t/8|0;e[r]|=n,e[r+1]|=n>>8},Kl=function(e,t,n){n<<=t&7;var r=t/8|0;e[r]|=n,e[r+1]|=n>>8,e[r+2]|=n>>16},Qx=function(e,t){for(var n=[],r=0;r<e.length;++r)e[r]&&n.push({s:r,f:e[r]});var i=n.length,o=n.slice();if(!i)return{t:$N,l:0};if(i==1){var s=new ln(n[0].s+1);return s[n[0].s]=1,{t:s,l:1}}n.sort(function(k,N){return k.f-N.f}),n.push({s:-1,f:25001});var a=n[0],l=n[1],c=0,u=1,f=2;for(n[0]={s:-1,f:a.f+l.f,l:a,r:l};u!=i-1;)a=n[n[c].f<n[f].f?c++:f++],l=n[c!=u&&n[c].f<n[f].f?c++:f++],n[u++]={s:-1,f:a.f+l.f,l:a,r:l};for(var d=o[0].s,r=1;r<i;++r)o[r].s>d&&(d=o[r].s);var p=new Ct(d+1),m=nE(n[u-1],p,0);if(m>t){var r=0,g=0,E=m-t,x=1<<E;for(o.sort(function(N,B){return p[B.s]-p[N.s]||N.f-B.f});r<i;++r){var y=o[r].s;if(p[y]>t)g+=x-(1<<m-p[y]),p[y]=t;else break}for(g>>=E;g>0;){var w=o[r].s;p[w]<t?g-=1<<t-p[w]++-1:++r}for(;r>=0&&g;--r){var _=o[r].s;p[_]==t&&(--p[_],++g)}m=t}return{t:new ln(p),l:m}},nE=function(e,t,n){return e.s==-1?Math.max(nE(e.l,t,n+1),nE(e.r,t,n+1)):t[e.s]=n},SN=function(e){for(var t=e.length;t&&!e[--t];);for(var n=new Ct(++t),r=0,i=e[0],o=1,s=function(l){n[r++]=l},a=1;a<=t;++a)if(e[a]==i&&a!=t)++o;else{if(!i&&o>2){for(;o>138;o-=138)s(32754);o>2&&(s(o>10?o-11<<5|28690:o-3<<5|12305),o=0)}else if(o>3){for(s(i),--o;o>6;o-=6)s(8304);o>2&&(s(o-3<<5|8208),o=0)}for(;o--;)s(i);o=1,i=e[a]}return{c:n.subarray(0,r),n:t}},ql=function(e,t){for(var n=0,r=0;r<t.length;++r)n+=e[r]*t[r];return n},CN=function(e,t,n){var r=n.length,i=PN(t+2);e[i]=r&255,e[i+1]=r>>8,e[i+2]=e[i]^255,e[i+3]=e[i+1]^255;for(var o=0;o<r;++o)e[i+o+4]=n[o];return(i+4+r)*8},bN=function(e,t,n,r,i,o,s,a,l,c,u){Jn(t,u++,n),++i[256];for(var f=Qx(i,15),d=f.t,p=f.l,m=Qx(o,15),g=m.t,E=m.l,x=SN(d),y=x.c,w=x.n,_=SN(g),k=_.c,N=_.n,B=new Ct(19),$=0;$<y.length;++$)++B[y[$]&31];for(var $=0;$<k.length;++$)++B[k[$]&31];for(var X=Qx(B,7),j=X.t,D=X.l,I=19;I>4&&!j[IN[I-1]];--I);var R=c+5<<3,P=ql(i,Wi)+ql(o,Fp)+s,A=ql(i,d)+ql(o,g)+s+14+3*I+ql(B,j)+2*B[16]+3*B[17]+7*B[18];if(l>=0&&R<=P&&R<=A)return CN(t,u,e.subarray(l,l+c));var L,T,O,S;if(Jn(t,u,1+(A<P)),u+=2,A<P){L=Zl(d,p,0),T=d,O=Zl(g,E,0),S=g;var F=Zl(j,D,0);Jn(t,u,w-257),Jn(t,u+5,N-1),Jn(t,u+10,I-4),u+=14;for(var $=0;$<I;++$)Jn(t,u+3*$,j[IN[$]]);u+=3*I;for(var z=[y,k],U=0;U<2;++U)for(var ee=z[U],$=0;$<ee.length;++$){var Y=ee[$]&31;Jn(t,u,F[Y]),u+=j[Y],Y>15&&(Jn(t,u,ee[$]>>5&127),u+=ee[$]>>12)}}else L=wU,T=Wi,O=TU,S=Fp;for(var $=0;$<a;++$){var ne=r[$];if(ne>255){var Y=ne>>18&31;Kl(t,u,L[Y+257]),u+=T[Y+257],Y>7&&(Jn(t,u,ne>>23&31),u+=iE[Y]);var v=ne&31;Kl(t,u,O[v]),u+=S[v],v>3&&(Kl(t,u,ne>>5&8191),u+=oE[v])}else Kl(t,u,L[ne]),u+=T[ne]}return Kl(t,u,L[256]),u+T[256]},vU=new rE([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),$N=new ln(0),AU=function(e,t,n,r,i,o){var s=o.z||e.length,a=new ln(r+s+5*(1+Math.ceil(s/7e3))+i),l=a.subarray(r,a.length-i),c=o.l,u=(o.r||0)&7;if(t){u&&(l[0]=o.r>>3);for(var f=vU[t-1],d=f>>13,p=f&8191,m=(1<<n)-1,g=o.p||new Ct(32768),E=o.h||new Ct(m+1),x=Math.ceil(n/3),y=2*x,w=function(le){return(e[le]^e[le+1]<<x^e[le+2]<<y)&m},_=new rE(25e3),k=new Ct(288),N=new Ct(32),B=0,$=0,X=o.i||0,j=0,D=o.w||0,I=0;X+2<s;++X){var R=w(X),P=X&32767,A=E[R];if(g[P]=A,E[R]=P,D<=X){var L=s-X;if((B>7e3||j>24576)&&(L>423||!c)){u=bN(e,l,0,_,k,N,$,j,I,X-I,u),j=B=$=0,I=X;for(var T=0;T<286;++T)k[T]=0;for(var T=0;T<30;++T)N[T]=0}var O=2,S=0,F=p,z=P-A&32767;if(L>2&&R==w(X-z))for(var U=Math.min(d,L)-1,ee=Math.min(32767,X),Y=Math.min(258,L);z<=ee&&--F&&P!=A;){if(e[X+O]==e[X+O-z]){for(var ne=0;ne<Y&&e[X+ne]==e[X+ne-z];++ne);if(ne>O){if(O=ne,S=z,ne>U)break;for(var v=Math.min(z,ne-2),C=0,T=0;T<v;++T){var W=X-z+T&32767,G=g[W],K=W-G&32767;K>C&&(C=K,A=W)}}}P=A,A=g[P],z+=P-A&32767}if(S){_[j++]=268435456|eE[O]<<18|RN[S];var q=eE[O]&31,J=RN[S]&31;$+=iE[q]+oE[J],++k[257+q],++N[J],D=X+O,++B}else _[j++]=e[X],++k[e[X]]}}for(X=Math.max(X,D);X<s;++X)_[j++]=e[X],++k[e[X]];u=bN(e,l,c,_,k,N,$,j,I,X-I,u),c||(o.r=u&7|l[u/8|0]<<3,u-=7,o.h=E,o.p=g,o.i=X,o.w=D)}else{for(var X=o.w||0;X<s+c;X+=65535){var re=X+65535;re>=s&&(l[u/8|0]=c,re=s),u=CN(l,u+1,e.subarray(X,re))}o.i=s}return _U(a,0,r+PN(u)+i)};var DN=function(){var e=1,t=0;return{p:function(n){for(var r=e,i=t,o=n.length|0,s=0;s!=o;){for(var a=Math.min(s+2655,o);s<a;++s)i+=r+=n[s];r=(r&65535)+15*(r>>16),i=(i&65535)+15*(i>>16)}e=r,t=i},d:function(){return e%=65521,t%=65521,(e&255)<<24|(e&65280)<<8|(t&255)<<8|t>>8}}},kU=function(e,t,n,r,i){if(!i&&(i={l:1},t.dictionary)){var o=t.dictionary.subarray(-32768),s=new ln(o.length+e.length);s.set(o),s.set(e,o.length),e=s,i.w=o.length}return AU(e,t.level==null?6:t.level,t.mem==null?i.l?Math.ceil(Math.max(8,Math.min(13,Math.log(e.length)))*1.5):20:12+t.mem,n,r,i)};var MN=function(e,t,n){for(;n;++t)e[t]=n,n>>>=8};var IU=function(e,t){var n=t.level,r=n==0?0:n<6?1:n==9?3:2;if(e[0]=120,e[1]=r<<6|(t.dictionary&&32),e[1]|=31-(e[0]<<8|e[1])%31,t.dictionary){var i=DN();i.p(t.dictionary),MN(e,2,i.d())}};function FN(e,t){t||(t={});var n=DN();n.p(e);var r=kU(e,t,t.dictionary?6:2,4);return IU(r,t),MN(r,r.length-4,n.d()),r}var RU=typeof TextDecoder<"u"&&new TextDecoder,SU=0;try{RU.decode($N,{stream:!0}),SU=1}catch{}var XN="https://free.nowline.io/open";function BN(e){let t=new TextEncoder().encode(e),n=FN(t),r=32768,i="";for(let o=0;o<n.length;o+=r)i+=String.fromCharCode(...n.subarray(o,o+r));return btoa(i).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function sE({source:e,sourceUrl:t,share:n}){if(n===!1||n==="none")return null;if(typeof n=="object")return t!==void 0&&WN(t)?n.remoteUrl.replace("{url}",encodeURIComponent(t)):n.textUrl.replace("{text}",BN(e));let r=n===!0?XN:n,i=new URL(r);return t!==void 0&&WN(t)?i.hash=`url=${encodeURIComponent(t)}`:i.hash=`text=${BN(e)}`,i.toString()}function WN(e){try{return new URL(e).protocol==="https:"}catch{return!1}}var UN=0;async function GN(e){let t=e.document??globalThis.document;if(!t)return{rendered:0,failed:0};let n=t.querySelectorAll(e.selector),r=0,i=0,o=++UN,s=e.share??!0,a=[],l=0;for(let c of Array.from(n)){let u=bU(c);if(!u)continue;let f=NU(c),d=`nl-r${o}-${l++}`,p={theme:e.theme,locale:e.locale,width:e.width,nonWorking:e.nonWorking,today:e.today,timezone:e.timezone,idPrefix:d},m=u.parentElement,g=u.nextSibling,x=c.getAttribute("data-nowline-source-url")??void 0??e.sourceUrl;a.push(Mp(f,p).then(y=>{if(LU(u,y),r++,m!==null){let w=sE({source:f,sourceUrl:x,share:s});if(w!==null){let _=t.createElement("a");_.className="nowline-share",_.href=w,_.target="_blank",_.rel="noopener noreferrer",_.textContent="Share on Nowline",m.insertBefore(_,g)}}},y=>{i++,console.error("nowline: render failed",y)}))}return await Promise.all(a),{rendered:r,failed:i}}function bU(e){let t=e.parentElement;return t&&t.tagName.toUpperCase()==="PRE"?t:e}function NU(e){return e.textContent??""}function LU(e,t){e.outerHTML=t}function HN(){UN=0}function Bp(){if(typeof globalThis>"u")return"light";let e=globalThis.matchMedia;if(typeof e!="function")return"light";try{return e("(prefers-color-scheme: dark)").matches?"dark":"light"}catch{return"light"}}function zN(e,t){return e&&e!=="auto"?ex(e)??t:t}var OU="0.9.0",PU="06f9e6f",CU="pre code.language-nowline, code.language-nowline",jN={theme:"auto",startOnLoad:!0,selector:CU,systemTheme:Bp(),share:!0},Ae={...jN},aE=!1;function $U(e={}){Ae={theme:e.theme??Ae.theme,startOnLoad:e.startOnLoad??Ae.startOnLoad,selector:e.selector??Ae.selector,locale:e.locale??Ae.locale,width:e.width??Ae.width,nonWorking:e.nonWorking??Ae.nonWorking,today:e.today!==void 0?e.today:Ae.today,timezone:e.timezone??Ae.timezone,share:e.share??Ae.share,sourceUrl:e.sourceUrl??Ae.sourceUrl,systemTheme:Bp()}}function YN(){return{theme:zN(Ae.theme,Ae.systemTheme),locale:Ae.locale,width:Ae.width,nonWorking:Ae.nonWorking,today:Ae.today,timezone:Ae.timezone}}async function DU(e,t={}){let n={...YN(),...t};return Mp(e,n)}async function MU(e){return AN(e)}async function lE(e){let t={selector:e?.selector??Ae.selector,theme:e?.theme??YN().theme,locale:e?.locale??Ae.locale,width:e?.width??Ae.width,nonWorking:e?.nonWorking??Ae.nonWorking,today:e?.today!==void 0?e.today:Ae.today,timezone:e?.timezone??Ae.timezone,share:e?.share??Ae.share,sourceUrl:e?.sourceUrl??Ae.sourceUrl,document:e?.document};return GN(t)}var FU=lE;if(typeof document<"u"&&!aE){aE=!0;let e=()=>{Ae.startOnLoad&&lE()};document.readyState==="loading"?document.addEventListener("DOMContentLoaded",e,{once:!0}):queueMicrotask(e)}function BU(){Ae={...jN,systemTheme:Bp()},aE=!1,kN(),HN()}return oL(WU);})();
|
|
2919
|
+
`).map(i=>i.trim()),n=0,r=t.length;for(;n<r&&t[n]==="";)n+=1;for(;r>n&&t[r-1]==="";)r-=1;return t.slice(n,r)}function LB(e,t,n,r=t,i=r){let o=e,s=CS(e);if(s){if(s.length>=2)return{textSpills:!(n<=t&&s.every((u,f)=>se(u,jd)<=(f===0?i:t))),titleLines:s};o=s[0]??""}let a=o.length>0&&se(o,jd)>r,l=n>t;if(!a&&!l)return{textSpills:!1,titleLines:[o]};if(a&&!l)for(let c of[r,i]){let u=wi(o,t,jd,c);if(u.length>=2&&u.length<=Ug&&u.every((f,d)=>se(f,jd)<=(d===0?c:t)))return{textSpills:!1,titleLines:u}}return{textSpills:!0,titleLines:[o]}}function $S(e,t,n){let r=CS(e);return r&&r.length>=2?r:!t.textSpills&&!n&&t.titleLines.length>=2?t.titleLines:[r?r[0]??"":e]}function DS(e){let{visualWidth:t}=e,n=ps(!!e.hasLinkIcon,e.hasAfterGlyph?{barWidth:t}:void 0),r=Math.max(0,t-n-OS),i=NB(e.metaText,e.metaTrailingWidth??0),o=e.titleFirstLineRightReservePx??ul({barWidth:t,footnoteLabels:[],hasBeforeGlyph:!1}),s=Math.max(0,t-n-o),a=Math.max(s,t-n-Math.max(OS,o-Xt));return{leftInset:n,fit:LB(e.title,r,i,s,a)}}var PB;function MS(e,t,n){PB?.(e,t,n)}var Yd=class{constructor(t){M(this,"geometry");this.geometry=t}get id(){return this.geometry.id}measure(t){return{width:this.geometry.naturalWidth,height:t.bands.bandwidth()+this.geometry.barExtra}}place(t,n){let{naturalWidth:r,visualWidth:i,caption:o,barExtra:s}=this.geometry,a=n.bands.bandwidth(),l=t.x+Vd(r),c={x:l,y:t.y,width:i,height:s>0?a+s:a},{textSpills:u,titleLines:f}=o.fit,d=u?l+i+SB:l+o.leftInset;return{id:this.geometry.id,box:c,textX:d,textSpills:u,titleLines:f}}};function OB(e){switch(e){case"done":case"completed":return"done";case"in-progress":case"active":return"in-progress";case"at-risk":case"blocked":case"planned":return e;case void 0:return"planned";default:return"neutral"}}function CB(e){if(!e)return 0;let t=/^(\d{1,3})%$/.exec(e);return t?Math.max(0,Math.min(100,parseInt(t[1],10)))/100:0}function $B(e,t){if(e)return/^\d+(?:\.\d+)?[dwmqy]$/.test(e)||/^\d+%$/.test(e)?e:t.sizes.get(e)?.effortLiteral??e}function DB(e,t){if(e)return t.teams.get(e)?.title??t.persons.get(e)?.title??e}function MB(e){if(!e)return{icon:"none"};let t=e.toLowerCase();return t.includes("linear.app")?{icon:"linear",href:e}:t.includes("github.com")?{icon:"github",href:e}:t.includes("atlassian.net")||t.includes("jira.")?{icon:"jira",href:e}:{icon:"generic",href:e}}function Kd(e,t,n,r,i){let o=iS(e,t),s=e.name??e.title??"",a=o.padding==="none"?"xs":o.padding,l=wk[a],c=Math.max(20,Math.round(s.length*5.5+l*2));return i!==void 0&&(c=Math.min(c,i)),{text:s,style:o,box:{x:n,y:r,width:c,height:$r}}}function FB(e,t){let n=qA(e,t.sizes,t.cal),r=VA(ie(e,"remaining"),t.sizes,t.cal),i=ie(e,"status"),o=OB(i),s=CB(i);s===0&&o==="done"&&(s=1);let a=/^(\d{1,3})%$/.exec(ie(e,"remaining")??"");return s===0&&o==="in-progress"&&a&&(s=1-Math.max(0,Math.min(100,parseInt(a[1],10)))/100),s===0&&o==="in-progress"&&r>0&&n>0&&(s=Math.max(0,Math.min(1,1-r/n))),{status:o,progress:s}}function BB(e,t,n,r,i,o){let s=ie(e,"duration"),a=!!s&&/^\d+(?:\.\d+)?[dwmqy]$/.test(s),l=n?n.title??n.name:"",c=a?s:l||void 0,u=ie(e,"remaining"),f=$B(u,t),d=DB(ie(e,"owner"),t),p=()=>[c,d].filter(Boolean).join(" "),m;if(r==="in-progress"&&f){let E=p();m=E?`${E} \u2014 ${f} remaining`:`${f} remaining`}else if(r==="in-progress"&&i>0&&i<1){let E=Math.round((1-i)*100),_=p();m=_?`${_} \u2014 ${E}% remaining`:`${E}% remaining`}else(d||c)&&(m=p()||void 0);let g=ie(e,"capacity"),w=Nr(g),x=null,y=0;if(w!==null){let E=el(w),_=tl(o,t.symbols),T=11,I=rl(E,_,T,m);x={value:w,text:E,icon:_,...I!==void 0?{iconDxTerms:I}:{}};let B=I!==void 0?T*as:se(" ",T);y=(m?B:0)+nl(E,_,T)}return{metaText:m,ownerDisplay:d,capacity:x,capacityTrailingWidth:y}}function WB(e,t){let n=new Set;if(e){for(let[r,i]of t.footnoteHosts.entries())if(i.includes(e)){let o=t.footnoteIndex.get(r);o!==void 0&&n.add(o)}}return[...n].sort((r,i)=>r-i)}function XB(e,t,n){return ul({barWidth:e,footnoteLabels:t.map(String),hasBeforeGlyph:Rt(n)!==void 0})}var UB={done:"done","in-progress":"inProgress","at-risk":"atRisk",blocked:"blocked",planned:"planned",neutral:"neutral"};function GB(e,t,n){let r=UB[t],i={...e};return i.bg===n.entities.item.bg&&(i.bg=n.statusTint[r]),i.fg===n.entities.item.fg&&(i.fg=n.status[r]),i}function HB(e,t,n,r,i){if(n===0)return 0;let o=r-rn-$r-Wn,s;e&&t?s=Math.max(vi,i)+Wn:e?s=o:s=Math.max(o,i+Wn);let l=s+(n-1)*Qf+$r+Wn+rn;return Math.max(0,l-r)}function zB(e,t,n){let r=n.axisColumns;if(!t.textSpills||!r)return{lines:e,truncated:!1};let i=Math.max(0,...e.map(g=>se(g,Pr))),{metaText:o,capacityTrailingWidth:s}=t.meta,a=(o?se(o,sl):0)+s,l=Math.max(i,a),c=Jf({barRightX:t.barRightX,iconSpills:t.iconSpills,captionWidth:l,footnoteCount:t.visualWidth<hs?t.footnoteCount:0,dotSpills:t.visualWidth<Cr}),u=r.captionCapX(t.barRightX);if(c.rightX<=u+jB||c.captionX===null)return{lines:e,truncated:!1};let f=c.rightX-(c.captionX+l),d=u-c.captionX-f,p=!1;return{lines:e.map(g=>{let w=zA(g,d,Pr);return w!==g&&(p=!0),w}),truncated:p}}var jB=1e-6;function qd(e,t,n){let r=e.properties,i=Se("item",r,n.styleCtx),o=ie(r,"size"),s=o?n.sizes.get(o)??null:null,a=PS(n,e),l=Be(r,"after"),c=Be(r,"before"),u=bs(n,t,a),f=Ex(u),d=MB(ie(r,"link")),p=d.icon!=="none",m=Ex(u),g=Be(r,"labels"),w=[];for(let j of g){let U=n.labels.get(j);if(!U)continue;let ee=Kd(U,n.styleCtx,0,0);w.push({id:U,width:ee.box.width})}let x=0;for(let j=0;j<w.length;j+=1)j>0&&(x+=Xn),x+=w[j].width;let y=Math.max(0,m-2*Fn),E=w.length>0&&x>y,{status:_,progress:T}=FB(r,n),I=GB(i,_,n.styleCtx.theme),B=BB(r,n,s,_,T,I.capacityIcon),$=e.title??e.name??"",X=WB(e.name,n),Y=DS({title:$,visualWidth:f,metaText:B.metaText,metaTrailingWidth:B.capacityTrailingWidth,hasLinkIcon:p,hasAfterGlyph:Rt(l)!==void 0,titleFirstLineRightReservePx:XB(m,X,c)}),D=p&&f<jg,R=Y.fit.textSpills||D,S=zB($S($,Y.fit,D),{textSpills:R,iconSpills:D,barRightX:t+Vd(u)+f,visualWidth:f,footnoteCount:X.length,meta:B},n),O=S.lines,k=E?xk(w,f):null,L=k?k.rows.length:w.length>0?1:0,v=B.metaText!==void 0||B.capacity!==null,P=Zf(O.length,v),b=Gg(O.length,v),F=HB(E,R,L,n.bandScale.bandwidth(),P);return{node:e,id:e.name??"",startX:t,durationDays:a,naturalWidth:u,visualWidth:f,naturalVisualWidth:m,style:I,size:s,status:_,progress:T,meta:B,link:d,chips:{samples:w,outside:E,pack:k,rowCount:L},footnoteIndicators:X,caption:{...Y,title:$,iconSpills:D,lines:O,truncated:S.truncated,lastBaseline:P},barExtra:Math.max(b,F)}}function Zd(e,t,n,r){let i=e.properties,o=Be(i,"after"),s=Be(i,"before"),a=Wl(i,t.x,n);n.waves&&(a=Ur(e,a,n));let l=NS(i,a,n),c=n.scale.startX(a),u=r??qd(e,c,n);if(u.startX!==c)throw new Error(`layout: item "${e.name??e.title??"(unnamed)"}" was measured at x ${u.startX} but placed at x ${c}`);let{naturalWidth:f,style:d,status:p,progress:m,footnoteIndicators:g,caption:w}=u,{metaText:x,ownerDisplay:y,capacity:E,capacityTrailingWidth:_}=u.meta,T=u.link,I=T.icon!=="none",B=u.chips.samples,$=u.chips.outside,X=c,Y=c+f,D=c+bs(n,c,u.durationDays),R=!1,S,O;if(s.length>0){let qe,er;for(let Dt of s){let Ms=_e(Dt),Fs=Ms?n.scale.forwardWithinDomain(Ms)??void 0:n.entityLeftEdges.get(Dt);Fs!==void 0&&(qe===void 0||Fs<qe)&&(qe=Fs,er=Dt)}qe!==void 0&&D>qe&&(R=!0,S={x:qe,y:t.y,width:Y-qe,height:n.bandScale.bandwidth()},O=er)}let k=w.title,L=new Yd(u),v={time:n.scale,bands:n.bandScale,style:d},P=L.place({x:X,y:t.y},v),b=P.box,F=n.bandScale.bandwidth(),j=b.width<Cr,U=w.iconSpills,ee=b.width<hs,V=P.textSpills||U,ne=w.lines,A=u.chips.pack,C=w.lastBaseline,W=u.barExtra,G=[],K=b.y+F-rn-$r-Wn,q=b.y+($&&V?Math.max(vi,C):C)+Wn,re=$&&V||!$&&B.length>0?Math.max(K,q):K,le=$?b.x+b.width+Bn:b.x+Fn,ce=le;if(A)for(let qe=0;qe<A.rows.length;qe+=1){let er=re+qe*Qf,Dt=le;for(let Fs of A.rows[qe]){let EE=Kd(Fs.id,n.styleCtx,Dt,er);G.push(EE),Dt+=EE.box.width+Xn}let Ms=Dt-Xn;Ms>ce&&(ce=Ms)}else{let qe=le;for(let er of B){let Dt=Kd(er.id,n.styleCtx,qe,re);G.push(Dt),qe+=Dt.box.width+Xn}ce=B.length>0?qe-Xn:le}let pe=y??ie(i,"owner"),rt=e.description?.text,ht=g.length>0&&ee,mt=null;if(V){let qe=Math.max(...ne.map(Dt=>se(Dt,Pr))),er=(x?se(x,11):0)+_;mt=Math.max(qe,er)}let Ql=Jf({barRightX:b.x+b.width,iconSpills:U,captionWidth:mt,footnoteCount:ht?g.length:0,dotSpills:j}),{iconSpillX:QN,footnoteSpillStartX:eL,dotSpillCx:tL}=Ql,nL=Math.max(b.x+b.width,Ql.rightX),Ds=e.name;Ds&&(n.entityLeftEdges.set(Ds,X),n.entityRightEdges.set(Ds,D)),kS(e,D,n);let yE=Ds??wx(e);n.itemFlowKey.set(yE,n.currentFlowKey),t.startX=X,t.x=D,t.height=Math.max(t.height,n.bandScale.step()+W);let xE=xS({box:b,afterDate:Rt(o),beforeDate:Rt(s),hasLinkIcon:I,footnoteCount:g.length}),Qn={kind:"item",id:Ds,title:k,...ne.length>=2||ne[0]!==k?{titleLines:ne}:{},box:b,dateSpan:{startX:X,endX:Y},status:p,statusDotColor:LS(p,d.bg,n.styleCtx.theme),progressFraction:m,footnoteIndicators:g,labelChips:G,chipsOutside:$,chipsRightX:ce,linkIcon:T.icon,linkHref:T.href,hasOverflow:R,overflowBox:S,overflowAnchorId:O,owner:pe,description:rt,metaText:x,textSpills:V,dotSpills:j,iconSpills:U,footnoteSpills:ht,dotSpillCx:tL,iconSpillX:QN,footnoteSpillStartX:eL,decorationsRightX:nL,capacity:E,size:u.size,style:d,inlineDatePins:xE.length>0?xE:void 0},ec=IS(e,n);return ec!==void 0&&(Qn.waveRole=ec),ec==="background"&&(Qn.waveHatch=Hd(d.bg)),l!==void 0&&(Qn.nonWorkingPin=l),w.truncated&&(Qn.titleTruncated=!0),ec==="background"&&n.waves&&(Qn.waveTooltip=n.waves.backgroundTooltip),n.placedItems.set(yE,Qn),MS(L,v,Qn),Qn}function wx(e){let t=e.$cstNode?.range.start;return`#item@${t?t.line+1:0}:${t?t.character+1:0}`}function Tx(e){let t=new Map;for(let n of kA(e))Ve(n)&&t.set(n.name??wx(n),n);return t}var YB=.01;function VB(e,t){let n={blocks:[],edges:[]},r=new Map,i=(a,l,c)=>{n.blocks.push({x:a,y:c,width:l,height:0})},o=(a,l)=>{let{box:c}=a;if(a.kind==="item"){n.blocks.push({...c,width:Fl(a)-c.x}),n.edges.push({x:c.x,top:c.y,bottom:c.y+c.height},{x:c.x+c.width,top:c.y,bottom:c.y+c.height});return}l&&a.id&&r.set(a.id,a),a.kind==="group"&&a.waveOnly||(a.headerHeight>0&&n.blocks.push({x:c.x,y:c.y,width:Math.max(c.width,Es(a)-c.x),height:a.headerHeight}),i(c.x,c.width,c.y+c.height),n.edges.push({x:c.x,top:c.y,bottom:c.y+c.height},{x:c.x+c.width,top:c.y,bottom:c.y+c.height}));for(let u of a.children)o(u,l)},s=(a,l)=>{i(a.box.x,a.box.width,a.box.y),i(a.box.x,a.box.width,a.box.y+a.box.height);for(let c of a.children)o(c,l);for(let c of a.nested)s(c,l)};for(let a of e)s(a,!0);for(let a of t){i(a.box.x,a.box.width,a.box.y),i(a.box.x,a.box.width,a.box.y+a.box.height);for(let l of a.nestedSwimlanes)s(l,!1)}return{obstacles:n,containers:r}}function vx(e,t,n,r){let{obstacles:i,containers:o}=VB(t,n),s=r.bandScale.bandwidth(),a=Se("item",[],r.styleCtx),l=[];for(let[p,m]of e){let g=r.placedItems.get(p);if(!g)continue;let w=mx(g,s);for(let x of Be(m.properties,"after")){let y=r.placedItems.get(x),E=y?void 0:o.get(x),_;if(y?_=mx(y,s):E&&(_=yS(E)),_){l.push({fromId:x,toId:p,source:_,target:w});continue}let T=r.entityMidpoints.get(x);if(!T||w.startX-T.x<=YB)continue;let I=w.rowY??w.top;l.push({fromId:x,toId:p,waypoints:[{x:T.x,y:I},{x:w.paintedX,y:I}],slack:!0,...ws(w.bottom-w.top),style:a})}}let c=l.filter(p=>p!==null&&"source"in p),u=Ok(c,i,r.scale.pixelsPerDay),f=new Map(c.map((p,m)=>[p,u[m]])),d=[];for(let p of l){if(!p)continue;if(!("source"in p)){d.push(p);continue}let m=f.get(p);m&&d.push({...m,style:a})}return d}function Qd(e,t=0){let n=new Map,r=new Map;return[...e.entries()].forEach(([i,o],s)=>{n.set(i,t+s+1),r.set(i,Be(o.properties,"on"))}),{index:n,hosts:r}}var Jd=11,KB=120,qB=6,FS="\u2014 ";function WS(e,t,n,r,i=[]){let o=Ht,s=n+Ht,a=r-2*Ht,l=o+2*Ht,c=o+a-Ht,u=s+td+Ht,f=[],d=0,p=(g,w,x)=>{for(let[y,E]of g){let _=E.title??y,T=E.description?.text,I=ZB(_,T,l,c),B=u+d*gs,$=Y=>({x:Y.x,y:B+Y.row*gs,text:Y.text}),X={number:w.footnoteIndex.get(y)??f.length+1,y:B,title:_,titleLines:I.title.map($),description:T,style:Se("footnote",E.properties,w.styleCtx)};I.description.length>0&&(X.descriptionLines=I.description.map($)),x!==void 0&&(X.region=x),f.push(X),d+=I.rows}};p(e,t);for(let g of i){if(g.footnotes.size===0)continue;let w=u+d*gs;d+=1;let x=f.length;p(g.footnotes,g.ctx,g.title),f[x].regionHeadingY=w}return{box:{x:o,y:s,width:a,height:f.length===0?0:td+d*gs+Ht},entries:f}}function ZB(e,t,n,r){let i=r-n,o=BS(e,i,i),s=o.map((g,w)=>({x:n,row:w,text:g}));if(!t)return{title:s,description:[],rows:o.length};let a=se(FS,Jd),l=t.trim().split(/\s+/)[0]??"",c=n+Math.max(KB,e.length*qB),u=o.length===1&&a+se(l,Jd)<=r-c,f=u?c:n,d=u?o.length-1:o.length,p=BS(t,i,r-f-a),m=p.map((g,w)=>({x:w===0?f:n,row:d+w,text:w===0?`${FS}${g}`:g}));return{title:s,description:m,rows:d+p.length}}function BS(e,t,n){if(se(e,Jd)<=n)return[e];let r=wi(e,t,Jd,n);return r.length>0?r:[e]}function Ul(e,t,n){let r=[],i=(o,s,a)=>{let l=_e(ie(s.properties,"date"));if(!l)return;let c=n.forwardWithinDomain(l);c!==null&&r.push({id:o,centerX:c,radius:6,title:s.title??o,fontSize:10,bold:a,date:l,isMilestone:a})};for(let[o,s]of e)i(o,s,!1);for(let[o,s]of t)i(o,s,!0);return r}function tp(e,t){return[...QB(e),...eW(t)]}function Ns(e,t){let n=new Map;for(let[r,i]of e){let o=t+13+i.rowIndex*26;n.set(r,{rowIndex:i.rowIndex,centerY:o,labelBox:{...i.labelBox,y:o-4},labelSide:i.labelSide})}return n}function _x(e){return`nonworking:${e.from.toISOString().slice(0,10)}`}function Ax(e){return`working:${e.from.toISOString().slice(0,10)}`}function US(e,t,n){return{id:e,centerX:t,radius:0,title:n,fontSize:10,bold:!1}}function QB(e){let t=[];for(let n of e??[])n.label!==void 0&&t.push(US(_x(n),n.x,n.label));return t}function eW(e){return(e??[]).map(t=>US(Ax(t),t.x,t.label))}function Bi(e,t,n,r){let i=n;for(let o of e){let s=GS(o,r),a=o.centerX+o.radius+6+s,c=o.centerX-o.radius-6-s>=t&&o.slipFromX===void 0;a>n&&!c&&(i=Math.max(i,a+kt))}return i}function GS(e,t){return t(e.title,e.fontSize)*(e.bold?1.05:1)}function np(e){let t=[];for(let n of e)for(let r of n.slackArrows??[])"marker"in r&&r.marker!==n.id&&t.push({from:r.marker,to:n.id});return t}function Ls(e,t,n,r,i=[]){let o=[...e].sort((u,f)=>u.centerX-f.centerX),s=new Map,a=[],l=new Map(e.map(u=>[u.id,u])),c=i.filter(u=>l.has(u.from)&&l.has(u.to));for(let u of o){let f=GS(u,r),d=u.centerX+u.radius+6,p=u.centerX-u.radius-6-f,m=d+f<=n,g=p>=t,w=u.centerX-u.radius,x=u.centerX+u.radius,y=v=>v==="right"?d:p,E=v=>v==="right"?m:g,_=u.slipFromX===void 0?[]:[{left:u.slipFromX-u.radius,right:u.centerX-u.radius}],T=c.filter(v=>v.from===u.id).map(v=>{let P=l.get(v.to);return{left:Math.min(u.centerX,P.centerX)+u.radius,right:Math.max(u.centerX,P.centerX)-P.radius}}).concat(_).filter(v=>v.right>v.left),I=-1,B=Number.POSITIVE_INFINITY;for(let v of c){if(v.to===u.id){let P=s.get(v.from);P&&(B=Math.min(B,P.rowIndex))}if(v.from===u.id){let P=s.get(v.to);P&&(I=Math.max(I,P.rowIndex))}}let $=v=>{let P=y(v);return T.some(b=>b.left<P+f&&b.right>P)},X=v=>E(v)&&!$(v),Y=X("right")||u.slipFromX!==void 0?"right":X("left")?"left":m?"right":"left",D=(v,P)=>{let b=Math.min(w,v),F=Math.max(x,v+f),j=[{left:b,right:F},...T];return a[P].some(U=>j.some(ee=>U.left<ee.right&&U.right>ee.left))},R=-1,S="right",O=d;e:for(let v=a.length-1;v>=0;v--)if(!(v<I||v>B))for(let P of["right","left"]){if(!X(P))continue;let b=y(P);if(!D(b,v)){R=v,S=P,O=b;break e}}if(R===-1&&I>=0&&I<B){let v=I+1;for(let[P,b]of s)b.rowIndex>=v&&s.set(P,{...b,rowIndex:b.rowIndex+1});a.splice(v,0,[]),R=v,S=Y,O=y(S)}else if(R===-1){for(let[v,P]of s)s.set(v,{...P,rowIndex:P.rowIndex+1});a=[[],...a],R=0,S=Y,O=y(S)}let k=Math.min(w,O),L=Math.max(x,O+f);a[R].push({left:k,right:L},...T),s.set(u.id,{rowIndex:R,labelBox:{x:O,y:0,width:f,height:12},labelSide:S})}return{placements:s,rowCount:a.length}}function kx(e,t){let n=[];for(let r of e){let i=t.placedItems.get(r),o=t.entityRightEdges.get(r);if(o===void 0)continue;let s=i?gx(i,t.bandScale.bandwidth()):void 0;if(!i&&t.waves?.plan.index.has(r)){n.push({ref:r,endX:o,y:s,flowKey:`wave:${r}`,wave:r});continue}let a=t.itemFlowKey.get(r)??`marker:${r}`;if(!i&&t.markerIds.has(r)){n.push({ref:r,endX:o,y:s,marker:!0,flowKey:a});continue}n.push({ref:r,endX:o,y:s,flowKey:a})}return n}function Ix(e){let t=new Map;for(let n of e){let r=t.get(n.flowKey);(!r||n.endX>r.endX)&&t.set(n.flowKey,n)}return Array.from(t.values())}function tW(e,t){return Math.abs(t-e.endX)<=12}function HS(e,t){return e.endX>=t||e.wave!==void 0?null:e.y!==void 0?{x:e.endX,y:e.y}:e.marker&&!tW(e,t)?{x:e.endX,marker:e.ref}:null}function nW(e){let t=null;for(let n of e)n.wave===void 0&&(!t||n.endX>t.endX)&&(t=n);return t}function rW(e,t){let n;for(let r of e)r.wave===void 0||r.endX-t<Ot||(!n||r.endX>n.endX)&&(n=r);return n}var Rx=class{constructor(t,n){M(this,"id");M(this,"milestone");this.id=t,this.milestone=n}place(t){let n=this.milestone,r=Se("milestone",n.properties,t.styleCtx),i=ie(n.properties,"date"),o=Be(n.properties,"after"),s=_e(i),a=t.timeline.markerRow.y,l=6,c=n.title??this.id,u=null,f=a,d=!1,p,m=!1,g,w;if(s){let _=t.scale.forwardWithinDomain(s);if(_===null)return null;u=_,d=!0;let T=t.markerRowPlacements.get(this.id);T&&(f=T.centerY);let I=kx(o,t),B=Ix(I),$=nW(B),X=rW(B,_);w=X?.wave;let Y=Math.max($&&$.endX>_?$.endX:_,X?.endX??_);Y>_&&(m=!0,Y-_>12&&(g=Y))}else if(o.length>0){let _=kx(o,t),T=Ix(_);T.sort(($,X)=>X.endX-$.endX);let I=T[0]?.endX??t.timeline.originX;u=I,d=!1;let B=[];for(let $=1;$<T.length;$++){let X=HS(T[$],I);X&&B.push(X)}B.length>0&&(p=B)}if(u===null)return null;let x={x:u,y:f};t.entityLeftEdges.set(this.id,x.x),t.entityRightEdges.set(this.id,x.x),t.entityMidpoints.set(this.id,x);let y={id:this.id,title:c,x:u,radius:l,fixed:d,slackArrows:p,isOverrun:m,style:r,cutTopY:t.chartTopY,cutBottomY:t.swimlaneBottomY};g!==void 0&&(y.slipX=g);let E=g??u;return t.waves&&(g!==void 0||!m)&&RS(t.waves,E)&&(y.onWaveBoundary=!0),w!==void 0&&s&&(y.overrunByWave=w,y.overrunDate=Ti(s)),s&&!t.scale.showsNonWorking&&!t.calendar.isWorkingDay(s)&&(y.hiddenDate=Ti(s)),y}};function rp(e,t){let n=[];for(let[r,i]of e){let o=new Rx(r,i).place(t);o&&n.push(o)}return n}function ip(e,t){let n=r=>{let i=t.get(r);if(!i)throw new Error(`layout: marker "${r}" has no marker-row placement`);return i};return e.map(r=>{let i=n(r.id),o={id:r.id,title:r.title,center:{x:r.x,y:i.centerY},radius:r.radius,fixed:r.fixed,slackArrows:r.slackArrows?.map(s=>"y"in s?{x:s.x,y:s.y}:{x:s.x,y:n(s.marker).centerY}),isOverrun:r.isOverrun,style:r.style,cutTopY:r.cutTopY,cutBottomY:r.cutBottomY,labelBox:i.labelBox,labelSide:i.labelSide};return r.slipX!==void 0&&(o.slip={x:r.slipX}),r.onWaveBoundary&&(o.onWaveBoundary=!0),r.overrunByWave!==void 0&&(o.overrunByWave=r.overrunByWave),r.overrunDate!==void 0&&(o.overrunDate=r.overrunDate),r.hiddenDate!==void 0&&(o.hiddenDate=r.hiddenDate),o})}function zS(e,t){let n=[];for(let[r,i]of e){if(_e(ie(i.properties,"date")))continue;let o=kx(Be(i.properties,"after"),t),s=Ix(o);if(s.length===0)continue;s.sort((l,c)=>c.endX-l.endX);let a=s[0].endX;for(let l=1;l<s.length;l++){let c=s[l],u=HS(c,a);u&&"y"in u&&n.push({xStart:c.endX,xEnd:a,y:u.y,slackPredId:c.ref,milestoneId:r})}}return n}var Gl=16,iW=8,oW=6;function YS(e,t,n,r,i,o){Sx(e.content.anchors,t);let s=rp(e.content.milestones,t),a=sW(e.content.anchors,s,t);if(a.length===0)return{anchors:[],milestones:[],laneShift:0};let l=Gl,c=Ls(a,l,Bi(a,l,o-Gl,se),se,np(s)),u=n+iW,f=u+c.rowCount*26+oW-r,d=i+f,p=Ns(c.placements,u);t.markerRowPlacements=p,t.chartTopY=r+f,t.swimlaneBottomY=d;let m=Md(e.content.anchors,t,new Set),g=ip(s.map(w=>({...w,cutTopY:t.chartTopY,cutBottomY:d,slackArrows:w.slackArrows?.map(x=>"y"in x?{x:x.x,y:x.y+f}:x)})),p);return{anchors:m,milestones:g,laneShift:f}}function VS(e,t){let n=[...(e.anchors??[]).map(i=>jS(i,!1)),...(e.milestones??[]).map(i=>jS(i,!0))];return n.length===0?t:Bi(n,e.box.x+Gl,t-Gl,se)+Gl}function KS(e){let t=0;for(let n of[...e.anchors??[],...e.milestones??[]])t=Math.max(t,n.labelBox.x+n.labelBox.width);return t}function sW(e,t,n){let r=Ul(e,new Map,n.scale),i=o=>({id:o.id,centerX:o.slipX??o.x,radius:o.radius,title:o.title,fontSize:10,bold:!0,...o.slipX!==void 0?{slipFromX:o.x}:{}});return r.push(...t.filter(o=>o.fixed).map(i)),r.push(...t.filter(o=>!o.fixed).map(i)),r}function jS(e,t){let n="slip"in e?e.slip?.x:void 0;return{id:e.id??"",centerX:n??e.center.x,radius:e.radius,title:e.title,fontSize:10,bold:t,...n!==void 0?{slipFromX:e.center.x}:{}}}function Sx(e,t){for(let n of Ul(e,new Map,t.scale))t.entityLeftEdges.set(n.id,n.centerX),t.entityRightEdges.set(n.id,n.centerX)}var aW=.8,lW=1;function cW(e){let t=[];return ZS(e,t),t}function ZS(e,t){for(let n of e)if(n.kind==="item"){let r=uW(n);r>0&&n.box.width>0&&t.push({startX:n.box.x,endX:n.box.x+n.box.width,load:r})}else(n.kind==="parallel"||n.kind==="group")&&ZS(n.children,t)}function uW(e){return e.capacity?e.capacity.value:e.size?1:0}function JS(e){if(e.capacityValue<=0||e.warnFraction===null&&e.overFraction===null)return null;let t=cW(e.children);if(t.length===0)return null;let n=new Set;for(let s of t)n.add(s.startX),n.add(s.endX);let r=Array.from(n).sort((s,a)=>s-a);if(r.length<2)return null;let i=[];for(let s=0;s<r.length-1;s++){let a=r[s],l=r[s+1],c=(a+l)/2,u=0;for(let f of t)f.startX<=c&&c<f.endX&&(u+=f.load);i.push({startX:a,endX:l,load:u,classification:fW(u,e.capacityValue,e.warnFraction,e.overFraction)})}let o=[];for(let s of i){let a=o[o.length-1];a&&a.classification===s.classification&&a.endX===s.startX?a.endX=s.endX:o.push({...s})}return{segments:o,capacityValue:e.capacityValue,warnFraction:e.warnFraction,overFraction:e.overFraction}}function fW(e,t,n,r){let i=e/t;return r!==null&&i>=r?"red":n!==null&&i>=n?"yellow":"green"}function QS(e,t){let n=t.get("swimlane"),r=qS(ie(e.properties,"utilization-warn-at"),n?ie(n.properties,"utilization-warn-at"):void 0,aW),i=qS(ie(e.properties,"utilization-over-at"),n?ie(n.properties,"utilization-over-at"):void 0,lW);return{warn:r,over:i}}function qS(e,t,n){let i=hW(e??t);return i.kind==="unset"?n:i.kind==="none"?null:i.value}var dW=/^\d+(?:\.\d+)?%$/,pW=/^\d+\.\d+$/;function hW(e){if(e===void 0)return{kind:"unset"};if(e==="none")return{kind:"none"};if(dW.test(e)){let t=parseFloat(e)/100;return Number.isFinite(t)&&t>0?{kind:"number",value:t}:{kind:"unset"}}if(pW.test(e)){let t=parseFloat(e);return Number.isFinite(t)&&t>0?{kind:"number",value:t}:{kind:"unset"}}return{kind:"unset"}}var op=class{constructor(t){M(this,"rows");M(this,"opts");M(this,"paintedRightX");this.opts=t,this.paintedRightX=t.laneLeftX,this.rows=[{y:t.originY,height:t.minRowHeight,rightEdge:t.laneLeftX,spillX:t.laneLeftX,contentOffsetY:0}]}placeItem(t){let n=this.rows[this.rows.length-1],i=t.desiredStart>=n.rightEdge&&t.desiredStart>=n.spillX&&!this.rowIntersectsCorridor(n,t)&&!this.rowCrossesOwnCorridor(n,t)?n:this.appendRow(Math.max(this.opts.minRowHeight,t.predictedHeight));return{rowIndex:this.rows.length-1,y:i.y+i.contentOffsetY}}placeBlock(){let t=this.rows[this.rows.length-1];if(t.rightEdge>this.opts.laneLeftX){let n=this.appendRow(this.opts.minRowHeight);return{rowIndex:this.rows.length-1,y:n.y}}return{rowIndex:this.rows.length-1,y:t.y}}commitItem(t){let n=this.rows[t.rowIndex];n.height=Math.max(n.height,n.contentOffsetY+Math.max(t.placed.box.height,t.rowHeight??0)),n.rightEdge=t.logicalEnd,n.spillX=t.spillReservation??this.opts.laneLeftX}commitBlock(t){let n=this.rows[t.rowIndex];n.height=Math.max(n.height,t.blockHeight),n.contentOffsetY=t.contentOffsetY??0,n.rightEdge=t.blockEnd,n.spillX=t.spillReservation??this.opts.laneLeftX,t.paintedRight!==void 0&&t.paintedRight>this.paintedRightX&&(this.paintedRightX=t.paintedRight)}usedHeight(){let t=this.rows[this.rows.length-1];return t.y+t.height-this.opts.originY}usedRightX(){let t=this.paintedRightX;for(let n of this.rows)n.rightEdge>t&&(t=n.rightEdge),n.spillX>t&&(t=n.spillX);return t}rowIntersectsCorridor(t,n){return this.opts.slackCorridors.some(r=>r.y>=t.y&&r.y<t.y+t.height&&n.desiredStart<r.xEnd&&n.desiredEnd>r.xStart&&r.slackPredId!==n.childId&&!n.pendingIds?.has(r.slackPredId))}rowCrossesOwnCorridor(t,n){return this.opts.slackCorridors.some(r=>r.slackPredId===n.childId&&r.xStart<n.desiredStart&&t.rightEdge>Math.max(r.xStart,this.opts.laneLeftX))}appendRow(t){let n=this.rows[this.rows.length-1],r={y:n.y+n.height,height:t,rightEdge:this.opts.laneLeftX,spillX:this.opts.laneLeftX,contentOffsetY:0};return this.rows.push(r),r}};function bx(e){return Ve(e)?e.name?[e.name]:[]:vt(e).flatMap(bx)}function sp(e,t,n,r){let i=n.bandScale.step(),o=t.leftX,s=new op({laneLeftX:o,originY:t.firstRowY,minRowHeight:i,slackCorridors:n.slackCorridors}),a=o,l=Number.POSITIVE_INFINITY,c=new Set(vt(e).flatMap(bx)),u=[];for(let f of vt(e)){for(let $ of bx(f))c.delete($);if(!Ve(f)){let $=Bl(f,a,n),{rowIndex:X,y:Y}=s.placeBlock(),D=Xl($,Y),R=r.sequenceOne(f,D,n);u.push(R);let S=R.box.x+R.box.width,O=Math.max(i,D.height),k=tb(R);s.commitBlock({rowIndex:X,placed:R,blockHeight:O,blockEnd:S,contentOffsetY:mW(R),spillReservation:k>S?k:null,paintedRight:Fl(R)}),l=Math.min(l,D.startX),a=Math.max(a,D.x);continue}let d=f,p=Bl(d,a,n),m=n.scale.startX(p),g=qd(d,m,n),w=m+g.naturalWidth,x=i+g.barExtra,{rowIndex:y,y:E}=s.placeItem({childId:d.name??"",desiredStart:m,desiredEnd:w,predictedHeight:x,pendingIds:c}),_=Xl(p,E),T=Zd(d,_,n,g);u.push(T),l=Math.min(l,_.startX);let I=Math.max(m+g.naturalWidth,T.box.x+T.box.width),B=m+bs(n,m,g.durationDays);a=Math.max(a,B),s.commitItem({rowIndex:y,placed:T,logicalEnd:I,spillReservation:eb(T),rowHeight:x})}return l===Number.POSITIVE_INFINITY&&(l=n.scale.startX(o)),{children:u,timeCursorX:a,timeStartX:l,packer:s}}function mW(e){return e.kind==="item"?0:(e.children[0]?.box.y??e.box.y)-e.box.y}function eb(e){return e.textSpills||e.chipsOutside||e.dotSpills||e.iconSpills||e.footnoteSpills?Math.max(e.decorationsRightX,e.chipsOutside?e.chipsRightX:0)+6:null}function tb(e){let t=e.box.x+e.box.width;if(e.kind==="item")return Math.max(t,eb(e)??t);let n=Es(e);return Math.max(t,n>t?n+Nk:t,...e.children.map(tb))}var Nx=10;function gW(e,t,n){let r=ie(e.properties,"capacity"),i=Nr(r);if(i===null)return{capacity:null,badgeWidthPx:0};let o=el(i),s=tl(t.capacityIcon,n),a=nl(o,s,Nx),l=rl(o,s,Nx);return{capacity:{value:i,text:o,icon:s,...l!==void 0?{iconDxTerms:l}:{}},badgeWidthPx:a}}var yW=10,xW=38,EW=8;function wW(e,t){let n=ie(e.properties,"owner");if(!n)return;let r=t.teams.get(n);if(r)return{text:r.title??n,kind:"team"};let i=t.persons.get(n);return i?{text:i.title??n,kind:"person"}:{text:n,kind:"team"}}function TW(e,t){if(!e.name)return[];let n=[];for(let[r,i]of t.footnoteHosts.entries())if(i.includes(e.name)){let o=t.footnoteIndex.get(r);o!==void 0&&n.push(o)}return n.sort((r,i)=>r-i),n}function vW(e,t,n){for(let r of e.content)if(r.$type!=="DescriptionDirective")return n.scale.startX(Bl(r,t,n))}var Ps=class{constructor(t,n){M(this,"input");M(this,"helpers");this.input=t,this.helpers=n}get id(){return this.input.lane.name??""}place(t,n){let{lane:r,bandIndex:i}=this.input,{helpers:o}=this,s=Se("swimlane",r.properties,n.styleCtx),a=t.x,l=n.bandScale.step(),c=n.currentFlowKey;n.currentFlowKey=`lane:${r.name??i}`;let{capacity:u,badgeWidthPx:f}=gW(r,s,n.symbols),d=TW(r,n),p=d.length>0?se(d.join(","),Nx):0,m=0,g=wW(r,n),w=r.title??r.name??"",x=w?Ry(m,w,g?.text,f,p):null,y=x?.rightX??0,E=vW(r,a,n),_=!r.title||E===void 0||E>=y+EW,T=t.y+(_?yW:xW),I=sp(r,{leftX:a,firstRowY:T},n,o),{children:B}=I,$=T-t.y,X=Math.max(l+32,$+I.packer.usedHeight()+16),Y=Math.max(I.packer.usedRightX(),y),D={x:m,y:t.y,width:0,height:X},R=u?(()=>{let{warn:S,over:O}=QS(r,n.styleCtx.defaults);return JS({children:B,capacityValue:u.value,warnFraction:S,overFraction:O})})():null;return n.currentFlowKey=c,{positioned:{id:r.name,title:w,box:D,bandIndex:i,children:B,nested:[],style:s,owner:g?.text,ownerKind:g?.kind,footnoteIndicators:d,capacity:u,tab:x,utilization:R},usedHeight:X,usedRightX:Y}}};var _W=18,AW=14,kW=14,IW=16,RW=24;function Lx(e,t,n,r,i){let o=n+_W,s=[],a=[],l=!0,c=t.footnoteIndex.size;for(let u of e){l||(o+=IW),l=!1;let f=u.content.roadmap?.title??u.sourcePath,d=o+AW,p=zd(u,{theme:t.styleCtx.theme,cal:t.cal,schedule:t.schedule,timeline:t.timeline,scale:t.scale,calendar:t.calendar,axisColumns:t.axisColumns,bandScale:t.bandScale,waves:t.waves},{chartTopY:d,chartBottomY:d,swimlaneBottomY:d},{footnotes:Qd(u.content.footnotes,c)});c+=u.content.footnotes.size,t.waves?Ud(t.waves,p.entityLeftEdges,p.entityRightEdges):Sx(u.content.anchors,p);let m=[],g=d,w=0;for(let I of u.content.swimlanes.values()){p.nextParallelId=0,p.nextGroupId=0;let{positioned:B,usedHeight:$}=new Ps({lane:I,bandIndex:w},r).place({x:p.timeline.originX,y:g},p);m.push(B),g+=$,w++}let x=YS(u,p,o,d,g,i);if(x.laneShift!==0){for(let I of m)Rs(I,x.laneShift);g+=x.laneShift}let y=g,E=Math.max(t.bandScale.bandwidth(),y-o+kW),_={x:0,y:o,width:0,height:E},T={sourcePath:u.sourcePath,label:f,box:_,nestedSwimlanes:m,style:Se("swimlane",[],t.styleCtx)};x.anchors.length>0&&(T.anchors=x.anchors),x.milestones.length>0&&(T.milestones=x.milestones),s.push(T),a.push(p),o+=E}return{regions:s,contexts:a,endY:o}}function nb(e,t,n){let r=Hl(e,t,n);e.box.width=r;for(let i of e.nestedSwimlanes)i.box.width=r}function Hl(e,t,n){let r=e.box.x,{chromeRightX:i}=vl(r,e.label,e.sourcePath),o=Wr(e.nestedSwimlanes),s=Math.max(i,o,KS(e),n)+RW;return Math.min(t-r,s-r)}function rb(e,t,n,r){if(!e)return null;let i=t.scale.forwardWithinDomain(e);if(i===null)return null;let o=t.timeline.box.y,s=t.timeline.tickPanelY,a=jn(n).nowLabel,l=se(a,gl),c=Math.max(Qg,Math.ceil(l+2*ms)),u=t.timeline.originX-kt,f=c/2,d;i-f<u?d="flag-right":i+f>r?d="flag-left":d="center";let p=t.timeline.bottomTickPanelY,m=t.timeline.bottomTickPanelHeight??0,g=p!==void 0&&m>0?p+m:t.swimlaneBottomY;return{x:i,topY:s,bottomY:g,pillTopY:o,pillMode:d,label:a,pillWidth:c,style:Se("item",[],t.styleCtx)}}function ap(e){let t=e.trim().replace(/^#/,"");if(t.length===3&&(t=t.split("").map(n=>n+n).join("")),!/^[0-9a-fA-F]{6}$/.test(t))throw new Error(`Unsupported hex colour: ${e}`);return[Number.parseInt(t.slice(0,2),16),Number.parseInt(t.slice(2,4),16),Number.parseInt(t.slice(4,6),16)]}function ib(e){let[t,n,r]=ap(e).map(i=>{let o=i/255;return o<=.03928?o/12.92:((o+.055)/1.055)**2.4});return .2126*t+.7152*n+.0722*r}function lp(e,t){let n=ib(e),r=ib(t);return(Math.max(n,r)+.05)/(Math.min(n,r)+.05)}var SW=4.5;function ab(e,t,n,r,i){if(!e.frozen||!e.solve)throw new Error("buildWaves: the wave barrier has not settled");let o=Xd(e.plan,e.solve,e.pass,e.origin,e.floors,Ot),s=o.every(y=>y.memberCount===0),a=t.timeline.waveStrip??{y:t.timeline.tickPanelY+t.timeline.tickPanelHeight,height:0};if(!t.timeline.waveStrip&&!s)throw new Error("buildWaves: the timeline has no wave strip");let l=t.timeline.box.x,c=l+t.timeline.box.width,u=a.y+ld,f=a.height-2*ld,d=0,p=o.map((y,E)=>{let _=e.plan.waves[E],T=_.title??y.id,I=y.memberCount===0,B=Gd(y.start,t),$=SS(y.start,y.end,t),X=I?void 0:d++,Y=NW(y.id,t),D=LW(_.properties,X,t),R=Math.max(y.start,l),S=Math.min(y.end,c),O=Math.max(0,S-R),k=Rt(e.plan.floors[E]?.ref!==void 0?[e.plan.floors[E].ref]:[]),L=k!==void 0&&O>=cl+pt+Gn,v=L?pt+nn:0,P,b=!1;if(!I){if(Y.length>0){let K=Y.length*Ut;P=ob(T,y.id,E+1,O,K+v),b=P!==void 0}P??(P=ob(T,y.id,E+1,O,v))}let F=I?y.start:(R+S)/2,j=I?Px(B):`${Px(B)} \u2013 ${Px($)}`,U=[T,j];I?U.push(n.waveNoItems):y.heldBy!==void 0&&U.push(`${n.waveHeldBy} ${y.heldBy}`);let ee,V=o[E-1];if(!s&&V!==void 0&&y.floorRef!==void 0&&y.start-V.end>Ot){let K=Math.max(V.end,l),q=Math.min(y.start,c),J=se(y.floorRef,Un);if(J+2*Gn<=q-K){let re=(K+q)/2,le=J+2*ys;ee={text:y.floorRef,x:re,halo:{x:re-le/2,y:u,width:le,height:f}}}}let ne={x:y.start,y:a.y,width:y.end-y.start,height:a.height},A=I?void 0:bW(ne,t.timeline.box),C,W,G;if(A){L&&k!==void 0&&(G={side:"after",isoDate:k,glyphTopLeft:{x:A.x+cl,y:a.y+(a.height-pt)/2},glyphSize:pt,spilled:!1});let K=A.x+A.width,q=b?Y.length*Ut:0;if(q){let J=K-Gn+ys,re=K-Gn-q-ys;W={rightX:K-Gn,halo:{x:re,y:u,width:J-re,height:f}}}if(P){let J=lb(P.label),re=q?Math.min(F,K-Gn-q-J/2):F,le=G?Math.max(re,G.glyphTopLeft.x+pt+nn+J/2):re,ce=J+2*ys;C={x:le,halo:{x:le-ce/2,y:u,width:ce,height:f}}}}return{id:y.id,title:T,index:E,...X!==void 0?{visibleOrdinal:X}:{},startX:y.start,endX:y.end,startDate:B,endDate:$,memberCount:y.memberCount,empty:I,...y.heldBy!==void 0?{heldBy:y.heldBy}:{},...y.floorRef!==void 0?{floorRef:y.floorRef}:{},columnBox:{x:y.start,y:t.chartTopY,width:y.end-y.start,height:t.swimlaneBottomY-t.chartTopY},strip:{box:{x:y.start,y:a.y,width:y.end-y.start,height:a.height},...P?{label:P.label}:{},labelKind:P?.kind??"none",labelX:F,...A?{cell:A}:{},...C?{labelDraw:C}:{},...G?{inlineDatePin:G}:{},...W?{superscripts:W}:{},tooltip:U.join(" \xB7 "),footnotesShown:b,...ee?{gapLabel:ee}:{}},style:D,footnoteIndicators:Y}}),m=s?[]:CW(p,e.origin,a.y,t),g=Ox(r),w=i.map(y=>Ox(y.nestedSwimlanes));return{waves:p,boundaries:m,crossings:sb(g,m),regionCrossings:w.map(y=>sb(y,m)),hasBackground:g.length+w.flat().length>0}}function bW(e,t){let n=Si,r={x:e.x,y:e.y+n,width:e.width,height:e.height-2*n},i={x:t.x+n,y:e.y,width:t.width-2*n,height:e.height},o=Math.max(r.x,i.x),s=Math.max(r.y,i.y),a=Math.min(r.x+r.width,i.x+i.width),l=Math.min(r.y+r.height,i.y+i.height);if(!(a<=o||l<=s))return{x:o,y:s,width:a-o,height:l-s}}function lb(e){return se(e,Un)*1.05}function ob(e,t,n,r,i){let o=a=>lb(a)+i+2*Gn<=r;if(o(e))return{kind:"title",label:e};if(t!==e&&o(t))return{kind:"id",label:t};for(let a=e.length-1;a>=3;a--){let l=e.slice(0,a).trimEnd();if(l.length<3)break;let c=`${l}\u2026`;if(o(c))return{kind:"ellipsis",label:c}}let s=`#${n}`;if(o(s))return{kind:"ordinal",label:s}}function NW(e,t){let n=[];for(let[r,i]of t.footnoteHosts.entries()){if(!i.includes(e))continue;let o=t.footnoteIndex.get(r);o!==void 0&&n.push(o)}return n.sort((r,i)=>r-i)}function LW(e,t,n){let r=n.styleCtx.theme,i=new Map,o=ie(e,"style"),s=o?n.styleCtx.styles.get(o):void 0;for(let d of s?.properties??[])i.set(Q(d),d.value);let a=d=>{let p=i.get(d);if(p===void 0)return;let m=qn(p,r);return m==="none"?void 0:m},l=a("bg"),c=t!==void 0&&t%2===1?r.wave.stripFillAlt:r.wave.stripFill,u=l?PW(c,l,El)??c:c,f=i.get("border");return{...l?{tint:l}:{},stripFill:c,text:a("text")??OW(r.wave,u),boundary:a("fg")??r.wave.boundary,boundaryDash:f==="dashed"?"4 2":f==="dotted"?"1 2":null}}var cp=/^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/;function PW(e,t,n){if(!cp.test(e)||!cp.test(t))return;let r=ap(e),i=ap(t);return`#${r.map((o,s)=>Math.round(o*(1-n)+i[s]*n).toString(16).padStart(2,"0")).join("")}`}function OW(e,t){let n=e.labelText;return!cp.test(n)||!cp.test(t)||lp(n,t)>=SW?n:lp(e.hatch,t)>=lp(e.hatchOnDark,t)?e.hatch:e.hatchOnDark}function CW(e,t,n,r){let i=[];for(let a of e)a.empty||(i.push({x:a.startX,wave:a,opening:!0}),i.push({x:a.endX,wave:a,opening:!1}));i.sort((a,l)=>a.x-l.x);let o=[],s=0;for(;s<i.length;){let a=s;for(;a<i.length&&i[a].x-i[s].x<Ot;)a++;let l=i.slice(s,a);s=a;let c=l[0].x;if(Math.abs(c-t)<Ot)continue;let u=(l.find(f=>f.opening)??l[0]).wave;o.push({x:c,topY:n,bottomY:r.swimlaneBottomY,stroke:u.style.boundary,dash:u.style.boundaryDash})}return o}function Ox(e){let t=[],n=r=>{for(let i of r)i.kind==="item"?i.waveRole==="background"&&t.push(i):n(i.children)};for(let r of e)n(r.children),t.push(...Ox(r.nested));return t}function sb(e,t){let n=[];for(let r of e){let i=r.box.x,o=r.box.x+r.box.width;for(let s of t)i<s.x&&s.x<o&&n.push({x:s.x,topY:r.box.y,bottomY:r.box.y+r.box.height,stroke:s.stroke})}return n}function cb(e,t,n,r){if(!e.hasBackground)return;let i=t.timeline.originX,o=n.waveLegendBackground,s=cd+xy,a=s+se(o,Un),l={kind:"background",text:o,swatch:{x:i,y:r+(sd-ud)/2,width:cd,height:ud},hatch:Hd(t.styleCtx.theme.entities.item.bg),runs:[{text:o,x:i+s,y:r+Ey}]};return{box:{x:i,y:r,width:a,height:sd},entries:[l]}}function Px(e){return e.toISOString().slice(0,10)}var ub=1e-6,Os=class{constructor(t){M(this,"domain");M(this,"range");M(this,"pixelsPerDay");M(this,"calendar");M(this,"nonWorking");this.domain=t.domain,this.range=t.range,this.calendar=t.calendar,this.nonWorking=t.nonWorking??"hide";let n=Math.max(1,this.showsNonWorking?At(t.domain[0],t.domain[1]):this.indexOf(t.domain[1]));this.pixelsPerDay=(t.range[1]-t.range[0])/n}get showsNonWorking(){return this.nonWorking==="show"&&this.calendar?.hasNonWorkingDays===!0}indexOf(t){return this.calendar?this.calendar.workingIndexOf(this.domain[0],t):At(this.domain[0],t)}dayAt(t){let n=(t-this.range[0])/this.pixelsPerDay;return{days:n,day:Math.floor(n+ub)}}forward(t){return this.showsNonWorking?this.range[0]+At(this.domain[0],t)*this.pixelsPerDay:this.range[0]+this.indexOf(t)*this.pixelsPerDay}forwardWithinDomain(t){return t<this.domain[0]||t>this.domain[1]?null:this.forward(t)}invert(t){let n=Math.round((t-this.range[0])/this.pixelsPerDay);return this.showsNonWorking?Xe(this.domain[0],n):this.calendar?this.calendar.dateAtWorkingIndex(this.domain[0],n):Xe(this.domain[0],n)}indexAtX(t){let{days:n,day:r}=this.dayAt(t);if(!this.showsNonWorking||!this.calendar)return n;let i=Xe(this.domain[0],r),o=this.calendar.workingIndexOf(this.domain[0],i);return this.calendar.isWorkingDay(i)?o+Math.max(0,n-r):o}startX(t){if(!this.showsNonWorking||!this.calendar)return t;let n=Xe(this.domain[0],this.dayAt(t).day);if(this.calendar.isWorkingDay(n))return t;let r=this.calendar.workingIndexOf(this.domain[0],n);return this.forward(this.calendar.dateAtWorkingIndex(this.domain[0],r))}advanceX(t,n){if(!this.showsNonWorking||!this.calendar)return t+n*this.pixelsPerDay;let r=this.startX(t);if(n<=0)return r;let i=this.indexAtX(r)+n,o=Math.ceil(i-ub)-1,s=i-o,a=this.calendar.dateAtWorkingIndex(this.domain[0],o);return this.forward(a)+s*this.pixelsPerDay}get originX(){return this.range[0]}get widthPx(){return this.range[1]-this.range[0]}};var up=6,DW=4,fb=8,dp=class{constructor(t){M(this,"input");this.input=t}measure(){let{title:t,author:n,style:r,logo:i}=this.input,o=r.headerPosition==="beside",s=MW(t,n,i),a=i?Math.max(ry,i.height+20):ry;return{position:r.headerPosition,titleLines:s.titleLines,authorLines:s.authorLines,cardWidth:s.cardWidth,cardHeight:s.cardHeight,textCardHeight:s.textCardHeight,logoSlot:s.logoSlot,...i?{logo:i}:{},chartLeftX:o?s.boxWidth:0,aboveHeight:a,chartTopY:o?fb:a+fb,minRowsBottomY:o?s.cardHeight+DW:0}}place(t,n){let{title:r,author:i,style:o}=this.input,s=t.position==="beside",a=s?{x:0,y:0,width:t.chartLeftX,height:n.chartBottomY}:{x:0,y:0,width:n.canvasRightX,height:t.aboveHeight},l=s?{x:up,y:n.rowsBottomY-t.cardHeight,width:t.cardWidth,height:t.cardHeight}:{x:0,y:0,width:n.canvasRightX,height:t.aboveHeight},c,u;return t.logo&&(c={box:{x:a.x+l.x+16,y:a.y+l.y+(l.height-t.logo.height)/2,width:t.logo.width,height:t.logo.height},assetRef:t.logo.assetRef,intrinsic:t.logo.intrinsic},u={x:t.logoSlot,y:Math.max(0,(l.height-t.textCardHeight)/2)}),{box:a,position:o.headerPosition,title:r,author:i,titleLines:t.titleLines,authorLines:t.authorLines,cardBox:l,logo:c,...u?{textInset:u}:{},style:o}}};function MW(e,t,n){let r=ny-32,i=wi(e,r,16),o=wi(t??"",r,11),s=0;for(let w of i)s=Math.max(s,se(w,16));for(let w of o)s=Math.max(s,se(w,11));let a=i.length>0||o.length>0,l=n?n.width+(a?12:0):0,c=s+32,u=Math.max(Ak-up,Math.min(ny-up,c)+l),f=i.length>0?(i.length-1)*20:0,d=o.length>0?18+(o.length-1)*14:0,p=26+f+d+14,m=n?Math.max(p,n.height+20):p,g=u+up;return{titleLines:i,authorLines:o,cardWidth:u,cardHeight:m,textCardHeight:p,logoSlot:l,boxWidth:g}}function pp(e){for(let t of e.waves?.values()??[])if(t.memberCount>0)return!0;return!1}function zl(e,t,n={}){let r=Vf(e,t),{config:i,working:o}=r,s=us(t.content.sizes,i),a=ie(e.roadmapDecl?.properties??[],"start"),l=_e(a)??FW(n.today??new Date),c=S=>o.workingIndexOf(l,S),u=S=>o.dateAtWorkingIndex(l,S),f=(S,O)=>Yf(o,l,S,O),d=0,p=S=>{d=Math.max(d,S)},m=new Map,g=new Map,w=new Map,x=new Map,y=new WeakMap,E=new Map,_=new WeakMap,T=new Map;for(let[S,O]of t.content.anchors){let k=_e(ie(O.properties,"date"));if(k){let L=c(k);g.set(S,L),T.set(S,k),p(L)}}let I=()=>({itemEnd:m,anchorEnd:g,milestoneEnd:w,sizes:s,itemResults:x,inByNode:!0}),B=(S,O,k)=>{let L=b=>{if("date"in b)return c(b.date);let F=b.ref;return S.itemEnd.has(F)?S.itemEnd.get(F):S.anchorEnd.has(F)?S.anchorEnd.get(F):S.milestoneEnd.has(F)?S.milestoneEnd.get(F):0},v=(b,F)=>{let j=F;for(let U of vt(b))j=P(U,j),k(j);return j},P=(b,F)=>{if(Ve(b)){let j=KA(b.properties,S.sizes,i),{after:U}=Xr(b.properties),ee=U.length>0?Math.max(F,...U.map(L)):F;O&&(ee=O.apply(b,ee));let V=ee+j,ne={start:u(ee),end:f(ee,V),days:j};return S.inByNode&&y.set(b,ne),b.name&&(S.itemEnd.set(b.name,V),S.itemResults?.set(b.name,ne)),O?.accumulate(b,V),V}if(et(b)){let{after:j}=Xr(b.properties),U=j.length>0?Math.max(F,...j.map(L)):F;O&&(U=O.apply(b,U));let ee=U;for(let V of vt(b))ee=Math.max(ee,P(V,U));return b.name&&S.itemEnd.set(b.name,ee),ee}if($e(b)){let{after:j}=Xr(b.properties),U=j.length>0?Math.max(F,...j.map(L)):F;O&&(U=O.apply(b,U));let ee=v(b,U);return b.name&&S.itemEnd.set(b.name,ee),ee}return F};return{walkLane:v,resolveAfterDay:L}},$=(S,O)=>{let k=_e(ie(S.properties,"date"));if(k)return c(k);let{after:L}=Xr(S.properties);return L.length>0?Math.max(0,...L.map(O)):void 0},X=(S,O)=>{let k=new Map,L=new Map,v=new Map;for(let[F,j]of S.anchors){let U=_e(ie(j.properties,"date"));if(U){let ee=c(U);L.set(F,ee),p(ee)}}let{walkLane:P,resolveAfterDay:b}=B({itemEnd:k,anchorEnd:L,milestoneEnd:v,sizes:us(S.sizes,i),inByNode:O},void 0,p);for(let F of S.swimlanes.values())P(F,0);for(let[F,j]of S.milestones){let U=$(j,b);U!==void 0&&(v.set(F,U),p(U))}for(let F of S.isolatedRegions)X(F.content,!1)},Y=n.plan!==void 0?n.plan??void 0:Di(t),D;if(Y){let S=Y.waves.map(b=>b.name),O=TS(Y,l,o),k,L=0,v=b=>{L=Math.max(L,b)},P=Wd(S.length,0,O,(b,F)=>{let j=S.map((V,ne)=>[V,F[ne]]);m=new Map(j),x=new Map,y=new WeakMap,L=0;let U=new Fi(Y,b),{walkLane:ee}=B(I(),U,v);for(let V of t.content.swimlanes.values())ee(V,0);for(let V of t.content.isolatedRegions){let ne=B({itemEnd:new Map(j),anchorEnd:new Map,milestoneEnd:new Map,sizes:us(V.content.sizes,i),inByNode:!0},U,v);for(let A of V.content.swimlanes.values())ne.walkLane(A,0)}return k=U,U});p(Math.max(L,...P.S,...P.E.slice(-1))),D=new Map;for(let b of Xd(Y,P,k,0,O))D.set(b.id,{index:b.index,start:u(b.start),end:f(b.start,b.end),memberCount:b.memberCount,...b.heldBy!==void 0?{heldBy:b.heldBy}:{},...b.floorRef!==void 0?{floorRef:b.floorRef}:{}})}else{let{walkLane:S}=B(I(),void 0,p);for(let O of t.content.swimlanes.values())S(O,0)}let{resolveAfterDay:R}=B(I(),void 0,p);for(let[S,O]of t.content.milestones){let k=$(O,R);if(k===void 0)continue;let L=_e(ie(O.properties,"date"))??u(k);w.set(S,k),E.set(S,L),_.set(O,L),p(k)}if(!Y)for(let S of t.content.isolatedRegions)X(S.content,!0);return{startDate:l,calendar:r,items:x,byNode:y,milestones:E,milestoneByNode:_,anchors:T,...D?{waves:D}:{},...Y?{plan:Y}:{},resolved:t,extent:{contentEndDay:d}}}function FW(e){return new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()))}var BW=8;function hb(e,t,n,r,i){let{locale:o,styleCtx:s}=r,{calendar:a,preset:l,startDate:c,timelineDays:u,nonWorking:f}=i,d=i.naturalEndDate,p=pp(i.schedule)?i.schedule.plan:void 0,m=r.roadmapStyle,g=fl[m.headerHeight]??fl.md,w=g>0&&m.timelinePosition!=="bottom",x=g>0&&(m.timelinePosition==="bottom"||m.timelinePosition==="both"),y=e.roadmapDecl?.title??e.roadmapDecl?.name??"",E=ie(e.roadmapDecl?.properties??[],"author"),_=new dp({title:y,author:E,style:m,logo:Uk(e,n.logo)}),T=_.measure(),{chartLeftX:I}=T,B=hk({naturalPixelsPerDay:l.pixelsPerUnit/a.daysPerUnit(l.unit),dayCount:u,chromeWidth:I+2*kt,maxWidth:n.width}),$=u*B,X=I+kt,Y=$,R=n.today!==void 0&&n.today>=c&&n.today<=d?Gt:0,S=w?g:0,O=p?fy:0,k=new Os({domain:[c,d],range:[X,X+$],calendar:a,nonWorking:f}),L=tp(fx(k,[],l.unit,!1),dx(k)),v=t.content.anchors.size+t.content.milestones.size>0||L.length>0,P=X+Y+kt,b=Ul(t.content.anchors,t.content.milestones,k),F=[...b,...L],j=Ls(F,I,Bi(F,I,P,se),se),U=v?Math.max(1,j.rowCount):0,ee=U*26,V=R+S+O+ee,ne=V+BW,A=Fx(T,V),C=A+R,W=C+S,G=W+O,K=Dd(k,l,a,o),q={box:{x:X,y:A,width:$,height:0},ticks:K,pixelsPerDay:B,originX:X,startDate:c,endDate:d,labelStyle:Se("roadmap",[],s),pillRowHeight:R,tickPanelY:C,tickPanelHeight:S,markerRow:{y:G+13,height:ee,collisionY:G-8},minorGrid:m.minorGrid,...p?{waveStrip:{y:W,height:O}}:{}};return Bx(q,k,l.unit),{header:T,headerNode:_,axis:{originX:X,ppd:B,naturalWidth:$,scale:k},naturalChartRightX:P,bands:{timelineY:A,pillRowHeight:R,tickPanelY:C,tickPanelHeight:S,waveStripY:W,markerRowY:G,estimatedMarkerRows:U,rowsHeight:V,chartTopY:A+ne,bottomTickPanelHeight:x?g:0},timeline:q,markers:{datePinned:b,placements:Ns(j.placements,G),hasEntities:v}}}function Fx(e,t){return Math.max(e.chartTopY,e.minRowsBottomY-t)}function Bx(e,t,n){let r=fx(t,e.ticks,n,e.minorGrid);r&&(e.nonWorkingDisplay=t.showsNonWorking?"show":"hide",e.nonWorking=r);let i=dx(t);i&&(e.workingExceptions=i)}var mb=8,Wx=class{constructor(t){M(this,"rightX");M(this,"frozen",!1);this.rightX=t}grow(t){if(this.frozen)throw new Error("layout: the canvas grew after it was frozen");return t<=this.rightX?!1:(this.rightX=t,!0)}freeze(){this.frozen=!0}get provisional(){return this.rightX}get final(){if(!this.frozen)throw new Error("layout: the canvas was read before it was final");return this.rightX}},WW;var hp=class{constructor(t,n,r,i,o,s,a){M(this,"file");M(this,"resolved");M(this,"options");M(this,"scope");M(this,"window");M(this,"measured");M(this,"chart");M(this,"canvas");M(this,"chartY");M(this,"draft",{});M(this,"scaleIsFinal",!1);M(this,"band");M(this,"rowsTop");M(this,"rowsBottom");M(this,"why");this.file=t,this.resolved=n,this.options=r,this.scope=i,this.window=o,this.measured=s,this.chart=a,this.canvas=new Wx(s.naturalChartRightX);let l=a.ctx;this.chartY={get top(){return l.chartTopY},set top(c){l.chartTopY=c},get swimlaneBottom(){return l.swimlaneBottomY},set swimlaneBottom(c){l.swimlaneBottomY=c},get bottom(){return l.chartBottomY},set bottom(c){l.chartBottomY=c}}}get ctx(){return this.chart.ctx}get scale(){return this.chart.ctx.scale}finalScale(){if(!this.scaleIsFinal)throw new Error("layout: the final scale was read before the timeline extension");return this.chart.ctx.scale}extendScale(t){if(this.scaleIsFinal)throw new Error("layout: the scale was extended after it was final");this.chart.ctx.scale=t}settleScale(){this.scaleIsFinal=!0}markerBand(){if(!this.band)throw new Error("layout: the marker band was read before the final pack");return this.band}setMarkerBand(t){if(this.band)throw new Error("layout: the marker band was packed twice");this.band=t,this.chart.ctx.markerRowPlacements=t.placements}headerRowsTop(){return this.rowsTop||(this.rowsTop=XW(this.measured,this.options.today,this.finalScale())),this.rowsTop}headerRowsBottom(){if(this.rowsBottom===void 0)throw new Error("layout: the header rows bottom was read before the rows grew");return this.rowsBottom}setHeaderRowsBottom(t){if(this.rowsBottom!==void 0)throw new Error("layout: the header rows grew twice");this.rowsBottom=t}explain(t){this.why=t}report(t,n){WW?.(t,n,this.why),this.why=void 0}};function XW(e,t,n){let{bands:r,header:i}=e;if(!(r.pillRowHeight===0&&t!==void 0&&n.forwardWithinDomain(t)!==null))return{timelineY:r.timelineY,pillRowHeight:r.pillRowHeight,tickPanelY:r.tickPanelY,markerRowY:r.markerRowY,shift:0};let s=Fx(i,Gt+r.rowsHeight),a=s+Gt,l=a-r.tickPanelY;return{timelineY:s,pillRowHeight:Gt,tickPanelY:a,markerRowY:r.markerRowY+l,shift:l}}function UW(e){return e.canvas.grow(e.chart.maxRightX+kt)}function GW(e){let{swimlanes:t,includes:n,milestones:r}=e.chart,{calendar:i,preset:o,startDate:s,spanDays:a,nonWorking:l}=e.window,{originX:c,ppd:u}=e.measured.axis,f=e.measured.timeline,d=Wr(t);for(let I of n)d=Math.max(d,Wr(I.nestedSwimlanes));let p=0;for(let I of e.measured.markers.datePinned)p=Math.max(p,I.centerX+I.radius);let m=0;for(let I of r)I.fixed?p=Math.max(p,I.x+I.radius):m=Math.max(m,I.x+I.radius);for(let I of n){for(let B of I.anchors??[])p=Math.max(p,B.center.x+B.radius);for(let B of I.milestones??[])B.fixed?p=Math.max(p,B.center.x+B.radius):m=Math.max(m,B.center.x+B.radius)}let g=Math.max(d,p,m),w=i.daysPerUnit(o.unit),x=e.scale.showsNonWorking?e.scale.indexAtX(g):(g-c)/u,y=x>0?Mi(s,x,o.unit,w,i):0,E=Ss(t);for(let I of n)E=Math.max(E,Ss(I.nestedSwimlanes));let _=new Is(e.window,e.scale);if(E>0){let I=Math.max(a,y);_.isPast(E,I)&&(y=Math.max(y,Math.min(_.boundaryAtOrAfterX(E),_.captionLimit(I))))}let T=!1;if(y>a){let I={bar:d,caption:E,datedMarker:p,afterMilestone:m};e.explain(Object.keys(I).filter(Y=>I[Y]>0&&_.isPast(I[Y],a)));let B=i.dateAtWorkingIndex(s,y),$=e.scale.showsNonWorking?At(s,B)*u:y*u,X=new Os({domain:[s,B],range:[c,c+$],calendar:i,nonWorking:l});e.extendScale(X),f.endDate=B,f.box.width=$,f.ticks=Dd(X,o,i,e.scope.locale),Bx(f,X,o.unit),e.canvas.grow(c+$+kt),T=!0}return e.settleScale(),T}function HW(e){let t=e.measured.timeline,n=new Map;for(let l of e.chart.milestones)l.slipX!==void 0&&n.set(l.id,l.slipX);let r=e.measured.markers.datePinned.map(l=>{let c=l.isMilestone?n.get(l.id):void 0;return{id:l.id,centerX:c??l.centerX,radius:l.radius,title:l.title,fontSize:l.fontSize,bold:l.bold,...c!==void 0?{slipFromX:l.centerX}:{}}});for(let l of e.chart.milestones)l.fixed||r.push({id:l.id,centerX:l.x,radius:l.radius,title:l.title,fontSize:10,bold:!0});let i=tp(t.nonWorking,t.workingExceptions);r.push(...i),e.draft.markerEntries={all:r,calendarCount:i.length};let o=Bi(r,e.measured.header.chartLeftX,e.canvas.provisional,se),s=gb(e,e.draft.markerEntries);for(let l of e.chart.includes)o=Math.max(o,VS(l,e.canvas.provisional)),o=Math.max(o,l.box.x+Hl(l,Number.POSITIVE_INFINITY,s));let a=e.canvas.grow(o);return e.canvas.freeze(),a}function gb(e,t){let{swimlanes:n,includes:r}=e.chart,i=Math.max(Wr(n),Ss(n));for(let s of r){i=Math.max(i,Wr(s.nestedSwimlanes),Ss(s.nestedSwimlanes));for(let a of[...s.anchors??[],...s.milestones??[]])i=Math.max(i,a.labelBox.x+a.labelBox.width)}if(t){let s=t.all.slice(0,t.all.length-t.calendarCount);for(let a of s){let l=se(a.title,a.fontSize)*(a.bold?1.05:1);i=Math.max(i,a.centerX+a.radius+6+l)}}let o=e.options.today?e.scale.forwardWithinDomain(e.options.today):null;return o!==null&&(i=Math.max(i,o)),i}function zW(e){let t=e.canvas.final,n=e.measured.naturalChartRightX,r=gb(e,Ct(e.draft.markerEntries,"the marker entries")),i=e.chart.swimlanes.length>0&&t!==n;for(let o of e.chart.swimlanes)o.box.width=t;for(let o of e.chart.includes)Hl(o,t,r)!==Hl(o,n,r)&&(i=!0),nb(o,t,r);return i}function jW(e){let t=Ct(e.draft.markerEntries,"the marker entries"),n=Ls(t.all,e.measured.header.chartLeftX,e.canvas.final,se,np(e.chart.milestones)),r=Ns(n.placements,e.headerRowsTop().markerRowY),i=e.measured.markers.hasEntities||t.calendarCount>0?Math.max(1,n.rowCount):0;e.setMarkerBand({rowCount:i,placements:r});let o=!1;for(let[s,a]of e.measured.markers.placements){let l=r.get(s);(!l||!sX(a,l))&&(o=!0)}return o}function YW(e){let t=e.markerBand(),n=e.ctx,r=e.measured.timeline,i=ip(e.chart.milestones,t.placements),o=i.some(s=>n.entityMidpoints.get(s.id??"")?.y!==s.center.y);for(let s of r.nonWorking??[]){if(s.label===void 0)continue;let a=t.placements.get(_x(s));a&&(s.labelBox=a.labelBox,s.labelSide=a.labelSide)}for(let s of r.workingExceptions??[]){let a=t.placements.get(Ax(s));a&&(s.labelBox=a.labelBox,s.labelSide=a.labelSide)}for(let s of e.measured.markers.datePinned){let a=t.placements.get(s.id);a&&n.entityMidpoints.set(s.id,{x:s.centerX,y:a.centerY})}for(let s of i)s.fixed||n.entityMidpoints.set(s.id??"",{x:s.center.x,y:s.center.y});return e.draft.milestones=i,o}function VW(e){let t=e.markerBand(),n=e.headerRowsTop(),r=e.measured.bands,i=r.estimatedMarkerRows,s=e.ctx.timeline,a=!1;n.pillRowHeight!==r.pillRowHeight&&(s.box.y=n.timelineY,s.pillRowHeight=n.pillRowHeight,s.tickPanelY=n.tickPanelY,s.waveStrip&&(s.waveStrip.y+=n.shift),s.markerRow.y+=n.shift,s.markerRow.collisionY+=n.shift,a=!0);let l=n.shift;t.rowCount>i&&(l+=(t.rowCount-i)*26,s.markerRow.height=t.rowCount*26,a=!0),e.setHeaderRowsBottom(n.markerRowY+s.markerRow.height);let c=r.chartTopY+l;e.chartY.top=c,e.chartY.bottom+=c,e.chartY.swimlaneBottom+=c,s.box.height=e.chartY.bottom-s.box.y;for(let d of e.chart.swimlanes)Rs(d,c);for(let d of e.chart.includes)pS(d,c);let u=e.chart.milestones,f=Ct(e.draft.milestones,"the milestones");for(let d=0;d<f.length;d++)hS(f[d],u[d],c);return a}function KW(e){let t=e.measured.bands.bottomTickPanelHeight;return t<=0?!1:(e.ctx.timeline.bottomTickPanelY=e.chartY.bottom+mb,e.ctx.timeline.bottomTickPanelHeight=t,e.chartY.bottom+=mb+t,!0)}function qW(e){e.finalScale();let t=e.ctx;if(!t.waves)return!1;let n=ab(t.waves,t,jn(e.scope.locale),e.chart.swimlanes,e.chart.includes);return n.regionCrossings.forEach((r,i)=>{r.length>0&&(e.chart.includes[i].waveCrossings=r)}),e.draft.waves=n,!0}function ZW(e){e.finalScale(),e.markerBand();let t=new Set(Ct(e.draft.milestones,"the milestones").map(r=>r.center.x)),n=Md(e.resolved.content.anchors,e.ctx,t);return e.draft.anchors=n,n.length>0}function JW(e){let t=Tx(e.chart.laneEntries),n=vx(t,e.chart.swimlanes,e.chart.includes,e.ctx);e.draft.edges=n;let r=0;return e.resolved.content.isolatedRegions.forEach((i,o)=>{let s=e.chart.includes[o],a=e.chart.regionContexts[o];if(!s||!a)return;let l=vx(Tx([...i.content.swimlanes.values()]),s.nestedSwimlanes,[],a);l.length>0&&(s.edges=l),r+=l.length}),n.length+r>0}function QW(e){e.finalScale();let t=rb(e.options.today,e.ctx,e.scope.locale,e.canvas.final);return e.draft.nowline=t,t!==null}function eX(e){let t=e.draft.waves;if(!t)return!1;let n=cb(t,e.ctx,jn(e.scope.locale),e.chartY.bottom+ad);return n?(e.chartY.bottom+=ad+n.box.height,e.draft.waveLegend=n,!0):!1}function tX(e){let t=e.resolved.content.isolatedRegions.flatMap((r,i)=>{let o=e.chart.regionContexts[i],s=e.chart.includes[i];return o&&s?[{title:s.label,footnotes:r.content.footnotes,ctx:o}]:[]}),n=WS(e.resolved.content.footnotes,e.ctx,e.chartY.bottom,e.canvas.final,t);return e.draft.footnotes=n,n.entries.length>0}function nX(e){let{header:t,headerNode:n}=e.measured;return e.draft.header=n.place(t,{rowsBottomY:e.headerRowsBottom(),chartBottomY:e.chartY.bottom,canvasRightX:e.canvas.final}),t.position==="beside"}function rX(e){let t=Ct(e.draft.footnotes,"the footnote panel"),n=e.canvas.final,r=t.entries.length>0?t.box.y+t.box.height:e.chartY.bottom,i={x:n-kt-ly,y:r+kt,width:ly,height:Ik};return e.draft.attributionBox=i,e.draft.height=i.y+i.height+kt,!0}var iX=[{name:"growCanvasForSpill",reads:["placement"],writes:["canvas"],run:UW},{name:"extendTimeline",reads:["placement","window","scale"],writes:["scale","timeline","calendarRuns","canvas"],run:GW},{name:"growCanvasForMarkerLabels",reads:["placement","calendarRuns","canvas","scale"],writes:["markerEntries","canvas"],run:HW},{name:"fitWidths",reads:["placement","canvas","markerEntries","scale"],writes:["laneWidths"],run:zW},{name:"packMarkers",reads:["placement","canvas","markerEntries","headerBands","scale"],writes:["markerBand"],run:jW},{name:"placeMarkers",reads:["placement","markerBand","calendarRuns"],writes:["milestones","calendarLabels","markerMidpoints"],run:YW},{name:"growHeaderRows",reads:["placement","markerBand","headerBands","scale","milestones","chartTop","laneBottom"],writes:["chartTop","rowsBottom","laneBottom","chartBottom","laneY","milestones","timeline"],run:VW},{name:"bottomTickPanel",reads:["headerBands","chartBottom"],writes:["chartBottom","timeline"],run:KW},{name:"waves",reads:["scale","chartTop","laneBottom","timeline","laneY"],writes:["waves","timeline"],run:qW},{name:"anchors",reads:["scale","markerBand","chartTop","laneBottom","milestones"],writes:["anchors","markerMidpoints"],run:ZW},{name:"dependencyEdges",reads:["laneY","markerMidpoints"],writes:["edges"],run:JW},{name:"nowline",reads:["scale","canvas","laneBottom","timeline"],writes:["nowline"],run:QW},{name:"waveLegend",reads:["waves","canvas","chartBottom"],writes:["legend","chartBottom"],run:eX},{name:"footnotePanel",reads:["chartBottom","canvas"],writes:["footnotes"],run:tX},{name:"header",reads:["chartBottom","canvas","rowsBottom"],writes:["header"],run:nX},{name:"attribution",reads:["footnotes","chartBottom","canvas"],writes:["attribution"],run:rX}];function yb(e,t=iX){for(let n of t)e.report(n.name,n.run(e));return oX(e)}function oX(e){let{draft:t}=e,{themeName:n,theme:r}=e.scope,{swimlanes:i,includes:o,waveSolve:s}=e.chart,a=e.canvas.final,l=e.measured.header.chartLeftX,c=t.waves,u=t.waveLegend;return{width:a,height:Ct(t.height,"the canvas height"),theme:n,palette:r,backgroundColor:r.surface.page,header:{...Ct(t.header,"the header"),attributionBox:Ct(t.attributionBox,"the attribution box")},timeline:e.measured.timeline,nowline:Ct(t.nowline,"the now-line"),swimlanes:i,anchors:Ct(t.anchors,"the anchors"),milestones:Ct(t.milestones,"the milestones"),edges:Ct(t.edges,"the edges"),footnotes:Ct(t.footnotes,"the footnote panel"),includes:o,chartBox:{x:l,y:e.chartY.top,width:a-l,height:e.chartY.bottom-e.chartY.top},...s?{waveSolve:s}:{},...c?{waves:c.waves}:{},...c&&c.boundaries.length>0?{waveBoundaries:c.boundaries}:{},...c&&c.crossings.length>0?{waveCrossings:c.crossings}:{},...u?{waveLegend:u}:{}}}function Ct(e,t){if(e===void 0)throw new Error(`layout: ${t} was read before its step ran`);return e}function sX(e,t){return e.rowIndex===t.rowIndex&&e.centerY===t.centerY&&e.labelSide===t.labelSide&&e.labelBox.x===t.labelBox.x&&e.labelBox.y===t.labelBox.y&&e.labelBox.width===t.labelBox.width&&e.labelBox.height===t.labelBox.height}var Cs=class extends Map{constructor(t,n=cX){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),t!=null)for(let[r,i]of t)this.set(r,i)}get(t){return super.get(xb(this,t))}has(t){return super.has(xb(this,t))}set(t,n){return super.set(aX(this,t),n)}delete(t){return super.delete(lX(this,t))}};function xb({_intern:e,_key:t},n){let r=t(n);return e.has(r)?e.get(r):n}function aX({_intern:e,_key:t},n){let r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function lX({_intern:e,_key:t},n){let r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function cX(e){return e!==null&&typeof e=="object"?e.valueOf():e}function mp(e,t,n){e=+e,t=+t,n=(i=arguments.length)<2?(t=e,e=0,1):i<3?1:+n;for(var r=-1,i=Math.max(0,Math.ceil((t-e)/n))|0,o=new Array(i);++r<i;)o[r]=e+r*n;return o}function gp(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}var Eb=Symbol("implicit");function yp(){var e=new Cs,t=[],n=[],r=Eb;function i(o){let s=e.get(o);if(s===void 0){if(r!==Eb)return r;e.set(o,s=t.push(o)-1)}return n[s%n.length]}return i.domain=function(o){if(!arguments.length)return t.slice();t=[],e=new Cs;for(let s of o)e.has(s)||e.set(s,t.push(s)-1);return i},i.range=function(o){return arguments.length?(n=Array.from(o),i):n.slice()},i.unknown=function(o){return arguments.length?(r=o,i):r},i.copy=function(){return yp(t,n).unknown(r)},gp.apply(i,arguments),i}function jl(){var e=yp().unknown(void 0),t=e.domain,n=e.range,r=0,i=1,o,s,a=!1,l=0,c=0,u=.5;delete e.unknown;function f(){var d=t().length,p=i<r,m=p?i:r,g=p?r:i;o=(g-m)/Math.max(1,d-l+c*2),a&&(o=Math.floor(o)),m+=(g-m-o*(d-l))*u,s=o*(1-l),a&&(m=Math.round(m),s=Math.round(s));var w=mp(d).map(function(x){return m+o*x});return n(p?w.reverse():w)}return e.domain=function(d){return arguments.length?(t(d),f()):t()},e.range=function(d){return arguments.length?([r,i]=d,r=+r,i=+i,f()):[r,i]},e.rangeRound=function(d){return[r,i]=d,r=+r,i=+i,a=!0,f()},e.bandwidth=function(){return s},e.step=function(){return o},e.round=function(d){return arguments.length?(a=!!d,f()):a},e.padding=function(d){return arguments.length?(l=Math.min(1,c=+d),f()):l},e.paddingInner=function(d){return arguments.length?(l=Math.min(1,d),f()):l},e.paddingOuter=function(d){return arguments.length?(c=+d,f()):c},e.align=function(d){return arguments.length?(u=Math.max(0,Math.min(1,d)),f()):u},e.copy=function(){return jl(t(),[r,i]).round(a).paddingInner(l).paddingOuter(c).align(u)},gp.apply(f(),arguments)}var Xx=class e{constructor(t,n,r){M(this,"bandwidthPx");M(this,"stepPx");M(this,"d3");this.bandwidthPx=t,this.stepPx=n,this.d3=r}static fixedRow(t){return new e(t.bandwidth,t.step)}static forRows(t){let n=Array.from({length:t.count},(i,o)=>String(o)),r=jl().domain(n).range(t.range).paddingInner(t.paddingInner??0).paddingOuter(t.paddingOuter??0);return new e(r.bandwidth(),r.step(),r)}bandwidth(){return this.bandwidthPx}step(){return this.stepPx}forward(t){if(!this.d3)throw new Error("BandScale.forward is only available on closed-domain bands (BandScale.forRows)");let n=this.d3(t);if(n===void 0)throw new Error(`BandScale: unknown band id "${t}"`);return n}},uX={bandwidth:56,step:64};function wb(){return Xx.fixedRow(uX)}var Tb=8;function vb(e,t,n,r,i){let{theme:o,styleCtx:s}=t,{cal:a,calendar:l,schedule:c}=n,u=c.plan,{originX:f,scale:d}=r.axis,{timeline:p}=r,m=zd(e,{theme:o,cal:a,schedule:c,timeline:p,scale:d,calendar:l,axisColumns:new Is(n,d),bandScale:wb(),waves:u?vS(u,d,f,jn(t.locale).waveBackgroundItem,pp(c)):void 0},{chartTopY:0,chartBottomY:0,swimlaneBottomY:0},{footnotes:Qd(e.content.footnotes),markerRowPlacements:new Map(r.markers.placements)});for(let v of r.markers.datePinned){let P=m.markerRowPlacements.get(v.id);P&&(m.entityLeftEdges.set(v.id,v.centerX),m.entityRightEdges.set(v.id,v.centerX),m.entityMidpoints.set(v.id,{x:v.centerX,y:P.centerY}))}let g=new Map(m.entityLeftEdges),w=new Map(m.entityRightEdges),x=new Map(m.entityMidpoints),y=()=>{m.entityLeftEdges=new Map(g),m.entityRightEdges=new Map(w),m.entityMidpoints=new Map(x),m.placedItems=new Map,m.itemFlowKey=new Map,m.currentFlowKey="",m.waves&&Ud(m.waves,m.entityLeftEdges,m.entityRightEdges)},E=[...e.content.swimlanes.values()],_=Se("swimlane",[],s),T=Ek[_.spacing]??0,I=()=>{m.nextParallelId=0,m.nextGroupId=0;let v=[],P=m.chartTopY,b=0,F=m.timeline.originX;for(let j of E){b>0&&(P+=T);let{positioned:U,usedHeight:ee,usedRightX:V}=new Ps({lane:j,bandIndex:b},i).place({x:m.timeline.originX,y:P},m);v.push(U),P+=ee,V>F&&(F=V),b++}return{swimlanes:v,nextY:P,maxRightX:F}},B=e.content.isolatedRegions,$,X,Y=m.waves;if(Y){let v,P=bS()?fX(Y.ids,c,d):void 0,b=Wd(Y.ids.length,Y.origin,Y.floors,(F,j)=>(_S(Y,F,j),y(),v=I(),B.length>0&&Lx(B,m,v.nextY+Tb,i,r.naturalChartRightX),Y.pass),Ot,P);AS(Y,b),X={passes:b.passes,capped:b.capped},$=v}else $=I();let D=$.swimlanes,R=$.nextY,S=zS(e.content.milestones,m);S.length>0&&(y(),m.slackCorridors=S,$=I(),D=$.swimlanes,R=$.nextY);let O=[],k=[];if(B.length>0){let v=Lx(B,m,R+Tb,i,r.naturalChartRightX);O=v.regions,k=v.contexts,R=v.endY}m.chartBottomY=R,m.swimlaneBottomY=R;let L=rp(e.content.milestones,m);return{ctx:m,swimlanes:D,includes:O,regionContexts:k,milestones:L,laneEntries:E,maxRightX:$.maxRightX,bottomY:R,...X?{waveSolve:X}:{}}}function fX(e,t,n){let r=e.map(i=>t.waves?.get(i));return{S:r.map(i=>i?n.forward(i.start):null),E:r.map(i=>i?n.forward(i.end):null)}}var xp=class{constructor(t,n){M(this,"node");M(this,"helpers");this.node=t,this.helpers=n}get id(){return this.node.name??""}place(t,n){let{node:r}=this,{helpers:i}=this,o=Se("group",r.properties,n.styleCtx),s=Ur(r,Wl(r.properties,t.x,n),n),a=n.waves!==void 0&&r.title===void 0&&ie(r.properties,"wave")!==void 0&&ie(r.properties,"style")===void 0&&Be(r.properties,"labels").length===0,l=a?void 0:r.title??r.name,c=n.currentFlowKey;n.nextGroupId+=1,n.currentFlowKey=`${c}/group:${r.name??`group-${n.nextGroupId}`}`;let u=Rt(Be(r.properties,"after")),f=Rt(Be(r.properties,"before")),d=dd({drawn:!a,hasTitle:!!l,hasPins:!!(u||f),hasBracket:o.bracket!=="none"}),p=sp(r,{leftX:s,firstRowY:t.y+d.header+d.pad},n,i),{children:m,timeCursorX:g,timeStartX:w}=p,x=n.bandScale.step(),y=x-n.bandScale.bandwidth(),E=Math.max(x,p.packer.usedHeight())-y,_={x:w,y:t.y,width:g-w,height:d.header+d.pad+E+d.pad};t.startX=_.x,t.x=g,t.height=Math.max(t.height,_.height+y);let T=r.name;T&&(n.entityLeftEdges.set(T,_.x),n.entityRightEdges.set(T,g)),n.currentFlowKey=c;let I=a?[]:Fd({box:_,afterDate:u,beforeDate:f,title:l});return{kind:"group",id:T,title:l,box:_,headerHeight:d.header,children:m,style:o,inlineDatePins:I.length>0?I:void 0,...a?{waveOnly:!0}:{}}}};var Ep=class{constructor(t,n){M(this,"node");M(this,"helpers");this.node=t,this.helpers=n}get id(){return this.node.name??""}place(t,n){let{node:r}=this,{helpers:i}=this,o=Se("parallel",r.properties,n.styleCtx),s=Ur(r,t.x,n),a=Rt(Be(r.properties,"after")),l=Rt(Be(r.properties,"before")),c=r.title??r.name,u=dd({drawn:!0,hasTitle:!!c,hasPins:!!(a||l),hasBracket:o.bracket!=="none"}),f=t.y+u.header+u.pad,d=[],p=Number.POSITIVE_INFINITY,m=Number.NEGATIVE_INFINITY,g=0,w=n.currentFlowKey;n.nextParallelId+=1;let x=r.name??`parallel-${n.nextParallelId}`,y=0;for(let X of r.content){if(X.$type==="DescriptionDirective")continue;n.currentFlowKey=`${w}/par:${x}#${y}`;let Y=Xl(s,f+g),D=i.sequenceOne(X,Y,n);d.push(D),g+=Math.max(n.bandScale.step(),Y.height),p=Math.min(p,Y.startX),m=Math.max(m,Y.x),y++}n.currentFlowKey=w,d.length===0&&(p=n.scale.showsNonWorking?n.scale.startX(s):s,m=p);let E=n.bandScale.step(),_=E-n.bandScale.bandwidth(),T=Math.max(E,g)-_,I={x:p,y:t.y,width:m-p,height:u.header+u.pad+T+u.pad};t.startX=I.x,t.x=m,t.height=Math.max(t.height,I.height+_);let B=r.name;B&&(n.entityLeftEdges.set(B,I.x),n.entityRightEdges.set(B,m));let $=Fd({box:I,afterDate:a,beforeDate:l,title:c});return{kind:"parallel",id:B,title:c,box:I,headerHeight:u.header,children:d,style:o,inlineDatePins:$.length>0?$:void 0}}};function dX(e,t,n){return new Ep(e,{sequenceOne:wp}).place(t,n)}function pX(e,t,n){return new xp(e,{sequenceOne:wp}).place(t,n)}function wp(e,t,n){if(Ve(e))return Zd(e,t,n);if(et(e))return dX(e,t,n);if($e(e))return pX(e,t,n);throw new Error(`Unknown swimlane child type: ${e.$type??"unknown"}`)}var Tp=class{place(t,n,r,i){let o={sequenceOne:wp},s=uS(t,n,r),a=fS(t,n,r,s,i),l=hb(t,n,r,s,a),c=vb(n,s,a,l,o);return yb(new hp(t,n,r,s,a,l,c))}};function Ux(e,t,n={}){let r=n.schedule?.resolved===t?n.schedule:zl(e,t,{today:n.today,plan:Di(t)??null});return new Tp().place(e,t,n,r)}function vp(e){return e.toISOString().slice(0,10)}function _b(e){return e.id!==void 0?e.id:/[\r\n]/.test(e.title)?e.title.replace(/\s*[\r\n]+\s*/g," ").trim():e.title}function Gx(e,t){for(let n of e)n.kind==="item"?t(n):Gx(n.children,t)}function hX(e,t,n){let r=_b(e);e.textSpills&&n.push(sn(t,"NL.I1000","info",{name:r},r)),e.chipsOutside&&n.push(sn(t,"NL.I1001","info",{name:r},r)),(e.box.width<Cr||e.dotSpills||e.iconSpills||e.footnoteSpills)&&n.push(sn(t,"NL.I1002","info",{name:r},r)),e.hasOverflow&&n.push(sn(t,"NL.I1003","info",{name:r,anchor:e.overflowAnchorId},r)),Ab(e,t,n)}function Ab(e,t,n){let r=e.nonWorkingPin;if(!r)return;let i=_b(e);n.push(sn(t,"NL.I1008","info",{name:i,pin:r.pin,key:r.key,start:r.start},i))}function sn(e,t,n,r,i){return{message:Pt(e,t,r),severity:n,code:t,entityId:i,lspSeverity:n==="warning"?2:3,data:{code:t,args:r}}}function kb(e,t,n){let r=e.id??e.title,i=[];Gx(e.children,a=>i.push(a));for(let a of i)hX(a,t,n);let o=new Set(i.map(a=>a.box.y));o.size>1&&n.push(sn(t,"NL.I1004","info",{lane:r,rows:o.size},r)),(e.utilization?.segments.some(a=>a.classification==="red")??!1)&&n.push(sn(t,"NL.I1005","info",{lane:r},r));for(let a of e.nested)kb(a,t,n)}function Ib(e,t,n){Gx(e.children,r=>{Ab(r,t,n)});for(let r of e.nested)Ib(r,t,n)}function mX(e,t,n){e.waveSolve?.capped&&n.push(sn(t,"NL.W1002","warning",{passes:e.waveSolve.passes}));let r=e.waves??[],i=r.filter(o=>o.empty).map(o=>o.id);if(i.length>0){let o={names:i};n.push(sn(t,"NL.I1006","info",o,i.length===1?i[0]:void 0))}for(let o of e.milestones){if(o.overrunByWave===void 0||o.overrunDate===void 0)continue;let s=r.find(l=>l.id===o.overrunByWave);if(!s)continue;let a=o.id??o.title;n.push(sn(t,"NL.I1007","info",{name:a,date:o.overrunDate,wave:s.id,end:vp(s.endDate)},a))}}function Hx(e,t={}){let n=t.locale??"en-US",r=[];for(let i of e.swimlanes)kb(i,n,r);for(let i of e.includes)for(let o of i.nestedSwimlanes)Ib(o,n,r);if(mX(e,n,r),t.today){let i=t.today,o=e.timeline.startDate,s=e.timeline.endDate;(i<o||i>s)&&r.push(sn(n,"NL.W1000","warning",{date:vp(i),start:vp(o),end:vp(s)}))}return r}var Wi=class extends Error{constructor(t){super(t),this.name="TimezoneError"}};function zx(e){if(!e||e.toLowerCase()==="local")return{kind:"local"};if(e.toUpperCase()==="UTC")return{kind:"utc"};if(e==="Z")return{kind:"offset",ms:0};let t=/^([+-])(\d{2})(?::?(\d{2}))?$/.exec(e);if(t){let n=t[1]==="+"?1:-1,r=parseInt(t[2],10),i=t[3]!==void 0?parseInt(t[3],10):0;if(r>23||i>59)throw new Wi(`nowline: invalid timezone offset "${e}". Hours must be 0\u201323 and minutes 0\u201359.`);return{kind:"offset",ms:n*(r*60+i)*6e4}}try{return{kind:"iana",name:Intl.DateTimeFormat(void 0,{timeZone:e}).resolvedOptions().timeZone}}catch{throw new Wi(`nowline: unrecognised timezone "${e}". Use "local", "UTC", an ISO 8601 offset (e.g. "+05:30", "-07:00", "Z"), or an IANA timezone name (e.g. "America/Los_Angeles", "Asia/Kolkata").`)}}function _p(e,t){switch(t.kind){case"local":return new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate()));case"utc":return new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()));case"offset":{let n=new Date(e.getTime()+t.ms);return new Date(Date.UTC(n.getUTCFullYear(),n.getUTCMonth(),n.getUTCDate()))}case"iana":{let n=new Intl.DateTimeFormat("en-CA",{timeZone:t.name,year:"numeric",month:"2-digit",day:"2-digit"}).formatToParts(e),r=0,i=0,o=0;for(let s of n)s.type==="year"?r=parseInt(s.value,10):s.type==="month"?i=parseInt(s.value,10)-1:s.type==="day"&&(o=parseInt(s.value,10));return new Date(Date.UTC(r,i,o))}}}var Rb=/^(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?)(Z|([+-])(\d{2})(?::?(\d{2}))?)$/,Sb=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?$/;function bb(e){return(ot.test(e)||Rb.test(e)||Sb.test(e))&&!He(e.slice(0,10))}function jx(e={}){let t=e.zone??{kind:"local"},n=e.clock??(()=>new Date),r=e.now;if(!(r==="-"||r===null)){if(r instanceof Date)return r;if(r!==void 0){if(bb(r))return;let i=_e(r);if(i)return i;let o=Rb.exec(r);if(o){let s=new Date(r);if(!Number.isNaN(s.getTime())){if(o[2]==="Z")return _p(s,{kind:"utc"});let l=o[3]==="+"?1:-1,c=parseInt(o[4],10),u=o[5]!==void 0?parseInt(o[5],10):0,f=l*(c*60+u)*6e4;return _p(s,{kind:"offset",ms:f})}}return Sb.test(r)?_e(r.slice(0,10))??void 0:void 0}return _p(n(),t)}}function gX(e){return e===2?"warning":e===3?"info":"error"}function Nb(e,t){return{severity:gX(e.severity),code:by(e),message:e.message,suggestion:md(e.message,e.data),file:t,line:(e.range?.start.line??0)+1,column:(e.range?.start.character??0)+1}}function Yx(e,t){return{severity:"error",code:"parse-error",message:e.message,file:t,line:e.token?.startLine??1,column:e.token?.startColumn??1}}function Vx(e,t){return{severity:"error",code:"lex-error",message:e.message,file:t,line:e.line??1,column:e.column??1}}function Lb(e,t){if(e.syntax?.origin==="lexer")return Vx(e.syntax.error,e.sourcePath);if(e.syntax?.origin==="parser")return Yx(e.syntax.error,e.sourcePath);let n=(e.range?.start.line??e.line??0)+1,r=(e.range?.start.character??0)+1;if(!Fr(e))return{severity:e.severity,code:"include",message:e.message,file:e.sourcePath,line:n,column:1};let i=t?rx(t,e):e.message,o=md(i,e.code===void 0?void 0:{code:e.code,args:e.args??[]});return{severity:e.severity,code:e.code??gd(e.message),message:i,...o===void 0?{}:{suggestion:o},file:e.sourcePath,line:n,column:r}}function Pb(e,t,n="warning"){return{severity:n,code:"render.warning",message:e,file:t,line:1,column:1}}function Ob(e,t){return{severity:e.severity,code:e.code,message:e.message,file:t,line:1,column:1}}var Cb="__nowline_browser_noop_include__";async function $b(e){throw new Error(`${Cb}: include "${e}" was skipped \u2014 running in single-file mode.`)}function Kx(e){return e.includes(Cb)}function Bb(e,t){let n=t==="image/png"?xX(e):t==="image/jpeg"?EX(e):wX(e);return n&&n.width>0&&n.height>0?n:void 0}var yX=[137,80,78,71,13,10,26,10];function qx(e,t){return e[t]<<8|e[t+1]}function Db(e,t){return(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0}function Mb(e,t){return e[t]|e[t+1]<<8}function Fb(e,t){return e[t]|e[t+1]<<8|e[t+2]<<16}function Ap(e,t,n){return String.fromCharCode(...e.subarray(t,t+n))}function xX(e){if(!(e.length<24||yX.some((t,n)=>e[n]!==t))&&Ap(e,12,4)==="IHDR")return{width:Db(e,16),height:Db(e,20)}}function EX(e){if(e.length<4||e[0]!==255||e[1]!==216)return;let t=2;for(;t+3<e.length;){if(e[t]!==255)return;let n=e[t+1];if(n===255){t+=1;continue}if(n===1||n>=208&&n<=217){t+=2;continue}let r=qx(e,t+2);if(n>=192&&n<=207&&n!==196&&n!==200&&n!==204)return t+8>=e.length?void 0:{width:qx(e,t+7),height:qx(e,t+5)};if(r<2)return;t+=2+r}}function wX(e){if(e.length<16||Ap(e,0,4)!=="RIFF"||Ap(e,8,4)!=="WEBP")return;let t=Ap(e,12,4),n=t==="VP8L"?25:30;if(!(e.length<n)){if(t==="VP8 ")return e[23]!==157||e[24]!==1||e[25]!==42?void 0:{width:Mb(e,26)&16383,height:Mb(e,28)&16383};if(t==="VP8L"){if(e[20]!==47)return;let r=e[21],i=e[22],o=e[23],s=e[24];return{width:1+(r|(i&63)<<8),height:1+(i>>6|o<<2|(s&15)<<10)}}if(t==="VP8X")return{width:1+Fb(e,24),height:1+Fb(e,27)}}}var TX=new Set(["svg","g","defs","symbol","use","path","rect","circle","ellipse","line","polyline","polygon","text","tspan","title","desc","linearGradient","radialGradient","stop","clipPath","mask","pattern","filter","feGaussianBlur","feColorMatrix","feOffset","feMerge","feMergeNode","feFlood","feComposite","feBlend","feDropShadow","image"]),vX=new Set(["d","x","y","x1","y1","x2","y2","cx","cy","r","rx","ry","width","height","viewBox","preserveAspectRatio","fill","fill-opacity","fill-rule","stroke","stroke-width","stroke-opacity","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-dasharray","stroke-dashoffset","opacity","transform","points","id","clip-path","mask","filter","font-family","font-size","font-weight","font-style","text-anchor","dx","dy","rotate","letter-spacing","word-spacing","xmlns","href","xlink:href","offset","stop-color","stop-opacity","gradientUnits","gradientTransform","spreadMethod","maskUnits","maskContentUnits","stdDeviation","values","in","in2","mode","type","result","flood-color","flood-opacity","patternUnits","patternContentUnits","role","aria-label","display","visibility","clip-rule","color","font-variant","font-stretch","text-decoration","dominant-baseline","alignment-baseline","baseline-shift","writing-mode","paint-order","vector-effect","shape-rendering","text-rendering","image-rendering","color-interpolation","color-interpolation-filters"]),_X=new Set(["fill","fill-opacity","fill-rule","stroke","stroke-width","stroke-opacity","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-dasharray","stroke-dashoffset","opacity","clip-path","clip-rule","mask","filter","font-family","font-size","font-weight","font-style","font-variant","font-stretch","text-anchor","text-decoration","letter-spacing","word-spacing","dominant-baseline","alignment-baseline","baseline-shift","writing-mode","stop-color","stop-opacity","flood-color","flood-opacity","display","visibility","color","paint-order","vector-effect","shape-rendering","text-rendering","image-rendering","color-interpolation","color-interpolation-filters"]),AX=new Set(["line-height","text-align","font-variant-ligatures","font-variant-caps","font-variant-numeric","font-variant-east-asian","font-variant-position","font-variant-alternates","font-feature-settings","font-variation-settings","font-kerning","white-space","text-orientation","overflow","isolation","solid-color","solid-opacity","enable-background","color-rendering"]),kX=new Set(["none","normal","auto","initial","inherit","unset"]);function IX(e){return e==="xlink:href"?!1:e.includes(":")||e.startsWith("data-")||e==="version"||e==="baseProfile"||e==="enable-background"}function RX(e){return e==="metadata"||e.includes(":")&&!e.startsWith("svg:")}var SX=new Set(["x","y","width","height"]);function Xb(e){let t=[],n=0,r=e.length;for(;n<r;){if(e[n]!=="<"){let u=n;for(;n<r&&e[n]!=="<";)n++;let f=e.slice(u,n);f.trim().length>0?t.push({kind:"text",text:f}):f.length>0&&t.push({kind:"text",text:f});continue}if(e.startsWith("<!--",n)){let u=e.indexOf("-->",n+4);if(u<0)break;t.push({kind:"comment",text:e.slice(n+4,u)}),n=u+3;continue}if(e.startsWith("<![CDATA[",n)){let u=e.indexOf("]]>",n+9);if(u<0)break;t.push({kind:"cdata",text:e.slice(n+9,u)}),n=u+3;continue}if(e.startsWith("<?",n)){let u=e.indexOf("?>",n+2);if(u<0)break;t.push({kind:"decl",text:e.slice(n+2,u)}),n=u+2;continue}if(e.startsWith("<!",n)){let u=e.indexOf(">",n+2);if(u<0)break;t.push({kind:"decl",text:e.slice(n+2,u)}),n=u+1;continue}if(e[n+1]==="/"){let u=e.indexOf(">",n+2);if(u<0)break;let f=e.slice(n+2,u).trim();t.push({kind:"close",name:f}),n=u+1;continue}let i=bX(e,n);if(i<0)break;let o=e.slice(n+1,i).trim(),s=o.endsWith("/"),a=s?o.slice(0,-1).trim():o,{name:l,attrs:c}=NX(a);t.push({kind:s?"self":"open",name:l,attrs:c}),n=i+1}return t}function bX(e,t){let n=t+1,r=null;for(;n<e.length;){let i=e[n];if(r)i===r&&(r=null);else if(i==='"'||i==="'")r=i;else if(i===">")return n;n++}return-1}function NX(e){let t=0;for(;t<e.length&&/\s/.test(e[t]);)t++;let n=t;for(;t<e.length&&!/\s/.test(e[t]);)t++;let r=e.slice(n,t),i={};for(;t<e.length;){for(;t<e.length&&/\s/.test(e[t]);)t++;if(t>=e.length)break;let o=t;for(;t<e.length&&e[t]!=="="&&!/\s/.test(e[t]);)t++;let s=e.slice(o,t);if(t>=e.length||e[t]!=="="){s&&(i[s]="");continue}if(t++,t>=e.length)break;let a=e[t];if(a!=='"'&&a!=="'"){let c=t;for(;t<e.length&&!/\s/.test(e[t]);)t++;i[s]=e.slice(c,t);continue}t++;let l=t;for(;t<e.length&&e[t]!==a;)t++;i[s]=e.slice(l,t),t<e.length&&t++}return{name:r,attrs:i}}function Yl(e){return e.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<").replace(/>/g,">")}function LX(e,t){if(e.startsWith("#")){let n=t.get(e.slice(1));return n?`#${n}`:null}if(/^url\(#[^)]+\)$/.test(e)){let n=e.slice(5,-1),r=t.get(n);return r?`url(#${r})`:null}return null}function Ub(e,t={}){let n=t.idPrefix??"nl-logo",r=t.onWarn??(()=>{}),i=Xb(e),o="",s=0;for(let d of i)d.kind==="open"&&d.name==="style"?s++:d.kind==="close"&&d.name==="style"?s=Math.max(0,s-1):s>0&&(d.kind==="text"||d.kind==="cdata")&&(o+=d.text??"");let a=PX(o,d=>r(`sanitizer: dropping ${d}`)),l=new Map,c=0;for(let d of i)if((d.kind==="open"||d.kind==="self")&&d.attrs&&"id"in d.attrs){let p=d.attrs.id;p&&!l.has(p)&&l.set(p,`${n}-${c++}`)}let u=[],f=[];for(let d of i)if(d.kind!=="comment"&&d.kind!=="decl"){if(d.kind==="cdata"){f[f.length-1]&&u.push(Yl(d.text??""));continue}if(d.kind==="text"){if(f.length===0||f[f.length-1]){let p=(d.text??"").replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">");u.push(p)}continue}if(d.kind==="open"||d.kind==="self"){let p=d.name??"";if(p==="script"||p==="foreignObject"||p==="animate"||p==="animateTransform"||p==="animateMotion"||p==="set"){r(`sanitizer: dropping <${p}>`),d.kind==="open"&&f.push(!1);continue}if(p==="style"||RX(p)){d.kind==="open"&&f.push(!1);continue}if(!TX.has(p)){r(`sanitizer: dropping unknown element <${p}>`),d.kind==="open"&&f.push(!1);continue}let m=[`<${p}`],g=p==="svg"&&f.length===0,w=OX(d.attrs??{},a,r),x=Object.keys(w).sort();for(let y of x){let E=w[y];if(g&&t.stripRootSize&&SX.has(y))continue;if(/^on/i.test(y)){r(`sanitizer: dropping event handler ${y}`);continue}if(IX(y)||y==="class")continue;if(!vX.has(y)){r(`sanitizer: dropping attribute ${y}`);continue}if(y==="href"||y==="xlink:href"){let T=LX(E,l);if(T===null){r(`sanitizer: dropping external href ${E}`);continue}m.push(` ${y}="${Yl(T)}"`);continue}if(y==="id"){let T=l.get(E);T&&m.push(` id="${Yl(T)}"`);continue}let _=/url\(#([^)]+)\)/gi;if(/data:|javascript:|vbscript:|url\(|expression\s*\(|[\\{}]/i.test(E.replace(_,""))){r(`sanitizer: dropping suspicious value at ${y}`);continue}if(/url\(#/i.test(E)){let T=E.replace(_,(I,B)=>{let $=l.get(B);return $?`url(#${$})`:"none"});m.push(` ${y}="${Yl(T)}"`);continue}m.push(` ${y}="${Yl(E)}"`)}m.push(d.kind==="self"?"/>":">"),u.push(m.join("")),d.kind==="open"&&f.push(!0);continue}d.kind==="close"&&f.pop()&&u.push(`</${d.name}>`)}return u.join("")}function Wb(e){if(e===void 0)return;let t=/^\s*([0-9]*\.?[0-9]+(?:e[+-]?[0-9]+)?)\s*(px)?\s*$/i.exec(e);if(!t)return;let n=Number(t[1]);return n>0&&Number.isFinite(n)?n:void 0}function kp(e){let t=Xb(e).find(s=>(s.kind==="open"||s.kind==="self")&&s.name==="svg");if(!t)return;let n=t.attrs??{},r=Wb(n.width),i=Wb(n.height);if(r!==void 0&&i!==void 0)return{width:r,height:i};let o=(n.viewBox??"").trim().split(/[\s,]+/).map(Number);if(o.length===4&&o.every(Number.isFinite)&&o[2]>0&&o[3]>0)return{width:o[2],height:o[3]}}function Gb(e){let t=[];for(let n of e.split(";")){let r=n.indexOf(":");if(r<0)continue;let i=n.slice(0,r).trim().toLowerCase(),o=n.slice(r+1).replace(/!\s*important\s*$/i,"").trim();i&&o&&t.push({property:i,value:o})}return t}function PX(e,t){let n=[],r=e.replace(/\/\*[\s\S]*?\*\//g,""),i=/([^{}]+)\{([^{}]*)\}/g;for(let o of r.matchAll(i)){let s=o[1].trim(),a=s.split(",").map(l=>l.trim());if(s.startsWith("@")||!a.every(l=>/^\.[A-Za-z_][\w-]*$/.test(l))){t(`<style> rule ${s}`);continue}n.push({classes:a.map(l=>l.slice(1)),declarations:Gb(o[2])})}return/@[a-z-]+[^{;]*;/i.test(r)&&t("<style> at-rule"),n}function OX(e,t,n){let r=new Set((e.class??"").split(/\s+/).filter(Boolean)),i=[];for(let s of t)s.classes.some(a=>r.has(a))&&i.push(...s.declarations);if(e.style!==void 0&&i.push(...Gb(e.style)),i.length===0&&e.style===void 0)return e;let o={...e};delete o.style;for(let{property:s,value:a}of i)_X.has(s)?o[s]=a:!s.startsWith("-")&&!AX.has(s)&&!kX.has(a.toLowerCase())&&n(`sanitizer: dropping style property ${s}`);return o}var CX={".svg":"image/svg+xml",".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".webp":"image/webp"};function $X(e){let t=e.slice(e.lastIndexOf("/")+1),n=t.lastIndexOf(".");return n>0?t.slice(n).toLowerCase():""}async function Hb(e,t,n){if(!e||!t)return;let r=$X(e),i=CX[r];if(!i){n(`unsupported logo format: ${r||"(none)"} (${e})`);return}let o;try{o=await t(e)}catch(l){let c=l instanceof Error?l.message:String(l);n(`logo file not found: ${e} (${c})`);return}let s=o.bytes,a=i==="image/svg+xml"?kp(new TextDecoder().decode(s)):Bb(s,i);if(!a){let l=i==="image/svg+xml"?"no viewBox and no pixel width/height on the root <svg>":`not a readable ${r.slice(1).toUpperCase()} header`;n(`logo could not be parsed: ${e} (${l})`);return}return{ref:e,dimensions:a,asset:o}}var DX=1,MX=0;function FX(){return Ce.parse(`memory:///stage-${++MX}.nowline`)}async function BX(e){if(e.document)return e.document;let{workspace:t}=e.services.shared,n=t.LangiumDocumentFactory.fromString(e.source,FX());return await t.DocumentBuilder.build([n],{validation:!0}),n}function WX(e){return e.origin!=="validation"||e.diagnostic.severity===DX}async function Zx(e){let t=await BX(e),n=bi(t);if(n.some(WX))return{kind:"invalid",document:t,diagnostics:n};let r=t.parseResult.value,i=await Hy(r,e.sourcePath,{services:e.services.Nowline,readFile:e.readSource,includePolicy:e.includePolicy}),o=e.isToleratedIncludeError??(()=>!1),s=T=>T.severity!=="error"||!o(T),a=i.diagnostics.filter(T=>T.severity==="error"&&s(T)),l=i.diagnostics.filter(T=>Fr(T)&&s(T)),c=a.find(T=>!Fr(T));if(c)return{kind:"include-error",document:t,legacy:c,routed:[],resolved:i};if(a.length>0)return{kind:"include-error",document:t,routed:l,resolved:i};let u=[],f=await Hb(hd(r),e.assetResolver,T=>u.push(T)),{theme:d,today:p,width:m,locale:g,nonWorking:w}=e.layout,x={theme:d,today:p,width:m,locale:g,nonWorking:w},y=Di(i)??null,E=zl(r,i,{today:p,plan:y}),_=Ux(r,i,{...x,schedule:E,logo:f?.dimensions});return{kind:"staged",document:t,ast:r,resolved:i,routed:l,logo:f,warnings:u,plan:y,schedule:E,model:_,layout:x}}var zb=/&/g,jb=/</g,Yb=/>/g,XX=/"/g,UX=/'/g;function tt(e){return e.replace(zb,"&").replace(jb,"<").replace(Yb,">")}function an(e){return e.replace(zb,"&").replace(jb,"<").replace(Yb,">").replace(XX,""").replace(UX,"'")}function $s(e){let t=Object.keys(e).sort(),n=[];for(let r of t){let i=e[r];i==null||i===!1||(i===!0?n.push(r):n.push(`${r}="${an(String(i))}"`))}return n.length?` ${n.join(" ")}`:""}function z(e,t,n){return n===void 0||n===""?`<${e}${$s(t)}/>`:`<${e}${$s(t)}>${n}</${e}>`}function ae(e,t){return`<text${$s(e)}>${tt(t)}</text>`}function h(e){return Number.isFinite(e)?Number.isInteger(e)?e.toString():(Math.round(e*100)/100).toString():"0"}var zX="3 3";function Ip(e,t){let n=e.waypoints;if(n.length<2)return"";let r=t.dependency.edgeStroke,i=n[n.length-1],o=n[n.length-2],s=Math.hypot(i.x-o.x,i.y-o.y);if(s===0)return"";let a=(i.x-o.x)/s,l=(i.y-o.y)/s,c=e.headWidth/2,u=e.head==="dot"?c:e.headWidth*5/7,f=s>u?[...n.slice(0,-1),{x:i.x-a*u,y:i.y-l*u}]:n.slice(0,-1),d=[jX(f,e.slack,r)],p=t.arrowhead.neutral;if(e.head==="dot")d.push(z("circle",{cx:h(i.x-a*c),cy:h(i.y-l*c),r:h(c),fill:p}));else{let m=i.x-a*u,g=i.y-l*u;d.push(z("path",{d:`M${h(m-l*c)} ${h(g+a*c)} L${h(i.x)} ${h(i.y)} L${h(m+l*c)} ${h(g-a*c)} z`,fill:p}))}return z("g",{"data-layer":"dependency"},d.join(""))}function jX(e,t,n){if(e.length<2)return"";let r={fill:"none",stroke:n,"stroke-width":1.1,"stroke-linejoin":"round"};if(!t)return z("path",{d:VX(e,od),...r});let{solid:i,dotted:o}=YX(e,od);return(i?z("path",{d:i,...r}):"")+(o?z("path",{d:o,...r,"stroke-dasharray":zX,"stroke-linecap":"round"}):"")}function YX(e,t){let n=e.length,r=[],i=[],o=[];for(let a=1;a<n-1;a++){let l=e[a-1],c=e[a],u=e[a+1],f=Math.hypot(c.x-l.x,c.y-l.y),d=Math.hypot(u.x-c.x,u.y-c.y),p=Math.min(t,f/2,d/2),m={x:Math.sign(c.x-l.x),y:Math.sign(c.y-l.y)},g={x:Math.sign(u.x-c.x),y:Math.sign(u.y-c.y)};r[a]={x:c.x-m.x*p,y:c.y-m.y*p},i[a]={x:c.x+g.x*p,y:c.y+g.y*p},p>0&&o.push(`M${h(r[a].x)} ${h(r[a].y)} Q${h(c.x)} ${h(c.y)} ${h(i[a].x)} ${h(i[a].y)}`)}let s=[];for(let a=0;a<n-1;a++){let l=a===0?e[0]:i[a],c=a===n-2?e[n-1]:r[a+1],u=`M${h(l.x)} ${h(l.y)} L${h(c.x)} ${h(c.y)}`;Math.abs(e[a+1].y-e[a].y)<1e-9?s.push(u):o.push(u)}return{solid:o.join(" "),dotted:s.join(" ")}}function VX(e,t){if(e.length<2)return"";let n=[`M${h(e[0].x)} ${h(e[0].y)}`];for(let r=1;r<e.length;r++){let i=e[r-1],o=e[r];if(r===e.length-1){n.push(`L${h(o.x)} ${h(o.y)}`);continue}let s=e[r+1],a=Math.sign(o.x-i.x),l=Math.sign(o.y-i.y),c=Math.sign(s.x-o.x),u=Math.sign(s.y-o.y),f=Math.hypot(o.x-i.x,o.y-i.y),d=Math.hypot(s.x-o.x,s.y-o.y),p=Math.min(t,f/2,d/2);if(p<=0||a!==0&&c!==0||l!==0&&u!==0){n.push(`L${h(o.x)} ${h(o.y)}`);continue}let m={x:o.x-a*p,y:o.y-l*p},g={x:o.x+c*p,y:o.y+u*p};n.push(`L${h(m.x)} ${h(m.y)}`),n.push(`Q${h(o.x)} ${h(o.y)} ${h(g.x)} ${h(g.y)}`)}return n.join(" ")}function Vb(e,t,n,r){if(e.entries.length===0)return"";let i=n.footnotePanel.fill,o=n.footnotePanel.border,s=n.footnotePanel.header,a=n.footnotePanel.title,l=n.footnotePanel.description,c=n.footnotePanel.number,u=[];u.push(z("rect",{x:h(e.box.x),y:h(e.box.y),width:h(e.box.width),height:h(e.box.height),rx:6,ry:6,fill:i,stroke:o,"stroke-width":1,filter:`url(#${t}-shadow-subtle)`})),u.push(ae({x:h(e.box.x+Ht),y:h(e.box.y+iy),"font-family":r.sans,"font-size":12,"font-weight":700,fill:s},"Footnotes"));let f=e.box.x+Ht;for(let d of e.entries){d.region!==void 0&&d.regionHeadingY!==void 0&&u.push(ae({x:h(f),y:h(d.regionHeadingY),"font-family":r.sans,"font-size":10,"font-weight":700,fill:s},d.region)),u.push(ae({x:h(f),y:h(d.y),"font-family":r.sans,"font-size":10,"font-weight":700,fill:c},String(d.number)));for(let p of d.titleLines)u.push(ae({x:h(p.x),y:h(p.y),"font-family":r.sans,"font-size":11,"font-weight":600,fill:a},p.text));for(let p of d.descriptionLines??[])u.push(ae({x:h(p.x),y:h(p.y),"font-family":r.sans,"font-size":11,fill:l},p.text))}return z("g",{"data-layer":"footnotes"},u.join(""))}function Kb(e,t,n,r){let i=e.box.x+e.cardBox.x,o=e.box.y+e.cardBox.y,s=e.cardBox.width,a=e.cardBox.height,l=e.style.bg==="none"?n.surface.headerBox:e.style.bg,c=n.header.cardBorder,u=z("rect",{x:h(i),y:h(o),width:h(s),height:h(a),rx:6,ry:6,fill:l,stroke:c,"stroke-width":1,filter:`url(#${t}-shadow-subtle)`}),f=i+16+(e.textInset?.x??0),d=o+(e.textInset?.y??0),p=[];e.titleLines.forEach((E,_)=>{p.push(ae({x:h(f),y:h(d+26+_*20),"font-family":r[e.style.font],"font-size":16,"font-weight":600,fill:e.style.text},E))});let m=p.join(""),g=d+26+Math.max(0,e.titleLines.length-1)*20,w=n.header.author,x=[];e.authorLines.forEach((E,_)=>{x.push(ae({x:h(f),y:h(g+18+_*14),"font-family":r[e.style.font],"font-size":11,fill:w},E))});let y=x.join("");return z("g",{"data-layer":"header","data-id":`${t}-header`},u+m+y)}function qb(e,t){let n=e.palette.attribution.mark,r=e.palette.attribution.link;if(e.swimlanes.length===0)return"";let i=e.header.attributionBox.x,o=e.header.attributionBox.y,s=Dr,a=ae({x:"0",y:s,"font-family":t.sans,"font-size":rd,"font-weight":400,fill:n},nd)+ae({x:xl,y:s,"font-family":t.sans,"font-size":Dr,"font-weight":700,fill:n},"now")+z("rect",{x:sy,y:12,width:ay,height:Dr,fill:r})+ae({x:id,y:s,"font-family":t.sans,"font-size":Dr,"font-weight":400,fill:n},"ine"),l=z("g",{transform:`translate(${h(i)} ${h(o)}) scale(${h(yl)})`},a);return z("a",{href:oy,target:"_blank",rel:"noopener","aria-label":"Powered by nowline"},z("g",{"data-layer":"attribution"},l))}async function Zb(e,t,n,r){let i=e.assetRef??"",{x:o,y:s,width:a,height:l}=e.box,c;try{if(r.logo&&r.logo.ref===i)c=r.logo.asset;else if(t)c=await t(i);else return""}catch(d){let p=`logo file not found: ${i} (${d instanceof Error?d.message:String(d)})`;if(r.strict)throw d;return r.warn?.(p),""}let u=(c.mime??"").toLowerCase();if(u==="image/svg+xml"){let d=new TextDecoder().decode(c.bytes),p=e.intrinsic??kp(d)??{width:a,height:l},m=new Set,g=Ub(d,{idPrefix:`${n}-logo`,onWarn:w=>m.add(w.replace(/^sanitizer: dropping /,"")),stripRootSize:!0});return m.size>0&&r.warn?.(`logo ${i}: removed unsupported SVG content: ${[...m].join(", ")}`),z("svg",{"data-layer":"logo",x:h(o),y:h(s),width:h(a),height:h(l),viewBox:`0 0 ${h(p.width)} ${h(p.height)}`,preserveAspectRatio:"xMidYMid meet",overflow:"hidden"},g)}if(u==="image/png"||u==="image/jpeg"||u==="image/jpg"||u==="image/webp"){let d=KX(c.bytes);return z("image",{"data-layer":"logo",href:`data:${u};base64,${d}`,x:h(o),y:h(s),width:h(a),height:h(l),preserveAspectRatio:"xMidYMid meet"})}let f=`unsupported logo format: ${u} (${i})`;if(r.strict)throw new Error(f);return r.warn?.(f),""}function KX(e){if(typeof btoa<"u"){let n="";for(let r=0;r<e.length;r++)n+=String.fromCharCode(e[r]);return btoa(n)}let t=globalThis;if(t.Buffer)return t.Buffer.from(e).toString("base64");throw new Error("renderer: no base64 encoder available")}var Rp=class{constructor(t="nl"){M(this,"prefix");M(this,"counter",0);this.prefix=t}next(t){let n=`${this.prefix}-${this.counter++}`;return t?`${n}-${t}`:n}};function Sp(e,t,n){let r=e.radius,i=e.center.x,o=e.center.y,s=t.anchorDiamond.fill,a=t.anchorDiamond.stroke,l=z("path",{d:`M${h(i)} ${h(o-r)} L${h(i+r)} ${h(o)} L${h(i)} ${h(o+r)} L${h(i-r)} ${h(o)} Z`,fill:s,stroke:a,"stroke-width":1.25}),c=t.anchorDiamond.label,u=e.labelSide==="left"?e.labelBox.x+e.labelBox.width:e.labelBox.x,f={x:h(u),y:h(o+4),"font-family":n.sans,"font-size":10,fill:c};e.labelSide==="left"&&(f["text-anchor"]="end");let d=e.title?ae(f,e.title):"";return z("g",{"data-layer":"anchor","data-id":e.id??null},Jb(e.hiddenDate)+l+d)}function bp(e,t){let n=t.anchorDiamond.cutLine;return z("line",{x1:h(e.center.x),y1:h(e.center.y+e.radius+1),x2:h(e.center.x),y2:h(e.cutBottomY),stroke:n,"stroke-width":1,"stroke-dasharray":"1 3"})}function Np(e,t,n){let r=e.center.x,i=e.center.y,o=e.radius,s=t.milestoneDiamond.cutLineOverrun,a=(m,g)=>z("path",{d:`M${h(m)} ${h(i-o)} L${h(m+o)} ${h(i)} L${h(m)} ${h(i+o)} L${h(m-o)} ${h(i)} Z`,fill:g,stroke:g,"stroke-width":1}),l=e.slip?.x,c;l!==void 0?c=a(r,s)+z("path",{d:`M${h(r+o)} ${h(i)} H${h(l-o)}`,fill:"none",stroke:s,"stroke-width":1.1,"stroke-dasharray":"3 3","stroke-linecap":"round"})+a(l,t.milestoneDiamond.fill):c=a(r,e.isOverrun?s:t.milestoneDiamond.fill);let u=e.isOverrun&&l===void 0?s:t.milestoneDiamond.label,f=e.labelSide==="left"?e.labelBox.x+e.labelBox.width:e.labelBox.x,d={x:h(f),y:h(i+4),"font-family":n.sans,"font-size":10,"font-weight":600,fill:u};e.labelSide==="left"&&(d["text-anchor"]="end");let p=e.title?ae(d,e.title):"";return z("g",{"data-layer":"milestone","data-id":e.id??null},Jb(e.hiddenDate)+c+p)}function Jb(e){return e===void 0?"":`<title>${tt(e)}</title>`}function Lp(e,t,n){let r=e.slip?.x??e.center.x,i=e.isOverrun&&e.slip===void 0?n.milestoneDiamond.cutLineOverrun:n.milestoneDiamond.cutLineNormal,o=[];if(e.onWaveBoundary||o.push(z("line",{x1:h(r),y1:h(e.center.y+e.radius+1),x2:h(r),y2:h(e.cutBottomY),stroke:i,"stroke-width":2,"stroke-dasharray":ml,"stroke-linecap":"round"})),e.slackArrows&&e.slackArrows.length>0)for(let s of e.slackArrows)o.push(z("path",{d:`M${h(s.x)} ${h(s.y)} H${h(e.center.x-6)}`,fill:"none",stroke:n.milestoneDiamond.slack,"stroke-width":1.1,"stroke-dasharray":"3 3","stroke-linecap":"round","marker-end":`url(#${t}-arrow-dark)`}));return o.join("")}var wn={person:{viewBox:"0 0 24 24",body:'<circle cx="12" cy="8" r="4" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><path d="M4 21a8 8 0 0 1 16 0" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>',ascii:"p"},people:{viewBox:"0 0 24 24",body:'<path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><circle cx="9" cy="7" r="4" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><path d="M22 21v-2a4 4 0 0 0-3-3.87" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><path d="M16 3.13a4 4 0 0 1 0 7.75" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>',ascii:"P"},points:{viewBox:"0 0 24 24",body:'<polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2" fill="currentColor" stroke="currentColor" stroke-width="1" stroke-linejoin="round"/>',ascii:"*"},time:{viewBox:"0 0 24 24",body:'<line x1="10" x2="14" y1="2" y2="2" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><line x1="12" x2="15" y1="14" y2="11" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><circle cx="12" cy="14" r="8" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>',ascii:"t"}},qX={calendar:{viewBox:"0 0 24 24",body:'<rect x="3" y="4" width="18" height="18" rx="2" ry="2" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><line x1="16" x2="16" y1="2" y2="6" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><line x1="8" x2="8" y1="2" y2="6" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><line x1="3" x2="21" y1="10" y2="10" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>',ascii:"d"}},Qb={...wn,...qX};var _ae={none:"",multiplier:"x",person:wn.person.ascii,people:wn.people.ascii,points:wn.points.ascii,time:wn.time.ascii};var ZX={thin:100,light:300,normal:400,bold:700};function JX(e){return ki[e]??14}function Pp(e,t,n){return{"font-family":t[e.font],"font-size":n??JX(e.textSize),"font-weight":ZX[e.weight]??400,"font-style":e.italic?"italic":"normal",fill:e.text}}function QX(e){if(e.border==="dashed")return"4 3";if(e.border==="dotted")return"1 3"}function eN(e,t,n,r,i,o={}){let s=Math.min(Ii[i.cornerRadius]??4,r/2,n/2);return z("rect",{x:h(e),y:h(t),width:h(n),height:h(r),rx:h(s),ry:h(s),fill:i.bg==="none"?"transparent":i.bg,stroke:i.fg,"stroke-width":1,"stroke-dasharray":QX(i)??null,...o})}function Op(e,t){let n=Math.max(e.x,t.x),r=Math.max(e.y,t.y),i=Math.min(e.x+e.width,t.x+t.width),o=Math.min(e.y+e.height,t.y+t.height);if(!(i<=n||o<=r))return{x:n,y:r,width:i-n,height:o-r}}var eU={none:{dx:0,dy:0,stdDeviation:0,opacity:0},subtle:{dx:0,dy:1,stdDeviation:1.5,opacity:.2},soft:{dx:0,dy:3,stdDeviation:5,opacity:.3},hard:{dx:2,dy:2,stdDeviation:0,opacity:.45}};function tU(e,t){let n=`${e}-shadow-${t}`,r=eU[t],i=`<feGaussianBlur in="SourceAlpha" stdDeviation="${r.stdDeviation}"/><feOffset dx="${r.dx}" dy="${r.dy}" result="offsetblur"/><feComponentTransfer><feFuncA type="linear" slope="${r.opacity}"/></feComponentTransfer><feMerge><feMergeNode/><feMergeNode in="SourceGraphic"/></feMerge>`;return z("filter",{id:n,x:"-50%",y:"-50%",width:"200%",height:"200%"},i)}function tN(e,t){return t==="none"?null:`url(#${e}-shadow-${t})`}function nN(e){return["subtle","soft","hard"].map(t=>tU(e,t)).join("")}var nU=4,rU=8,iU=10;function rN(e,t){return`url(#${e}-wave-hatch-${t})`}function iN(e,t,n){let r=my;return z("pattern",{id:`${e}-wave-hatch-${t}`,width:r,height:r,patternUnits:"userSpaceOnUse",patternTransform:"rotate(45)"},z("line",{x1:h(r/2),y1:0,x2:h(r/2),y2:r,stroke:t==="dark"?n.wave.hatch:n.wave.hatchOnDark,"stroke-width":gy,opacity:hy}))}function oN(e){if(!e.waves)return[];let t=new Set,n=i=>{for(let o of i)o.kind==="item"?o.waveRole==="background"&&o.waveHatch&&t.add(o.waveHatch):n(o.children)},r=i=>{for(let o of i)n(o.children),r(o.nested)};r(e.swimlanes);for(let i of e.includes)r(i.nestedSwimlanes);for(let i of e.waveLegend?.entries??[])t.add(i.hatch);return["dark","light"].filter(i=>t.has(i))}function sN(e,t,n,r){let o=Math.min(Ii[t.cornerRadius]??4,e.height/2);return z("rect",{x:h(e.x+.5),y:h(e.y+.5),width:h(Math.max(0,e.width-2*.5)),height:h(Math.max(0,e.height-2*.5)),rx:h(o),ry:h(o),fill:rN(r,n)})}var Jx=4;function oU(e,t){let n=Math.min(Jx-Si,e.width/2,e.height/2),r=1e-6;return{left:e.x<=t.box.x+Si+r?n:0,right:e.x+e.width>=t.box.x+t.box.width-Si-r?n:0}}function sU(e,t){let{x:n,y:r,width:i,height:o}=e,s=(a,l,c)=>a>0?` A${h(a)} ${h(a)} 0 0 1 ${h(l)} ${h(c)}`:"";return`M${h(n+t.left)} ${h(r)} H${h(n+i-t.right)}`+s(t.right,n+i,r+t.right)+` V${h(r+o-t.right)}`+s(t.right,n+i-t.right,r+o)+` H${h(n+t.left)}`+s(t.left,n,r+o-t.left)+` V${h(r+t.left)}`+s(t.left,n+t.left,r)+" Z"}function Qx(e,t,n){let r=o=>n&&(n.left>0||n.right>0)?z("path",{d:sU(t,n),...o}):z("rect",{x:h(t.x),y:h(t.y),width:h(t.width),height:h(t.height),...o}),i=r({fill:e.style.stripFill});return e.style.tint?i+r({fill:e.style.tint,"fill-opacity":El}):i}function aN(e,t){let n=e.timeline,r=n.waveStrip;if(!e.waves||!r)return"";let i=[z("rect",{x:h(n.box.x),y:h(r.y),width:h(n.box.width),height:h(r.height),rx:Jx,ry:Jx,fill:t.timeline.panelFill,stroke:t.timeline.border,"stroke-width":1})];for(let o of e.waves){let s=o.strip.cell;s&&i.push(z("g",{"data-id":o.id},`<title>${tt(o.strip.tooltip)}</title>${Qx(o,s,oU(s,n))}`))}return z("g",{"data-layer":"wave-strip"},i.join(""))}function Cp(e,t){let n=[];for(let r of e){if(!r.style.tint||r.empty)continue;let i=t?Op(r.columnBox,t):r.columnBox;!i||i.width<=0||i.height<=0||n.push(z("rect",{x:h(i.x),y:h(i.y),width:h(i.width),height:h(i.height),fill:r.style.tint,"fill-opacity":yy}))}return n.length===0?"":z("g",{"data-layer":"wave-bg"},n.join(""))}function $p(e,t){let n=[];for(let r of e??[]){let i=r.topY,o=r.bottomY;t&&(r.x<=t.x||r.x>=t.x+t.width||(i=Math.max(i,t.y),o=Math.min(o,t.y+t.height),o<=i))||n.push(z("line",{x1:h(r.x),y1:h(i),x2:h(r.x),y2:h(o),stroke:r.stroke,"stroke-width":dy,"stroke-dasharray":r.dash}))}return n.length===0?"":z("g",{"data-layer":"wave-boundary"},n.join(""))}function lN(e,t,n){let i=e.timeline.waveStrip;if(!e.waves||!i)return"";let o=i.y+i.height/2+nU,s=[],a=(l,c,u)=>z("rect",{x:h(u.x),y:h(u.y),width:h(u.width),height:h(u.height),fill:t.timeline.panelFill})+ae({x:h(l),y:h(o),"font-family":n.sans,"font-size":Un,"font-style":"italic",fill:t.wave.labelMuted,"text-anchor":"middle"},c);for(let l of e.waves){if(l.strip.gapLabel){let{text:d,x:p,halo:m}=l.strip.gapLabel;s.push(a(p,d,m))}if(!l.strip.cell)continue;let{labelDraw:c,superscripts:u,inlineDatePin:f}=l.strip;if(f&&s.push(Vl([f],l.style.text)),u&&s.push(Qx(l,u.halo)),l.strip.label!==void 0&&c&&(s.push(Qx(l,c.halo)),s.push(ae({x:h(c.x),y:h(o),"font-family":n.sans,"font-size":Un,"font-weight":600,fill:l.style.text,"text-anchor":"middle"},l.strip.label))),u){let d=u.rightX;for(let p=l.footnoteIndicators.length-1;p>=0;p--)s.push(ae({x:h(d),y:h(i.y+iU),"font-family":n.sans,"font-size":rU,"font-weight":700,fill:l.style.text,"text-anchor":"end"},String(l.footnoteIndicators[p]))),d-=Ut}}return s.length===0?"":z("g",{"data-layer":"wave-labels"},s.join(""))}function Dp(e){if(!e||e.length===0)return"";let t=e.map(n=>z("line",{x1:h(n.x),y1:h(n.topY),x2:h(n.x),y2:h(n.bottomY),stroke:n.stroke,"stroke-width":1,"stroke-dasharray":py}));return z("g",{"data-layer":"wave-cross"},t.join(""))}function aU(e){let t=e.entities.item.bg;return t==="none"?"transparent":t}function cN(e,t,n,r){if(!e)return"";let i=[];for(let o of e.entries){let s=o.swatch,a=aU(n),l={x:h(s.x),y:h(s.y),width:h(s.width),height:h(s.height)};i.push(z("rect",{...l,rx:2,ry:2,fill:a,stroke:n.entities.item.fg,"stroke-width":1})),i.push(z("rect",{x:h(s.x+.5),y:h(s.y+.5),width:h(s.width-1),height:h(s.height-1),rx:2,ry:2,fill:rN(t,o.hatch)}));for(let c of o.runs)i.push(ae({x:h(c.x),y:h(c.y),"font-family":r.sans,"font-size":Un,fill:n.wave.labelText},c.text))}return z("g",{"data-layer":"wave-legend"},i.join(""))}function uN(e,t){let n=e;for(let r of t.iconDxTerms??[])n+=r;return n}function eE(e,t,n,r,i,o){let s=t,{text:a,icon:l}=e,c={"font-family":i,"font-size":r,fill:o};if(!l)return ae({x:h(s),y:h(n),...c},a);if(l.kind==="builtin"&&l.name==="multiplier")return ae({x:h(s),y:h(n),...c},`${a}\xD7`);if(l.kind==="builtin"){let f=wn[l.name],d=ae({x:h(s),y:h(n),...c},a),p=r,m=uN(t,e),g=n-r*.85,w=`<svg x="${h(m)}" y="${h(g)}" width="${h(p)}" height="${h(p)}" viewBox="${f.viewBox}" style="color:${an(o)}" aria-hidden="true">${f.body}</svg>`;return d+w}let u=h(r*.1);return`<text x="${h(s)}" y="${h(n)}" font-family="${an(i)}" font-size="${r}" fill="${an(o)}">${tt(a)}<tspan dx="${u}">${tt(l.text)}</tspan></text>`}function lU(e){let{metaText:t,capacity:n,x:r,baselineY:i,fontSize:o,fontFamily:s,color:a}=e;if(!t&&!n)return"";let l={"font-family":s,"font-size":o,fill:a};if(!n)return ae({x:h(r),y:h(i),...l},t);if(!t)return eE(n,r,i,o,s,a);let c=h(o*as),u=`<text x="${h(r)}" y="${h(i)}" font-family="${an(s)}" font-size="${o}" fill="${an(a)}">`,{text:f,icon:d}=n;if(!d)return u+tt(t)+`<tspan dx="${c}">${tt(f)}</tspan></text>`;if(d.kind==="builtin"&&d.name==="multiplier")return u+tt(t)+`<tspan dx="${c}">${tt(f)}\xD7</tspan></text>`;if(d.kind==="literal"){let T=h(o*.1);return u+tt(t)+`<tspan dx="${c}">${tt(f)}</tspan><tspan dx="${T}">${tt(d.text)}</tspan></text>`}let p=n.iconDxTerms??[],m=r;for(let T of p.slice(0,2))m+=T;let g=wn[d.name],w=o,x=uN(r,n),y=i-o*.85,E=u+tt(t)+"</text>"+ae({x:h(m),y:h(i),...l},f),_=`<svg x="${h(x)}" y="${h(y)}" width="${h(w)}" height="${h(w)}" viewBox="${g.viewBox}" style="color:${an(a)}" aria-hidden="true">${g.body}</svg>`;return E+_}function cU(e,t){let n=Qb.calendar,r=`<svg x="${h(e.glyphTopLeft.x)}" y="${h(e.glyphTopLeft.y)}" width="${h(e.glyphSize)}" height="${h(e.glyphSize)}" viewBox="${n.viewBox}" style="color:${an(t)}" aria-hidden="true">${n.body}</svg>`,i=`<title>${tt(e.isoDate)}</title>`;return z("g",{"data-layer":"inline-date-pin","data-side":e.side,"data-date":e.isoDate,"data-spilled":e.spilled?"true":null},i+r)}function Vl(e,t){return!e||e.length===0?"":e.map(n=>cU(n,t)).join("")}function fN(e){return e?.some(t=>t.side==="after")??!1}function uU(e){let t=[];return e.titleTruncated&&t.push(e.title),e.waveTooltip!==void 0&&t.push(e.waveTooltip),t.length>0?`<title>${tt(t.join(`
|
|
2920
|
+
`))}</title>`:""}function fU(e,t){let n=[],r=tN(t,e.style.shadow);return n.push(eN(e.box.x,e.box.y,e.box.width,e.box.height,e.style,{filter:r??null})),e.waveRole==="background"&&e.waveHatch&&n.push(sN(e.box,e.style,e.waveHatch,t)),n.join("")}function dU(e){if(e.progressFraction>0){let t=Math.max(0,Math.min(e.box.width,e.box.width*e.progressFraction));return z("rect",{x:h(e.box.x),y:h(e.box.y+e.box.height-rn),width:h(t),height:rn,fill:e.style.fg,opacity:.55})}return""}function pU(e){let t=e.dotSpills&&e.dotSpillCx!==null?e.dotSpillCx:e.box.x+e.box.width-_i;return z("circle",{cx:h(t),cy:h(e.box.y+Hg),r:Lr,fill:e.statusDotColor})}function hU(e,t){let n;if(e.textSpills)n=e.box.x+e.box.width+Bn,e.iconSpills&&(n+=Or+Xt);else{let r=!!e.linkIcon&&e.linkIcon!=="none",o=e.inlineDatePins?.find(s=>s.side==="after"&&!s.spilled)?ps(r,{barWidth:e.box.width}):ps(!t.noLinks&&r&&!e.iconSpills);n=e.box.x+o}return n}function mU(e,t,n,r){let i=[],o=e.style.text,s=n.entities.item.text,a=e.textSpills?s:o,l=e.textSpills?s:e.style.fg,c=e.titleLines??(e.title?[e.title]:[]);return c.forEach((u,f)=>{u!==""&&i.push(ae({x:h(t),y:h(e.box.y+Kf+f*al),"font-family":r[e.style.font],"font-size":Pr,"font-weight":600,fill:a},u))}),(e.metaText||e.capacity)&&i.push(lU({metaText:e.metaText,capacity:e.capacity,x:t,baselineY:e.box.y+qf(c.length),fontSize:sl,fontFamily:r[e.style.font],color:l})),i.join("")}function gU(e,t,n){let r=[],i=t.entities.item.text;if(e.footnoteIndicators.length>0){let o=e.box.y+zg;if(e.footnoteSpills&&e.footnoteSpillStartX!==null){let s=e.footnoteSpillStartX;for(let a=0;a<e.footnoteIndicators.length;a++){let l=e.footnoteIndicators[a];r.push(ae({x:h(s),y:h(o),"font-family":n.sans,"font-size":ll,"font-weight":700,fill:i},String(l))),s+=Ut}}else{let s=e.box.x+e.box.width-ds;for(let a=e.footnoteIndicators.length-1;a>=0;a--){let l=e.footnoteIndicators[a];r.push(ae({x:h(s),y:h(o),"font-family":n.sans,"font-size":ll,"font-weight":700,fill:e.style.text,"text-anchor":"end"},String(l))),s-=Ut}}}return r.join("")}function yU(e,t,n){let r=[];if(!t.noLinks&&e.linkIcon&&e.linkIcon!=="none"){let i={linear:"#5e6ad2",github:"#0f172a",jira:"#0052cc",generic:n.item.linkIconFg},o=i[e.linkIcon]??i.generic,s=Or,a=e.iconSpills&&e.iconSpillX!==null?e.iconSpillX:e.box.x+Ai,l=e.box.y+Ai,c=z("rect",{x:h(a),y:h(l),width:s,height:s,rx:2,ry:2,fill:o}),u=a,f=l,d=z("path",{d:`M${h(u+4)} ${h(f+10)} L${h(u+10)} ${h(f+4)} M${h(u+6)} ${h(f+4)} H${h(u+10)} V${h(f+8)}`,stroke:"#ffffff",fill:"none","stroke-width":1.1,"stroke-linecap":"round","stroke-linejoin":"round"}),p=c+d,m=e.linkHref?z("a",{href:e.linkHref,target:"_blank",rel:"noopener"},p):p;r.push(m)}return r.join("")}function xU(e,t,n){let r=[];if(e.hasOverflow&&e.overflowBox){let i=t.item.overflowTailFill,o=t.item.overflowTailStroke,s=t.item.overflowCaption;r.push(z("rect",{x:h(e.overflowBox.x),y:h(e.overflowBox.y),width:h(e.overflowBox.width),height:h(e.overflowBox.height),fill:i,stroke:o,"stroke-width":1})),e.overflowAnchorId&&e.overflowBox.width>60&&r.push(ae({x:h(e.overflowBox.x+e.overflowBox.width/2),y:h(e.overflowBox.y+e.overflowBox.height/2+3),"font-family":n.sans,"font-size":9,"font-weight":700,fill:s,"text-anchor":"middle"},`past ${e.overflowAnchorId}`))}return r.join("")}function EU(e,t){let n=[];for(let r of e.labelChips){let i=Math.min(Ii[r.style.cornerRadius]??8,r.box.height/2);n.push(z("rect",{x:h(r.box.x),y:h(r.box.y),width:h(r.box.width),height:h(r.box.height),rx:h(i),ry:h(i),fill:r.style.bg==="none"?"transparent":r.style.bg,stroke:r.style.fg,"stroke-width":.5})),n.push(ae({x:h(r.box.x+r.box.width/2),y:h(r.box.y+r.box.height/2+3),...Pp(r.style,t,ki.xs),"text-anchor":"middle"},r.text))}return n.join("")}function dN(e,t,n,r,i){let o=[];return o.push(uU(e)),o.push(fU(e,n)),o.push(dU(e)),o.push(pU(e)),o.push(Vl(e.inlineDatePins,e.style.fg)),o.push(mU(e,hU(e,t),r,i)),o.push(gU(e,r,i)),o.push(yU(e,t,r)),o.push(xU(e,r,i)),o.push(EU(e,i)),z("g",{"data-layer":"item","data-id":e.id??null},o.join(""))}function wU(e,t,n,r,i,o){let s=[];if(!(e.kind==="group"&&e.waveOnly)){let l=e.box.y+e.headerHeight,c=e.box.height-e.headerHeight;if(e.style.bg!=="none"){let f=t<=_y;s.push(z("rect",{x:h(e.box.x),y:h(l),width:h(e.box.width),height:h(c),fill:f?e.style.bg:"none","fill-opacity":f?t===1?Ty:vy:null,stroke:f?null:e.style.bg,"stroke-opacity":f?null:.6,"stroke-width":f?null:1}))}let u=e.kind==="group"?e.style.fg:i.parallel.bracketStroke;if(e.headerHeight>0&&e.style.bracket!=="none"){let f=e.box.y+wl,d=e.box.x,p=e.box.x+e.box.width;s.push(z("path",{d:`M${h(d)} ${h(l)} V${h(f)} H${h(p)} V${h(l)}`,fill:"none",stroke:u,"stroke-width":1.2,"stroke-dasharray":e.style.bracket==="dashed"?"3 2":null}))}e.title&&e.headerHeight>0&&s.push(ae({x:h(xs(e.box.x,fN(e.inlineDatePins))),y:h(e.box.y+wy),...Pp(e.style,o,fd),"font-weight":600,fill:u},e.title)),s.push(Vl(e.inlineDatePins,e.style.fg))}for(let l of e.children)s.push(hN(l,n,r,i,o,t));return z("g",{"data-layer":e.kind,"data-id":e.id??null},s.join(""))}function hN(e,t,n,r,i,o=0){return e.kind==="item"?dN(e,t,n,r,i):wU(e,o+1,t,n,r,i)}var pN=2;function TU(e,t){switch(e){case"green":return t.swimlane.utilizationOk;case"yellow":return t.swimlane.utilizationWarn;case"red":return t.swimlane.utilizationOver}}function vU(e,t){if(!e.utilization||e.utilization.segments.length===0)return"";let n=e.box.y+e.box.height-pN,r=e.utilization.segments.map(i=>{let o=i.endX-i.startX;return o<=0?"":z("rect",{x:h(i.startX),y:h(n),width:h(o),height:pN,fill:TU(i.classification,t),"data-utilization":i.classification,"data-load":h(i.load)})});return z("g",{"data-layer":"lane-utilization","data-id":e.id??null},r.join(""))}function mN(e,t){let n=e.bandIndex%2===0?t.swimlane.rowTintEven:t.swimlane.rowTintOdd,r=t.swimlane.border;return z("g",{"data-layer":"swimlane-bg","data-id":e.id??null},z("rect",{x:h(e.box.x),y:h(e.box.y),width:h(e.box.width),height:h(e.box.height),fill:n,stroke:r,"stroke-width":1}))}function Mp(e,t,n,r,i){let o=r.swimlane.tabFill,s=r.swimlane.tabStroke,a=r.swimlane.tabText,l=r.swimlane.ownerText,c=r.swimlane.footnoteIndicator,u=[],f=e.tab;if(f){let p=e.footnoteIndicators.length>0?e.footnoteIndicators.join(","):"",m=pl,g=e.box.y+10,w=g+hl;if(u.push(z("rect",{x:h(f.tabX),y:h(g),width:h(f.tabW),height:h(m),rx:4,ry:4,fill:o,stroke:s,"stroke-width":1})),u.push(ae({x:h(f.titleX),y:h(w),"font-family":i[e.style.font],"font-size":12,"font-weight":600,fill:a},e.title)),e.owner){let x=wn[e.ownerKind==="person"?"person":"people"],y=Tl;u.push(`<svg x="${h(f.ownerX)}" y="${h(w-y*.85)}" width="${h(y)}" height="${h(y)}" viewBox="${x.viewBox}" style="color:${an(l)}" aria-hidden="true">${x.body}</svg>`),u.push(ae({x:h(f.ownerTextX),y:h(w),"font-family":i[e.style.font],"font-size":10,fill:l},e.owner))}e.capacity&&u.push(eE(e.capacity,f.badgeX,w,10,i[e.style.font],l)),p&&u.push(ae({x:h(f.footnoteRightX),y:h(g+14),"font-family":i.sans,"font-size":10,"font-weight":700,fill:c,"text-anchor":"end"},p))}for(let d of e.children)u.push(hN(d,t,n,r,i));return u.push(vU(e,r)),z("g",{"data-layer":"swimlane","data-id":e.id??null},u.join(""))}function yN(e,t,n){let r=n.timeline.gridLine,i=n.timeline.minorGridLine,o=e.bottomTickPanelHeight??0,s=e.bottomTickPanelY!==void 0&&o>0,a=e.tickPanelY,l=s?e.bottomTickPanelY+o:e.box.y+e.box.height,c=t,u=e.box.y+e.box.height,f=[];for(let d of e.ticks)if(d.major)f.push(z("line",{x1:h(d.x),y1:h(a),x2:h(d.x),y2:h(l),stroke:r,"stroke-width":1}));else if(e.minorGrid){if(d.labelX===void 0)continue;f.push(z("line",{x1:h(d.x),y1:h(c),x2:h(d.x),y2:h(u),stroke:i,"stroke-width":1}))}for(let d of e.nonWorking??[])d.seam&&f.push(z("line",{x1:h(d.x),y1:h(c),x2:h(d.x),y2:h(u),stroke:n.timeline.nonWorkingSeam,"stroke-width":1,"stroke-dasharray":"1 3"}));return z("g",{"data-layer":"grid"},f.join(""))}function Fp(e,t,n,r){let i=e.box.y+e.box.height,o=[];for(let s of e.nonWorking??[]){if(!s.band)continue;let a={x:s.x,y:t,width:s.width,height:i-t},l=r?Op(a,r):a;!l||l.width<=0||l.height<=0||o.push(z("rect",{x:h(l.x),y:h(l.y),width:h(l.width),height:h(l.height),fill:n.timeline.nonWorkingFill,"fill-opacity":uy}))}return o.length===0?"":z("g",{"data-layer":"non-working"},o.join(""))}function xN(e,t,n){let r=e.box.y+e.box.height,i=[];for(let o of e.nonWorking??[])o.label===void 0||!o.labelBox||(o.cut&&i.push(z("line",{x1:h(o.x),y1:h(o.labelBox.y+4),x2:h(o.x),y2:h(r),stroke:t.timeline.nonWorkingSeam,"stroke-width":1,"stroke-dasharray":"1 3"})),i.push(gN(o.label,o.labelBox,o.labelSide,t,n)));for(let o of e.workingExceptions??[])o.labelBox&&i.push(gN(o.label,o.labelBox,o.labelSide,t,n));return i.length===0?"":z("g",{"data-layer":"non-working-label"},i.join(""))}function gN(e,t,n,r,i){let o=n==="left",s=t.y+4,a={x:h(o?t.x+t.width:t.x),y:h(s+4),"font-family":i.sans,"font-size":10,fill:r.timeline.labelText};return o&&(a["text-anchor"]="end"),ae(a,e)}function EN(e,t,n){let r=t.timeline.panelFill,i=t.timeline.border,o=t.timeline.labelText,s=[],a=e.tickPanelY,l=e.tickPanelHeight,c=l>0,u=e.markerRow.height>0,f=e.waveStrip?e.waveStrip.y+e.waveStrip.height:a+l,d=e.markerRow.height,p=e.bottomTickPanelY,m=e.bottomTickPanelHeight??0,g=p!==void 0&&m>0;c&&s.push(z("rect",{x:h(e.box.x),y:h(a),width:h(e.box.width),height:h(l),rx:4,ry:4,fill:r,stroke:i,"stroke-width":1})),u&&s.push(z("rect",{x:h(e.box.x),y:h(f),width:h(e.box.width),height:h(d),rx:4,ry:4,fill:r,stroke:i,"stroke-width":1})),g&&s.push(z("rect",{x:h(e.box.x),y:h(p),width:h(e.box.width),height:h(m),rx:4,ry:4,fill:r,stroke:i,"stroke-width":1}));for(let w of e.ticks)w.major&&(!w.label||w.labelX===void 0||(c&&s.push(ae({x:h(w.labelX),y:h(a+dl(l)),"font-family":n.sans,"font-size":Ri,fill:o,"text-anchor":"middle"},w.label)),g&&s.push(ae({x:h(w.labelX),y:h(p+dl(m)),"font-family":n.sans,"font-size":Ri,fill:o,"text-anchor":"middle"},w.label))));return z("g",{"data-layer":"timeline"},s.join(""))}function wN(e,t,n,r,i,o){let s=r.includeRegion.border,a=r.includeRegion.fill,l=r.includeRegion.tabFill,c=r.includeRegion.tabStroke,u=r.includeRegion.tabText,f=r.includeRegion.badgeFill,d=r.includeRegion.badgeStroke,p=r.includeRegion.badgeText,m=e.box.x+8,g=e.box.y,w=e.box.width-16,x=e.box.height,y=z("rect",{x:h(m),y:h(g),width:h(w),height:h(x),rx:8,ry:8,fill:a,stroke:s,"stroke-width":1,"stroke-dasharray":ml}),E=pl,_=vl(e.box.x,e.label,e.sourcePath),T=g-E/2,I=z("rect",{x:h(_.tabX),y:h(T),width:h(_.tabWidth),height:E,rx:4,ry:4,fill:l,stroke:c,"stroke-width":1}),B=ae({x:h(_.tabLabelX),y:h(T+hl),"font-family":i.sans,"font-size":11,"font-weight":600,fill:u},e.label),$=_.badgeX,X=_.badgeSize,Y=g-X/2,D=z("rect",{x:h($),y:h(Y),width:X,height:X,rx:4,ry:4,fill:f,stroke:d,"stroke-width":1}),R=z("path",{d:`M${h($+7)} ${h(Y+4)} H${h($+14)} V${h(Y+11)} M${h($+4)} ${h(Y+7)} H${h($+11)} V${h(Y+14)} H${h($+4)} Z`,stroke:p,"stroke-width":1.4,fill:"none","stroke-linecap":"round","stroke-linejoin":"round"}),S=9,O=g+4,k=z("rect",{x:h(_.sourceHaloX),y:h(O-S),width:h(_.sourceHaloWidth),height:S+6,fill:a}),L=ae({x:h(_.sourceTextX),y:h(O),"font-family":i.mono,"font-size":S,fill:p},e.sourcePath),v={x:m,y:g,width:w,height:x},P=o?Fp(o.timeline,o.chartBox.y,r,v):"",b=o?.waves?Cp(o.waves,v)+$p(o.waveBoundaries,v):"",F=o?.waves?Dp(e.waveCrossings):"",j=e.nestedSwimlanes.map(A=>Mp(A,t,n,r,i)).join(""),U=(e.edges??[]).map(A=>Ip(A,r)).join(""),ee=e.anchors??[],V=e.milestones??[],ne=ee.map(A=>bp(A,r)).join("")+V.map(A=>Lp(A,n,r)).join("")+ee.map(A=>Sp(A,r,i)).join("")+V.map(A=>Np(A,r,i)).join("");return z("g",{"data-layer":"include"},y+P+b+U+j+F+ne+I+B+D+R+k+L)}function TN(e,t,n){if(!e)return"";let r=t.nowline.stroke,i=t.nowline.labelText,o=z("line",{x1:h(e.x),y1:h(e.topY),x2:h(e.x),y2:h(e.bottomY),stroke:r,"stroke-width":ed}),s=_U(e,r),a=AU(e,i,n);return z("g",{"data-layer":"nowline"},o+s+a)}function vN(e){let t=ed/2;return e.pillMode==="flag-right"?e.x-t:e.pillMode==="flag-left"?e.x+t:e.x}function _U(e,t){let n=e.pillTopY,r=e.pillTopY+Gt,i=ey,o=e.pillWidth;if(e.pillMode==="center")return z("rect",{x:h(e.x-o/2),y:h(n),width:h(o),height:h(Gt),rx:i,ry:i,fill:t});let s=vN(e);if(e.pillMode==="flag-right"){let c=s+o,u=[`M ${h(s)} ${h(n)}`,`L ${h(c-i)} ${h(n)}`,`A ${i} ${i} 0 0 1 ${h(c)} ${h(n+i)}`,`L ${h(c)} ${h(r-i)}`,`A ${i} ${i} 0 0 1 ${h(c-i)} ${h(r)}`,`L ${h(s)} ${h(r)}`,"Z"].join(" ");return z("path",{d:u,fill:t})}let a=s-o,l=[`M ${h(s)} ${h(n)}`,`L ${h(a+i)} ${h(n)}`,`A ${i} ${i} 0 0 0 ${h(a)} ${h(n+i)}`,`L ${h(a)} ${h(r-i)}`,`A ${i} ${i} 0 0 0 ${h(a+i)} ${h(r)}`,`L ${h(s)} ${h(r)}`,"Z"].join(" ");return z("path",{d:l,fill:t})}function AU(e,t,n){let r=e.pillTopY+ty,i=vN(e),o,s;return e.pillMode==="center"?(o=e.x,s="middle"):e.pillMode==="flag-right"?(o=i+ms,s="start"):(o=i-ms,s="end"),ae({x:h(o),y:h(r),"font-family":n.sans,"font-size":gl,"font-weight":700,fill:t,"text-anchor":s},e.label)}async function tE(e,t={}){let r=new Rp(t.idPrefix??"nl").next("root"),i=e.palette,o=t.fontFamilies??cy,s=[],a=(u,f)=>`<marker id="${u}" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="7" markerHeight="7" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" fill="${f}"/></marker>`,l=`<defs>${nN(r)}`+a(`${r}-arrow-dark`,i.arrowhead.dark)+oN(e).map(u=>iN(r,u,i)).join("")+"</defs>";s.push(l),s.push(z("rect",{x:0,y:0,width:h(e.width),height:h(e.height),fill:e.backgroundColor})),s.push(EN(e.timeline,i,o)),s.push(aN(e,i));for(let u of e.swimlanes)s.push(mN(u,i));s.push(Fp(e.timeline,e.chartBox.y,i)),e.waves&&s.push(Cp(e.waves)),s.push(yN(e.timeline,e.chartBox.y,i)),s.push($p(e.waveBoundaries)),s.push(lN(e,i,o));for(let u of e.edges)s.push(Ip(u,i));for(let u of e.swimlanes)s.push(Mp(u,t,r,i,o));for(let u of e.includes)s.push(wN(u,t,r,i,o,e));s.push(Dp(e.waveCrossings));for(let u of e.anchors)s.push(bp(u,i));for(let u of e.milestones)s.push(Lp(u,r,i));s.push(xN(e.timeline,i,o));for(let u of e.anchors)s.push(Sp(u,i,o));for(let u of e.milestones)s.push(Np(u,i,o));if(s.push(TN(e.nowline,i,o)),s.push(Vb(e.footnotes,r,i,o)),s.push(cN(e.waveLegend,r,i,o)),s.push(Kb(e.header,r,i,o)),s.push(qb(e,o)),e.header.logo&&(t.logo||t.assetResolver)){let u=await Zb(e.header.logo,t.assetResolver,r,t);u&&s.push(u)}return`<svg${$s({xmlns:"http://www.w3.org/2000/svg",viewBox:`0 0 ${h(e.width)} ${h(e.height)}`,width:h(e.width),height:h(e.height),"data-theme":e.theme,"data-generator":"nowline"})}>${s.join("")}</svg>`}var nE="/browser-source.nowline",kU={error:3,warning:2,info:1},IU={error:3,warning:2,info:1};function _N(e,t){return kU[e]>=IU[t]}var Bp,AN=0;function kN(){return Bp||(Bp=nx()),Bp}function RU(){return Ce.parse(`memory:///nowline-browser-${++AN}.nowline`)}async function rE(e,t={}){let n=t.filePath??nE,r=kN(),o=r.shared.workspace.LangiumDocumentFactory.fromString(e,RU());return await r.shared.workspace.DocumentBuilder.build([o],{validation:!0}),{ast:o.parseResult.value,diagnostics:IN(o,n)}}function IN(e,t){return RN(bi(e),t)}function RN(e,t){return e.map(n=>n.origin==="lexer"?Vx(n.error,t):n.origin==="parser"?Yx(n.error,t):Nb(n.diagnostic,t))}async function iE(e,t={}){let n=t.filePath??nE,r=kN(),i,o;if(t.timezone)try{i=zx(t.timezone)}catch(E){if(!(E instanceof Wi))throw E;o=E}let s=o?void 0:jx({now:t.today,zone:i}),a=await Zx({source:e,sourcePath:n,services:r,readSource:t.readFile??$b,assetResolver:t.assetResolver,isToleratedIncludeError:E=>Kx(E.message),layout:{theme:t.theme,today:s,locale:t.locale,width:t.width,nonWorking:t.nonWorking}});if(a.kind==="invalid")return{kind:"diagnostics",diagnostics:RN(a.diagnostics,n)};let l=a.kind==="include-error"&&a.legacy!==void 0,c=IN(a.document,n);for(let E of a.resolved.diagnostics){if(E.severity==="error"&&Kx(E.message)){t.onSkippedInclude?.({sourcePath:E.sourcePath,message:E.message});continue}l&&Fr(E)||c.push(Lb(E))}if(a.kind==="include-error"||c.some(E=>E.severity==="error"))return{kind:"diagnostics",diagnostics:c};if(o)return{kind:"diagnostics",diagnostics:[{severity:"error",code:"invalid-timezone",message:o.message,file:n,line:1,column:1}]};let u=[...a.warnings],{logo:f,model:d}=a,p=t.diagnosticLevel??"error",m=Hx(d,{today:s??void 0,locale:t.locale??"en-US"}).map(E=>Ob(E,n)),g=t.showLinks!==!1,w=t.strict===!0,x=await tE(d,{idPrefix:t.idPrefix,assetResolver:t.assetResolver,logo:f,noLinks:!g,strict:w,warn:E=>u.push(E),fontFamilies:t.fontFamilies}),y=[...m,...u.map(E=>Pb(E,n,w?"error":"warning"))].filter(E=>_N(E.severity,p));return w&&y.length>0?{kind:"diagnostics",diagnostics:[...c,...y]}:{kind:"svg",svg:x,warnings:y}}function oE(){Bp=void 0,AN=0}var SN="/embed.nowline",sE=!1;async function bN(e){let{ast:t,diagnostics:n}=await rE(e,{filePath:SN});return{ast:t,errors:n.filter(r=>r.severity==="error").map(r=>r.message)}}async function Wp(e,t={}){let n={filePath:SN,theme:t.theme,today:t.today,timezone:t.timezone,locale:t.locale,width:t.width,nonWorking:t.nonWorking,idPrefix:t.idPrefix,onSkippedInclude:()=>{sE||(sE=!0,console.warn("nowline: `include` directives are skipped in the browser embed (single-file mode). Render multi-file roadmaps with the CLI or the GitHub Action."))}},r=await iE(e,n);if(r.kind==="svg")return r.svg;let i=r.diagnostics.filter(o=>o.severity==="error").map(o=>o.message);throw new Kl(`Failed to render Nowline source: ${i.join("; ")}`,i)}var Kl=class extends Error{constructor(n,r){super(n);M(this,"details",r);this.name="EmbedRenderError"}};function NN(){sE=!1,oE()}var ln=Uint8Array,$t=Uint16Array,fE=Int32Array,dE=new ln([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),pE=new ln([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),LN=new ln([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),$N=function(e,t){for(var n=new $t(31),r=0;r<31;++r)n[r]=t+=1<<e[r-1];for(var i=new fE(n[30]),r=1;r<30;++r)for(var o=n[r];o<n[r+1];++o)i[o]=o-n[r]<<5|r;return{b:n,r:i}},DN=$N(dE,2),SU=DN.b,lE=DN.r;SU[28]=258,lE[258]=28;var MN=$N(pE,0),Fle=MN.b,PN=MN.r,cE=new $t(32768);for(xe=0;xe<32768;++xe)Zn=(xe&43690)>>1|(xe&21845)<<1,Zn=(Zn&52428)>>2|(Zn&13107)<<2,Zn=(Zn&61680)>>4|(Zn&3855)<<4,cE[xe]=((Zn&65280)>>8|(Zn&255)<<8)>>1;var Zn,xe,Jl=(function(e,t,n){for(var r=e.length,i=0,o=new $t(t);i<r;++i)e[i]&&++o[e[i]-1];var s=new $t(t);for(i=1;i<t;++i)s[i]=s[i-1]+o[i-1]<<1;var a;if(n){a=new $t(1<<t);var l=15-t;for(i=0;i<r;++i)if(e[i])for(var c=i<<4|e[i],u=t-e[i],f=s[e[i]-1]++<<u,d=f|(1<<u)-1;f<=d;++f)a[cE[f]>>l]=c}else for(a=new $t(r),i=0;i<r;++i)e[i]&&(a[i]=cE[s[e[i]-1]++]>>15-e[i]);return a}),Xi=new ln(288);for(xe=0;xe<144;++xe)Xi[xe]=8;var xe;for(xe=144;xe<256;++xe)Xi[xe]=9;var xe;for(xe=256;xe<280;++xe)Xi[xe]=7;var xe;for(xe=280;xe<288;++xe)Xi[xe]=8;var xe,Xp=new ln(32);for(xe=0;xe<32;++xe)Xp[xe]=5;var xe,bU=Jl(Xi,9,0);var NU=Jl(Xp,5,0);var FN=function(e){return(e+7)/8|0},LU=function(e,t,n){return(t==null||t<0)&&(t=0),(n==null||n>e.length)&&(n=e.length),new ln(e.subarray(t,n))};var Jn=function(e,t,n){n<<=t&7;var r=t/8|0;e[r]|=n,e[r+1]|=n>>8},ql=function(e,t,n){n<<=t&7;var r=t/8|0;e[r]|=n,e[r+1]|=n>>8,e[r+2]|=n>>16},aE=function(e,t){for(var n=[],r=0;r<e.length;++r)e[r]&&n.push({s:r,f:e[r]});var i=n.length,o=n.slice();if(!i)return{t:WN,l:0};if(i==1){var s=new ln(n[0].s+1);return s[n[0].s]=1,{t:s,l:1}}n.sort(function(T,I){return T.f-I.f}),n.push({s:-1,f:25001});var a=n[0],l=n[1],c=0,u=1,f=2;for(n[0]={s:-1,f:a.f+l.f,l:a,r:l};u!=i-1;)a=n[n[c].f<n[f].f?c++:f++],l=n[c!=u&&n[c].f<n[f].f?c++:f++],n[u++]={s:-1,f:a.f+l.f,l:a,r:l};for(var d=o[0].s,r=1;r<i;++r)o[r].s>d&&(d=o[r].s);var p=new $t(d+1),m=uE(n[u-1],p,0);if(m>t){var r=0,g=0,w=m-t,x=1<<w;for(o.sort(function(I,B){return p[B.s]-p[I.s]||I.f-B.f});r<i;++r){var y=o[r].s;if(p[y]>t)g+=x-(1<<m-p[y]),p[y]=t;else break}for(g>>=w;g>0;){var E=o[r].s;p[E]<t?g-=1<<t-p[E]++-1:++r}for(;r>=0&&g;--r){var _=o[r].s;p[_]==t&&(--p[_],++g)}m=t}return{t:new ln(p),l:m}},uE=function(e,t,n){return e.s==-1?Math.max(uE(e.l,t,n+1),uE(e.r,t,n+1)):t[e.s]=n},ON=function(e){for(var t=e.length;t&&!e[--t];);for(var n=new $t(++t),r=0,i=e[0],o=1,s=function(l){n[r++]=l},a=1;a<=t;++a)if(e[a]==i&&a!=t)++o;else{if(!i&&o>2){for(;o>138;o-=138)s(32754);o>2&&(s(o>10?o-11<<5|28690:o-3<<5|12305),o=0)}else if(o>3){for(s(i),--o;o>6;o-=6)s(8304);o>2&&(s(o-3<<5|8208),o=0)}for(;o--;)s(i);o=1,i=e[a]}return{c:n.subarray(0,r),n:t}},Zl=function(e,t){for(var n=0,r=0;r<t.length;++r)n+=e[r]*t[r];return n},BN=function(e,t,n){var r=n.length,i=FN(t+2);e[i]=r&255,e[i+1]=r>>8,e[i+2]=e[i]^255,e[i+3]=e[i+1]^255;for(var o=0;o<r;++o)e[i+o+4]=n[o];return(i+4+r)*8},CN=function(e,t,n,r,i,o,s,a,l,c,u){Jn(t,u++,n),++i[256];for(var f=aE(i,15),d=f.t,p=f.l,m=aE(o,15),g=m.t,w=m.l,x=ON(d),y=x.c,E=x.n,_=ON(g),T=_.c,I=_.n,B=new $t(19),$=0;$<y.length;++$)++B[y[$]&31];for(var $=0;$<T.length;++$)++B[T[$]&31];for(var X=aE(B,7),Y=X.t,D=X.l,R=19;R>4&&!Y[LN[R-1]];--R);var S=c+5<<3,O=Zl(i,Xi)+Zl(o,Xp)+s,k=Zl(i,d)+Zl(o,g)+s+14+3*R+Zl(B,Y)+2*B[16]+3*B[17]+7*B[18];if(l>=0&&S<=O&&S<=k)return BN(t,u,e.subarray(l,l+c));var L,v,P,b;if(Jn(t,u,1+(k<O)),u+=2,k<O){L=Jl(d,p,0),v=d,P=Jl(g,w,0),b=g;var F=Jl(Y,D,0);Jn(t,u,E-257),Jn(t,u+5,I-1),Jn(t,u+10,R-4),u+=14;for(var $=0;$<R;++$)Jn(t,u+3*$,Y[LN[$]]);u+=3*R;for(var j=[y,T],U=0;U<2;++U)for(var ee=j[U],$=0;$<ee.length;++$){var V=ee[$]&31;Jn(t,u,F[V]),u+=Y[V],V>15&&(Jn(t,u,ee[$]>>5&127),u+=ee[$]>>12)}}else L=bU,v=Xi,P=NU,b=Xp;for(var $=0;$<a;++$){var ne=r[$];if(ne>255){var V=ne>>18&31;ql(t,u,L[V+257]),u+=v[V+257],V>7&&(Jn(t,u,ne>>23&31),u+=dE[V]);var A=ne&31;ql(t,u,P[A]),u+=b[A],A>3&&(ql(t,u,ne>>5&8191),u+=pE[A])}else ql(t,u,L[ne]),u+=v[ne]}return ql(t,u,L[256]),u+v[256]},PU=new fE([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),WN=new ln(0),OU=function(e,t,n,r,i,o){var s=o.z||e.length,a=new ln(r+s+5*(1+Math.ceil(s/7e3))+i),l=a.subarray(r,a.length-i),c=o.l,u=(o.r||0)&7;if(t){u&&(l[0]=o.r>>3);for(var f=PU[t-1],d=f>>13,p=f&8191,m=(1<<n)-1,g=o.p||new $t(32768),w=o.h||new $t(m+1),x=Math.ceil(n/3),y=2*x,E=function(le){return(e[le]^e[le+1]<<x^e[le+2]<<y)&m},_=new fE(25e3),T=new $t(288),I=new $t(32),B=0,$=0,X=o.i||0,Y=0,D=o.w||0,R=0;X+2<s;++X){var S=E(X),O=X&32767,k=w[S];if(g[O]=k,w[S]=O,D<=X){var L=s-X;if((B>7e3||Y>24576)&&(L>423||!c)){u=CN(e,l,0,_,T,I,$,Y,R,X-R,u),Y=B=$=0,R=X;for(var v=0;v<286;++v)T[v]=0;for(var v=0;v<30;++v)I[v]=0}var P=2,b=0,F=p,j=O-k&32767;if(L>2&&S==E(X-j))for(var U=Math.min(d,L)-1,ee=Math.min(32767,X),V=Math.min(258,L);j<=ee&&--F&&O!=k;){if(e[X+P]==e[X+P-j]){for(var ne=0;ne<V&&e[X+ne]==e[X+ne-j];++ne);if(ne>P){if(P=ne,b=j,ne>U)break;for(var A=Math.min(j,ne-2),C=0,v=0;v<A;++v){var W=X-j+v&32767,G=g[W],K=W-G&32767;K>C&&(C=K,k=W)}}}O=k,k=g[O],j+=O-k&32767}if(b){_[Y++]=268435456|lE[P]<<18|PN[b];var q=lE[P]&31,J=PN[b]&31;$+=dE[q]+pE[J],++T[257+q],++I[J],D=X+P,++B}else _[Y++]=e[X],++T[e[X]]}}for(X=Math.max(X,D);X<s;++X)_[Y++]=e[X],++T[e[X]];u=CN(e,l,c,_,T,I,$,Y,R,X-R,u),c||(o.r=u&7|l[u/8|0]<<3,u-=7,o.h=w,o.p=g,o.i=X,o.w=D)}else{for(var X=o.w||0;X<s+c;X+=65535){var re=X+65535;re>=s&&(l[u/8|0]=c,re=s),u=BN(l,u+1,e.subarray(X,re))}o.i=s}return LU(a,0,r+FN(u)+i)};var XN=function(){var e=1,t=0;return{p:function(n){for(var r=e,i=t,o=n.length|0,s=0;s!=o;){for(var a=Math.min(s+2655,o);s<a;++s)i+=r+=n[s];r=(r&65535)+15*(r>>16),i=(i&65535)+15*(i>>16)}e=r,t=i},d:function(){return e%=65521,t%=65521,(e&255)<<24|(e&65280)<<8|(t&255)<<8|t>>8}}},CU=function(e,t,n,r,i){if(!i&&(i={l:1},t.dictionary)){var o=t.dictionary.subarray(-32768),s=new ln(o.length+e.length);s.set(o),s.set(e,o.length),e=s,i.w=o.length}return OU(e,t.level==null?6:t.level,t.mem==null?i.l?Math.ceil(Math.max(8,Math.min(13,Math.log(e.length)))*1.5):20:12+t.mem,n,r,i)};var UN=function(e,t,n){for(;n;++t)e[t]=n,n>>>=8};var $U=function(e,t){var n=t.level,r=n==0?0:n<6?1:n==9?3:2;if(e[0]=120,e[1]=r<<6|(t.dictionary&&32),e[1]|=31-(e[0]<<8|e[1])%31,t.dictionary){var i=XN();i.p(t.dictionary),UN(e,2,i.d())}};function GN(e,t){t||(t={});var n=XN();n.p(e);var r=CU(e,t,t.dictionary?6:2,4);return $U(r,t),UN(r,r.length-4,n.d()),r}var DU=typeof TextDecoder<"u"&&new TextDecoder,MU=0;try{DU.decode(WN,{stream:!0}),MU=1}catch{}var jN="https://free.nowline.io/open";function HN(e){let t=new TextEncoder().encode(e),n=GN(t),r=32768,i="";for(let o=0;o<n.length;o+=r)i+=String.fromCharCode(...n.subarray(o,o+r));return btoa(i).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function hE({source:e,sourceUrl:t,share:n}){if(n===!1||n==="none")return null;if(typeof n=="object")return t!==void 0&&zN(t)?n.remoteUrl.replace("{url}",encodeURIComponent(t)):n.textUrl.replace("{text}",HN(e));let r=n===!0?jN:n,i=new URL(r);return t!==void 0&&zN(t)?i.hash=`url=${encodeURIComponent(t)}`:i.hash=`text=${HN(e)}`,i.toString()}function zN(e){try{return new URL(e).protocol==="https:"}catch{return!1}}var YN=0;async function VN(e){let t=e.document??globalThis.document;if(!t)return{rendered:0,failed:0};let n=t.querySelectorAll(e.selector),r=0,i=0,o=++YN,s=e.share??!0,a=[],l=0;for(let c of Array.from(n)){let u=FU(c);if(!u)continue;let f=BU(c),d=`nl-r${o}-${l++}`,p={theme:e.theme,locale:e.locale,width:e.width,nonWorking:e.nonWorking,today:e.today,timezone:e.timezone,idPrefix:d},m=u.parentElement,g=u.nextSibling,x=c.getAttribute("data-nowline-source-url")??void 0??e.sourceUrl;a.push(Wp(f,p).then(y=>{if(WU(u,y),r++,m!==null){let E=hE({source:f,sourceUrl:x,share:s});if(E!==null){let _=t.createElement("a");_.className="nowline-share",_.href=E,_.target="_blank",_.rel="noopener noreferrer",_.textContent="Share on Nowline",m.insertBefore(_,g)}}},y=>{i++,console.error("nowline: render failed",y)}))}return await Promise.all(a),{rendered:r,failed:i}}function FU(e){let t=e.parentElement;return t&&t.tagName.toUpperCase()==="PRE"?t:e}function BU(e){return e.textContent??""}function WU(e,t){e.outerHTML=t}function KN(){YN=0}function Up(){if(typeof globalThis>"u")return"light";let e=globalThis.matchMedia;if(typeof e!="function")return"light";try{return e("(prefers-color-scheme: dark)").matches?"dark":"light"}catch{return"light"}}function qN(e,t){return e&&e!=="auto"?lx(e)??t:t}var XU="0.11.0",UU="d8d931f",GU="pre code.language-nowline, code.language-nowline",ZN={theme:"auto",startOnLoad:!0,selector:GU,systemTheme:Up(),share:!0},Ae={...ZN},mE=!1;function HU(e={}){Ae={theme:e.theme??Ae.theme,startOnLoad:e.startOnLoad??Ae.startOnLoad,selector:e.selector??Ae.selector,locale:e.locale??Ae.locale,width:e.width??Ae.width,nonWorking:e.nonWorking??Ae.nonWorking,today:e.today!==void 0?e.today:Ae.today,timezone:e.timezone??Ae.timezone,share:e.share??Ae.share,sourceUrl:e.sourceUrl??Ae.sourceUrl,systemTheme:Up()}}function JN(){return{theme:qN(Ae.theme,Ae.systemTheme),locale:Ae.locale,width:Ae.width,nonWorking:Ae.nonWorking,today:Ae.today,timezone:Ae.timezone}}async function zU(e,t={}){let n={...JN(),...t};return Wp(e,n)}async function jU(e){return bN(e)}async function gE(e){let t={selector:e?.selector??Ae.selector,theme:e?.theme??JN().theme,locale:e?.locale??Ae.locale,width:e?.width??Ae.width,nonWorking:e?.nonWorking??Ae.nonWorking,today:e?.today!==void 0?e.today:Ae.today,timezone:e?.timezone??Ae.timezone,share:e?.share??Ae.share,sourceUrl:e?.sourceUrl??Ae.sourceUrl,document:e?.document};return VN(t)}var YU=gE;if(typeof document<"u"&&!mE){mE=!0;let e=()=>{Ae.startOnLoad&&gE()};document.readyState==="loading"?document.addEventListener("DOMContentLoaded",e,{once:!0}):queueMicrotask(e)}function VU(){Ae={...ZN,systemTheme:Up()},mE=!1,NN(),KN()}return uL(KU);})();
|
|
2921
2921
|
//# sourceMappingURL=nowline.min.js.map
|