prettier 3.2.5 → 3.3.1

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.
@@ -1 +1 @@
1
- (function(n){function e(){var i=n();return i.default||i}if(typeof exports=="object"&&typeof module=="object")module.exports=e();else if(typeof define=="function"&&define.amd)define(e);else{var t=typeof globalThis<"u"?globalThis:typeof global<"u"?global:typeof self<"u"?self:this||{};t.prettierPlugins=t.prettierPlugins||{},t.prettierPlugins.angular=e()}})(function(){"use strict";var Pe=Object.defineProperty;var Rt=Object.getOwnPropertyDescriptor;var Pt=Object.getOwnPropertyNames;var Lt=Object.prototype.hasOwnProperty;var ze=(r,e)=>{for(var t in e)Pe(r,t,{get:e[t],enumerable:!0})},Kt=(r,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Pt(e))!Lt.call(r,n)&&n!==t&&Pe(r,n,{get:()=>e[n],enumerable:!(s=Rt(e,n))||s.enumerable});return r};var bt=r=>Kt(Pe({},"__esModule",{value:!0}),r);var Lr={};ze(Lr,{parsers:()=>Qe});var Qe={};ze(Qe,{__ng_action:()=>Ir,__ng_binding:()=>kr,__ng_directive:()=>Pr,__ng_interpolation:()=>Rr});var G=class{constructor(e,t,s,n){this.input=t,this.errLocation=s,this.ctxLocation=n,this.message=`Parser Error: ${e} ${s} [${t}] in ${n}`}},P=class{constructor(e,t){this.start=e,this.end=t}toAbsolute(e){return new I(e+this.start,e+this.end)}},w=class{constructor(e,t){this.span=e,this.sourceSpan=t}toString(){return"AST"}},W=class extends w{constructor(e,t,s){super(e,t),this.nameSpan=s}},$=class extends w{visit(e,t=null){}},L=class extends w{visit(e,t=null){return e.visitImplicitReceiver(this,t)}},Se=class extends L{visit(e,t=null){var s;return(s=e.visitThisReceiver)==null?void 0:s.call(e,this,t)}},V=class extends w{constructor(e,t,s){super(e,t),this.expressions=s}visit(e,t=null){return e.visitChain(this,t)}},Q=class extends w{constructor(e,t,s,n,i){super(e,t),this.condition=s,this.trueExp=n,this.falseExp=i}visit(e,t=null){return e.visitConditional(this,t)}},b=class extends W{constructor(e,t,s,n,i){super(e,t,s),this.receiver=n,this.name=i}visit(e,t=null){return e.visitPropertyRead(this,t)}},H=class extends W{constructor(e,t,s,n,i,a){super(e,t,s),this.receiver=n,this.name=i,this.value=a}visit(e,t=null){return e.visitPropertyWrite(this,t)}},z=class extends W{constructor(e,t,s,n,i){super(e,t,s),this.receiver=n,this.name=i}visit(e,t=null){return e.visitSafePropertyRead(this,t)}},q=class extends w{constructor(e,t,s,n){super(e,t),this.receiver=s,this.key=n}visit(e,t=null){return e.visitKeyedRead(this,t)}},j=class extends w{constructor(e,t,s,n){super(e,t),this.receiver=s,this.key=n}visit(e,t=null){return e.visitSafeKeyedRead(this,t)}},X=class extends w{constructor(e,t,s,n,i){super(e,t),this.receiver=s,this.key=n,this.value=i}visit(e,t=null){return e.visitKeyedWrite(this,t)}},Y=class extends W{constructor(e,t,s,n,i,a){super(e,t,a),this.exp=s,this.name=n,this.args=i}visit(e,t=null){return e.visitPipe(this,t)}},C=class extends w{constructor(e,t,s){super(e,t),this.value=s}visit(e,t=null){return e.visitLiteralPrimitive(this,t)}},Z=class extends w{constructor(e,t,s){super(e,t),this.expressions=s}visit(e,t=null){return e.visitLiteralArray(this,t)}},J=class extends w{constructor(e,t,s,n){super(e,t),this.keys=s,this.values=n}visit(e,t=null){return e.visitLiteralMap(this,t)}},me=class extends w{constructor(e,t,s,n){super(e,t),this.strings=s,this.expressions=n}visit(e,t=null){return e.visitInterpolation(this,t)}},A=class extends w{constructor(e,t,s,n,i){super(e,t),this.operation=s,this.left=n,this.right=i}visit(e,t=null){return e.visitBinary(this,t)}},B=class r extends A{static createMinus(e,t,s){return new r(e,t,"-",s,"-",new C(e,t,0),s)}static createPlus(e,t,s){return new r(e,t,"+",s,"-",s,new C(e,t,0))}constructor(e,t,s,n,i,a,h){super(e,t,i,a,h),this.operator=s,this.expr=n,this.left=null,this.right=null,this.operation=null}visit(e,t=null){return e.visitUnary!==void 0?e.visitUnary(this,t):e.visitBinary(this,t)}},ee=class extends w{constructor(e,t,s){super(e,t),this.expression=s}visit(e,t=null){return e.visitPrefixNot(this,t)}},te=class extends w{constructor(e,t,s){super(e,t),this.expression=s}visit(e,t=null){return e.visitNonNullAssert(this,t)}},re=class extends w{constructor(e,t,s,n,i){super(e,t),this.receiver=s,this.args=n,this.argumentSpan=i}visit(e,t=null){return e.visitCall(this,t)}},se=class extends w{constructor(e,t,s,n,i){super(e,t),this.receiver=s,this.args=n,this.argumentSpan=i}visit(e,t=null){return e.visitSafeCall(this,t)}},I=class{constructor(e,t){this.start=e,this.end=t}},R=class extends w{constructor(e,t,s,n,i){super(new P(0,t===null?0:t.length),new I(n,t===null?n:n+t.length)),this.ast=e,this.source=t,this.location=s,this.errors=i}visit(e,t=null){return e.visitASTWithSource?e.visitASTWithSource(this,t):this.ast.visit(e,t)}toString(){return`${this.source} in ${this.location}`}},T=class{constructor(e,t,s){this.sourceSpan=e,this.key=t,this.value=s}},ne=class{constructor(e,t,s){this.sourceSpan=e,this.key=t,this.value=s}},we=class{visit(e,t){e.visit(this,t)}visitUnary(e,t){this.visit(e.expr,t)}visitBinary(e,t){this.visit(e.left,t),this.visit(e.right,t)}visitChain(e,t){this.visitAll(e.expressions,t)}visitConditional(e,t){this.visit(e.condition,t),this.visit(e.trueExp,t),this.visit(e.falseExp,t)}visitPipe(e,t){this.visit(e.exp,t),this.visitAll(e.args,t)}visitImplicitReceiver(e,t){}visitThisReceiver(e,t){}visitInterpolation(e,t){this.visitAll(e.expressions,t)}visitKeyedRead(e,t){this.visit(e.receiver,t),this.visit(e.key,t)}visitKeyedWrite(e,t){this.visit(e.receiver,t),this.visit(e.key,t),this.visit(e.value,t)}visitLiteralArray(e,t){this.visitAll(e.expressions,t)}visitLiteralMap(e,t){this.visitAll(e.values,t)}visitLiteralPrimitive(e,t){}visitPrefixNot(e,t){this.visit(e.expression,t)}visitNonNullAssert(e,t){this.visit(e.expression,t)}visitPropertyRead(e,t){this.visit(e.receiver,t)}visitPropertyWrite(e,t){this.visit(e.receiver,t),this.visit(e.value,t)}visitSafePropertyRead(e,t){this.visit(e.receiver,t)}visitSafeKeyedRead(e,t){this.visit(e.receiver,t),this.visit(e.key,t)}visitCall(e,t){this.visit(e.receiver,t),this.visitAll(e.args,t)}visitSafeCall(e,t){this.visit(e.receiver,t),this.visitAll(e.args,t)}visitAll(e,t){for(let s of e)this.visit(s,t)}};var qe;(function(r){r[r.DEFAULT=0]="DEFAULT",r[r.LITERAL_ATTR=1]="LITERAL_ATTR",r[r.ANIMATION=2]="ANIMATION",r[r.TWO_WAY=3]="TWO_WAY"})(qe||(qe={}));function je(r){return r>=9&&r<=32||r==160}function K(r){return 48<=r&&r<=57}function Xe(r){return r>=97&&r<=122||r>=65&&r<=90}function Le(r){return r===39||r===34||r===96}var f;(function(r){r[r.Character=0]="Character",r[r.Identifier=1]="Identifier",r[r.PrivateIdentifier=2]="PrivateIdentifier",r[r.Keyword=3]="Keyword",r[r.String=4]="String",r[r.Operator=5]="Operator",r[r.Number=6]="Number",r[r.Error=7]="Error"})(f||(f={}));var pr=["var","let","as","null","undefined","true","false","if","else","this"],le=class{tokenize(e){let t=new Be(e),s=[],n=t.scanToken();for(;n!=null;)s.push(n),n=t.scanToken();return s}},O=class{constructor(e,t,s,n,i){this.index=e,this.end=t,this.type=s,this.numValue=n,this.strValue=i}isCharacter(e){return this.type==f.Character&&this.numValue==e}isNumber(){return this.type==f.Number}isString(){return this.type==f.String}isOperator(e){return this.type==f.Operator&&this.strValue==e}isIdentifier(){return this.type==f.Identifier}isPrivateIdentifier(){return this.type==f.PrivateIdentifier}isKeyword(){return this.type==f.Keyword}isKeywordLet(){return this.type==f.Keyword&&this.strValue=="let"}isKeywordAs(){return this.type==f.Keyword&&this.strValue=="as"}isKeywordNull(){return this.type==f.Keyword&&this.strValue=="null"}isKeywordUndefined(){return this.type==f.Keyword&&this.strValue=="undefined"}isKeywordTrue(){return this.type==f.Keyword&&this.strValue=="true"}isKeywordFalse(){return this.type==f.Keyword&&this.strValue=="false"}isKeywordThis(){return this.type==f.Keyword&&this.strValue=="this"}isError(){return this.type==f.Error}toNumber(){return this.type==f.Number?this.numValue:-1}toString(){switch(this.type){case f.Character:case f.Identifier:case f.Keyword:case f.Operator:case f.PrivateIdentifier:case f.String:case f.Error:return this.strValue;case f.Number:return this.numValue.toString();default:return null}}};function tt(r,e,t){return new O(r,e,f.Character,t,String.fromCharCode(t))}function ur(r,e,t){return new O(r,e,f.Identifier,0,t)}function lr(r,e,t){return new O(r,e,f.PrivateIdentifier,0,t)}function xr(r,e,t){return new O(r,e,f.Keyword,0,t)}function be(r,e,t){return new O(r,e,f.Operator,0,t)}function dr(r,e,t){return new O(r,e,f.String,0,t)}function fr(r,e,t){return new O(r,e,f.Number,t,"")}function vr(r,e,t){return new O(r,e,f.Error,0,t)}var Ce=new O(-1,-1,f.Character,0,""),Be=class{constructor(e){this.input=e,this.peek=0,this.index=-1,this.length=e.length,this.advance()}advance(){this.peek=++this.index>=this.length?0:this.input.charCodeAt(this.index)}scanToken(){let e=this.input,t=this.length,s=this.peek,n=this.index;for(;s<=32;)if(++n>=t){s=0;break}else s=e.charCodeAt(n);if(this.peek=s,this.index=n,n>=t)return null;if(rt(s))return this.scanIdentifier();if(K(s))return this.scanNumber(n);let i=n;switch(s){case 46:return this.advance(),K(this.peek)?this.scanNumber(i):tt(i,this.index,46);case 40:case 41:case 123:case 125:case 91:case 93:case 44:case 58:case 59:return this.scanCharacter(i,s);case 39:case 34:return this.scanString();case 35:return this.scanPrivateIdentifier();case 43:case 45:case 42:case 47:case 37:case 94:return this.scanOperator(i,String.fromCharCode(s));case 63:return this.scanQuestion(i);case 60:case 62:return this.scanComplexOperator(i,String.fromCharCode(s),61,"=");case 33:case 61:return this.scanComplexOperator(i,String.fromCharCode(s),61,"=",61,"=");case 38:return this.scanComplexOperator(i,"&",38,"&");case 124:return this.scanComplexOperator(i,"|",124,"|");case 160:for(;je(this.peek);)this.advance();return this.scanToken()}return this.advance(),this.error(`Unexpected character [${String.fromCharCode(s)}]`,0)}scanCharacter(e,t){return this.advance(),tt(e,this.index,t)}scanOperator(e,t){return this.advance(),be(e,this.index,t)}scanComplexOperator(e,t,s,n,i,a){this.advance();let h=t;return this.peek==s&&(this.advance(),h+=n),i!=null&&this.peek==i&&(this.advance(),h+=a),be(e,this.index,h)}scanIdentifier(){let e=this.index;for(this.advance();st(this.peek);)this.advance();let t=this.input.substring(e,this.index);return pr.indexOf(t)>-1?xr(e,this.index,t):ur(e,this.index,t)}scanPrivateIdentifier(){let e=this.index;if(this.advance(),!rt(this.peek))return this.error("Invalid character [#]",-1);for(;st(this.peek);)this.advance();let t=this.input.substring(e,this.index);return lr(e,this.index,t)}scanNumber(e){let t=this.index===e,s=!1;for(this.advance();;){if(!K(this.peek))if(this.peek===95){if(!K(this.input.charCodeAt(this.index-1))||!K(this.input.charCodeAt(this.index+1)))return this.error("Invalid numeric separator",0);s=!0}else if(this.peek===46)t=!1;else if(gr(this.peek)){if(this.advance(),Sr(this.peek)&&this.advance(),!K(this.peek))return this.error("Invalid exponent",-1);t=!1}else break;this.advance()}let n=this.input.substring(e,this.index);s&&(n=n.replace(/_/g,""));let i=t?wr(n):parseFloat(n);return fr(e,this.index,i)}scanString(){let e=this.index,t=this.peek;this.advance();let s="",n=this.index,i=this.input;for(;this.peek!=t;)if(this.peek==92){s+=i.substring(n,this.index);let h;if(this.advance(),this.peek==117){let g=i.substring(this.index+1,this.index+5);if(/^[0-9a-f]+$/i.test(g))h=parseInt(g,16);else return this.error(`Invalid unicode escape [\\u${g}]`,0);for(let d=0;d<5;d++)this.advance()}else h=mr(this.peek),this.advance();s+=String.fromCharCode(h),n=this.index}else{if(this.peek==0)return this.error("Unterminated quote",0);this.advance()}let a=i.substring(n,this.index);return this.advance(),dr(e,this.index,s+a)}scanQuestion(e){this.advance();let t="?";return(this.peek===63||this.peek===46)&&(t+=this.peek===46?".":"?",this.advance()),be(e,this.index,t)}error(e,t){let s=this.index+t;return vr(s,this.index,`Lexer Error: ${e} at column ${s} in expression [${this.input}]`)}};function rt(r){return 97<=r&&r<=122||65<=r&&r<=90||r==95||r==36}function st(r){return Xe(r)||K(r)||r==95||r==36}function gr(r){return r==101||r==69}function Sr(r){return r==45||r==43}function mr(r){switch(r){case 110:return 10;case 102:return 12;case 114:return 13;case 116:return 9;case 118:return 11;default:return r}}function wr(r){let e=parseInt(r);if(isNaN(e))throw new Error("Invalid integer literal when parsing "+r);return e}var yr=[/^\s*$/,/[<>]/,/^[{}]$/,/&(#|[a-z])/i,/^\/\//];function ot(r,e){if(e!=null&&!(Array.isArray(e)&&e.length==2))throw new Error(`Expected '${r}' to be an array, [start, end].`);if(e!=null){let t=e[0],s=e[1];yr.forEach(n=>{if(n.test(t)||n.test(s))throw new Error(`['${t}', '${s}'] contains unusable interpolation symbol.`)})}}var _e=class r{static fromArray(e){return e?(ot("interpolation",e),new r(e[0],e[1])):F}constructor(e,t){this.start=e,this.end=t}},F=new _e("{{","}}");var Me=class{constructor(e,t,s){this.strings=e,this.expressions=t,this.offsets=s}},Fe=class{constructor(e,t,s){this.templateBindings=e,this.warnings=t,this.errors=s}},fe=class{constructor(e){this._lexer=e,this.errors=[]}parseAction(e,t,s,n,i=F){this._checkNoInterpolation(e,s,i);let a=this._stripComments(e),h=this._lexer.tokenize(a),g=1;t&&(g|=2);let d=new U(e,s,n,h,g,this.errors,0).parseChain();return new R(d,e,s,n,this.errors)}parseBinding(e,t,s,n=F){let i=this._parseBindingAst(e,t,s,n);return new R(i,e,t,s,this.errors)}checkSimpleExpression(e){let t=new Ue;return e.visit(t),t.errors}parseSimpleBinding(e,t,s,n=F){let i=this._parseBindingAst(e,t,s,n),a=this.checkSimpleExpression(i);return a.length>0&&this._reportError(`Host binding expression cannot contain ${a.join(" ")}`,e,t),new R(i,e,t,s,this.errors)}_reportError(e,t,s,n){this.errors.push(new G(e,t,s,n))}_parseBindingAst(e,t,s,n){this._checkNoInterpolation(e,t,n);let i=this._stripComments(e),a=this._lexer.tokenize(i);return new U(e,t,s,a,0,this.errors,0).parseChain()}parseTemplateBindings(e,t,s,n,i){let a=this._lexer.tokenize(t);return new U(t,s,i,a,0,this.errors,0).parseTemplateBindings({source:e,span:new I(n,n+e.length)})}parseInterpolation(e,t,s,n,i=F){let{strings:a,expressions:h,offsets:g}=this.splitInterpolation(e,t,n,i);if(h.length===0)return null;let d=[];for(let y=0;y<h.length;++y){let E=h[y].text,S=this._stripComments(E),o=this._lexer.tokenize(S),u=new U(e,t,s,o,0,this.errors,g[y]).parseChain();d.push(u)}return this.createInterpolationAst(a.map(y=>y.text),d,e,t,s)}parseInterpolationExpression(e,t,s){let n=this._stripComments(e),i=this._lexer.tokenize(n),a=new U(e,t,s,i,0,this.errors,0).parseChain(),h=["",""];return this.createInterpolationAst(h,[a],e,t,s)}createInterpolationAst(e,t,s,n,i){let a=new P(0,s.length),h=new me(a,a.toAbsolute(i),e,t);return new R(h,s,n,i,this.errors)}splitInterpolation(e,t,s,n=F){let i=[],a=[],h=[],g=s?Er(s):null,d=0,y=!1,E=!1,{start:S,end:o}=n;for(;d<e.length;)if(y){let u=d,v=u+S.length,c=this._getInterpolationEndIndex(e,o,v);if(c===-1){y=!1,E=!0;break}let x=c+o.length,l=e.substring(v,c);l.trim().length===0&&this._reportError("Blank expressions are not allowed in interpolated strings",e,`at column ${d} in`,t),a.push({text:l,start:u,end:x});let k=((g==null?void 0:g.get(u))??u)+S.length;h.push(k),d=x,y=!1}else{let u=d;d=e.indexOf(S,d),d===-1&&(d=e.length);let v=e.substring(u,d);i.push({text:v,start:u,end:d}),y=!0}if(!y)if(E){let u=i[i.length-1];u.text+=e.substring(d),u.end=e.length}else i.push({text:e.substring(d),start:d,end:e.length});return new Me(i,a,h)}wrapLiteralPrimitive(e,t,s){let n=new P(0,e==null?0:e.length);return new R(new C(n,n.toAbsolute(s),e),e,t,s,this.errors)}_stripComments(e){let t=this._commentStart(e);return t!=null?e.substring(0,t):e}_commentStart(e){let t=null;for(let s=0;s<e.length-1;s++){let n=e.charCodeAt(s),i=e.charCodeAt(s+1);if(n===47&&i==47&&t==null)return s;t===n?t=null:t==null&&Le(n)&&(t=n)}return null}_checkNoInterpolation(e,t,{start:s,end:n}){let i=-1,a=-1;for(let h of this._forEachUnquotedChar(e,0))if(i===-1)e.startsWith(s)&&(i=h);else if(a=this._getInterpolationEndIndex(e,n,h),a>-1)break;i>-1&&a>-1&&this._reportError(`Got interpolation (${s}${n}) where expression was expected`,e,`at column ${i} in`,t)}_getInterpolationEndIndex(e,t,s){for(let n of this._forEachUnquotedChar(e,s)){if(e.startsWith(t,n))return n;if(e.startsWith("//",n))return e.indexOf(t,n)}return-1}*_forEachUnquotedChar(e,t){let s=null,n=0;for(let i=t;i<e.length;i++){let a=e[i];Le(e.charCodeAt(i))&&(s===null||s===a)&&n%2===0?s=s===null?a:null:s===null&&(yield i),n=a==="\\"?n+1:0}}},pe;(function(r){r[r.None=0]="None",r[r.Writable=1]="Writable"})(pe||(pe={}));var U=class{constructor(e,t,s,n,i,a,h){this.input=e,this.location=t,this.absoluteOffset=s,this.tokens=n,this.parseFlags=i,this.errors=a,this.offset=h,this.rparensExpected=0,this.rbracketsExpected=0,this.rbracesExpected=0,this.context=pe.None,this.sourceSpanCache=new Map,this.index=0}peek(e){let t=this.index+e;return t<this.tokens.length?this.tokens[t]:Ce}get next(){return this.peek(0)}get atEOF(){return this.index>=this.tokens.length}get inputIndex(){return this.atEOF?this.currentEndIndex:this.next.index+this.offset}get currentEndIndex(){return this.index>0?this.peek(-1).end+this.offset:this.tokens.length===0?this.input.length+this.offset:this.next.index+this.offset}get currentAbsoluteOffset(){return this.absoluteOffset+this.inputIndex}span(e,t){let s=this.currentEndIndex;if(t!==void 0&&t>this.currentEndIndex&&(s=t),e>s){let n=s;s=e,e=n}return new P(e,s)}sourceSpan(e,t){let s=`${e}@${this.inputIndex}:${t}`;return this.sourceSpanCache.has(s)||this.sourceSpanCache.set(s,this.span(e,t).toAbsolute(this.absoluteOffset)),this.sourceSpanCache.get(s)}advance(){this.index++}withContext(e,t){this.context|=e;let s=t();return this.context^=e,s}consumeOptionalCharacter(e){return this.next.isCharacter(e)?(this.advance(),!0):!1}peekKeywordLet(){return this.next.isKeywordLet()}peekKeywordAs(){return this.next.isKeywordAs()}expectCharacter(e){this.consumeOptionalCharacter(e)||this.error(`Missing expected ${String.fromCharCode(e)}`)}consumeOptionalOperator(e){return this.next.isOperator(e)?(this.advance(),!0):!1}expectOperator(e){this.consumeOptionalOperator(e)||this.error(`Missing expected operator ${e}`)}prettyPrintToken(e){return e===Ce?"end of input":`token ${e}`}expectIdentifierOrKeyword(){let e=this.next;return!e.isIdentifier()&&!e.isKeyword()?(e.isPrivateIdentifier()?this._reportErrorForPrivateIdentifier(e,"expected identifier or keyword"):this.error(`Unexpected ${this.prettyPrintToken(e)}, expected identifier or keyword`),null):(this.advance(),e.toString())}expectIdentifierOrKeywordOrString(){let e=this.next;return!e.isIdentifier()&&!e.isKeyword()&&!e.isString()?(e.isPrivateIdentifier()?this._reportErrorForPrivateIdentifier(e,"expected identifier, keyword or string"):this.error(`Unexpected ${this.prettyPrintToken(e)}, expected identifier, keyword, or string`),""):(this.advance(),e.toString())}parseChain(){let e=[],t=this.inputIndex;for(;this.index<this.tokens.length;){let s=this.parsePipe();if(e.push(s),this.consumeOptionalCharacter(59))for(this.parseFlags&1||this.error("Binding expression cannot contain chained expression");this.consumeOptionalCharacter(59););else if(this.index<this.tokens.length){let n=this.index;if(this.error(`Unexpected token '${this.next}'`),this.index===n)break}}if(e.length===0){let s=this.offset,n=this.offset+this.input.length;return new $(this.span(s,n),this.sourceSpan(s,n))}return e.length==1?e[0]:new V(this.span(t),this.sourceSpan(t),e)}parsePipe(){let e=this.inputIndex,t=this.parseExpression();if(this.consumeOptionalOperator("|")){this.parseFlags&1&&this.error("Cannot have a pipe in an action expression");do{let s=this.inputIndex,n=this.expectIdentifierOrKeyword(),i,a;n!==null?i=this.sourceSpan(s):(n="",a=this.next.index!==-1?this.next.index:this.input.length+this.offset,i=new P(a,a).toAbsolute(this.absoluteOffset));let h=[];for(;this.consumeOptionalCharacter(58);)h.push(this.parseExpression());t=new Y(this.span(e),this.sourceSpan(e,a),t,n,h,i)}while(this.consumeOptionalOperator("|"))}return t}parseExpression(){return this.parseConditional()}parseConditional(){let e=this.inputIndex,t=this.parseLogicalOr();if(this.consumeOptionalOperator("?")){let s=this.parsePipe(),n;if(this.consumeOptionalCharacter(58))n=this.parsePipe();else{let i=this.inputIndex,a=this.input.substring(e,i);this.error(`Conditional expression ${a} requires all 3 expressions`),n=new $(this.span(e),this.sourceSpan(e))}return new Q(this.span(e),this.sourceSpan(e),t,s,n)}else return t}parseLogicalOr(){let e=this.inputIndex,t=this.parseLogicalAnd();for(;this.consumeOptionalOperator("||");){let s=this.parseLogicalAnd();t=new A(this.span(e),this.sourceSpan(e),"||",t,s)}return t}parseLogicalAnd(){let e=this.inputIndex,t=this.parseNullishCoalescing();for(;this.consumeOptionalOperator("&&");){let s=this.parseNullishCoalescing();t=new A(this.span(e),this.sourceSpan(e),"&&",t,s)}return t}parseNullishCoalescing(){let e=this.inputIndex,t=this.parseEquality();for(;this.consumeOptionalOperator("??");){let s=this.parseEquality();t=new A(this.span(e),this.sourceSpan(e),"??",t,s)}return t}parseEquality(){let e=this.inputIndex,t=this.parseRelational();for(;this.next.type==f.Operator;){let s=this.next.strValue;switch(s){case"==":case"===":case"!=":case"!==":this.advance();let n=this.parseRelational();t=new A(this.span(e),this.sourceSpan(e),s,t,n);continue}break}return t}parseRelational(){let e=this.inputIndex,t=this.parseAdditive();for(;this.next.type==f.Operator;){let s=this.next.strValue;switch(s){case"<":case">":case"<=":case">=":this.advance();let n=this.parseAdditive();t=new A(this.span(e),this.sourceSpan(e),s,t,n);continue}break}return t}parseAdditive(){let e=this.inputIndex,t=this.parseMultiplicative();for(;this.next.type==f.Operator;){let s=this.next.strValue;switch(s){case"+":case"-":this.advance();let n=this.parseMultiplicative();t=new A(this.span(e),this.sourceSpan(e),s,t,n);continue}break}return t}parseMultiplicative(){let e=this.inputIndex,t=this.parsePrefix();for(;this.next.type==f.Operator;){let s=this.next.strValue;switch(s){case"*":case"%":case"/":this.advance();let n=this.parsePrefix();t=new A(this.span(e),this.sourceSpan(e),s,t,n);continue}break}return t}parsePrefix(){if(this.next.type==f.Operator){let e=this.inputIndex,t=this.next.strValue,s;switch(t){case"+":return this.advance(),s=this.parsePrefix(),B.createPlus(this.span(e),this.sourceSpan(e),s);case"-":return this.advance(),s=this.parsePrefix(),B.createMinus(this.span(e),this.sourceSpan(e),s);case"!":return this.advance(),s=this.parsePrefix(),new ee(this.span(e),this.sourceSpan(e),s)}}return this.parseCallChain()}parseCallChain(){let e=this.inputIndex,t=this.parsePrimary();for(;;)if(this.consumeOptionalCharacter(46))t=this.parseAccessMember(t,e,!1);else if(this.consumeOptionalOperator("?."))this.consumeOptionalCharacter(40)?t=this.parseCall(t,e,!0):t=this.consumeOptionalCharacter(91)?this.parseKeyedReadOrWrite(t,e,!0):this.parseAccessMember(t,e,!0);else if(this.consumeOptionalCharacter(91))t=this.parseKeyedReadOrWrite(t,e,!1);else if(this.consumeOptionalCharacter(40))t=this.parseCall(t,e,!1);else if(this.consumeOptionalOperator("!"))t=new te(this.span(e),this.sourceSpan(e),t);else return t}parsePrimary(){let e=this.inputIndex;if(this.consumeOptionalCharacter(40)){this.rparensExpected++;let t=this.parsePipe();return this.rparensExpected--,this.expectCharacter(41),t}else{if(this.next.isKeywordNull())return this.advance(),new C(this.span(e),this.sourceSpan(e),null);if(this.next.isKeywordUndefined())return this.advance(),new C(this.span(e),this.sourceSpan(e),void 0);if(this.next.isKeywordTrue())return this.advance(),new C(this.span(e),this.sourceSpan(e),!0);if(this.next.isKeywordFalse())return this.advance(),new C(this.span(e),this.sourceSpan(e),!1);if(this.next.isKeywordThis())return this.advance(),new Se(this.span(e),this.sourceSpan(e));if(this.consumeOptionalCharacter(91)){this.rbracketsExpected++;let t=this.parseExpressionList(93);return this.rbracketsExpected--,this.expectCharacter(93),new Z(this.span(e),this.sourceSpan(e),t)}else{if(this.next.isCharacter(123))return this.parseLiteralMap();if(this.next.isIdentifier())return this.parseAccessMember(new L(this.span(e),this.sourceSpan(e)),e,!1);if(this.next.isNumber()){let t=this.next.toNumber();return this.advance(),new C(this.span(e),this.sourceSpan(e),t)}else if(this.next.isString()){let t=this.next.toString();return this.advance(),new C(this.span(e),this.sourceSpan(e),t)}else return this.next.isPrivateIdentifier()?(this._reportErrorForPrivateIdentifier(this.next,null),new $(this.span(e),this.sourceSpan(e))):this.index>=this.tokens.length?(this.error(`Unexpected end of expression: ${this.input}`),new $(this.span(e),this.sourceSpan(e))):(this.error(`Unexpected token ${this.next}`),new $(this.span(e),this.sourceSpan(e)))}}}parseExpressionList(e){let t=[];do if(!this.next.isCharacter(e))t.push(this.parsePipe());else break;while(this.consumeOptionalCharacter(44));return t}parseLiteralMap(){let e=[],t=[],s=this.inputIndex;if(this.expectCharacter(123),!this.consumeOptionalCharacter(125)){this.rbracesExpected++;do{let n=this.inputIndex,i=this.next.isString(),a=this.expectIdentifierOrKeywordOrString();if(e.push({key:a,quoted:i}),i)this.expectCharacter(58),t.push(this.parsePipe());else if(this.consumeOptionalCharacter(58))t.push(this.parsePipe());else{let h=this.span(n),g=this.sourceSpan(n);t.push(new b(h,g,g,new L(h,g),a))}}while(this.consumeOptionalCharacter(44)&&!this.next.isCharacter(125));this.rbracesExpected--,this.expectCharacter(125)}return new J(this.span(s),this.sourceSpan(s),e,t)}parseAccessMember(e,t,s){let n=this.inputIndex,i=this.withContext(pe.Writable,()=>{let g=this.expectIdentifierOrKeyword()??"";return g.length===0&&this.error("Expected identifier for property access",e.span.end),g}),a=this.sourceSpan(n),h;if(s)this.consumeOptionalAssignment()?(this.error("The '?.' operator cannot be used in the assignment"),h=new $(this.span(t),this.sourceSpan(t))):h=new z(this.span(t),this.sourceSpan(t),a,e,i);else if(this.consumeOptionalAssignment()){if(!(this.parseFlags&1))return this.error("Bindings cannot contain assignments"),new $(this.span(t),this.sourceSpan(t));let g=this.parseConditional();h=new H(this.span(t),this.sourceSpan(t),a,e,i,g)}else h=new b(this.span(t),this.sourceSpan(t),a,e,i);return h}parseCall(e,t,s){let n=this.inputIndex;this.rparensExpected++;let i=this.parseCallArguments(),a=this.span(n,this.inputIndex).toAbsolute(this.absoluteOffset);this.expectCharacter(41),this.rparensExpected--;let h=this.span(t),g=this.sourceSpan(t);return s?new se(h,g,e,i,a):new re(h,g,e,i,a)}consumeOptionalAssignment(){return this.parseFlags&2&&this.next.isOperator("!")&&this.peek(1).isOperator("=")?(this.advance(),this.advance(),!0):this.consumeOptionalOperator("=")}parseCallArguments(){if(this.next.isCharacter(41))return[];let e=[];do e.push(this.parsePipe());while(this.consumeOptionalCharacter(44));return e}expectTemplateBindingKey(){let e="",t=!1,s=this.currentAbsoluteOffset;do e+=this.expectIdentifierOrKeywordOrString(),t=this.consumeOptionalOperator("-"),t&&(e+="-");while(t);return{source:e,span:new I(s,s+e.length)}}parseTemplateBindings(e){let t=[];for(t.push(...this.parseDirectiveKeywordBindings(e));this.index<this.tokens.length;){let s=this.parseLetBinding();if(s)t.push(s);else{let n=this.expectTemplateBindingKey(),i=this.parseAsBinding(n);i?t.push(i):(n.source=e.source+n.source.charAt(0).toUpperCase()+n.source.substring(1),t.push(...this.parseDirectiveKeywordBindings(n)))}this.consumeStatementTerminator()}return new Fe(t,[],this.errors)}parseKeyedReadOrWrite(e,t,s){return this.withContext(pe.Writable,()=>{this.rbracketsExpected++;let n=this.parsePipe();if(n instanceof $&&this.error("Key access cannot be empty"),this.rbracketsExpected--,this.expectCharacter(93),this.consumeOptionalOperator("="))if(s)this.error("The '?.' operator cannot be used in the assignment");else{let i=this.parseConditional();return new X(this.span(t),this.sourceSpan(t),e,n,i)}else return s?new j(this.span(t),this.sourceSpan(t),e,n):new q(this.span(t),this.sourceSpan(t),e,n);return new $(this.span(t),this.sourceSpan(t))})}parseDirectiveKeywordBindings(e){let t=[];this.consumeOptionalCharacter(58);let s=this.getDirectiveBoundTarget(),n=this.currentAbsoluteOffset,i=this.parseAsBinding(e);i||(this.consumeStatementTerminator(),n=this.currentAbsoluteOffset);let a=new I(e.span.start,n);return t.push(new ne(a,e,s)),i&&t.push(i),t}getDirectiveBoundTarget(){if(this.next===Ce||this.peekKeywordAs()||this.peekKeywordLet())return null;let e=this.parsePipe(),{start:t,end:s}=e.span,n=this.input.substring(t,s);return new R(e,n,this.location,this.absoluteOffset+t,this.errors)}parseAsBinding(e){if(!this.peekKeywordAs())return null;this.advance();let t=this.expectTemplateBindingKey();this.consumeStatementTerminator();let s=new I(e.span.start,this.currentAbsoluteOffset);return new T(s,t,e)}parseLetBinding(){if(!this.peekKeywordLet())return null;let e=this.currentAbsoluteOffset;this.advance();let t=this.expectTemplateBindingKey(),s=null;this.consumeOptionalOperator("=")&&(s=this.expectTemplateBindingKey()),this.consumeStatementTerminator();let n=new I(e,this.currentAbsoluteOffset);return new T(n,t,s)}consumeStatementTerminator(){this.consumeOptionalCharacter(59)||this.consumeOptionalCharacter(44)}error(e,t=null){this.errors.push(new G(e,this.input,this.locationText(t),this.location)),this.skip()}locationText(e=null){return e==null&&(e=this.index),e<this.tokens.length?`at column ${this.tokens[e].index+1} in`:"at the end of the expression"}_reportErrorForPrivateIdentifier(e,t){let s=`Private identifiers are not supported. Unexpected private identifier: ${e}`;t!==null&&(s+=`, ${t}`),this.error(s)}skip(){let e=this.next;for(;this.index<this.tokens.length&&!e.isCharacter(59)&&!e.isOperator("|")&&(this.rparensExpected<=0||!e.isCharacter(41))&&(this.rbracesExpected<=0||!e.isCharacter(125))&&(this.rbracketsExpected<=0||!e.isCharacter(93))&&(!(this.context&pe.Writable)||!e.isOperator("="));)this.next.isError()&&this.errors.push(new G(this.next.toString(),this.input,this.locationText(),this.location)),this.advance(),e=this.next}},Ue=class extends we{constructor(){super(...arguments),this.errors=[]}visitPipe(){this.errors.push("pipes")}};function Er(r){let e=new Map,t=0,s=0,n=0;for(;n<r.length;){let i=r[n];if(i.type===9){let[a,h]=i.parts;t+=h.length,s+=a.length}else{let a=i.parts.reduce((h,g)=>h+g.length,0);s+=a,t+=a}e.set(s,t),n++}return e}var ht="angular-estree-parser",Ge="NgEstreeParser",De=0,Ae=[ht,De];function pt(){return new fe(new le)}function Oe(r,e){let t=pt(),{astInput:s,comments:n}=Cr(r,t),{ast:i,errors:a}=e(s,t);return vt(a),{ast:i,comments:n}}function ut(r){return Oe(r,(e,t)=>t.parseBinding(e,...Ae))}function lt(r){return Oe(r,(e,t)=>t.parseSimpleBinding(e,...Ae))}function xt(r){return Oe(r,(e,t)=>t.parseAction(e,!1,...Ae))}function dt(r){return Oe(r,(e,t)=>{let s=t.parseInterpolationExpression(e,...Ae);return s.ast=s.ast.expressions[0],s})}function ft(r){let e=pt(),{templateBindings:t,errors:s}=e.parseTemplateBindings(Ge,r,ht,De,De);return vt(s),t}function vt(r){if(r.length!==0){let[{message:e}]=r;throw new SyntaxError(e.replace(/^Parser Error: | at column \d+ in [^]*$/g,""))}}function Cr(r,e){let t=e._commentStart(r);return t===null?{astInput:r,comments:[]}:{astInput:r.slice(0,t),comments:[{type:"Comment",value:r.slice(t+2),sourceSpan:{start:t,end:r.length}}]}}function gt(r){return r instanceof B?"Unary":r instanceof A?"Binary":r instanceof Y?"BindingPipe":r instanceof re?"Call":r instanceof V?"Chain":r instanceof Q?"Conditional":r instanceof $?"EmptyExpr":r instanceof L?"ImplicitReceiver":r instanceof q?"KeyedRead":r instanceof j?"SafeKeyedRead":r instanceof X?"KeyedWrite":r instanceof Z?"LiteralArray":r instanceof J?"LiteralMap":r instanceof C?"LiteralPrimitive":r instanceof te?"NonNullAssert":r instanceof ee?"PrefixNot":r instanceof b?"PropertyRead":r instanceof H?"PropertyWrite":r instanceof se?"SafeCall":r instanceof z?"SafePropertyRead":r.type}function ct({start:r,end:e},t){let s=r,n=e;for(;n!==s&&/\s/.test(t[n-1]);)n--;for(;s!==n&&/\s/.test(t[s]);)s++;return{start:s,end:n}}function Ar({start:r,end:e},t){let s=r,n=e;for(;n!==t.length&&/\s/.test(t[n]);)n++;for(;s!==0&&/\s/.test(t[s-1]);)s--;return{start:s,end:n}}function Or(r,e){return e[r.start-1]==="("&&e[r.end]===")"?{start:r.start-1,end:r.end+1}:r}function St(r,e,t){let s=0,n={start:r.start,end:r.end};for(;;){let i=Ar(n,e),a=Or(i,e);if(i.start===a.start&&i.end===a.end)break;n.start=a.start,n.end=a.end,s++}return{hasParens:(t?s-1:s)!==0,outerSpan:ct(t?{start:n.start+1,end:n.end-1}:n,e),innerSpan:ct(r,e)}}function mt(r){return typeof r=="string"?e=>e===r:e=>r.test(e)}function wt(r,e,t){let s=mt(e);for(let n=t;n>=0;n--){let i=r[n];if(s(i))return n}throw new Error(`Cannot find front char ${e} from index ${t} in ${JSON.stringify(r)}`)}function yt(r,e,t){let s=mt(e);for(let n=t;n<r.length;n++){let i=r[n];if(s(i))return n}throw new Error(`Cannot find character ${e} from index ${t} in ${JSON.stringify(r)}`)}function Et(r){return r.slice(0,1).toLowerCase()+r.slice(1)}var ve=class{text;constructor(e){this.text=e}getCharacterIndex(e,t){return yt(this.text,e,t)}getCharacterLastIndex(e,t){return wt(this.text,e,t)}};var Nr=(r,e,t)=>{if(!(r&&e==null))return Array.isArray(e)||typeof e=="string"?e[t<0?e.length+t:t]:e.at(t)},Ne=Nr;var D=(r,e,t=!1)=>{let s=gt(r);switch(s){case"Unary":{let{operator:o,expr:u}=r,v=n(u);return a("UnaryExpression",{prefix:!0,argument:v,operator:o},r.sourceSpan,{hasParentParens:t})}case"Binary":{let{left:o,operation:u,right:v}=r,c=n(o),x=n(v);return a(u==="&&"||u==="||"||u==="??"?"LogicalExpression":"BinaryExpression",{left:c,right:x,operator:u},{start:E(c),end:S(x)},{hasParentParens:t})}case"BindingPipe":{let{exp:o,name:u,args:v}=r,c=n(o),x=e.getCharacterIndex(/\S/,e.getCharacterIndex("|",S(c))+1),l=a("Identifier",{name:u},{start:x,end:x+u.length}),p=v.map(n);return a("NGPipeExpression",{left:c,right:l,arguments:p},{start:E(c),end:S(p.length===0?l:Ne(!1,p,-1))},{hasParentParens:t})}case"Chain":{let{expressions:o}=r;return a("NGChainedExpression",{expressions:o.map(n)},r.sourceSpan,{hasParentParens:t})}case"Comment":{let{value:o}=r;return a("CommentLine",{value:o},r.sourceSpan,{processSpan:!1})}case"Conditional":{let{condition:o,trueExp:u,falseExp:v}=r,c=n(o),x=n(u),l=n(v);return a("ConditionalExpression",{test:c,consequent:x,alternate:l},{start:E(c),end:S(l)},{hasParentParens:t})}case"EmptyExpr":return a("NGEmptyExpression",{},r.sourceSpan,{hasParentParens:t});case"ImplicitReceiver":return a("ThisExpression",{},r.sourceSpan,{hasParentParens:t});case"KeyedRead":case"SafeKeyedRead":{let o=s==="SafeKeyedRead",{key:u}=r,v=Object.prototype.hasOwnProperty.call(r,"receiver")?r.receiver:r.obj,c=n(u);return h(v,c,{computed:!0,optional:o},{end:r.sourceSpan.end,hasParentParens:t})}case"LiteralArray":{let{expressions:o}=r;return a("ArrayExpression",{elements:o.map(n)},r.sourceSpan,{hasParentParens:t})}case"LiteralMap":{let{keys:o,values:u}=r,v=u.map(x=>n(x)),c=o.map(({key:x,quoted:l},p)=>{let k=v[p],m=E(k),N=S(k),ue=e.getCharacterIndex(/\S/,p===0?r.sourceSpan.start+1:e.getCharacterIndex(",",S(v[p-1]))+1),It=m===ue?N:e.getCharacterLastIndex(/\S/,e.getCharacterLastIndex(":",m-1)-1)+1,He={start:ue,end:It},ge=l?a("StringLiteral",{value:x},He):a("Identifier",{name:x},He),kt=ge.end<ge.start||ue===m;return a("ObjectProperty",{key:ge,value:k,shorthand:kt,computed:!1},{start:E(ge),end:N})});return a("ObjectExpression",{properties:c},r.sourceSpan,{hasParentParens:t})}case"LiteralPrimitive":{let{value:o}=r;switch(typeof o){case"boolean":return a("BooleanLiteral",{value:o},r.sourceSpan,{hasParentParens:t});case"number":return a("NumericLiteral",{value:o},r.sourceSpan,{hasParentParens:t});case"object":return a("NullLiteral",{},r.sourceSpan,{hasParentParens:t});case"string":return a("StringLiteral",{value:o},r.sourceSpan,{hasParentParens:t});case"undefined":return a("Identifier",{name:"undefined"},r.sourceSpan,{hasParentParens:t});default:throw new Error(`Unexpected LiteralPrimitive value type ${typeof o}`)}}case"Call":case"SafeCall":{let o=s==="SafeCall",{receiver:u,args:v}=r,c=v.length===1?[i(v[0])]:v.map(n),x=n(u),l=d(x),p=o||l?"OptionalCallExpression":"CallExpression";return a(p,{callee:x,arguments:c,optional:p==="OptionalCallExpression"?o:void 0},{start:E(x),end:r.sourceSpan.end},{hasParentParens:t})}case"NonNullAssert":{let{expression:o}=r,u=n(o);return a("TSNonNullExpression",{expression:u},{start:E(u),end:r.sourceSpan.end},{hasParentParens:t})}case"PrefixNot":{let{expression:o}=r,u=n(o);return a("UnaryExpression",{prefix:!0,operator:"!",argument:u},{start:r.sourceSpan.start,end:S(u)},{hasParentParens:t})}case"PropertyRead":case"SafePropertyRead":{let o=s==="SafePropertyRead",{receiver:u,name:v}=r,c=e.getCharacterLastIndex(/\S/,r.sourceSpan.end-1)+1,x=a("Identifier",{name:v},{start:c-v.length,end:c},g(u)?{hasParentParens:t}:{});return h(u,x,{computed:!1,optional:o},{hasParentParens:t})}case"KeyedWrite":{let{key:o,value:u}=r,v=Object.prototype.hasOwnProperty.call(r,"receiver")?r.receiver:r.obj,c=n(o),x=n(u),l=h(v,c,{computed:!0,optional:!1},{end:e.getCharacterIndex("]",S(c))+1});return a("AssignmentExpression",{left:l,operator:"=",right:x},{start:E(l),end:S(x)},{hasParentParens:t})}case"PropertyWrite":{let{receiver:o,name:u,value:v}=r,c=n(v),x=e.getCharacterLastIndex(/\S/,e.getCharacterLastIndex("=",E(c)-1)-1)+1,l=a("Identifier",{name:u},{start:x-u.length,end:x}),p=h(o,l,{computed:!1,optional:!1});return a("AssignmentExpression",{left:p,operator:"=",right:c},{start:E(p),end:S(c)},{hasParentParens:t})}default:throw new Error(`Unexpected node ${s}`)}function n(o){return D(o,e)}function i(o){return D(o,e,!0)}function a(o,u,v,{processSpan:c=!0,hasParentParens:x=!1}={}){let l={type:o,...Ie(v,e,c,x),...u};switch(o){case"NumericLiteral":{let p=l;p.extra={...p.extra,raw:e.text.slice(p.start,p.end),rawValue:p.value};break}case"StringLiteral":{let p=l;p.extra={...p.extra,raw:e.text.slice(p.start,p.end),rawValue:p.value};break}case"ObjectProperty":{let p=l;p.shorthand&&(p.extra={...p.extra,shorthand:p.shorthand});break}}return l}function h(o,u,v,{end:c=S(u),hasParentParens:x=!1}={}){if(g(o)||o.sourceSpan.start===u.start)return u;let l=n(o),p=d(l);return a(v.optional||p?"OptionalMemberExpression":"MemberExpression",{object:l,property:u,computed:v.computed,...v.optional?{optional:!0}:p?{optional:!1}:null},{start:E(l),end:c},{hasParentParens:x})}function g(o){return o.sourceSpan.start>=o.sourceSpan.end||/^\s+$/.test(e.text.slice(o.sourceSpan.start,o.sourceSpan.end))}function d(o){return(o.type==="OptionalCallExpression"||o.type==="OptionalMemberExpression")&&!y(o)}function y(o){return o.extra&&o.extra.parenthesized}function E(o){return y(o)?o.extra.parenStart:o.start}function S(o){return y(o)?o.extra.parenEnd:o.end}};function Ie(r,e,t=!1,s=!1){if(!t){let{start:g,end:d}=r;return{start:g,end:d,range:[g,d]}}let{outerSpan:n,innerSpan:{start:i,end:a},hasParens:h}=St(r,e.text,s);return{start:i,end:a,range:[i,a],...h&&{extra:{parenthesized:!0,parenStart:n.start,parenEnd:n.end}}}}function $t(r,e){r.forEach(o);let[t]=r,{key:s}=t,n=e.text.slice(t.sourceSpan.start,t.sourceSpan.end).trim().length===0?r.slice(1):r,i=[],a=null;for(let c=0;c<n.length;c++){let x=n[c];if(a&&E(a)&&S(x)&&x.value&&x.value.source===a.key.source){let l=d("NGMicrosyntaxKey",{name:x.key.source},x.key.span),p=(N,ue)=>({...N,...Ie({start:N.start,end:ue},e)}),k=N=>({...p(N,l.end),alias:l}),m=i.pop();if(m.type==="NGMicrosyntaxExpression")i.push(k(m));else if(m.type==="NGMicrosyntaxKeyedExpression"){let N=k(m.expression);i.push(p({...m,expression:N},N.end))}else throw new Error(`Unexpected type ${m.type}`)}else i.push(h(x,c));a=x}return d("NGMicrosyntax",{body:i},i.length===0?r[0].sourceSpan:{start:i[0].start,end:Ne(!1,i,-1).end});function h(c,x){if(E(c)){let{key:l,value:p}=c;return p?x===0?d("NGMicrosyntaxExpression",{expression:g(p.ast),alias:null},p.sourceSpan):d("NGMicrosyntaxKeyedExpression",{key:d("NGMicrosyntaxKey",{name:y(l.source)},l.span),expression:d("NGMicrosyntaxExpression",{expression:g(p.ast),alias:null},p.sourceSpan)},{start:l.span.start,end:p.sourceSpan.end}):d("NGMicrosyntaxKey",{name:y(l.source)},l.span)}else{let{key:l,sourceSpan:p}=c;if(/^let\s$/.test(e.text.slice(p.start,p.start+4))){let{value:m}=c;return d("NGMicrosyntaxLet",{key:d("NGMicrosyntaxKey",{name:l.source},l.span),value:m?d("NGMicrosyntaxKey",{name:m.source},m.span):null},{start:p.start,end:m?m.span.end:l.span.end})}else{let m=v(c);return d("NGMicrosyntaxAs",{key:d("NGMicrosyntaxKey",{name:m.source},m.span),alias:d("NGMicrosyntaxKey",{name:l.source},l.span)},{start:m.span.start,end:l.span.end})}}}function g(c){return D(c,e)}function d(c,x,l,p=!0){return{type:c,...Ie(l,e,p),...x}}function y(c){return Et(c.slice(s.source.length))}function E(c){return c instanceof ne}function S(c){return c instanceof T}function o(c){u(c.key.span),S(c)&&c.value&&u(c.value.span)}function u(c){if(e.text[c.start]!=='"'&&e.text[c.start]!=="'")return;let x=e.text[c.start],l=!1;for(let p=c.start+1;p<e.text.length;p++)switch(e.text[p]){case x:if(!l){c.end=p+1;return}default:l=!1;break;case"\\":l=!l;break}}function v(c){if(!c.value||c.value.source!==Ge)return c.value;let x=e.getCharacterIndex(/\S/,c.sourceSpan.start);return{source:"$implicit",span:{start:x,end:x}}}}function ke(r){return e=>{let{ast:t,comments:s}=r(e),n=new ve(e),i=D(t,n);return i.comments=s.map(a=>D(a,n)),i}}var Ct=ke(ut),hs=ke(lt),At=ke(dt),We=ke(xt),Ot=r=>$t(ft(r),new ve(r));function Ve(r){var s,n,i;let e=((s=r.range)==null?void 0:s[0])??r.start,t=(i=((n=r.declaration)==null?void 0:n.decorators)??r.decorators)==null?void 0:i[0];return t?Math.min(Ve(t),e):e}function Nt(r){var e;return((e=r.range)==null?void 0:e[1])??r.end}function Re(r){return{astFormat:"estree",parse(e){let t=r(e);return{type:"NGRoot",node:r===We&&t.type!=="NGChainedExpression"?{...t,type:"NGChainedExpression",expressions:[t]}:t}},locStart:Ve,locEnd:Nt}}var Ir=Re(We),kr=Re(Ct),Rr=Re(At),Pr=Re(Ot);return bt(Lr);});
1
+ (function(n){function e(){var i=n();return i.default||i}if(typeof exports=="object"&&typeof module=="object")module.exports=e();else if(typeof define=="function"&&define.amd)define(e);else{var t=typeof globalThis<"u"?globalThis:typeof global<"u"?global:typeof self<"u"?self:this||{};t.prettierPlugins=t.prettierPlugins||{},t.prettierPlugins.angular=e()}})(function(){"use strict";var Ut=Object.defineProperty;var Je=Object.getOwnPropertyDescriptor;var Xe=Object.getOwnPropertyNames;var ts=Object.prototype.hasOwnProperty;var ae=r=>{throw TypeError(r)};var oe=(r,t)=>{for(var e in t)Ut(r,e,{get:t[e],enumerable:!0})},es=(r,t,e,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Xe(t))!ts.call(r,i)&&i!==e&&Ut(r,i,{get:()=>t[i],enumerable:!(s=Je(t,i))||s.enumerable});return r};var ss=r=>es(Ut({},"__esModule",{value:!0}),r);var Ft=(r,t,e)=>t.has(r)||ae("Cannot "+e);var O=(r,t,e)=>(Ft(r,t,"read from private field"),e?e.call(r):t.get(r)),P=(r,t,e)=>t.has(r)?ae("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(r):t.set(r,e),Y=(r,t,e,s)=>(Ft(r,t,"write to private field"),s?s.call(r,e):t.set(r,e),e),c=(r,t,e)=>(Ft(r,t,"access private method"),e);var rr={};oe(rr,{parsers:()=>ne});var ne={};oe(ne,{__ng_action:()=>Xs,__ng_binding:()=>tr,__ng_directive:()=>sr,__ng_interpolation:()=>er});var Z=class{constructor(t,e,s,i){this.input=e,this.errLocation=s,this.ctxLocation=i,this.message=`Parser Error: ${t} ${s} [${e}] in ${i}`}},b=class{constructor(t,e){this.start=t,this.end=e}toAbsolute(t){return new L(t+this.start,t+this.end)}},m=class{constructor(t,e){this.span=t,this.sourceSpan=e}toString(){return"AST"}},J=class extends m{constructor(t,e,s){super(t,e),this.nameSpan=s}},$=class extends m{visit(t,e=null){}},K=class extends m{visit(t,e=null){return t.visitImplicitReceiver(this,e)}},Lt=class extends K{visit(t,e=null){var s;return(s=t.visitThisReceiver)==null?void 0:s.call(t,this,e)}},X=class extends m{constructor(t,e,s){super(t,e),this.expressions=s}visit(t,e=null){return t.visitChain(this,e)}},tt=class extends m{constructor(t,e,s,i,n){super(t,e),this.condition=s,this.trueExp=i,this.falseExp=n}visit(t,e=null){return t.visitConditional(this,e)}},M=class extends J{constructor(t,e,s,i,n){super(t,e,s),this.receiver=i,this.name=n}visit(t,e=null){return t.visitPropertyRead(this,e)}},et=class extends J{constructor(t,e,s,i,n,a){super(t,e,s),this.receiver=i,this.name=n,this.value=a}visit(t,e=null){return t.visitPropertyWrite(this,e)}},_=class extends J{constructor(t,e,s,i,n){super(t,e,s),this.receiver=i,this.name=n}visit(t,e=null){return t.visitSafePropertyRead(this,e)}},st=class extends m{constructor(t,e,s,i){super(t,e),this.receiver=s,this.key=i}visit(t,e=null){return t.visitKeyedRead(this,e)}},U=class extends m{constructor(t,e,s,i){super(t,e),this.receiver=s,this.key=i}visit(t,e=null){return t.visitSafeKeyedRead(this,e)}},rt=class extends m{constructor(t,e,s,i,n){super(t,e),this.receiver=s,this.key=i,this.value=n}visit(t,e=null){return t.visitKeyedWrite(this,e)}},it=class extends J{constructor(t,e,s,i,n,a){super(t,e,a),this.exp=s,this.name=i,this.args=n}visit(t,e=null){return t.visitPipe(this,e)}},E=class extends m{constructor(t,e,s){super(t,e),this.value=s}visit(t,e=null){return t.visitLiteralPrimitive(this,e)}},nt=class extends m{constructor(t,e,s){super(t,e),this.expressions=s}visit(t,e=null){return t.visitLiteralArray(this,e)}},at=class extends m{constructor(t,e,s,i){super(t,e),this.keys=s,this.values=i}visit(t,e=null){return t.visitLiteralMap(this,e)}},ot=class extends m{constructor(t,e,s,i){super(t,e),this.strings=s,this.expressions=i}visit(t,e=null){return t.visitInterpolation(this,e)}},A=class extends m{constructor(t,e,s,i,n){super(t,e),this.operation=s,this.left=i,this.right=n}visit(t,e=null){return t.visitBinary(this,e)}},F=class r extends A{static createMinus(t,e,s){return new r(t,e,"-",s,"-",new E(t,e,0),s)}static createPlus(t,e,s){return new r(t,e,"+",s,"-",s,new E(t,e,0))}constructor(t,e,s,i,n,a,o){super(t,e,n,a,o),this.operator=s,this.expr=i,this.left=null,this.right=null,this.operation=null}visit(t,e=null){return t.visitUnary!==void 0?t.visitUnary(this,e):t.visitBinary(this,e)}},ct=class extends m{constructor(t,e,s){super(t,e),this.expression=s}visit(t,e=null){return t.visitPrefixNot(this,e)}},ht=class extends m{constructor(t,e,s){super(t,e),this.expression=s}visit(t,e=null){return t.visitNonNullAssert(this,e)}},pt=class extends m{constructor(t,e,s,i,n){super(t,e),this.receiver=s,this.args=i,this.argumentSpan=n}visit(t,e=null){return t.visitCall(this,e)}},D=class extends m{constructor(t,e,s,i,n){super(t,e),this.receiver=s,this.args=i,this.argumentSpan=n}visit(t,e=null){return t.visitSafeCall(this,e)}},L=class{constructor(t,e){this.start=t,this.end=e}},R=class extends m{constructor(t,e,s,i,n){super(new b(0,e===null?0:e.length),new L(i,e===null?i:i+e.length)),this.ast=t,this.source=e,this.location=s,this.errors=n}visit(t,e=null){return t.visitASTWithSource?t.visitASTWithSource(this,e):this.ast.visit(t,e)}toString(){return`${this.source} in ${this.location}`}},W=class{constructor(t,e,s){this.sourceSpan=t,this.key=e,this.value=s}},ut=class{constructor(t,e,s){this.sourceSpan=t,this.key=e,this.value=s}},Rt=class{visit(t,e){t.visit(this,e)}visitUnary(t,e){this.visit(t.expr,e)}visitBinary(t,e){this.visit(t.left,e),this.visit(t.right,e)}visitChain(t,e){this.visitAll(t.expressions,e)}visitConditional(t,e){this.visit(t.condition,e),this.visit(t.trueExp,e),this.visit(t.falseExp,e)}visitPipe(t,e){this.visit(t.exp,e),this.visitAll(t.args,e)}visitImplicitReceiver(t,e){}visitThisReceiver(t,e){}visitInterpolation(t,e){this.visitAll(t.expressions,e)}visitKeyedRead(t,e){this.visit(t.receiver,e),this.visit(t.key,e)}visitKeyedWrite(t,e){this.visit(t.receiver,e),this.visit(t.key,e),this.visit(t.value,e)}visitLiteralArray(t,e){this.visitAll(t.expressions,e)}visitLiteralMap(t,e){this.visitAll(t.values,e)}visitLiteralPrimitive(t,e){}visitPrefixNot(t,e){this.visit(t.expression,e)}visitNonNullAssert(t,e){this.visit(t.expression,e)}visitPropertyRead(t,e){this.visit(t.receiver,e)}visitPropertyWrite(t,e){this.visit(t.receiver,e),this.visit(t.value,e)}visitSafePropertyRead(t,e){this.visit(t.receiver,e)}visitSafeKeyedRead(t,e){this.visit(t.receiver,e),this.visit(t.key,e)}visitCall(t,e){this.visit(t.receiver,e),this.visitAll(t.args,e)}visitSafeCall(t,e){this.visit(t.receiver,e),this.visitAll(t.args,e)}visitAll(t,e){for(let s of t)this.visit(s,e)}};var ce;(function(r){r[r.DEFAULT=0]="DEFAULT",r[r.LITERAL_ATTR=1]="LITERAL_ATTR",r[r.ANIMATION=2]="ANIMATION",r[r.TWO_WAY=3]="TWO_WAY"})(ce||(ce={}));var he;(function(r){r[r.Regular=0]="Regular",r[r.Animation=1]="Animation",r[r.TwoWay=2]="TwoWay"})(he||(he={}));var pe;(function(r){r[r.Property=0]="Property",r[r.Attribute=1]="Attribute",r[r.Class=2]="Class",r[r.Style=3]="Style",r[r.Animation=4]="Animation",r[r.TwoWay=5]="TwoWay"})(pe||(pe={}));function ue(r){return r>=9&&r<=32||r==160}function B(r){return 48<=r&&r<=57}function le(r){return r>=97&&r<=122||r>=65&&r<=90}function Dt(r){return r===39||r===34||r===96}var l;(function(r){r[r.Character=0]="Character",r[r.Identifier=1]="Identifier",r[r.PrivateIdentifier=2]="PrivateIdentifier",r[r.Keyword=3]="Keyword",r[r.String=4]="String",r[r.Operator=5]="Operator",r[r.Number=6]="Number",r[r.Error=7]="Error"})(l||(l={}));var Ps=["var","let","as","null","undefined","true","false","if","else","this"],yt=class{tokenize(t){let e=new Vt(t),s=[],i=e.scanToken();for(;i!=null;)s.push(i),i=e.scanToken();return s}},I=class{constructor(t,e,s,i,n){this.index=t,this.end=e,this.type=s,this.numValue=i,this.strValue=n}isCharacter(t){return this.type==l.Character&&this.numValue==t}isNumber(){return this.type==l.Number}isString(){return this.type==l.String}isOperator(t){return this.type==l.Operator&&this.strValue==t}isIdentifier(){return this.type==l.Identifier}isPrivateIdentifier(){return this.type==l.PrivateIdentifier}isKeyword(){return this.type==l.Keyword}isKeywordLet(){return this.type==l.Keyword&&this.strValue=="let"}isKeywordAs(){return this.type==l.Keyword&&this.strValue=="as"}isKeywordNull(){return this.type==l.Keyword&&this.strValue=="null"}isKeywordUndefined(){return this.type==l.Keyword&&this.strValue=="undefined"}isKeywordTrue(){return this.type==l.Keyword&&this.strValue=="true"}isKeywordFalse(){return this.type==l.Keyword&&this.strValue=="false"}isKeywordThis(){return this.type==l.Keyword&&this.strValue=="this"}isError(){return this.type==l.Error}toNumber(){return this.type==l.Number?this.numValue:-1}toString(){switch(this.type){case l.Character:case l.Identifier:case l.Keyword:case l.Operator:case l.PrivateIdentifier:case l.String:case l.Error:return this.strValue;case l.Number:return this.numValue.toString();default:return null}}};function ge(r,t,e){return new I(r,t,l.Character,e,String.fromCharCode(e))}function bs(r,t,e){return new I(r,t,l.Identifier,0,e)}function Ks(r,t,e){return new I(r,t,l.PrivateIdentifier,0,e)}function Bs(r,t,e){return new I(r,t,l.Keyword,0,e)}function Gt(r,t,e){return new I(r,t,l.Operator,0,e)}function Ts(r,t,e){return new I(r,t,l.String,0,e)}function Ms(r,t,e){return new I(r,t,l.Number,e,"")}function _s(r,t,e){return new I(r,t,l.Error,0,e)}var Bt=new I(-1,-1,l.Character,0,""),Vt=class{constructor(t){this.input=t,this.peek=0,this.index=-1,this.length=t.length,this.advance()}advance(){this.peek=++this.index>=this.length?0:this.input.charCodeAt(this.index)}scanToken(){let t=this.input,e=this.length,s=this.peek,i=this.index;for(;s<=32;)if(++i>=e){s=0;break}else s=t.charCodeAt(i);if(this.peek=s,this.index=i,i>=e)return null;if(me(s))return this.scanIdentifier();if(B(s))return this.scanNumber(i);let n=i;switch(s){case 46:return this.advance(),B(this.peek)?this.scanNumber(n):ge(n,this.index,46);case 40:case 41:case 123:case 125:case 91:case 93:case 44:case 58:case 59:return this.scanCharacter(n,s);case 39:case 34:return this.scanString();case 35:return this.scanPrivateIdentifier();case 43:case 45:case 42:case 47:case 37:case 94:return this.scanOperator(n,String.fromCharCode(s));case 63:return this.scanQuestion(n);case 60:case 62:return this.scanComplexOperator(n,String.fromCharCode(s),61,"=");case 33:case 61:return this.scanComplexOperator(n,String.fromCharCode(s),61,"=",61,"=");case 38:return this.scanComplexOperator(n,"&",38,"&");case 124:return this.scanComplexOperator(n,"|",124,"|");case 160:for(;ue(this.peek);)this.advance();return this.scanToken()}return this.advance(),this.error(`Unexpected character [${String.fromCharCode(s)}]`,0)}scanCharacter(t,e){return this.advance(),ge(t,this.index,e)}scanOperator(t,e){return this.advance(),Gt(t,this.index,e)}scanComplexOperator(t,e,s,i,n,a){this.advance();let o=e;return this.peek==s&&(this.advance(),o+=i),n!=null&&this.peek==n&&(this.advance(),o+=a),Gt(t,this.index,o)}scanIdentifier(){let t=this.index;for(this.advance();Se(this.peek);)this.advance();let e=this.input.substring(t,this.index);return Ps.indexOf(e)>-1?Bs(t,this.index,e):bs(t,this.index,e)}scanPrivateIdentifier(){let t=this.index;if(this.advance(),!me(this.peek))return this.error("Invalid character [#]",-1);for(;Se(this.peek);)this.advance();let e=this.input.substring(t,this.index);return Ks(t,this.index,e)}scanNumber(t){let e=this.index===t,s=!1;for(this.advance();;){if(!B(this.peek))if(this.peek===95){if(!B(this.input.charCodeAt(this.index-1))||!B(this.input.charCodeAt(this.index+1)))return this.error("Invalid numeric separator",0);s=!0}else if(this.peek===46)e=!1;else if(Us(this.peek)){if(this.advance(),Fs(this.peek)&&this.advance(),!B(this.peek))return this.error("Invalid exponent",-1);e=!1}else break;this.advance()}let i=this.input.substring(t,this.index);s&&(i=i.replace(/_/g,""));let n=e?Ws(i):parseFloat(i);return Ms(t,this.index,n)}scanString(){let t=this.index,e=this.peek;this.advance();let s="",i=this.index,n=this.input;for(;this.peek!=e;)if(this.peek==92){s+=n.substring(i,this.index);let o;if(this.advance(),this.peek==117){let p=n.substring(this.index+1,this.index+5);if(/^[0-9a-f]+$/i.test(p))o=parseInt(p,16);else return this.error(`Invalid unicode escape [\\u${p}]`,0);for(let u=0;u<5;u++)this.advance()}else o=Ds(this.peek),this.advance();s+=String.fromCharCode(o),i=this.index}else{if(this.peek==0)return this.error("Unterminated quote",0);this.advance()}let a=n.substring(i,this.index);return this.advance(),Ts(t,this.index,s+a)}scanQuestion(t){this.advance();let e="?";return(this.peek===63||this.peek===46)&&(e+=this.peek===46?".":"?",this.advance()),Gt(t,this.index,e)}error(t,e){let s=this.index+e;return _s(s,this.index,`Lexer Error: ${t} at column ${s} in expression [${this.input}]`)}};function me(r){return 97<=r&&r<=122||65<=r&&r<=90||r==95||r==36}function Se(r){return le(r)||B(r)||r==95||r==36}function Us(r){return r==101||r==69}function Fs(r){return r==45||r==43}function Ds(r){switch(r){case 110:return 10;case 102:return 12;case 114:return 13;case 116:return 9;case 118:return 11;default:return r}}function Ws(r){let t=parseInt(r);if(isNaN(t))throw new Error("Invalid integer literal when parsing "+r);return t}var Gs=[/@/,/^\s*$/,/[<>]/,/^[{}]$/,/&(#|[a-z])/i,/^\/\//];function Ee(r,t){if(t!=null&&!(Array.isArray(t)&&t.length==2))throw new Error(`Expected '${r}' to be an array, [start, end].`);if(t!=null){let e=t[0],s=t[1];Gs.forEach(i=>{if(i.test(e)||i.test(s))throw new Error(`['${e}', '${s}'] contains unusable interpolation symbol.`)})}}var zt=class r{static fromArray(t){return t?(Ee("interpolation",t),new r(t[0],t[1])):Q}constructor(t,e){this.start=t,this.end=e}},Q=new zt("{{","}}");var qt=class{constructor(t,e,s){this.strings=t,this.expressions=e,this.offsets=s}},Ht=class{constructor(t,e,s){this.templateBindings=t,this.warnings=e,this.errors=s}},mt=class{constructor(t){this._lexer=t,this.errors=[]}parseAction(t,e,s,i=Q){this._checkNoInterpolation(t,e,i);let n=this._stripComments(t),a=this._lexer.tokenize(n),o=new z(t,e,s,a,1,this.errors,0).parseChain();return new R(o,t,e,s,this.errors)}parseBinding(t,e,s,i=Q){let n=this._parseBindingAst(t,e,s,i);return new R(n,t,e,s,this.errors)}checkSimpleExpression(t){let e=new jt;return t.visit(e),e.errors}parseSimpleBinding(t,e,s,i=Q){let n=this._parseBindingAst(t,e,s,i),a=this.checkSimpleExpression(n);return a.length>0&&this._reportError(`Host binding expression cannot contain ${a.join(" ")}`,t,e),new R(n,t,e,s,this.errors)}_reportError(t,e,s,i){this.errors.push(new Z(t,e,s,i))}_parseBindingAst(t,e,s,i){this._checkNoInterpolation(t,e,i);let n=this._stripComments(t),a=this._lexer.tokenize(n);return new z(t,e,s,a,0,this.errors,0).parseChain()}parseTemplateBindings(t,e,s,i,n){let a=this._lexer.tokenize(e);return new z(e,s,n,a,0,this.errors,0).parseTemplateBindings({source:t,span:new L(i,i+t.length)})}parseInterpolation(t,e,s,i,n=Q){let{strings:a,expressions:o,offsets:p}=this.splitInterpolation(t,e,i,n);if(o.length===0)return null;let u=[];for(let f=0;f<o.length;++f){let S=o[f].text,g=this._stripComments(S),y=this._lexer.tokenize(g),w=new z(t,e,s,y,0,this.errors,p[f]).parseChain();u.push(w)}return this.createInterpolationAst(a.map(f=>f.text),u,t,e,s)}parseInterpolationExpression(t,e,s){let i=this._stripComments(t),n=this._lexer.tokenize(i),a=new z(t,e,s,n,0,this.errors,0).parseChain(),o=["",""];return this.createInterpolationAst(o,[a],t,e,s)}createInterpolationAst(t,e,s,i,n){let a=new b(0,s.length),o=new ot(a,a.toAbsolute(n),t,e);return new R(o,s,i,n,this.errors)}splitInterpolation(t,e,s,i=Q){let n=[],a=[],o=[],p=s?Vs(s):null,u=0,f=!1,S=!1,{start:g,end:y}=i;for(;u<t.length;)if(f){let w=u,H=w+g.length,j=this._getInterpolationEndIndex(t,y,H);if(j===-1){f=!1,S=!0;break}let T=j+y.length,Nt=t.substring(H,j);Nt.trim().length===0&&this._reportError("Blank expressions are not allowed in interpolated strings",t,`at column ${u} in`,e),a.push({text:Nt,start:w,end:T});let Ze=((p==null?void 0:p.get(w))??w)+g.length;o.push(Ze),u=T,f=!1}else{let w=u;u=t.indexOf(g,u),u===-1&&(u=t.length);let H=t.substring(w,u);n.push({text:H,start:w,end:u}),f=!0}if(!f)if(S){let w=n[n.length-1];w.text+=t.substring(u),w.end=t.length}else n.push({text:t.substring(u),start:u,end:t.length});return new qt(n,a,o)}wrapLiteralPrimitive(t,e,s){let i=new b(0,t==null?0:t.length);return new R(new E(i,i.toAbsolute(s),t),t,e,s,this.errors)}_stripComments(t){let e=this._commentStart(t);return e!=null?t.substring(0,e):t}_commentStart(t){let e=null;for(let s=0;s<t.length-1;s++){let i=t.charCodeAt(s),n=t.charCodeAt(s+1);if(i===47&&n==47&&e==null)return s;e===i?e=null:e==null&&Dt(i)&&(e=i)}return null}_checkNoInterpolation(t,e,{start:s,end:i}){let n=-1,a=-1;for(let o of this._forEachUnquotedChar(t,0))if(n===-1)t.startsWith(s)&&(n=o);else if(a=this._getInterpolationEndIndex(t,i,o),a>-1)break;n>-1&&a>-1&&this._reportError(`Got interpolation (${s}${i}) where expression was expected`,t,`at column ${n} in`,e)}_getInterpolationEndIndex(t,e,s){for(let i of this._forEachUnquotedChar(t,s)){if(t.startsWith(e,i))return i;if(t.startsWith("//",i))return t.indexOf(e,i)}return-1}*_forEachUnquotedChar(t,e){let s=null,i=0;for(let n=e;n<t.length;n++){let a=t[n];Dt(t.charCodeAt(n))&&(s===null||s===a)&&i%2===0?s=s===null?a:null:s===null&&(yield n),i=a==="\\"?i+1:0}}},gt;(function(r){r[r.None=0]="None",r[r.Writable=1]="Writable"})(gt||(gt={}));var z=class{constructor(t,e,s,i,n,a,o){this.input=t,this.location=e,this.absoluteOffset=s,this.tokens=i,this.parseFlags=n,this.errors=a,this.offset=o,this.rparensExpected=0,this.rbracketsExpected=0,this.rbracesExpected=0,this.context=gt.None,this.sourceSpanCache=new Map,this.index=0}peek(t){let e=this.index+t;return e<this.tokens.length?this.tokens[e]:Bt}get next(){return this.peek(0)}get atEOF(){return this.index>=this.tokens.length}get inputIndex(){return this.atEOF?this.currentEndIndex:this.next.index+this.offset}get currentEndIndex(){return this.index>0?this.peek(-1).end+this.offset:this.tokens.length===0?this.input.length+this.offset:this.next.index+this.offset}get currentAbsoluteOffset(){return this.absoluteOffset+this.inputIndex}span(t,e){let s=this.currentEndIndex;if(e!==void 0&&e>this.currentEndIndex&&(s=e),t>s){let i=s;s=t,t=i}return new b(t,s)}sourceSpan(t,e){let s=`${t}@${this.inputIndex}:${e}`;return this.sourceSpanCache.has(s)||this.sourceSpanCache.set(s,this.span(t,e).toAbsolute(this.absoluteOffset)),this.sourceSpanCache.get(s)}advance(){this.index++}withContext(t,e){this.context|=t;let s=e();return this.context^=t,s}consumeOptionalCharacter(t){return this.next.isCharacter(t)?(this.advance(),!0):!1}peekKeywordLet(){return this.next.isKeywordLet()}peekKeywordAs(){return this.next.isKeywordAs()}expectCharacter(t){this.consumeOptionalCharacter(t)||this.error(`Missing expected ${String.fromCharCode(t)}`)}consumeOptionalOperator(t){return this.next.isOperator(t)?(this.advance(),!0):!1}expectOperator(t){this.consumeOptionalOperator(t)||this.error(`Missing expected operator ${t}`)}prettyPrintToken(t){return t===Bt?"end of input":`token ${t}`}expectIdentifierOrKeyword(){let t=this.next;return!t.isIdentifier()&&!t.isKeyword()?(t.isPrivateIdentifier()?this._reportErrorForPrivateIdentifier(t,"expected identifier or keyword"):this.error(`Unexpected ${this.prettyPrintToken(t)}, expected identifier or keyword`),null):(this.advance(),t.toString())}expectIdentifierOrKeywordOrString(){let t=this.next;return!t.isIdentifier()&&!t.isKeyword()&&!t.isString()?(t.isPrivateIdentifier()?this._reportErrorForPrivateIdentifier(t,"expected identifier, keyword or string"):this.error(`Unexpected ${this.prettyPrintToken(t)}, expected identifier, keyword, or string`),""):(this.advance(),t.toString())}parseChain(){let t=[],e=this.inputIndex;for(;this.index<this.tokens.length;){let s=this.parsePipe();if(t.push(s),this.consumeOptionalCharacter(59))for(this.parseFlags&1||this.error("Binding expression cannot contain chained expression");this.consumeOptionalCharacter(59););else if(this.index<this.tokens.length){let i=this.index;if(this.error(`Unexpected token '${this.next}'`),this.index===i)break}}if(t.length===0){let s=this.offset,i=this.offset+this.input.length;return new $(this.span(s,i),this.sourceSpan(s,i))}return t.length==1?t[0]:new X(this.span(e),this.sourceSpan(e),t)}parsePipe(){let t=this.inputIndex,e=this.parseExpression();if(this.consumeOptionalOperator("|")){this.parseFlags&1&&this.error("Cannot have a pipe in an action expression");do{let s=this.inputIndex,i=this.expectIdentifierOrKeyword(),n,a;i!==null?n=this.sourceSpan(s):(i="",a=this.next.index!==-1?this.next.index:this.input.length+this.offset,n=new b(a,a).toAbsolute(this.absoluteOffset));let o=[];for(;this.consumeOptionalCharacter(58);)o.push(this.parseExpression());e=new it(this.span(t),this.sourceSpan(t,a),e,i,o,n)}while(this.consumeOptionalOperator("|"))}return e}parseExpression(){return this.parseConditional()}parseConditional(){let t=this.inputIndex,e=this.parseLogicalOr();if(this.consumeOptionalOperator("?")){let s=this.parsePipe(),i;if(this.consumeOptionalCharacter(58))i=this.parsePipe();else{let n=this.inputIndex,a=this.input.substring(t,n);this.error(`Conditional expression ${a} requires all 3 expressions`),i=new $(this.span(t),this.sourceSpan(t))}return new tt(this.span(t),this.sourceSpan(t),e,s,i)}else return e}parseLogicalOr(){let t=this.inputIndex,e=this.parseLogicalAnd();for(;this.consumeOptionalOperator("||");){let s=this.parseLogicalAnd();e=new A(this.span(t),this.sourceSpan(t),"||",e,s)}return e}parseLogicalAnd(){let t=this.inputIndex,e=this.parseNullishCoalescing();for(;this.consumeOptionalOperator("&&");){let s=this.parseNullishCoalescing();e=new A(this.span(t),this.sourceSpan(t),"&&",e,s)}return e}parseNullishCoalescing(){let t=this.inputIndex,e=this.parseEquality();for(;this.consumeOptionalOperator("??");){let s=this.parseEquality();e=new A(this.span(t),this.sourceSpan(t),"??",e,s)}return e}parseEquality(){let t=this.inputIndex,e=this.parseRelational();for(;this.next.type==l.Operator;){let s=this.next.strValue;switch(s){case"==":case"===":case"!=":case"!==":this.advance();let i=this.parseRelational();e=new A(this.span(t),this.sourceSpan(t),s,e,i);continue}break}return e}parseRelational(){let t=this.inputIndex,e=this.parseAdditive();for(;this.next.type==l.Operator;){let s=this.next.strValue;switch(s){case"<":case">":case"<=":case">=":this.advance();let i=this.parseAdditive();e=new A(this.span(t),this.sourceSpan(t),s,e,i);continue}break}return e}parseAdditive(){let t=this.inputIndex,e=this.parseMultiplicative();for(;this.next.type==l.Operator;){let s=this.next.strValue;switch(s){case"+":case"-":this.advance();let i=this.parseMultiplicative();e=new A(this.span(t),this.sourceSpan(t),s,e,i);continue}break}return e}parseMultiplicative(){let t=this.inputIndex,e=this.parsePrefix();for(;this.next.type==l.Operator;){let s=this.next.strValue;switch(s){case"*":case"%":case"/":this.advance();let i=this.parsePrefix();e=new A(this.span(t),this.sourceSpan(t),s,e,i);continue}break}return e}parsePrefix(){if(this.next.type==l.Operator){let t=this.inputIndex,e=this.next.strValue,s;switch(e){case"+":return this.advance(),s=this.parsePrefix(),F.createPlus(this.span(t),this.sourceSpan(t),s);case"-":return this.advance(),s=this.parsePrefix(),F.createMinus(this.span(t),this.sourceSpan(t),s);case"!":return this.advance(),s=this.parsePrefix(),new ct(this.span(t),this.sourceSpan(t),s)}}return this.parseCallChain()}parseCallChain(){let t=this.inputIndex,e=this.parsePrimary();for(;;)if(this.consumeOptionalCharacter(46))e=this.parseAccessMember(e,t,!1);else if(this.consumeOptionalOperator("?."))this.consumeOptionalCharacter(40)?e=this.parseCall(e,t,!0):e=this.consumeOptionalCharacter(91)?this.parseKeyedReadOrWrite(e,t,!0):this.parseAccessMember(e,t,!0);else if(this.consumeOptionalCharacter(91))e=this.parseKeyedReadOrWrite(e,t,!1);else if(this.consumeOptionalCharacter(40))e=this.parseCall(e,t,!1);else if(this.consumeOptionalOperator("!"))e=new ht(this.span(t),this.sourceSpan(t),e);else return e}parsePrimary(){let t=this.inputIndex;if(this.consumeOptionalCharacter(40)){this.rparensExpected++;let e=this.parsePipe();return this.rparensExpected--,this.expectCharacter(41),e}else{if(this.next.isKeywordNull())return this.advance(),new E(this.span(t),this.sourceSpan(t),null);if(this.next.isKeywordUndefined())return this.advance(),new E(this.span(t),this.sourceSpan(t),void 0);if(this.next.isKeywordTrue())return this.advance(),new E(this.span(t),this.sourceSpan(t),!0);if(this.next.isKeywordFalse())return this.advance(),new E(this.span(t),this.sourceSpan(t),!1);if(this.next.isKeywordThis())return this.advance(),new Lt(this.span(t),this.sourceSpan(t));if(this.consumeOptionalCharacter(91)){this.rbracketsExpected++;let e=this.parseExpressionList(93);return this.rbracketsExpected--,this.expectCharacter(93),new nt(this.span(t),this.sourceSpan(t),e)}else{if(this.next.isCharacter(123))return this.parseLiteralMap();if(this.next.isIdentifier())return this.parseAccessMember(new K(this.span(t),this.sourceSpan(t)),t,!1);if(this.next.isNumber()){let e=this.next.toNumber();return this.advance(),new E(this.span(t),this.sourceSpan(t),e)}else if(this.next.isString()){let e=this.next.toString();return this.advance(),new E(this.span(t),this.sourceSpan(t),e)}else return this.next.isPrivateIdentifier()?(this._reportErrorForPrivateIdentifier(this.next,null),new $(this.span(t),this.sourceSpan(t))):this.index>=this.tokens.length?(this.error(`Unexpected end of expression: ${this.input}`),new $(this.span(t),this.sourceSpan(t))):(this.error(`Unexpected token ${this.next}`),new $(this.span(t),this.sourceSpan(t)))}}}parseExpressionList(t){let e=[];do if(!this.next.isCharacter(t))e.push(this.parsePipe());else break;while(this.consumeOptionalCharacter(44));return e}parseLiteralMap(){let t=[],e=[],s=this.inputIndex;if(this.expectCharacter(123),!this.consumeOptionalCharacter(125)){this.rbracesExpected++;do{let i=this.inputIndex,n=this.next.isString(),a=this.expectIdentifierOrKeywordOrString();if(t.push({key:a,quoted:n}),n)this.expectCharacter(58),e.push(this.parsePipe());else if(this.consumeOptionalCharacter(58))e.push(this.parsePipe());else{let o=this.span(i),p=this.sourceSpan(i);e.push(new M(o,p,p,new K(o,p),a))}}while(this.consumeOptionalCharacter(44)&&!this.next.isCharacter(125));this.rbracesExpected--,this.expectCharacter(125)}return new at(this.span(s),this.sourceSpan(s),t,e)}parseAccessMember(t,e,s){let i=this.inputIndex,n=this.withContext(gt.Writable,()=>{let p=this.expectIdentifierOrKeyword()??"";return p.length===0&&this.error("Expected identifier for property access",t.span.end),p}),a=this.sourceSpan(i),o;if(s)this.consumeOptionalOperator("=")?(this.error("The '?.' operator cannot be used in the assignment"),o=new $(this.span(e),this.sourceSpan(e))):o=new _(this.span(e),this.sourceSpan(e),a,t,n);else if(this.consumeOptionalOperator("=")){if(!(this.parseFlags&1))return this.error("Bindings cannot contain assignments"),new $(this.span(e),this.sourceSpan(e));let p=this.parseConditional();o=new et(this.span(e),this.sourceSpan(e),a,t,n,p)}else o=new M(this.span(e),this.sourceSpan(e),a,t,n);return o}parseCall(t,e,s){let i=this.inputIndex;this.rparensExpected++;let n=this.parseCallArguments(),a=this.span(i,this.inputIndex).toAbsolute(this.absoluteOffset);this.expectCharacter(41),this.rparensExpected--;let o=this.span(e),p=this.sourceSpan(e);return s?new D(o,p,t,n,a):new pt(o,p,t,n,a)}parseCallArguments(){if(this.next.isCharacter(41))return[];let t=[];do t.push(this.parsePipe());while(this.consumeOptionalCharacter(44));return t}expectTemplateBindingKey(){let t="",e=!1,s=this.currentAbsoluteOffset;do t+=this.expectIdentifierOrKeywordOrString(),e=this.consumeOptionalOperator("-"),e&&(t+="-");while(e);return{source:t,span:new L(s,s+t.length)}}parseTemplateBindings(t){let e=[];for(e.push(...this.parseDirectiveKeywordBindings(t));this.index<this.tokens.length;){let s=this.parseLetBinding();if(s)e.push(s);else{let i=this.expectTemplateBindingKey(),n=this.parseAsBinding(i);n?e.push(n):(i.source=t.source+i.source.charAt(0).toUpperCase()+i.source.substring(1),e.push(...this.parseDirectiveKeywordBindings(i)))}this.consumeStatementTerminator()}return new Ht(e,[],this.errors)}parseKeyedReadOrWrite(t,e,s){return this.withContext(gt.Writable,()=>{this.rbracketsExpected++;let i=this.parsePipe();if(i instanceof $&&this.error("Key access cannot be empty"),this.rbracketsExpected--,this.expectCharacter(93),this.consumeOptionalOperator("="))if(s)this.error("The '?.' operator cannot be used in the assignment");else{let n=this.parseConditional();return new rt(this.span(e),this.sourceSpan(e),t,i,n)}else return s?new U(this.span(e),this.sourceSpan(e),t,i):new st(this.span(e),this.sourceSpan(e),t,i);return new $(this.span(e),this.sourceSpan(e))})}parseDirectiveKeywordBindings(t){let e=[];this.consumeOptionalCharacter(58);let s=this.getDirectiveBoundTarget(),i=this.currentAbsoluteOffset,n=this.parseAsBinding(t);n||(this.consumeStatementTerminator(),i=this.currentAbsoluteOffset);let a=new L(t.span.start,i);return e.push(new ut(a,t,s)),n&&e.push(n),e}getDirectiveBoundTarget(){if(this.next===Bt||this.peekKeywordAs()||this.peekKeywordLet())return null;let t=this.parsePipe(),{start:e,end:s}=t.span,i=this.input.substring(e,s);return new R(t,i,this.location,this.absoluteOffset+e,this.errors)}parseAsBinding(t){if(!this.peekKeywordAs())return null;this.advance();let e=this.expectTemplateBindingKey();this.consumeStatementTerminator();let s=new L(t.span.start,this.currentAbsoluteOffset);return new W(s,e,t)}parseLetBinding(){if(!this.peekKeywordLet())return null;let t=this.currentAbsoluteOffset;this.advance();let e=this.expectTemplateBindingKey(),s=null;this.consumeOptionalOperator("=")&&(s=this.expectTemplateBindingKey()),this.consumeStatementTerminator();let i=new L(t,this.currentAbsoluteOffset);return new W(i,e,s)}consumeStatementTerminator(){this.consumeOptionalCharacter(59)||this.consumeOptionalCharacter(44)}error(t,e=null){this.errors.push(new Z(t,this.input,this.locationText(e),this.location)),this.skip()}locationText(t=null){return t==null&&(t=this.index),t<this.tokens.length?`at column ${this.tokens[t].index+1} in`:"at the end of the expression"}_reportErrorForPrivateIdentifier(t,e){let s=`Private identifiers are not supported. Unexpected private identifier: ${t}`;e!==null&&(s+=`, ${e}`),this.error(s)}skip(){let t=this.next;for(;this.index<this.tokens.length&&!t.isCharacter(59)&&!t.isOperator("|")&&(this.rparensExpected<=0||!t.isCharacter(41))&&(this.rbracesExpected<=0||!t.isCharacter(125))&&(this.rbracketsExpected<=0||!t.isCharacter(93))&&(!(this.context&gt.Writable)||!t.isOperator("="));)this.next.isError()&&this.errors.push(new Z(this.next.toString(),this.input,this.locationText(),this.location)),this.advance(),t=this.next}},jt=class extends Rt{constructor(){super(...arguments),this.errors=[]}visitPipe(){this.errors.push("pipes")}};function Vs(r){let t=new Map,e=0,s=0,i=0;for(;i<r.length;){let n=r[i];if(n.type===9){let[a,o]=n.parts;e+=o.length,s+=a.length}else{let a=n.parts.reduce((o,p)=>o+p.length,0);s+=a,e+=a}t.set(s,e),i++}return t}function Ce({start:r,end:t},e){let s=r,i=t;for(;i!==s&&/\s/.test(e[i-1]);)i--;for(;s!==i&&/\s/.test(e[s]);)s++;return{start:s,end:i}}function zs({start:r,end:t},e){let s=r,i=t;for(;i!==e.length&&/\s/.test(e[i]);)i++;for(;s!==0&&/\s/.test(e[s-1]);)s--;return{start:s,end:i}}function qs(r,t){return t[r.start-1]==="("&&t[r.end]===")"?{start:r.start-1,end:r.end+1}:r}function Ae(r,t,e){let s=0,i={start:r.start,end:r.end};for(;;){let n=zs(i,t),a=qs(n,t);if(n.start===a.start&&n.end===a.end)break;i.start=a.start,i.end=a.end,s++}return{hasParens:(e?s-1:s)!==0,outerSpan:Ce(e?{start:i.start+1,end:i.end-1}:i,t),innerSpan:Ce(r,t)}}function Oe(r){return typeof r=="string"?t=>t===r:t=>r.test(t)}function Ie(r,t,e){let s=Oe(t);for(let i=e;i>=0;i--){let n=r[i];if(s(n))return i}throw new Error(`Cannot find front char ${t} from index ${e} in ${JSON.stringify(r)}`)}function ke(r,t,e){let s=Oe(t);for(let i=e;i<r.length;i++){let n=r[i];if(s(n))return i}throw new Error(`Cannot find character ${t} from index ${e} in ${JSON.stringify(r)}`)}function Ne(r){return r.slice(0,1).toLowerCase()+r.slice(1)}function Ct(r){let{start:t,end:e}=r;return{start:t,end:e,range:[t,e]}}var Hs=r=>mt.prototype._commentStart(r);function js(r,t){let e=t?Hs(r):null;if(e===null)return{text:r,comments:[]};let s={type:"CommentLine",value:r.slice(e+2),...Ct({start:e,end:r.length})};return{text:r.slice(0,e),comments:[s]}}function At(r,t=!0){return e=>{let s=new yt,i=new mt(s),{text:n,comments:a}=js(e,t),o=r(n,i);if(o.errors.length!==0){let[{message:p}]=o.errors;throw new SyntaxError(p.replace(/^Parser Error: | at column \d+ in [^]*$/g,""))}return{result:o,comments:a,text:n}}}var Le=At((r,t)=>t.parseBinding(r,"",0)),Ys=At((r,t)=>t.parseSimpleBinding(r,"",0)),Re=At((r,t)=>t.parseAction(r,"",0)),Pe=At((r,t)=>t.parseInterpolationExpression(r,"",0)),be=At((r,t)=>t.parseTemplateBindings("",r,"",0,0),!1);var Js=(r,t,e)=>{if(!(r&&t==null))return Array.isArray(t)||typeof t=="string"?t[e<0?t.length+e:e]:t.at(e)},Tt=Js;var Yt=class{text;constructor(t){this.text=t}getCharacterIndex(t,e){return ke(this.text,t,e)}getCharacterLastIndex(t,e){return Ie(this.text,t,e)}transformSpan(t,{stripSpaces:e=!1,hasParentParens:s=!1}={}){if(!e)return Ct(t);let{outerSpan:i,innerSpan:n,hasParens:a}=Ae(t,this.text,s),o=Ct(n);return a&&(o.extra={parenthesized:!0,parenStart:i.start,parenEnd:i.end}),o}createNode(t,{stripSpaces:e=!0,hasParentParens:s=!1}={}){let{type:i,start:n,end:a}=t,o={...t,...this.transformSpan({start:n,end:a},{stripSpaces:e,hasParentParens:s})};switch(i){case"NumericLiteral":case"StringLiteral":{let p=this.text.slice(o.start,o.end),{value:u}=o;o.extra={...o.extra,raw:p,rawValue:u};break}case"ObjectProperty":{let{shorthand:p}=o;p&&(o.extra={...o.extra,shorthand:p});break}}return o}},Ke=Yt;function Jt(r){var t;return!!((t=r.extra)!=null&&t.parenthesized)}function k(r){return Jt(r)?r.extra.parenStart:r.start}function N(r){return Jt(r)?r.extra.parenEnd:r.end}function Be(r){return(r.type==="OptionalCallExpression"||r.type==="OptionalMemberExpression")&&!Jt(r)}function Te(r,t){let{start:e,end:s}=r.sourceSpan;return e>=s||/^\s+$/.test(t.slice(e,s))}var kt,St,h,d,Ot,v,Zt,It=class extends Ke{constructor(e,s){super(s);P(this,h);P(this,kt);P(this,St);Y(this,kt,e),Y(this,St,s)}get node(){return c(this,h,v).call(this,O(this,kt))}transformNode(e){return c(this,h,Zt).call(this,e)}};kt=new WeakMap,St=new WeakMap,h=new WeakSet,d=function(e,{stripSpaces:s=!0,hasParentParens:i=!1}={}){return this.createNode(e,{stripSpaces:s,hasParentParens:i})},Ot=function(e,s,{computed:i,optional:n,end:a=N(s),hasParentParens:o=!1}){if(Te(e,O(this,St))||e.sourceSpan.start===s.start)return s;let p=c(this,h,v).call(this,e),u=Be(p);return c(this,h,d).call(this,{type:n||u?"OptionalMemberExpression":"MemberExpression",object:p,property:s,computed:i,...n?{optional:!0}:u?{optional:!1}:void 0,start:k(p),end:a},{hasParentParens:o})},v=function(e,s=!1){return c(this,h,Zt).call(this,e,s)},Zt=function(e,s=!1){if(e instanceof ot){let{expressions:i}=e;if(i.length!==1)throw new Error("Unexpected 'Interpolation'");return c(this,h,v).call(this,i[0])}if(e instanceof F)return c(this,h,d).call(this,{type:"UnaryExpression",prefix:!0,argument:c(this,h,v).call(this,e.expr),operator:e.operator,...e.sourceSpan},{hasParentParens:s});if(e instanceof A){let{left:i,operation:n,right:a}=e,o=c(this,h,v).call(this,i),p=c(this,h,v).call(this,a),u=k(o),f=N(p),S={left:o,right:p,start:u,end:f};return n==="&&"||n==="||"||n==="??"?c(this,h,d).call(this,{...S,type:"LogicalExpression",operator:n},{hasParentParens:s}):c(this,h,d).call(this,{...S,type:"BinaryExpression",operator:n},{hasParentParens:s})}if(e instanceof it){let{exp:i,name:n,args:a}=e,o=c(this,h,v).call(this,i),p=k(o),u=N(o),f=this.getCharacterIndex(/\S/,this.getCharacterIndex("|",u)+1),S=c(this,h,d).call(this,{type:"Identifier",name:n,start:f,end:f+n.length}),g=a.map(y=>c(this,h,v).call(this,y));return c(this,h,d).call(this,{type:"NGPipeExpression",left:o,right:S,arguments:g,start:p,end:N(g.length===0?S:Tt(!1,g,-1))},{hasParentParens:s})}if(e instanceof X)return c(this,h,d).call(this,{type:"NGChainedExpression",expressions:e.expressions.map(i=>c(this,h,v).call(this,i)),...e.sourceSpan},{hasParentParens:s});if(e instanceof tt){let{condition:i,trueExp:n,falseExp:a}=e,o=c(this,h,v).call(this,i),p=c(this,h,v).call(this,n),u=c(this,h,v).call(this,a);return c(this,h,d).call(this,{type:"ConditionalExpression",test:o,consequent:p,alternate:u,start:k(o),end:N(u)},{hasParentParens:s})}if(e instanceof $)return c(this,h,d).call(this,{type:"NGEmptyExpression",...e.sourceSpan},{hasParentParens:s});if(e instanceof K)return c(this,h,d).call(this,{type:"ThisExpression",...e.sourceSpan},{hasParentParens:s});if(e instanceof st||e instanceof U)return c(this,h,Ot).call(this,e.receiver,c(this,h,v).call(this,e.key),{computed:!0,optional:e instanceof U,end:e.sourceSpan.end,hasParentParens:s});if(e instanceof nt)return c(this,h,d).call(this,{type:"ArrayExpression",elements:e.expressions.map(i=>c(this,h,v).call(this,i)),...e.sourceSpan},{hasParentParens:s});if(e instanceof at){let{keys:i,values:n}=e,a=n.map(p=>c(this,h,v).call(this,p)),o=i.map(({key:p,quoted:u},f)=>{let S=a[f],g=k(S),y=N(S),w=this.getCharacterIndex(/\S/,f===0?e.sourceSpan.start+1:this.getCharacterIndex(",",N(a[f-1]))+1),H=g===w?y:this.getCharacterLastIndex(/\S/,this.getCharacterLastIndex(":",g-1)-1)+1,j={start:w,end:H},T=u?c(this,h,d).call(this,{type:"StringLiteral",value:p,...j}):c(this,h,d).call(this,{type:"Identifier",name:p,...j}),Nt=T.end<T.start||w===g;return c(this,h,d).call(this,{type:"ObjectProperty",key:T,value:S,shorthand:Nt,computed:!1,start:k(T),end:y})});return c(this,h,d).call(this,{type:"ObjectExpression",properties:o,...e.sourceSpan},{hasParentParens:s})}if(e instanceof E){let{value:i}=e;switch(typeof i){case"boolean":return c(this,h,d).call(this,{type:"BooleanLiteral",value:i,...e.sourceSpan},{hasParentParens:s});case"number":return c(this,h,d).call(this,{type:"NumericLiteral",value:i,...e.sourceSpan},{hasParentParens:s});case"object":return c(this,h,d).call(this,{type:"NullLiteral",...e.sourceSpan},{hasParentParens:s});case"string":return c(this,h,d).call(this,{type:"StringLiteral",value:i,...e.sourceSpan},{hasParentParens:s});case"undefined":return c(this,h,d).call(this,{type:"Identifier",name:"undefined",...e.sourceSpan},{hasParentParens:s});default:throw new Error(`Unexpected LiteralPrimitive value type ${typeof i}`)}}if(e instanceof pt||e instanceof D){let i=e instanceof D,{receiver:n,args:a}=e,o=a.length===1?[c(this,h,v).call(this,a[0],!0)]:a.map(S=>c(this,h,v).call(this,S)),p=c(this,h,v).call(this,n),u=Be(p),f=i||u?"OptionalCallExpression":"CallExpression";return c(this,h,d).call(this,{type:f,callee:p,arguments:o,optional:f==="OptionalCallExpression"?i:void 0,start:k(p),end:e.sourceSpan.end},{hasParentParens:s})}if(e instanceof ht){let i=c(this,h,v).call(this,e.expression);return c(this,h,d).call(this,{type:"TSNonNullExpression",expression:i,start:k(i),end:e.sourceSpan.end},{hasParentParens:s})}if(e instanceof ct){let i=c(this,h,v).call(this,e.expression);return c(this,h,d).call(this,{type:"UnaryExpression",prefix:!0,operator:"!",argument:i,start:e.sourceSpan.start,end:N(i)},{hasParentParens:s})}if(e instanceof M||e instanceof _){let{receiver:i,name:n}=e,a=this.getCharacterLastIndex(/\S/,e.sourceSpan.end-1)+1,o=c(this,h,d).call(this,{type:"Identifier",name:n,start:a-n.length,end:a},Te(i,O(this,St))?{hasParentParens:s}:{});return c(this,h,Ot).call(this,i,o,{computed:!1,optional:e instanceof _,hasParentParens:s})}if(e instanceof rt){let i=c(this,h,v).call(this,e.key),n=c(this,h,v).call(this,e.value),a=c(this,h,Ot).call(this,e.receiver,i,{computed:!0,optional:!1,end:this.getCharacterIndex("]",N(i))+1});return c(this,h,d).call(this,{type:"AssignmentExpression",left:a,operator:"=",right:n,start:k(a),end:N(n)},{hasParentParens:s})}if(e instanceof et){let{receiver:i,name:n,value:a}=e,o=c(this,h,v).call(this,a),p=this.getCharacterLastIndex(/\S/,this.getCharacterLastIndex("=",k(o)-1)-1)+1,u=c(this,h,d).call(this,{type:"Identifier",name:n,start:p-n.length,end:p}),f=c(this,h,Ot).call(this,i,u,{computed:!1,optional:!1});return c(this,h,d).call(this,{type:"AssignmentExpression",left:f,operator:"=",right:o,start:k(f),end:N(o)},{hasParentParens:s})}throw Object.assign(new Error("Unexpected node"),{node:e})};function Me(r,t){return new It(r,t).node}function _e(r){return r instanceof ut}function Ue(r){return r instanceof W}var wt,q,x,Fe,C,te,ee,se,De,We,Ge,Ve,Xt=class extends It{constructor(e,s){super(void 0,s);P(this,x);P(this,wt);P(this,q);Y(this,wt,e),Y(this,q,s);for(let i of e)c(this,x,De).call(this,i)}get expressions(){return c(this,x,Ge).call(this)}};wt=new WeakMap,q=new WeakMap,x=new WeakSet,Fe=function(){return O(this,wt)[0].key},C=function(e,{stripSpaces:s=!0}={}){return this.createNode(e,{stripSpaces:s})},te=function(e){return this.transformNode(e)},ee=function(e){return Ne(e.slice(O(this,x,Fe).source.length))},se=function(e){let s=O(this,q);if(s[e.start]!=='"'&&s[e.start]!=="'")return;let i=s[e.start],n=!1;for(let a=e.start+1;a<s.length;a++)switch(s[a]){case i:if(!n){e.end=a+1;return}default:n=!1;break;case"\\":n=!n;break}},De=function(e){c(this,x,se).call(this,e.key.span),Ue(e)&&e.value&&c(this,x,se).call(this,e.value.span)},We=function(e){if(!e.value||e.value.source)return e.value;let s=this.getCharacterIndex(/\S/,e.sourceSpan.start);return{source:"$implicit",span:{start:s,end:s}}},Ge=function(){let e=O(this,wt),[s]=e,i=O(this,q).slice(s.sourceSpan.start,s.sourceSpan.end).trim().length===0?e.slice(1):e,n=[],a=null;for(let[o,p]of i.entries()){if(a&&_e(a)&&Ue(p)&&p.value&&p.value.source===a.key.source){let u=c(this,x,C).call(this,{type:"NGMicrosyntaxKey",name:p.key.source,...p.key.span}),f=(y,w)=>({...y,...this.transformSpan({start:y.start,end:w})}),S=y=>({...f(y,u.end),alias:u}),g=n.pop();if(g.type==="NGMicrosyntaxExpression")n.push(S(g));else if(g.type==="NGMicrosyntaxKeyedExpression"){let y=S(g.expression);n.push(f({...g,expression:y},y.end))}else throw new Error(`Unexpected type ${g.type}`)}else n.push(c(this,x,Ve).call(this,p,o));a=p}return c(this,x,C).call(this,{type:"NGMicrosyntax",body:n,...n.length===0?e[0].sourceSpan:{start:n[0].start,end:Tt(!1,n,-1).end}})},Ve=function(e,s){if(_e(e)){let{key:i,value:n}=e;return n?s===0?c(this,x,C).call(this,{type:"NGMicrosyntaxExpression",expression:c(this,x,te).call(this,n.ast),alias:null,...n.sourceSpan}):c(this,x,C).call(this,{type:"NGMicrosyntaxKeyedExpression",key:c(this,x,C).call(this,{type:"NGMicrosyntaxKey",name:c(this,x,ee).call(this,i.source),...i.span}),expression:c(this,x,C).call(this,{type:"NGMicrosyntaxExpression",expression:c(this,x,te).call(this,n.ast),alias:null,...n.sourceSpan}),start:i.span.start,end:n.sourceSpan.end}):c(this,x,C).call(this,{type:"NGMicrosyntaxKey",name:c(this,x,ee).call(this,i.source),...i.span})}else{let{key:i,sourceSpan:n}=e;if(/^let\s$/.test(O(this,q).slice(n.start,n.start+4))){let{value:o}=e;return c(this,x,C).call(this,{type:"NGMicrosyntaxLet",key:c(this,x,C).call(this,{type:"NGMicrosyntaxKey",name:i.source,...i.span}),value:o?c(this,x,C).call(this,{type:"NGMicrosyntaxKey",name:o.source,...o.span}):null,start:n.start,end:o?o.span.end:i.span.end})}else{let o=c(this,x,We).call(this,e);return c(this,x,C).call(this,{type:"NGMicrosyntaxAs",key:c(this,x,C).call(this,{type:"NGMicrosyntaxKey",name:o.source,...o.span}),alias:c(this,x,C).call(this,{type:"NGMicrosyntaxKey",name:i.source,...i.span}),start:o.span.start,end:i.span.end})}}};function Qe(r,t){return new Xt(r,t).expressions}function Mt({result:{ast:r},text:t,comments:e}){return Object.assign(Me(r,t),{comments:e})}function ze({result:{templateBindings:r},text:t}){return Qe(r,t)}var qe=r=>Mt(Le(r));var He=r=>Mt(Pe(r)),re=r=>Mt(Re(r)),je=r=>ze(be(r));function ie(r){var s,i,n;let t=((s=r.range)==null?void 0:s[0])??r.start,e=(n=((i=r.declaration)==null?void 0:i.decorators)??r.decorators)==null?void 0:n[0];return e?Math.min(ie(e),t):t}function Ye(r){var t;return((t=r.range)==null?void 0:t[1])??r.end}function _t(r){return{astFormat:"estree",parse(t){let e=r(t);return{type:"NGRoot",node:r===re&&e.type!=="NGChainedExpression"?{...e,type:"NGChainedExpression",expressions:[e]}:e}},locStart:ie,locEnd:Ye}}var Xs=_t(re),tr=_t(qe),er=_t(He),sr=_t(je);return ss(rr);});
@@ -1 +1 @@
1
- var Rt=Object.defineProperty;var ze=(r,e)=>{for(var t in e)Rt(r,t,{get:e[t],enumerable:!0})};var Qe={};ze(Qe,{parsers:()=>Ve});var Ve={};ze(Ve,{__ng_action:()=>Cr,__ng_binding:()=>Ar,__ng_directive:()=>Nr,__ng_interpolation:()=>Or});var G=class{constructor(e,t,s,n){this.input=t,this.errLocation=s,this.ctxLocation=n,this.message=`Parser Error: ${e} ${s} [${t}] in ${n}`}},P=class{constructor(e,t){this.start=e,this.end=t}toAbsolute(e){return new I(e+this.start,e+this.end)}},w=class{constructor(e,t){this.span=e,this.sourceSpan=t}toString(){return"AST"}},W=class extends w{constructor(e,t,s){super(e,t),this.nameSpan=s}},$=class extends w{visit(e,t=null){}},L=class extends w{visit(e,t=null){return e.visitImplicitReceiver(this,t)}},Se=class extends L{visit(e,t=null){var s;return(s=e.visitThisReceiver)==null?void 0:s.call(e,this,t)}},V=class extends w{constructor(e,t,s){super(e,t),this.expressions=s}visit(e,t=null){return e.visitChain(this,t)}},Q=class extends w{constructor(e,t,s,n,i){super(e,t),this.condition=s,this.trueExp=n,this.falseExp=i}visit(e,t=null){return e.visitConditional(this,t)}},b=class extends W{constructor(e,t,s,n,i){super(e,t,s),this.receiver=n,this.name=i}visit(e,t=null){return e.visitPropertyRead(this,t)}},H=class extends W{constructor(e,t,s,n,i,a){super(e,t,s),this.receiver=n,this.name=i,this.value=a}visit(e,t=null){return e.visitPropertyWrite(this,t)}},z=class extends W{constructor(e,t,s,n,i){super(e,t,s),this.receiver=n,this.name=i}visit(e,t=null){return e.visitSafePropertyRead(this,t)}},q=class extends w{constructor(e,t,s,n){super(e,t),this.receiver=s,this.key=n}visit(e,t=null){return e.visitKeyedRead(this,t)}},j=class extends w{constructor(e,t,s,n){super(e,t),this.receiver=s,this.key=n}visit(e,t=null){return e.visitSafeKeyedRead(this,t)}},X=class extends w{constructor(e,t,s,n,i){super(e,t),this.receiver=s,this.key=n,this.value=i}visit(e,t=null){return e.visitKeyedWrite(this,t)}},Y=class extends W{constructor(e,t,s,n,i,a){super(e,t,a),this.exp=s,this.name=n,this.args=i}visit(e,t=null){return e.visitPipe(this,t)}},C=class extends w{constructor(e,t,s){super(e,t),this.value=s}visit(e,t=null){return e.visitLiteralPrimitive(this,t)}},Z=class extends w{constructor(e,t,s){super(e,t),this.expressions=s}visit(e,t=null){return e.visitLiteralArray(this,t)}},J=class extends w{constructor(e,t,s,n){super(e,t),this.keys=s,this.values=n}visit(e,t=null){return e.visitLiteralMap(this,t)}},me=class extends w{constructor(e,t,s,n){super(e,t),this.strings=s,this.expressions=n}visit(e,t=null){return e.visitInterpolation(this,t)}},A=class extends w{constructor(e,t,s,n,i){super(e,t),this.operation=s,this.left=n,this.right=i}visit(e,t=null){return e.visitBinary(this,t)}},B=class r extends A{static createMinus(e,t,s){return new r(e,t,"-",s,"-",new C(e,t,0),s)}static createPlus(e,t,s){return new r(e,t,"+",s,"-",s,new C(e,t,0))}constructor(e,t,s,n,i,a,h){super(e,t,i,a,h),this.operator=s,this.expr=n,this.left=null,this.right=null,this.operation=null}visit(e,t=null){return e.visitUnary!==void 0?e.visitUnary(this,t):e.visitBinary(this,t)}},ee=class extends w{constructor(e,t,s){super(e,t),this.expression=s}visit(e,t=null){return e.visitPrefixNot(this,t)}},te=class extends w{constructor(e,t,s){super(e,t),this.expression=s}visit(e,t=null){return e.visitNonNullAssert(this,t)}},re=class extends w{constructor(e,t,s,n,i){super(e,t),this.receiver=s,this.args=n,this.argumentSpan=i}visit(e,t=null){return e.visitCall(this,t)}},se=class extends w{constructor(e,t,s,n,i){super(e,t),this.receiver=s,this.args=n,this.argumentSpan=i}visit(e,t=null){return e.visitSafeCall(this,t)}},I=class{constructor(e,t){this.start=e,this.end=t}},R=class extends w{constructor(e,t,s,n,i){super(new P(0,t===null?0:t.length),new I(n,t===null?n:n+t.length)),this.ast=e,this.source=t,this.location=s,this.errors=i}visit(e,t=null){return e.visitASTWithSource?e.visitASTWithSource(this,t):this.ast.visit(e,t)}toString(){return`${this.source} in ${this.location}`}},T=class{constructor(e,t,s){this.sourceSpan=e,this.key=t,this.value=s}},ne=class{constructor(e,t,s){this.sourceSpan=e,this.key=t,this.value=s}},we=class{visit(e,t){e.visit(this,t)}visitUnary(e,t){this.visit(e.expr,t)}visitBinary(e,t){this.visit(e.left,t),this.visit(e.right,t)}visitChain(e,t){this.visitAll(e.expressions,t)}visitConditional(e,t){this.visit(e.condition,t),this.visit(e.trueExp,t),this.visit(e.falseExp,t)}visitPipe(e,t){this.visit(e.exp,t),this.visitAll(e.args,t)}visitImplicitReceiver(e,t){}visitThisReceiver(e,t){}visitInterpolation(e,t){this.visitAll(e.expressions,t)}visitKeyedRead(e,t){this.visit(e.receiver,t),this.visit(e.key,t)}visitKeyedWrite(e,t){this.visit(e.receiver,t),this.visit(e.key,t),this.visit(e.value,t)}visitLiteralArray(e,t){this.visitAll(e.expressions,t)}visitLiteralMap(e,t){this.visitAll(e.values,t)}visitLiteralPrimitive(e,t){}visitPrefixNot(e,t){this.visit(e.expression,t)}visitNonNullAssert(e,t){this.visit(e.expression,t)}visitPropertyRead(e,t){this.visit(e.receiver,t)}visitPropertyWrite(e,t){this.visit(e.receiver,t),this.visit(e.value,t)}visitSafePropertyRead(e,t){this.visit(e.receiver,t)}visitSafeKeyedRead(e,t){this.visit(e.receiver,t),this.visit(e.key,t)}visitCall(e,t){this.visit(e.receiver,t),this.visitAll(e.args,t)}visitSafeCall(e,t){this.visit(e.receiver,t),this.visitAll(e.args,t)}visitAll(e,t){for(let s of e)this.visit(s,t)}};var qe;(function(r){r[r.DEFAULT=0]="DEFAULT",r[r.LITERAL_ATTR=1]="LITERAL_ATTR",r[r.ANIMATION=2]="ANIMATION",r[r.TWO_WAY=3]="TWO_WAY"})(qe||(qe={}));function je(r){return r>=9&&r<=32||r==160}function K(r){return 48<=r&&r<=57}function Xe(r){return r>=97&&r<=122||r>=65&&r<=90}function Pe(r){return r===39||r===34||r===96}var f;(function(r){r[r.Character=0]="Character",r[r.Identifier=1]="Identifier",r[r.PrivateIdentifier=2]="PrivateIdentifier",r[r.Keyword=3]="Keyword",r[r.String=4]="String",r[r.Operator=5]="Operator",r[r.Number=6]="Number",r[r.Error=7]="Error"})(f||(f={}));var ar=["var","let","as","null","undefined","true","false","if","else","this"],le=class{tokenize(e){let t=new be(e),s=[],n=t.scanToken();for(;n!=null;)s.push(n),n=t.scanToken();return s}},O=class{constructor(e,t,s,n,i){this.index=e,this.end=t,this.type=s,this.numValue=n,this.strValue=i}isCharacter(e){return this.type==f.Character&&this.numValue==e}isNumber(){return this.type==f.Number}isString(){return this.type==f.String}isOperator(e){return this.type==f.Operator&&this.strValue==e}isIdentifier(){return this.type==f.Identifier}isPrivateIdentifier(){return this.type==f.PrivateIdentifier}isKeyword(){return this.type==f.Keyword}isKeywordLet(){return this.type==f.Keyword&&this.strValue=="let"}isKeywordAs(){return this.type==f.Keyword&&this.strValue=="as"}isKeywordNull(){return this.type==f.Keyword&&this.strValue=="null"}isKeywordUndefined(){return this.type==f.Keyword&&this.strValue=="undefined"}isKeywordTrue(){return this.type==f.Keyword&&this.strValue=="true"}isKeywordFalse(){return this.type==f.Keyword&&this.strValue=="false"}isKeywordThis(){return this.type==f.Keyword&&this.strValue=="this"}isError(){return this.type==f.Error}toNumber(){return this.type==f.Number?this.numValue:-1}toString(){switch(this.type){case f.Character:case f.Identifier:case f.Keyword:case f.Operator:case f.PrivateIdentifier:case f.String:case f.Error:return this.strValue;case f.Number:return this.numValue.toString();default:return null}}};function tt(r,e,t){return new O(r,e,f.Character,t,String.fromCharCode(t))}function or(r,e,t){return new O(r,e,f.Identifier,0,t)}function cr(r,e,t){return new O(r,e,f.PrivateIdentifier,0,t)}function hr(r,e,t){return new O(r,e,f.Keyword,0,t)}function Ke(r,e,t){return new O(r,e,f.Operator,0,t)}function pr(r,e,t){return new O(r,e,f.String,0,t)}function ur(r,e,t){return new O(r,e,f.Number,t,"")}function lr(r,e,t){return new O(r,e,f.Error,0,t)}var Ce=new O(-1,-1,f.Character,0,""),be=class{constructor(e){this.input=e,this.peek=0,this.index=-1,this.length=e.length,this.advance()}advance(){this.peek=++this.index>=this.length?0:this.input.charCodeAt(this.index)}scanToken(){let e=this.input,t=this.length,s=this.peek,n=this.index;for(;s<=32;)if(++n>=t){s=0;break}else s=e.charCodeAt(n);if(this.peek=s,this.index=n,n>=t)return null;if(rt(s))return this.scanIdentifier();if(K(s))return this.scanNumber(n);let i=n;switch(s){case 46:return this.advance(),K(this.peek)?this.scanNumber(i):tt(i,this.index,46);case 40:case 41:case 123:case 125:case 91:case 93:case 44:case 58:case 59:return this.scanCharacter(i,s);case 39:case 34:return this.scanString();case 35:return this.scanPrivateIdentifier();case 43:case 45:case 42:case 47:case 37:case 94:return this.scanOperator(i,String.fromCharCode(s));case 63:return this.scanQuestion(i);case 60:case 62:return this.scanComplexOperator(i,String.fromCharCode(s),61,"=");case 33:case 61:return this.scanComplexOperator(i,String.fromCharCode(s),61,"=",61,"=");case 38:return this.scanComplexOperator(i,"&",38,"&");case 124:return this.scanComplexOperator(i,"|",124,"|");case 160:for(;je(this.peek);)this.advance();return this.scanToken()}return this.advance(),this.error(`Unexpected character [${String.fromCharCode(s)}]`,0)}scanCharacter(e,t){return this.advance(),tt(e,this.index,t)}scanOperator(e,t){return this.advance(),Ke(e,this.index,t)}scanComplexOperator(e,t,s,n,i,a){this.advance();let h=t;return this.peek==s&&(this.advance(),h+=n),i!=null&&this.peek==i&&(this.advance(),h+=a),Ke(e,this.index,h)}scanIdentifier(){let e=this.index;for(this.advance();st(this.peek);)this.advance();let t=this.input.substring(e,this.index);return ar.indexOf(t)>-1?hr(e,this.index,t):or(e,this.index,t)}scanPrivateIdentifier(){let e=this.index;if(this.advance(),!rt(this.peek))return this.error("Invalid character [#]",-1);for(;st(this.peek);)this.advance();let t=this.input.substring(e,this.index);return cr(e,this.index,t)}scanNumber(e){let t=this.index===e,s=!1;for(this.advance();;){if(!K(this.peek))if(this.peek===95){if(!K(this.input.charCodeAt(this.index-1))||!K(this.input.charCodeAt(this.index+1)))return this.error("Invalid numeric separator",0);s=!0}else if(this.peek===46)t=!1;else if(xr(this.peek)){if(this.advance(),dr(this.peek)&&this.advance(),!K(this.peek))return this.error("Invalid exponent",-1);t=!1}else break;this.advance()}let n=this.input.substring(e,this.index);s&&(n=n.replace(/_/g,""));let i=t?vr(n):parseFloat(n);return ur(e,this.index,i)}scanString(){let e=this.index,t=this.peek;this.advance();let s="",n=this.index,i=this.input;for(;this.peek!=t;)if(this.peek==92){s+=i.substring(n,this.index);let h;if(this.advance(),this.peek==117){let g=i.substring(this.index+1,this.index+5);if(/^[0-9a-f]+$/i.test(g))h=parseInt(g,16);else return this.error(`Invalid unicode escape [\\u${g}]`,0);for(let d=0;d<5;d++)this.advance()}else h=fr(this.peek),this.advance();s+=String.fromCharCode(h),n=this.index}else{if(this.peek==0)return this.error("Unterminated quote",0);this.advance()}let a=i.substring(n,this.index);return this.advance(),pr(e,this.index,s+a)}scanQuestion(e){this.advance();let t="?";return(this.peek===63||this.peek===46)&&(t+=this.peek===46?".":"?",this.advance()),Ke(e,this.index,t)}error(e,t){let s=this.index+t;return lr(s,this.index,`Lexer Error: ${e} at column ${s} in expression [${this.input}]`)}};function rt(r){return 97<=r&&r<=122||65<=r&&r<=90||r==95||r==36}function st(r){return Xe(r)||K(r)||r==95||r==36}function xr(r){return r==101||r==69}function dr(r){return r==45||r==43}function fr(r){switch(r){case 110:return 10;case 102:return 12;case 114:return 13;case 116:return 9;case 118:return 11;default:return r}}function vr(r){let e=parseInt(r);if(isNaN(e))throw new Error("Invalid integer literal when parsing "+r);return e}var gr=[/^\s*$/,/[<>]/,/^[{}]$/,/&(#|[a-z])/i,/^\/\//];function ot(r,e){if(e!=null&&!(Array.isArray(e)&&e.length==2))throw new Error(`Expected '${r}' to be an array, [start, end].`);if(e!=null){let t=e[0],s=e[1];gr.forEach(n=>{if(n.test(t)||n.test(s))throw new Error(`['${t}', '${s}'] contains unusable interpolation symbol.`)})}}var Te=class r{static fromArray(e){return e?(ot("interpolation",e),new r(e[0],e[1])):F}constructor(e,t){this.start=e,this.end=t}},F=new Te("{{","}}");var _e=class{constructor(e,t,s){this.strings=e,this.expressions=t,this.offsets=s}},Me=class{constructor(e,t,s){this.templateBindings=e,this.warnings=t,this.errors=s}},fe=class{constructor(e){this._lexer=e,this.errors=[]}parseAction(e,t,s,n,i=F){this._checkNoInterpolation(e,s,i);let a=this._stripComments(e),h=this._lexer.tokenize(a),g=1;t&&(g|=2);let d=new U(e,s,n,h,g,this.errors,0).parseChain();return new R(d,e,s,n,this.errors)}parseBinding(e,t,s,n=F){let i=this._parseBindingAst(e,t,s,n);return new R(i,e,t,s,this.errors)}checkSimpleExpression(e){let t=new Fe;return e.visit(t),t.errors}parseSimpleBinding(e,t,s,n=F){let i=this._parseBindingAst(e,t,s,n),a=this.checkSimpleExpression(i);return a.length>0&&this._reportError(`Host binding expression cannot contain ${a.join(" ")}`,e,t),new R(i,e,t,s,this.errors)}_reportError(e,t,s,n){this.errors.push(new G(e,t,s,n))}_parseBindingAst(e,t,s,n){this._checkNoInterpolation(e,t,n);let i=this._stripComments(e),a=this._lexer.tokenize(i);return new U(e,t,s,a,0,this.errors,0).parseChain()}parseTemplateBindings(e,t,s,n,i){let a=this._lexer.tokenize(t);return new U(t,s,i,a,0,this.errors,0).parseTemplateBindings({source:e,span:new I(n,n+e.length)})}parseInterpolation(e,t,s,n,i=F){let{strings:a,expressions:h,offsets:g}=this.splitInterpolation(e,t,n,i);if(h.length===0)return null;let d=[];for(let y=0;y<h.length;++y){let E=h[y].text,S=this._stripComments(E),o=this._lexer.tokenize(S),u=new U(e,t,s,o,0,this.errors,g[y]).parseChain();d.push(u)}return this.createInterpolationAst(a.map(y=>y.text),d,e,t,s)}parseInterpolationExpression(e,t,s){let n=this._stripComments(e),i=this._lexer.tokenize(n),a=new U(e,t,s,i,0,this.errors,0).parseChain(),h=["",""];return this.createInterpolationAst(h,[a],e,t,s)}createInterpolationAst(e,t,s,n,i){let a=new P(0,s.length),h=new me(a,a.toAbsolute(i),e,t);return new R(h,s,n,i,this.errors)}splitInterpolation(e,t,s,n=F){let i=[],a=[],h=[],g=s?Sr(s):null,d=0,y=!1,E=!1,{start:S,end:o}=n;for(;d<e.length;)if(y){let u=d,v=u+S.length,c=this._getInterpolationEndIndex(e,o,v);if(c===-1){y=!1,E=!0;break}let x=c+o.length,l=e.substring(v,c);l.trim().length===0&&this._reportError("Blank expressions are not allowed in interpolated strings",e,`at column ${d} in`,t),a.push({text:l,start:u,end:x});let k=((g==null?void 0:g.get(u))??u)+S.length;h.push(k),d=x,y=!1}else{let u=d;d=e.indexOf(S,d),d===-1&&(d=e.length);let v=e.substring(u,d);i.push({text:v,start:u,end:d}),y=!0}if(!y)if(E){let u=i[i.length-1];u.text+=e.substring(d),u.end=e.length}else i.push({text:e.substring(d),start:d,end:e.length});return new _e(i,a,h)}wrapLiteralPrimitive(e,t,s){let n=new P(0,e==null?0:e.length);return new R(new C(n,n.toAbsolute(s),e),e,t,s,this.errors)}_stripComments(e){let t=this._commentStart(e);return t!=null?e.substring(0,t):e}_commentStart(e){let t=null;for(let s=0;s<e.length-1;s++){let n=e.charCodeAt(s),i=e.charCodeAt(s+1);if(n===47&&i==47&&t==null)return s;t===n?t=null:t==null&&Pe(n)&&(t=n)}return null}_checkNoInterpolation(e,t,{start:s,end:n}){let i=-1,a=-1;for(let h of this._forEachUnquotedChar(e,0))if(i===-1)e.startsWith(s)&&(i=h);else if(a=this._getInterpolationEndIndex(e,n,h),a>-1)break;i>-1&&a>-1&&this._reportError(`Got interpolation (${s}${n}) where expression was expected`,e,`at column ${i} in`,t)}_getInterpolationEndIndex(e,t,s){for(let n of this._forEachUnquotedChar(e,s)){if(e.startsWith(t,n))return n;if(e.startsWith("//",n))return e.indexOf(t,n)}return-1}*_forEachUnquotedChar(e,t){let s=null,n=0;for(let i=t;i<e.length;i++){let a=e[i];Pe(e.charCodeAt(i))&&(s===null||s===a)&&n%2===0?s=s===null?a:null:s===null&&(yield i),n=a==="\\"?n+1:0}}},pe;(function(r){r[r.None=0]="None",r[r.Writable=1]="Writable"})(pe||(pe={}));var U=class{constructor(e,t,s,n,i,a,h){this.input=e,this.location=t,this.absoluteOffset=s,this.tokens=n,this.parseFlags=i,this.errors=a,this.offset=h,this.rparensExpected=0,this.rbracketsExpected=0,this.rbracesExpected=0,this.context=pe.None,this.sourceSpanCache=new Map,this.index=0}peek(e){let t=this.index+e;return t<this.tokens.length?this.tokens[t]:Ce}get next(){return this.peek(0)}get atEOF(){return this.index>=this.tokens.length}get inputIndex(){return this.atEOF?this.currentEndIndex:this.next.index+this.offset}get currentEndIndex(){return this.index>0?this.peek(-1).end+this.offset:this.tokens.length===0?this.input.length+this.offset:this.next.index+this.offset}get currentAbsoluteOffset(){return this.absoluteOffset+this.inputIndex}span(e,t){let s=this.currentEndIndex;if(t!==void 0&&t>this.currentEndIndex&&(s=t),e>s){let n=s;s=e,e=n}return new P(e,s)}sourceSpan(e,t){let s=`${e}@${this.inputIndex}:${t}`;return this.sourceSpanCache.has(s)||this.sourceSpanCache.set(s,this.span(e,t).toAbsolute(this.absoluteOffset)),this.sourceSpanCache.get(s)}advance(){this.index++}withContext(e,t){this.context|=e;let s=t();return this.context^=e,s}consumeOptionalCharacter(e){return this.next.isCharacter(e)?(this.advance(),!0):!1}peekKeywordLet(){return this.next.isKeywordLet()}peekKeywordAs(){return this.next.isKeywordAs()}expectCharacter(e){this.consumeOptionalCharacter(e)||this.error(`Missing expected ${String.fromCharCode(e)}`)}consumeOptionalOperator(e){return this.next.isOperator(e)?(this.advance(),!0):!1}expectOperator(e){this.consumeOptionalOperator(e)||this.error(`Missing expected operator ${e}`)}prettyPrintToken(e){return e===Ce?"end of input":`token ${e}`}expectIdentifierOrKeyword(){let e=this.next;return!e.isIdentifier()&&!e.isKeyword()?(e.isPrivateIdentifier()?this._reportErrorForPrivateIdentifier(e,"expected identifier or keyword"):this.error(`Unexpected ${this.prettyPrintToken(e)}, expected identifier or keyword`),null):(this.advance(),e.toString())}expectIdentifierOrKeywordOrString(){let e=this.next;return!e.isIdentifier()&&!e.isKeyword()&&!e.isString()?(e.isPrivateIdentifier()?this._reportErrorForPrivateIdentifier(e,"expected identifier, keyword or string"):this.error(`Unexpected ${this.prettyPrintToken(e)}, expected identifier, keyword, or string`),""):(this.advance(),e.toString())}parseChain(){let e=[],t=this.inputIndex;for(;this.index<this.tokens.length;){let s=this.parsePipe();if(e.push(s),this.consumeOptionalCharacter(59))for(this.parseFlags&1||this.error("Binding expression cannot contain chained expression");this.consumeOptionalCharacter(59););else if(this.index<this.tokens.length){let n=this.index;if(this.error(`Unexpected token '${this.next}'`),this.index===n)break}}if(e.length===0){let s=this.offset,n=this.offset+this.input.length;return new $(this.span(s,n),this.sourceSpan(s,n))}return e.length==1?e[0]:new V(this.span(t),this.sourceSpan(t),e)}parsePipe(){let e=this.inputIndex,t=this.parseExpression();if(this.consumeOptionalOperator("|")){this.parseFlags&1&&this.error("Cannot have a pipe in an action expression");do{let s=this.inputIndex,n=this.expectIdentifierOrKeyword(),i,a;n!==null?i=this.sourceSpan(s):(n="",a=this.next.index!==-1?this.next.index:this.input.length+this.offset,i=new P(a,a).toAbsolute(this.absoluteOffset));let h=[];for(;this.consumeOptionalCharacter(58);)h.push(this.parseExpression());t=new Y(this.span(e),this.sourceSpan(e,a),t,n,h,i)}while(this.consumeOptionalOperator("|"))}return t}parseExpression(){return this.parseConditional()}parseConditional(){let e=this.inputIndex,t=this.parseLogicalOr();if(this.consumeOptionalOperator("?")){let s=this.parsePipe(),n;if(this.consumeOptionalCharacter(58))n=this.parsePipe();else{let i=this.inputIndex,a=this.input.substring(e,i);this.error(`Conditional expression ${a} requires all 3 expressions`),n=new $(this.span(e),this.sourceSpan(e))}return new Q(this.span(e),this.sourceSpan(e),t,s,n)}else return t}parseLogicalOr(){let e=this.inputIndex,t=this.parseLogicalAnd();for(;this.consumeOptionalOperator("||");){let s=this.parseLogicalAnd();t=new A(this.span(e),this.sourceSpan(e),"||",t,s)}return t}parseLogicalAnd(){let e=this.inputIndex,t=this.parseNullishCoalescing();for(;this.consumeOptionalOperator("&&");){let s=this.parseNullishCoalescing();t=new A(this.span(e),this.sourceSpan(e),"&&",t,s)}return t}parseNullishCoalescing(){let e=this.inputIndex,t=this.parseEquality();for(;this.consumeOptionalOperator("??");){let s=this.parseEquality();t=new A(this.span(e),this.sourceSpan(e),"??",t,s)}return t}parseEquality(){let e=this.inputIndex,t=this.parseRelational();for(;this.next.type==f.Operator;){let s=this.next.strValue;switch(s){case"==":case"===":case"!=":case"!==":this.advance();let n=this.parseRelational();t=new A(this.span(e),this.sourceSpan(e),s,t,n);continue}break}return t}parseRelational(){let e=this.inputIndex,t=this.parseAdditive();for(;this.next.type==f.Operator;){let s=this.next.strValue;switch(s){case"<":case">":case"<=":case">=":this.advance();let n=this.parseAdditive();t=new A(this.span(e),this.sourceSpan(e),s,t,n);continue}break}return t}parseAdditive(){let e=this.inputIndex,t=this.parseMultiplicative();for(;this.next.type==f.Operator;){let s=this.next.strValue;switch(s){case"+":case"-":this.advance();let n=this.parseMultiplicative();t=new A(this.span(e),this.sourceSpan(e),s,t,n);continue}break}return t}parseMultiplicative(){let e=this.inputIndex,t=this.parsePrefix();for(;this.next.type==f.Operator;){let s=this.next.strValue;switch(s){case"*":case"%":case"/":this.advance();let n=this.parsePrefix();t=new A(this.span(e),this.sourceSpan(e),s,t,n);continue}break}return t}parsePrefix(){if(this.next.type==f.Operator){let e=this.inputIndex,t=this.next.strValue,s;switch(t){case"+":return this.advance(),s=this.parsePrefix(),B.createPlus(this.span(e),this.sourceSpan(e),s);case"-":return this.advance(),s=this.parsePrefix(),B.createMinus(this.span(e),this.sourceSpan(e),s);case"!":return this.advance(),s=this.parsePrefix(),new ee(this.span(e),this.sourceSpan(e),s)}}return this.parseCallChain()}parseCallChain(){let e=this.inputIndex,t=this.parsePrimary();for(;;)if(this.consumeOptionalCharacter(46))t=this.parseAccessMember(t,e,!1);else if(this.consumeOptionalOperator("?."))this.consumeOptionalCharacter(40)?t=this.parseCall(t,e,!0):t=this.consumeOptionalCharacter(91)?this.parseKeyedReadOrWrite(t,e,!0):this.parseAccessMember(t,e,!0);else if(this.consumeOptionalCharacter(91))t=this.parseKeyedReadOrWrite(t,e,!1);else if(this.consumeOptionalCharacter(40))t=this.parseCall(t,e,!1);else if(this.consumeOptionalOperator("!"))t=new te(this.span(e),this.sourceSpan(e),t);else return t}parsePrimary(){let e=this.inputIndex;if(this.consumeOptionalCharacter(40)){this.rparensExpected++;let t=this.parsePipe();return this.rparensExpected--,this.expectCharacter(41),t}else{if(this.next.isKeywordNull())return this.advance(),new C(this.span(e),this.sourceSpan(e),null);if(this.next.isKeywordUndefined())return this.advance(),new C(this.span(e),this.sourceSpan(e),void 0);if(this.next.isKeywordTrue())return this.advance(),new C(this.span(e),this.sourceSpan(e),!0);if(this.next.isKeywordFalse())return this.advance(),new C(this.span(e),this.sourceSpan(e),!1);if(this.next.isKeywordThis())return this.advance(),new Se(this.span(e),this.sourceSpan(e));if(this.consumeOptionalCharacter(91)){this.rbracketsExpected++;let t=this.parseExpressionList(93);return this.rbracketsExpected--,this.expectCharacter(93),new Z(this.span(e),this.sourceSpan(e),t)}else{if(this.next.isCharacter(123))return this.parseLiteralMap();if(this.next.isIdentifier())return this.parseAccessMember(new L(this.span(e),this.sourceSpan(e)),e,!1);if(this.next.isNumber()){let t=this.next.toNumber();return this.advance(),new C(this.span(e),this.sourceSpan(e),t)}else if(this.next.isString()){let t=this.next.toString();return this.advance(),new C(this.span(e),this.sourceSpan(e),t)}else return this.next.isPrivateIdentifier()?(this._reportErrorForPrivateIdentifier(this.next,null),new $(this.span(e),this.sourceSpan(e))):this.index>=this.tokens.length?(this.error(`Unexpected end of expression: ${this.input}`),new $(this.span(e),this.sourceSpan(e))):(this.error(`Unexpected token ${this.next}`),new $(this.span(e),this.sourceSpan(e)))}}}parseExpressionList(e){let t=[];do if(!this.next.isCharacter(e))t.push(this.parsePipe());else break;while(this.consumeOptionalCharacter(44));return t}parseLiteralMap(){let e=[],t=[],s=this.inputIndex;if(this.expectCharacter(123),!this.consumeOptionalCharacter(125)){this.rbracesExpected++;do{let n=this.inputIndex,i=this.next.isString(),a=this.expectIdentifierOrKeywordOrString();if(e.push({key:a,quoted:i}),i)this.expectCharacter(58),t.push(this.parsePipe());else if(this.consumeOptionalCharacter(58))t.push(this.parsePipe());else{let h=this.span(n),g=this.sourceSpan(n);t.push(new b(h,g,g,new L(h,g),a))}}while(this.consumeOptionalCharacter(44)&&!this.next.isCharacter(125));this.rbracesExpected--,this.expectCharacter(125)}return new J(this.span(s),this.sourceSpan(s),e,t)}parseAccessMember(e,t,s){let n=this.inputIndex,i=this.withContext(pe.Writable,()=>{let g=this.expectIdentifierOrKeyword()??"";return g.length===0&&this.error("Expected identifier for property access",e.span.end),g}),a=this.sourceSpan(n),h;if(s)this.consumeOptionalAssignment()?(this.error("The '?.' operator cannot be used in the assignment"),h=new $(this.span(t),this.sourceSpan(t))):h=new z(this.span(t),this.sourceSpan(t),a,e,i);else if(this.consumeOptionalAssignment()){if(!(this.parseFlags&1))return this.error("Bindings cannot contain assignments"),new $(this.span(t),this.sourceSpan(t));let g=this.parseConditional();h=new H(this.span(t),this.sourceSpan(t),a,e,i,g)}else h=new b(this.span(t),this.sourceSpan(t),a,e,i);return h}parseCall(e,t,s){let n=this.inputIndex;this.rparensExpected++;let i=this.parseCallArguments(),a=this.span(n,this.inputIndex).toAbsolute(this.absoluteOffset);this.expectCharacter(41),this.rparensExpected--;let h=this.span(t),g=this.sourceSpan(t);return s?new se(h,g,e,i,a):new re(h,g,e,i,a)}consumeOptionalAssignment(){return this.parseFlags&2&&this.next.isOperator("!")&&this.peek(1).isOperator("=")?(this.advance(),this.advance(),!0):this.consumeOptionalOperator("=")}parseCallArguments(){if(this.next.isCharacter(41))return[];let e=[];do e.push(this.parsePipe());while(this.consumeOptionalCharacter(44));return e}expectTemplateBindingKey(){let e="",t=!1,s=this.currentAbsoluteOffset;do e+=this.expectIdentifierOrKeywordOrString(),t=this.consumeOptionalOperator("-"),t&&(e+="-");while(t);return{source:e,span:new I(s,s+e.length)}}parseTemplateBindings(e){let t=[];for(t.push(...this.parseDirectiveKeywordBindings(e));this.index<this.tokens.length;){let s=this.parseLetBinding();if(s)t.push(s);else{let n=this.expectTemplateBindingKey(),i=this.parseAsBinding(n);i?t.push(i):(n.source=e.source+n.source.charAt(0).toUpperCase()+n.source.substring(1),t.push(...this.parseDirectiveKeywordBindings(n)))}this.consumeStatementTerminator()}return new Me(t,[],this.errors)}parseKeyedReadOrWrite(e,t,s){return this.withContext(pe.Writable,()=>{this.rbracketsExpected++;let n=this.parsePipe();if(n instanceof $&&this.error("Key access cannot be empty"),this.rbracketsExpected--,this.expectCharacter(93),this.consumeOptionalOperator("="))if(s)this.error("The '?.' operator cannot be used in the assignment");else{let i=this.parseConditional();return new X(this.span(t),this.sourceSpan(t),e,n,i)}else return s?new j(this.span(t),this.sourceSpan(t),e,n):new q(this.span(t),this.sourceSpan(t),e,n);return new $(this.span(t),this.sourceSpan(t))})}parseDirectiveKeywordBindings(e){let t=[];this.consumeOptionalCharacter(58);let s=this.getDirectiveBoundTarget(),n=this.currentAbsoluteOffset,i=this.parseAsBinding(e);i||(this.consumeStatementTerminator(),n=this.currentAbsoluteOffset);let a=new I(e.span.start,n);return t.push(new ne(a,e,s)),i&&t.push(i),t}getDirectiveBoundTarget(){if(this.next===Ce||this.peekKeywordAs()||this.peekKeywordLet())return null;let e=this.parsePipe(),{start:t,end:s}=e.span,n=this.input.substring(t,s);return new R(e,n,this.location,this.absoluteOffset+t,this.errors)}parseAsBinding(e){if(!this.peekKeywordAs())return null;this.advance();let t=this.expectTemplateBindingKey();this.consumeStatementTerminator();let s=new I(e.span.start,this.currentAbsoluteOffset);return new T(s,t,e)}parseLetBinding(){if(!this.peekKeywordLet())return null;let e=this.currentAbsoluteOffset;this.advance();let t=this.expectTemplateBindingKey(),s=null;this.consumeOptionalOperator("=")&&(s=this.expectTemplateBindingKey()),this.consumeStatementTerminator();let n=new I(e,this.currentAbsoluteOffset);return new T(n,t,s)}consumeStatementTerminator(){this.consumeOptionalCharacter(59)||this.consumeOptionalCharacter(44)}error(e,t=null){this.errors.push(new G(e,this.input,this.locationText(t),this.location)),this.skip()}locationText(e=null){return e==null&&(e=this.index),e<this.tokens.length?`at column ${this.tokens[e].index+1} in`:"at the end of the expression"}_reportErrorForPrivateIdentifier(e,t){let s=`Private identifiers are not supported. Unexpected private identifier: ${e}`;t!==null&&(s+=`, ${t}`),this.error(s)}skip(){let e=this.next;for(;this.index<this.tokens.length&&!e.isCharacter(59)&&!e.isOperator("|")&&(this.rparensExpected<=0||!e.isCharacter(41))&&(this.rbracesExpected<=0||!e.isCharacter(125))&&(this.rbracketsExpected<=0||!e.isCharacter(93))&&(!(this.context&pe.Writable)||!e.isOperator("="));)this.next.isError()&&this.errors.push(new G(this.next.toString(),this.input,this.locationText(),this.location)),this.advance(),e=this.next}},Fe=class extends we{constructor(){super(...arguments),this.errors=[]}visitPipe(){this.errors.push("pipes")}};function Sr(r){let e=new Map,t=0,s=0,n=0;for(;n<r.length;){let i=r[n];if(i.type===9){let[a,h]=i.parts;t+=h.length,s+=a.length}else{let a=i.parts.reduce((h,g)=>h+g.length,0);s+=a,t+=a}e.set(s,t),n++}return e}var ht="angular-estree-parser",De="NgEstreeParser",Ue=0,Ae=[ht,Ue];function pt(){return new fe(new le)}function Oe(r,e){let t=pt(),{astInput:s,comments:n}=wr(r,t),{ast:i,errors:a}=e(s,t);return vt(a),{ast:i,comments:n}}function ut(r){return Oe(r,(e,t)=>t.parseBinding(e,...Ae))}function lt(r){return Oe(r,(e,t)=>t.parseSimpleBinding(e,...Ae))}function xt(r){return Oe(r,(e,t)=>t.parseAction(e,!1,...Ae))}function dt(r){return Oe(r,(e,t)=>{let s=t.parseInterpolationExpression(e,...Ae);return s.ast=s.ast.expressions[0],s})}function ft(r){let e=pt(),{templateBindings:t,errors:s}=e.parseTemplateBindings(De,r,ht,Ue,Ue);return vt(s),t}function vt(r){if(r.length!==0){let[{message:e}]=r;throw new SyntaxError(e.replace(/^Parser Error: | at column \d+ in [^]*$/g,""))}}function wr(r,e){let t=e._commentStart(r);return t===null?{astInput:r,comments:[]}:{astInput:r.slice(0,t),comments:[{type:"Comment",value:r.slice(t+2),sourceSpan:{start:t,end:r.length}}]}}function gt(r){return r instanceof B?"Unary":r instanceof A?"Binary":r instanceof Y?"BindingPipe":r instanceof re?"Call":r instanceof V?"Chain":r instanceof Q?"Conditional":r instanceof $?"EmptyExpr":r instanceof L?"ImplicitReceiver":r instanceof q?"KeyedRead":r instanceof j?"SafeKeyedRead":r instanceof X?"KeyedWrite":r instanceof Z?"LiteralArray":r instanceof J?"LiteralMap":r instanceof C?"LiteralPrimitive":r instanceof te?"NonNullAssert":r instanceof ee?"PrefixNot":r instanceof b?"PropertyRead":r instanceof H?"PropertyWrite":r instanceof se?"SafeCall":r instanceof z?"SafePropertyRead":r.type}function ct({start:r,end:e},t){let s=r,n=e;for(;n!==s&&/\s/.test(t[n-1]);)n--;for(;s!==n&&/\s/.test(t[s]);)s++;return{start:s,end:n}}function yr({start:r,end:e},t){let s=r,n=e;for(;n!==t.length&&/\s/.test(t[n]);)n++;for(;s!==0&&/\s/.test(t[s-1]);)s--;return{start:s,end:n}}function Er(r,e){return e[r.start-1]==="("&&e[r.end]===")"?{start:r.start-1,end:r.end+1}:r}function St(r,e,t){let s=0,n={start:r.start,end:r.end};for(;;){let i=yr(n,e),a=Er(i,e);if(i.start===a.start&&i.end===a.end)break;n.start=a.start,n.end=a.end,s++}return{hasParens:(t?s-1:s)!==0,outerSpan:ct(t?{start:n.start+1,end:n.end-1}:n,e),innerSpan:ct(r,e)}}function mt(r){return typeof r=="string"?e=>e===r:e=>r.test(e)}function wt(r,e,t){let s=mt(e);for(let n=t;n>=0;n--){let i=r[n];if(s(i))return n}throw new Error(`Cannot find front char ${e} from index ${t} in ${JSON.stringify(r)}`)}function yt(r,e,t){let s=mt(e);for(let n=t;n<r.length;n++){let i=r[n];if(s(i))return n}throw new Error(`Cannot find character ${e} from index ${t} in ${JSON.stringify(r)}`)}function Et(r){return r.slice(0,1).toLowerCase()+r.slice(1)}var ve=class{text;constructor(e){this.text=e}getCharacterIndex(e,t){return yt(this.text,e,t)}getCharacterLastIndex(e,t){return wt(this.text,e,t)}};var $r=(r,e,t)=>{if(!(r&&e==null))return Array.isArray(e)||typeof e=="string"?e[t<0?e.length+t:t]:e.at(t)},Ne=$r;var D=(r,e,t=!1)=>{let s=gt(r);switch(s){case"Unary":{let{operator:o,expr:u}=r,v=n(u);return a("UnaryExpression",{prefix:!0,argument:v,operator:o},r.sourceSpan,{hasParentParens:t})}case"Binary":{let{left:o,operation:u,right:v}=r,c=n(o),x=n(v);return a(u==="&&"||u==="||"||u==="??"?"LogicalExpression":"BinaryExpression",{left:c,right:x,operator:u},{start:E(c),end:S(x)},{hasParentParens:t})}case"BindingPipe":{let{exp:o,name:u,args:v}=r,c=n(o),x=e.getCharacterIndex(/\S/,e.getCharacterIndex("|",S(c))+1),l=a("Identifier",{name:u},{start:x,end:x+u.length}),p=v.map(n);return a("NGPipeExpression",{left:c,right:l,arguments:p},{start:E(c),end:S(p.length===0?l:Ne(!1,p,-1))},{hasParentParens:t})}case"Chain":{let{expressions:o}=r;return a("NGChainedExpression",{expressions:o.map(n)},r.sourceSpan,{hasParentParens:t})}case"Comment":{let{value:o}=r;return a("CommentLine",{value:o},r.sourceSpan,{processSpan:!1})}case"Conditional":{let{condition:o,trueExp:u,falseExp:v}=r,c=n(o),x=n(u),l=n(v);return a("ConditionalExpression",{test:c,consequent:x,alternate:l},{start:E(c),end:S(l)},{hasParentParens:t})}case"EmptyExpr":return a("NGEmptyExpression",{},r.sourceSpan,{hasParentParens:t});case"ImplicitReceiver":return a("ThisExpression",{},r.sourceSpan,{hasParentParens:t});case"KeyedRead":case"SafeKeyedRead":{let o=s==="SafeKeyedRead",{key:u}=r,v=Object.prototype.hasOwnProperty.call(r,"receiver")?r.receiver:r.obj,c=n(u);return h(v,c,{computed:!0,optional:o},{end:r.sourceSpan.end,hasParentParens:t})}case"LiteralArray":{let{expressions:o}=r;return a("ArrayExpression",{elements:o.map(n)},r.sourceSpan,{hasParentParens:t})}case"LiteralMap":{let{keys:o,values:u}=r,v=u.map(x=>n(x)),c=o.map(({key:x,quoted:l},p)=>{let k=v[p],m=E(k),N=S(k),ue=e.getCharacterIndex(/\S/,p===0?r.sourceSpan.start+1:e.getCharacterIndex(",",S(v[p-1]))+1),It=m===ue?N:e.getCharacterLastIndex(/\S/,e.getCharacterLastIndex(":",m-1)-1)+1,He={start:ue,end:It},ge=l?a("StringLiteral",{value:x},He):a("Identifier",{name:x},He),kt=ge.end<ge.start||ue===m;return a("ObjectProperty",{key:ge,value:k,shorthand:kt,computed:!1},{start:E(ge),end:N})});return a("ObjectExpression",{properties:c},r.sourceSpan,{hasParentParens:t})}case"LiteralPrimitive":{let{value:o}=r;switch(typeof o){case"boolean":return a("BooleanLiteral",{value:o},r.sourceSpan,{hasParentParens:t});case"number":return a("NumericLiteral",{value:o},r.sourceSpan,{hasParentParens:t});case"object":return a("NullLiteral",{},r.sourceSpan,{hasParentParens:t});case"string":return a("StringLiteral",{value:o},r.sourceSpan,{hasParentParens:t});case"undefined":return a("Identifier",{name:"undefined"},r.sourceSpan,{hasParentParens:t});default:throw new Error(`Unexpected LiteralPrimitive value type ${typeof o}`)}}case"Call":case"SafeCall":{let o=s==="SafeCall",{receiver:u,args:v}=r,c=v.length===1?[i(v[0])]:v.map(n),x=n(u),l=d(x),p=o||l?"OptionalCallExpression":"CallExpression";return a(p,{callee:x,arguments:c,optional:p==="OptionalCallExpression"?o:void 0},{start:E(x),end:r.sourceSpan.end},{hasParentParens:t})}case"NonNullAssert":{let{expression:o}=r,u=n(o);return a("TSNonNullExpression",{expression:u},{start:E(u),end:r.sourceSpan.end},{hasParentParens:t})}case"PrefixNot":{let{expression:o}=r,u=n(o);return a("UnaryExpression",{prefix:!0,operator:"!",argument:u},{start:r.sourceSpan.start,end:S(u)},{hasParentParens:t})}case"PropertyRead":case"SafePropertyRead":{let o=s==="SafePropertyRead",{receiver:u,name:v}=r,c=e.getCharacterLastIndex(/\S/,r.sourceSpan.end-1)+1,x=a("Identifier",{name:v},{start:c-v.length,end:c},g(u)?{hasParentParens:t}:{});return h(u,x,{computed:!1,optional:o},{hasParentParens:t})}case"KeyedWrite":{let{key:o,value:u}=r,v=Object.prototype.hasOwnProperty.call(r,"receiver")?r.receiver:r.obj,c=n(o),x=n(u),l=h(v,c,{computed:!0,optional:!1},{end:e.getCharacterIndex("]",S(c))+1});return a("AssignmentExpression",{left:l,operator:"=",right:x},{start:E(l),end:S(x)},{hasParentParens:t})}case"PropertyWrite":{let{receiver:o,name:u,value:v}=r,c=n(v),x=e.getCharacterLastIndex(/\S/,e.getCharacterLastIndex("=",E(c)-1)-1)+1,l=a("Identifier",{name:u},{start:x-u.length,end:x}),p=h(o,l,{computed:!1,optional:!1});return a("AssignmentExpression",{left:p,operator:"=",right:c},{start:E(p),end:S(c)},{hasParentParens:t})}default:throw new Error(`Unexpected node ${s}`)}function n(o){return D(o,e)}function i(o){return D(o,e,!0)}function a(o,u,v,{processSpan:c=!0,hasParentParens:x=!1}={}){let l={type:o,...Ie(v,e,c,x),...u};switch(o){case"NumericLiteral":{let p=l;p.extra={...p.extra,raw:e.text.slice(p.start,p.end),rawValue:p.value};break}case"StringLiteral":{let p=l;p.extra={...p.extra,raw:e.text.slice(p.start,p.end),rawValue:p.value};break}case"ObjectProperty":{let p=l;p.shorthand&&(p.extra={...p.extra,shorthand:p.shorthand});break}}return l}function h(o,u,v,{end:c=S(u),hasParentParens:x=!1}={}){if(g(o)||o.sourceSpan.start===u.start)return u;let l=n(o),p=d(l);return a(v.optional||p?"OptionalMemberExpression":"MemberExpression",{object:l,property:u,computed:v.computed,...v.optional?{optional:!0}:p?{optional:!1}:null},{start:E(l),end:c},{hasParentParens:x})}function g(o){return o.sourceSpan.start>=o.sourceSpan.end||/^\s+$/.test(e.text.slice(o.sourceSpan.start,o.sourceSpan.end))}function d(o){return(o.type==="OptionalCallExpression"||o.type==="OptionalMemberExpression")&&!y(o)}function y(o){return o.extra&&o.extra.parenthesized}function E(o){return y(o)?o.extra.parenStart:o.start}function S(o){return y(o)?o.extra.parenEnd:o.end}};function Ie(r,e,t=!1,s=!1){if(!t){let{start:g,end:d}=r;return{start:g,end:d,range:[g,d]}}let{outerSpan:n,innerSpan:{start:i,end:a},hasParens:h}=St(r,e.text,s);return{start:i,end:a,range:[i,a],...h&&{extra:{parenthesized:!0,parenStart:n.start,parenEnd:n.end}}}}function $t(r,e){r.forEach(o);let[t]=r,{key:s}=t,n=e.text.slice(t.sourceSpan.start,t.sourceSpan.end).trim().length===0?r.slice(1):r,i=[],a=null;for(let c=0;c<n.length;c++){let x=n[c];if(a&&E(a)&&S(x)&&x.value&&x.value.source===a.key.source){let l=d("NGMicrosyntaxKey",{name:x.key.source},x.key.span),p=(N,ue)=>({...N,...Ie({start:N.start,end:ue},e)}),k=N=>({...p(N,l.end),alias:l}),m=i.pop();if(m.type==="NGMicrosyntaxExpression")i.push(k(m));else if(m.type==="NGMicrosyntaxKeyedExpression"){let N=k(m.expression);i.push(p({...m,expression:N},N.end))}else throw new Error(`Unexpected type ${m.type}`)}else i.push(h(x,c));a=x}return d("NGMicrosyntax",{body:i},i.length===0?r[0].sourceSpan:{start:i[0].start,end:Ne(!1,i,-1).end});function h(c,x){if(E(c)){let{key:l,value:p}=c;return p?x===0?d("NGMicrosyntaxExpression",{expression:g(p.ast),alias:null},p.sourceSpan):d("NGMicrosyntaxKeyedExpression",{key:d("NGMicrosyntaxKey",{name:y(l.source)},l.span),expression:d("NGMicrosyntaxExpression",{expression:g(p.ast),alias:null},p.sourceSpan)},{start:l.span.start,end:p.sourceSpan.end}):d("NGMicrosyntaxKey",{name:y(l.source)},l.span)}else{let{key:l,sourceSpan:p}=c;if(/^let\s$/.test(e.text.slice(p.start,p.start+4))){let{value:m}=c;return d("NGMicrosyntaxLet",{key:d("NGMicrosyntaxKey",{name:l.source},l.span),value:m?d("NGMicrosyntaxKey",{name:m.source},m.span):null},{start:p.start,end:m?m.span.end:l.span.end})}else{let m=v(c);return d("NGMicrosyntaxAs",{key:d("NGMicrosyntaxKey",{name:m.source},m.span),alias:d("NGMicrosyntaxKey",{name:l.source},l.span)},{start:m.span.start,end:l.span.end})}}}function g(c){return D(c,e)}function d(c,x,l,p=!0){return{type:c,...Ie(l,e,p),...x}}function y(c){return Et(c.slice(s.source.length))}function E(c){return c instanceof ne}function S(c){return c instanceof T}function o(c){u(c.key.span),S(c)&&c.value&&u(c.value.span)}function u(c){if(e.text[c.start]!=='"'&&e.text[c.start]!=="'")return;let x=e.text[c.start],l=!1;for(let p=c.start+1;p<e.text.length;p++)switch(e.text[p]){case x:if(!l){c.end=p+1;return}default:l=!1;break;case"\\":l=!l;break}}function v(c){if(!c.value||c.value.source!==De)return c.value;let x=e.getCharacterIndex(/\S/,c.sourceSpan.start);return{source:"$implicit",span:{start:x,end:x}}}}function ke(r){return e=>{let{ast:t,comments:s}=r(e),n=new ve(e),i=D(t,n);return i.comments=s.map(a=>D(a,n)),i}}var Ct=ke(ut),ns=ke(lt),At=ke(dt),Ge=ke(xt),Ot=r=>$t(ft(r),new ve(r));function We(r){var s,n,i;let e=((s=r.range)==null?void 0:s[0])??r.start,t=(i=((n=r.declaration)==null?void 0:n.decorators)??r.decorators)==null?void 0:i[0];return t?Math.min(We(t),e):e}function Nt(r){var e;return((e=r.range)==null?void 0:e[1])??r.end}function Re(r){return{astFormat:"estree",parse(e){let t=r(e);return{type:"NGRoot",node:r===Ge&&t.type!=="NGChainedExpression"?{...t,type:"NGChainedExpression",expressions:[t]}:t}},locStart:We,locEnd:Nt}}var Cr=Re(Ge),Ar=Re(Ct),Or=Re(At),Nr=Re(Ot);var hs=Qe;export{hs as default,Ve as parsers};
1
+ var Je=Object.defineProperty;var ae=r=>{throw TypeError(r)};var oe=(r,t)=>{for(var e in t)Je(r,e,{get:t[e],enumerable:!0})};var Ut=(r,t,e)=>t.has(r)||ae("Cannot "+e);var O=(r,t,e)=>(Ut(r,t,"read from private field"),e?e.call(r):t.get(r)),P=(r,t,e)=>t.has(r)?ae("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(r):t.set(r,e),Y=(r,t,e,s)=>(Ut(r,t,"write to private field"),s?s.call(r,e):t.set(r,e),e),c=(r,t,e)=>(Ut(r,t,"access private method"),e);var ne={};oe(ne,{parsers:()=>ie});var ie={};oe(ie,{__ng_action:()=>js,__ng_binding:()=>Ys,__ng_directive:()=>Js,__ng_interpolation:()=>Zs});var Z=class{constructor(t,e,s,i){this.input=e,this.errLocation=s,this.ctxLocation=i,this.message=`Parser Error: ${t} ${s} [${e}] in ${i}`}},b=class{constructor(t,e){this.start=t,this.end=e}toAbsolute(t){return new L(t+this.start,t+this.end)}},m=class{constructor(t,e){this.span=t,this.sourceSpan=e}toString(){return"AST"}},J=class extends m{constructor(t,e,s){super(t,e),this.nameSpan=s}},$=class extends m{visit(t,e=null){}},K=class extends m{visit(t,e=null){return t.visitImplicitReceiver(this,e)}},Lt=class extends K{visit(t,e=null){var s;return(s=t.visitThisReceiver)==null?void 0:s.call(t,this,e)}},X=class extends m{constructor(t,e,s){super(t,e),this.expressions=s}visit(t,e=null){return t.visitChain(this,e)}},tt=class extends m{constructor(t,e,s,i,n){super(t,e),this.condition=s,this.trueExp=i,this.falseExp=n}visit(t,e=null){return t.visitConditional(this,e)}},M=class extends J{constructor(t,e,s,i,n){super(t,e,s),this.receiver=i,this.name=n}visit(t,e=null){return t.visitPropertyRead(this,e)}},et=class extends J{constructor(t,e,s,i,n,a){super(t,e,s),this.receiver=i,this.name=n,this.value=a}visit(t,e=null){return t.visitPropertyWrite(this,e)}},_=class extends J{constructor(t,e,s,i,n){super(t,e,s),this.receiver=i,this.name=n}visit(t,e=null){return t.visitSafePropertyRead(this,e)}},st=class extends m{constructor(t,e,s,i){super(t,e),this.receiver=s,this.key=i}visit(t,e=null){return t.visitKeyedRead(this,e)}},U=class extends m{constructor(t,e,s,i){super(t,e),this.receiver=s,this.key=i}visit(t,e=null){return t.visitSafeKeyedRead(this,e)}},rt=class extends m{constructor(t,e,s,i,n){super(t,e),this.receiver=s,this.key=i,this.value=n}visit(t,e=null){return t.visitKeyedWrite(this,e)}},it=class extends J{constructor(t,e,s,i,n,a){super(t,e,a),this.exp=s,this.name=i,this.args=n}visit(t,e=null){return t.visitPipe(this,e)}},E=class extends m{constructor(t,e,s){super(t,e),this.value=s}visit(t,e=null){return t.visitLiteralPrimitive(this,e)}},nt=class extends m{constructor(t,e,s){super(t,e),this.expressions=s}visit(t,e=null){return t.visitLiteralArray(this,e)}},at=class extends m{constructor(t,e,s,i){super(t,e),this.keys=s,this.values=i}visit(t,e=null){return t.visitLiteralMap(this,e)}},ot=class extends m{constructor(t,e,s,i){super(t,e),this.strings=s,this.expressions=i}visit(t,e=null){return t.visitInterpolation(this,e)}},A=class extends m{constructor(t,e,s,i,n){super(t,e),this.operation=s,this.left=i,this.right=n}visit(t,e=null){return t.visitBinary(this,e)}},F=class r extends A{static createMinus(t,e,s){return new r(t,e,"-",s,"-",new E(t,e,0),s)}static createPlus(t,e,s){return new r(t,e,"+",s,"-",s,new E(t,e,0))}constructor(t,e,s,i,n,a,o){super(t,e,n,a,o),this.operator=s,this.expr=i,this.left=null,this.right=null,this.operation=null}visit(t,e=null){return t.visitUnary!==void 0?t.visitUnary(this,e):t.visitBinary(this,e)}},ct=class extends m{constructor(t,e,s){super(t,e),this.expression=s}visit(t,e=null){return t.visitPrefixNot(this,e)}},ht=class extends m{constructor(t,e,s){super(t,e),this.expression=s}visit(t,e=null){return t.visitNonNullAssert(this,e)}},pt=class extends m{constructor(t,e,s,i,n){super(t,e),this.receiver=s,this.args=i,this.argumentSpan=n}visit(t,e=null){return t.visitCall(this,e)}},D=class extends m{constructor(t,e,s,i,n){super(t,e),this.receiver=s,this.args=i,this.argumentSpan=n}visit(t,e=null){return t.visitSafeCall(this,e)}},L=class{constructor(t,e){this.start=t,this.end=e}},R=class extends m{constructor(t,e,s,i,n){super(new b(0,e===null?0:e.length),new L(i,e===null?i:i+e.length)),this.ast=t,this.source=e,this.location=s,this.errors=n}visit(t,e=null){return t.visitASTWithSource?t.visitASTWithSource(this,e):this.ast.visit(t,e)}toString(){return`${this.source} in ${this.location}`}},W=class{constructor(t,e,s){this.sourceSpan=t,this.key=e,this.value=s}},ut=class{constructor(t,e,s){this.sourceSpan=t,this.key=e,this.value=s}},Rt=class{visit(t,e){t.visit(this,e)}visitUnary(t,e){this.visit(t.expr,e)}visitBinary(t,e){this.visit(t.left,e),this.visit(t.right,e)}visitChain(t,e){this.visitAll(t.expressions,e)}visitConditional(t,e){this.visit(t.condition,e),this.visit(t.trueExp,e),this.visit(t.falseExp,e)}visitPipe(t,e){this.visit(t.exp,e),this.visitAll(t.args,e)}visitImplicitReceiver(t,e){}visitThisReceiver(t,e){}visitInterpolation(t,e){this.visitAll(t.expressions,e)}visitKeyedRead(t,e){this.visit(t.receiver,e),this.visit(t.key,e)}visitKeyedWrite(t,e){this.visit(t.receiver,e),this.visit(t.key,e),this.visit(t.value,e)}visitLiteralArray(t,e){this.visitAll(t.expressions,e)}visitLiteralMap(t,e){this.visitAll(t.values,e)}visitLiteralPrimitive(t,e){}visitPrefixNot(t,e){this.visit(t.expression,e)}visitNonNullAssert(t,e){this.visit(t.expression,e)}visitPropertyRead(t,e){this.visit(t.receiver,e)}visitPropertyWrite(t,e){this.visit(t.receiver,e),this.visit(t.value,e)}visitSafePropertyRead(t,e){this.visit(t.receiver,e)}visitSafeKeyedRead(t,e){this.visit(t.receiver,e),this.visit(t.key,e)}visitCall(t,e){this.visit(t.receiver,e),this.visitAll(t.args,e)}visitSafeCall(t,e){this.visit(t.receiver,e),this.visitAll(t.args,e)}visitAll(t,e){for(let s of t)this.visit(s,e)}};var ce;(function(r){r[r.DEFAULT=0]="DEFAULT",r[r.LITERAL_ATTR=1]="LITERAL_ATTR",r[r.ANIMATION=2]="ANIMATION",r[r.TWO_WAY=3]="TWO_WAY"})(ce||(ce={}));var he;(function(r){r[r.Regular=0]="Regular",r[r.Animation=1]="Animation",r[r.TwoWay=2]="TwoWay"})(he||(he={}));var pe;(function(r){r[r.Property=0]="Property",r[r.Attribute=1]="Attribute",r[r.Class=2]="Class",r[r.Style=3]="Style",r[r.Animation=4]="Animation",r[r.TwoWay=5]="TwoWay"})(pe||(pe={}));function ue(r){return r>=9&&r<=32||r==160}function B(r){return 48<=r&&r<=57}function le(r){return r>=97&&r<=122||r>=65&&r<=90}function Ft(r){return r===39||r===34||r===96}var l;(function(r){r[r.Character=0]="Character",r[r.Identifier=1]="Identifier",r[r.PrivateIdentifier=2]="PrivateIdentifier",r[r.Keyword=3]="Keyword",r[r.String=4]="String",r[r.Operator=5]="Operator",r[r.Number=6]="Number",r[r.Error=7]="Error"})(l||(l={}));var ks=["var","let","as","null","undefined","true","false","if","else","this"],yt=class{tokenize(t){let e=new Gt(t),s=[],i=e.scanToken();for(;i!=null;)s.push(i),i=e.scanToken();return s}},I=class{constructor(t,e,s,i,n){this.index=t,this.end=e,this.type=s,this.numValue=i,this.strValue=n}isCharacter(t){return this.type==l.Character&&this.numValue==t}isNumber(){return this.type==l.Number}isString(){return this.type==l.String}isOperator(t){return this.type==l.Operator&&this.strValue==t}isIdentifier(){return this.type==l.Identifier}isPrivateIdentifier(){return this.type==l.PrivateIdentifier}isKeyword(){return this.type==l.Keyword}isKeywordLet(){return this.type==l.Keyword&&this.strValue=="let"}isKeywordAs(){return this.type==l.Keyword&&this.strValue=="as"}isKeywordNull(){return this.type==l.Keyword&&this.strValue=="null"}isKeywordUndefined(){return this.type==l.Keyword&&this.strValue=="undefined"}isKeywordTrue(){return this.type==l.Keyword&&this.strValue=="true"}isKeywordFalse(){return this.type==l.Keyword&&this.strValue=="false"}isKeywordThis(){return this.type==l.Keyword&&this.strValue=="this"}isError(){return this.type==l.Error}toNumber(){return this.type==l.Number?this.numValue:-1}toString(){switch(this.type){case l.Character:case l.Identifier:case l.Keyword:case l.Operator:case l.PrivateIdentifier:case l.String:case l.Error:return this.strValue;case l.Number:return this.numValue.toString();default:return null}}};function ge(r,t,e){return new I(r,t,l.Character,e,String.fromCharCode(e))}function Ns(r,t,e){return new I(r,t,l.Identifier,0,e)}function Ls(r,t,e){return new I(r,t,l.PrivateIdentifier,0,e)}function Rs(r,t,e){return new I(r,t,l.Keyword,0,e)}function Wt(r,t,e){return new I(r,t,l.Operator,0,e)}function Ps(r,t,e){return new I(r,t,l.String,0,e)}function bs(r,t,e){return new I(r,t,l.Number,e,"")}function Ks(r,t,e){return new I(r,t,l.Error,0,e)}var Bt=new I(-1,-1,l.Character,0,""),Gt=class{constructor(t){this.input=t,this.peek=0,this.index=-1,this.length=t.length,this.advance()}advance(){this.peek=++this.index>=this.length?0:this.input.charCodeAt(this.index)}scanToken(){let t=this.input,e=this.length,s=this.peek,i=this.index;for(;s<=32;)if(++i>=e){s=0;break}else s=t.charCodeAt(i);if(this.peek=s,this.index=i,i>=e)return null;if(me(s))return this.scanIdentifier();if(B(s))return this.scanNumber(i);let n=i;switch(s){case 46:return this.advance(),B(this.peek)?this.scanNumber(n):ge(n,this.index,46);case 40:case 41:case 123:case 125:case 91:case 93:case 44:case 58:case 59:return this.scanCharacter(n,s);case 39:case 34:return this.scanString();case 35:return this.scanPrivateIdentifier();case 43:case 45:case 42:case 47:case 37:case 94:return this.scanOperator(n,String.fromCharCode(s));case 63:return this.scanQuestion(n);case 60:case 62:return this.scanComplexOperator(n,String.fromCharCode(s),61,"=");case 33:case 61:return this.scanComplexOperator(n,String.fromCharCode(s),61,"=",61,"=");case 38:return this.scanComplexOperator(n,"&",38,"&");case 124:return this.scanComplexOperator(n,"|",124,"|");case 160:for(;ue(this.peek);)this.advance();return this.scanToken()}return this.advance(),this.error(`Unexpected character [${String.fromCharCode(s)}]`,0)}scanCharacter(t,e){return this.advance(),ge(t,this.index,e)}scanOperator(t,e){return this.advance(),Wt(t,this.index,e)}scanComplexOperator(t,e,s,i,n,a){this.advance();let o=e;return this.peek==s&&(this.advance(),o+=i),n!=null&&this.peek==n&&(this.advance(),o+=a),Wt(t,this.index,o)}scanIdentifier(){let t=this.index;for(this.advance();Se(this.peek);)this.advance();let e=this.input.substring(t,this.index);return ks.indexOf(e)>-1?Rs(t,this.index,e):Ns(t,this.index,e)}scanPrivateIdentifier(){let t=this.index;if(this.advance(),!me(this.peek))return this.error("Invalid character [#]",-1);for(;Se(this.peek);)this.advance();let e=this.input.substring(t,this.index);return Ls(t,this.index,e)}scanNumber(t){let e=this.index===t,s=!1;for(this.advance();;){if(!B(this.peek))if(this.peek===95){if(!B(this.input.charCodeAt(this.index-1))||!B(this.input.charCodeAt(this.index+1)))return this.error("Invalid numeric separator",0);s=!0}else if(this.peek===46)e=!1;else if(Bs(this.peek)){if(this.advance(),Ts(this.peek)&&this.advance(),!B(this.peek))return this.error("Invalid exponent",-1);e=!1}else break;this.advance()}let i=this.input.substring(t,this.index);s&&(i=i.replace(/_/g,""));let n=e?_s(i):parseFloat(i);return bs(t,this.index,n)}scanString(){let t=this.index,e=this.peek;this.advance();let s="",i=this.index,n=this.input;for(;this.peek!=e;)if(this.peek==92){s+=n.substring(i,this.index);let o;if(this.advance(),this.peek==117){let p=n.substring(this.index+1,this.index+5);if(/^[0-9a-f]+$/i.test(p))o=parseInt(p,16);else return this.error(`Invalid unicode escape [\\u${p}]`,0);for(let u=0;u<5;u++)this.advance()}else o=Ms(this.peek),this.advance();s+=String.fromCharCode(o),i=this.index}else{if(this.peek==0)return this.error("Unterminated quote",0);this.advance()}let a=n.substring(i,this.index);return this.advance(),Ps(t,this.index,s+a)}scanQuestion(t){this.advance();let e="?";return(this.peek===63||this.peek===46)&&(e+=this.peek===46?".":"?",this.advance()),Wt(t,this.index,e)}error(t,e){let s=this.index+e;return Ks(s,this.index,`Lexer Error: ${t} at column ${s} in expression [${this.input}]`)}};function me(r){return 97<=r&&r<=122||65<=r&&r<=90||r==95||r==36}function Se(r){return le(r)||B(r)||r==95||r==36}function Bs(r){return r==101||r==69}function Ts(r){return r==45||r==43}function Ms(r){switch(r){case 110:return 10;case 102:return 12;case 114:return 13;case 116:return 9;case 118:return 11;default:return r}}function _s(r){let t=parseInt(r);if(isNaN(t))throw new Error("Invalid integer literal when parsing "+r);return t}var Us=[/@/,/^\s*$/,/[<>]/,/^[{}]$/,/&(#|[a-z])/i,/^\/\//];function Ee(r,t){if(t!=null&&!(Array.isArray(t)&&t.length==2))throw new Error(`Expected '${r}' to be an array, [start, end].`);if(t!=null){let e=t[0],s=t[1];Us.forEach(i=>{if(i.test(e)||i.test(s))throw new Error(`['${e}', '${s}'] contains unusable interpolation symbol.`)})}}var Qt=class r{static fromArray(t){return t?(Ee("interpolation",t),new r(t[0],t[1])):Q}constructor(t,e){this.start=t,this.end=e}},Q=new Qt("{{","}}");var zt=class{constructor(t,e,s){this.strings=t,this.expressions=e,this.offsets=s}},qt=class{constructor(t,e,s){this.templateBindings=t,this.warnings=e,this.errors=s}},mt=class{constructor(t){this._lexer=t,this.errors=[]}parseAction(t,e,s,i=Q){this._checkNoInterpolation(t,e,i);let n=this._stripComments(t),a=this._lexer.tokenize(n),o=new z(t,e,s,a,1,this.errors,0).parseChain();return new R(o,t,e,s,this.errors)}parseBinding(t,e,s,i=Q){let n=this._parseBindingAst(t,e,s,i);return new R(n,t,e,s,this.errors)}checkSimpleExpression(t){let e=new Ht;return t.visit(e),e.errors}parseSimpleBinding(t,e,s,i=Q){let n=this._parseBindingAst(t,e,s,i),a=this.checkSimpleExpression(n);return a.length>0&&this._reportError(`Host binding expression cannot contain ${a.join(" ")}`,t,e),new R(n,t,e,s,this.errors)}_reportError(t,e,s,i){this.errors.push(new Z(t,e,s,i))}_parseBindingAst(t,e,s,i){this._checkNoInterpolation(t,e,i);let n=this._stripComments(t),a=this._lexer.tokenize(n);return new z(t,e,s,a,0,this.errors,0).parseChain()}parseTemplateBindings(t,e,s,i,n){let a=this._lexer.tokenize(e);return new z(e,s,n,a,0,this.errors,0).parseTemplateBindings({source:t,span:new L(i,i+t.length)})}parseInterpolation(t,e,s,i,n=Q){let{strings:a,expressions:o,offsets:p}=this.splitInterpolation(t,e,i,n);if(o.length===0)return null;let u=[];for(let f=0;f<o.length;++f){let S=o[f].text,g=this._stripComments(S),y=this._lexer.tokenize(g),w=new z(t,e,s,y,0,this.errors,p[f]).parseChain();u.push(w)}return this.createInterpolationAst(a.map(f=>f.text),u,t,e,s)}parseInterpolationExpression(t,e,s){let i=this._stripComments(t),n=this._lexer.tokenize(i),a=new z(t,e,s,n,0,this.errors,0).parseChain(),o=["",""];return this.createInterpolationAst(o,[a],t,e,s)}createInterpolationAst(t,e,s,i,n){let a=new b(0,s.length),o=new ot(a,a.toAbsolute(n),t,e);return new R(o,s,i,n,this.errors)}splitInterpolation(t,e,s,i=Q){let n=[],a=[],o=[],p=s?Fs(s):null,u=0,f=!1,S=!1,{start:g,end:y}=i;for(;u<t.length;)if(f){let w=u,H=w+g.length,j=this._getInterpolationEndIndex(t,y,H);if(j===-1){f=!1,S=!0;break}let T=j+y.length,Nt=t.substring(H,j);Nt.trim().length===0&&this._reportError("Blank expressions are not allowed in interpolated strings",t,`at column ${u} in`,e),a.push({text:Nt,start:w,end:T});let Ze=((p==null?void 0:p.get(w))??w)+g.length;o.push(Ze),u=T,f=!1}else{let w=u;u=t.indexOf(g,u),u===-1&&(u=t.length);let H=t.substring(w,u);n.push({text:H,start:w,end:u}),f=!0}if(!f)if(S){let w=n[n.length-1];w.text+=t.substring(u),w.end=t.length}else n.push({text:t.substring(u),start:u,end:t.length});return new zt(n,a,o)}wrapLiteralPrimitive(t,e,s){let i=new b(0,t==null?0:t.length);return new R(new E(i,i.toAbsolute(s),t),t,e,s,this.errors)}_stripComments(t){let e=this._commentStart(t);return e!=null?t.substring(0,e):t}_commentStart(t){let e=null;for(let s=0;s<t.length-1;s++){let i=t.charCodeAt(s),n=t.charCodeAt(s+1);if(i===47&&n==47&&e==null)return s;e===i?e=null:e==null&&Ft(i)&&(e=i)}return null}_checkNoInterpolation(t,e,{start:s,end:i}){let n=-1,a=-1;for(let o of this._forEachUnquotedChar(t,0))if(n===-1)t.startsWith(s)&&(n=o);else if(a=this._getInterpolationEndIndex(t,i,o),a>-1)break;n>-1&&a>-1&&this._reportError(`Got interpolation (${s}${i}) where expression was expected`,t,`at column ${n} in`,e)}_getInterpolationEndIndex(t,e,s){for(let i of this._forEachUnquotedChar(t,s)){if(t.startsWith(e,i))return i;if(t.startsWith("//",i))return t.indexOf(e,i)}return-1}*_forEachUnquotedChar(t,e){let s=null,i=0;for(let n=e;n<t.length;n++){let a=t[n];Ft(t.charCodeAt(n))&&(s===null||s===a)&&i%2===0?s=s===null?a:null:s===null&&(yield n),i=a==="\\"?i+1:0}}},gt;(function(r){r[r.None=0]="None",r[r.Writable=1]="Writable"})(gt||(gt={}));var z=class{constructor(t,e,s,i,n,a,o){this.input=t,this.location=e,this.absoluteOffset=s,this.tokens=i,this.parseFlags=n,this.errors=a,this.offset=o,this.rparensExpected=0,this.rbracketsExpected=0,this.rbracesExpected=0,this.context=gt.None,this.sourceSpanCache=new Map,this.index=0}peek(t){let e=this.index+t;return e<this.tokens.length?this.tokens[e]:Bt}get next(){return this.peek(0)}get atEOF(){return this.index>=this.tokens.length}get inputIndex(){return this.atEOF?this.currentEndIndex:this.next.index+this.offset}get currentEndIndex(){return this.index>0?this.peek(-1).end+this.offset:this.tokens.length===0?this.input.length+this.offset:this.next.index+this.offset}get currentAbsoluteOffset(){return this.absoluteOffset+this.inputIndex}span(t,e){let s=this.currentEndIndex;if(e!==void 0&&e>this.currentEndIndex&&(s=e),t>s){let i=s;s=t,t=i}return new b(t,s)}sourceSpan(t,e){let s=`${t}@${this.inputIndex}:${e}`;return this.sourceSpanCache.has(s)||this.sourceSpanCache.set(s,this.span(t,e).toAbsolute(this.absoluteOffset)),this.sourceSpanCache.get(s)}advance(){this.index++}withContext(t,e){this.context|=t;let s=e();return this.context^=t,s}consumeOptionalCharacter(t){return this.next.isCharacter(t)?(this.advance(),!0):!1}peekKeywordLet(){return this.next.isKeywordLet()}peekKeywordAs(){return this.next.isKeywordAs()}expectCharacter(t){this.consumeOptionalCharacter(t)||this.error(`Missing expected ${String.fromCharCode(t)}`)}consumeOptionalOperator(t){return this.next.isOperator(t)?(this.advance(),!0):!1}expectOperator(t){this.consumeOptionalOperator(t)||this.error(`Missing expected operator ${t}`)}prettyPrintToken(t){return t===Bt?"end of input":`token ${t}`}expectIdentifierOrKeyword(){let t=this.next;return!t.isIdentifier()&&!t.isKeyword()?(t.isPrivateIdentifier()?this._reportErrorForPrivateIdentifier(t,"expected identifier or keyword"):this.error(`Unexpected ${this.prettyPrintToken(t)}, expected identifier or keyword`),null):(this.advance(),t.toString())}expectIdentifierOrKeywordOrString(){let t=this.next;return!t.isIdentifier()&&!t.isKeyword()&&!t.isString()?(t.isPrivateIdentifier()?this._reportErrorForPrivateIdentifier(t,"expected identifier, keyword or string"):this.error(`Unexpected ${this.prettyPrintToken(t)}, expected identifier, keyword, or string`),""):(this.advance(),t.toString())}parseChain(){let t=[],e=this.inputIndex;for(;this.index<this.tokens.length;){let s=this.parsePipe();if(t.push(s),this.consumeOptionalCharacter(59))for(this.parseFlags&1||this.error("Binding expression cannot contain chained expression");this.consumeOptionalCharacter(59););else if(this.index<this.tokens.length){let i=this.index;if(this.error(`Unexpected token '${this.next}'`),this.index===i)break}}if(t.length===0){let s=this.offset,i=this.offset+this.input.length;return new $(this.span(s,i),this.sourceSpan(s,i))}return t.length==1?t[0]:new X(this.span(e),this.sourceSpan(e),t)}parsePipe(){let t=this.inputIndex,e=this.parseExpression();if(this.consumeOptionalOperator("|")){this.parseFlags&1&&this.error("Cannot have a pipe in an action expression");do{let s=this.inputIndex,i=this.expectIdentifierOrKeyword(),n,a;i!==null?n=this.sourceSpan(s):(i="",a=this.next.index!==-1?this.next.index:this.input.length+this.offset,n=new b(a,a).toAbsolute(this.absoluteOffset));let o=[];for(;this.consumeOptionalCharacter(58);)o.push(this.parseExpression());e=new it(this.span(t),this.sourceSpan(t,a),e,i,o,n)}while(this.consumeOptionalOperator("|"))}return e}parseExpression(){return this.parseConditional()}parseConditional(){let t=this.inputIndex,e=this.parseLogicalOr();if(this.consumeOptionalOperator("?")){let s=this.parsePipe(),i;if(this.consumeOptionalCharacter(58))i=this.parsePipe();else{let n=this.inputIndex,a=this.input.substring(t,n);this.error(`Conditional expression ${a} requires all 3 expressions`),i=new $(this.span(t),this.sourceSpan(t))}return new tt(this.span(t),this.sourceSpan(t),e,s,i)}else return e}parseLogicalOr(){let t=this.inputIndex,e=this.parseLogicalAnd();for(;this.consumeOptionalOperator("||");){let s=this.parseLogicalAnd();e=new A(this.span(t),this.sourceSpan(t),"||",e,s)}return e}parseLogicalAnd(){let t=this.inputIndex,e=this.parseNullishCoalescing();for(;this.consumeOptionalOperator("&&");){let s=this.parseNullishCoalescing();e=new A(this.span(t),this.sourceSpan(t),"&&",e,s)}return e}parseNullishCoalescing(){let t=this.inputIndex,e=this.parseEquality();for(;this.consumeOptionalOperator("??");){let s=this.parseEquality();e=new A(this.span(t),this.sourceSpan(t),"??",e,s)}return e}parseEquality(){let t=this.inputIndex,e=this.parseRelational();for(;this.next.type==l.Operator;){let s=this.next.strValue;switch(s){case"==":case"===":case"!=":case"!==":this.advance();let i=this.parseRelational();e=new A(this.span(t),this.sourceSpan(t),s,e,i);continue}break}return e}parseRelational(){let t=this.inputIndex,e=this.parseAdditive();for(;this.next.type==l.Operator;){let s=this.next.strValue;switch(s){case"<":case">":case"<=":case">=":this.advance();let i=this.parseAdditive();e=new A(this.span(t),this.sourceSpan(t),s,e,i);continue}break}return e}parseAdditive(){let t=this.inputIndex,e=this.parseMultiplicative();for(;this.next.type==l.Operator;){let s=this.next.strValue;switch(s){case"+":case"-":this.advance();let i=this.parseMultiplicative();e=new A(this.span(t),this.sourceSpan(t),s,e,i);continue}break}return e}parseMultiplicative(){let t=this.inputIndex,e=this.parsePrefix();for(;this.next.type==l.Operator;){let s=this.next.strValue;switch(s){case"*":case"%":case"/":this.advance();let i=this.parsePrefix();e=new A(this.span(t),this.sourceSpan(t),s,e,i);continue}break}return e}parsePrefix(){if(this.next.type==l.Operator){let t=this.inputIndex,e=this.next.strValue,s;switch(e){case"+":return this.advance(),s=this.parsePrefix(),F.createPlus(this.span(t),this.sourceSpan(t),s);case"-":return this.advance(),s=this.parsePrefix(),F.createMinus(this.span(t),this.sourceSpan(t),s);case"!":return this.advance(),s=this.parsePrefix(),new ct(this.span(t),this.sourceSpan(t),s)}}return this.parseCallChain()}parseCallChain(){let t=this.inputIndex,e=this.parsePrimary();for(;;)if(this.consumeOptionalCharacter(46))e=this.parseAccessMember(e,t,!1);else if(this.consumeOptionalOperator("?."))this.consumeOptionalCharacter(40)?e=this.parseCall(e,t,!0):e=this.consumeOptionalCharacter(91)?this.parseKeyedReadOrWrite(e,t,!0):this.parseAccessMember(e,t,!0);else if(this.consumeOptionalCharacter(91))e=this.parseKeyedReadOrWrite(e,t,!1);else if(this.consumeOptionalCharacter(40))e=this.parseCall(e,t,!1);else if(this.consumeOptionalOperator("!"))e=new ht(this.span(t),this.sourceSpan(t),e);else return e}parsePrimary(){let t=this.inputIndex;if(this.consumeOptionalCharacter(40)){this.rparensExpected++;let e=this.parsePipe();return this.rparensExpected--,this.expectCharacter(41),e}else{if(this.next.isKeywordNull())return this.advance(),new E(this.span(t),this.sourceSpan(t),null);if(this.next.isKeywordUndefined())return this.advance(),new E(this.span(t),this.sourceSpan(t),void 0);if(this.next.isKeywordTrue())return this.advance(),new E(this.span(t),this.sourceSpan(t),!0);if(this.next.isKeywordFalse())return this.advance(),new E(this.span(t),this.sourceSpan(t),!1);if(this.next.isKeywordThis())return this.advance(),new Lt(this.span(t),this.sourceSpan(t));if(this.consumeOptionalCharacter(91)){this.rbracketsExpected++;let e=this.parseExpressionList(93);return this.rbracketsExpected--,this.expectCharacter(93),new nt(this.span(t),this.sourceSpan(t),e)}else{if(this.next.isCharacter(123))return this.parseLiteralMap();if(this.next.isIdentifier())return this.parseAccessMember(new K(this.span(t),this.sourceSpan(t)),t,!1);if(this.next.isNumber()){let e=this.next.toNumber();return this.advance(),new E(this.span(t),this.sourceSpan(t),e)}else if(this.next.isString()){let e=this.next.toString();return this.advance(),new E(this.span(t),this.sourceSpan(t),e)}else return this.next.isPrivateIdentifier()?(this._reportErrorForPrivateIdentifier(this.next,null),new $(this.span(t),this.sourceSpan(t))):this.index>=this.tokens.length?(this.error(`Unexpected end of expression: ${this.input}`),new $(this.span(t),this.sourceSpan(t))):(this.error(`Unexpected token ${this.next}`),new $(this.span(t),this.sourceSpan(t)))}}}parseExpressionList(t){let e=[];do if(!this.next.isCharacter(t))e.push(this.parsePipe());else break;while(this.consumeOptionalCharacter(44));return e}parseLiteralMap(){let t=[],e=[],s=this.inputIndex;if(this.expectCharacter(123),!this.consumeOptionalCharacter(125)){this.rbracesExpected++;do{let i=this.inputIndex,n=this.next.isString(),a=this.expectIdentifierOrKeywordOrString();if(t.push({key:a,quoted:n}),n)this.expectCharacter(58),e.push(this.parsePipe());else if(this.consumeOptionalCharacter(58))e.push(this.parsePipe());else{let o=this.span(i),p=this.sourceSpan(i);e.push(new M(o,p,p,new K(o,p),a))}}while(this.consumeOptionalCharacter(44)&&!this.next.isCharacter(125));this.rbracesExpected--,this.expectCharacter(125)}return new at(this.span(s),this.sourceSpan(s),t,e)}parseAccessMember(t,e,s){let i=this.inputIndex,n=this.withContext(gt.Writable,()=>{let p=this.expectIdentifierOrKeyword()??"";return p.length===0&&this.error("Expected identifier for property access",t.span.end),p}),a=this.sourceSpan(i),o;if(s)this.consumeOptionalOperator("=")?(this.error("The '?.' operator cannot be used in the assignment"),o=new $(this.span(e),this.sourceSpan(e))):o=new _(this.span(e),this.sourceSpan(e),a,t,n);else if(this.consumeOptionalOperator("=")){if(!(this.parseFlags&1))return this.error("Bindings cannot contain assignments"),new $(this.span(e),this.sourceSpan(e));let p=this.parseConditional();o=new et(this.span(e),this.sourceSpan(e),a,t,n,p)}else o=new M(this.span(e),this.sourceSpan(e),a,t,n);return o}parseCall(t,e,s){let i=this.inputIndex;this.rparensExpected++;let n=this.parseCallArguments(),a=this.span(i,this.inputIndex).toAbsolute(this.absoluteOffset);this.expectCharacter(41),this.rparensExpected--;let o=this.span(e),p=this.sourceSpan(e);return s?new D(o,p,t,n,a):new pt(o,p,t,n,a)}parseCallArguments(){if(this.next.isCharacter(41))return[];let t=[];do t.push(this.parsePipe());while(this.consumeOptionalCharacter(44));return t}expectTemplateBindingKey(){let t="",e=!1,s=this.currentAbsoluteOffset;do t+=this.expectIdentifierOrKeywordOrString(),e=this.consumeOptionalOperator("-"),e&&(t+="-");while(e);return{source:t,span:new L(s,s+t.length)}}parseTemplateBindings(t){let e=[];for(e.push(...this.parseDirectiveKeywordBindings(t));this.index<this.tokens.length;){let s=this.parseLetBinding();if(s)e.push(s);else{let i=this.expectTemplateBindingKey(),n=this.parseAsBinding(i);n?e.push(n):(i.source=t.source+i.source.charAt(0).toUpperCase()+i.source.substring(1),e.push(...this.parseDirectiveKeywordBindings(i)))}this.consumeStatementTerminator()}return new qt(e,[],this.errors)}parseKeyedReadOrWrite(t,e,s){return this.withContext(gt.Writable,()=>{this.rbracketsExpected++;let i=this.parsePipe();if(i instanceof $&&this.error("Key access cannot be empty"),this.rbracketsExpected--,this.expectCharacter(93),this.consumeOptionalOperator("="))if(s)this.error("The '?.' operator cannot be used in the assignment");else{let n=this.parseConditional();return new rt(this.span(e),this.sourceSpan(e),t,i,n)}else return s?new U(this.span(e),this.sourceSpan(e),t,i):new st(this.span(e),this.sourceSpan(e),t,i);return new $(this.span(e),this.sourceSpan(e))})}parseDirectiveKeywordBindings(t){let e=[];this.consumeOptionalCharacter(58);let s=this.getDirectiveBoundTarget(),i=this.currentAbsoluteOffset,n=this.parseAsBinding(t);n||(this.consumeStatementTerminator(),i=this.currentAbsoluteOffset);let a=new L(t.span.start,i);return e.push(new ut(a,t,s)),n&&e.push(n),e}getDirectiveBoundTarget(){if(this.next===Bt||this.peekKeywordAs()||this.peekKeywordLet())return null;let t=this.parsePipe(),{start:e,end:s}=t.span,i=this.input.substring(e,s);return new R(t,i,this.location,this.absoluteOffset+e,this.errors)}parseAsBinding(t){if(!this.peekKeywordAs())return null;this.advance();let e=this.expectTemplateBindingKey();this.consumeStatementTerminator();let s=new L(t.span.start,this.currentAbsoluteOffset);return new W(s,e,t)}parseLetBinding(){if(!this.peekKeywordLet())return null;let t=this.currentAbsoluteOffset;this.advance();let e=this.expectTemplateBindingKey(),s=null;this.consumeOptionalOperator("=")&&(s=this.expectTemplateBindingKey()),this.consumeStatementTerminator();let i=new L(t,this.currentAbsoluteOffset);return new W(i,e,s)}consumeStatementTerminator(){this.consumeOptionalCharacter(59)||this.consumeOptionalCharacter(44)}error(t,e=null){this.errors.push(new Z(t,this.input,this.locationText(e),this.location)),this.skip()}locationText(t=null){return t==null&&(t=this.index),t<this.tokens.length?`at column ${this.tokens[t].index+1} in`:"at the end of the expression"}_reportErrorForPrivateIdentifier(t,e){let s=`Private identifiers are not supported. Unexpected private identifier: ${t}`;e!==null&&(s+=`, ${e}`),this.error(s)}skip(){let t=this.next;for(;this.index<this.tokens.length&&!t.isCharacter(59)&&!t.isOperator("|")&&(this.rparensExpected<=0||!t.isCharacter(41))&&(this.rbracesExpected<=0||!t.isCharacter(125))&&(this.rbracketsExpected<=0||!t.isCharacter(93))&&(!(this.context&gt.Writable)||!t.isOperator("="));)this.next.isError()&&this.errors.push(new Z(this.next.toString(),this.input,this.locationText(),this.location)),this.advance(),t=this.next}},Ht=class extends Rt{constructor(){super(...arguments),this.errors=[]}visitPipe(){this.errors.push("pipes")}};function Fs(r){let t=new Map,e=0,s=0,i=0;for(;i<r.length;){let n=r[i];if(n.type===9){let[a,o]=n.parts;e+=o.length,s+=a.length}else{let a=n.parts.reduce((o,p)=>o+p.length,0);s+=a,e+=a}t.set(s,e),i++}return t}function Ce({start:r,end:t},e){let s=r,i=t;for(;i!==s&&/\s/.test(e[i-1]);)i--;for(;s!==i&&/\s/.test(e[s]);)s++;return{start:s,end:i}}function Ws({start:r,end:t},e){let s=r,i=t;for(;i!==e.length&&/\s/.test(e[i]);)i++;for(;s!==0&&/\s/.test(e[s-1]);)s--;return{start:s,end:i}}function Gs(r,t){return t[r.start-1]==="("&&t[r.end]===")"?{start:r.start-1,end:r.end+1}:r}function Ae(r,t,e){let s=0,i={start:r.start,end:r.end};for(;;){let n=Ws(i,t),a=Gs(n,t);if(n.start===a.start&&n.end===a.end)break;i.start=a.start,i.end=a.end,s++}return{hasParens:(e?s-1:s)!==0,outerSpan:Ce(e?{start:i.start+1,end:i.end-1}:i,t),innerSpan:Ce(r,t)}}function Oe(r){return typeof r=="string"?t=>t===r:t=>r.test(t)}function Ie(r,t,e){let s=Oe(t);for(let i=e;i>=0;i--){let n=r[i];if(s(n))return i}throw new Error(`Cannot find front char ${t} from index ${e} in ${JSON.stringify(r)}`)}function ke(r,t,e){let s=Oe(t);for(let i=e;i<r.length;i++){let n=r[i];if(s(n))return i}throw new Error(`Cannot find character ${t} from index ${e} in ${JSON.stringify(r)}`)}function Ne(r){return r.slice(0,1).toLowerCase()+r.slice(1)}function Ct(r){let{start:t,end:e}=r;return{start:t,end:e,range:[t,e]}}var Vs=r=>mt.prototype._commentStart(r);function Qs(r,t){let e=t?Vs(r):null;if(e===null)return{text:r,comments:[]};let s={type:"CommentLine",value:r.slice(e+2),...Ct({start:e,end:r.length})};return{text:r.slice(0,e),comments:[s]}}function At(r,t=!0){return e=>{let s=new yt,i=new mt(s),{text:n,comments:a}=Qs(e,t),o=r(n,i);if(o.errors.length!==0){let[{message:p}]=o.errors;throw new SyntaxError(p.replace(/^Parser Error: | at column \d+ in [^]*$/g,""))}return{result:o,comments:a,text:n}}}var Le=At((r,t)=>t.parseBinding(r,"",0)),zs=At((r,t)=>t.parseSimpleBinding(r,"",0)),Re=At((r,t)=>t.parseAction(r,"",0)),Pe=At((r,t)=>t.parseInterpolationExpression(r,"",0)),be=At((r,t)=>t.parseTemplateBindings("",r,"",0,0),!1);var Hs=(r,t,e)=>{if(!(r&&t==null))return Array.isArray(t)||typeof t=="string"?t[e<0?t.length+e:e]:t.at(e)},Tt=Hs;var jt=class{text;constructor(t){this.text=t}getCharacterIndex(t,e){return ke(this.text,t,e)}getCharacterLastIndex(t,e){return Ie(this.text,t,e)}transformSpan(t,{stripSpaces:e=!1,hasParentParens:s=!1}={}){if(!e)return Ct(t);let{outerSpan:i,innerSpan:n,hasParens:a}=Ae(t,this.text,s),o=Ct(n);return a&&(o.extra={parenthesized:!0,parenStart:i.start,parenEnd:i.end}),o}createNode(t,{stripSpaces:e=!0,hasParentParens:s=!1}={}){let{type:i,start:n,end:a}=t,o={...t,...this.transformSpan({start:n,end:a},{stripSpaces:e,hasParentParens:s})};switch(i){case"NumericLiteral":case"StringLiteral":{let p=this.text.slice(o.start,o.end),{value:u}=o;o.extra={...o.extra,raw:p,rawValue:u};break}case"ObjectProperty":{let{shorthand:p}=o;p&&(o.extra={...o.extra,shorthand:p});break}}return o}},Ke=jt;function Zt(r){var t;return!!((t=r.extra)!=null&&t.parenthesized)}function k(r){return Zt(r)?r.extra.parenStart:r.start}function N(r){return Zt(r)?r.extra.parenEnd:r.end}function Be(r){return(r.type==="OptionalCallExpression"||r.type==="OptionalMemberExpression")&&!Zt(r)}function Te(r,t){let{start:e,end:s}=r.sourceSpan;return e>=s||/^\s+$/.test(t.slice(e,s))}var kt,St,h,d,Ot,v,Yt,It=class extends Ke{constructor(e,s){super(s);P(this,h);P(this,kt);P(this,St);Y(this,kt,e),Y(this,St,s)}get node(){return c(this,h,v).call(this,O(this,kt))}transformNode(e){return c(this,h,Yt).call(this,e)}};kt=new WeakMap,St=new WeakMap,h=new WeakSet,d=function(e,{stripSpaces:s=!0,hasParentParens:i=!1}={}){return this.createNode(e,{stripSpaces:s,hasParentParens:i})},Ot=function(e,s,{computed:i,optional:n,end:a=N(s),hasParentParens:o=!1}){if(Te(e,O(this,St))||e.sourceSpan.start===s.start)return s;let p=c(this,h,v).call(this,e),u=Be(p);return c(this,h,d).call(this,{type:n||u?"OptionalMemberExpression":"MemberExpression",object:p,property:s,computed:i,...n?{optional:!0}:u?{optional:!1}:void 0,start:k(p),end:a},{hasParentParens:o})},v=function(e,s=!1){return c(this,h,Yt).call(this,e,s)},Yt=function(e,s=!1){if(e instanceof ot){let{expressions:i}=e;if(i.length!==1)throw new Error("Unexpected 'Interpolation'");return c(this,h,v).call(this,i[0])}if(e instanceof F)return c(this,h,d).call(this,{type:"UnaryExpression",prefix:!0,argument:c(this,h,v).call(this,e.expr),operator:e.operator,...e.sourceSpan},{hasParentParens:s});if(e instanceof A){let{left:i,operation:n,right:a}=e,o=c(this,h,v).call(this,i),p=c(this,h,v).call(this,a),u=k(o),f=N(p),S={left:o,right:p,start:u,end:f};return n==="&&"||n==="||"||n==="??"?c(this,h,d).call(this,{...S,type:"LogicalExpression",operator:n},{hasParentParens:s}):c(this,h,d).call(this,{...S,type:"BinaryExpression",operator:n},{hasParentParens:s})}if(e instanceof it){let{exp:i,name:n,args:a}=e,o=c(this,h,v).call(this,i),p=k(o),u=N(o),f=this.getCharacterIndex(/\S/,this.getCharacterIndex("|",u)+1),S=c(this,h,d).call(this,{type:"Identifier",name:n,start:f,end:f+n.length}),g=a.map(y=>c(this,h,v).call(this,y));return c(this,h,d).call(this,{type:"NGPipeExpression",left:o,right:S,arguments:g,start:p,end:N(g.length===0?S:Tt(!1,g,-1))},{hasParentParens:s})}if(e instanceof X)return c(this,h,d).call(this,{type:"NGChainedExpression",expressions:e.expressions.map(i=>c(this,h,v).call(this,i)),...e.sourceSpan},{hasParentParens:s});if(e instanceof tt){let{condition:i,trueExp:n,falseExp:a}=e,o=c(this,h,v).call(this,i),p=c(this,h,v).call(this,n),u=c(this,h,v).call(this,a);return c(this,h,d).call(this,{type:"ConditionalExpression",test:o,consequent:p,alternate:u,start:k(o),end:N(u)},{hasParentParens:s})}if(e instanceof $)return c(this,h,d).call(this,{type:"NGEmptyExpression",...e.sourceSpan},{hasParentParens:s});if(e instanceof K)return c(this,h,d).call(this,{type:"ThisExpression",...e.sourceSpan},{hasParentParens:s});if(e instanceof st||e instanceof U)return c(this,h,Ot).call(this,e.receiver,c(this,h,v).call(this,e.key),{computed:!0,optional:e instanceof U,end:e.sourceSpan.end,hasParentParens:s});if(e instanceof nt)return c(this,h,d).call(this,{type:"ArrayExpression",elements:e.expressions.map(i=>c(this,h,v).call(this,i)),...e.sourceSpan},{hasParentParens:s});if(e instanceof at){let{keys:i,values:n}=e,a=n.map(p=>c(this,h,v).call(this,p)),o=i.map(({key:p,quoted:u},f)=>{let S=a[f],g=k(S),y=N(S),w=this.getCharacterIndex(/\S/,f===0?e.sourceSpan.start+1:this.getCharacterIndex(",",N(a[f-1]))+1),H=g===w?y:this.getCharacterLastIndex(/\S/,this.getCharacterLastIndex(":",g-1)-1)+1,j={start:w,end:H},T=u?c(this,h,d).call(this,{type:"StringLiteral",value:p,...j}):c(this,h,d).call(this,{type:"Identifier",name:p,...j}),Nt=T.end<T.start||w===g;return c(this,h,d).call(this,{type:"ObjectProperty",key:T,value:S,shorthand:Nt,computed:!1,start:k(T),end:y})});return c(this,h,d).call(this,{type:"ObjectExpression",properties:o,...e.sourceSpan},{hasParentParens:s})}if(e instanceof E){let{value:i}=e;switch(typeof i){case"boolean":return c(this,h,d).call(this,{type:"BooleanLiteral",value:i,...e.sourceSpan},{hasParentParens:s});case"number":return c(this,h,d).call(this,{type:"NumericLiteral",value:i,...e.sourceSpan},{hasParentParens:s});case"object":return c(this,h,d).call(this,{type:"NullLiteral",...e.sourceSpan},{hasParentParens:s});case"string":return c(this,h,d).call(this,{type:"StringLiteral",value:i,...e.sourceSpan},{hasParentParens:s});case"undefined":return c(this,h,d).call(this,{type:"Identifier",name:"undefined",...e.sourceSpan},{hasParentParens:s});default:throw new Error(`Unexpected LiteralPrimitive value type ${typeof i}`)}}if(e instanceof pt||e instanceof D){let i=e instanceof D,{receiver:n,args:a}=e,o=a.length===1?[c(this,h,v).call(this,a[0],!0)]:a.map(S=>c(this,h,v).call(this,S)),p=c(this,h,v).call(this,n),u=Be(p),f=i||u?"OptionalCallExpression":"CallExpression";return c(this,h,d).call(this,{type:f,callee:p,arguments:o,optional:f==="OptionalCallExpression"?i:void 0,start:k(p),end:e.sourceSpan.end},{hasParentParens:s})}if(e instanceof ht){let i=c(this,h,v).call(this,e.expression);return c(this,h,d).call(this,{type:"TSNonNullExpression",expression:i,start:k(i),end:e.sourceSpan.end},{hasParentParens:s})}if(e instanceof ct){let i=c(this,h,v).call(this,e.expression);return c(this,h,d).call(this,{type:"UnaryExpression",prefix:!0,operator:"!",argument:i,start:e.sourceSpan.start,end:N(i)},{hasParentParens:s})}if(e instanceof M||e instanceof _){let{receiver:i,name:n}=e,a=this.getCharacterLastIndex(/\S/,e.sourceSpan.end-1)+1,o=c(this,h,d).call(this,{type:"Identifier",name:n,start:a-n.length,end:a},Te(i,O(this,St))?{hasParentParens:s}:{});return c(this,h,Ot).call(this,i,o,{computed:!1,optional:e instanceof _,hasParentParens:s})}if(e instanceof rt){let i=c(this,h,v).call(this,e.key),n=c(this,h,v).call(this,e.value),a=c(this,h,Ot).call(this,e.receiver,i,{computed:!0,optional:!1,end:this.getCharacterIndex("]",N(i))+1});return c(this,h,d).call(this,{type:"AssignmentExpression",left:a,operator:"=",right:n,start:k(a),end:N(n)},{hasParentParens:s})}if(e instanceof et){let{receiver:i,name:n,value:a}=e,o=c(this,h,v).call(this,a),p=this.getCharacterLastIndex(/\S/,this.getCharacterLastIndex("=",k(o)-1)-1)+1,u=c(this,h,d).call(this,{type:"Identifier",name:n,start:p-n.length,end:p}),f=c(this,h,Ot).call(this,i,u,{computed:!1,optional:!1});return c(this,h,d).call(this,{type:"AssignmentExpression",left:f,operator:"=",right:o,start:k(f),end:N(o)},{hasParentParens:s})}throw Object.assign(new Error("Unexpected node"),{node:e})};function Me(r,t){return new It(r,t).node}function _e(r){return r instanceof ut}function Ue(r){return r instanceof W}var wt,q,x,Fe,C,Xt,te,ee,De,We,Ge,Ve,Jt=class extends It{constructor(e,s){super(void 0,s);P(this,x);P(this,wt);P(this,q);Y(this,wt,e),Y(this,q,s);for(let i of e)c(this,x,De).call(this,i)}get expressions(){return c(this,x,Ge).call(this)}};wt=new WeakMap,q=new WeakMap,x=new WeakSet,Fe=function(){return O(this,wt)[0].key},C=function(e,{stripSpaces:s=!0}={}){return this.createNode(e,{stripSpaces:s})},Xt=function(e){return this.transformNode(e)},te=function(e){return Ne(e.slice(O(this,x,Fe).source.length))},ee=function(e){let s=O(this,q);if(s[e.start]!=='"'&&s[e.start]!=="'")return;let i=s[e.start],n=!1;for(let a=e.start+1;a<s.length;a++)switch(s[a]){case i:if(!n){e.end=a+1;return}default:n=!1;break;case"\\":n=!n;break}},De=function(e){c(this,x,ee).call(this,e.key.span),Ue(e)&&e.value&&c(this,x,ee).call(this,e.value.span)},We=function(e){if(!e.value||e.value.source)return e.value;let s=this.getCharacterIndex(/\S/,e.sourceSpan.start);return{source:"$implicit",span:{start:s,end:s}}},Ge=function(){let e=O(this,wt),[s]=e,i=O(this,q).slice(s.sourceSpan.start,s.sourceSpan.end).trim().length===0?e.slice(1):e,n=[],a=null;for(let[o,p]of i.entries()){if(a&&_e(a)&&Ue(p)&&p.value&&p.value.source===a.key.source){let u=c(this,x,C).call(this,{type:"NGMicrosyntaxKey",name:p.key.source,...p.key.span}),f=(y,w)=>({...y,...this.transformSpan({start:y.start,end:w})}),S=y=>({...f(y,u.end),alias:u}),g=n.pop();if(g.type==="NGMicrosyntaxExpression")n.push(S(g));else if(g.type==="NGMicrosyntaxKeyedExpression"){let y=S(g.expression);n.push(f({...g,expression:y},y.end))}else throw new Error(`Unexpected type ${g.type}`)}else n.push(c(this,x,Ve).call(this,p,o));a=p}return c(this,x,C).call(this,{type:"NGMicrosyntax",body:n,...n.length===0?e[0].sourceSpan:{start:n[0].start,end:Tt(!1,n,-1).end}})},Ve=function(e,s){if(_e(e)){let{key:i,value:n}=e;return n?s===0?c(this,x,C).call(this,{type:"NGMicrosyntaxExpression",expression:c(this,x,Xt).call(this,n.ast),alias:null,...n.sourceSpan}):c(this,x,C).call(this,{type:"NGMicrosyntaxKeyedExpression",key:c(this,x,C).call(this,{type:"NGMicrosyntaxKey",name:c(this,x,te).call(this,i.source),...i.span}),expression:c(this,x,C).call(this,{type:"NGMicrosyntaxExpression",expression:c(this,x,Xt).call(this,n.ast),alias:null,...n.sourceSpan}),start:i.span.start,end:n.sourceSpan.end}):c(this,x,C).call(this,{type:"NGMicrosyntaxKey",name:c(this,x,te).call(this,i.source),...i.span})}else{let{key:i,sourceSpan:n}=e;if(/^let\s$/.test(O(this,q).slice(n.start,n.start+4))){let{value:o}=e;return c(this,x,C).call(this,{type:"NGMicrosyntaxLet",key:c(this,x,C).call(this,{type:"NGMicrosyntaxKey",name:i.source,...i.span}),value:o?c(this,x,C).call(this,{type:"NGMicrosyntaxKey",name:o.source,...o.span}):null,start:n.start,end:o?o.span.end:i.span.end})}else{let o=c(this,x,We).call(this,e);return c(this,x,C).call(this,{type:"NGMicrosyntaxAs",key:c(this,x,C).call(this,{type:"NGMicrosyntaxKey",name:o.source,...o.span}),alias:c(this,x,C).call(this,{type:"NGMicrosyntaxKey",name:i.source,...i.span}),start:o.span.start,end:i.span.end})}}};function Qe(r,t){return new Jt(r,t).expressions}function Mt({result:{ast:r},text:t,comments:e}){return Object.assign(Me(r,t),{comments:e})}function ze({result:{templateBindings:r},text:t}){return Qe(r,t)}var qe=r=>Mt(Le(r));var He=r=>Mt(Pe(r)),se=r=>Mt(Re(r)),je=r=>ze(be(r));function re(r){var s,i,n;let t=((s=r.range)==null?void 0:s[0])??r.start,e=(n=((i=r.declaration)==null?void 0:i.decorators)??r.decorators)==null?void 0:n[0];return e?Math.min(re(e),t):t}function Ye(r){var t;return((t=r.range)==null?void 0:t[1])??r.end}function _t(r){return{astFormat:"estree",parse(t){let e=r(t);return{type:"NGRoot",node:r===se&&e.type!=="NGChainedExpression"?{...e,type:"NGChainedExpression",expressions:[e]}:e}},locStart:re,locEnd:Ye}}var js=_t(se),Ys=_t(qe),Zs=_t(He),Js=_t(je);var Ur=ne;export{Ur as default,ie as parsers};