{"version":3,"file":"polyfills.f06a60f9a780e97b.js","mappings":"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A;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMy8C,SAAN,CAAgB;AACZthE,EAAAA,WAAW,GAAG;AACV,SAAKuhE,aAAL,GAAqB,IAArB;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;AACIC,EAAAA,WAAW,CAACC,OAAD,EAAU37C,QAAV,EAAoB47C,YAAY,GAAG,EAAnC,EAAuC;AAC9C,UAAMC,gBAAgB,GAAGC,uBAAuB,CAACH,OAAD,CAAhD;AACAA,IAAAA,OAAO,GAAGI,aAAa,CAACJ,OAAD,CAAvB;AACAA,IAAAA,OAAO,GAAG,KAAKK,iBAAL,CAAuBL,OAAvB,CAAV;;AACA,UAAMM,aAAa,GAAG,KAAKC,aAAL,CAAmBP,OAAnB,EAA4B37C,QAA5B,EAAsC47C,YAAtC,CAAtB;;AACA,WAAO,CAACK,aAAD,EAAgB,GAAGJ,gBAAnB,EAAqCv6C,IAArC,CAA0C,IAA1C,CAAP;AACH;;AACD06C,EAAAA,iBAAiB,CAACL,OAAD,EAAU;AACvBA,IAAAA,OAAO,GAAG,KAAKQ,kCAAL,CAAwCR,OAAxC,CAAV;AACA,WAAO,KAAKS,6BAAL,CAAmCT,OAAnC,CAAP;AACH;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;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MAAN,GAAe,CAAhC,CAAX;;AACA,MAAI6kE,EAAE,IAAIC,EAAN,KAAaD,EAAE,IAAI;AAAG;AAAT,KAAmCA,EAAE,IAAI;AAAG;AAAzD,GAAJ,EAAsF;AAClF,UAAME,SAAS,GAAG7hE,KAAK,CAACiX,SAAN,CAAgB,CAAhB,EAAmBjX,KAAK,CAAClD,MAAN,GAAe,CAAlC,CAAlB,CADkF,CAElF;AACA;;AACA,QAAI+kE,SAAS,CAAC74D,OAAV,CAAkB,IAAlB,KAA2B,CAAC,CAA5B,IAAiC64D,SAAS,CAAC74D,OAAV,CAAkB,GAAlB,KAA0B,CAAC,CAAhE,EAAmE;AAC/DhJ,MAAAA,KAAK,GAAG6hE,SAAR;AACH;AACJ;;AACD,SAAO7hE,KAAP;AACH;;AACD,SAASwhE,SAAT,CAAmBxhE,KAAnB,EAA0B;AACtB,SAAOA,KAAK,CACP8e,OADE,CACM,aADN,EACqB3T,CAAC,IAAI;AAC7B,WAAOA,CAAC,CAACyT,MAAF,CAAS,CAAT,IAAc,GAAd,GAAoBzT,CAAC,CAACyT,MAAF,CAAS,CAAT,CAA3B;AACH,GAHM,EAIFhC,WAJE,EAAP;AAKH;;AAED,MAAMklD,cAAc,GAAG,YAAvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,kCAAkC,GAAG,CAA3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,cAAN,CAAqB;AACjBjqE,EAAAA,WAAW,CAACkqE,cAAD,EAAiB;AACxB,SAAKA,cAAL,GAAsBA,cAAtB;AACA;;AACA,SAAKC,iBAAL,GAA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CztG,OAAD,CAAb;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACjjsBA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACAmiH,oEAAA,GAAqBC,4DAArB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMG,cAAc,GAAG,GAAvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAM9T,iBAAiB,GAAG,GAA1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,YAAY,GAAG,IAArB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMj+E,mBAAmB,GAAG,QAA5B;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAAS+xF,YAAT,CAAsB5xF,YAAtB,EAAoCnB,WAApC,EAAiDo+B,QAAjD,EAA2D40D,oBAA3D,EAAiFC,mBAAmB,GAAG,EAAvG,EAA2G;AACvG,QAAMC,aAAa,GAAG,EAAtB;AACA,QAAMC,qBAAqB,GAAG,EAA9B;AACA,QAAMC,oBAAoB,GAAG,EAA7B;AACA,QAAMv5D,QAAQ,GAAGw5D,aAAa,CAAClyF,YAAY,CAAC,CAAD,CAAb,EAAkBA,YAAY,CAACoB,GAAb,CAAiB,CAAjB,CAAlB,CAA9B;AACA,QAAM+wF,mBAAmB,GAAG,CAACz5D,QAAQ,CAAC9lC,IAAV,CAA5B;AACA,QAAMsT,gBAAgB,GAAG,EAAzB;AACA,MAAInF,aAAa,GAAG23B,QAAQ,CAAC9lC,IAA7B;;AACA,OAAK,IAAIzrB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG64B,YAAY,CAAC54B,MAAjC,EAAyCD,CAAC,EAA1C,EAA8C;AAC1C,UAAM;AAAE25B,MAAAA,WAAF;AAAesxF,MAAAA,eAAe,GAAGC,sBAAsB,CAAClrH,CAAD,CAAvD;AAA4DmrH,MAAAA;AAA5D,QAAoFC,gBAAgB,CAACvyF,YAAY,CAAC74B,CAAD,CAAb,EAAkB64B,YAAY,CAACoB,GAAb,CAAiBj6B,CAAjB,CAAlB,CAA1G;AACA45B,IAAAA,aAAa,IAAK,KAAIqxF,eAAgB,IAAGtxF,WAAY,EAArD;;AACA,QAAIjC,WAAW,KAAK/4B,SAApB,EAA+B;AAC3BisH,MAAAA,aAAa,CAACK,eAAD,CAAb,GAAiCvzF,WAAW,CAAC13B,CAAC,GAAG,CAAL,CAA5C;AACA6qH,MAAAA,qBAAqB,CAACI,eAAD,CAArB,GAAyCN,mBAAmB,CAAC3qH,CAAC,GAAG,CAAL,CAA5D;AACH;;AACD++B,IAAAA,gBAAgB,CAAC97B,IAAjB,CAAsBgoH,eAAtB;;AACA,QAAIE,mBAAmB,KAAKxsH,SAA5B,EAAuC;AACnCmsH,MAAAA,oBAAoB,CAACG,eAAD,CAApB,GAAwCE,mBAAxC;AACH;;AACDH,IAAAA,mBAAmB,CAAC/nH,IAApB,CAAyB02B,WAAzB;AACH;;AACD,QAAMgnE,SAAS,GAAGpvC,QAAQ,CAACr4B,QAAT,IAAqB5N,+DAAY,CAACsO,aAAD,EAAgB23B,QAAQ,CAACxmC,OAAT,IAAoB,EAApC,CAAnD;AACA,QAAMoO,SAAS,GAAGo4B,QAAQ,CAACp4B,SAAT,GAAqBo4B,QAAQ,CAACp4B,SAAT,CAAmBzf,MAAnB,CAA0B+B,EAAE,IAAIA,EAAE,KAAKklF,SAAvC,CAArB,GAAyE,EAA3F;AACA,SAAO;AACHllF,IAAAA,EAAE,EAAEklF,SADD;AAEHxnE,IAAAA,SAFG;AAGHyxF,IAAAA,aAHG;AAIHC,IAAAA,qBAJG;AAKHp/F,IAAAA,IAAI,EAAEmO,aALH;AAMHV,IAAAA,QAAQ,EAAEq4B,QAAQ,CAACr4B,QANhB;AAOHnO,IAAAA,OAAO,EAAEwmC,QAAQ,CAACxmC,OAAT,IAAoB,EAP1B;AAQHkO,IAAAA,WAAW,EAAEs4B,QAAQ,CAACt4B,WAAT,IAAwB,EARlC;AASHJ,IAAAA,YAAY,EAAEmyF,mBATX;AAUHN,IAAAA,oBAVG;AAWH3rF,IAAAA,gBAXG;AAYH+rF,IAAAA,oBAZG;AAaHh1D,IAAAA;AAbG,GAAP;AAeH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASi1D,aAAT,CAAuB/wF,MAAvB,EAA+BC,GAA/B,EAAoC;AAChC,QAAM;AAAExO,IAAAA,IAAI,EAAEmO,aAAR;AAAuByxF,IAAAA;AAAvB,MAAiCC,UAAU,CAACtxF,MAAD,EAASC,GAAT,CAAjD;;AACA,MAAIoxF,KAAK,KAAK1sH,SAAd,EAAyB;AACrB,WAAO;AAAE8sB,MAAAA,IAAI,EAAEmO;AAAR,KAAP;AACH,GAFD,MAGK;AACD,UAAM,CAAC2xF,gBAAD,EAAmB,GAAGpyF,SAAtB,IAAmCkyF,KAAK,CAACljG,KAAN,CAAYuQ,mBAAZ,CAAzC;AACA,UAAM,CAAC4gE,cAAD,EAAiBpgE,QAAjB,IAA6BqyF,gBAAgB,CAACpjG,KAAjB,CAAuBwuF,YAAvB,EAAqC,CAArC,CAAnC;AACA,QAAI,CAAC5rF,OAAD,EAAUkO,WAAV,IAAyBqgE,cAAc,CAACnxE,KAAf,CAAqBuuF,iBAArB,EAAwC,CAAxC,CAA7B;;AACA,QAAIz9E,WAAW,KAAKt6B,SAApB,EAA+B;AAC3Bs6B,MAAAA,WAAW,GAAGlO,OAAd;AACAA,MAAAA,OAAO,GAAGpsB,SAAV;AACH;;AACD,QAAIs6B,WAAW,KAAK,EAApB,EAAwB;AACpBA,MAAAA,WAAW,GAAGt6B,SAAd;AACH;;AACD,WAAO;AAAE8sB,MAAAA,IAAI,EAAEmO,aAAR;AAAuB7O,MAAAA,OAAvB;AAAgCkO,MAAAA,WAAhC;AAA6CC,MAAAA,QAA7C;AAAuDC,MAAAA;AAAvD,KAAP;AACH;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASiyF,gBAAT,CAA0BpxF,MAA1B,EAAkCC,GAAlC,EAAuC;AACnC,QAAM;AAAExO,IAAAA,IAAI,EAAEkO,WAAR;AAAqB0xF,IAAAA;AAArB,MAA+BC,UAAU,CAACtxF,MAAD,EAASC,GAAT,CAA/C;;AACA,MAAIoxF,KAAK,KAAK1sH,SAAd,EAAyB;AACrB,WAAO;AAAEg7B,MAAAA;AAAF,KAAP;AACH,GAFD,MAGK;AACD,UAAM,CAACsxF,eAAD,EAAkBE,mBAAlB,IAAyCE,KAAK,CAACljG,KAAN,CAAYwuF,YAAZ,CAA/C;AACA,WAAO;AAAEh9E,MAAAA,WAAF;AAAesxF,MAAAA,eAAf;AAAgCE,MAAAA;AAAhC,KAAP;AACH;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASG,UAAT,CAAoBtxF,MAApB,EAA4BC,GAA5B,EAAiC;AAC7B,MAAIA,GAAG,CAAClY,MAAJ,CAAW,CAAX,MAAkByoG,cAAtB,EAAsC;AAClC,WAAO;AAAE/+F,MAAAA,IAAI,EAAEuO;AAAR,KAAP;AACH,GAFD,MAGK;AACD,UAAMwxF,UAAU,GAAGC,cAAc,CAACzxF,MAAD,EAASC,GAAT,CAAjC;AACA,WAAO;AACHoxF,MAAAA,KAAK,EAAErxF,MAAM,CAAC5f,SAAP,CAAiB,CAAjB,EAAoBoxG,UAApB,CADJ;AAEH//F,MAAAA,IAAI,EAAEuO,MAAM,CAAC5f,SAAP,CAAiBoxG,UAAU,GAAG,CAA9B;AAFH,KAAP;AAIH;AACJ;;AACD,SAASN,sBAAT,CAAgC1jG,KAAhC,EAAuC;AACnC,SAAOA,KAAK,KAAK,CAAV,GAAc,IAAd,GAAsB,MAAKA,KAAK,GAAG,CAAE,EAA5C;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASikG,cAAT,CAAwBzxF,MAAxB,EAAgCC,GAAhC,EAAqC;AACjC,OAAK,IAAIyxF,WAAW,GAAG,CAAlB,EAAqBC,QAAQ,GAAG,CAArC,EAAwCD,WAAW,GAAG1xF,MAAM,CAAC/5B,MAA7D,EAAqEyrH,WAAW,IAAIC,QAAQ,EAA5F,EAAgG;AAC5F,QAAI1xF,GAAG,CAAC0xF,QAAD,CAAH,KAAkB,IAAtB,EAA4B;AACxBA,MAAAA,QAAQ;AACX,KAFD,MAGK,IAAI3xF,MAAM,CAAC0xF,WAAD,CAAN,KAAwBlB,cAA5B,EAA4C;AAC7C,aAAOkB,WAAP;AACH;AACJ;;AACD,QAAM,IAAI1wH,KAAJ,CAAW,6CAA4Ci/B,GAAI,IAA3D,CAAN;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM2xF,uBAAN,SAAsC5wH,KAAtC,CAA4C;AACxCE,EAAAA,WAAW,CAAC2wH,aAAD,EAAgB;AACvB,UAAO,4BAA2BC,eAAe,CAACD,aAAD,CAAgB,GAAjE;AACA,SAAKA,aAAL,GAAqBA,aAArB;AACA,SAAK9tH,IAAL,GAAY,yBAAZ;AACH;;AALuC;;AAO5C,SAASguH,yBAAT,CAAmCp/G,CAAnC,EAAsC;AAClC,SAAOA,CAAC,CAAC5O,IAAF,KAAW,yBAAlB;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASiuH,WAAT,CAAqB7U,YAArB,EAAmCt+E,YAAnC,EAAiD+xF,aAAjD,EAAgE;AAC5D,QAAMphH,OAAO,GAAGihH,YAAY,CAAC5xF,YAAD,EAAe+xF,aAAf,CAA5B,CAD4D,CAE5D;;AACA,MAAIqB,WAAW,GAAG9U,YAAY,CAAC3tG,OAAO,CAACiS,EAAT,CAA9B,CAH4D,CAI5D;;AACA,MAAIjS,OAAO,CAAC2vB,SAAR,KAAsBx6B,SAA1B,EAAqC;AACjC,SAAK,IAAIqB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGwJ,OAAO,CAAC2vB,SAAR,CAAkBl5B,MAAtB,IAAgCgsH,WAAW,KAAKttH,SAAhE,EAA2EqB,CAAC,EAA5E,EAAgF;AAC5EisH,MAAAA,WAAW,GAAG9U,YAAY,CAAC3tG,OAAO,CAAC2vB,SAAR,CAAkBn5B,CAAlB,CAAD,CAA1B;AACH;AACJ;;AACD,MAAIisH,WAAW,KAAKttH,SAApB,EAA+B;AAC3B,UAAM,IAAIitH,uBAAJ,CAA4BpiH,OAA5B,CAAN;AACH;;AACD,SAAO,CACHyiH,WAAW,CAACpzF,YADT,EACuBozF,WAAW,CAACltF,gBAAZ,CAA6B5kB,GAA7B,CAAiCuf,WAAW,IAAI;AACtE,QAAIlwB,OAAO,CAACohH,aAAR,CAAsBtuH,cAAtB,CAAqCo9B,WAArC,CAAJ,EAAuD;AACnD,aAAOlwB,OAAO,CAACohH,aAAR,CAAsBlxF,WAAtB,CAAP;AACH,KAFD,MAGK;AACD,YAAM,IAAI1+B,KAAJ,CAAW,sFAAqF8wH,eAAe,CAACtiH,OAAD,CAAU,KAA/G,GACX,oDAAmDkwB,WAAY,wCAD9D,CAAN;AAEH;AACJ,GARyB,CADvB,CAAP;AAWH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASwyF,gBAAT,CAA0BtyF,aAA1B,EAAyC;AACrC,QAAMxO,KAAK,GAAGwO,aAAa,CAACzR,KAAd,CAAoB,aAApB,CAAd;AACA,QAAM0Q,YAAY,GAAG,CAACzN,KAAK,CAAC,CAAD,CAAN,CAArB;AACA,QAAM2T,gBAAgB,GAAG,EAAzB;;AACA,OAAK,IAAI/+B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGorB,KAAK,CAACnrB,MAAN,GAAe,CAAnC,EAAsCD,CAAC,IAAI,CAA3C,EAA8C;AAC1C++B,IAAAA,gBAAgB,CAAC97B,IAAjB,CAAsBmoB,KAAK,CAACprB,CAAD,CAA3B;AACA64B,IAAAA,YAAY,CAAC51B,IAAb,CAAmB,GAAEmoB,KAAK,CAACprB,CAAC,GAAG,CAAL,CAAQ,EAAlC;AACH;;AACD,QAAMmsH,eAAe,GAAGtzF,YAAY,CAAC1e,GAAb,CAAiB01B,IAAI,IAAIA,IAAI,CAAC9tB,MAAL,CAAY,CAAZ,MAAmByoG,cAAnB,GAAoC,OAAO36E,IAA3C,GAAkDA,IAA3E,CAAxB;AACA,SAAO;AACHpkB,IAAAA,IAAI,EAAEmO,aADH;AAEHf,IAAAA,YAAY,EAAEuzF,kBAAkB,CAACvzF,YAAD,EAAeszF,eAAf,CAF7B;AAGHptF,IAAAA;AAHG,GAAP;AAKH;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASstF,qBAAT,CAA+BxzF,YAA/B,EAA6CkG,gBAAgB,GAAG,EAAhE,EAAoE;AAChE,MAAInF,aAAa,GAAGf,YAAY,CAAC,CAAD,CAAhC;;AACA,OAAK,IAAI74B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG++B,gBAAgB,CAAC9+B,MAArC,EAA6CD,CAAC,EAA9C,EAAkD;AAC9C45B,IAAAA,aAAa,IAAK,KAAImF,gBAAgB,CAAC/+B,CAAD,CAAI,IAAG64B,YAAY,CAAC74B,CAAC,GAAG,CAAL,CAAQ,EAAjE;AACH;;AACD,SAAO;AACHyrB,IAAAA,IAAI,EAAEmO,aADH;AAEHf,IAAAA,YAAY,EAAEuzF,kBAAkB,CAACvzF,YAAD,EAAeA,YAAf,CAF7B;AAGHkG,IAAAA;AAHG,GAAP;AAKH;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASqtF,kBAAT,CAA4BpyF,MAA5B,EAAoCC,GAApC,EAAyC;AACrC11B,EAAAA,MAAM,CAACyC,cAAP,CAAsBgzB,MAAtB,EAA8B,KAA9B,EAAqC;AAAE72B,IAAAA,KAAK,EAAE82B;AAAT,GAArC;AACA,SAAOD,MAAP;AACH;;AACD,SAAS8xF,eAAT,CAAyBtiH,OAAzB,EAAkC;AAC9B,QAAM8iH,aAAa,GAAG9iH,OAAO,CAACuhB,OAAR,IAAoB,OAAMvhB,OAAO,CAACuhB,OAAQ,GAAhE;AACA,QAAMwhG,MAAM,GAAG/iH,OAAO,CAAC2vB,SAAR,IAAqB3vB,OAAO,CAAC2vB,SAAR,CAAkBl5B,MAAlB,GAA2B,CAAhD,GACV,KAAIuJ,OAAO,CAAC2vB,SAAR,CAAkBhf,GAAlB,CAAsBoV,CAAC,IAAK,IAAGA,CAAE,GAAjC,EAAqCjN,IAArC,CAA0C,IAA1C,CAAgD,GAD1C,GAEX,EAFJ;AAGA,SAAQ,IAAG9Y,OAAO,CAACiS,EAAG,IAAG8wG,MAAO,MAAK/iH,OAAO,CAACiiB,IAAK,IAAG6gG,aAAc,GAAnE;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASE,gBAAT,CAA0BrV,YAA1B,EAAwC;AACpC;AACA,MAAI,CAACmT,SAAS,CAACmC,SAAf,EAA0B;AACtBnC,IAAAA,SAAS,CAACmC,SAAV,GAAsBA,SAAtB;AACH;;AACD,MAAI,CAACnC,SAAS,CAACoC,YAAf,EAA6B;AACzBpC,IAAAA,SAAS,CAACoC,YAAV,GAAyB,EAAzB;AACH;;AACDnoH,EAAAA,MAAM,CAAC6T,IAAP,CAAY++F,YAAZ,EAA0B79F,OAA1B,CAAkC5c,GAAG,IAAI;AACrC4tH,IAAAA,SAAS,CAACoC,YAAV,CAAuBhwH,GAAvB,IAA8BwvH,gBAAgB,CAAC/U,YAAY,CAACz6G,GAAD,CAAb,CAA9C;AACH,GAFD;AAGH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASiwH,iBAAT,GAA6B;AACzBrC,EAAAA,SAAS,CAACmC,SAAV,GAAsB9tH,SAAtB;AACA2rH,EAAAA,SAAS,CAACoC,YAAV,GAAyB,EAAzB;AACH;AACD;AACA;AACA;AACA;AACA;;;AACA,SAASD,SAAT,CAAmB5zF,YAAnB,EAAiC+xF,aAAjC,EAAgD;AAC5C,MAAI;AACA,WAAOoB,WAAW,CAAC1B,SAAS,CAACoC,YAAX,EAAyB7zF,YAAzB,EAAuC+xF,aAAvC,CAAlB;AACH,GAFD,CAGA,OAAOj+G,CAAP,EAAU;AACNE,IAAAA,OAAO,CAAC+rG,IAAR,CAAajsG,CAAC,CAACnD,OAAf;AACA,WAAO,CAACqvB,YAAD,EAAe+xF,aAAf,CAAP;AACH;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM3iH,OAAO,GAAK,eAAe,CAAC,MAAO,OAAO2kH,UAAP,KAAsB,WAAtB,IAAqCA,UAAtC,IACnC,OAAOryH,MAAP,KAAkB,WAAlB,IAAiCA,MADE,IACU,OAAOuM,MAAP,KAAkB,WAAlB,IAAiCA,MAD3C,IAEnC,OAAOnD,IAAP,KAAgB,WAAhB,IAA+B,OAAOiF,iBAAP,KAA6B,WAA5D,IACGjF,IAAI,YAAYiF,iBADnB,IACwCjF,IAHZ,GAAjC;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMkpH,WAAW,GAAG,UAAUh0F,YAAV,EAAwB,GAAGnB,WAA3B,EAAwC;AACxD,MAAIm1F,WAAW,CAACJ,SAAhB,EAA2B;AACvB;AACA,UAAMR,WAAW,GAAGY,WAAW,CAACJ,SAAZ,CAAsB5zF,YAAtB,EAAoCnB,WAApC,CAApB;AACAmB,IAAAA,YAAY,GAAGozF,WAAW,CAAC,CAAD,CAA1B;AACAv0F,IAAAA,WAAW,GAAGu0F,WAAW,CAAC,CAAD,CAAzB;AACH;;AACD,MAAIziH,OAAO,GAAGsjH,UAAU,CAACj0F,YAAY,CAAC,CAAD,CAAb,EAAkBA,YAAY,CAACoB,GAAb,CAAiB,CAAjB,CAAlB,CAAxB;;AACA,OAAK,IAAIj6B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG64B,YAAY,CAAC54B,MAAjC,EAAyCD,CAAC,EAA1C,EAA8C;AAC1CwJ,IAAAA,OAAO,IAAIkuB,WAAW,CAAC13B,CAAC,GAAG,CAAL,CAAX,GAAqB8sH,UAAU,CAACj0F,YAAY,CAAC74B,CAAD,CAAb,EAAkB64B,YAAY,CAACoB,GAAb,CAAiBj6B,CAAjB,CAAlB,CAA1C;AACH;;AACD,SAAOwJ,OAAP;AACH,CAZD;;AAaA,MAAMujH,YAAY,GAAG,GAArB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASD,UAAT,CAAoBnzF,WAApB,EAAiCqzF,cAAjC,EAAiD;AAC7C,SAAOA,cAAc,CAACjrG,MAAf,CAAsB,CAAtB,MAA6BgrG,YAA7B,GACHpzF,WAAW,CAACvf,SAAZ,CAAsBqxG,cAAc,CAAC9xF,WAAD,EAAcqzF,cAAd,CAAd,GAA8C,CAApE,CADG,GAEHrzF,WAFJ;AAGH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["./src/polyfills.ts","./node_modules/zone.js/fesm2015/zone.js","./node_modules/@angular/compiler/fesm2020/compiler.mjs","./node_modules/@angular/localize/fesm2020/init.mjs","./node_modules/@angular/localize/fesm2020/localize.mjs"],"sourcesContent":["/***************************************************************************************************\n * Load `$localize` onto the global scope - used if i18n tags appear in Angular templates.\n */\nimport '@angular/localize/init';\n/**\n * This file includes polyfills needed by Angular and is loaded before the app.\n * You can add your own extra polyfills to this file.\n *\n * This file is divided into 2 sections:\n * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\n * 2. Application imports. Files imported after ZoneJS that should be loaded before your main\n * file.\n *\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\n *\n * Learn more in https://angular.io/guide/browser-support\n */\n\n/***************************************************************************************************\n * BROWSER POLYFILLS\n */\n\n/**\n * By default, zone.js will patch all possible macroTask and DomEvents\n * user can disable parts of macroTask/DomEvents patch by setting following flags\n * because those flags need to be set before `zone.js` being loaded, and webpack\n * will put import in the top of bundle, so user need to create a separate file\n * in this directory (for example: zone-flags.ts), and put the following flags\n * into that file, and then add the following code before importing zone.js.\n * import './zone-flags';\n *\n * The flags allowed in zone-flags.ts are listed here.\n *\n * The following flags will work for all browsers.\n *\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\n *\n * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\n * with the following flag, it will bypass `zone.js` patch for IE/Edge\n *\n * (window as any).__Zone_enable_cross_context_check = true;\n *\n */\n\n/***************************************************************************************************\n * Zone JS is required by default for Angular itself.\n */\nimport 'zone.js'; // Included with Angular CLI.\n\n\n/***************************************************************************************************\n * APPLICATION IMPORTS\n */\n","'use strict';\n/**\n * @license Angular v14.2.0-next.0\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n((function (global) {\n const performance = global['performance'];\n function mark(name) {\n performance && performance['mark'] && performance['mark'](name);\n }\n function performanceMeasure(name, label) {\n performance && performance['measure'] && performance['measure'](name, label);\n }\n mark('Zone');\n // Initialize before it's accessed below.\n // __Zone_symbol_prefix global can be used to override the default zone\n // symbol prefix with a custom one if needed.\n const symbolPrefix = global['__Zone_symbol_prefix'] || '__zone_symbol__';\n function __symbol__(name) {\n return symbolPrefix + name;\n }\n const checkDuplicate = global[__symbol__('forceDuplicateZoneCheck')] === true;\n if (global['Zone']) {\n // if global['Zone'] already exists (maybe zone.js was already loaded or\n // some other lib also registered a global object named Zone), we may need\n // to throw an error, but sometimes user may not want this error.\n // For example,\n // we have two web pages, page1 includes zone.js, page2 doesn't.\n // and the 1st time user load page1 and page2, everything work fine,\n // but when user load page2 again, error occurs because global['Zone'] already exists.\n // so we add a flag to let user choose whether to throw this error or not.\n // By default, if existing Zone is from zone.js, we will not throw the error.\n if (checkDuplicate || typeof global['Zone'].__symbol__ !== 'function') {\n throw new Error('Zone already loaded.');\n }\n else {\n return global['Zone'];\n }\n }\n class Zone {\n constructor(parent, zoneSpec) {\n this._parent = parent;\n this._name = zoneSpec ? zoneSpec.name || 'unnamed' : '';\n this._properties = zoneSpec && zoneSpec.properties || {};\n this._zoneDelegate =\n new _ZoneDelegate(this, this._parent && this._parent._zoneDelegate, zoneSpec);\n }\n static assertZonePatched() {\n if (global['Promise'] !== patches['ZoneAwarePromise']) {\n throw new Error('Zone.js has detected that ZoneAwarePromise `(window|global).Promise` ' +\n 'has been overwritten.\\n' +\n 'Most likely cause is that a Promise polyfill has been loaded ' +\n 'after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. ' +\n 'If you must load one, do so before loading zone.js.)');\n }\n }\n static get root() {\n let zone = Zone.current;\n while (zone.parent) {\n zone = zone.parent;\n }\n return zone;\n }\n static get current() {\n return _currentZoneFrame.zone;\n }\n static get currentTask() {\n return _currentTask;\n }\n // tslint:disable-next-line:require-internal-with-underscore\n static __load_patch(name, fn, ignoreDuplicate = false) {\n if (patches.hasOwnProperty(name)) {\n // `checkDuplicate` option is defined from global variable\n // so it works for all modules.\n // `ignoreDuplicate` can work for the specified module\n if (!ignoreDuplicate && checkDuplicate) {\n throw Error('Already loaded patch: ' + name);\n }\n }\n else if (!global['__Zone_disable_' + name]) {\n const perfName = 'Zone:' + name;\n mark(perfName);\n patches[name] = fn(global, Zone, _api);\n performanceMeasure(perfName, perfName);\n }\n }\n get parent() {\n return this._parent;\n }\n get name() {\n return this._name;\n }\n get(key) {\n const zone = this.getZoneWith(key);\n if (zone)\n return zone._properties[key];\n }\n getZoneWith(key) {\n let current = this;\n while (current) {\n if (current._properties.hasOwnProperty(key)) {\n return current;\n }\n current = current._parent;\n }\n return null;\n }\n fork(zoneSpec) {\n if (!zoneSpec)\n throw new Error('ZoneSpec required!');\n return this._zoneDelegate.fork(this, zoneSpec);\n }\n wrap(callback, source) {\n if (typeof callback !== 'function') {\n throw new Error('Expecting function got: ' + callback);\n }\n const _callback = this._zoneDelegate.intercept(this, callback, source);\n const zone = this;\n return function () {\n return zone.runGuarded(_callback, this, arguments, source);\n };\n }\n run(callback, applyThis, applyArgs, source) {\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n }\n finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n }\n runGuarded(callback, applyThis = null, applyArgs, source) {\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n }\n catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n }\n finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n }\n runTask(task, applyThis, applyArgs) {\n if (task.zone != this) {\n throw new Error('A task can only be run in the zone of creation! (Creation: ' +\n (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')');\n }\n // https://github.com/angular/zone.js/issues/778, sometimes eventTask\n // will run in notScheduled(canceled) state, we should not try to\n // run such kind of task but just return\n if (task.state === notScheduled && (task.type === eventTask || task.type === macroTask)) {\n return;\n }\n const reEntryGuard = task.state != running;\n reEntryGuard && task._transitionTo(running, scheduled);\n task.runCount++;\n const previousTask = _currentTask;\n _currentTask = task;\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n if (task.type == macroTask && task.data && !task.data.isPeriodic) {\n task.cancelFn = undefined;\n }\n try {\n return this._zoneDelegate.invokeTask(this, task, applyThis, applyArgs);\n }\n catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n }\n finally {\n // if the task's state is notScheduled or unknown, then it has already been cancelled\n // we should not reset the state to scheduled\n if (task.state !== notScheduled && task.state !== unknown) {\n if (task.type == eventTask || (task.data && task.data.isPeriodic)) {\n reEntryGuard && task._transitionTo(scheduled, running);\n }\n else {\n task.runCount = 0;\n this._updateTaskCount(task, -1);\n reEntryGuard &&\n task._transitionTo(notScheduled, running, notScheduled);\n }\n }\n _currentZoneFrame = _currentZoneFrame.parent;\n _currentTask = previousTask;\n }\n }\n scheduleTask(task) {\n if (task.zone && task.zone !== this) {\n // check if the task was rescheduled, the newZone\n // should not be the children of the original zone\n let newZone = this;\n while (newZone) {\n if (newZone === task.zone) {\n throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${task.zone.name}`);\n }\n newZone = newZone.parent;\n }\n }\n task._transitionTo(scheduling, notScheduled);\n const zoneDelegates = [];\n task._zoneDelegates = zoneDelegates;\n task._zone = this;\n try {\n task = this._zoneDelegate.scheduleTask(this, task);\n }\n catch (err) {\n // should set task's state to unknown when scheduleTask throw error\n // because the err may from reschedule, so the fromState maybe notScheduled\n task._transitionTo(unknown, scheduling, notScheduled);\n // TODO: @JiaLiPassion, should we check the result from handleError?\n this._zoneDelegate.handleError(this, err);\n throw err;\n }\n if (task._zoneDelegates === zoneDelegates) {\n // we have to check because internally the delegate can reschedule the task.\n this._updateTaskCount(task, 1);\n }\n if (task.state == scheduling) {\n task._transitionTo(scheduled, scheduling);\n }\n return task;\n }\n scheduleMicroTask(source, callback, data, customSchedule) {\n return this.scheduleTask(new ZoneTask(microTask, source, callback, data, customSchedule, undefined));\n }\n scheduleMacroTask(source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(macroTask, source, callback, data, customSchedule, customCancel));\n }\n scheduleEventTask(source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(eventTask, source, callback, data, customSchedule, customCancel));\n }\n cancelTask(task) {\n if (task.zone != this)\n throw new Error('A task can only be cancelled in the zone of creation! (Creation: ' +\n (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')');\n task._transitionTo(canceling, scheduled, running);\n try {\n this._zoneDelegate.cancelTask(this, task);\n }\n catch (err) {\n // if error occurs when cancelTask, transit the state to unknown\n task._transitionTo(unknown, canceling);\n this._zoneDelegate.handleError(this, err);\n throw err;\n }\n this._updateTaskCount(task, -1);\n task._transitionTo(notScheduled, canceling);\n task.runCount = 0;\n return task;\n }\n _updateTaskCount(task, count) {\n const zoneDelegates = task._zoneDelegates;\n if (count == -1) {\n task._zoneDelegates = null;\n }\n for (let i = 0; i < zoneDelegates.length; i++) {\n zoneDelegates[i]._updateTaskCount(task.type, count);\n }\n }\n }\n // tslint:disable-next-line:require-internal-with-underscore\n Zone.__symbol__ = __symbol__;\n const DELEGATE_ZS = {\n name: '',\n onHasTask: (delegate, _, target, hasTaskState) => delegate.hasTask(target, hasTaskState),\n onScheduleTask: (delegate, _, target, task) => delegate.scheduleTask(target, task),\n onInvokeTask: (delegate, _, target, task, applyThis, applyArgs) => delegate.invokeTask(target, task, applyThis, applyArgs),\n onCancelTask: (delegate, _, target, task) => delegate.cancelTask(target, task)\n };\n class _ZoneDelegate {\n constructor(zone, parentDelegate, zoneSpec) {\n this._taskCounts = { 'microTask': 0, 'macroTask': 0, 'eventTask': 0 };\n this.zone = zone;\n this._parentDelegate = parentDelegate;\n this._forkZS = zoneSpec && (zoneSpec && zoneSpec.onFork ? zoneSpec : parentDelegate._forkZS);\n this._forkDlgt = zoneSpec && (zoneSpec.onFork ? parentDelegate : parentDelegate._forkDlgt);\n this._forkCurrZone =\n zoneSpec && (zoneSpec.onFork ? this.zone : parentDelegate._forkCurrZone);\n this._interceptZS =\n zoneSpec && (zoneSpec.onIntercept ? zoneSpec : parentDelegate._interceptZS);\n this._interceptDlgt =\n zoneSpec && (zoneSpec.onIntercept ? parentDelegate : parentDelegate._interceptDlgt);\n this._interceptCurrZone =\n zoneSpec && (zoneSpec.onIntercept ? this.zone : parentDelegate._interceptCurrZone);\n this._invokeZS = zoneSpec && (zoneSpec.onInvoke ? zoneSpec : parentDelegate._invokeZS);\n this._invokeDlgt =\n zoneSpec && (zoneSpec.onInvoke ? parentDelegate : parentDelegate._invokeDlgt);\n this._invokeCurrZone =\n zoneSpec && (zoneSpec.onInvoke ? this.zone : parentDelegate._invokeCurrZone);\n this._handleErrorZS =\n zoneSpec && (zoneSpec.onHandleError ? zoneSpec : parentDelegate._handleErrorZS);\n this._handleErrorDlgt =\n zoneSpec && (zoneSpec.onHandleError ? parentDelegate : parentDelegate._handleErrorDlgt);\n this._handleErrorCurrZone =\n zoneSpec && (zoneSpec.onHandleError ? this.zone : parentDelegate._handleErrorCurrZone);\n this._scheduleTaskZS =\n zoneSpec && (zoneSpec.onScheduleTask ? zoneSpec : parentDelegate._scheduleTaskZS);\n this._scheduleTaskDlgt = zoneSpec &&\n (zoneSpec.onScheduleTask ? parentDelegate : parentDelegate._scheduleTaskDlgt);\n this._scheduleTaskCurrZone =\n zoneSpec && (zoneSpec.onScheduleTask ? this.zone : parentDelegate._scheduleTaskCurrZone);\n this._invokeTaskZS =\n zoneSpec && (zoneSpec.onInvokeTask ? zoneSpec : parentDelegate._invokeTaskZS);\n this._invokeTaskDlgt =\n zoneSpec && (zoneSpec.onInvokeTask ? parentDelegate : parentDelegate._invokeTaskDlgt);\n this._invokeTaskCurrZone =\n zoneSpec && (zoneSpec.onInvokeTask ? this.zone : parentDelegate._invokeTaskCurrZone);\n this._cancelTaskZS =\n zoneSpec && (zoneSpec.onCancelTask ? zoneSpec : parentDelegate._cancelTaskZS);\n this._cancelTaskDlgt =\n zoneSpec && (zoneSpec.onCancelTask ? parentDelegate : parentDelegate._cancelTaskDlgt);\n this._cancelTaskCurrZone =\n zoneSpec && (zoneSpec.onCancelTask ? this.zone : parentDelegate._cancelTaskCurrZone);\n this._hasTaskZS = null;\n this._hasTaskDlgt = null;\n this._hasTaskDlgtOwner = null;\n this._hasTaskCurrZone = null;\n const zoneSpecHasTask = zoneSpec && zoneSpec.onHasTask;\n const parentHasTask = parentDelegate && parentDelegate._hasTaskZS;\n if (zoneSpecHasTask || parentHasTask) {\n // If we need to report hasTask, than this ZS needs to do ref counting on tasks. In such\n // a case all task related interceptors must go through this ZD. We can't short circuit it.\n this._hasTaskZS = zoneSpecHasTask ? zoneSpec : DELEGATE_ZS;\n this._hasTaskDlgt = parentDelegate;\n this._hasTaskDlgtOwner = this;\n this._hasTaskCurrZone = zone;\n if (!zoneSpec.onScheduleTask) {\n this._scheduleTaskZS = DELEGATE_ZS;\n this._scheduleTaskDlgt = parentDelegate;\n this._scheduleTaskCurrZone = this.zone;\n }\n if (!zoneSpec.onInvokeTask) {\n this._invokeTaskZS = DELEGATE_ZS;\n this._invokeTaskDlgt = parentDelegate;\n this._invokeTaskCurrZone = this.zone;\n }\n if (!zoneSpec.onCancelTask) {\n this._cancelTaskZS = DELEGATE_ZS;\n this._cancelTaskDlgt = parentDelegate;\n this._cancelTaskCurrZone = this.zone;\n }\n }\n }\n fork(targetZone, zoneSpec) {\n return this._forkZS ? this._forkZS.onFork(this._forkDlgt, this.zone, targetZone, zoneSpec) :\n new Zone(targetZone, zoneSpec);\n }\n intercept(targetZone, callback, source) {\n return this._interceptZS ?\n this._interceptZS.onIntercept(this._interceptDlgt, this._interceptCurrZone, targetZone, callback, source) :\n callback;\n }\n invoke(targetZone, callback, applyThis, applyArgs, source) {\n return this._invokeZS ? this._invokeZS.onInvoke(this._invokeDlgt, this._invokeCurrZone, targetZone, callback, applyThis, applyArgs, source) :\n callback.apply(applyThis, applyArgs);\n }\n handleError(targetZone, error) {\n return this._handleErrorZS ?\n this._handleErrorZS.onHandleError(this._handleErrorDlgt, this._handleErrorCurrZone, targetZone, error) :\n true;\n }\n scheduleTask(targetZone, task) {\n let returnTask = task;\n if (this._scheduleTaskZS) {\n if (this._hasTaskZS) {\n returnTask._zoneDelegates.push(this._hasTaskDlgtOwner);\n }\n // clang-format off\n returnTask = this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt, this._scheduleTaskCurrZone, targetZone, task);\n // clang-format on\n if (!returnTask)\n returnTask = task;\n }\n else {\n if (task.scheduleFn) {\n task.scheduleFn(task);\n }\n else if (task.type == microTask) {\n scheduleMicroTask(task);\n }\n else {\n throw new Error('Task is missing scheduleFn.');\n }\n }\n return returnTask;\n }\n invokeTask(targetZone, task, applyThis, applyArgs) {\n return this._invokeTaskZS ? this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt, this._invokeTaskCurrZone, targetZone, task, applyThis, applyArgs) :\n task.callback.apply(applyThis, applyArgs);\n }\n cancelTask(targetZone, task) {\n let value;\n if (this._cancelTaskZS) {\n value = this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt, this._cancelTaskCurrZone, targetZone, task);\n }\n else {\n if (!task.cancelFn) {\n throw Error('Task is not cancelable');\n }\n value = task.cancelFn(task);\n }\n return value;\n }\n hasTask(targetZone, isEmpty) {\n // hasTask should not throw error so other ZoneDelegate\n // can still trigger hasTask callback\n try {\n this._hasTaskZS &&\n this._hasTaskZS.onHasTask(this._hasTaskDlgt, this._hasTaskCurrZone, targetZone, isEmpty);\n }\n catch (err) {\n this.handleError(targetZone, err);\n }\n }\n // tslint:disable-next-line:require-internal-with-underscore\n _updateTaskCount(type, count) {\n const counts = this._taskCounts;\n const prev = counts[type];\n const next = counts[type] = prev + count;\n if (next < 0) {\n throw new Error('More tasks executed then were scheduled.');\n }\n if (prev == 0 || next == 0) {\n const isEmpty = {\n microTask: counts['microTask'] > 0,\n macroTask: counts['macroTask'] > 0,\n eventTask: counts['eventTask'] > 0,\n change: type\n };\n this.hasTask(this.zone, isEmpty);\n }\n }\n }\n class ZoneTask {\n constructor(type, source, callback, options, scheduleFn, cancelFn) {\n // tslint:disable-next-line:require-internal-with-underscore\n this._zone = null;\n this.runCount = 0;\n // tslint:disable-next-line:require-internal-with-underscore\n this._zoneDelegates = null;\n // tslint:disable-next-line:require-internal-with-underscore\n this._state = 'notScheduled';\n this.type = type;\n this.source = source;\n this.data = options;\n this.scheduleFn = scheduleFn;\n this.cancelFn = cancelFn;\n if (!callback) {\n throw new Error('callback is not defined');\n }\n this.callback = callback;\n const self = this;\n // TODO: @JiaLiPassion options should have interface\n if (type === eventTask && options && options.useG) {\n this.invoke = ZoneTask.invokeTask;\n }\n else {\n this.invoke = function () {\n return ZoneTask.invokeTask.call(global, self, this, arguments);\n };\n }\n }\n static invokeTask(task, target, args) {\n if (!task) {\n task = this;\n }\n _numberOfNestedTaskFrames++;\n try {\n task.runCount++;\n return task.zone.runTask(task, target, args);\n }\n finally {\n if (_numberOfNestedTaskFrames == 1) {\n drainMicroTaskQueue();\n }\n _numberOfNestedTaskFrames--;\n }\n }\n get zone() {\n return this._zone;\n }\n get state() {\n return this._state;\n }\n cancelScheduleRequest() {\n this._transitionTo(notScheduled, scheduling);\n }\n // tslint:disable-next-line:require-internal-with-underscore\n _transitionTo(toState, fromState1, fromState2) {\n if (this._state === fromState1 || this._state === fromState2) {\n this._state = toState;\n if (toState == notScheduled) {\n this._zoneDelegates = null;\n }\n }\n else {\n throw new Error(`${this.type} '${this.source}': can not transition to '${toState}', expecting state '${fromState1}'${fromState2 ? ' or \\'' + fromState2 + '\\'' : ''}, was '${this._state}'.`);\n }\n }\n toString() {\n if (this.data && typeof this.data.handleId !== 'undefined') {\n return this.data.handleId.toString();\n }\n else {\n return Object.prototype.toString.call(this);\n }\n }\n // add toJSON method to prevent cyclic error when\n // call JSON.stringify(zoneTask)\n toJSON() {\n return {\n type: this.type,\n state: this.state,\n source: this.source,\n zone: this.zone.name,\n runCount: this.runCount\n };\n }\n }\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n /// MICROTASK QUEUE\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n const symbolSetTimeout = __symbol__('setTimeout');\n const symbolPromise = __symbol__('Promise');\n const symbolThen = __symbol__('then');\n let _microTaskQueue = [];\n let _isDrainingMicrotaskQueue = false;\n let nativeMicroTaskQueuePromise;\n function nativeScheduleMicroTask(func) {\n if (!nativeMicroTaskQueuePromise) {\n if (global[symbolPromise]) {\n nativeMicroTaskQueuePromise = global[symbolPromise].resolve(0);\n }\n }\n if (nativeMicroTaskQueuePromise) {\n let nativeThen = nativeMicroTaskQueuePromise[symbolThen];\n if (!nativeThen) {\n // native Promise is not patchable, we need to use `then` directly\n // issue 1078\n nativeThen = nativeMicroTaskQueuePromise['then'];\n }\n nativeThen.call(nativeMicroTaskQueuePromise, func);\n }\n else {\n global[symbolSetTimeout](func, 0);\n }\n }\n function scheduleMicroTask(task) {\n // if we are not running in any task, and there has not been anything scheduled\n // we must bootstrap the initial task creation by manually scheduling the drain\n if (_numberOfNestedTaskFrames === 0 && _microTaskQueue.length === 0) {\n // We are not running in Task, so we need to kickstart the microtask queue.\n nativeScheduleMicroTask(drainMicroTaskQueue);\n }\n task && _microTaskQueue.push(task);\n }\n function drainMicroTaskQueue() {\n if (!_isDrainingMicrotaskQueue) {\n _isDrainingMicrotaskQueue = true;\n while (_microTaskQueue.length) {\n const queue = _microTaskQueue;\n _microTaskQueue = [];\n for (let i = 0; i < queue.length; i++) {\n const task = queue[i];\n try {\n task.zone.runTask(task, null, null);\n }\n catch (error) {\n _api.onUnhandledError(error);\n }\n }\n }\n _api.microtaskDrainDone();\n _isDrainingMicrotaskQueue = false;\n }\n }\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n /// BOOTSTRAP\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n const NO_ZONE = { name: 'NO ZONE' };\n const notScheduled = 'notScheduled', scheduling = 'scheduling', scheduled = 'scheduled', running = 'running', canceling = 'canceling', unknown = 'unknown';\n const microTask = 'microTask', macroTask = 'macroTask', eventTask = 'eventTask';\n const patches = {};\n const _api = {\n symbol: __symbol__,\n currentZoneFrame: () => _currentZoneFrame,\n onUnhandledError: noop,\n microtaskDrainDone: noop,\n scheduleMicroTask: scheduleMicroTask,\n showUncaughtError: () => !Zone[__symbol__('ignoreConsoleErrorUncaughtError')],\n patchEventTarget: () => [],\n patchOnProperties: noop,\n patchMethod: () => noop,\n bindArguments: () => [],\n patchThen: () => noop,\n patchMacroTask: () => noop,\n patchEventPrototype: () => noop,\n isIEOrEdge: () => false,\n getGlobalObjects: () => undefined,\n ObjectDefineProperty: () => noop,\n ObjectGetOwnPropertyDescriptor: () => undefined,\n ObjectCreate: () => undefined,\n ArraySlice: () => [],\n patchClass: () => noop,\n wrapWithCurrentZone: () => noop,\n filterProperties: () => [],\n attachOriginToPatched: () => noop,\n _redefineProperty: () => noop,\n patchCallbacks: () => noop,\n nativeScheduleMicroTask: nativeScheduleMicroTask\n };\n let _currentZoneFrame = { parent: null, zone: new Zone(null, null) };\n let _currentTask = null;\n let _numberOfNestedTaskFrames = 0;\n function noop() { }\n performanceMeasure('Zone', 'Zone');\n return global['Zone'] = Zone;\n}))(typeof window !== 'undefined' && window || typeof self !== 'undefined' && self || global);\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Suppress closure compiler errors about unknown 'Zone' variable\n * @fileoverview\n * @suppress {undefinedVars,globalThis,missingRequire}\n */\n/// \n// issue #989, to reduce bundle size, use short name\n/** Object.getOwnPropertyDescriptor */\nconst ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n/** Object.defineProperty */\nconst ObjectDefineProperty = Object.defineProperty;\n/** Object.getPrototypeOf */\nconst ObjectGetPrototypeOf = Object.getPrototypeOf;\n/** Object.create */\nconst ObjectCreate = Object.create;\n/** Array.prototype.slice */\nconst ArraySlice = Array.prototype.slice;\n/** addEventListener string const */\nconst ADD_EVENT_LISTENER_STR = 'addEventListener';\n/** removeEventListener string const */\nconst REMOVE_EVENT_LISTENER_STR = 'removeEventListener';\n/** zoneSymbol addEventListener */\nconst ZONE_SYMBOL_ADD_EVENT_LISTENER = Zone.__symbol__(ADD_EVENT_LISTENER_STR);\n/** zoneSymbol removeEventListener */\nconst ZONE_SYMBOL_REMOVE_EVENT_LISTENER = Zone.__symbol__(REMOVE_EVENT_LISTENER_STR);\n/** true string const */\nconst TRUE_STR = 'true';\n/** false string const */\nconst FALSE_STR = 'false';\n/** Zone symbol prefix string const. */\nconst ZONE_SYMBOL_PREFIX = Zone.__symbol__('');\nfunction wrapWithCurrentZone(callback, source) {\n return Zone.current.wrap(callback, source);\n}\nfunction scheduleMacroTaskWithCurrentZone(source, callback, data, customSchedule, customCancel) {\n return Zone.current.scheduleMacroTask(source, callback, data, customSchedule, customCancel);\n}\nconst zoneSymbol = Zone.__symbol__;\nconst isWindowExists = typeof window !== 'undefined';\nconst internalWindow = isWindowExists ? window : undefined;\nconst _global = isWindowExists && internalWindow || typeof self === 'object' && self || global;\nconst REMOVE_ATTRIBUTE = 'removeAttribute';\nfunction bindArguments(args, source) {\n for (let i = args.length - 1; i >= 0; i--) {\n if (typeof args[i] === 'function') {\n args[i] = wrapWithCurrentZone(args[i], source + '_' + i);\n }\n }\n return args;\n}\nfunction patchPrototype(prototype, fnNames) {\n const source = prototype.constructor['name'];\n for (let i = 0; i < fnNames.length; i++) {\n const name = fnNames[i];\n const delegate = prototype[name];\n if (delegate) {\n const prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, name);\n if (!isPropertyWritable(prototypeDesc)) {\n continue;\n }\n prototype[name] = ((delegate) => {\n const patched = function () {\n return delegate.apply(this, bindArguments(arguments, source + '.' + name));\n };\n attachOriginToPatched(patched, delegate);\n return patched;\n })(delegate);\n }\n }\n}\nfunction isPropertyWritable(propertyDesc) {\n if (!propertyDesc) {\n return true;\n }\n if (propertyDesc.writable === false) {\n return false;\n }\n return !(typeof propertyDesc.get === 'function' && typeof propertyDesc.set === 'undefined');\n}\nconst isWebWorker = (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope);\n// Make sure to access `process` through `_global` so that WebPack does not accidentally browserify\n// this code.\nconst isNode = (!('nw' in _global) && typeof _global.process !== 'undefined' &&\n {}.toString.call(_global.process) === '[object process]');\nconst isBrowser = !isNode && !isWebWorker && !!(isWindowExists && internalWindow['HTMLElement']);\n// we are in electron of nw, so we are both browser and nodejs\n// Make sure to access `process` through `_global` so that WebPack does not accidentally browserify\n// this code.\nconst isMix = typeof _global.process !== 'undefined' &&\n {}.toString.call(_global.process) === '[object process]' && !isWebWorker &&\n !!(isWindowExists && internalWindow['HTMLElement']);\nconst zoneSymbolEventNames$1 = {};\nconst wrapFn = function (event) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n let eventNameSymbol = zoneSymbolEventNames$1[event.type];\n if (!eventNameSymbol) {\n eventNameSymbol = zoneSymbolEventNames$1[event.type] = zoneSymbol('ON_PROPERTY' + event.type);\n }\n const target = this || event.target || _global;\n const listener = target[eventNameSymbol];\n let result;\n if (isBrowser && target === internalWindow && event.type === 'error') {\n // window.onerror have different signature\n // https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror#window.onerror\n // and onerror callback will prevent default when callback return true\n const errorEvent = event;\n result = listener &&\n listener.call(this, errorEvent.message, errorEvent.filename, errorEvent.lineno, errorEvent.colno, errorEvent.error);\n if (result === true) {\n event.preventDefault();\n }\n }\n else {\n result = listener && listener.apply(this, arguments);\n if (result != undefined && !result) {\n event.preventDefault();\n }\n }\n return result;\n};\nfunction patchProperty(obj, prop, prototype) {\n let desc = ObjectGetOwnPropertyDescriptor(obj, prop);\n if (!desc && prototype) {\n // when patch window object, use prototype to check prop exist or not\n const prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, prop);\n if (prototypeDesc) {\n desc = { enumerable: true, configurable: true };\n }\n }\n // if the descriptor not exists or is not configurable\n // just return\n if (!desc || !desc.configurable) {\n return;\n }\n const onPropPatchedSymbol = zoneSymbol('on' + prop + 'patched');\n if (obj.hasOwnProperty(onPropPatchedSymbol) && obj[onPropPatchedSymbol]) {\n return;\n }\n // A property descriptor cannot have getter/setter and be writable\n // deleting the writable and value properties avoids this error:\n //\n // TypeError: property descriptors must not specify a value or be writable when a\n // getter or setter has been specified\n delete desc.writable;\n delete desc.value;\n const originalDescGet = desc.get;\n const originalDescSet = desc.set;\n // slice(2) cuz 'onclick' -> 'click', etc\n const eventName = prop.slice(2);\n let eventNameSymbol = zoneSymbolEventNames$1[eventName];\n if (!eventNameSymbol) {\n eventNameSymbol = zoneSymbolEventNames$1[eventName] = zoneSymbol('ON_PROPERTY' + eventName);\n }\n desc.set = function (newValue) {\n // in some of windows's onproperty callback, this is undefined\n // so we need to check it\n let target = this;\n if (!target && obj === _global) {\n target = _global;\n }\n if (!target) {\n return;\n }\n const previousValue = target[eventNameSymbol];\n if (typeof previousValue === 'function') {\n target.removeEventListener(eventName, wrapFn);\n }\n // issue #978, when onload handler was added before loading zone.js\n // we should remove it with originalDescSet\n originalDescSet && originalDescSet.call(target, null);\n target[eventNameSymbol] = newValue;\n if (typeof newValue === 'function') {\n target.addEventListener(eventName, wrapFn, false);\n }\n };\n // The getter would return undefined for unassigned properties but the default value of an\n // unassigned property is null\n desc.get = function () {\n // in some of windows's onproperty callback, this is undefined\n // so we need to check it\n let target = this;\n if (!target && obj === _global) {\n target = _global;\n }\n if (!target) {\n return null;\n }\n const listener = target[eventNameSymbol];\n if (listener) {\n return listener;\n }\n else if (originalDescGet) {\n // result will be null when use inline event attribute,\n // such as \n // because the onclick function is internal raw uncompiled handler\n // the onclick will be evaluated when first time event was triggered or\n // the property is accessed, https://github.com/angular/zone.js/issues/525\n // so we should use original native get to retrieve the handler\n let value = originalDescGet.call(this);\n if (value) {\n desc.set.call(this, value);\n if (typeof target[REMOVE_ATTRIBUTE] === 'function') {\n target.removeAttribute(prop);\n }\n return value;\n }\n }\n return null;\n };\n ObjectDefineProperty(obj, prop, desc);\n obj[onPropPatchedSymbol] = true;\n}\nfunction patchOnProperties(obj, properties, prototype) {\n if (properties) {\n for (let i = 0; i < properties.length; i++) {\n patchProperty(obj, 'on' + properties[i], prototype);\n }\n }\n else {\n const onProperties = [];\n for (const prop in obj) {\n if (prop.slice(0, 2) == 'on') {\n onProperties.push(prop);\n }\n }\n for (let j = 0; j < onProperties.length; j++) {\n patchProperty(obj, onProperties[j], prototype);\n }\n }\n}\nconst originalInstanceKey = zoneSymbol('originalInstance');\n// wrap some native API on `window`\nfunction patchClass(className) {\n const OriginalClass = _global[className];\n if (!OriginalClass)\n return;\n // keep original class in global\n _global[zoneSymbol(className)] = OriginalClass;\n _global[className] = function () {\n const a = bindArguments(arguments, className);\n switch (a.length) {\n case 0:\n this[originalInstanceKey] = new OriginalClass();\n break;\n case 1:\n this[originalInstanceKey] = new OriginalClass(a[0]);\n break;\n case 2:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1]);\n break;\n case 3:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2]);\n break;\n case 4:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2], a[3]);\n break;\n default:\n throw new Error('Arg list too long.');\n }\n };\n // attach original delegate to patched function\n attachOriginToPatched(_global[className], OriginalClass);\n const instance = new OriginalClass(function () { });\n let prop;\n for (prop in instance) {\n // https://bugs.webkit.org/show_bug.cgi?id=44721\n if (className === 'XMLHttpRequest' && prop === 'responseBlob')\n continue;\n (function (prop) {\n if (typeof instance[prop] === 'function') {\n _global[className].prototype[prop] = function () {\n return this[originalInstanceKey][prop].apply(this[originalInstanceKey], arguments);\n };\n }\n else {\n ObjectDefineProperty(_global[className].prototype, prop, {\n set: function (fn) {\n if (typeof fn === 'function') {\n this[originalInstanceKey][prop] = wrapWithCurrentZone(fn, className + '.' + prop);\n // keep callback in wrapped function so we can\n // use it in Function.prototype.toString to return\n // the native one.\n attachOriginToPatched(this[originalInstanceKey][prop], fn);\n }\n else {\n this[originalInstanceKey][prop] = fn;\n }\n },\n get: function () {\n return this[originalInstanceKey][prop];\n }\n });\n }\n }(prop));\n }\n for (prop in OriginalClass) {\n if (prop !== 'prototype' && OriginalClass.hasOwnProperty(prop)) {\n _global[className][prop] = OriginalClass[prop];\n }\n }\n}\nfunction patchMethod(target, name, patchFn) {\n let proto = target;\n while (proto && !proto.hasOwnProperty(name)) {\n proto = ObjectGetPrototypeOf(proto);\n }\n if (!proto && target[name]) {\n // somehow we did not find it, but we can see it. This happens on IE for Window properties.\n proto = target;\n }\n const delegateName = zoneSymbol(name);\n let delegate = null;\n if (proto && (!(delegate = proto[delegateName]) || !proto.hasOwnProperty(delegateName))) {\n delegate = proto[delegateName] = proto[name];\n // check whether proto[name] is writable\n // some property is readonly in safari, such as HtmlCanvasElement.prototype.toBlob\n const desc = proto && ObjectGetOwnPropertyDescriptor(proto, name);\n if (isPropertyWritable(desc)) {\n const patchDelegate = patchFn(delegate, delegateName, name);\n proto[name] = function () {\n return patchDelegate(this, arguments);\n };\n attachOriginToPatched(proto[name], delegate);\n }\n }\n return delegate;\n}\n// TODO: @JiaLiPassion, support cancel task later if necessary\nfunction patchMacroTask(obj, funcName, metaCreator) {\n let setNative = null;\n function scheduleTask(task) {\n const data = task.data;\n data.args[data.cbIdx] = function () {\n task.invoke.apply(this, arguments);\n };\n setNative.apply(data.target, data.args);\n return task;\n }\n setNative = patchMethod(obj, funcName, (delegate) => function (self, args) {\n const meta = metaCreator(self, args);\n if (meta.cbIdx >= 0 && typeof args[meta.cbIdx] === 'function') {\n return scheduleMacroTaskWithCurrentZone(meta.name, args[meta.cbIdx], meta, scheduleTask);\n }\n else {\n // cause an error by calling it directly.\n return delegate.apply(self, args);\n }\n });\n}\nfunction attachOriginToPatched(patched, original) {\n patched[zoneSymbol('OriginalDelegate')] = original;\n}\nlet isDetectedIEOrEdge = false;\nlet ieOrEdge = false;\nfunction isIE() {\n try {\n const ua = internalWindow.navigator.userAgent;\n if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1) {\n return true;\n }\n }\n catch (error) {\n }\n return false;\n}\nfunction isIEOrEdge() {\n if (isDetectedIEOrEdge) {\n return ieOrEdge;\n }\n isDetectedIEOrEdge = true;\n try {\n const ua = internalWindow.navigator.userAgent;\n if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1 || ua.indexOf('Edge/') !== -1) {\n ieOrEdge = true;\n }\n }\n catch (error) {\n }\n return ieOrEdge;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nZone.__load_patch('ZoneAwarePromise', (global, Zone, api) => {\n const ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n const ObjectDefineProperty = Object.defineProperty;\n function readableObjectToString(obj) {\n if (obj && obj.toString === Object.prototype.toString) {\n const className = obj.constructor && obj.constructor.name;\n return (className ? className : '') + ': ' + JSON.stringify(obj);\n }\n return obj ? obj.toString() : Object.prototype.toString.call(obj);\n }\n const __symbol__ = api.symbol;\n const _uncaughtPromiseErrors = [];\n const isDisableWrappingUncaughtPromiseRejection = global[__symbol__('DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION')] === true;\n const symbolPromise = __symbol__('Promise');\n const symbolThen = __symbol__('then');\n const creationTrace = '__creationTrace__';\n api.onUnhandledError = (e) => {\n if (api.showUncaughtError()) {\n const rejection = e && e.rejection;\n if (rejection) {\n console.error('Unhandled Promise rejection:', rejection instanceof Error ? rejection.message : rejection, '; Zone:', e.zone.name, '; Task:', e.task && e.task.source, '; Value:', rejection, rejection instanceof Error ? rejection.stack : undefined);\n }\n else {\n console.error(e);\n }\n }\n };\n api.microtaskDrainDone = () => {\n while (_uncaughtPromiseErrors.length) {\n const uncaughtPromiseError = _uncaughtPromiseErrors.shift();\n try {\n uncaughtPromiseError.zone.runGuarded(() => {\n if (uncaughtPromiseError.throwOriginal) {\n throw uncaughtPromiseError.rejection;\n }\n throw uncaughtPromiseError;\n });\n }\n catch (error) {\n handleUnhandledRejection(error);\n }\n }\n };\n const UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL = __symbol__('unhandledPromiseRejectionHandler');\n function handleUnhandledRejection(e) {\n api.onUnhandledError(e);\n try {\n const handler = Zone[UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL];\n if (typeof handler === 'function') {\n handler.call(this, e);\n }\n }\n catch (err) {\n }\n }\n function isThenable(value) {\n return value && value.then;\n }\n function forwardResolution(value) {\n return value;\n }\n function forwardRejection(rejection) {\n return ZoneAwarePromise.reject(rejection);\n }\n const symbolState = __symbol__('state');\n const symbolValue = __symbol__('value');\n const symbolFinally = __symbol__('finally');\n const symbolParentPromiseValue = __symbol__('parentPromiseValue');\n const symbolParentPromiseState = __symbol__('parentPromiseState');\n const source = 'Promise.then';\n const UNRESOLVED = null;\n const RESOLVED = true;\n const REJECTED = false;\n const REJECTED_NO_CATCH = 0;\n function makeResolver(promise, state) {\n return (v) => {\n try {\n resolvePromise(promise, state, v);\n }\n catch (err) {\n resolvePromise(promise, false, err);\n }\n // Do not return value or you will break the Promise spec.\n };\n }\n const once = function () {\n let wasCalled = false;\n return function wrapper(wrappedFunction) {\n return function () {\n if (wasCalled) {\n return;\n }\n wasCalled = true;\n wrappedFunction.apply(null, arguments);\n };\n };\n };\n const TYPE_ERROR = 'Promise resolved with itself';\n const CURRENT_TASK_TRACE_SYMBOL = __symbol__('currentTaskTrace');\n // Promise Resolution\n function resolvePromise(promise, state, value) {\n const onceWrapper = once();\n if (promise === value) {\n throw new TypeError(TYPE_ERROR);\n }\n if (promise[symbolState] === UNRESOLVED) {\n // should only get value.then once based on promise spec.\n let then = null;\n try {\n if (typeof value === 'object' || typeof value === 'function') {\n then = value && value.then;\n }\n }\n catch (err) {\n onceWrapper(() => {\n resolvePromise(promise, false, err);\n })();\n return promise;\n }\n // if (value instanceof ZoneAwarePromise) {\n if (state !== REJECTED && value instanceof ZoneAwarePromise &&\n value.hasOwnProperty(symbolState) && value.hasOwnProperty(symbolValue) &&\n value[symbolState] !== UNRESOLVED) {\n clearRejectedNoCatch(value);\n resolvePromise(promise, value[symbolState], value[symbolValue]);\n }\n else if (state !== REJECTED && typeof then === 'function') {\n try {\n then.call(value, onceWrapper(makeResolver(promise, state)), onceWrapper(makeResolver(promise, false)));\n }\n catch (err) {\n onceWrapper(() => {\n resolvePromise(promise, false, err);\n })();\n }\n }\n else {\n promise[symbolState] = state;\n const queue = promise[symbolValue];\n promise[symbolValue] = value;\n if (promise[symbolFinally] === symbolFinally) {\n // the promise is generated by Promise.prototype.finally\n if (state === RESOLVED) {\n // the state is resolved, should ignore the value\n // and use parent promise value\n promise[symbolState] = promise[symbolParentPromiseState];\n promise[symbolValue] = promise[symbolParentPromiseValue];\n }\n }\n // record task information in value when error occurs, so we can\n // do some additional work such as render longStackTrace\n if (state === REJECTED && value instanceof Error) {\n // check if longStackTraceZone is here\n const trace = Zone.currentTask && Zone.currentTask.data &&\n Zone.currentTask.data[creationTrace];\n if (trace) {\n // only keep the long stack trace into error when in longStackTraceZone\n ObjectDefineProperty(value, CURRENT_TASK_TRACE_SYMBOL, { configurable: true, enumerable: false, writable: true, value: trace });\n }\n }\n for (let i = 0; i < queue.length;) {\n scheduleResolveOrReject(promise, queue[i++], queue[i++], queue[i++], queue[i++]);\n }\n if (queue.length == 0 && state == REJECTED) {\n promise[symbolState] = REJECTED_NO_CATCH;\n let uncaughtPromiseError = value;\n try {\n // Here we throws a new Error to print more readable error log\n // and if the value is not an error, zone.js builds an `Error`\n // Object here to attach the stack information.\n throw new Error('Uncaught (in promise): ' + readableObjectToString(value) +\n (value && value.stack ? '\\n' + value.stack : ''));\n }\n catch (err) {\n uncaughtPromiseError = err;\n }\n if (isDisableWrappingUncaughtPromiseRejection) {\n // If disable wrapping uncaught promise reject\n // use the value instead of wrapping it.\n uncaughtPromiseError.throwOriginal = true;\n }\n uncaughtPromiseError.rejection = value;\n uncaughtPromiseError.promise = promise;\n uncaughtPromiseError.zone = Zone.current;\n uncaughtPromiseError.task = Zone.currentTask;\n _uncaughtPromiseErrors.push(uncaughtPromiseError);\n api.scheduleMicroTask(); // to make sure that it is running\n }\n }\n }\n // Resolving an already resolved promise is a noop.\n return promise;\n }\n const REJECTION_HANDLED_HANDLER = __symbol__('rejectionHandledHandler');\n function clearRejectedNoCatch(promise) {\n if (promise[symbolState] === REJECTED_NO_CATCH) {\n // if the promise is rejected no catch status\n // and queue.length > 0, means there is a error handler\n // here to handle the rejected promise, we should trigger\n // windows.rejectionhandled eventHandler or nodejs rejectionHandled\n // eventHandler\n try {\n const handler = Zone[REJECTION_HANDLED_HANDLER];\n if (handler && typeof handler === 'function') {\n handler.call(this, { rejection: promise[symbolValue], promise: promise });\n }\n }\n catch (err) {\n }\n promise[symbolState] = REJECTED;\n for (let i = 0; i < _uncaughtPromiseErrors.length; i++) {\n if (promise === _uncaughtPromiseErrors[i].promise) {\n _uncaughtPromiseErrors.splice(i, 1);\n }\n }\n }\n }\n function scheduleResolveOrReject(promise, zone, chainPromise, onFulfilled, onRejected) {\n clearRejectedNoCatch(promise);\n const promiseState = promise[symbolState];\n const delegate = promiseState ?\n (typeof onFulfilled === 'function') ? onFulfilled : forwardResolution :\n (typeof onRejected === 'function') ? onRejected :\n forwardRejection;\n zone.scheduleMicroTask(source, () => {\n try {\n const parentPromiseValue = promise[symbolValue];\n const isFinallyPromise = !!chainPromise && symbolFinally === chainPromise[symbolFinally];\n if (isFinallyPromise) {\n // if the promise is generated from finally call, keep parent promise's state and value\n chainPromise[symbolParentPromiseValue] = parentPromiseValue;\n chainPromise[symbolParentPromiseState] = promiseState;\n }\n // should not pass value to finally callback\n const value = zone.run(delegate, undefined, isFinallyPromise && delegate !== forwardRejection && delegate !== forwardResolution ?\n [] :\n [parentPromiseValue]);\n resolvePromise(chainPromise, true, value);\n }\n catch (error) {\n // if error occurs, should always return this error\n resolvePromise(chainPromise, false, error);\n }\n }, chainPromise);\n }\n const ZONE_AWARE_PROMISE_TO_STRING = 'function ZoneAwarePromise() { [native code] }';\n const noop = function () { };\n const AggregateError = global.AggregateError;\n class ZoneAwarePromise {\n static toString() {\n return ZONE_AWARE_PROMISE_TO_STRING;\n }\n static resolve(value) {\n return resolvePromise(new this(null), RESOLVED, value);\n }\n static reject(error) {\n return resolvePromise(new this(null), REJECTED, error);\n }\n static any(values) {\n if (!values || typeof values[Symbol.iterator] !== 'function') {\n return Promise.reject(new AggregateError([], 'All promises were rejected'));\n }\n const promises = [];\n let count = 0;\n try {\n for (let v of values) {\n count++;\n promises.push(ZoneAwarePromise.resolve(v));\n }\n }\n catch (err) {\n return Promise.reject(new AggregateError([], 'All promises were rejected'));\n }\n if (count === 0) {\n return Promise.reject(new AggregateError([], 'All promises were rejected'));\n }\n let finished = false;\n const errors = [];\n return new ZoneAwarePromise((resolve, reject) => {\n for (let i = 0; i < promises.length; i++) {\n promises[i].then(v => {\n if (finished) {\n return;\n }\n finished = true;\n resolve(v);\n }, err => {\n errors.push(err);\n count--;\n if (count === 0) {\n finished = true;\n reject(new AggregateError(errors, 'All promises were rejected'));\n }\n });\n }\n });\n }\n ;\n static race(values) {\n let resolve;\n let reject;\n let promise = new this((res, rej) => {\n resolve = res;\n reject = rej;\n });\n function onResolve(value) {\n resolve(value);\n }\n function onReject(error) {\n reject(error);\n }\n for (let value of values) {\n if (!isThenable(value)) {\n value = this.resolve(value);\n }\n value.then(onResolve, onReject);\n }\n return promise;\n }\n static all(values) {\n return ZoneAwarePromise.allWithCallback(values);\n }\n static allSettled(values) {\n const P = this && this.prototype instanceof ZoneAwarePromise ? this : ZoneAwarePromise;\n return P.allWithCallback(values, {\n thenCallback: (value) => ({ status: 'fulfilled', value }),\n errorCallback: (err) => ({ status: 'rejected', reason: err })\n });\n }\n static allWithCallback(values, callback) {\n let resolve;\n let reject;\n let promise = new this((res, rej) => {\n resolve = res;\n reject = rej;\n });\n // Start at 2 to prevent prematurely resolving if .then is called immediately.\n let unresolvedCount = 2;\n let valueIndex = 0;\n const resolvedValues = [];\n for (let value of values) {\n if (!isThenable(value)) {\n value = this.resolve(value);\n }\n const curValueIndex = valueIndex;\n try {\n value.then((value) => {\n resolvedValues[curValueIndex] = callback ? callback.thenCallback(value) : value;\n unresolvedCount--;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n }, (err) => {\n if (!callback) {\n reject(err);\n }\n else {\n resolvedValues[curValueIndex] = callback.errorCallback(err);\n unresolvedCount--;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n }\n });\n }\n catch (thenErr) {\n reject(thenErr);\n }\n unresolvedCount++;\n valueIndex++;\n }\n // Make the unresolvedCount zero-based again.\n unresolvedCount -= 2;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n return promise;\n }\n constructor(executor) {\n const promise = this;\n if (!(promise instanceof ZoneAwarePromise)) {\n throw new Error('Must be an instanceof Promise.');\n }\n promise[symbolState] = UNRESOLVED;\n promise[symbolValue] = []; // queue;\n try {\n const onceWrapper = once();\n executor &&\n executor(onceWrapper(makeResolver(promise, RESOLVED)), onceWrapper(makeResolver(promise, REJECTED)));\n }\n catch (error) {\n resolvePromise(promise, false, error);\n }\n }\n get [Symbol.toStringTag]() {\n return 'Promise';\n }\n get [Symbol.species]() {\n return ZoneAwarePromise;\n }\n then(onFulfilled, onRejected) {\n var _a;\n // We must read `Symbol.species` safely because `this` may be anything. For instance, `this`\n // may be an object without a prototype (created through `Object.create(null)`); thus\n // `this.constructor` will be undefined. One of the use cases is SystemJS creating\n // prototype-less objects (modules) via `Object.create(null)`. The SystemJS creates an empty\n // object and copies promise properties into that object (within the `getOrCreateLoad`\n // function). The zone.js then checks if the resolved value has the `then` method and invokes\n // it with the `value` context. Otherwise, this will throw an error: `TypeError: Cannot read\n // properties of undefined (reading 'Symbol(Symbol.species)')`.\n let C = (_a = this.constructor) === null || _a === void 0 ? void 0 : _a[Symbol.species];\n if (!C || typeof C !== 'function') {\n C = this.constructor || ZoneAwarePromise;\n }\n const chainPromise = new C(noop);\n const zone = Zone.current;\n if (this[symbolState] == UNRESOLVED) {\n this[symbolValue].push(zone, chainPromise, onFulfilled, onRejected);\n }\n else {\n scheduleResolveOrReject(this, zone, chainPromise, onFulfilled, onRejected);\n }\n return chainPromise;\n }\n catch(onRejected) {\n return this.then(null, onRejected);\n }\n finally(onFinally) {\n var _a;\n // See comment on the call to `then` about why thee `Symbol.species` is safely accessed.\n let C = (_a = this.constructor) === null || _a === void 0 ? void 0 : _a[Symbol.species];\n if (!C || typeof C !== 'function') {\n C = ZoneAwarePromise;\n }\n const chainPromise = new C(noop);\n chainPromise[symbolFinally] = symbolFinally;\n const zone = Zone.current;\n if (this[symbolState] == UNRESOLVED) {\n this[symbolValue].push(zone, chainPromise, onFinally, onFinally);\n }\n else {\n scheduleResolveOrReject(this, zone, chainPromise, onFinally, onFinally);\n }\n return chainPromise;\n }\n }\n // Protect against aggressive optimizers dropping seemingly unused properties.\n // E.g. Closure Compiler in advanced mode.\n ZoneAwarePromise['resolve'] = ZoneAwarePromise.resolve;\n ZoneAwarePromise['reject'] = ZoneAwarePromise.reject;\n ZoneAwarePromise['race'] = ZoneAwarePromise.race;\n ZoneAwarePromise['all'] = ZoneAwarePromise.all;\n const NativePromise = global[symbolPromise] = global['Promise'];\n global['Promise'] = ZoneAwarePromise;\n const symbolThenPatched = __symbol__('thenPatched');\n function patchThen(Ctor) {\n const proto = Ctor.prototype;\n const prop = ObjectGetOwnPropertyDescriptor(proto, 'then');\n if (prop && (prop.writable === false || !prop.configurable)) {\n // check Ctor.prototype.then propertyDescriptor is writable or not\n // in meteor env, writable is false, we should ignore such case\n return;\n }\n const originalThen = proto.then;\n // Keep a reference to the original method.\n proto[symbolThen] = originalThen;\n Ctor.prototype.then = function (onResolve, onReject) {\n const wrapped = new ZoneAwarePromise((resolve, reject) => {\n originalThen.call(this, resolve, reject);\n });\n return wrapped.then(onResolve, onReject);\n };\n Ctor[symbolThenPatched] = true;\n }\n api.patchThen = patchThen;\n function zoneify(fn) {\n return function (self, args) {\n let resultPromise = fn.apply(self, args);\n if (resultPromise instanceof ZoneAwarePromise) {\n return resultPromise;\n }\n let ctor = resultPromise.constructor;\n if (!ctor[symbolThenPatched]) {\n patchThen(ctor);\n }\n return resultPromise;\n };\n }\n if (NativePromise) {\n patchThen(NativePromise);\n patchMethod(global, 'fetch', delegate => zoneify(delegate));\n }\n // This is not part of public API, but it is useful for tests, so we expose it.\n Promise[Zone.__symbol__('uncaughtPromiseErrors')] = _uncaughtPromiseErrors;\n return ZoneAwarePromise;\n});\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// override Function.prototype.toString to make zone.js patched function\n// look like native function\nZone.__load_patch('toString', (global) => {\n // patch Func.prototype.toString to let them look like native\n const originalFunctionToString = Function.prototype.toString;\n const ORIGINAL_DELEGATE_SYMBOL = zoneSymbol('OriginalDelegate');\n const PROMISE_SYMBOL = zoneSymbol('Promise');\n const ERROR_SYMBOL = zoneSymbol('Error');\n const newFunctionToString = function toString() {\n if (typeof this === 'function') {\n const originalDelegate = this[ORIGINAL_DELEGATE_SYMBOL];\n if (originalDelegate) {\n if (typeof originalDelegate === 'function') {\n return originalFunctionToString.call(originalDelegate);\n }\n else {\n return Object.prototype.toString.call(originalDelegate);\n }\n }\n if (this === Promise) {\n const nativePromise = global[PROMISE_SYMBOL];\n if (nativePromise) {\n return originalFunctionToString.call(nativePromise);\n }\n }\n if (this === Error) {\n const nativeError = global[ERROR_SYMBOL];\n if (nativeError) {\n return originalFunctionToString.call(nativeError);\n }\n }\n }\n return originalFunctionToString.call(this);\n };\n newFunctionToString[ORIGINAL_DELEGATE_SYMBOL] = originalFunctionToString;\n Function.prototype.toString = newFunctionToString;\n // patch Object.prototype.toString to let them look like native\n const originalObjectToString = Object.prototype.toString;\n const PROMISE_OBJECT_TO_STRING = '[object Promise]';\n Object.prototype.toString = function () {\n if (typeof Promise === 'function' && this instanceof Promise) {\n return PROMISE_OBJECT_TO_STRING;\n }\n return originalObjectToString.call(this);\n };\n});\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nlet passiveSupported = false;\nif (typeof window !== 'undefined') {\n try {\n const options = Object.defineProperty({}, 'passive', {\n get: function () {\n passiveSupported = true;\n }\n });\n // Note: We pass the `options` object as the event handler too. This is not compatible with the\n // signature of `addEventListener` or `removeEventListener` but enables us to remove the handler\n // without an actual handler.\n window.addEventListener('test', options, options);\n window.removeEventListener('test', options, options);\n }\n catch (err) {\n passiveSupported = false;\n }\n}\n// an identifier to tell ZoneTask do not create a new invoke closure\nconst OPTIMIZED_ZONE_EVENT_TASK_DATA = {\n useG: true\n};\nconst zoneSymbolEventNames = {};\nconst globalSources = {};\nconst EVENT_NAME_SYMBOL_REGX = new RegExp('^' + ZONE_SYMBOL_PREFIX + '(\\\\w+)(true|false)$');\nconst IMMEDIATE_PROPAGATION_SYMBOL = zoneSymbol('propagationStopped');\nfunction prepareEventNames(eventName, eventNameToString) {\n const falseEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + FALSE_STR;\n const trueEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + TRUE_STR;\n const symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n const symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames[eventName] = {};\n zoneSymbolEventNames[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture;\n}\nfunction patchEventTarget(_global, api, apis, patchOptions) {\n const ADD_EVENT_LISTENER = (patchOptions && patchOptions.add) || ADD_EVENT_LISTENER_STR;\n const REMOVE_EVENT_LISTENER = (patchOptions && patchOptions.rm) || REMOVE_EVENT_LISTENER_STR;\n const LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.listeners) || 'eventListeners';\n const REMOVE_ALL_LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.rmAll) || 'removeAllListeners';\n const zoneSymbolAddEventListener = zoneSymbol(ADD_EVENT_LISTENER);\n const ADD_EVENT_LISTENER_SOURCE = '.' + ADD_EVENT_LISTENER + ':';\n const PREPEND_EVENT_LISTENER = 'prependListener';\n const PREPEND_EVENT_LISTENER_SOURCE = '.' + PREPEND_EVENT_LISTENER + ':';\n const invokeTask = function (task, target, event) {\n // for better performance, check isRemoved which is set\n // by removeEventListener\n if (task.isRemoved) {\n return;\n }\n const delegate = task.callback;\n if (typeof delegate === 'object' && delegate.handleEvent) {\n // create the bind version of handleEvent when invoke\n task.callback = (event) => delegate.handleEvent(event);\n task.originalDelegate = delegate;\n }\n // invoke static task.invoke\n // need to try/catch error here, otherwise, the error in one event listener\n // will break the executions of the other event listeners. Also error will\n // not remove the event listener when `once` options is true.\n let error;\n try {\n task.invoke(task, target, [event]);\n }\n catch (err) {\n error = err;\n }\n const options = task.options;\n if (options && typeof options === 'object' && options.once) {\n // if options.once is true, after invoke once remove listener here\n // only browser need to do this, nodejs eventEmitter will cal removeListener\n // inside EventEmitter.once\n const delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n target[REMOVE_EVENT_LISTENER].call(target, event.type, delegate, options);\n }\n return error;\n };\n function globalCallback(context, event, isCapture) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n // event.target is needed for Samsung TV and SourceBuffer\n // || global is needed https://github.com/angular/zone.js/issues/190\n const target = context || event.target || _global;\n const tasks = target[zoneSymbolEventNames[event.type][isCapture ? TRUE_STR : FALSE_STR]];\n if (tasks) {\n const errors = [];\n // invoke all tasks which attached to current target with given event.type and capture = false\n // for performance concern, if task.length === 1, just invoke\n if (tasks.length === 1) {\n const err = invokeTask(tasks[0], target, event);\n err && errors.push(err);\n }\n else {\n // https://github.com/angular/zone.js/issues/836\n // copy the tasks array before invoke, to avoid\n // the callback will remove itself or other listener\n const copyTasks = tasks.slice();\n for (let i = 0; i < copyTasks.length; i++) {\n if (event && event[IMMEDIATE_PROPAGATION_SYMBOL] === true) {\n break;\n }\n const err = invokeTask(copyTasks[i], target, event);\n err && errors.push(err);\n }\n }\n // Since there is only one error, we don't need to schedule microTask\n // to throw the error.\n if (errors.length === 1) {\n throw errors[0];\n }\n else {\n for (let i = 0; i < errors.length; i++) {\n const err = errors[i];\n api.nativeScheduleMicroTask(() => {\n throw err;\n });\n }\n }\n }\n }\n // global shared zoneAwareCallback to handle all event callback with capture = false\n const globalZoneAwareCallback = function (event) {\n return globalCallback(this, event, false);\n };\n // global shared zoneAwareCallback to handle all event callback with capture = true\n const globalZoneAwareCaptureCallback = function (event) {\n return globalCallback(this, event, true);\n };\n function patchEventTargetMethods(obj, patchOptions) {\n if (!obj) {\n return false;\n }\n let useGlobalCallback = true;\n if (patchOptions && patchOptions.useG !== undefined) {\n useGlobalCallback = patchOptions.useG;\n }\n const validateHandler = patchOptions && patchOptions.vh;\n let checkDuplicate = true;\n if (patchOptions && patchOptions.chkDup !== undefined) {\n checkDuplicate = patchOptions.chkDup;\n }\n let returnTarget = false;\n if (patchOptions && patchOptions.rt !== undefined) {\n returnTarget = patchOptions.rt;\n }\n let proto = obj;\n while (proto && !proto.hasOwnProperty(ADD_EVENT_LISTENER)) {\n proto = ObjectGetPrototypeOf(proto);\n }\n if (!proto && obj[ADD_EVENT_LISTENER]) {\n // somehow we did not find it, but we can see it. This happens on IE for Window properties.\n proto = obj;\n }\n if (!proto) {\n return false;\n }\n if (proto[zoneSymbolAddEventListener]) {\n return false;\n }\n const eventNameToString = patchOptions && patchOptions.eventNameToString;\n // a shared global taskData to pass data for scheduleEventTask\n // so we do not need to create a new object just for pass some data\n const taskData = {};\n const nativeAddEventListener = proto[zoneSymbolAddEventListener] = proto[ADD_EVENT_LISTENER];\n const nativeRemoveEventListener = proto[zoneSymbol(REMOVE_EVENT_LISTENER)] =\n proto[REMOVE_EVENT_LISTENER];\n const nativeListeners = proto[zoneSymbol(LISTENERS_EVENT_LISTENER)] =\n proto[LISTENERS_EVENT_LISTENER];\n const nativeRemoveAllListeners = proto[zoneSymbol(REMOVE_ALL_LISTENERS_EVENT_LISTENER)] =\n proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER];\n let nativePrependEventListener;\n if (patchOptions && patchOptions.prepend) {\n nativePrependEventListener = proto[zoneSymbol(patchOptions.prepend)] =\n proto[patchOptions.prepend];\n }\n /**\n * This util function will build an option object with passive option\n * to handle all possible input from the user.\n */\n function buildEventListenerOptions(options, passive) {\n if (!passiveSupported && typeof options === 'object' && options) {\n // doesn't support passive but user want to pass an object as options.\n // this will not work on some old browser, so we just pass a boolean\n // as useCapture parameter\n return !!options.capture;\n }\n if (!passiveSupported || !passive) {\n return options;\n }\n if (typeof options === 'boolean') {\n return { capture: options, passive: true };\n }\n if (!options) {\n return { passive: true };\n }\n if (typeof options === 'object' && options.passive !== false) {\n return Object.assign(Object.assign({}, options), { passive: true });\n }\n return options;\n }\n const customScheduleGlobal = function (task) {\n // if there is already a task for the eventName + capture,\n // just return, because we use the shared globalZoneAwareCallback here.\n if (taskData.isExisting) {\n return;\n }\n return nativeAddEventListener.call(taskData.target, taskData.eventName, taskData.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, taskData.options);\n };\n const customCancelGlobal = function (task) {\n // if task is not marked as isRemoved, this call is directly\n // from Zone.prototype.cancelTask, we should remove the task\n // from tasksList of target first\n if (!task.isRemoved) {\n const symbolEventNames = zoneSymbolEventNames[task.eventName];\n let symbolEventName;\n if (symbolEventNames) {\n symbolEventName = symbolEventNames[task.capture ? TRUE_STR : FALSE_STR];\n }\n const existingTasks = symbolEventName && task.target[symbolEventName];\n if (existingTasks) {\n for (let i = 0; i < existingTasks.length; i++) {\n const existingTask = existingTasks[i];\n if (existingTask === task) {\n existingTasks.splice(i, 1);\n // set isRemoved to data for faster invokeTask check\n task.isRemoved = true;\n if (existingTasks.length === 0) {\n // all tasks for the eventName + capture have gone,\n // remove globalZoneAwareCallback and remove the task cache from target\n task.allRemoved = true;\n task.target[symbolEventName] = null;\n }\n break;\n }\n }\n }\n }\n // if all tasks for the eventName + capture have gone,\n // we will really remove the global event callback,\n // if not, return\n if (!task.allRemoved) {\n return;\n }\n return nativeRemoveEventListener.call(task.target, task.eventName, task.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, task.options);\n };\n const customScheduleNonGlobal = function (task) {\n return nativeAddEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options);\n };\n const customSchedulePrepend = function (task) {\n return nativePrependEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options);\n };\n const customCancelNonGlobal = function (task) {\n return nativeRemoveEventListener.call(task.target, task.eventName, task.invoke, task.options);\n };\n const customSchedule = useGlobalCallback ? customScheduleGlobal : customScheduleNonGlobal;\n const customCancel = useGlobalCallback ? customCancelGlobal : customCancelNonGlobal;\n const compareTaskCallbackVsDelegate = function (task, delegate) {\n const typeOfDelegate = typeof delegate;\n return (typeOfDelegate === 'function' && task.callback === delegate) ||\n (typeOfDelegate === 'object' && task.originalDelegate === delegate);\n };\n const compare = (patchOptions && patchOptions.diff) ? patchOptions.diff : compareTaskCallbackVsDelegate;\n const unpatchedEvents = Zone[zoneSymbol('UNPATCHED_EVENTS')];\n const passiveEvents = _global[zoneSymbol('PASSIVE_EVENTS')];\n const makeAddListener = function (nativeListener, addSource, customScheduleFn, customCancelFn, returnTarget = false, prepend = false) {\n return function () {\n const target = this || _global;\n let eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n let delegate = arguments[1];\n if (!delegate) {\n return nativeListener.apply(this, arguments);\n }\n if (isNode && eventName === 'uncaughtException') {\n // don't patch uncaughtException of nodejs to prevent endless loop\n return nativeListener.apply(this, arguments);\n }\n // don't create the bind delegate function for handleEvent\n // case here to improve addEventListener performance\n // we will create the bind delegate when invoke\n let isHandleEvent = false;\n if (typeof delegate !== 'function') {\n if (!delegate.handleEvent) {\n return nativeListener.apply(this, arguments);\n }\n isHandleEvent = true;\n }\n if (validateHandler && !validateHandler(nativeListener, delegate, target, arguments)) {\n return;\n }\n const passive = passiveSupported && !!passiveEvents && passiveEvents.indexOf(eventName) !== -1;\n const options = buildEventListenerOptions(arguments[2], passive);\n if (unpatchedEvents) {\n // check unpatched list\n for (let i = 0; i < unpatchedEvents.length; i++) {\n if (eventName === unpatchedEvents[i]) {\n if (passive) {\n return nativeListener.call(target, eventName, delegate, options);\n }\n else {\n return nativeListener.apply(this, arguments);\n }\n }\n }\n }\n const capture = !options ? false : typeof options === 'boolean' ? true : options.capture;\n const once = options && typeof options === 'object' ? options.once : false;\n const zone = Zone.current;\n let symbolEventNames = zoneSymbolEventNames[eventName];\n if (!symbolEventNames) {\n prepareEventNames(eventName, eventNameToString);\n symbolEventNames = zoneSymbolEventNames[eventName];\n }\n const symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR];\n let existingTasks = target[symbolEventName];\n let isExisting = false;\n if (existingTasks) {\n // already have task registered\n isExisting = true;\n if (checkDuplicate) {\n for (let i = 0; i < existingTasks.length; i++) {\n if (compare(existingTasks[i], delegate)) {\n // same callback, same capture, same event name, just return\n return;\n }\n }\n }\n }\n else {\n existingTasks = target[symbolEventName] = [];\n }\n let source;\n const constructorName = target.constructor['name'];\n const targetSource = globalSources[constructorName];\n if (targetSource) {\n source = targetSource[eventName];\n }\n if (!source) {\n source = constructorName + addSource +\n (eventNameToString ? eventNameToString(eventName) : eventName);\n }\n // do not create a new object as task.data to pass those things\n // just use the global shared one\n taskData.options = options;\n if (once) {\n // if addEventListener with once options, we don't pass it to\n // native addEventListener, instead we keep the once setting\n // and handle ourselves.\n taskData.options.once = false;\n }\n taskData.target = target;\n taskData.capture = capture;\n taskData.eventName = eventName;\n taskData.isExisting = isExisting;\n const data = useGlobalCallback ? OPTIMIZED_ZONE_EVENT_TASK_DATA : undefined;\n // keep taskData into data to allow onScheduleEventTask to access the task information\n if (data) {\n data.taskData = taskData;\n }\n const task = zone.scheduleEventTask(source, delegate, data, customScheduleFn, customCancelFn);\n // should clear taskData.target to avoid memory leak\n // issue, https://github.com/angular/angular/issues/20442\n taskData.target = null;\n // need to clear up taskData because it is a global object\n if (data) {\n data.taskData = null;\n }\n // have to save those information to task in case\n // application may call task.zone.cancelTask() directly\n if (once) {\n options.once = true;\n }\n if (!(!passiveSupported && typeof task.options === 'boolean')) {\n // if not support passive, and we pass an option object\n // to addEventListener, we should save the options to task\n task.options = options;\n }\n task.target = target;\n task.capture = capture;\n task.eventName = eventName;\n if (isHandleEvent) {\n // save original delegate for compare to check duplicate\n task.originalDelegate = delegate;\n }\n if (!prepend) {\n existingTasks.push(task);\n }\n else {\n existingTasks.unshift(task);\n }\n if (returnTarget) {\n return target;\n }\n };\n };\n proto[ADD_EVENT_LISTENER] = makeAddListener(nativeAddEventListener, ADD_EVENT_LISTENER_SOURCE, customSchedule, customCancel, returnTarget);\n if (nativePrependEventListener) {\n proto[PREPEND_EVENT_LISTENER] = makeAddListener(nativePrependEventListener, PREPEND_EVENT_LISTENER_SOURCE, customSchedulePrepend, customCancel, returnTarget, true);\n }\n proto[REMOVE_EVENT_LISTENER] = function () {\n const target = this || _global;\n let eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n const options = arguments[2];\n const capture = !options ? false : typeof options === 'boolean' ? true : options.capture;\n const delegate = arguments[1];\n if (!delegate) {\n return nativeRemoveEventListener.apply(this, arguments);\n }\n if (validateHandler &&\n !validateHandler(nativeRemoveEventListener, delegate, target, arguments)) {\n return;\n }\n const symbolEventNames = zoneSymbolEventNames[eventName];\n let symbolEventName;\n if (symbolEventNames) {\n symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR];\n }\n const existingTasks = symbolEventName && target[symbolEventName];\n if (existingTasks) {\n for (let i = 0; i < existingTasks.length; i++) {\n const existingTask = existingTasks[i];\n if (compare(existingTask, delegate)) {\n existingTasks.splice(i, 1);\n // set isRemoved to data for faster invokeTask check\n existingTask.isRemoved = true;\n if (existingTasks.length === 0) {\n // all tasks for the eventName + capture have gone,\n // remove globalZoneAwareCallback and remove the task cache from target\n existingTask.allRemoved = true;\n target[symbolEventName] = null;\n // in the target, we have an event listener which is added by on_property\n // such as target.onclick = function() {}, so we need to clear this internal\n // property too if all delegates all removed\n if (typeof eventName === 'string') {\n const onPropertySymbol = ZONE_SYMBOL_PREFIX + 'ON_PROPERTY' + eventName;\n target[onPropertySymbol] = null;\n }\n }\n existingTask.zone.cancelTask(existingTask);\n if (returnTarget) {\n return target;\n }\n return;\n }\n }\n }\n // issue 930, didn't find the event name or callback\n // from zone kept existingTasks, the callback maybe\n // added outside of zone, we need to call native removeEventListener\n // to try to remove it.\n return nativeRemoveEventListener.apply(this, arguments);\n };\n proto[LISTENERS_EVENT_LISTENER] = function () {\n const target = this || _global;\n let eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n const listeners = [];\n const tasks = findEventTasks(target, eventNameToString ? eventNameToString(eventName) : eventName);\n for (let i = 0; i < tasks.length; i++) {\n const task = tasks[i];\n let delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n listeners.push(delegate);\n }\n return listeners;\n };\n proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER] = function () {\n const target = this || _global;\n let eventName = arguments[0];\n if (!eventName) {\n const keys = Object.keys(target);\n for (let i = 0; i < keys.length; i++) {\n const prop = keys[i];\n const match = EVENT_NAME_SYMBOL_REGX.exec(prop);\n let evtName = match && match[1];\n // in nodejs EventEmitter, removeListener event is\n // used for monitoring the removeListener call,\n // so just keep removeListener eventListener until\n // all other eventListeners are removed\n if (evtName && evtName !== 'removeListener') {\n this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, evtName);\n }\n }\n // remove removeListener listener finally\n this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, 'removeListener');\n }\n else {\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n const symbolEventNames = zoneSymbolEventNames[eventName];\n if (symbolEventNames) {\n const symbolEventName = symbolEventNames[FALSE_STR];\n const symbolCaptureEventName = symbolEventNames[TRUE_STR];\n const tasks = target[symbolEventName];\n const captureTasks = target[symbolCaptureEventName];\n if (tasks) {\n const removeTasks = tasks.slice();\n for (let i = 0; i < removeTasks.length; i++) {\n const task = removeTasks[i];\n let delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options);\n }\n }\n if (captureTasks) {\n const removeTasks = captureTasks.slice();\n for (let i = 0; i < removeTasks.length; i++) {\n const task = removeTasks[i];\n let delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options);\n }\n }\n }\n }\n if (returnTarget) {\n return this;\n }\n };\n // for native toString patch\n attachOriginToPatched(proto[ADD_EVENT_LISTENER], nativeAddEventListener);\n attachOriginToPatched(proto[REMOVE_EVENT_LISTENER], nativeRemoveEventListener);\n if (nativeRemoveAllListeners) {\n attachOriginToPatched(proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER], nativeRemoveAllListeners);\n }\n if (nativeListeners) {\n attachOriginToPatched(proto[LISTENERS_EVENT_LISTENER], nativeListeners);\n }\n return true;\n }\n let results = [];\n for (let i = 0; i < apis.length; i++) {\n results[i] = patchEventTargetMethods(apis[i], patchOptions);\n }\n return results;\n}\nfunction findEventTasks(target, eventName) {\n if (!eventName) {\n const foundTasks = [];\n for (let prop in target) {\n const match = EVENT_NAME_SYMBOL_REGX.exec(prop);\n let evtName = match && match[1];\n if (evtName && (!eventName || evtName === eventName)) {\n const tasks = target[prop];\n if (tasks) {\n for (let i = 0; i < tasks.length; i++) {\n foundTasks.push(tasks[i]);\n }\n }\n }\n }\n return foundTasks;\n }\n let symbolEventName = zoneSymbolEventNames[eventName];\n if (!symbolEventName) {\n prepareEventNames(eventName);\n symbolEventName = zoneSymbolEventNames[eventName];\n }\n const captureFalseTasks = target[symbolEventName[FALSE_STR]];\n const captureTrueTasks = target[symbolEventName[TRUE_STR]];\n if (!captureFalseTasks) {\n return captureTrueTasks ? captureTrueTasks.slice() : [];\n }\n else {\n return captureTrueTasks ? captureFalseTasks.concat(captureTrueTasks) :\n captureFalseTasks.slice();\n }\n}\nfunction patchEventPrototype(global, api) {\n const Event = global['Event'];\n if (Event && Event.prototype) {\n api.patchMethod(Event.prototype, 'stopImmediatePropagation', (delegate) => function (self, args) {\n self[IMMEDIATE_PROPAGATION_SYMBOL] = true;\n // we need to call the native stopImmediatePropagation\n // in case in some hybrid application, some part of\n // application will be controlled by zone, some are not\n delegate && delegate.apply(self, args);\n });\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction patchCallbacks(api, target, targetName, method, callbacks) {\n const symbol = Zone.__symbol__(method);\n if (target[symbol]) {\n return;\n }\n const nativeDelegate = target[symbol] = target[method];\n target[method] = function (name, opts, options) {\n if (opts && opts.prototype) {\n callbacks.forEach(function (callback) {\n const source = `${targetName}.${method}::` + callback;\n const prototype = opts.prototype;\n // Note: the `patchCallbacks` is used for patching the `document.registerElement` and\n // `customElements.define`. We explicitly wrap the patching code into try-catch since\n // callbacks may be already patched by other web components frameworks (e.g. LWC), and they\n // make those properties non-writable. This means that patching callback will throw an error\n // `cannot assign to read-only property`. See this code as an example:\n // https://github.com/salesforce/lwc/blob/master/packages/@lwc/engine-core/src/framework/base-bridge-element.ts#L180-L186\n // We don't want to stop the application rendering if we couldn't patch some\n // callback, e.g. `attributeChangedCallback`.\n try {\n if (prototype.hasOwnProperty(callback)) {\n const descriptor = api.ObjectGetOwnPropertyDescriptor(prototype, callback);\n if (descriptor && descriptor.value) {\n descriptor.value = api.wrapWithCurrentZone(descriptor.value, source);\n api._redefineProperty(opts.prototype, callback, descriptor);\n }\n else if (prototype[callback]) {\n prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source);\n }\n }\n else if (prototype[callback]) {\n prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source);\n }\n }\n catch (_a) {\n // Note: we leave the catch block empty since there's no way to handle the error related\n // to non-writable property.\n }\n });\n }\n return nativeDelegate.call(target, name, opts, options);\n };\n api.attachOriginToPatched(target[method], nativeDelegate);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction filterProperties(target, onProperties, ignoreProperties) {\n if (!ignoreProperties || ignoreProperties.length === 0) {\n return onProperties;\n }\n const tip = ignoreProperties.filter(ip => ip.target === target);\n if (!tip || tip.length === 0) {\n return onProperties;\n }\n const targetIgnoreProperties = tip[0].ignoreProperties;\n return onProperties.filter(op => targetIgnoreProperties.indexOf(op) === -1);\n}\nfunction patchFilteredProperties(target, onProperties, ignoreProperties, prototype) {\n // check whether target is available, sometimes target will be undefined\n // because different browser or some 3rd party plugin.\n if (!target) {\n return;\n }\n const filteredProperties = filterProperties(target, onProperties, ignoreProperties);\n patchOnProperties(target, filteredProperties, prototype);\n}\n/**\n * Get all event name properties which the event name startsWith `on`\n * from the target object itself, inherited properties are not considered.\n */\nfunction getOnEventNames(target) {\n return Object.getOwnPropertyNames(target)\n .filter(name => name.startsWith('on') && name.length > 2)\n .map(name => name.substring(2));\n}\nfunction propertyDescriptorPatch(api, _global) {\n if (isNode && !isMix) {\n return;\n }\n if (Zone[api.symbol('patchEvents')]) {\n // events are already been patched by legacy patch.\n return;\n }\n const ignoreProperties = _global['__Zone_ignore_on_properties'];\n // for browsers that we can patch the descriptor: Chrome & Firefox\n let patchTargets = [];\n if (isBrowser) {\n const internalWindow = window;\n patchTargets = patchTargets.concat([\n 'Document', 'SVGElement', 'Element', 'HTMLElement', 'HTMLBodyElement', 'HTMLMediaElement',\n 'HTMLFrameSetElement', 'HTMLFrameElement', 'HTMLIFrameElement', 'HTMLMarqueeElement', 'Worker'\n ]);\n const ignoreErrorProperties = isIE() ? [{ target: internalWindow, ignoreProperties: ['error'] }] : [];\n // in IE/Edge, onProp not exist in window object, but in WindowPrototype\n // so we need to pass WindowPrototype to check onProp exist or not\n patchFilteredProperties(internalWindow, getOnEventNames(internalWindow), ignoreProperties ? ignoreProperties.concat(ignoreErrorProperties) : ignoreProperties, ObjectGetPrototypeOf(internalWindow));\n }\n patchTargets = patchTargets.concat([\n 'XMLHttpRequest', 'XMLHttpRequestEventTarget', 'IDBIndex', 'IDBRequest', 'IDBOpenDBRequest',\n 'IDBDatabase', 'IDBTransaction', 'IDBCursor', 'WebSocket'\n ]);\n for (let i = 0; i < patchTargets.length; i++) {\n const target = _global[patchTargets[i]];\n target && target.prototype &&\n patchFilteredProperties(target.prototype, getOnEventNames(target.prototype), ignoreProperties);\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nZone.__load_patch('util', (global, Zone, api) => {\n // Collect native event names by looking at properties\n // on the global namespace, e.g. 'onclick'.\n const eventNames = getOnEventNames(global);\n api.patchOnProperties = patchOnProperties;\n api.patchMethod = patchMethod;\n api.bindArguments = bindArguments;\n api.patchMacroTask = patchMacroTask;\n // In earlier version of zone.js (<0.9.0), we use env name `__zone_symbol__BLACK_LISTED_EVENTS` to\n // define which events will not be patched by `Zone.js`.\n // In newer version (>=0.9.0), we change the env name to `__zone_symbol__UNPATCHED_EVENTS` to keep\n // the name consistent with angular repo.\n // The `__zone_symbol__BLACK_LISTED_EVENTS` is deprecated, but it is still be supported for\n // backwards compatibility.\n const SYMBOL_BLACK_LISTED_EVENTS = Zone.__symbol__('BLACK_LISTED_EVENTS');\n const SYMBOL_UNPATCHED_EVENTS = Zone.__symbol__('UNPATCHED_EVENTS');\n if (global[SYMBOL_UNPATCHED_EVENTS]) {\n global[SYMBOL_BLACK_LISTED_EVENTS] = global[SYMBOL_UNPATCHED_EVENTS];\n }\n if (global[SYMBOL_BLACK_LISTED_EVENTS]) {\n Zone[SYMBOL_BLACK_LISTED_EVENTS] = Zone[SYMBOL_UNPATCHED_EVENTS] =\n global[SYMBOL_BLACK_LISTED_EVENTS];\n }\n api.patchEventPrototype = patchEventPrototype;\n api.patchEventTarget = patchEventTarget;\n api.isIEOrEdge = isIEOrEdge;\n api.ObjectDefineProperty = ObjectDefineProperty;\n api.ObjectGetOwnPropertyDescriptor = ObjectGetOwnPropertyDescriptor;\n api.ObjectCreate = ObjectCreate;\n api.ArraySlice = ArraySlice;\n api.patchClass = patchClass;\n api.wrapWithCurrentZone = wrapWithCurrentZone;\n api.filterProperties = filterProperties;\n api.attachOriginToPatched = attachOriginToPatched;\n api._redefineProperty = Object.defineProperty;\n api.patchCallbacks = patchCallbacks;\n api.getGlobalObjects = () => ({\n globalSources,\n zoneSymbolEventNames,\n eventNames,\n isBrowser,\n isMix,\n isNode,\n TRUE_STR,\n FALSE_STR,\n ZONE_SYMBOL_PREFIX,\n ADD_EVENT_LISTENER_STR,\n REMOVE_EVENT_LISTENER_STR\n });\n});\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst taskSymbol = zoneSymbol('zoneTask');\nfunction patchTimer(window, setName, cancelName, nameSuffix) {\n let setNative = null;\n let clearNative = null;\n setName += nameSuffix;\n cancelName += nameSuffix;\n const tasksByHandleId = {};\n function scheduleTask(task) {\n const data = task.data;\n data.args[0] = function () {\n return task.invoke.apply(this, arguments);\n };\n data.handleId = setNative.apply(window, data.args);\n return task;\n }\n function clearTask(task) {\n return clearNative.call(window, task.data.handleId);\n }\n setNative =\n patchMethod(window, setName, (delegate) => function (self, args) {\n if (typeof args[0] === 'function') {\n const options = {\n isPeriodic: nameSuffix === 'Interval',\n delay: (nameSuffix === 'Timeout' || nameSuffix === 'Interval') ? args[1] || 0 :\n undefined,\n args: args\n };\n const callback = args[0];\n args[0] = function timer() {\n try {\n return callback.apply(this, arguments);\n }\n finally {\n // issue-934, task will be cancelled\n // even it is a periodic task such as\n // setInterval\n // https://github.com/angular/angular/issues/40387\n // Cleanup tasksByHandleId should be handled before scheduleTask\n // Since some zoneSpec may intercept and doesn't trigger\n // scheduleFn(scheduleTask) provided here.\n if (!(options.isPeriodic)) {\n if (typeof options.handleId === 'number') {\n // in non-nodejs env, we remove timerId\n // from local cache\n delete tasksByHandleId[options.handleId];\n }\n else if (options.handleId) {\n // Node returns complex objects as handleIds\n // we remove task reference from timer object\n options.handleId[taskSymbol] = null;\n }\n }\n }\n };\n const task = scheduleMacroTaskWithCurrentZone(setName, args[0], options, scheduleTask, clearTask);\n if (!task) {\n return task;\n }\n // Node.js must additionally support the ref and unref functions.\n const handle = task.data.handleId;\n if (typeof handle === 'number') {\n // for non nodejs env, we save handleId: task\n // mapping in local cache for clearTimeout\n tasksByHandleId[handle] = task;\n }\n else if (handle) {\n // for nodejs env, we save task\n // reference in timerId Object for clearTimeout\n handle[taskSymbol] = task;\n }\n // check whether handle is null, because some polyfill or browser\n // may return undefined from setTimeout/setInterval/setImmediate/requestAnimationFrame\n if (handle && handle.ref && handle.unref && typeof handle.ref === 'function' &&\n typeof handle.unref === 'function') {\n task.ref = handle.ref.bind(handle);\n task.unref = handle.unref.bind(handle);\n }\n if (typeof handle === 'number' || handle) {\n return handle;\n }\n return task;\n }\n else {\n // cause an error by calling it directly.\n return delegate.apply(window, args);\n }\n });\n clearNative =\n patchMethod(window, cancelName, (delegate) => function (self, args) {\n const id = args[0];\n let task;\n if (typeof id === 'number') {\n // non nodejs env.\n task = tasksByHandleId[id];\n }\n else {\n // nodejs env.\n task = id && id[taskSymbol];\n // other environments.\n if (!task) {\n task = id;\n }\n }\n if (task && typeof task.type === 'string') {\n if (task.state !== 'notScheduled' &&\n (task.cancelFn && task.data.isPeriodic || task.runCount === 0)) {\n if (typeof id === 'number') {\n delete tasksByHandleId[id];\n }\n else if (id) {\n id[taskSymbol] = null;\n }\n // Do not cancel already canceled functions\n task.zone.cancelTask(task);\n }\n }\n else {\n // cause an error by calling it directly.\n delegate.apply(window, args);\n }\n });\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction patchCustomElements(_global, api) {\n const { isBrowser, isMix } = api.getGlobalObjects();\n if ((!isBrowser && !isMix) || !_global['customElements'] || !('customElements' in _global)) {\n return;\n }\n const callbacks = ['connectedCallback', 'disconnectedCallback', 'adoptedCallback', 'attributeChangedCallback'];\n api.patchCallbacks(api, _global.customElements, 'customElements', 'define', callbacks);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction eventTargetPatch(_global, api) {\n if (Zone[api.symbol('patchEventTarget')]) {\n // EventTarget is already patched.\n return;\n }\n const { eventNames, zoneSymbolEventNames, TRUE_STR, FALSE_STR, ZONE_SYMBOL_PREFIX } = api.getGlobalObjects();\n // predefine all __zone_symbol__ + eventName + true/false string\n for (let i = 0; i < eventNames.length; i++) {\n const eventName = eventNames[i];\n const falseEventName = eventName + FALSE_STR;\n const trueEventName = eventName + TRUE_STR;\n const symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n const symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames[eventName] = {};\n zoneSymbolEventNames[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture;\n }\n const EVENT_TARGET = _global['EventTarget'];\n if (!EVENT_TARGET || !EVENT_TARGET.prototype) {\n return;\n }\n api.patchEventTarget(_global, api, [EVENT_TARGET && EVENT_TARGET.prototype]);\n return true;\n}\nfunction patchEvent(global, api) {\n api.patchEventPrototype(global, api);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nZone.__load_patch('legacy', (global) => {\n const legacyPatch = global[Zone.__symbol__('legacyPatch')];\n if (legacyPatch) {\n legacyPatch();\n }\n});\nZone.__load_patch('queueMicrotask', (global, Zone, api) => {\n api.patchMethod(global, 'queueMicrotask', delegate => {\n return function (self, args) {\n Zone.current.scheduleMicroTask('queueMicrotask', args[0]);\n };\n });\n});\nZone.__load_patch('timers', (global) => {\n const set = 'set';\n const clear = 'clear';\n patchTimer(global, set, clear, 'Timeout');\n patchTimer(global, set, clear, 'Interval');\n patchTimer(global, set, clear, 'Immediate');\n});\nZone.__load_patch('requestAnimationFrame', (global) => {\n patchTimer(global, 'request', 'cancel', 'AnimationFrame');\n patchTimer(global, 'mozRequest', 'mozCancel', 'AnimationFrame');\n patchTimer(global, 'webkitRequest', 'webkitCancel', 'AnimationFrame');\n});\nZone.__load_patch('blocking', (global, Zone) => {\n const blockingMethods = ['alert', 'prompt', 'confirm'];\n for (let i = 0; i < blockingMethods.length; i++) {\n const name = blockingMethods[i];\n patchMethod(global, name, (delegate, symbol, name) => {\n return function (s, args) {\n return Zone.current.run(delegate, global, args, name);\n };\n });\n }\n});\nZone.__load_patch('EventTarget', (global, Zone, api) => {\n patchEvent(global, api);\n eventTargetPatch(global, api);\n // patch XMLHttpRequestEventTarget's addEventListener/removeEventListener\n const XMLHttpRequestEventTarget = global['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget && XMLHttpRequestEventTarget.prototype) {\n api.patchEventTarget(global, api, [XMLHttpRequestEventTarget.prototype]);\n }\n});\nZone.__load_patch('MutationObserver', (global, Zone, api) => {\n patchClass('MutationObserver');\n patchClass('WebKitMutationObserver');\n});\nZone.__load_patch('IntersectionObserver', (global, Zone, api) => {\n patchClass('IntersectionObserver');\n});\nZone.__load_patch('FileReader', (global, Zone, api) => {\n patchClass('FileReader');\n});\nZone.__load_patch('on_property', (global, Zone, api) => {\n propertyDescriptorPatch(api, global);\n});\nZone.__load_patch('customElements', (global, Zone, api) => {\n patchCustomElements(global, api);\n});\nZone.__load_patch('XHR', (global, Zone) => {\n // Treat XMLHttpRequest as a macrotask.\n patchXHR(global);\n const XHR_TASK = zoneSymbol('xhrTask');\n const XHR_SYNC = zoneSymbol('xhrSync');\n const XHR_LISTENER = zoneSymbol('xhrListener');\n const XHR_SCHEDULED = zoneSymbol('xhrScheduled');\n const XHR_URL = zoneSymbol('xhrURL');\n const XHR_ERROR_BEFORE_SCHEDULED = zoneSymbol('xhrErrorBeforeScheduled');\n function patchXHR(window) {\n const XMLHttpRequest = window['XMLHttpRequest'];\n if (!XMLHttpRequest) {\n // XMLHttpRequest is not available in service worker\n return;\n }\n const XMLHttpRequestPrototype = XMLHttpRequest.prototype;\n function findPendingTask(target) {\n return target[XHR_TASK];\n }\n let oriAddListener = XMLHttpRequestPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n let oriRemoveListener = XMLHttpRequestPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n if (!oriAddListener) {\n const XMLHttpRequestEventTarget = window['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget) {\n const XMLHttpRequestEventTargetPrototype = XMLHttpRequestEventTarget.prototype;\n oriAddListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n oriRemoveListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n }\n }\n const READY_STATE_CHANGE = 'readystatechange';\n const SCHEDULED = 'scheduled';\n function scheduleTask(task) {\n const data = task.data;\n const target = data.target;\n target[XHR_SCHEDULED] = false;\n target[XHR_ERROR_BEFORE_SCHEDULED] = false;\n // remove existing event listener\n const listener = target[XHR_LISTENER];\n if (!oriAddListener) {\n oriAddListener = target[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n oriRemoveListener = target[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n }\n if (listener) {\n oriRemoveListener.call(target, READY_STATE_CHANGE, listener);\n }\n const newListener = target[XHR_LISTENER] = () => {\n if (target.readyState === target.DONE) {\n // sometimes on some browsers XMLHttpRequest will fire onreadystatechange with\n // readyState=4 multiple times, so we need to check task state here\n if (!data.aborted && target[XHR_SCHEDULED] && task.state === SCHEDULED) {\n // check whether the xhr has registered onload listener\n // if that is the case, the task should invoke after all\n // onload listeners finish.\n // Also if the request failed without response (status = 0), the load event handler\n // will not be triggered, in that case, we should also invoke the placeholder callback\n // to close the XMLHttpRequest::send macroTask.\n // https://github.com/angular/angular/issues/38795\n const loadTasks = target[Zone.__symbol__('loadfalse')];\n if (target.status !== 0 && loadTasks && loadTasks.length > 0) {\n const oriInvoke = task.invoke;\n task.invoke = function () {\n // need to load the tasks again, because in other\n // load listener, they may remove themselves\n const loadTasks = target[Zone.__symbol__('loadfalse')];\n for (let i = 0; i < loadTasks.length; i++) {\n if (loadTasks[i] === task) {\n loadTasks.splice(i, 1);\n }\n }\n if (!data.aborted && task.state === SCHEDULED) {\n oriInvoke.call(task);\n }\n };\n loadTasks.push(task);\n }\n else {\n task.invoke();\n }\n }\n else if (!data.aborted && target[XHR_SCHEDULED] === false) {\n // error occurs when xhr.send()\n target[XHR_ERROR_BEFORE_SCHEDULED] = true;\n }\n }\n };\n oriAddListener.call(target, READY_STATE_CHANGE, newListener);\n const storedTask = target[XHR_TASK];\n if (!storedTask) {\n target[XHR_TASK] = task;\n }\n sendNative.apply(target, data.args);\n target[XHR_SCHEDULED] = true;\n return task;\n }\n function placeholderCallback() { }\n function clearTask(task) {\n const data = task.data;\n // Note - ideally, we would call data.target.removeEventListener here, but it's too late\n // to prevent it from firing. So instead, we store info for the event listener.\n data.aborted = true;\n return abortNative.apply(data.target, data.args);\n }\n const openNative = patchMethod(XMLHttpRequestPrototype, 'open', () => function (self, args) {\n self[XHR_SYNC] = args[2] == false;\n self[XHR_URL] = args[1];\n return openNative.apply(self, args);\n });\n const XMLHTTPREQUEST_SOURCE = 'XMLHttpRequest.send';\n const fetchTaskAborting = zoneSymbol('fetchTaskAborting');\n const fetchTaskScheduling = zoneSymbol('fetchTaskScheduling');\n const sendNative = patchMethod(XMLHttpRequestPrototype, 'send', () => function (self, args) {\n if (Zone.current[fetchTaskScheduling] === true) {\n // a fetch is scheduling, so we are using xhr to polyfill fetch\n // and because we already schedule macroTask for fetch, we should\n // not schedule a macroTask for xhr again\n return sendNative.apply(self, args);\n }\n if (self[XHR_SYNC]) {\n // if the XHR is sync there is no task to schedule, just execute the code.\n return sendNative.apply(self, args);\n }\n else {\n const options = { target: self, url: self[XHR_URL], isPeriodic: false, args: args, aborted: false };\n const task = scheduleMacroTaskWithCurrentZone(XMLHTTPREQUEST_SOURCE, placeholderCallback, options, scheduleTask, clearTask);\n if (self && self[XHR_ERROR_BEFORE_SCHEDULED] === true && !options.aborted &&\n task.state === SCHEDULED) {\n // xhr request throw error when send\n // we should invoke task instead of leaving a scheduled\n // pending macroTask\n task.invoke();\n }\n }\n });\n const abortNative = patchMethod(XMLHttpRequestPrototype, 'abort', () => function (self, args) {\n const task = findPendingTask(self);\n if (task && typeof task.type == 'string') {\n // If the XHR has already completed, do nothing.\n // If the XHR has already been aborted, do nothing.\n // Fix #569, call abort multiple times before done will cause\n // macroTask task count be negative number\n if (task.cancelFn == null || (task.data && task.data.aborted)) {\n return;\n }\n task.zone.cancelTask(task);\n }\n else if (Zone.current[fetchTaskAborting] === true) {\n // the abort is called from fetch polyfill, we need to call native abort of XHR.\n return abortNative.apply(self, args);\n }\n // Otherwise, we are trying to abort an XHR which has not yet been sent, so there is no\n // task\n // to cancel. Do nothing.\n });\n }\n});\nZone.__load_patch('geolocation', (global) => {\n /// GEO_LOCATION\n if (global['navigator'] && global['navigator'].geolocation) {\n patchPrototype(global['navigator'].geolocation, ['getCurrentPosition', 'watchPosition']);\n }\n});\nZone.__load_patch('PromiseRejectionEvent', (global, Zone) => {\n // handle unhandled promise rejection\n function findPromiseRejectionHandler(evtName) {\n return function (e) {\n const eventTasks = findEventTasks(global, evtName);\n eventTasks.forEach(eventTask => {\n // windows has added unhandledrejection event listener\n // trigger the event listener\n const PromiseRejectionEvent = global['PromiseRejectionEvent'];\n if (PromiseRejectionEvent) {\n const evt = new PromiseRejectionEvent(evtName, { promise: e.promise, reason: e.rejection });\n eventTask.invoke(evt);\n }\n });\n };\n }\n if (global['PromiseRejectionEvent']) {\n Zone[zoneSymbol('unhandledPromiseRejectionHandler')] =\n findPromiseRejectionHandler('unhandledrejection');\n Zone[zoneSymbol('rejectionHandledHandler')] =\n findPromiseRejectionHandler('rejectionhandled');\n }\n});\n","/**\n * @license Angular v14.3.0\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nvar TagContentType;\n(function (TagContentType) {\n TagContentType[TagContentType[\"RAW_TEXT\"] = 0] = \"RAW_TEXT\";\n TagContentType[TagContentType[\"ESCAPABLE_RAW_TEXT\"] = 1] = \"ESCAPABLE_RAW_TEXT\";\n TagContentType[TagContentType[\"PARSABLE_DATA\"] = 2] = \"PARSABLE_DATA\";\n})(TagContentType || (TagContentType = {}));\nfunction splitNsName(elementName) {\n if (elementName[0] != ':') {\n return [null, elementName];\n }\n const colonIndex = elementName.indexOf(':', 1);\n if (colonIndex === -1) {\n throw new Error(`Unsupported format \"${elementName}\" expecting \":namespace:name\"`);\n }\n return [elementName.slice(1, colonIndex), elementName.slice(colonIndex + 1)];\n}\n// `` tags work the same regardless the namespace\nfunction isNgContainer(tagName) {\n return splitNsName(tagName)[1] === 'ng-container';\n}\n// `` tags work the same regardless the namespace\nfunction isNgContent(tagName) {\n return splitNsName(tagName)[1] === 'ng-content';\n}\n// `` tags work the same regardless the namespace\nfunction isNgTemplate(tagName) {\n return splitNsName(tagName)[1] === 'ng-template';\n}\nfunction getNsPrefix(fullName) {\n return fullName === null ? null : splitNsName(fullName)[0];\n}\nfunction mergeNsAndName(prefix, localName) {\n return prefix ? `:${prefix}:${localName}` : localName;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass HtmlTagDefinition {\n constructor({ closedByChildren, implicitNamespacePrefix, contentType = TagContentType.PARSABLE_DATA, closedByParent = false, isVoid = false, ignoreFirstLf = false, preventNamespaceInheritance = false } = {}) {\n this.closedByChildren = {};\n this.closedByParent = false;\n this.canSelfClose = false;\n if (closedByChildren && closedByChildren.length > 0) {\n closedByChildren.forEach(tagName => this.closedByChildren[tagName] = true);\n }\n this.isVoid = isVoid;\n this.closedByParent = closedByParent || isVoid;\n this.implicitNamespacePrefix = implicitNamespacePrefix || null;\n this.contentType = contentType;\n this.ignoreFirstLf = ignoreFirstLf;\n this.preventNamespaceInheritance = preventNamespaceInheritance;\n }\n isClosedByChild(name) {\n return this.isVoid || name.toLowerCase() in this.closedByChildren;\n }\n getContentType(prefix) {\n if (typeof this.contentType === 'object') {\n const overrideType = prefix === undefined ? undefined : this.contentType[prefix];\n return overrideType ?? this.contentType.default;\n }\n return this.contentType;\n }\n}\nlet _DEFAULT_TAG_DEFINITION;\n// see https://www.w3.org/TR/html51/syntax.html#optional-tags\n// This implementation does not fully conform to the HTML5 spec.\nlet TAG_DEFINITIONS;\nfunction getHtmlTagDefinition(tagName) {\n if (!TAG_DEFINITIONS) {\n _DEFAULT_TAG_DEFINITION = new HtmlTagDefinition();\n TAG_DEFINITIONS = {\n 'base': new HtmlTagDefinition({ isVoid: true }),\n 'meta': new HtmlTagDefinition({ isVoid: true }),\n 'area': new HtmlTagDefinition({ isVoid: true }),\n 'embed': new HtmlTagDefinition({ isVoid: true }),\n 'link': new HtmlTagDefinition({ isVoid: true }),\n 'img': new HtmlTagDefinition({ isVoid: true }),\n 'input': new HtmlTagDefinition({ isVoid: true }),\n 'param': new HtmlTagDefinition({ isVoid: true }),\n 'hr': new HtmlTagDefinition({ isVoid: true }),\n 'br': new HtmlTagDefinition({ isVoid: true }),\n 'source': new HtmlTagDefinition({ isVoid: true }),\n 'track': new HtmlTagDefinition({ isVoid: true }),\n 'wbr': new HtmlTagDefinition({ isVoid: true }),\n 'p': new HtmlTagDefinition({\n closedByChildren: [\n 'address', 'article', 'aside', 'blockquote', 'div', 'dl', 'fieldset',\n 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5',\n 'h6', 'header', 'hgroup', 'hr', 'main', 'nav', 'ol',\n 'p', 'pre', 'section', 'table', 'ul'\n ],\n closedByParent: true\n }),\n 'thead': new HtmlTagDefinition({ closedByChildren: ['tbody', 'tfoot'] }),\n 'tbody': new HtmlTagDefinition({ closedByChildren: ['tbody', 'tfoot'], closedByParent: true }),\n 'tfoot': new HtmlTagDefinition({ closedByChildren: ['tbody'], closedByParent: true }),\n 'tr': new HtmlTagDefinition({ closedByChildren: ['tr'], closedByParent: true }),\n 'td': new HtmlTagDefinition({ closedByChildren: ['td', 'th'], closedByParent: true }),\n 'th': new HtmlTagDefinition({ closedByChildren: ['td', 'th'], closedByParent: true }),\n 'col': new HtmlTagDefinition({ isVoid: true }),\n 'svg': new HtmlTagDefinition({ implicitNamespacePrefix: 'svg' }),\n 'foreignObject': new HtmlTagDefinition({\n // Usually the implicit namespace here would be redundant since it will be inherited from\n // the parent `svg`, but we have to do it for `foreignObject`, because the way the parser\n // works is that the parent node of an end tag is its own start tag which means that\n // the `preventNamespaceInheritance` on `foreignObject` would have it default to the\n // implicit namespace which is `html`, unless specified otherwise.\n implicitNamespacePrefix: 'svg',\n // We want to prevent children of foreignObject from inheriting its namespace, because\n // the point of the element is to allow nodes from other namespaces to be inserted.\n preventNamespaceInheritance: true,\n }),\n 'math': new HtmlTagDefinition({ implicitNamespacePrefix: 'math' }),\n 'li': new HtmlTagDefinition({ closedByChildren: ['li'], closedByParent: true }),\n 'dt': new HtmlTagDefinition({ closedByChildren: ['dt', 'dd'] }),\n 'dd': new HtmlTagDefinition({ closedByChildren: ['dt', 'dd'], closedByParent: true }),\n 'rb': new HtmlTagDefinition({ closedByChildren: ['rb', 'rt', 'rtc', 'rp'], closedByParent: true }),\n 'rt': new HtmlTagDefinition({ closedByChildren: ['rb', 'rt', 'rtc', 'rp'], closedByParent: true }),\n 'rtc': new HtmlTagDefinition({ closedByChildren: ['rb', 'rtc', 'rp'], closedByParent: true }),\n 'rp': new HtmlTagDefinition({ closedByChildren: ['rb', 'rt', 'rtc', 'rp'], closedByParent: true }),\n 'optgroup': new HtmlTagDefinition({ closedByChildren: ['optgroup'], closedByParent: true }),\n 'option': new HtmlTagDefinition({ closedByChildren: ['option', 'optgroup'], closedByParent: true }),\n 'pre': new HtmlTagDefinition({ ignoreFirstLf: true }),\n 'listing': new HtmlTagDefinition({ ignoreFirstLf: true }),\n 'style': new HtmlTagDefinition({ contentType: TagContentType.RAW_TEXT }),\n 'script': new HtmlTagDefinition({ contentType: TagContentType.RAW_TEXT }),\n 'title': new HtmlTagDefinition({\n // The browser supports two separate `title` tags which have to use\n // a different content type: `HTMLTitleElement` and `SVGTitleElement`\n contentType: { default: TagContentType.ESCAPABLE_RAW_TEXT, svg: TagContentType.PARSABLE_DATA }\n }),\n 'textarea': new HtmlTagDefinition({ contentType: TagContentType.ESCAPABLE_RAW_TEXT, ignoreFirstLf: true }),\n };\n }\n // We have to make both a case-sensitive and a case-insensitive lookup, because\n // HTML tag names are case insensitive, whereas some SVG tags are case sensitive.\n return TAG_DEFINITIONS[tagName] ?? TAG_DEFINITIONS[tagName.toLowerCase()] ??\n _DEFAULT_TAG_DEFINITION;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst _SELECTOR_REGEXP = new RegExp('(\\\\:not\\\\()|' + // 1: \":not(\"\n '(([\\\\.\\\\#]?)[-\\\\w]+)|' + // 2: \"tag\"; 3: \".\"/\"#\";\n // \"-\" should appear first in the regexp below as FF31 parses \"[.-\\w]\" as a range\n // 4: attribute; 5: attribute_string; 6: attribute_value\n '(?:\\\\[([-.\\\\w*\\\\\\\\$]+)(?:=([\\\"\\']?)([^\\\\]\\\"\\']*)\\\\5)?\\\\])|' + // \"[name]\", \"[name=value]\",\n // \"[name=\"value\"]\",\n // \"[name='value']\"\n '(\\\\))|' + // 7: \")\"\n '(\\\\s*,\\\\s*)', // 8: \",\"\n'g');\n/**\n * A css selector contains an element name,\n * css classes and attribute/value pairs with the purpose\n * of selecting subsets out of them.\n */\nclass CssSelector {\n constructor() {\n this.element = null;\n this.classNames = [];\n /**\n * The selectors are encoded in pairs where:\n * - even locations are attribute names\n * - odd locations are attribute values.\n *\n * Example:\n * Selector: `[key1=value1][key2]` would parse to:\n * ```\n * ['key1', 'value1', 'key2', '']\n * ```\n */\n this.attrs = [];\n this.notSelectors = [];\n }\n static parse(selector) {\n const results = [];\n const _addResult = (res, cssSel) => {\n if (cssSel.notSelectors.length > 0 && !cssSel.element && cssSel.classNames.length == 0 &&\n cssSel.attrs.length == 0) {\n cssSel.element = '*';\n }\n res.push(cssSel);\n };\n let cssSelector = new CssSelector();\n let match;\n let current = cssSelector;\n let inNot = false;\n _SELECTOR_REGEXP.lastIndex = 0;\n while (match = _SELECTOR_REGEXP.exec(selector)) {\n if (match[1 /* SelectorRegexp.NOT */]) {\n if (inNot) {\n throw new Error('Nesting :not in a selector is not allowed');\n }\n inNot = true;\n current = new CssSelector();\n cssSelector.notSelectors.push(current);\n }\n const tag = match[2 /* SelectorRegexp.TAG */];\n if (tag) {\n const prefix = match[3 /* SelectorRegexp.PREFIX */];\n if (prefix === '#') {\n // #hash\n current.addAttribute('id', tag.slice(1));\n }\n else if (prefix === '.') {\n // Class\n current.addClassName(tag.slice(1));\n }\n else {\n // Element\n current.setElement(tag);\n }\n }\n const attribute = match[4 /* SelectorRegexp.ATTRIBUTE */];\n if (attribute) {\n current.addAttribute(current.unescapeAttribute(attribute), match[6 /* SelectorRegexp.ATTRIBUTE_VALUE */]);\n }\n if (match[7 /* SelectorRegexp.NOT_END */]) {\n inNot = false;\n current = cssSelector;\n }\n if (match[8 /* SelectorRegexp.SEPARATOR */]) {\n if (inNot) {\n throw new Error('Multiple selectors in :not are not supported');\n }\n _addResult(results, cssSelector);\n cssSelector = current = new CssSelector();\n }\n }\n _addResult(results, cssSelector);\n return results;\n }\n /**\n * Unescape `\\$` sequences from the CSS attribute selector.\n *\n * This is needed because `$` can have a special meaning in CSS selectors,\n * but we might want to match an attribute that contains `$`.\n * [MDN web link for more\n * info](https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors).\n * @param attr the attribute to unescape.\n * @returns the unescaped string.\n */\n unescapeAttribute(attr) {\n let result = '';\n let escaping = false;\n for (let i = 0; i < attr.length; i++) {\n const char = attr.charAt(i);\n if (char === '\\\\') {\n escaping = true;\n continue;\n }\n if (char === '$' && !escaping) {\n throw new Error(`Error in attribute selector \"${attr}\". ` +\n `Unescaped \"$\" is not supported. Please escape with \"\\\\$\".`);\n }\n escaping = false;\n result += char;\n }\n return result;\n }\n /**\n * Escape `$` sequences from the CSS attribute selector.\n *\n * This is needed because `$` can have a special meaning in CSS selectors,\n * with this method we are escaping `$` with `\\$'.\n * [MDN web link for more\n * info](https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors).\n * @param attr the attribute to escape.\n * @returns the escaped string.\n */\n escapeAttribute(attr) {\n return attr.replace(/\\\\/g, '\\\\\\\\').replace(/\\$/g, '\\\\$');\n }\n isElementSelector() {\n return this.hasElementSelector() && this.classNames.length == 0 && this.attrs.length == 0 &&\n this.notSelectors.length === 0;\n }\n hasElementSelector() {\n return !!this.element;\n }\n setElement(element = null) {\n this.element = element;\n }\n /** Gets a template string for an element that matches the selector. */\n getMatchingElementTemplate() {\n const tagName = this.element || 'div';\n const classAttr = this.classNames.length > 0 ? ` class=\"${this.classNames.join(' ')}\"` : '';\n let attrs = '';\n for (let i = 0; i < this.attrs.length; i += 2) {\n const attrName = this.attrs[i];\n const attrValue = this.attrs[i + 1] !== '' ? `=\"${this.attrs[i + 1]}\"` : '';\n attrs += ` ${attrName}${attrValue}`;\n }\n return getHtmlTagDefinition(tagName).isVoid ? `<${tagName}${classAttr}${attrs}/>` :\n `<${tagName}${classAttr}${attrs}>`;\n }\n getAttrs() {\n const result = [];\n if (this.classNames.length > 0) {\n result.push('class', this.classNames.join(' '));\n }\n return result.concat(this.attrs);\n }\n addAttribute(name, value = '') {\n this.attrs.push(name, value && value.toLowerCase() || '');\n }\n addClassName(name) {\n this.classNames.push(name.toLowerCase());\n }\n toString() {\n let res = this.element || '';\n if (this.classNames) {\n this.classNames.forEach(klass => res += `.${klass}`);\n }\n if (this.attrs) {\n for (let i = 0; i < this.attrs.length; i += 2) {\n const name = this.escapeAttribute(this.attrs[i]);\n const value = this.attrs[i + 1];\n res += `[${name}${value ? '=' + value : ''}]`;\n }\n }\n this.notSelectors.forEach(notSelector => res += `:not(${notSelector})`);\n return res;\n }\n}\n/**\n * Reads a list of CssSelectors and allows to calculate which ones\n * are contained in a given CssSelector.\n */\nclass SelectorMatcher {\n constructor() {\n this._elementMap = new Map();\n this._elementPartialMap = new Map();\n this._classMap = new Map();\n this._classPartialMap = new Map();\n this._attrValueMap = new Map();\n this._attrValuePartialMap = new Map();\n this._listContexts = [];\n }\n static createNotMatcher(notSelectors) {\n const notMatcher = new SelectorMatcher();\n notMatcher.addSelectables(notSelectors, null);\n return notMatcher;\n }\n addSelectables(cssSelectors, callbackCtxt) {\n let listContext = null;\n if (cssSelectors.length > 1) {\n listContext = new SelectorListContext(cssSelectors);\n this._listContexts.push(listContext);\n }\n for (let i = 0; i < cssSelectors.length; i++) {\n this._addSelectable(cssSelectors[i], callbackCtxt, listContext);\n }\n }\n /**\n * Add an object that can be found later on by calling `match`.\n * @param cssSelector A css selector\n * @param callbackCtxt An opaque object that will be given to the callback of the `match` function\n */\n _addSelectable(cssSelector, callbackCtxt, listContext) {\n let matcher = this;\n const element = cssSelector.element;\n const classNames = cssSelector.classNames;\n const attrs = cssSelector.attrs;\n const selectable = new SelectorContext(cssSelector, callbackCtxt, listContext);\n if (element) {\n const isTerminal = attrs.length === 0 && classNames.length === 0;\n if (isTerminal) {\n this._addTerminal(matcher._elementMap, element, selectable);\n }\n else {\n matcher = this._addPartial(matcher._elementPartialMap, element);\n }\n }\n if (classNames) {\n for (let i = 0; i < classNames.length; i++) {\n const isTerminal = attrs.length === 0 && i === classNames.length - 1;\n const className = classNames[i];\n if (isTerminal) {\n this._addTerminal(matcher._classMap, className, selectable);\n }\n else {\n matcher = this._addPartial(matcher._classPartialMap, className);\n }\n }\n }\n if (attrs) {\n for (let i = 0; i < attrs.length; i += 2) {\n const isTerminal = i === attrs.length - 2;\n const name = attrs[i];\n const value = attrs[i + 1];\n if (isTerminal) {\n const terminalMap = matcher._attrValueMap;\n let terminalValuesMap = terminalMap.get(name);\n if (!terminalValuesMap) {\n terminalValuesMap = new Map();\n terminalMap.set(name, terminalValuesMap);\n }\n this._addTerminal(terminalValuesMap, value, selectable);\n }\n else {\n const partialMap = matcher._attrValuePartialMap;\n let partialValuesMap = partialMap.get(name);\n if (!partialValuesMap) {\n partialValuesMap = new Map();\n partialMap.set(name, partialValuesMap);\n }\n matcher = this._addPartial(partialValuesMap, value);\n }\n }\n }\n }\n _addTerminal(map, name, selectable) {\n let terminalList = map.get(name);\n if (!terminalList) {\n terminalList = [];\n map.set(name, terminalList);\n }\n terminalList.push(selectable);\n }\n _addPartial(map, name) {\n let matcher = map.get(name);\n if (!matcher) {\n matcher = new SelectorMatcher();\n map.set(name, matcher);\n }\n return matcher;\n }\n /**\n * Find the objects that have been added via `addSelectable`\n * whose css selector is contained in the given css selector.\n * @param cssSelector A css selector\n * @param matchedCallback This callback will be called with the object handed into `addSelectable`\n * @return boolean true if a match was found\n */\n match(cssSelector, matchedCallback) {\n let result = false;\n const element = cssSelector.element;\n const classNames = cssSelector.classNames;\n const attrs = cssSelector.attrs;\n for (let i = 0; i < this._listContexts.length; i++) {\n this._listContexts[i].alreadyMatched = false;\n }\n result = this._matchTerminal(this._elementMap, element, cssSelector, matchedCallback) || result;\n result = this._matchPartial(this._elementPartialMap, element, cssSelector, matchedCallback) ||\n result;\n if (classNames) {\n for (let i = 0; i < classNames.length; i++) {\n const className = classNames[i];\n result =\n this._matchTerminal(this._classMap, className, cssSelector, matchedCallback) || result;\n result =\n this._matchPartial(this._classPartialMap, className, cssSelector, matchedCallback) ||\n result;\n }\n }\n if (attrs) {\n for (let i = 0; i < attrs.length; i += 2) {\n const name = attrs[i];\n const value = attrs[i + 1];\n const terminalValuesMap = this._attrValueMap.get(name);\n if (value) {\n result =\n this._matchTerminal(terminalValuesMap, '', cssSelector, matchedCallback) || result;\n }\n result =\n this._matchTerminal(terminalValuesMap, value, cssSelector, matchedCallback) || result;\n const partialValuesMap = this._attrValuePartialMap.get(name);\n if (value) {\n result = this._matchPartial(partialValuesMap, '', cssSelector, matchedCallback) || result;\n }\n result =\n this._matchPartial(partialValuesMap, value, cssSelector, matchedCallback) || result;\n }\n }\n return result;\n }\n /** @internal */\n _matchTerminal(map, name, cssSelector, matchedCallback) {\n if (!map || typeof name !== 'string') {\n return false;\n }\n let selectables = map.get(name) || [];\n const starSelectables = map.get('*');\n if (starSelectables) {\n selectables = selectables.concat(starSelectables);\n }\n if (selectables.length === 0) {\n return false;\n }\n let selectable;\n let result = false;\n for (let i = 0; i < selectables.length; i++) {\n selectable = selectables[i];\n result = selectable.finalize(cssSelector, matchedCallback) || result;\n }\n return result;\n }\n /** @internal */\n _matchPartial(map, name, cssSelector, matchedCallback) {\n if (!map || typeof name !== 'string') {\n return false;\n }\n const nestedSelector = map.get(name);\n if (!nestedSelector) {\n return false;\n }\n // TODO(perf): get rid of recursion and measure again\n // TODO(perf): don't pass the whole selector into the recursion,\n // but only the not processed parts\n return nestedSelector.match(cssSelector, matchedCallback);\n }\n}\nclass SelectorListContext {\n constructor(selectors) {\n this.selectors = selectors;\n this.alreadyMatched = false;\n }\n}\n// Store context to pass back selector and context when a selector is matched\nclass SelectorContext {\n constructor(selector, cbContext, listContext) {\n this.selector = selector;\n this.cbContext = cbContext;\n this.listContext = listContext;\n this.notSelectors = selector.notSelectors;\n }\n finalize(cssSelector, callback) {\n let result = true;\n if (this.notSelectors.length > 0 && (!this.listContext || !this.listContext.alreadyMatched)) {\n const notMatcher = SelectorMatcher.createNotMatcher(this.notSelectors);\n result = !notMatcher.match(cssSelector, null);\n }\n if (result && callback && (!this.listContext || !this.listContext.alreadyMatched)) {\n if (this.listContext) {\n this.listContext.alreadyMatched = true;\n }\n callback(this.selector, this.cbContext);\n }\n return result;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// Stores the default value of `emitDistinctChangesOnly` when the `emitDistinctChangesOnly` is not\n// explicitly set.\nconst emitDistinctChangesOnlyDefaultValue = true;\nvar ViewEncapsulation;\n(function (ViewEncapsulation) {\n ViewEncapsulation[ViewEncapsulation[\"Emulated\"] = 0] = \"Emulated\";\n // Historically the 1 value was for `Native` encapsulation which has been removed as of v11.\n ViewEncapsulation[ViewEncapsulation[\"None\"] = 2] = \"None\";\n ViewEncapsulation[ViewEncapsulation[\"ShadowDom\"] = 3] = \"ShadowDom\";\n})(ViewEncapsulation || (ViewEncapsulation = {}));\nvar ChangeDetectionStrategy;\n(function (ChangeDetectionStrategy) {\n ChangeDetectionStrategy[ChangeDetectionStrategy[\"OnPush\"] = 0] = \"OnPush\";\n ChangeDetectionStrategy[ChangeDetectionStrategy[\"Default\"] = 1] = \"Default\";\n})(ChangeDetectionStrategy || (ChangeDetectionStrategy = {}));\nconst CUSTOM_ELEMENTS_SCHEMA = {\n name: 'custom-elements'\n};\nconst NO_ERRORS_SCHEMA = {\n name: 'no-errors-schema'\n};\nconst Type$1 = Function;\nvar SecurityContext;\n(function (SecurityContext) {\n SecurityContext[SecurityContext[\"NONE\"] = 0] = \"NONE\";\n SecurityContext[SecurityContext[\"HTML\"] = 1] = \"HTML\";\n SecurityContext[SecurityContext[\"STYLE\"] = 2] = \"STYLE\";\n SecurityContext[SecurityContext[\"SCRIPT\"] = 3] = \"SCRIPT\";\n SecurityContext[SecurityContext[\"URL\"] = 4] = \"URL\";\n SecurityContext[SecurityContext[\"RESOURCE_URL\"] = 5] = \"RESOURCE_URL\";\n})(SecurityContext || (SecurityContext = {}));\nvar MissingTranslationStrategy;\n(function (MissingTranslationStrategy) {\n MissingTranslationStrategy[MissingTranslationStrategy[\"Error\"] = 0] = \"Error\";\n MissingTranslationStrategy[MissingTranslationStrategy[\"Warning\"] = 1] = \"Warning\";\n MissingTranslationStrategy[MissingTranslationStrategy[\"Ignore\"] = 2] = \"Ignore\";\n})(MissingTranslationStrategy || (MissingTranslationStrategy = {}));\nfunction parserSelectorToSimpleSelector(selector) {\n const classes = selector.classNames && selector.classNames.length ?\n [8 /* SelectorFlags.CLASS */, ...selector.classNames] :\n [];\n const elementName = selector.element && selector.element !== '*' ? selector.element : '';\n return [elementName, ...selector.attrs, ...classes];\n}\nfunction parserSelectorToNegativeSelector(selector) {\n const classes = selector.classNames && selector.classNames.length ?\n [8 /* SelectorFlags.CLASS */, ...selector.classNames] :\n [];\n if (selector.element) {\n return [\n 1 /* SelectorFlags.NOT */ | 4 /* SelectorFlags.ELEMENT */, selector.element, ...selector.attrs, ...classes\n ];\n }\n else if (selector.attrs.length) {\n return [1 /* SelectorFlags.NOT */ | 2 /* SelectorFlags.ATTRIBUTE */, ...selector.attrs, ...classes];\n }\n else {\n return selector.classNames && selector.classNames.length ?\n [1 /* SelectorFlags.NOT */ | 8 /* SelectorFlags.CLASS */, ...selector.classNames] :\n [];\n }\n}\nfunction parserSelectorToR3Selector(selector) {\n const positive = parserSelectorToSimpleSelector(selector);\n const negative = selector.notSelectors && selector.notSelectors.length ?\n selector.notSelectors.map(notSelector => parserSelectorToNegativeSelector(notSelector)) :\n [];\n return positive.concat(...negative);\n}\nfunction parseSelectorToR3Selector(selector) {\n return selector ? CssSelector.parse(selector).map(parserSelectorToR3Selector) : [];\n}\n\nvar core = /*#__PURE__*/Object.freeze({\n __proto__: null,\n emitDistinctChangesOnlyDefaultValue: emitDistinctChangesOnlyDefaultValue,\n get ViewEncapsulation () { return ViewEncapsulation; },\n get ChangeDetectionStrategy () { return ChangeDetectionStrategy; },\n CUSTOM_ELEMENTS_SCHEMA: CUSTOM_ELEMENTS_SCHEMA,\n NO_ERRORS_SCHEMA: NO_ERRORS_SCHEMA,\n Type: Type$1,\n get SecurityContext () { return SecurityContext; },\n get MissingTranslationStrategy () { return MissingTranslationStrategy; },\n parseSelectorToR3Selector: parseSelectorToR3Selector\n});\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst DASH_CASE_REGEXP = /-+([a-z0-9])/g;\nfunction dashCaseToCamelCase(input) {\n return input.replace(DASH_CASE_REGEXP, (...m) => m[1].toUpperCase());\n}\nfunction splitAtColon(input, defaultValues) {\n return _splitAt(input, ':', defaultValues);\n}\nfunction splitAtPeriod(input, defaultValues) {\n return _splitAt(input, '.', defaultValues);\n}\nfunction _splitAt(input, character, defaultValues) {\n const characterIndex = input.indexOf(character);\n if (characterIndex == -1)\n return defaultValues;\n return [input.slice(0, characterIndex).trim(), input.slice(characterIndex + 1).trim()];\n}\nfunction noUndefined(val) {\n return val === undefined ? null : val;\n}\nfunction error(msg) {\n throw new Error(`Internal Error: ${msg}`);\n}\n// Escape characters that have a special meaning in Regular Expressions\nfunction escapeRegExp(s) {\n return s.replace(/([.*+?^=!:${}()|[\\]\\/\\\\])/g, '\\\\$1');\n}\nfunction utf8Encode(str) {\n let encoded = [];\n for (let index = 0; index < str.length; index++) {\n let codePoint = str.charCodeAt(index);\n // decode surrogate\n // see https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n if (codePoint >= 0xd800 && codePoint <= 0xdbff && str.length > (index + 1)) {\n const low = str.charCodeAt(index + 1);\n if (low >= 0xdc00 && low <= 0xdfff) {\n index++;\n codePoint = ((codePoint - 0xd800) << 10) + low - 0xdc00 + 0x10000;\n }\n }\n if (codePoint <= 0x7f) {\n encoded.push(codePoint);\n }\n else if (codePoint <= 0x7ff) {\n encoded.push(((codePoint >> 6) & 0x1F) | 0xc0, (codePoint & 0x3f) | 0x80);\n }\n else if (codePoint <= 0xffff) {\n encoded.push((codePoint >> 12) | 0xe0, ((codePoint >> 6) & 0x3f) | 0x80, (codePoint & 0x3f) | 0x80);\n }\n else if (codePoint <= 0x1fffff) {\n encoded.push(((codePoint >> 18) & 0x07) | 0xf0, ((codePoint >> 12) & 0x3f) | 0x80, ((codePoint >> 6) & 0x3f) | 0x80, (codePoint & 0x3f) | 0x80);\n }\n }\n return encoded;\n}\nfunction stringify(token) {\n if (typeof token === 'string') {\n return token;\n }\n if (Array.isArray(token)) {\n return '[' + token.map(stringify).join(', ') + ']';\n }\n if (token == null) {\n return '' + token;\n }\n if (token.overriddenName) {\n return `${token.overriddenName}`;\n }\n if (token.name) {\n return `${token.name}`;\n }\n if (!token.toString) {\n return 'object';\n }\n // WARNING: do not try to `JSON.stringify(token)` here\n // see https://github.com/angular/angular/issues/23440\n const res = token.toString();\n if (res == null) {\n return '' + res;\n }\n const newLineIndex = res.indexOf('\\n');\n return newLineIndex === -1 ? res : res.substring(0, newLineIndex);\n}\nclass Version {\n constructor(full) {\n this.full = full;\n const splits = full.split('.');\n this.major = splits[0];\n this.minor = splits[1];\n this.patch = splits.slice(2).join('.');\n }\n}\n// Check `global` first, because in Node tests both `global` and `window` may be defined and our\n// `_global` variable should point to the NodeJS `global` in that case. Note: Typeof/Instanceof\n// checks are considered side-effects in Terser. We explicitly mark this as side-effect free:\n// https://github.com/terser/terser/issues/250.\nconst _global = ( /* @__PURE__ */(() => (typeof global !== 'undefined' && global) || (typeof window !== 'undefined' && window) ||\n (typeof self !== 'undefined' && typeof WorkerGlobalScope !== 'undefined' &&\n self instanceof WorkerGlobalScope && self))());\nfunction newArray(size, value) {\n const list = [];\n for (let i = 0; i < size; i++) {\n list.push(value);\n }\n return list;\n}\n/**\n * Partitions a given array into 2 arrays, based on a boolean value returned by the condition\n * function.\n *\n * @param arr Input array that should be partitioned\n * @param conditionFn Condition function that is called for each item in a given array and returns a\n * boolean value.\n */\nfunction partitionArray(arr, conditionFn) {\n const truthy = [];\n const falsy = [];\n for (const item of arr) {\n (conditionFn(item) ? truthy : falsy).push(item);\n }\n return [truthy, falsy];\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Represents a big integer using a buffer of its individual digits, with the least significant\n * digit stored at the beginning of the array (little endian).\n *\n * For performance reasons, each instance is mutable. The addition operation can be done in-place\n * to reduce memory pressure of allocation for the digits array.\n */\nclass BigInteger {\n /**\n * Creates a big integer using its individual digits in little endian storage.\n */\n constructor(digits) {\n this.digits = digits;\n }\n static zero() {\n return new BigInteger([0]);\n }\n static one() {\n return new BigInteger([1]);\n }\n /**\n * Creates a clone of this instance.\n */\n clone() {\n return new BigInteger(this.digits.slice());\n }\n /**\n * Returns a new big integer with the sum of `this` and `other` as its value. This does not mutate\n * `this` but instead returns a new instance, unlike `addToSelf`.\n */\n add(other) {\n const result = this.clone();\n result.addToSelf(other);\n return result;\n }\n /**\n * Adds `other` to the instance itself, thereby mutating its value.\n */\n addToSelf(other) {\n const maxNrOfDigits = Math.max(this.digits.length, other.digits.length);\n let carry = 0;\n for (let i = 0; i < maxNrOfDigits; i++) {\n let digitSum = carry;\n if (i < this.digits.length) {\n digitSum += this.digits[i];\n }\n if (i < other.digits.length) {\n digitSum += other.digits[i];\n }\n if (digitSum >= 10) {\n this.digits[i] = digitSum - 10;\n carry = 1;\n }\n else {\n this.digits[i] = digitSum;\n carry = 0;\n }\n }\n // Apply a remaining carry if needed.\n if (carry > 0) {\n this.digits[maxNrOfDigits] = 1;\n }\n }\n /**\n * Builds the decimal string representation of the big integer. As this is stored in\n * little endian, the digits are concatenated in reverse order.\n */\n toString() {\n let res = '';\n for (let i = this.digits.length - 1; i >= 0; i--) {\n res += this.digits[i];\n }\n return res;\n }\n}\n/**\n * Represents a big integer which is optimized for multiplication operations, as its power-of-twos\n * are memoized. See `multiplyBy()` for details on the multiplication algorithm.\n */\nclass BigIntForMultiplication {\n constructor(value) {\n this.powerOfTwos = [value];\n }\n /**\n * Returns the big integer itself.\n */\n getValue() {\n return this.powerOfTwos[0];\n }\n /**\n * Computes the value for `num * b`, where `num` is a JS number and `b` is a big integer. The\n * value for `b` is represented by a storage model that is optimized for this computation.\n *\n * This operation is implemented in N(log2(num)) by continuous halving of the number, where the\n * least-significant bit (LSB) is tested in each iteration. If the bit is set, the bit's index is\n * used as exponent into the power-of-two multiplication of `b`.\n *\n * As an example, consider the multiplication num=42, b=1337. In binary 42 is 0b00101010 and the\n * algorithm unrolls into the following iterations:\n *\n * Iteration | num | LSB | b * 2^iter | Add? | product\n * -----------|------------|------|------------|------|--------\n * 0 | 0b00101010 | 0 | 1337 | No | 0\n * 1 | 0b00010101 | 1 | 2674 | Yes | 2674\n * 2 | 0b00001010 | 0 | 5348 | No | 2674\n * 3 | 0b00000101 | 1 | 10696 | Yes | 13370\n * 4 | 0b00000010 | 0 | 21392 | No | 13370\n * 5 | 0b00000001 | 1 | 42784 | Yes | 56154\n * 6 | 0b00000000 | 0 | 85568 | No | 56154\n *\n * The computed product of 56154 is indeed the correct result.\n *\n * The `BigIntForMultiplication` representation for a big integer provides memoized access to the\n * power-of-two values to reduce the workload in computing those values.\n */\n multiplyBy(num) {\n const product = BigInteger.zero();\n this.multiplyByAndAddTo(num, product);\n return product;\n }\n /**\n * See `multiplyBy()` for details. This function allows for the computed product to be added\n * directly to the provided result big integer.\n */\n multiplyByAndAddTo(num, result) {\n for (let exponent = 0; num !== 0; num = num >>> 1, exponent++) {\n if (num & 1) {\n const value = this.getMultipliedByPowerOfTwo(exponent);\n result.addToSelf(value);\n }\n }\n }\n /**\n * Computes and memoizes the big integer value for `this.number * 2^exponent`.\n */\n getMultipliedByPowerOfTwo(exponent) {\n // Compute the powers up until the requested exponent, where each value is computed from its\n // predecessor. This is simple as `this.number * 2^(exponent - 1)` only has to be doubled (i.e.\n // added to itself) to reach `this.number * 2^exponent`.\n for (let i = this.powerOfTwos.length; i <= exponent; i++) {\n const previousPower = this.powerOfTwos[i - 1];\n this.powerOfTwos[i] = previousPower.add(previousPower);\n }\n return this.powerOfTwos[exponent];\n }\n}\n/**\n * Represents an exponentiation operation for the provided base, of which exponents are computed and\n * memoized. The results are represented by a `BigIntForMultiplication` which is tailored for\n * multiplication operations by memoizing the power-of-twos. This effectively results in a matrix\n * representation that is lazily computed upon request.\n */\nclass BigIntExponentiation {\n constructor(base) {\n this.base = base;\n this.exponents = [new BigIntForMultiplication(BigInteger.one())];\n }\n /**\n * Compute the value for `this.base^exponent`, resulting in a big integer that is optimized for\n * further multiplication operations.\n */\n toThePowerOf(exponent) {\n // Compute the results up until the requested exponent, where every value is computed from its\n // predecessor. This is because `this.base^(exponent - 1)` only has to be multiplied by `base`\n // to reach `this.base^exponent`.\n for (let i = this.exponents.length; i <= exponent; i++) {\n const value = this.exponents[i - 1].multiplyBy(this.base);\n this.exponents[i] = new BigIntForMultiplication(value);\n }\n return this.exponents[exponent];\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Return the message id or compute it using the XLIFF1 digest.\n */\nfunction digest$1(message) {\n return message.id || computeDigest(message);\n}\n/**\n * Compute the message id using the XLIFF1 digest.\n */\nfunction computeDigest(message) {\n return sha1(serializeNodes(message.nodes).join('') + `[${message.meaning}]`);\n}\n/**\n * Return the message id or compute it using the XLIFF2/XMB/$localize digest.\n */\nfunction decimalDigest(message) {\n return message.id || computeDecimalDigest(message);\n}\n/**\n * Compute the message id using the XLIFF2/XMB/$localize digest.\n */\nfunction computeDecimalDigest(message) {\n const visitor = new _SerializerIgnoreIcuExpVisitor();\n const parts = message.nodes.map(a => a.visit(visitor, null));\n return computeMsgId(parts.join(''), message.meaning);\n}\n/**\n * Serialize the i18n ast to something xml-like in order to generate an UID.\n *\n * The visitor is also used in the i18n parser tests\n *\n * @internal\n */\nclass _SerializerVisitor {\n visitText(text, context) {\n return text.value;\n }\n visitContainer(container, context) {\n return `[${container.children.map(child => child.visit(this)).join(', ')}]`;\n }\n visitIcu(icu, context) {\n const strCases = Object.keys(icu.cases).map((k) => `${k} {${icu.cases[k].visit(this)}}`);\n return `{${icu.expression}, ${icu.type}, ${strCases.join(', ')}}`;\n }\n visitTagPlaceholder(ph, context) {\n return ph.isVoid ?\n `` :\n `${ph.children.map(child => child.visit(this)).join(', ')}`;\n }\n visitPlaceholder(ph, context) {\n return ph.value ? `${ph.value}` : ``;\n }\n visitIcuPlaceholder(ph, context) {\n return `${ph.value.visit(this)}`;\n }\n}\nconst serializerVisitor$1 = new _SerializerVisitor();\nfunction serializeNodes(nodes) {\n return nodes.map(a => a.visit(serializerVisitor$1, null));\n}\n/**\n * Serialize the i18n ast to something xml-like in order to generate an UID.\n *\n * Ignore the ICU expressions so that message IDs stays identical if only the expression changes.\n *\n * @internal\n */\nclass _SerializerIgnoreIcuExpVisitor extends _SerializerVisitor {\n visitIcu(icu, context) {\n let strCases = Object.keys(icu.cases).map((k) => `${k} {${icu.cases[k].visit(this)}}`);\n // Do not take the expression into account\n return `{${icu.type}, ${strCases.join(', ')}}`;\n }\n}\n/**\n * Compute the SHA1 of the given string\n *\n * see https://csrc.nist.gov/publications/fips/fips180-4/fips-180-4.pdf\n *\n * WARNING: this function has not been designed not tested with security in mind.\n * DO NOT USE IT IN A SECURITY SENSITIVE CONTEXT.\n */\nfunction sha1(str) {\n const utf8 = utf8Encode(str);\n const words32 = bytesToWords32(utf8, Endian.Big);\n const len = utf8.length * 8;\n const w = newArray(80);\n let a = 0x67452301, b = 0xefcdab89, c = 0x98badcfe, d = 0x10325476, e = 0xc3d2e1f0;\n words32[len >> 5] |= 0x80 << (24 - len % 32);\n words32[((len + 64 >> 9) << 4) + 15] = len;\n for (let i = 0; i < words32.length; i += 16) {\n const h0 = a, h1 = b, h2 = c, h3 = d, h4 = e;\n for (let j = 0; j < 80; j++) {\n if (j < 16) {\n w[j] = words32[i + j];\n }\n else {\n w[j] = rol32(w[j - 3] ^ w[j - 8] ^ w[j - 14] ^ w[j - 16], 1);\n }\n const fkVal = fk(j, b, c, d);\n const f = fkVal[0];\n const k = fkVal[1];\n const temp = [rol32(a, 5), f, e, k, w[j]].reduce(add32);\n e = d;\n d = c;\n c = rol32(b, 30);\n b = a;\n a = temp;\n }\n a = add32(a, h0);\n b = add32(b, h1);\n c = add32(c, h2);\n d = add32(d, h3);\n e = add32(e, h4);\n }\n return bytesToHexString(words32ToByteString([a, b, c, d, e]));\n}\nfunction fk(index, b, c, d) {\n if (index < 20) {\n return [(b & c) | (~b & d), 0x5a827999];\n }\n if (index < 40) {\n return [b ^ c ^ d, 0x6ed9eba1];\n }\n if (index < 60) {\n return [(b & c) | (b & d) | (c & d), 0x8f1bbcdc];\n }\n return [b ^ c ^ d, 0xca62c1d6];\n}\n/**\n * Compute the fingerprint of the given string\n *\n * The output is 64 bit number encoded as a decimal string\n *\n * based on:\n * https://github.com/google/closure-compiler/blob/master/src/com/google/javascript/jscomp/GoogleJsMessageIdGenerator.java\n */\nfunction fingerprint(str) {\n const utf8 = utf8Encode(str);\n let hi = hash32(utf8, 0);\n let lo = hash32(utf8, 102072);\n if (hi == 0 && (lo == 0 || lo == 1)) {\n hi = hi ^ 0x130f9bef;\n lo = lo ^ -0x6b5f56d8;\n }\n return [hi, lo];\n}\nfunction computeMsgId(msg, meaning = '') {\n let msgFingerprint = fingerprint(msg);\n if (meaning) {\n const meaningFingerprint = fingerprint(meaning);\n msgFingerprint = add64(rol64(msgFingerprint, 1), meaningFingerprint);\n }\n const hi = msgFingerprint[0];\n const lo = msgFingerprint[1];\n return wordsToDecimalString(hi & 0x7fffffff, lo);\n}\nfunction hash32(bytes, c) {\n let a = 0x9e3779b9, b = 0x9e3779b9;\n let i;\n const len = bytes.length;\n for (i = 0; i + 12 <= len; i += 12) {\n a = add32(a, wordAt(bytes, i, Endian.Little));\n b = add32(b, wordAt(bytes, i + 4, Endian.Little));\n c = add32(c, wordAt(bytes, i + 8, Endian.Little));\n const res = mix(a, b, c);\n a = res[0], b = res[1], c = res[2];\n }\n a = add32(a, wordAt(bytes, i, Endian.Little));\n b = add32(b, wordAt(bytes, i + 4, Endian.Little));\n // the first byte of c is reserved for the length\n c = add32(c, len);\n c = add32(c, wordAt(bytes, i + 8, Endian.Little) << 8);\n return mix(a, b, c)[2];\n}\n// clang-format off\nfunction mix(a, b, c) {\n a = sub32(a, b);\n a = sub32(a, c);\n a ^= c >>> 13;\n b = sub32(b, c);\n b = sub32(b, a);\n b ^= a << 8;\n c = sub32(c, a);\n c = sub32(c, b);\n c ^= b >>> 13;\n a = sub32(a, b);\n a = sub32(a, c);\n a ^= c >>> 12;\n b = sub32(b, c);\n b = sub32(b, a);\n b ^= a << 16;\n c = sub32(c, a);\n c = sub32(c, b);\n c ^= b >>> 5;\n a = sub32(a, b);\n a = sub32(a, c);\n a ^= c >>> 3;\n b = sub32(b, c);\n b = sub32(b, a);\n b ^= a << 10;\n c = sub32(c, a);\n c = sub32(c, b);\n c ^= b >>> 15;\n return [a, b, c];\n}\n// clang-format on\n// Utils\nvar Endian;\n(function (Endian) {\n Endian[Endian[\"Little\"] = 0] = \"Little\";\n Endian[Endian[\"Big\"] = 1] = \"Big\";\n})(Endian || (Endian = {}));\nfunction add32(a, b) {\n return add32to64(a, b)[1];\n}\nfunction add32to64(a, b) {\n const low = (a & 0xffff) + (b & 0xffff);\n const high = (a >>> 16) + (b >>> 16) + (low >>> 16);\n return [high >>> 16, (high << 16) | (low & 0xffff)];\n}\nfunction add64(a, b) {\n const ah = a[0], al = a[1];\n const bh = b[0], bl = b[1];\n const result = add32to64(al, bl);\n const carry = result[0];\n const l = result[1];\n const h = add32(add32(ah, bh), carry);\n return [h, l];\n}\nfunction sub32(a, b) {\n const low = (a & 0xffff) - (b & 0xffff);\n const high = (a >> 16) - (b >> 16) + (low >> 16);\n return (high << 16) | (low & 0xffff);\n}\n// Rotate a 32b number left `count` position\nfunction rol32(a, count) {\n return (a << count) | (a >>> (32 - count));\n}\n// Rotate a 64b number left `count` position\nfunction rol64(num, count) {\n const hi = num[0], lo = num[1];\n const h = (hi << count) | (lo >>> (32 - count));\n const l = (lo << count) | (hi >>> (32 - count));\n return [h, l];\n}\nfunction bytesToWords32(bytes, endian) {\n const size = (bytes.length + 3) >>> 2;\n const words32 = [];\n for (let i = 0; i < size; i++) {\n words32[i] = wordAt(bytes, i * 4, endian);\n }\n return words32;\n}\nfunction byteAt(bytes, index) {\n return index >= bytes.length ? 0 : bytes[index];\n}\nfunction wordAt(bytes, index, endian) {\n let word = 0;\n if (endian === Endian.Big) {\n for (let i = 0; i < 4; i++) {\n word += byteAt(bytes, index + i) << (24 - 8 * i);\n }\n }\n else {\n for (let i = 0; i < 4; i++) {\n word += byteAt(bytes, index + i) << 8 * i;\n }\n }\n return word;\n}\nfunction words32ToByteString(words32) {\n return words32.reduce((bytes, word) => bytes.concat(word32ToByteString(word)), []);\n}\nfunction word32ToByteString(word) {\n let bytes = [];\n for (let i = 0; i < 4; i++) {\n bytes.push((word >>> 8 * (3 - i)) & 0xff);\n }\n return bytes;\n}\nfunction bytesToHexString(bytes) {\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n const b = byteAt(bytes, i);\n hex += (b >>> 4).toString(16) + (b & 0x0f).toString(16);\n }\n return hex.toLowerCase();\n}\n/**\n * Create a shared exponentiation pool for base-256 computations. This shared pool provides memoized\n * power-of-256 results with memoized power-of-two computations for efficient multiplication.\n *\n * For our purposes, this can be safely stored as a global without memory concerns. The reason is\n * that we encode two words, so only need the 0th (for the low word) and 4th (for the high word)\n * exponent.\n */\nconst base256 = new BigIntExponentiation(256);\n/**\n * Represents two 32-bit words as a single decimal number. This requires a big integer storage\n * model as JS numbers are not accurate enough to represent the 64-bit number.\n *\n * Based on https://www.danvk.org/hex2dec.html\n */\nfunction wordsToDecimalString(hi, lo) {\n // Encode the four bytes in lo in the lower digits of the decimal number.\n // Note: the multiplication results in lo itself but represented by a big integer using its\n // decimal digits.\n const decimal = base256.toThePowerOf(0).multiplyBy(lo);\n // Encode the four bytes in hi above the four lo bytes. lo is a maximum of (2^8)^4, which is why\n // this multiplication factor is applied.\n base256.toThePowerOf(4).multiplyByAndAddTo(hi, decimal);\n return decimal.toString();\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n//// Types\nvar TypeModifier;\n(function (TypeModifier) {\n TypeModifier[TypeModifier[\"None\"] = 0] = \"None\";\n TypeModifier[TypeModifier[\"Const\"] = 1] = \"Const\";\n})(TypeModifier || (TypeModifier = {}));\nclass Type {\n constructor(modifiers = TypeModifier.None) {\n this.modifiers = modifiers;\n }\n hasModifier(modifier) {\n return (this.modifiers & modifier) !== 0;\n }\n}\nvar BuiltinTypeName;\n(function (BuiltinTypeName) {\n BuiltinTypeName[BuiltinTypeName[\"Dynamic\"] = 0] = \"Dynamic\";\n BuiltinTypeName[BuiltinTypeName[\"Bool\"] = 1] = \"Bool\";\n BuiltinTypeName[BuiltinTypeName[\"String\"] = 2] = \"String\";\n BuiltinTypeName[BuiltinTypeName[\"Int\"] = 3] = \"Int\";\n BuiltinTypeName[BuiltinTypeName[\"Number\"] = 4] = \"Number\";\n BuiltinTypeName[BuiltinTypeName[\"Function\"] = 5] = \"Function\";\n BuiltinTypeName[BuiltinTypeName[\"Inferred\"] = 6] = \"Inferred\";\n BuiltinTypeName[BuiltinTypeName[\"None\"] = 7] = \"None\";\n})(BuiltinTypeName || (BuiltinTypeName = {}));\nclass BuiltinType extends Type {\n constructor(name, modifiers) {\n super(modifiers);\n this.name = name;\n }\n visitType(visitor, context) {\n return visitor.visitBuiltinType(this, context);\n }\n}\nclass ExpressionType extends Type {\n constructor(value, modifiers, typeParams = null) {\n super(modifiers);\n this.value = value;\n this.typeParams = typeParams;\n }\n visitType(visitor, context) {\n return visitor.visitExpressionType(this, context);\n }\n}\nclass ArrayType extends Type {\n constructor(of, modifiers) {\n super(modifiers);\n this.of = of;\n }\n visitType(visitor, context) {\n return visitor.visitArrayType(this, context);\n }\n}\nclass MapType extends Type {\n constructor(valueType, modifiers) {\n super(modifiers);\n this.valueType = valueType || null;\n }\n visitType(visitor, context) {\n return visitor.visitMapType(this, context);\n }\n}\nconst DYNAMIC_TYPE = new BuiltinType(BuiltinTypeName.Dynamic);\nconst INFERRED_TYPE = new BuiltinType(BuiltinTypeName.Inferred);\nconst BOOL_TYPE = new BuiltinType(BuiltinTypeName.Bool);\nconst INT_TYPE = new BuiltinType(BuiltinTypeName.Int);\nconst NUMBER_TYPE = new BuiltinType(BuiltinTypeName.Number);\nconst STRING_TYPE = new BuiltinType(BuiltinTypeName.String);\nconst FUNCTION_TYPE = new BuiltinType(BuiltinTypeName.Function);\nconst NONE_TYPE = new BuiltinType(BuiltinTypeName.None);\n///// Expressions\nvar UnaryOperator;\n(function (UnaryOperator) {\n UnaryOperator[UnaryOperator[\"Minus\"] = 0] = \"Minus\";\n UnaryOperator[UnaryOperator[\"Plus\"] = 1] = \"Plus\";\n})(UnaryOperator || (UnaryOperator = {}));\nvar BinaryOperator;\n(function (BinaryOperator) {\n BinaryOperator[BinaryOperator[\"Equals\"] = 0] = \"Equals\";\n BinaryOperator[BinaryOperator[\"NotEquals\"] = 1] = \"NotEquals\";\n BinaryOperator[BinaryOperator[\"Identical\"] = 2] = \"Identical\";\n BinaryOperator[BinaryOperator[\"NotIdentical\"] = 3] = \"NotIdentical\";\n BinaryOperator[BinaryOperator[\"Minus\"] = 4] = \"Minus\";\n BinaryOperator[BinaryOperator[\"Plus\"] = 5] = \"Plus\";\n BinaryOperator[BinaryOperator[\"Divide\"] = 6] = \"Divide\";\n BinaryOperator[BinaryOperator[\"Multiply\"] = 7] = \"Multiply\";\n BinaryOperator[BinaryOperator[\"Modulo\"] = 8] = \"Modulo\";\n BinaryOperator[BinaryOperator[\"And\"] = 9] = \"And\";\n BinaryOperator[BinaryOperator[\"Or\"] = 10] = \"Or\";\n BinaryOperator[BinaryOperator[\"BitwiseAnd\"] = 11] = \"BitwiseAnd\";\n BinaryOperator[BinaryOperator[\"Lower\"] = 12] = \"Lower\";\n BinaryOperator[BinaryOperator[\"LowerEquals\"] = 13] = \"LowerEquals\";\n BinaryOperator[BinaryOperator[\"Bigger\"] = 14] = \"Bigger\";\n BinaryOperator[BinaryOperator[\"BiggerEquals\"] = 15] = \"BiggerEquals\";\n BinaryOperator[BinaryOperator[\"NullishCoalesce\"] = 16] = \"NullishCoalesce\";\n})(BinaryOperator || (BinaryOperator = {}));\nfunction nullSafeIsEquivalent(base, other) {\n if (base == null || other == null) {\n return base == other;\n }\n return base.isEquivalent(other);\n}\nfunction areAllEquivalentPredicate(base, other, equivalentPredicate) {\n const len = base.length;\n if (len !== other.length) {\n return false;\n }\n for (let i = 0; i < len; i++) {\n if (!equivalentPredicate(base[i], other[i])) {\n return false;\n }\n }\n return true;\n}\nfunction areAllEquivalent(base, other) {\n return areAllEquivalentPredicate(base, other, (baseElement, otherElement) => baseElement.isEquivalent(otherElement));\n}\nclass Expression {\n constructor(type, sourceSpan) {\n this.type = type || null;\n this.sourceSpan = sourceSpan || null;\n }\n prop(name, sourceSpan) {\n return new ReadPropExpr(this, name, null, sourceSpan);\n }\n key(index, type, sourceSpan) {\n return new ReadKeyExpr(this, index, type, sourceSpan);\n }\n callFn(params, sourceSpan, pure) {\n return new InvokeFunctionExpr(this, params, null, sourceSpan, pure);\n }\n instantiate(params, type, sourceSpan) {\n return new InstantiateExpr(this, params, type, sourceSpan);\n }\n conditional(trueCase, falseCase = null, sourceSpan) {\n return new ConditionalExpr(this, trueCase, falseCase, null, sourceSpan);\n }\n equals(rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.Equals, this, rhs, null, sourceSpan);\n }\n notEquals(rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.NotEquals, this, rhs, null, sourceSpan);\n }\n identical(rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.Identical, this, rhs, null, sourceSpan);\n }\n notIdentical(rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.NotIdentical, this, rhs, null, sourceSpan);\n }\n minus(rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.Minus, this, rhs, null, sourceSpan);\n }\n plus(rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.Plus, this, rhs, null, sourceSpan);\n }\n divide(rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.Divide, this, rhs, null, sourceSpan);\n }\n multiply(rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.Multiply, this, rhs, null, sourceSpan);\n }\n modulo(rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.Modulo, this, rhs, null, sourceSpan);\n }\n and(rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.And, this, rhs, null, sourceSpan);\n }\n bitwiseAnd(rhs, sourceSpan, parens = true) {\n return new BinaryOperatorExpr(BinaryOperator.BitwiseAnd, this, rhs, null, sourceSpan, parens);\n }\n or(rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.Or, this, rhs, null, sourceSpan);\n }\n lower(rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.Lower, this, rhs, null, sourceSpan);\n }\n lowerEquals(rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.LowerEquals, this, rhs, null, sourceSpan);\n }\n bigger(rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.Bigger, this, rhs, null, sourceSpan);\n }\n biggerEquals(rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.BiggerEquals, this, rhs, null, sourceSpan);\n }\n isBlank(sourceSpan) {\n // Note: We use equals by purpose here to compare to null and undefined in JS.\n // We use the typed null to allow strictNullChecks to narrow types.\n return this.equals(TYPED_NULL_EXPR, sourceSpan);\n }\n nullishCoalesce(rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.NullishCoalesce, this, rhs, null, sourceSpan);\n }\n toStmt() {\n return new ExpressionStatement(this, null);\n }\n}\nclass ReadVarExpr extends Expression {\n constructor(name, type, sourceSpan) {\n super(type, sourceSpan);\n this.name = name;\n }\n isEquivalent(e) {\n return e instanceof ReadVarExpr && this.name === e.name;\n }\n isConstant() {\n return false;\n }\n visitExpression(visitor, context) {\n return visitor.visitReadVarExpr(this, context);\n }\n set(value) {\n return new WriteVarExpr(this.name, value, null, this.sourceSpan);\n }\n}\nclass TypeofExpr extends Expression {\n constructor(expr, type, sourceSpan) {\n super(type, sourceSpan);\n this.expr = expr;\n }\n visitExpression(visitor, context) {\n return visitor.visitTypeofExpr(this, context);\n }\n isEquivalent(e) {\n return e instanceof TypeofExpr && e.expr.isEquivalent(this.expr);\n }\n isConstant() {\n return this.expr.isConstant();\n }\n}\nclass WrappedNodeExpr extends Expression {\n constructor(node, type, sourceSpan) {\n super(type, sourceSpan);\n this.node = node;\n }\n isEquivalent(e) {\n return e instanceof WrappedNodeExpr && this.node === e.node;\n }\n isConstant() {\n return false;\n }\n visitExpression(visitor, context) {\n return visitor.visitWrappedNodeExpr(this, context);\n }\n}\nclass WriteVarExpr extends Expression {\n constructor(name, value, type, sourceSpan) {\n super(type || value.type, sourceSpan);\n this.name = name;\n this.value = value;\n }\n isEquivalent(e) {\n return e instanceof WriteVarExpr && this.name === e.name && this.value.isEquivalent(e.value);\n }\n isConstant() {\n return false;\n }\n visitExpression(visitor, context) {\n return visitor.visitWriteVarExpr(this, context);\n }\n toDeclStmt(type, modifiers) {\n return new DeclareVarStmt(this.name, this.value, type, modifiers, this.sourceSpan);\n }\n toConstDecl() {\n return this.toDeclStmt(INFERRED_TYPE, StmtModifier.Final);\n }\n}\nclass WriteKeyExpr extends Expression {\n constructor(receiver, index, value, type, sourceSpan) {\n super(type || value.type, sourceSpan);\n this.receiver = receiver;\n this.index = index;\n this.value = value;\n }\n isEquivalent(e) {\n return e instanceof WriteKeyExpr && this.receiver.isEquivalent(e.receiver) &&\n this.index.isEquivalent(e.index) && this.value.isEquivalent(e.value);\n }\n isConstant() {\n return false;\n }\n visitExpression(visitor, context) {\n return visitor.visitWriteKeyExpr(this, context);\n }\n}\nclass WritePropExpr extends Expression {\n constructor(receiver, name, value, type, sourceSpan) {\n super(type || value.type, sourceSpan);\n this.receiver = receiver;\n this.name = name;\n this.value = value;\n }\n isEquivalent(e) {\n return e instanceof WritePropExpr && this.receiver.isEquivalent(e.receiver) &&\n this.name === e.name && this.value.isEquivalent(e.value);\n }\n isConstant() {\n return false;\n }\n visitExpression(visitor, context) {\n return visitor.visitWritePropExpr(this, context);\n }\n}\nclass InvokeFunctionExpr extends Expression {\n constructor(fn, args, type, sourceSpan, pure = false) {\n super(type, sourceSpan);\n this.fn = fn;\n this.args = args;\n this.pure = pure;\n }\n isEquivalent(e) {\n return e instanceof InvokeFunctionExpr && this.fn.isEquivalent(e.fn) &&\n areAllEquivalent(this.args, e.args) && this.pure === e.pure;\n }\n isConstant() {\n return false;\n }\n visitExpression(visitor, context) {\n return visitor.visitInvokeFunctionExpr(this, context);\n }\n}\nclass TaggedTemplateExpr extends Expression {\n constructor(tag, template, type, sourceSpan) {\n super(type, sourceSpan);\n this.tag = tag;\n this.template = template;\n }\n isEquivalent(e) {\n return e instanceof TaggedTemplateExpr && this.tag.isEquivalent(e.tag) &&\n areAllEquivalentPredicate(this.template.elements, e.template.elements, (a, b) => a.text === b.text) &&\n areAllEquivalent(this.template.expressions, e.template.expressions);\n }\n isConstant() {\n return false;\n }\n visitExpression(visitor, context) {\n return visitor.visitTaggedTemplateExpr(this, context);\n }\n}\nclass InstantiateExpr extends Expression {\n constructor(classExpr, args, type, sourceSpan) {\n super(type, sourceSpan);\n this.classExpr = classExpr;\n this.args = args;\n }\n isEquivalent(e) {\n return e instanceof InstantiateExpr && this.classExpr.isEquivalent(e.classExpr) &&\n areAllEquivalent(this.args, e.args);\n }\n isConstant() {\n return false;\n }\n visitExpression(visitor, context) {\n return visitor.visitInstantiateExpr(this, context);\n }\n}\nclass LiteralExpr extends Expression {\n constructor(value, type, sourceSpan) {\n super(type, sourceSpan);\n this.value = value;\n }\n isEquivalent(e) {\n return e instanceof LiteralExpr && this.value === e.value;\n }\n isConstant() {\n return true;\n }\n visitExpression(visitor, context) {\n return visitor.visitLiteralExpr(this, context);\n }\n}\nclass TemplateLiteral {\n constructor(elements, expressions) {\n this.elements = elements;\n this.expressions = expressions;\n }\n}\nclass TemplateLiteralElement {\n constructor(text, sourceSpan, rawText) {\n this.text = text;\n this.sourceSpan = sourceSpan;\n // If `rawText` is not provided, try to extract the raw string from its\n // associated `sourceSpan`. If that is also not available, \"fake\" the raw\n // string instead by escaping the following control sequences:\n // - \"\\\" would otherwise indicate that the next character is a control character.\n // - \"`\" and \"${\" are template string control sequences that would otherwise prematurely\n // indicate the end of the template literal element.\n this.rawText =\n rawText ?? sourceSpan?.toString() ?? escapeForTemplateLiteral(escapeSlashes(text));\n }\n}\nclass LiteralPiece {\n constructor(text, sourceSpan) {\n this.text = text;\n this.sourceSpan = sourceSpan;\n }\n}\nclass PlaceholderPiece {\n /**\n * Create a new instance of a `PlaceholderPiece`.\n *\n * @param text the name of this placeholder (e.g. `PH_1`).\n * @param sourceSpan the location of this placeholder in its localized message the source code.\n * @param associatedMessage reference to another message that this placeholder is associated with.\n * The `associatedMessage` is mainly used to provide a relationship to an ICU message that has\n * been extracted out from the message containing the placeholder.\n */\n constructor(text, sourceSpan, associatedMessage) {\n this.text = text;\n this.sourceSpan = sourceSpan;\n this.associatedMessage = associatedMessage;\n }\n}\nconst MEANING_SEPARATOR$1 = '|';\nconst ID_SEPARATOR$1 = '@@';\nconst LEGACY_ID_INDICATOR = '␟';\nclass LocalizedString extends Expression {\n constructor(metaBlock, messageParts, placeHolderNames, expressions, sourceSpan) {\n super(STRING_TYPE, sourceSpan);\n this.metaBlock = metaBlock;\n this.messageParts = messageParts;\n this.placeHolderNames = placeHolderNames;\n this.expressions = expressions;\n }\n isEquivalent(e) {\n // return e instanceof LocalizedString && this.message === e.message;\n return false;\n }\n isConstant() {\n return false;\n }\n visitExpression(visitor, context) {\n return visitor.visitLocalizedString(this, context);\n }\n /**\n * Serialize the given `meta` and `messagePart` into \"cooked\" and \"raw\" strings that can be used\n * in a `$localize` tagged string. The format of the metadata is the same as that parsed by\n * `parseI18nMeta()`.\n *\n * @param meta The metadata to serialize\n * @param messagePart The first part of the tagged string\n */\n serializeI18nHead() {\n let metaBlock = this.metaBlock.description || '';\n if (this.metaBlock.meaning) {\n metaBlock = `${this.metaBlock.meaning}${MEANING_SEPARATOR$1}${metaBlock}`;\n }\n if (this.metaBlock.customId) {\n metaBlock = `${metaBlock}${ID_SEPARATOR$1}${this.metaBlock.customId}`;\n }\n if (this.metaBlock.legacyIds) {\n this.metaBlock.legacyIds.forEach(legacyId => {\n metaBlock = `${metaBlock}${LEGACY_ID_INDICATOR}${legacyId}`;\n });\n }\n return createCookedRawString(metaBlock, this.messageParts[0].text, this.getMessagePartSourceSpan(0));\n }\n getMessagePartSourceSpan(i) {\n return this.messageParts[i]?.sourceSpan ?? this.sourceSpan;\n }\n getPlaceholderSourceSpan(i) {\n return this.placeHolderNames[i]?.sourceSpan ?? this.expressions[i]?.sourceSpan ??\n this.sourceSpan;\n }\n /**\n * Serialize the given `placeholderName` and `messagePart` into \"cooked\" and \"raw\" strings that\n * can be used in a `$localize` tagged string.\n *\n * The format is `:[@@]:`.\n *\n * The `associated-id` is the message id of the (usually an ICU) message to which this placeholder\n * refers.\n *\n * @param partIndex The index of the message part to serialize.\n */\n serializeI18nTemplatePart(partIndex) {\n const placeholder = this.placeHolderNames[partIndex - 1];\n const messagePart = this.messageParts[partIndex];\n let metaBlock = placeholder.text;\n if (placeholder.associatedMessage?.legacyIds.length === 0) {\n metaBlock += `${ID_SEPARATOR$1}${computeMsgId(placeholder.associatedMessage.messageString, placeholder.associatedMessage.meaning)}`;\n }\n return createCookedRawString(metaBlock, messagePart.text, this.getMessagePartSourceSpan(partIndex));\n }\n}\nconst escapeSlashes = (str) => str.replace(/\\\\/g, '\\\\\\\\');\nconst escapeStartingColon = (str) => str.replace(/^:/, '\\\\:');\nconst escapeColons = (str) => str.replace(/:/g, '\\\\:');\nconst escapeForTemplateLiteral = (str) => str.replace(/`/g, '\\\\`').replace(/\\${/g, '$\\\\{');\n/**\n * Creates a `{cooked, raw}` object from the `metaBlock` and `messagePart`.\n *\n * The `raw` text must have various character sequences escaped:\n * * \"\\\" would otherwise indicate that the next character is a control character.\n * * \"`\" and \"${\" are template string control sequences that would otherwise prematurely indicate\n * the end of a message part.\n * * \":\" inside a metablock would prematurely indicate the end of the metablock.\n * * \":\" at the start of a messagePart with no metablock would erroneously indicate the start of a\n * metablock.\n *\n * @param metaBlock Any metadata that should be prepended to the string\n * @param messagePart The message part of the string\n */\nfunction createCookedRawString(metaBlock, messagePart, range) {\n if (metaBlock === '') {\n return {\n cooked: messagePart,\n raw: escapeForTemplateLiteral(escapeStartingColon(escapeSlashes(messagePart))),\n range,\n };\n }\n else {\n return {\n cooked: `:${metaBlock}:${messagePart}`,\n raw: escapeForTemplateLiteral(`:${escapeColons(escapeSlashes(metaBlock))}:${escapeSlashes(messagePart)}`),\n range,\n };\n }\n}\nclass ExternalExpr extends Expression {\n constructor(value, type, typeParams = null, sourceSpan) {\n super(type, sourceSpan);\n this.value = value;\n this.typeParams = typeParams;\n }\n isEquivalent(e) {\n return e instanceof ExternalExpr && this.value.name === e.value.name &&\n this.value.moduleName === e.value.moduleName && this.value.runtime === e.value.runtime;\n }\n isConstant() {\n return false;\n }\n visitExpression(visitor, context) {\n return visitor.visitExternalExpr(this, context);\n }\n}\nclass ExternalReference {\n constructor(moduleName, name, runtime) {\n this.moduleName = moduleName;\n this.name = name;\n this.runtime = runtime;\n }\n}\nclass ConditionalExpr extends Expression {\n constructor(condition, trueCase, falseCase = null, type, sourceSpan) {\n super(type || trueCase.type, sourceSpan);\n this.condition = condition;\n this.falseCase = falseCase;\n this.trueCase = trueCase;\n }\n isEquivalent(e) {\n return e instanceof ConditionalExpr && this.condition.isEquivalent(e.condition) &&\n this.trueCase.isEquivalent(e.trueCase) && nullSafeIsEquivalent(this.falseCase, e.falseCase);\n }\n isConstant() {\n return false;\n }\n visitExpression(visitor, context) {\n return visitor.visitConditionalExpr(this, context);\n }\n}\nclass NotExpr extends Expression {\n constructor(condition, sourceSpan) {\n super(BOOL_TYPE, sourceSpan);\n this.condition = condition;\n }\n isEquivalent(e) {\n return e instanceof NotExpr && this.condition.isEquivalent(e.condition);\n }\n isConstant() {\n return false;\n }\n visitExpression(visitor, context) {\n return visitor.visitNotExpr(this, context);\n }\n}\nclass FnParam {\n constructor(name, type = null) {\n this.name = name;\n this.type = type;\n }\n isEquivalent(param) {\n return this.name === param.name;\n }\n}\nclass FunctionExpr extends Expression {\n constructor(params, statements, type, sourceSpan, name) {\n super(type, sourceSpan);\n this.params = params;\n this.statements = statements;\n this.name = name;\n }\n isEquivalent(e) {\n return e instanceof FunctionExpr && areAllEquivalent(this.params, e.params) &&\n areAllEquivalent(this.statements, e.statements);\n }\n isConstant() {\n return false;\n }\n visitExpression(visitor, context) {\n return visitor.visitFunctionExpr(this, context);\n }\n toDeclStmt(name, modifiers) {\n return new DeclareFunctionStmt(name, this.params, this.statements, this.type, modifiers, this.sourceSpan);\n }\n}\nclass UnaryOperatorExpr extends Expression {\n constructor(operator, expr, type, sourceSpan, parens = true) {\n super(type || NUMBER_TYPE, sourceSpan);\n this.operator = operator;\n this.expr = expr;\n this.parens = parens;\n }\n isEquivalent(e) {\n return e instanceof UnaryOperatorExpr && this.operator === e.operator &&\n this.expr.isEquivalent(e.expr);\n }\n isConstant() {\n return false;\n }\n visitExpression(visitor, context) {\n return visitor.visitUnaryOperatorExpr(this, context);\n }\n}\nclass BinaryOperatorExpr extends Expression {\n constructor(operator, lhs, rhs, type, sourceSpan, parens = true) {\n super(type || lhs.type, sourceSpan);\n this.operator = operator;\n this.rhs = rhs;\n this.parens = parens;\n this.lhs = lhs;\n }\n isEquivalent(e) {\n return e instanceof BinaryOperatorExpr && this.operator === e.operator &&\n this.lhs.isEquivalent(e.lhs) && this.rhs.isEquivalent(e.rhs);\n }\n isConstant() {\n return false;\n }\n visitExpression(visitor, context) {\n return visitor.visitBinaryOperatorExpr(this, context);\n }\n}\nclass ReadPropExpr extends Expression {\n constructor(receiver, name, type, sourceSpan) {\n super(type, sourceSpan);\n this.receiver = receiver;\n this.name = name;\n }\n isEquivalent(e) {\n return e instanceof ReadPropExpr && this.receiver.isEquivalent(e.receiver) &&\n this.name === e.name;\n }\n isConstant() {\n return false;\n }\n visitExpression(visitor, context) {\n return visitor.visitReadPropExpr(this, context);\n }\n set(value) {\n return new WritePropExpr(this.receiver, this.name, value, null, this.sourceSpan);\n }\n}\nclass ReadKeyExpr extends Expression {\n constructor(receiver, index, type, sourceSpan) {\n super(type, sourceSpan);\n this.receiver = receiver;\n this.index = index;\n }\n isEquivalent(e) {\n return e instanceof ReadKeyExpr && this.receiver.isEquivalent(e.receiver) &&\n this.index.isEquivalent(e.index);\n }\n isConstant() {\n return false;\n }\n visitExpression(visitor, context) {\n return visitor.visitReadKeyExpr(this, context);\n }\n set(value) {\n return new WriteKeyExpr(this.receiver, this.index, value, null, this.sourceSpan);\n }\n}\nclass LiteralArrayExpr extends Expression {\n constructor(entries, type, sourceSpan) {\n super(type, sourceSpan);\n this.entries = entries;\n }\n isConstant() {\n return this.entries.every(e => e.isConstant());\n }\n isEquivalent(e) {\n return e instanceof LiteralArrayExpr && areAllEquivalent(this.entries, e.entries);\n }\n visitExpression(visitor, context) {\n return visitor.visitLiteralArrayExpr(this, context);\n }\n}\nclass LiteralMapEntry {\n constructor(key, value, quoted) {\n this.key = key;\n this.value = value;\n this.quoted = quoted;\n }\n isEquivalent(e) {\n return this.key === e.key && this.value.isEquivalent(e.value);\n }\n}\nclass LiteralMapExpr extends Expression {\n constructor(entries, type, sourceSpan) {\n super(type, sourceSpan);\n this.entries = entries;\n this.valueType = null;\n if (type) {\n this.valueType = type.valueType;\n }\n }\n isEquivalent(e) {\n return e instanceof LiteralMapExpr && areAllEquivalent(this.entries, e.entries);\n }\n isConstant() {\n return this.entries.every(e => e.value.isConstant());\n }\n visitExpression(visitor, context) {\n return visitor.visitLiteralMapExpr(this, context);\n }\n}\nclass CommaExpr extends Expression {\n constructor(parts, sourceSpan) {\n super(parts[parts.length - 1].type, sourceSpan);\n this.parts = parts;\n }\n isEquivalent(e) {\n return e instanceof CommaExpr && areAllEquivalent(this.parts, e.parts);\n }\n isConstant() {\n return false;\n }\n visitExpression(visitor, context) {\n return visitor.visitCommaExpr(this, context);\n }\n}\nconst NULL_EXPR = new LiteralExpr(null, null, null);\nconst TYPED_NULL_EXPR = new LiteralExpr(null, INFERRED_TYPE, null);\n//// Statements\nvar StmtModifier;\n(function (StmtModifier) {\n StmtModifier[StmtModifier[\"None\"] = 0] = \"None\";\n StmtModifier[StmtModifier[\"Final\"] = 1] = \"Final\";\n StmtModifier[StmtModifier[\"Private\"] = 2] = \"Private\";\n StmtModifier[StmtModifier[\"Exported\"] = 4] = \"Exported\";\n StmtModifier[StmtModifier[\"Static\"] = 8] = \"Static\";\n})(StmtModifier || (StmtModifier = {}));\nclass LeadingComment {\n constructor(text, multiline, trailingNewline) {\n this.text = text;\n this.multiline = multiline;\n this.trailingNewline = trailingNewline;\n }\n toString() {\n return this.multiline ? ` ${this.text} ` : this.text;\n }\n}\nclass JSDocComment extends LeadingComment {\n constructor(tags) {\n super('', /* multiline */ true, /* trailingNewline */ true);\n this.tags = tags;\n }\n toString() {\n return serializeTags(this.tags);\n }\n}\nclass Statement {\n constructor(modifiers = StmtModifier.None, sourceSpan = null, leadingComments) {\n this.modifiers = modifiers;\n this.sourceSpan = sourceSpan;\n this.leadingComments = leadingComments;\n }\n hasModifier(modifier) {\n return (this.modifiers & modifier) !== 0;\n }\n addLeadingComment(leadingComment) {\n this.leadingComments = this.leadingComments ?? [];\n this.leadingComments.push(leadingComment);\n }\n}\nclass DeclareVarStmt extends Statement {\n constructor(name, value, type, modifiers, sourceSpan, leadingComments) {\n super(modifiers, sourceSpan, leadingComments);\n this.name = name;\n this.value = value;\n this.type = type || (value && value.type) || null;\n }\n isEquivalent(stmt) {\n return stmt instanceof DeclareVarStmt && this.name === stmt.name &&\n (this.value ? !!stmt.value && this.value.isEquivalent(stmt.value) : !stmt.value);\n }\n visitStatement(visitor, context) {\n return visitor.visitDeclareVarStmt(this, context);\n }\n}\nclass DeclareFunctionStmt extends Statement {\n constructor(name, params, statements, type, modifiers, sourceSpan, leadingComments) {\n super(modifiers, sourceSpan, leadingComments);\n this.name = name;\n this.params = params;\n this.statements = statements;\n this.type = type || null;\n }\n isEquivalent(stmt) {\n return stmt instanceof DeclareFunctionStmt && areAllEquivalent(this.params, stmt.params) &&\n areAllEquivalent(this.statements, stmt.statements);\n }\n visitStatement(visitor, context) {\n return visitor.visitDeclareFunctionStmt(this, context);\n }\n}\nclass ExpressionStatement extends Statement {\n constructor(expr, sourceSpan, leadingComments) {\n super(StmtModifier.None, sourceSpan, leadingComments);\n this.expr = expr;\n }\n isEquivalent(stmt) {\n return stmt instanceof ExpressionStatement && this.expr.isEquivalent(stmt.expr);\n }\n visitStatement(visitor, context) {\n return visitor.visitExpressionStmt(this, context);\n }\n}\nclass ReturnStatement extends Statement {\n constructor(value, sourceSpan = null, leadingComments) {\n super(StmtModifier.None, sourceSpan, leadingComments);\n this.value = value;\n }\n isEquivalent(stmt) {\n return stmt instanceof ReturnStatement && this.value.isEquivalent(stmt.value);\n }\n visitStatement(visitor, context) {\n return visitor.visitReturnStmt(this, context);\n }\n}\nclass IfStmt extends Statement {\n constructor(condition, trueCase, falseCase = [], sourceSpan, leadingComments) {\n super(StmtModifier.None, sourceSpan, leadingComments);\n this.condition = condition;\n this.trueCase = trueCase;\n this.falseCase = falseCase;\n }\n isEquivalent(stmt) {\n return stmt instanceof IfStmt && this.condition.isEquivalent(stmt.condition) &&\n areAllEquivalent(this.trueCase, stmt.trueCase) &&\n areAllEquivalent(this.falseCase, stmt.falseCase);\n }\n visitStatement(visitor, context) {\n return visitor.visitIfStmt(this, context);\n }\n}\nclass RecursiveAstVisitor$1 {\n visitType(ast, context) {\n return ast;\n }\n visitExpression(ast, context) {\n if (ast.type) {\n ast.type.visitType(this, context);\n }\n return ast;\n }\n visitBuiltinType(type, context) {\n return this.visitType(type, context);\n }\n visitExpressionType(type, context) {\n type.value.visitExpression(this, context);\n if (type.typeParams !== null) {\n type.typeParams.forEach(param => this.visitType(param, context));\n }\n return this.visitType(type, context);\n }\n visitArrayType(type, context) {\n return this.visitType(type, context);\n }\n visitMapType(type, context) {\n return this.visitType(type, context);\n }\n visitWrappedNodeExpr(ast, context) {\n return ast;\n }\n visitTypeofExpr(ast, context) {\n return this.visitExpression(ast, context);\n }\n visitReadVarExpr(ast, context) {\n return this.visitExpression(ast, context);\n }\n visitWriteVarExpr(ast, context) {\n ast.value.visitExpression(this, context);\n return this.visitExpression(ast, context);\n }\n visitWriteKeyExpr(ast, context) {\n ast.receiver.visitExpression(this, context);\n ast.index.visitExpression(this, context);\n ast.value.visitExpression(this, context);\n return this.visitExpression(ast, context);\n }\n visitWritePropExpr(ast, context) {\n ast.receiver.visitExpression(this, context);\n ast.value.visitExpression(this, context);\n return this.visitExpression(ast, context);\n }\n visitInvokeFunctionExpr(ast, context) {\n ast.fn.visitExpression(this, context);\n this.visitAllExpressions(ast.args, context);\n return this.visitExpression(ast, context);\n }\n visitTaggedTemplateExpr(ast, context) {\n ast.tag.visitExpression(this, context);\n this.visitAllExpressions(ast.template.expressions, context);\n return this.visitExpression(ast, context);\n }\n visitInstantiateExpr(ast, context) {\n ast.classExpr.visitExpression(this, context);\n this.visitAllExpressions(ast.args, context);\n return this.visitExpression(ast, context);\n }\n visitLiteralExpr(ast, context) {\n return this.visitExpression(ast, context);\n }\n visitLocalizedString(ast, context) {\n return this.visitExpression(ast, context);\n }\n visitExternalExpr(ast, context) {\n if (ast.typeParams) {\n ast.typeParams.forEach(type => type.visitType(this, context));\n }\n return this.visitExpression(ast, context);\n }\n visitConditionalExpr(ast, context) {\n ast.condition.visitExpression(this, context);\n ast.trueCase.visitExpression(this, context);\n ast.falseCase.visitExpression(this, context);\n return this.visitExpression(ast, context);\n }\n visitNotExpr(ast, context) {\n ast.condition.visitExpression(this, context);\n return this.visitExpression(ast, context);\n }\n visitFunctionExpr(ast, context) {\n this.visitAllStatements(ast.statements, context);\n return this.visitExpression(ast, context);\n }\n visitUnaryOperatorExpr(ast, context) {\n ast.expr.visitExpression(this, context);\n return this.visitExpression(ast, context);\n }\n visitBinaryOperatorExpr(ast, context) {\n ast.lhs.visitExpression(this, context);\n ast.rhs.visitExpression(this, context);\n return this.visitExpression(ast, context);\n }\n visitReadPropExpr(ast, context) {\n ast.receiver.visitExpression(this, context);\n return this.visitExpression(ast, context);\n }\n visitReadKeyExpr(ast, context) {\n ast.receiver.visitExpression(this, context);\n ast.index.visitExpression(this, context);\n return this.visitExpression(ast, context);\n }\n visitLiteralArrayExpr(ast, context) {\n this.visitAllExpressions(ast.entries, context);\n return this.visitExpression(ast, context);\n }\n visitLiteralMapExpr(ast, context) {\n ast.entries.forEach((entry) => entry.value.visitExpression(this, context));\n return this.visitExpression(ast, context);\n }\n visitCommaExpr(ast, context) {\n this.visitAllExpressions(ast.parts, context);\n return this.visitExpression(ast, context);\n }\n visitAllExpressions(exprs, context) {\n exprs.forEach(expr => expr.visitExpression(this, context));\n }\n visitDeclareVarStmt(stmt, context) {\n if (stmt.value) {\n stmt.value.visitExpression(this, context);\n }\n if (stmt.type) {\n stmt.type.visitType(this, context);\n }\n return stmt;\n }\n visitDeclareFunctionStmt(stmt, context) {\n this.visitAllStatements(stmt.statements, context);\n if (stmt.type) {\n stmt.type.visitType(this, context);\n }\n return stmt;\n }\n visitExpressionStmt(stmt, context) {\n stmt.expr.visitExpression(this, context);\n return stmt;\n }\n visitReturnStmt(stmt, context) {\n stmt.value.visitExpression(this, context);\n return stmt;\n }\n visitIfStmt(stmt, context) {\n stmt.condition.visitExpression(this, context);\n this.visitAllStatements(stmt.trueCase, context);\n this.visitAllStatements(stmt.falseCase, context);\n return stmt;\n }\n visitAllStatements(stmts, context) {\n stmts.forEach(stmt => stmt.visitStatement(this, context));\n }\n}\nfunction leadingComment(text, multiline = false, trailingNewline = true) {\n return new LeadingComment(text, multiline, trailingNewline);\n}\nfunction jsDocComment(tags = []) {\n return new JSDocComment(tags);\n}\nfunction variable(name, type, sourceSpan) {\n return new ReadVarExpr(name, type, sourceSpan);\n}\nfunction importExpr(id, typeParams = null, sourceSpan) {\n return new ExternalExpr(id, null, typeParams, sourceSpan);\n}\nfunction importType(id, typeParams, typeModifiers) {\n return id != null ? expressionType(importExpr(id, typeParams, null), typeModifiers) : null;\n}\nfunction expressionType(expr, typeModifiers, typeParams) {\n return new ExpressionType(expr, typeModifiers, typeParams);\n}\nfunction typeofExpr(expr) {\n return new TypeofExpr(expr);\n}\nfunction literalArr(values, type, sourceSpan) {\n return new LiteralArrayExpr(values, type, sourceSpan);\n}\nfunction literalMap(values, type = null) {\n return new LiteralMapExpr(values.map(e => new LiteralMapEntry(e.key, e.value, e.quoted)), type, null);\n}\nfunction unary(operator, expr, type, sourceSpan) {\n return new UnaryOperatorExpr(operator, expr, type, sourceSpan);\n}\nfunction not(expr, sourceSpan) {\n return new NotExpr(expr, sourceSpan);\n}\nfunction fn(params, body, type, sourceSpan, name) {\n return new FunctionExpr(params, body, type, sourceSpan, name);\n}\nfunction ifStmt(condition, thenClause, elseClause, sourceSpan, leadingComments) {\n return new IfStmt(condition, thenClause, elseClause, sourceSpan, leadingComments);\n}\nfunction taggedTemplate(tag, template, type, sourceSpan) {\n return new TaggedTemplateExpr(tag, template, type, sourceSpan);\n}\nfunction literal(value, type, sourceSpan) {\n return new LiteralExpr(value, type, sourceSpan);\n}\nfunction localizedString(metaBlock, messageParts, placeholderNames, expressions, sourceSpan) {\n return new LocalizedString(metaBlock, messageParts, placeholderNames, expressions, sourceSpan);\n}\nfunction isNull(exp) {\n return exp instanceof LiteralExpr && exp.value === null;\n}\n/*\n * Serializes a `Tag` into a string.\n * Returns a string like \" @foo {bar} baz\" (note the leading whitespace before `@foo`).\n */\nfunction tagToString(tag) {\n let out = '';\n if (tag.tagName) {\n out += ` @${tag.tagName}`;\n }\n if (tag.text) {\n if (tag.text.match(/\\/\\*|\\*\\//)) {\n throw new Error('JSDoc text cannot contain \"/*\" and \"*/\"');\n }\n out += ' ' + tag.text.replace(/@/g, '\\\\@');\n }\n return out;\n}\nfunction serializeTags(tags) {\n if (tags.length === 0)\n return '';\n if (tags.length === 1 && tags[0].tagName && !tags[0].text) {\n // The JSDOC comment is a single simple tag: e.g `/** @tagname */`.\n return `*${tagToString(tags[0])} `;\n }\n let out = '*\\n';\n for (const tag of tags) {\n out += ' *';\n // If the tagToString is multi-line, insert \" * \" prefixes on lines.\n out += tagToString(tag).replace(/\\n/g, '\\n * ');\n out += '\\n';\n }\n out += ' ';\n return out;\n}\n\nvar output_ast = /*#__PURE__*/Object.freeze({\n __proto__: null,\n get TypeModifier () { return TypeModifier; },\n Type: Type,\n get BuiltinTypeName () { return BuiltinTypeName; },\n BuiltinType: BuiltinType,\n ExpressionType: ExpressionType,\n ArrayType: ArrayType,\n MapType: MapType,\n DYNAMIC_TYPE: DYNAMIC_TYPE,\n INFERRED_TYPE: INFERRED_TYPE,\n BOOL_TYPE: BOOL_TYPE,\n INT_TYPE: INT_TYPE,\n NUMBER_TYPE: NUMBER_TYPE,\n STRING_TYPE: STRING_TYPE,\n FUNCTION_TYPE: FUNCTION_TYPE,\n NONE_TYPE: NONE_TYPE,\n get UnaryOperator () { return UnaryOperator; },\n get BinaryOperator () { return BinaryOperator; },\n nullSafeIsEquivalent: nullSafeIsEquivalent,\n areAllEquivalent: areAllEquivalent,\n Expression: Expression,\n ReadVarExpr: ReadVarExpr,\n TypeofExpr: TypeofExpr,\n WrappedNodeExpr: WrappedNodeExpr,\n WriteVarExpr: WriteVarExpr,\n WriteKeyExpr: WriteKeyExpr,\n WritePropExpr: WritePropExpr,\n InvokeFunctionExpr: InvokeFunctionExpr,\n TaggedTemplateExpr: TaggedTemplateExpr,\n InstantiateExpr: InstantiateExpr,\n LiteralExpr: LiteralExpr,\n TemplateLiteral: TemplateLiteral,\n TemplateLiteralElement: TemplateLiteralElement,\n LiteralPiece: LiteralPiece,\n PlaceholderPiece: PlaceholderPiece,\n LocalizedString: LocalizedString,\n ExternalExpr: ExternalExpr,\n ExternalReference: ExternalReference,\n ConditionalExpr: ConditionalExpr,\n NotExpr: NotExpr,\n FnParam: FnParam,\n FunctionExpr: FunctionExpr,\n UnaryOperatorExpr: UnaryOperatorExpr,\n BinaryOperatorExpr: BinaryOperatorExpr,\n ReadPropExpr: ReadPropExpr,\n ReadKeyExpr: ReadKeyExpr,\n LiteralArrayExpr: LiteralArrayExpr,\n LiteralMapEntry: LiteralMapEntry,\n LiteralMapExpr: LiteralMapExpr,\n CommaExpr: CommaExpr,\n NULL_EXPR: NULL_EXPR,\n TYPED_NULL_EXPR: TYPED_NULL_EXPR,\n get StmtModifier () { return StmtModifier; },\n LeadingComment: LeadingComment,\n JSDocComment: JSDocComment,\n Statement: Statement,\n DeclareVarStmt: DeclareVarStmt,\n DeclareFunctionStmt: DeclareFunctionStmt,\n ExpressionStatement: ExpressionStatement,\n ReturnStatement: ReturnStatement,\n IfStmt: IfStmt,\n RecursiveAstVisitor: RecursiveAstVisitor$1,\n leadingComment: leadingComment,\n jsDocComment: jsDocComment,\n variable: variable,\n importExpr: importExpr,\n importType: importType,\n expressionType: expressionType,\n typeofExpr: typeofExpr,\n literalArr: literalArr,\n literalMap: literalMap,\n unary: unary,\n not: not,\n fn: fn,\n ifStmt: ifStmt,\n taggedTemplate: taggedTemplate,\n literal: literal,\n localizedString: localizedString,\n isNull: isNull\n});\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst CONSTANT_PREFIX = '_c';\n/**\n * `ConstantPool` tries to reuse literal factories when two or more literals are identical.\n * We determine whether literals are identical by creating a key out of their AST using the\n * `KeyVisitor`. This constant is used to replace dynamic expressions which can't be safely\n * converted into a key. E.g. given an expression `{foo: bar()}`, since we don't know what\n * the result of `bar` will be, we create a key that looks like `{foo: }`. Note\n * that we use a variable, rather than something like `null` in order to avoid collisions.\n */\nconst UNKNOWN_VALUE_KEY = variable('');\n/**\n * Context to use when producing a key.\n *\n * This ensures we see the constant not the reference variable when producing\n * a key.\n */\nconst KEY_CONTEXT = {};\n/**\n * Generally all primitive values are excluded from the `ConstantPool`, but there is an exclusion\n * for strings that reach a certain length threshold. This constant defines the length threshold for\n * strings.\n */\nconst POOL_INCLUSION_LENGTH_THRESHOLD_FOR_STRINGS = 50;\n/**\n * A node that is a place-holder that allows the node to be replaced when the actual\n * node is known.\n *\n * This allows the constant pool to change an expression from a direct reference to\n * a constant to a shared constant. It returns a fix-up node that is later allowed to\n * change the referenced expression.\n */\nclass FixupExpression extends Expression {\n constructor(resolved) {\n super(resolved.type);\n this.resolved = resolved;\n this.original = resolved;\n }\n visitExpression(visitor, context) {\n if (context === KEY_CONTEXT) {\n // When producing a key we want to traverse the constant not the\n // variable used to refer to it.\n return this.original.visitExpression(visitor, context);\n }\n else {\n return this.resolved.visitExpression(visitor, context);\n }\n }\n isEquivalent(e) {\n return e instanceof FixupExpression && this.resolved.isEquivalent(e.resolved);\n }\n isConstant() {\n return true;\n }\n fixup(expression) {\n this.resolved = expression;\n this.shared = true;\n }\n}\n/**\n * A constant pool allows a code emitter to share constant in an output context.\n *\n * The constant pool also supports sharing access to ivy definitions references.\n */\nclass ConstantPool {\n constructor(isClosureCompilerEnabled = false) {\n this.isClosureCompilerEnabled = isClosureCompilerEnabled;\n this.statements = [];\n this.literals = new Map();\n this.literalFactories = new Map();\n this.nextNameIndex = 0;\n }\n getConstLiteral(literal, forceShared) {\n if ((literal instanceof LiteralExpr && !isLongStringLiteral(literal)) ||\n literal instanceof FixupExpression) {\n // Do no put simple literals into the constant pool or try to produce a constant for a\n // reference to a constant.\n return literal;\n }\n const key = this.keyOf(literal);\n let fixup = this.literals.get(key);\n let newValue = false;\n if (!fixup) {\n fixup = new FixupExpression(literal);\n this.literals.set(key, fixup);\n newValue = true;\n }\n if ((!newValue && !fixup.shared) || (newValue && forceShared)) {\n // Replace the expression with a variable\n const name = this.freshName();\n let definition;\n let usage;\n if (this.isClosureCompilerEnabled && isLongStringLiteral(literal)) {\n // For string literals, Closure will **always** inline the string at\n // **all** usages, duplicating it each time. For large strings, this\n // unnecessarily bloats bundle size. To work around this restriction, we\n // wrap the string in a function, and call that function for each usage.\n // This tricks Closure into using inline logic for functions instead of\n // string literals. Function calls are only inlined if the body is small\n // enough to be worth it. By doing this, very large strings will be\n // shared across multiple usages, rather than duplicating the string at\n // each usage site.\n //\n // const myStr = function() { return \"very very very long string\"; };\n // const usage1 = myStr();\n // const usage2 = myStr();\n definition = variable(name).set(new FunctionExpr([], // Params.\n [\n // Statements.\n new ReturnStatement(literal),\n ]));\n usage = variable(name).callFn([]);\n }\n else {\n // Just declare and use the variable directly, without a function call\n // indirection. This saves a few bytes and avoids an unnecessary call.\n definition = variable(name).set(literal);\n usage = variable(name);\n }\n this.statements.push(definition.toDeclStmt(INFERRED_TYPE, StmtModifier.Final));\n fixup.fixup(usage);\n }\n return fixup;\n }\n getLiteralFactory(literal) {\n // Create a pure function that builds an array of a mix of constant and variable expressions\n if (literal instanceof LiteralArrayExpr) {\n const argumentsForKey = literal.entries.map(e => e.isConstant() ? e : UNKNOWN_VALUE_KEY);\n const key = this.keyOf(literalArr(argumentsForKey));\n return this._getLiteralFactory(key, literal.entries, entries => literalArr(entries));\n }\n else {\n const expressionForKey = literalMap(literal.entries.map(e => ({\n key: e.key,\n value: e.value.isConstant() ? e.value : UNKNOWN_VALUE_KEY,\n quoted: e.quoted\n })));\n const key = this.keyOf(expressionForKey);\n return this._getLiteralFactory(key, literal.entries.map(e => e.value), entries => literalMap(entries.map((value, index) => ({\n key: literal.entries[index].key,\n value,\n quoted: literal.entries[index].quoted\n }))));\n }\n }\n _getLiteralFactory(key, values, resultMap) {\n let literalFactory = this.literalFactories.get(key);\n const literalFactoryArguments = values.filter((e => !e.isConstant()));\n if (!literalFactory) {\n const resultExpressions = values.map((e, index) => e.isConstant() ? this.getConstLiteral(e, true) : variable(`a${index}`));\n const parameters = resultExpressions.filter(isVariable).map(e => new FnParam(e.name, DYNAMIC_TYPE));\n const pureFunctionDeclaration = fn(parameters, [new ReturnStatement(resultMap(resultExpressions))], INFERRED_TYPE);\n const name = this.freshName();\n this.statements.push(variable(name)\n .set(pureFunctionDeclaration)\n .toDeclStmt(INFERRED_TYPE, StmtModifier.Final));\n literalFactory = variable(name);\n this.literalFactories.set(key, literalFactory);\n }\n return { literalFactory, literalFactoryArguments };\n }\n /**\n * Produce a unique name.\n *\n * The name might be unique among different prefixes if any of the prefixes end in\n * a digit so the prefix should be a constant string (not based on user input) and\n * must not end in a digit.\n */\n uniqueName(prefix) {\n return `${prefix}${this.nextNameIndex++}`;\n }\n freshName() {\n return this.uniqueName(CONSTANT_PREFIX);\n }\n keyOf(expression) {\n return expression.visitExpression(new KeyVisitor(), KEY_CONTEXT);\n }\n}\n/**\n * Visitor used to determine if 2 expressions are equivalent and can be shared in the\n * `ConstantPool`.\n *\n * When the id (string) generated by the visitor is equal, expressions are considered equivalent.\n */\nclass KeyVisitor {\n constructor() {\n this.visitWrappedNodeExpr = invalid$1;\n this.visitWriteVarExpr = invalid$1;\n this.visitWriteKeyExpr = invalid$1;\n this.visitWritePropExpr = invalid$1;\n this.visitInvokeFunctionExpr = invalid$1;\n this.visitTaggedTemplateExpr = invalid$1;\n this.visitInstantiateExpr = invalid$1;\n this.visitConditionalExpr = invalid$1;\n this.visitNotExpr = invalid$1;\n this.visitAssertNotNullExpr = invalid$1;\n this.visitCastExpr = invalid$1;\n this.visitFunctionExpr = invalid$1;\n this.visitUnaryOperatorExpr = invalid$1;\n this.visitBinaryOperatorExpr = invalid$1;\n this.visitReadPropExpr = invalid$1;\n this.visitReadKeyExpr = invalid$1;\n this.visitCommaExpr = invalid$1;\n this.visitLocalizedString = invalid$1;\n }\n visitLiteralExpr(ast) {\n return `${typeof ast.value === 'string' ? '\"' + ast.value + '\"' : ast.value}`;\n }\n visitLiteralArrayExpr(ast, context) {\n return `[${ast.entries.map(entry => entry.visitExpression(this, context)).join(',')}]`;\n }\n visitLiteralMapExpr(ast, context) {\n const mapKey = (entry) => {\n const quote = entry.quoted ? '\"' : '';\n return `${quote}${entry.key}${quote}`;\n };\n const mapEntry = (entry) => `${mapKey(entry)}:${entry.value.visitExpression(this, context)}`;\n return `{${ast.entries.map(mapEntry).join(',')}`;\n }\n visitExternalExpr(ast) {\n return ast.value.moduleName ? `EX:${ast.value.moduleName}:${ast.value.name}` :\n `EX:${ast.value.runtime.name}`;\n }\n visitReadVarExpr(node) {\n return `VAR:${node.name}`;\n }\n visitTypeofExpr(node, context) {\n return `TYPEOF:${node.expr.visitExpression(this, context)}`;\n }\n}\nfunction invalid$1(arg) {\n throw new Error(`Invalid state: Visitor ${this.constructor.name} doesn't handle ${arg.constructor.name}`);\n}\nfunction isVariable(e) {\n return e instanceof ReadVarExpr;\n}\nfunction isLongStringLiteral(expr) {\n return expr instanceof LiteralExpr && typeof expr.value === 'string' &&\n expr.value.length >= POOL_INCLUSION_LENGTH_THRESHOLD_FOR_STRINGS;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst CORE = '@angular/core';\nclass Identifiers {\n}\n/* Methods */\nIdentifiers.NEW_METHOD = 'factory';\nIdentifiers.TRANSFORM_METHOD = 'transform';\nIdentifiers.PATCH_DEPS = 'patchedDeps';\nIdentifiers.core = { name: null, moduleName: CORE };\n/* Instructions */\nIdentifiers.namespaceHTML = { name: 'ɵɵnamespaceHTML', moduleName: CORE };\nIdentifiers.namespaceMathML = { name: 'ɵɵnamespaceMathML', moduleName: CORE };\nIdentifiers.namespaceSVG = { name: 'ɵɵnamespaceSVG', moduleName: CORE };\nIdentifiers.element = { name: 'ɵɵelement', moduleName: CORE };\nIdentifiers.elementStart = { name: 'ɵɵelementStart', moduleName: CORE };\nIdentifiers.elementEnd = { name: 'ɵɵelementEnd', moduleName: CORE };\nIdentifiers.advance = { name: 'ɵɵadvance', moduleName: CORE };\nIdentifiers.syntheticHostProperty = { name: 'ɵɵsyntheticHostProperty', moduleName: CORE };\nIdentifiers.syntheticHostListener = { name: 'ɵɵsyntheticHostListener', moduleName: CORE };\nIdentifiers.attribute = { name: 'ɵɵattribute', moduleName: CORE };\nIdentifiers.attributeInterpolate1 = { name: 'ɵɵattributeInterpolate1', moduleName: CORE };\nIdentifiers.attributeInterpolate2 = { name: 'ɵɵattributeInterpolate2', moduleName: CORE };\nIdentifiers.attributeInterpolate3 = { name: 'ɵɵattributeInterpolate3', moduleName: CORE };\nIdentifiers.attributeInterpolate4 = { name: 'ɵɵattributeInterpolate4', moduleName: CORE };\nIdentifiers.attributeInterpolate5 = { name: 'ɵɵattributeInterpolate5', moduleName: CORE };\nIdentifiers.attributeInterpolate6 = { name: 'ɵɵattributeInterpolate6', moduleName: CORE };\nIdentifiers.attributeInterpolate7 = { name: 'ɵɵattributeInterpolate7', moduleName: CORE };\nIdentifiers.attributeInterpolate8 = { name: 'ɵɵattributeInterpolate8', moduleName: CORE };\nIdentifiers.attributeInterpolateV = { name: 'ɵɵattributeInterpolateV', moduleName: CORE };\nIdentifiers.classProp = { name: 'ɵɵclassProp', moduleName: CORE };\nIdentifiers.elementContainerStart = { name: 'ɵɵelementContainerStart', moduleName: CORE };\nIdentifiers.elementContainerEnd = { name: 'ɵɵelementContainerEnd', moduleName: CORE };\nIdentifiers.elementContainer = { name: 'ɵɵelementContainer', moduleName: CORE };\nIdentifiers.styleMap = { name: 'ɵɵstyleMap', moduleName: CORE };\nIdentifiers.styleMapInterpolate1 = { name: 'ɵɵstyleMapInterpolate1', moduleName: CORE };\nIdentifiers.styleMapInterpolate2 = { name: 'ɵɵstyleMapInterpolate2', moduleName: CORE };\nIdentifiers.styleMapInterpolate3 = { name: 'ɵɵstyleMapInterpolate3', moduleName: CORE };\nIdentifiers.styleMapInterpolate4 = { name: 'ɵɵstyleMapInterpolate4', moduleName: CORE };\nIdentifiers.styleMapInterpolate5 = { name: 'ɵɵstyleMapInterpolate5', moduleName: CORE };\nIdentifiers.styleMapInterpolate6 = { name: 'ɵɵstyleMapInterpolate6', moduleName: CORE };\nIdentifiers.styleMapInterpolate7 = { name: 'ɵɵstyleMapInterpolate7', moduleName: CORE };\nIdentifiers.styleMapInterpolate8 = { name: 'ɵɵstyleMapInterpolate8', moduleName: CORE };\nIdentifiers.styleMapInterpolateV = { name: 'ɵɵstyleMapInterpolateV', moduleName: CORE };\nIdentifiers.classMap = { name: 'ɵɵclassMap', moduleName: CORE };\nIdentifiers.classMapInterpolate1 = { name: 'ɵɵclassMapInterpolate1', moduleName: CORE };\nIdentifiers.classMapInterpolate2 = { name: 'ɵɵclassMapInterpolate2', moduleName: CORE };\nIdentifiers.classMapInterpolate3 = { name: 'ɵɵclassMapInterpolate3', moduleName: CORE };\nIdentifiers.classMapInterpolate4 = { name: 'ɵɵclassMapInterpolate4', moduleName: CORE };\nIdentifiers.classMapInterpolate5 = { name: 'ɵɵclassMapInterpolate5', moduleName: CORE };\nIdentifiers.classMapInterpolate6 = { name: 'ɵɵclassMapInterpolate6', moduleName: CORE };\nIdentifiers.classMapInterpolate7 = { name: 'ɵɵclassMapInterpolate7', moduleName: CORE };\nIdentifiers.classMapInterpolate8 = { name: 'ɵɵclassMapInterpolate8', moduleName: CORE };\nIdentifiers.classMapInterpolateV = { name: 'ɵɵclassMapInterpolateV', moduleName: CORE };\nIdentifiers.styleProp = { name: 'ɵɵstyleProp', moduleName: CORE };\nIdentifiers.stylePropInterpolate1 = { name: 'ɵɵstylePropInterpolate1', moduleName: CORE };\nIdentifiers.stylePropInterpolate2 = { name: 'ɵɵstylePropInterpolate2', moduleName: CORE };\nIdentifiers.stylePropInterpolate3 = { name: 'ɵɵstylePropInterpolate3', moduleName: CORE };\nIdentifiers.stylePropInterpolate4 = { name: 'ɵɵstylePropInterpolate4', moduleName: CORE };\nIdentifiers.stylePropInterpolate5 = { name: 'ɵɵstylePropInterpolate5', moduleName: CORE };\nIdentifiers.stylePropInterpolate6 = { name: 'ɵɵstylePropInterpolate6', moduleName: CORE };\nIdentifiers.stylePropInterpolate7 = { name: 'ɵɵstylePropInterpolate7', moduleName: CORE };\nIdentifiers.stylePropInterpolate8 = { name: 'ɵɵstylePropInterpolate8', moduleName: CORE };\nIdentifiers.stylePropInterpolateV = { name: 'ɵɵstylePropInterpolateV', moduleName: CORE };\nIdentifiers.nextContext = { name: 'ɵɵnextContext', moduleName: CORE };\nIdentifiers.resetView = { name: 'ɵɵresetView', moduleName: CORE };\nIdentifiers.templateCreate = { name: 'ɵɵtemplate', moduleName: CORE };\nIdentifiers.text = { name: 'ɵɵtext', moduleName: CORE };\nIdentifiers.enableBindings = { name: 'ɵɵenableBindings', moduleName: CORE };\nIdentifiers.disableBindings = { name: 'ɵɵdisableBindings', moduleName: CORE };\nIdentifiers.getCurrentView = { name: 'ɵɵgetCurrentView', moduleName: CORE };\nIdentifiers.textInterpolate = { name: 'ɵɵtextInterpolate', moduleName: CORE };\nIdentifiers.textInterpolate1 = { name: 'ɵɵtextInterpolate1', moduleName: CORE };\nIdentifiers.textInterpolate2 = { name: 'ɵɵtextInterpolate2', moduleName: CORE };\nIdentifiers.textInterpolate3 = { name: 'ɵɵtextInterpolate3', moduleName: CORE };\nIdentifiers.textInterpolate4 = { name: 'ɵɵtextInterpolate4', moduleName: CORE };\nIdentifiers.textInterpolate5 = { name: 'ɵɵtextInterpolate5', moduleName: CORE };\nIdentifiers.textInterpolate6 = { name: 'ɵɵtextInterpolate6', moduleName: CORE };\nIdentifiers.textInterpolate7 = { name: 'ɵɵtextInterpolate7', moduleName: CORE };\nIdentifiers.textInterpolate8 = { name: 'ɵɵtextInterpolate8', moduleName: CORE };\nIdentifiers.textInterpolateV = { name: 'ɵɵtextInterpolateV', moduleName: CORE };\nIdentifiers.restoreView = { name: 'ɵɵrestoreView', moduleName: CORE };\nIdentifiers.pureFunction0 = { name: 'ɵɵpureFunction0', moduleName: CORE };\nIdentifiers.pureFunction1 = { name: 'ɵɵpureFunction1', moduleName: CORE };\nIdentifiers.pureFunction2 = { name: 'ɵɵpureFunction2', moduleName: CORE };\nIdentifiers.pureFunction3 = { name: 'ɵɵpureFunction3', moduleName: CORE };\nIdentifiers.pureFunction4 = { name: 'ɵɵpureFunction4', moduleName: CORE };\nIdentifiers.pureFunction5 = { name: 'ɵɵpureFunction5', moduleName: CORE };\nIdentifiers.pureFunction6 = { name: 'ɵɵpureFunction6', moduleName: CORE };\nIdentifiers.pureFunction7 = { name: 'ɵɵpureFunction7', moduleName: CORE };\nIdentifiers.pureFunction8 = { name: 'ɵɵpureFunction8', moduleName: CORE };\nIdentifiers.pureFunctionV = { name: 'ɵɵpureFunctionV', moduleName: CORE };\nIdentifiers.pipeBind1 = { name: 'ɵɵpipeBind1', moduleName: CORE };\nIdentifiers.pipeBind2 = { name: 'ɵɵpipeBind2', moduleName: CORE };\nIdentifiers.pipeBind3 = { name: 'ɵɵpipeBind3', moduleName: CORE };\nIdentifiers.pipeBind4 = { name: 'ɵɵpipeBind4', moduleName: CORE };\nIdentifiers.pipeBindV = { name: 'ɵɵpipeBindV', moduleName: CORE };\nIdentifiers.hostProperty = { name: 'ɵɵhostProperty', moduleName: CORE };\nIdentifiers.property = { name: 'ɵɵproperty', moduleName: CORE };\nIdentifiers.propertyInterpolate = { name: 'ɵɵpropertyInterpolate', moduleName: CORE };\nIdentifiers.propertyInterpolate1 = { name: 'ɵɵpropertyInterpolate1', moduleName: CORE };\nIdentifiers.propertyInterpolate2 = { name: 'ɵɵpropertyInterpolate2', moduleName: CORE };\nIdentifiers.propertyInterpolate3 = { name: 'ɵɵpropertyInterpolate3', moduleName: CORE };\nIdentifiers.propertyInterpolate4 = { name: 'ɵɵpropertyInterpolate4', moduleName: CORE };\nIdentifiers.propertyInterpolate5 = { name: 'ɵɵpropertyInterpolate5', moduleName: CORE };\nIdentifiers.propertyInterpolate6 = { name: 'ɵɵpropertyInterpolate6', moduleName: CORE };\nIdentifiers.propertyInterpolate7 = { name: 'ɵɵpropertyInterpolate7', moduleName: CORE };\nIdentifiers.propertyInterpolate8 = { name: 'ɵɵpropertyInterpolate8', moduleName: CORE };\nIdentifiers.propertyInterpolateV = { name: 'ɵɵpropertyInterpolateV', moduleName: CORE };\nIdentifiers.i18n = { name: 'ɵɵi18n', moduleName: CORE };\nIdentifiers.i18nAttributes = { name: 'ɵɵi18nAttributes', moduleName: CORE };\nIdentifiers.i18nExp = { name: 'ɵɵi18nExp', moduleName: CORE };\nIdentifiers.i18nStart = { name: 'ɵɵi18nStart', moduleName: CORE };\nIdentifiers.i18nEnd = { name: 'ɵɵi18nEnd', moduleName: CORE };\nIdentifiers.i18nApply = { name: 'ɵɵi18nApply', moduleName: CORE };\nIdentifiers.i18nPostprocess = { name: 'ɵɵi18nPostprocess', moduleName: CORE };\nIdentifiers.pipe = { name: 'ɵɵpipe', moduleName: CORE };\nIdentifiers.projection = { name: 'ɵɵprojection', moduleName: CORE };\nIdentifiers.projectionDef = { name: 'ɵɵprojectionDef', moduleName: CORE };\nIdentifiers.reference = { name: 'ɵɵreference', moduleName: CORE };\nIdentifiers.inject = { name: 'ɵɵinject', moduleName: CORE };\nIdentifiers.injectAttribute = { name: 'ɵɵinjectAttribute', moduleName: CORE };\nIdentifiers.directiveInject = { name: 'ɵɵdirectiveInject', moduleName: CORE };\nIdentifiers.invalidFactory = { name: 'ɵɵinvalidFactory', moduleName: CORE };\nIdentifiers.invalidFactoryDep = { name: 'ɵɵinvalidFactoryDep', moduleName: CORE };\nIdentifiers.templateRefExtractor = { name: 'ɵɵtemplateRefExtractor', moduleName: CORE };\nIdentifiers.forwardRef = { name: 'forwardRef', moduleName: CORE };\nIdentifiers.resolveForwardRef = { name: 'resolveForwardRef', moduleName: CORE };\nIdentifiers.ɵɵdefineInjectable = { name: 'ɵɵdefineInjectable', moduleName: CORE };\nIdentifiers.declareInjectable = { name: 'ɵɵngDeclareInjectable', moduleName: CORE };\nIdentifiers.InjectableDeclaration = { name: 'ɵɵInjectableDeclaration', moduleName: CORE };\nIdentifiers.resolveWindow = { name: 'ɵɵresolveWindow', moduleName: CORE };\nIdentifiers.resolveDocument = { name: 'ɵɵresolveDocument', moduleName: CORE };\nIdentifiers.resolveBody = { name: 'ɵɵresolveBody', moduleName: CORE };\nIdentifiers.defineComponent = { name: 'ɵɵdefineComponent', moduleName: CORE };\nIdentifiers.declareComponent = { name: 'ɵɵngDeclareComponent', moduleName: CORE };\nIdentifiers.setComponentScope = { name: 'ɵɵsetComponentScope', moduleName: CORE };\nIdentifiers.ChangeDetectionStrategy = {\n name: 'ChangeDetectionStrategy',\n moduleName: CORE,\n};\nIdentifiers.ViewEncapsulation = {\n name: 'ViewEncapsulation',\n moduleName: CORE,\n};\nIdentifiers.ComponentDeclaration = {\n name: 'ɵɵComponentDeclaration',\n moduleName: CORE,\n};\nIdentifiers.FactoryDeclaration = {\n name: 'ɵɵFactoryDeclaration',\n moduleName: CORE,\n};\nIdentifiers.declareFactory = { name: 'ɵɵngDeclareFactory', moduleName: CORE };\nIdentifiers.FactoryTarget = { name: 'ɵɵFactoryTarget', moduleName: CORE };\nIdentifiers.defineDirective = { name: 'ɵɵdefineDirective', moduleName: CORE };\nIdentifiers.declareDirective = { name: 'ɵɵngDeclareDirective', moduleName: CORE };\nIdentifiers.DirectiveDeclaration = {\n name: 'ɵɵDirectiveDeclaration',\n moduleName: CORE,\n};\nIdentifiers.InjectorDef = { name: 'ɵɵInjectorDef', moduleName: CORE };\nIdentifiers.InjectorDeclaration = { name: 'ɵɵInjectorDeclaration', moduleName: CORE };\nIdentifiers.defineInjector = { name: 'ɵɵdefineInjector', moduleName: CORE };\nIdentifiers.declareInjector = { name: 'ɵɵngDeclareInjector', moduleName: CORE };\nIdentifiers.NgModuleDeclaration = {\n name: 'ɵɵNgModuleDeclaration',\n moduleName: CORE,\n};\nIdentifiers.ModuleWithProviders = {\n name: 'ModuleWithProviders',\n moduleName: CORE,\n};\nIdentifiers.defineNgModule = { name: 'ɵɵdefineNgModule', moduleName: CORE };\nIdentifiers.declareNgModule = { name: 'ɵɵngDeclareNgModule', moduleName: CORE };\nIdentifiers.setNgModuleScope = { name: 'ɵɵsetNgModuleScope', moduleName: CORE };\nIdentifiers.registerNgModuleType = { name: 'ɵɵregisterNgModuleType', moduleName: CORE };\nIdentifiers.PipeDeclaration = { name: 'ɵɵPipeDeclaration', moduleName: CORE };\nIdentifiers.definePipe = { name: 'ɵɵdefinePipe', moduleName: CORE };\nIdentifiers.declarePipe = { name: 'ɵɵngDeclarePipe', moduleName: CORE };\nIdentifiers.declareClassMetadata = { name: 'ɵɵngDeclareClassMetadata', moduleName: CORE };\nIdentifiers.setClassMetadata = { name: 'ɵsetClassMetadata', moduleName: CORE };\nIdentifiers.queryRefresh = { name: 'ɵɵqueryRefresh', moduleName: CORE };\nIdentifiers.viewQuery = { name: 'ɵɵviewQuery', moduleName: CORE };\nIdentifiers.loadQuery = { name: 'ɵɵloadQuery', moduleName: CORE };\nIdentifiers.contentQuery = { name: 'ɵɵcontentQuery', moduleName: CORE };\nIdentifiers.NgOnChangesFeature = { name: 'ɵɵNgOnChangesFeature', moduleName: CORE };\nIdentifiers.InheritDefinitionFeature = { name: 'ɵɵInheritDefinitionFeature', moduleName: CORE };\nIdentifiers.CopyDefinitionFeature = { name: 'ɵɵCopyDefinitionFeature', moduleName: CORE };\nIdentifiers.StandaloneFeature = { name: 'ɵɵStandaloneFeature', moduleName: CORE };\nIdentifiers.ProvidersFeature = { name: 'ɵɵProvidersFeature', moduleName: CORE };\nIdentifiers.listener = { name: 'ɵɵlistener', moduleName: CORE };\nIdentifiers.getInheritedFactory = {\n name: 'ɵɵgetInheritedFactory',\n moduleName: CORE,\n};\n// sanitization-related functions\nIdentifiers.sanitizeHtml = { name: 'ɵɵsanitizeHtml', moduleName: CORE };\nIdentifiers.sanitizeStyle = { name: 'ɵɵsanitizeStyle', moduleName: CORE };\nIdentifiers.sanitizeResourceUrl = { name: 'ɵɵsanitizeResourceUrl', moduleName: CORE };\nIdentifiers.sanitizeScript = { name: 'ɵɵsanitizeScript', moduleName: CORE };\nIdentifiers.sanitizeUrl = { name: 'ɵɵsanitizeUrl', moduleName: CORE };\nIdentifiers.sanitizeUrlOrResourceUrl = { name: 'ɵɵsanitizeUrlOrResourceUrl', moduleName: CORE };\nIdentifiers.trustConstantHtml = { name: 'ɵɵtrustConstantHtml', moduleName: CORE };\nIdentifiers.trustConstantResourceUrl = { name: 'ɵɵtrustConstantResourceUrl', moduleName: CORE };\nIdentifiers.validateIframeAttribute = { name: 'ɵɵvalidateIframeAttribute', moduleName: CORE };\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit\nconst VERSION$1 = 3;\nconst JS_B64_PREFIX = '# sourceMappingURL=data:application/json;base64,';\nclass SourceMapGenerator {\n constructor(file = null) {\n this.file = file;\n this.sourcesContent = new Map();\n this.lines = [];\n this.lastCol0 = 0;\n this.hasMappings = false;\n }\n // The content is `null` when the content is expected to be loaded using the URL\n addSource(url, content = null) {\n if (!this.sourcesContent.has(url)) {\n this.sourcesContent.set(url, content);\n }\n return this;\n }\n addLine() {\n this.lines.push([]);\n this.lastCol0 = 0;\n return this;\n }\n addMapping(col0, sourceUrl, sourceLine0, sourceCol0) {\n if (!this.currentLine) {\n throw new Error(`A line must be added before mappings can be added`);\n }\n if (sourceUrl != null && !this.sourcesContent.has(sourceUrl)) {\n throw new Error(`Unknown source file \"${sourceUrl}\"`);\n }\n if (col0 == null) {\n throw new Error(`The column in the generated code must be provided`);\n }\n if (col0 < this.lastCol0) {\n throw new Error(`Mapping should be added in output order`);\n }\n if (sourceUrl && (sourceLine0 == null || sourceCol0 == null)) {\n throw new Error(`The source location must be provided when a source url is provided`);\n }\n this.hasMappings = true;\n this.lastCol0 = col0;\n this.currentLine.push({ col0, sourceUrl, sourceLine0, sourceCol0 });\n return this;\n }\n /**\n * @internal strip this from published d.ts files due to\n * https://github.com/microsoft/TypeScript/issues/36216\n */\n get currentLine() {\n return this.lines.slice(-1)[0];\n }\n toJSON() {\n if (!this.hasMappings) {\n return null;\n }\n const sourcesIndex = new Map();\n const sources = [];\n const sourcesContent = [];\n Array.from(this.sourcesContent.keys()).forEach((url, i) => {\n sourcesIndex.set(url, i);\n sources.push(url);\n sourcesContent.push(this.sourcesContent.get(url) || null);\n });\n let mappings = '';\n let lastCol0 = 0;\n let lastSourceIndex = 0;\n let lastSourceLine0 = 0;\n let lastSourceCol0 = 0;\n this.lines.forEach(segments => {\n lastCol0 = 0;\n mappings += segments\n .map(segment => {\n // zero-based starting column of the line in the generated code\n let segAsStr = toBase64VLQ(segment.col0 - lastCol0);\n lastCol0 = segment.col0;\n if (segment.sourceUrl != null) {\n // zero-based index into the “sources” list\n segAsStr +=\n toBase64VLQ(sourcesIndex.get(segment.sourceUrl) - lastSourceIndex);\n lastSourceIndex = sourcesIndex.get(segment.sourceUrl);\n // the zero-based starting line in the original source\n segAsStr += toBase64VLQ(segment.sourceLine0 - lastSourceLine0);\n lastSourceLine0 = segment.sourceLine0;\n // the zero-based starting column in the original source\n segAsStr += toBase64VLQ(segment.sourceCol0 - lastSourceCol0);\n lastSourceCol0 = segment.sourceCol0;\n }\n return segAsStr;\n })\n .join(',');\n mappings += ';';\n });\n mappings = mappings.slice(0, -1);\n return {\n 'file': this.file || '',\n 'version': VERSION$1,\n 'sourceRoot': '',\n 'sources': sources,\n 'sourcesContent': sourcesContent,\n 'mappings': mappings,\n };\n }\n toJsComment() {\n return this.hasMappings ? '//' + JS_B64_PREFIX + toBase64String(JSON.stringify(this, null, 0)) :\n '';\n }\n}\nfunction toBase64String(value) {\n let b64 = '';\n const encoded = utf8Encode(value);\n for (let i = 0; i < encoded.length;) {\n const i1 = encoded[i++];\n const i2 = i < encoded.length ? encoded[i++] : null;\n const i3 = i < encoded.length ? encoded[i++] : null;\n b64 += toBase64Digit(i1 >> 2);\n b64 += toBase64Digit(((i1 & 3) << 4) | (i2 === null ? 0 : i2 >> 4));\n b64 += i2 === null ? '=' : toBase64Digit(((i2 & 15) << 2) | (i3 === null ? 0 : i3 >> 6));\n b64 += i2 === null || i3 === null ? '=' : toBase64Digit(i3 & 63);\n }\n return b64;\n}\nfunction toBase64VLQ(value) {\n value = value < 0 ? ((-value) << 1) + 1 : value << 1;\n let out = '';\n do {\n let digit = value & 31;\n value = value >> 5;\n if (value > 0) {\n digit = digit | 32;\n }\n out += toBase64Digit(digit);\n } while (value > 0);\n return out;\n}\nconst B64_DIGITS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\nfunction toBase64Digit(value) {\n if (value < 0 || value >= 64) {\n throw new Error(`Can only encode value in the range [0, 63]`);\n }\n return B64_DIGITS[value];\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst _SINGLE_QUOTE_ESCAPE_STRING_RE = /'|\\\\|\\n|\\r|\\$/g;\nconst _LEGAL_IDENTIFIER_RE = /^[$A-Z_][0-9A-Z_$]*$/i;\nconst _INDENT_WITH = ' ';\nclass _EmittedLine {\n constructor(indent) {\n this.indent = indent;\n this.partsLength = 0;\n this.parts = [];\n this.srcSpans = [];\n }\n}\nclass EmitterVisitorContext {\n constructor(_indent) {\n this._indent = _indent;\n this._lines = [new _EmittedLine(_indent)];\n }\n static createRoot() {\n return new EmitterVisitorContext(0);\n }\n /**\n * @internal strip this from published d.ts files due to\n * https://github.com/microsoft/TypeScript/issues/36216\n */\n get _currentLine() {\n return this._lines[this._lines.length - 1];\n }\n println(from, lastPart = '') {\n this.print(from || null, lastPart, true);\n }\n lineIsEmpty() {\n return this._currentLine.parts.length === 0;\n }\n lineLength() {\n return this._currentLine.indent * _INDENT_WITH.length + this._currentLine.partsLength;\n }\n print(from, part, newLine = false) {\n if (part.length > 0) {\n this._currentLine.parts.push(part);\n this._currentLine.partsLength += part.length;\n this._currentLine.srcSpans.push(from && from.sourceSpan || null);\n }\n if (newLine) {\n this._lines.push(new _EmittedLine(this._indent));\n }\n }\n removeEmptyLastLine() {\n if (this.lineIsEmpty()) {\n this._lines.pop();\n }\n }\n incIndent() {\n this._indent++;\n if (this.lineIsEmpty()) {\n this._currentLine.indent = this._indent;\n }\n }\n decIndent() {\n this._indent--;\n if (this.lineIsEmpty()) {\n this._currentLine.indent = this._indent;\n }\n }\n toSource() {\n return this.sourceLines\n .map(l => l.parts.length > 0 ? _createIndent(l.indent) + l.parts.join('') : '')\n .join('\\n');\n }\n toSourceMapGenerator(genFilePath, startsAtLine = 0) {\n const map = new SourceMapGenerator(genFilePath);\n let firstOffsetMapped = false;\n const mapFirstOffsetIfNeeded = () => {\n if (!firstOffsetMapped) {\n // Add a single space so that tools won't try to load the file from disk.\n // Note: We are using virtual urls like `ng:///`, so we have to\n // provide a content here.\n map.addSource(genFilePath, ' ').addMapping(0, genFilePath, 0, 0);\n firstOffsetMapped = true;\n }\n };\n for (let i = 0; i < startsAtLine; i++) {\n map.addLine();\n mapFirstOffsetIfNeeded();\n }\n this.sourceLines.forEach((line, lineIdx) => {\n map.addLine();\n const spans = line.srcSpans;\n const parts = line.parts;\n let col0 = line.indent * _INDENT_WITH.length;\n let spanIdx = 0;\n // skip leading parts without source spans\n while (spanIdx < spans.length && !spans[spanIdx]) {\n col0 += parts[spanIdx].length;\n spanIdx++;\n }\n if (spanIdx < spans.length && lineIdx === 0 && col0 === 0) {\n firstOffsetMapped = true;\n }\n else {\n mapFirstOffsetIfNeeded();\n }\n while (spanIdx < spans.length) {\n const span = spans[spanIdx];\n const source = span.start.file;\n const sourceLine = span.start.line;\n const sourceCol = span.start.col;\n map.addSource(source.url, source.content)\n .addMapping(col0, source.url, sourceLine, sourceCol);\n col0 += parts[spanIdx].length;\n spanIdx++;\n // assign parts without span or the same span to the previous segment\n while (spanIdx < spans.length && (span === spans[spanIdx] || !spans[spanIdx])) {\n col0 += parts[spanIdx].length;\n spanIdx++;\n }\n }\n });\n return map;\n }\n spanOf(line, column) {\n const emittedLine = this._lines[line];\n if (emittedLine) {\n let columnsLeft = column - _createIndent(emittedLine.indent).length;\n for (let partIndex = 0; partIndex < emittedLine.parts.length; partIndex++) {\n const part = emittedLine.parts[partIndex];\n if (part.length > columnsLeft) {\n return emittedLine.srcSpans[partIndex];\n }\n columnsLeft -= part.length;\n }\n }\n return null;\n }\n /**\n * @internal strip this from published d.ts files due to\n * https://github.com/microsoft/TypeScript/issues/36216\n */\n get sourceLines() {\n if (this._lines.length && this._lines[this._lines.length - 1].parts.length === 0) {\n return this._lines.slice(0, -1);\n }\n return this._lines;\n }\n}\nclass AbstractEmitterVisitor {\n constructor(_escapeDollarInStrings) {\n this._escapeDollarInStrings = _escapeDollarInStrings;\n }\n printLeadingComments(stmt, ctx) {\n if (stmt.leadingComments === undefined) {\n return;\n }\n for (const comment of stmt.leadingComments) {\n if (comment instanceof JSDocComment) {\n ctx.print(stmt, `/*${comment.toString()}*/`, comment.trailingNewline);\n }\n else {\n if (comment.multiline) {\n ctx.print(stmt, `/* ${comment.text} */`, comment.trailingNewline);\n }\n else {\n comment.text.split('\\n').forEach((line) => {\n ctx.println(stmt, `// ${line}`);\n });\n }\n }\n }\n }\n visitExpressionStmt(stmt, ctx) {\n this.printLeadingComments(stmt, ctx);\n stmt.expr.visitExpression(this, ctx);\n ctx.println(stmt, ';');\n return null;\n }\n visitReturnStmt(stmt, ctx) {\n this.printLeadingComments(stmt, ctx);\n ctx.print(stmt, `return `);\n stmt.value.visitExpression(this, ctx);\n ctx.println(stmt, ';');\n return null;\n }\n visitIfStmt(stmt, ctx) {\n this.printLeadingComments(stmt, ctx);\n ctx.print(stmt, `if (`);\n stmt.condition.visitExpression(this, ctx);\n ctx.print(stmt, `) {`);\n const hasElseCase = stmt.falseCase != null && stmt.falseCase.length > 0;\n if (stmt.trueCase.length <= 1 && !hasElseCase) {\n ctx.print(stmt, ` `);\n this.visitAllStatements(stmt.trueCase, ctx);\n ctx.removeEmptyLastLine();\n ctx.print(stmt, ` `);\n }\n else {\n ctx.println();\n ctx.incIndent();\n this.visitAllStatements(stmt.trueCase, ctx);\n ctx.decIndent();\n if (hasElseCase) {\n ctx.println(stmt, `} else {`);\n ctx.incIndent();\n this.visitAllStatements(stmt.falseCase, ctx);\n ctx.decIndent();\n }\n }\n ctx.println(stmt, `}`);\n return null;\n }\n visitWriteVarExpr(expr, ctx) {\n const lineWasEmpty = ctx.lineIsEmpty();\n if (!lineWasEmpty) {\n ctx.print(expr, '(');\n }\n ctx.print(expr, `${expr.name} = `);\n expr.value.visitExpression(this, ctx);\n if (!lineWasEmpty) {\n ctx.print(expr, ')');\n }\n return null;\n }\n visitWriteKeyExpr(expr, ctx) {\n const lineWasEmpty = ctx.lineIsEmpty();\n if (!lineWasEmpty) {\n ctx.print(expr, '(');\n }\n expr.receiver.visitExpression(this, ctx);\n ctx.print(expr, `[`);\n expr.index.visitExpression(this, ctx);\n ctx.print(expr, `] = `);\n expr.value.visitExpression(this, ctx);\n if (!lineWasEmpty) {\n ctx.print(expr, ')');\n }\n return null;\n }\n visitWritePropExpr(expr, ctx) {\n const lineWasEmpty = ctx.lineIsEmpty();\n if (!lineWasEmpty) {\n ctx.print(expr, '(');\n }\n expr.receiver.visitExpression(this, ctx);\n ctx.print(expr, `.${expr.name} = `);\n expr.value.visitExpression(this, ctx);\n if (!lineWasEmpty) {\n ctx.print(expr, ')');\n }\n return null;\n }\n visitInvokeFunctionExpr(expr, ctx) {\n expr.fn.visitExpression(this, ctx);\n ctx.print(expr, `(`);\n this.visitAllExpressions(expr.args, ctx, ',');\n ctx.print(expr, `)`);\n return null;\n }\n visitTaggedTemplateExpr(expr, ctx) {\n expr.tag.visitExpression(this, ctx);\n ctx.print(expr, '`' + expr.template.elements[0].rawText);\n for (let i = 1; i < expr.template.elements.length; i++) {\n ctx.print(expr, '${');\n expr.template.expressions[i - 1].visitExpression(this, ctx);\n ctx.print(expr, `}${expr.template.elements[i].rawText}`);\n }\n ctx.print(expr, '`');\n return null;\n }\n visitWrappedNodeExpr(ast, ctx) {\n throw new Error('Abstract emitter cannot visit WrappedNodeExpr.');\n }\n visitTypeofExpr(expr, ctx) {\n ctx.print(expr, 'typeof ');\n expr.expr.visitExpression(this, ctx);\n }\n visitReadVarExpr(ast, ctx) {\n ctx.print(ast, ast.name);\n return null;\n }\n visitInstantiateExpr(ast, ctx) {\n ctx.print(ast, `new `);\n ast.classExpr.visitExpression(this, ctx);\n ctx.print(ast, `(`);\n this.visitAllExpressions(ast.args, ctx, ',');\n ctx.print(ast, `)`);\n return null;\n }\n visitLiteralExpr(ast, ctx) {\n const value = ast.value;\n if (typeof value === 'string') {\n ctx.print(ast, escapeIdentifier(value, this._escapeDollarInStrings));\n }\n else {\n ctx.print(ast, `${value}`);\n }\n return null;\n }\n visitLocalizedString(ast, ctx) {\n const head = ast.serializeI18nHead();\n ctx.print(ast, '$localize `' + head.raw);\n for (let i = 1; i < ast.messageParts.length; i++) {\n ctx.print(ast, '${');\n ast.expressions[i - 1].visitExpression(this, ctx);\n ctx.print(ast, `}${ast.serializeI18nTemplatePart(i).raw}`);\n }\n ctx.print(ast, '`');\n return null;\n }\n visitConditionalExpr(ast, ctx) {\n ctx.print(ast, `(`);\n ast.condition.visitExpression(this, ctx);\n ctx.print(ast, '? ');\n ast.trueCase.visitExpression(this, ctx);\n ctx.print(ast, ': ');\n ast.falseCase.visitExpression(this, ctx);\n ctx.print(ast, `)`);\n return null;\n }\n visitNotExpr(ast, ctx) {\n ctx.print(ast, '!');\n ast.condition.visitExpression(this, ctx);\n return null;\n }\n visitUnaryOperatorExpr(ast, ctx) {\n let opStr;\n switch (ast.operator) {\n case UnaryOperator.Plus:\n opStr = '+';\n break;\n case UnaryOperator.Minus:\n opStr = '-';\n break;\n default:\n throw new Error(`Unknown operator ${ast.operator}`);\n }\n if (ast.parens)\n ctx.print(ast, `(`);\n ctx.print(ast, opStr);\n ast.expr.visitExpression(this, ctx);\n if (ast.parens)\n ctx.print(ast, `)`);\n return null;\n }\n visitBinaryOperatorExpr(ast, ctx) {\n let opStr;\n switch (ast.operator) {\n case BinaryOperator.Equals:\n opStr = '==';\n break;\n case BinaryOperator.Identical:\n opStr = '===';\n break;\n case BinaryOperator.NotEquals:\n opStr = '!=';\n break;\n case BinaryOperator.NotIdentical:\n opStr = '!==';\n break;\n case BinaryOperator.And:\n opStr = '&&';\n break;\n case BinaryOperator.BitwiseAnd:\n opStr = '&';\n break;\n case BinaryOperator.Or:\n opStr = '||';\n break;\n case BinaryOperator.Plus:\n opStr = '+';\n break;\n case BinaryOperator.Minus:\n opStr = '-';\n break;\n case BinaryOperator.Divide:\n opStr = '/';\n break;\n case BinaryOperator.Multiply:\n opStr = '*';\n break;\n case BinaryOperator.Modulo:\n opStr = '%';\n break;\n case BinaryOperator.Lower:\n opStr = '<';\n break;\n case BinaryOperator.LowerEquals:\n opStr = '<=';\n break;\n case BinaryOperator.Bigger:\n opStr = '>';\n break;\n case BinaryOperator.BiggerEquals:\n opStr = '>=';\n break;\n case BinaryOperator.NullishCoalesce:\n opStr = '??';\n break;\n default:\n throw new Error(`Unknown operator ${ast.operator}`);\n }\n if (ast.parens)\n ctx.print(ast, `(`);\n ast.lhs.visitExpression(this, ctx);\n ctx.print(ast, ` ${opStr} `);\n ast.rhs.visitExpression(this, ctx);\n if (ast.parens)\n ctx.print(ast, `)`);\n return null;\n }\n visitReadPropExpr(ast, ctx) {\n ast.receiver.visitExpression(this, ctx);\n ctx.print(ast, `.`);\n ctx.print(ast, ast.name);\n return null;\n }\n visitReadKeyExpr(ast, ctx) {\n ast.receiver.visitExpression(this, ctx);\n ctx.print(ast, `[`);\n ast.index.visitExpression(this, ctx);\n ctx.print(ast, `]`);\n return null;\n }\n visitLiteralArrayExpr(ast, ctx) {\n ctx.print(ast, `[`);\n this.visitAllExpressions(ast.entries, ctx, ',');\n ctx.print(ast, `]`);\n return null;\n }\n visitLiteralMapExpr(ast, ctx) {\n ctx.print(ast, `{`);\n this.visitAllObjects(entry => {\n ctx.print(ast, `${escapeIdentifier(entry.key, this._escapeDollarInStrings, entry.quoted)}:`);\n entry.value.visitExpression(this, ctx);\n }, ast.entries, ctx, ',');\n ctx.print(ast, `}`);\n return null;\n }\n visitCommaExpr(ast, ctx) {\n ctx.print(ast, '(');\n this.visitAllExpressions(ast.parts, ctx, ',');\n ctx.print(ast, ')');\n return null;\n }\n visitAllExpressions(expressions, ctx, separator) {\n this.visitAllObjects(expr => expr.visitExpression(this, ctx), expressions, ctx, separator);\n }\n visitAllObjects(handler, expressions, ctx, separator) {\n let incrementedIndent = false;\n for (let i = 0; i < expressions.length; i++) {\n if (i > 0) {\n if (ctx.lineLength() > 80) {\n ctx.print(null, separator, true);\n if (!incrementedIndent) {\n // continuation are marked with double indent.\n ctx.incIndent();\n ctx.incIndent();\n incrementedIndent = true;\n }\n }\n else {\n ctx.print(null, separator, false);\n }\n }\n handler(expressions[i]);\n }\n if (incrementedIndent) {\n // continuation are marked with double indent.\n ctx.decIndent();\n ctx.decIndent();\n }\n }\n visitAllStatements(statements, ctx) {\n statements.forEach((stmt) => stmt.visitStatement(this, ctx));\n }\n}\nfunction escapeIdentifier(input, escapeDollar, alwaysQuote = true) {\n if (input == null) {\n return null;\n }\n const body = input.replace(_SINGLE_QUOTE_ESCAPE_STRING_RE, (...match) => {\n if (match[0] == '$') {\n return escapeDollar ? '\\\\$' : '$';\n }\n else if (match[0] == '\\n') {\n return '\\\\n';\n }\n else if (match[0] == '\\r') {\n return '\\\\r';\n }\n else {\n return `\\\\${match[0]}`;\n }\n });\n const requiresQuotes = alwaysQuote || !_LEGAL_IDENTIFIER_RE.test(body);\n return requiresQuotes ? `'${body}'` : body;\n}\nfunction _createIndent(count) {\n let res = '';\n for (let i = 0; i < count; i++) {\n res += _INDENT_WITH;\n }\n return res;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction typeWithParameters(type, numParams) {\n if (numParams === 0) {\n return expressionType(type);\n }\n const params = [];\n for (let i = 0; i < numParams; i++) {\n params.push(DYNAMIC_TYPE);\n }\n return expressionType(type, undefined, params);\n}\nconst ANIMATE_SYMBOL_PREFIX = '@';\nfunction prepareSyntheticPropertyName(name) {\n return `${ANIMATE_SYMBOL_PREFIX}${name}`;\n}\nfunction prepareSyntheticListenerName(name, phase) {\n return `${ANIMATE_SYMBOL_PREFIX}${name}.${phase}`;\n}\nfunction getSafePropertyAccessString(accessor, name) {\n const escapedName = escapeIdentifier(name, false, false);\n return escapedName !== name ? `${accessor}[${escapedName}]` : `${accessor}.${name}`;\n}\nfunction prepareSyntheticListenerFunctionName(name, phase) {\n return `animation_${name}_${phase}`;\n}\nfunction jitOnlyGuardedExpression(expr) {\n return guardedExpression('ngJitMode', expr);\n}\nfunction devOnlyGuardedExpression(expr) {\n return guardedExpression('ngDevMode', expr);\n}\nfunction guardedExpression(guard, expr) {\n const guardExpr = new ExternalExpr({ name: guard, moduleName: null });\n const guardNotDefined = new BinaryOperatorExpr(BinaryOperator.Identical, new TypeofExpr(guardExpr), literal('undefined'));\n const guardUndefinedOrTrue = new BinaryOperatorExpr(BinaryOperator.Or, guardNotDefined, guardExpr, /* type */ undefined, \n /* sourceSpan */ undefined, true);\n return new BinaryOperatorExpr(BinaryOperator.And, guardUndefinedOrTrue, expr);\n}\nfunction wrapReference(value) {\n const wrapped = new WrappedNodeExpr(value);\n return { value: wrapped, type: wrapped };\n}\nfunction refsToArray(refs, shouldForwardDeclare) {\n const values = literalArr(refs.map(ref => ref.value));\n return shouldForwardDeclare ? fn([], [new ReturnStatement(values)]) : values;\n}\nfunction createMayBeForwardRefExpression(expression, forwardRef) {\n return { expression, forwardRef };\n}\n/**\n * Convert a `MaybeForwardRefExpression` to an `Expression`, possibly wrapping its expression in a\n * `forwardRef()` call.\n *\n * If `MaybeForwardRefExpression.forwardRef` is `ForwardRefHandling.Unwrapped` then the expression\n * was originally wrapped in a `forwardRef()` call to prevent the value from being eagerly evaluated\n * in the code.\n *\n * See `packages/compiler-cli/src/ngtsc/annotations/src/injectable.ts` and\n * `packages/compiler/src/jit_compiler_facade.ts` for more information.\n */\nfunction convertFromMaybeForwardRefExpression({ expression, forwardRef }) {\n switch (forwardRef) {\n case 0 /* ForwardRefHandling.None */:\n case 1 /* ForwardRefHandling.Wrapped */:\n return expression;\n case 2 /* ForwardRefHandling.Unwrapped */:\n return generateForwardRef(expression);\n }\n}\n/**\n * Generate an expression that has the given `expr` wrapped in the following form:\n *\n * ```\n * forwardRef(() => expr)\n * ```\n */\nfunction generateForwardRef(expr) {\n return importExpr(Identifiers.forwardRef).callFn([fn([], [new ReturnStatement(expr)])]);\n}\n\nvar R3FactoryDelegateType;\n(function (R3FactoryDelegateType) {\n R3FactoryDelegateType[R3FactoryDelegateType[\"Class\"] = 0] = \"Class\";\n R3FactoryDelegateType[R3FactoryDelegateType[\"Function\"] = 1] = \"Function\";\n})(R3FactoryDelegateType || (R3FactoryDelegateType = {}));\nvar FactoryTarget$1;\n(function (FactoryTarget) {\n FactoryTarget[FactoryTarget[\"Directive\"] = 0] = \"Directive\";\n FactoryTarget[FactoryTarget[\"Component\"] = 1] = \"Component\";\n FactoryTarget[FactoryTarget[\"Injectable\"] = 2] = \"Injectable\";\n FactoryTarget[FactoryTarget[\"Pipe\"] = 3] = \"Pipe\";\n FactoryTarget[FactoryTarget[\"NgModule\"] = 4] = \"NgModule\";\n})(FactoryTarget$1 || (FactoryTarget$1 = {}));\n/**\n * Construct a factory function expression for the given `R3FactoryMetadata`.\n */\nfunction compileFactoryFunction(meta) {\n const t = variable('t');\n let baseFactoryVar = null;\n // The type to instantiate via constructor invocation. If there is no delegated factory, meaning\n // this type is always created by constructor invocation, then this is the type-to-create\n // parameter provided by the user (t) if specified, or the current type if not. If there is a\n // delegated factory (which is used to create the current type) then this is only the type-to-\n // create parameter (t).\n const typeForCtor = !isDelegatedFactoryMetadata(meta) ?\n new BinaryOperatorExpr(BinaryOperator.Or, t, meta.internalType) :\n t;\n let ctorExpr = null;\n if (meta.deps !== null) {\n // There is a constructor (either explicitly or implicitly defined).\n if (meta.deps !== 'invalid') {\n ctorExpr = new InstantiateExpr(typeForCtor, injectDependencies(meta.deps, meta.target));\n }\n }\n else {\n // There is no constructor, use the base class' factory to construct typeForCtor.\n baseFactoryVar = variable(`ɵ${meta.name}_BaseFactory`);\n ctorExpr = baseFactoryVar.callFn([typeForCtor]);\n }\n const body = [];\n let retExpr = null;\n function makeConditionalFactory(nonCtorExpr) {\n const r = variable('r');\n body.push(r.set(NULL_EXPR).toDeclStmt());\n const ctorStmt = ctorExpr !== null ? r.set(ctorExpr).toStmt() :\n importExpr(Identifiers.invalidFactory).callFn([]).toStmt();\n body.push(ifStmt(t, [ctorStmt], [r.set(nonCtorExpr).toStmt()]));\n return r;\n }\n if (isDelegatedFactoryMetadata(meta)) {\n // This type is created with a delegated factory. If a type parameter is not specified, call\n // the factory instead.\n const delegateArgs = injectDependencies(meta.delegateDeps, meta.target);\n // Either call `new delegate(...)` or `delegate(...)` depending on meta.delegateType.\n const factoryExpr = new (meta.delegateType === R3FactoryDelegateType.Class ?\n InstantiateExpr :\n InvokeFunctionExpr)(meta.delegate, delegateArgs);\n retExpr = makeConditionalFactory(factoryExpr);\n }\n else if (isExpressionFactoryMetadata(meta)) {\n // TODO(alxhub): decide whether to lower the value here or in the caller\n retExpr = makeConditionalFactory(meta.expression);\n }\n else {\n retExpr = ctorExpr;\n }\n if (retExpr === null) {\n // The expression cannot be formed so render an `ɵɵinvalidFactory()` call.\n body.push(importExpr(Identifiers.invalidFactory).callFn([]).toStmt());\n }\n else if (baseFactoryVar !== null) {\n // This factory uses a base factory, so call `ɵɵgetInheritedFactory()` to compute it.\n const getInheritedFactoryCall = importExpr(Identifiers.getInheritedFactory).callFn([meta.internalType]);\n // Memoize the base factoryFn: `baseFactory || (baseFactory = ɵɵgetInheritedFactory(...))`\n const baseFactory = new BinaryOperatorExpr(BinaryOperator.Or, baseFactoryVar, baseFactoryVar.set(getInheritedFactoryCall));\n body.push(new ReturnStatement(baseFactory.callFn([typeForCtor])));\n }\n else {\n // This is straightforward factory, just return it.\n body.push(new ReturnStatement(retExpr));\n }\n let factoryFn = fn([new FnParam('t', DYNAMIC_TYPE)], body, INFERRED_TYPE, undefined, `${meta.name}_Factory`);\n if (baseFactoryVar !== null) {\n // There is a base factory variable so wrap its declaration along with the factory function into\n // an IIFE.\n factoryFn = fn([], [\n new DeclareVarStmt(baseFactoryVar.name), new ReturnStatement(factoryFn)\n ]).callFn([], /* sourceSpan */ undefined, /* pure */ true);\n }\n return {\n expression: factoryFn,\n statements: [],\n type: createFactoryType(meta),\n };\n}\nfunction createFactoryType(meta) {\n const ctorDepsType = meta.deps !== null && meta.deps !== 'invalid' ? createCtorDepsType(meta.deps) : NONE_TYPE;\n return expressionType(importExpr(Identifiers.FactoryDeclaration, [typeWithParameters(meta.type.type, meta.typeArgumentCount), ctorDepsType]));\n}\nfunction injectDependencies(deps, target) {\n return deps.map((dep, index) => compileInjectDependency(dep, target, index));\n}\nfunction compileInjectDependency(dep, target, index) {\n // Interpret the dependency according to its resolved type.\n if (dep.token === null) {\n return importExpr(Identifiers.invalidFactoryDep).callFn([literal(index)]);\n }\n else if (dep.attributeNameType === null) {\n // Build up the injection flags according to the metadata.\n const flags = 0 /* InjectFlags.Default */ | (dep.self ? 2 /* InjectFlags.Self */ : 0) |\n (dep.skipSelf ? 4 /* InjectFlags.SkipSelf */ : 0) | (dep.host ? 1 /* InjectFlags.Host */ : 0) |\n (dep.optional ? 8 /* InjectFlags.Optional */ : 0) |\n (target === FactoryTarget$1.Pipe ? 16 /* InjectFlags.ForPipe */ : 0);\n // If this dependency is optional or otherwise has non-default flags, then additional\n // parameters describing how to inject the dependency must be passed to the inject function\n // that's being used.\n let flagsParam = (flags !== 0 /* InjectFlags.Default */ || dep.optional) ? literal(flags) : null;\n // Build up the arguments to the injectFn call.\n const injectArgs = [dep.token];\n if (flagsParam) {\n injectArgs.push(flagsParam);\n }\n const injectFn = getInjectFn(target);\n return importExpr(injectFn).callFn(injectArgs);\n }\n else {\n // The `dep.attributeTypeName` value is defined, which indicates that this is an `@Attribute()`\n // type dependency. For the generated JS we still want to use the `dep.token` value in case the\n // name given for the attribute is not a string literal. For example given `@Attribute(foo())`,\n // we want to generate `ɵɵinjectAttribute(foo())`.\n //\n // The `dep.attributeTypeName` is only actually used (in `createCtorDepType()`) to generate\n // typings.\n return importExpr(Identifiers.injectAttribute).callFn([dep.token]);\n }\n}\nfunction createCtorDepsType(deps) {\n let hasTypes = false;\n const attributeTypes = deps.map(dep => {\n const type = createCtorDepType(dep);\n if (type !== null) {\n hasTypes = true;\n return type;\n }\n else {\n return literal(null);\n }\n });\n if (hasTypes) {\n return expressionType(literalArr(attributeTypes));\n }\n else {\n return NONE_TYPE;\n }\n}\nfunction createCtorDepType(dep) {\n const entries = [];\n if (dep.attributeNameType !== null) {\n entries.push({ key: 'attribute', value: dep.attributeNameType, quoted: false });\n }\n if (dep.optional) {\n entries.push({ key: 'optional', value: literal(true), quoted: false });\n }\n if (dep.host) {\n entries.push({ key: 'host', value: literal(true), quoted: false });\n }\n if (dep.self) {\n entries.push({ key: 'self', value: literal(true), quoted: false });\n }\n if (dep.skipSelf) {\n entries.push({ key: 'skipSelf', value: literal(true), quoted: false });\n }\n return entries.length > 0 ? literalMap(entries) : null;\n}\nfunction isDelegatedFactoryMetadata(meta) {\n return meta.delegateType !== undefined;\n}\nfunction isExpressionFactoryMetadata(meta) {\n return meta.expression !== undefined;\n}\nfunction getInjectFn(target) {\n switch (target) {\n case FactoryTarget$1.Component:\n case FactoryTarget$1.Directive:\n case FactoryTarget$1.Pipe:\n return Identifiers.directiveInject;\n case FactoryTarget$1.NgModule:\n case FactoryTarget$1.Injectable:\n default:\n return Identifiers.inject;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * This is an R3 `Node`-like wrapper for a raw `html.Comment` node. We do not currently\n * require the implementation of a visitor for Comments as they are only collected at\n * the top-level of the R3 AST, and only if `Render3ParseOptions['collectCommentNodes']`\n * is true.\n */\nclass Comment$1 {\n constructor(value, sourceSpan) {\n this.value = value;\n this.sourceSpan = sourceSpan;\n }\n visit(_visitor) {\n throw new Error('visit() not implemented for Comment');\n }\n}\nclass Text$3 {\n constructor(value, sourceSpan) {\n this.value = value;\n this.sourceSpan = sourceSpan;\n }\n visit(visitor) {\n return visitor.visitText(this);\n }\n}\nclass BoundText {\n constructor(value, sourceSpan, i18n) {\n this.value = value;\n this.sourceSpan = sourceSpan;\n this.i18n = i18n;\n }\n visit(visitor) {\n return visitor.visitBoundText(this);\n }\n}\n/**\n * Represents a text attribute in the template.\n *\n * `valueSpan` may not be present in cases where there is no value `
`.\n * `keySpan` may also not be present for synthetic attributes from ICU expansions.\n */\nclass TextAttribute {\n constructor(name, value, sourceSpan, keySpan, valueSpan, i18n) {\n this.name = name;\n this.value = value;\n this.sourceSpan = sourceSpan;\n this.keySpan = keySpan;\n this.valueSpan = valueSpan;\n this.i18n = i18n;\n }\n visit(visitor) {\n return visitor.visitTextAttribute(this);\n }\n}\nclass BoundAttribute {\n constructor(name, type, securityContext, value, unit, sourceSpan, keySpan, valueSpan, i18n) {\n this.name = name;\n this.type = type;\n this.securityContext = securityContext;\n this.value = value;\n this.unit = unit;\n this.sourceSpan = sourceSpan;\n this.keySpan = keySpan;\n this.valueSpan = valueSpan;\n this.i18n = i18n;\n }\n static fromBoundElementProperty(prop, i18n) {\n if (prop.keySpan === undefined) {\n throw new Error(`Unexpected state: keySpan must be defined for bound attributes but was not for ${prop.name}: ${prop.sourceSpan}`);\n }\n return new BoundAttribute(prop.name, prop.type, prop.securityContext, prop.value, prop.unit, prop.sourceSpan, prop.keySpan, prop.valueSpan, i18n);\n }\n visit(visitor) {\n return visitor.visitBoundAttribute(this);\n }\n}\nclass BoundEvent {\n constructor(name, type, handler, target, phase, sourceSpan, handlerSpan, keySpan) {\n this.name = name;\n this.type = type;\n this.handler = handler;\n this.target = target;\n this.phase = phase;\n this.sourceSpan = sourceSpan;\n this.handlerSpan = handlerSpan;\n this.keySpan = keySpan;\n }\n static fromParsedEvent(event) {\n const target = event.type === 0 /* ParsedEventType.Regular */ ? event.targetOrPhase : null;\n const phase = event.type === 1 /* ParsedEventType.Animation */ ? event.targetOrPhase : null;\n if (event.keySpan === undefined) {\n throw new Error(`Unexpected state: keySpan must be defined for bound event but was not for ${event.name}: ${event.sourceSpan}`);\n }\n return new BoundEvent(event.name, event.type, event.handler, target, phase, event.sourceSpan, event.handlerSpan, event.keySpan);\n }\n visit(visitor) {\n return visitor.visitBoundEvent(this);\n }\n}\nclass Element$1 {\n constructor(name, attributes, inputs, outputs, children, references, sourceSpan, startSourceSpan, endSourceSpan, i18n) {\n this.name = name;\n this.attributes = attributes;\n this.inputs = inputs;\n this.outputs = outputs;\n this.children = children;\n this.references = references;\n this.sourceSpan = sourceSpan;\n this.startSourceSpan = startSourceSpan;\n this.endSourceSpan = endSourceSpan;\n this.i18n = i18n;\n }\n visit(visitor) {\n return visitor.visitElement(this);\n }\n}\nclass Template {\n constructor(\n // tagName is the name of the container element, if applicable.\n // `null` is a special case for when there is a structural directive on an `ng-template` so\n // the renderer can differentiate between the synthetic template and the one written in the\n // file.\n tagName, attributes, inputs, outputs, templateAttrs, children, references, variables, sourceSpan, startSourceSpan, endSourceSpan, i18n) {\n this.tagName = tagName;\n this.attributes = attributes;\n this.inputs = inputs;\n this.outputs = outputs;\n this.templateAttrs = templateAttrs;\n this.children = children;\n this.references = references;\n this.variables = variables;\n this.sourceSpan = sourceSpan;\n this.startSourceSpan = startSourceSpan;\n this.endSourceSpan = endSourceSpan;\n this.i18n = i18n;\n }\n visit(visitor) {\n return visitor.visitTemplate(this);\n }\n}\nclass Content {\n constructor(selector, attributes, sourceSpan, i18n) {\n this.selector = selector;\n this.attributes = attributes;\n this.sourceSpan = sourceSpan;\n this.i18n = i18n;\n this.name = 'ng-content';\n }\n visit(visitor) {\n return visitor.visitContent(this);\n }\n}\nclass Variable {\n constructor(name, value, sourceSpan, keySpan, valueSpan) {\n this.name = name;\n this.value = value;\n this.sourceSpan = sourceSpan;\n this.keySpan = keySpan;\n this.valueSpan = valueSpan;\n }\n visit(visitor) {\n return visitor.visitVariable(this);\n }\n}\nclass Reference {\n constructor(name, value, sourceSpan, keySpan, valueSpan) {\n this.name = name;\n this.value = value;\n this.sourceSpan = sourceSpan;\n this.keySpan = keySpan;\n this.valueSpan = valueSpan;\n }\n visit(visitor) {\n return visitor.visitReference(this);\n }\n}\nclass Icu$1 {\n constructor(vars, placeholders, sourceSpan, i18n) {\n this.vars = vars;\n this.placeholders = placeholders;\n this.sourceSpan = sourceSpan;\n this.i18n = i18n;\n }\n visit(visitor) {\n return visitor.visitIcu(this);\n }\n}\nclass NullVisitor {\n visitElement(element) { }\n visitTemplate(template) { }\n visitContent(content) { }\n visitVariable(variable) { }\n visitReference(reference) { }\n visitTextAttribute(attribute) { }\n visitBoundAttribute(attribute) { }\n visitBoundEvent(attribute) { }\n visitText(text) { }\n visitBoundText(text) { }\n visitIcu(icu) { }\n}\nclass RecursiveVisitor$1 {\n visitElement(element) {\n visitAll$1(this, element.attributes);\n visitAll$1(this, element.inputs);\n visitAll$1(this, element.outputs);\n visitAll$1(this, element.children);\n visitAll$1(this, element.references);\n }\n visitTemplate(template) {\n visitAll$1(this, template.attributes);\n visitAll$1(this, template.inputs);\n visitAll$1(this, template.outputs);\n visitAll$1(this, template.children);\n visitAll$1(this, template.references);\n visitAll$1(this, template.variables);\n }\n visitContent(content) { }\n visitVariable(variable) { }\n visitReference(reference) { }\n visitTextAttribute(attribute) { }\n visitBoundAttribute(attribute) { }\n visitBoundEvent(attribute) { }\n visitText(text) { }\n visitBoundText(text) { }\n visitIcu(icu) { }\n}\nclass TransformVisitor {\n visitElement(element) {\n const newAttributes = transformAll(this, element.attributes);\n const newInputs = transformAll(this, element.inputs);\n const newOutputs = transformAll(this, element.outputs);\n const newChildren = transformAll(this, element.children);\n const newReferences = transformAll(this, element.references);\n if (newAttributes != element.attributes || newInputs != element.inputs ||\n newOutputs != element.outputs || newChildren != element.children ||\n newReferences != element.references) {\n return new Element$1(element.name, newAttributes, newInputs, newOutputs, newChildren, newReferences, element.sourceSpan, element.startSourceSpan, element.endSourceSpan);\n }\n return element;\n }\n visitTemplate(template) {\n const newAttributes = transformAll(this, template.attributes);\n const newInputs = transformAll(this, template.inputs);\n const newOutputs = transformAll(this, template.outputs);\n const newTemplateAttrs = transformAll(this, template.templateAttrs);\n const newChildren = transformAll(this, template.children);\n const newReferences = transformAll(this, template.references);\n const newVariables = transformAll(this, template.variables);\n if (newAttributes != template.attributes || newInputs != template.inputs ||\n newOutputs != template.outputs || newTemplateAttrs != template.templateAttrs ||\n newChildren != template.children || newReferences != template.references ||\n newVariables != template.variables) {\n return new Template(template.tagName, newAttributes, newInputs, newOutputs, newTemplateAttrs, newChildren, newReferences, newVariables, template.sourceSpan, template.startSourceSpan, template.endSourceSpan);\n }\n return template;\n }\n visitContent(content) {\n return content;\n }\n visitVariable(variable) {\n return variable;\n }\n visitReference(reference) {\n return reference;\n }\n visitTextAttribute(attribute) {\n return attribute;\n }\n visitBoundAttribute(attribute) {\n return attribute;\n }\n visitBoundEvent(attribute) {\n return attribute;\n }\n visitText(text) {\n return text;\n }\n visitBoundText(text) {\n return text;\n }\n visitIcu(icu) {\n return icu;\n }\n}\nfunction visitAll$1(visitor, nodes) {\n const result = [];\n if (visitor.visit) {\n for (const node of nodes) {\n const newNode = visitor.visit(node) || node.visit(visitor);\n }\n }\n else {\n for (const node of nodes) {\n const newNode = node.visit(visitor);\n if (newNode) {\n result.push(newNode);\n }\n }\n }\n return result;\n}\nfunction transformAll(visitor, nodes) {\n const result = [];\n let changed = false;\n for (const node of nodes) {\n const newNode = node.visit(visitor);\n if (newNode) {\n result.push(newNode);\n }\n changed = changed || newNode != node;\n }\n return changed ? result : nodes;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass Message {\n /**\n * @param nodes message AST\n * @param placeholders maps placeholder names to static content and their source spans\n * @param placeholderToMessage maps placeholder names to messages (used for nested ICU messages)\n * @param meaning\n * @param description\n * @param customId\n */\n constructor(nodes, placeholders, placeholderToMessage, meaning, description, customId) {\n this.nodes = nodes;\n this.placeholders = placeholders;\n this.placeholderToMessage = placeholderToMessage;\n this.meaning = meaning;\n this.description = description;\n this.customId = customId;\n this.id = this.customId;\n /** The ids to use if there are no custom id and if `i18nLegacyMessageIdFormat` is not empty */\n this.legacyIds = [];\n this.messageString = serializeMessage(this.nodes);\n if (nodes.length) {\n this.sources = [{\n filePath: nodes[0].sourceSpan.start.file.url,\n startLine: nodes[0].sourceSpan.start.line + 1,\n startCol: nodes[0].sourceSpan.start.col + 1,\n endLine: nodes[nodes.length - 1].sourceSpan.end.line + 1,\n endCol: nodes[0].sourceSpan.start.col + 1\n }];\n }\n else {\n this.sources = [];\n }\n }\n}\nclass Text$2 {\n constructor(value, sourceSpan) {\n this.value = value;\n this.sourceSpan = sourceSpan;\n }\n visit(visitor, context) {\n return visitor.visitText(this, context);\n }\n}\n// TODO(vicb): do we really need this node (vs an array) ?\nclass Container {\n constructor(children, sourceSpan) {\n this.children = children;\n this.sourceSpan = sourceSpan;\n }\n visit(visitor, context) {\n return visitor.visitContainer(this, context);\n }\n}\nclass Icu {\n constructor(expression, type, cases, sourceSpan) {\n this.expression = expression;\n this.type = type;\n this.cases = cases;\n this.sourceSpan = sourceSpan;\n }\n visit(visitor, context) {\n return visitor.visitIcu(this, context);\n }\n}\nclass TagPlaceholder {\n constructor(tag, attrs, startName, closeName, children, isVoid, \n // TODO sourceSpan should cover all (we need a startSourceSpan and endSourceSpan)\n sourceSpan, startSourceSpan, endSourceSpan) {\n this.tag = tag;\n this.attrs = attrs;\n this.startName = startName;\n this.closeName = closeName;\n this.children = children;\n this.isVoid = isVoid;\n this.sourceSpan = sourceSpan;\n this.startSourceSpan = startSourceSpan;\n this.endSourceSpan = endSourceSpan;\n }\n visit(visitor, context) {\n return visitor.visitTagPlaceholder(this, context);\n }\n}\nclass Placeholder {\n constructor(value, name, sourceSpan) {\n this.value = value;\n this.name = name;\n this.sourceSpan = sourceSpan;\n }\n visit(visitor, context) {\n return visitor.visitPlaceholder(this, context);\n }\n}\nclass IcuPlaceholder {\n constructor(value, name, sourceSpan) {\n this.value = value;\n this.name = name;\n this.sourceSpan = sourceSpan;\n }\n visit(visitor, context) {\n return visitor.visitIcuPlaceholder(this, context);\n }\n}\n// Clone the AST\nclass CloneVisitor {\n visitText(text, context) {\n return new Text$2(text.value, text.sourceSpan);\n }\n visitContainer(container, context) {\n const children = container.children.map(n => n.visit(this, context));\n return new Container(children, container.sourceSpan);\n }\n visitIcu(icu, context) {\n const cases = {};\n Object.keys(icu.cases).forEach(key => cases[key] = icu.cases[key].visit(this, context));\n const msg = new Icu(icu.expression, icu.type, cases, icu.sourceSpan);\n msg.expressionPlaceholder = icu.expressionPlaceholder;\n return msg;\n }\n visitTagPlaceholder(ph, context) {\n const children = ph.children.map(n => n.visit(this, context));\n return new TagPlaceholder(ph.tag, ph.attrs, ph.startName, ph.closeName, children, ph.isVoid, ph.sourceSpan, ph.startSourceSpan, ph.endSourceSpan);\n }\n visitPlaceholder(ph, context) {\n return new Placeholder(ph.value, ph.name, ph.sourceSpan);\n }\n visitIcuPlaceholder(ph, context) {\n return new IcuPlaceholder(ph.value, ph.name, ph.sourceSpan);\n }\n}\n// Visit all the nodes recursively\nclass RecurseVisitor {\n visitText(text, context) { }\n visitContainer(container, context) {\n container.children.forEach(child => child.visit(this));\n }\n visitIcu(icu, context) {\n Object.keys(icu.cases).forEach(k => {\n icu.cases[k].visit(this);\n });\n }\n visitTagPlaceholder(ph, context) {\n ph.children.forEach(child => child.visit(this));\n }\n visitPlaceholder(ph, context) { }\n visitIcuPlaceholder(ph, context) { }\n}\n/**\n * Serialize the message to the Localize backtick string format that would appear in compiled code.\n */\nfunction serializeMessage(messageNodes) {\n const visitor = new LocalizeMessageStringVisitor();\n const str = messageNodes.map(n => n.visit(visitor)).join('');\n return str;\n}\nclass LocalizeMessageStringVisitor {\n visitText(text) {\n return text.value;\n }\n visitContainer(container) {\n return container.children.map(child => child.visit(this)).join('');\n }\n visitIcu(icu) {\n const strCases = Object.keys(icu.cases).map((k) => `${k} {${icu.cases[k].visit(this)}}`);\n return `{${icu.expressionPlaceholder}, ${icu.type}, ${strCases.join(' ')}}`;\n }\n visitTagPlaceholder(ph) {\n const children = ph.children.map(child => child.visit(this)).join('');\n return `{$${ph.startName}}${children}{$${ph.closeName}}`;\n }\n visitPlaceholder(ph) {\n return `{$${ph.name}}`;\n }\n visitIcuPlaceholder(ph) {\n return `{$${ph.name}}`;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass Serializer {\n // Creates a name mapper, see `PlaceholderMapper`\n // Returning `null` means that no name mapping is used.\n createNameMapper(message) {\n return null;\n }\n}\n/**\n * A simple mapper that take a function to transform an internal name to a public name\n */\nclass SimplePlaceholderMapper extends RecurseVisitor {\n // create a mapping from the message\n constructor(message, mapName) {\n super();\n this.mapName = mapName;\n this.internalToPublic = {};\n this.publicToNextId = {};\n this.publicToInternal = {};\n message.nodes.forEach(node => node.visit(this));\n }\n toPublicName(internalName) {\n return this.internalToPublic.hasOwnProperty(internalName) ?\n this.internalToPublic[internalName] :\n null;\n }\n toInternalName(publicName) {\n return this.publicToInternal.hasOwnProperty(publicName) ? this.publicToInternal[publicName] :\n null;\n }\n visitText(text, context) {\n return null;\n }\n visitTagPlaceholder(ph, context) {\n this.visitPlaceholderName(ph.startName);\n super.visitTagPlaceholder(ph, context);\n this.visitPlaceholderName(ph.closeName);\n }\n visitPlaceholder(ph, context) {\n this.visitPlaceholderName(ph.name);\n }\n visitIcuPlaceholder(ph, context) {\n this.visitPlaceholderName(ph.name);\n }\n // XMB placeholders could only contains A-Z, 0-9 and _\n visitPlaceholderName(internalName) {\n if (!internalName || this.internalToPublic.hasOwnProperty(internalName)) {\n return;\n }\n let publicName = this.mapName(internalName);\n if (this.publicToInternal.hasOwnProperty(publicName)) {\n // Create a new XMB when it has already been used\n const nextId = this.publicToNextId[publicName];\n this.publicToNextId[publicName] = nextId + 1;\n publicName = `${publicName}_${nextId}`;\n }\n else {\n this.publicToNextId[publicName] = 1;\n }\n this.internalToPublic[internalName] = publicName;\n this.publicToInternal[publicName] = internalName;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass _Visitor$2 {\n visitTag(tag) {\n const strAttrs = this._serializeAttributes(tag.attrs);\n if (tag.children.length == 0) {\n return `<${tag.name}${strAttrs}/>`;\n }\n const strChildren = tag.children.map(node => node.visit(this));\n return `<${tag.name}${strAttrs}>${strChildren.join('')}`;\n }\n visitText(text) {\n return text.value;\n }\n visitDeclaration(decl) {\n return ``;\n }\n _serializeAttributes(attrs) {\n const strAttrs = Object.keys(attrs).map((name) => `${name}=\"${attrs[name]}\"`).join(' ');\n return strAttrs.length > 0 ? ' ' + strAttrs : '';\n }\n visitDoctype(doctype) {\n return ``;\n }\n}\nconst _visitor = new _Visitor$2();\nfunction serialize(nodes) {\n return nodes.map((node) => node.visit(_visitor)).join('');\n}\nclass Declaration {\n constructor(unescapedAttrs) {\n this.attrs = {};\n Object.keys(unescapedAttrs).forEach((k) => {\n this.attrs[k] = escapeXml(unescapedAttrs[k]);\n });\n }\n visit(visitor) {\n return visitor.visitDeclaration(this);\n }\n}\nclass Doctype {\n constructor(rootTag, dtd) {\n this.rootTag = rootTag;\n this.dtd = dtd;\n }\n visit(visitor) {\n return visitor.visitDoctype(this);\n }\n}\nclass Tag {\n constructor(name, unescapedAttrs = {}, children = []) {\n this.name = name;\n this.children = children;\n this.attrs = {};\n Object.keys(unescapedAttrs).forEach((k) => {\n this.attrs[k] = escapeXml(unescapedAttrs[k]);\n });\n }\n visit(visitor) {\n return visitor.visitTag(this);\n }\n}\nclass Text$1 {\n constructor(unescapedValue) {\n this.value = escapeXml(unescapedValue);\n }\n visit(visitor) {\n return visitor.visitText(this);\n }\n}\nclass CR extends Text$1 {\n constructor(ws = 0) {\n super(`\\n${new Array(ws + 1).join(' ')}`);\n }\n}\nconst _ESCAPED_CHARS = [\n [/&/g, '&'],\n [/\"/g, '"'],\n [/'/g, '''],\n [//g, '>'],\n];\n// Escape `_ESCAPED_CHARS` characters in the given text with encoded entities\nfunction escapeXml(text) {\n return _ESCAPED_CHARS.reduce((text, entry) => text.replace(entry[0], entry[1]), text);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst _MESSAGES_TAG = 'messagebundle';\nconst _MESSAGE_TAG = 'msg';\nconst _PLACEHOLDER_TAG$3 = 'ph';\nconst _EXAMPLE_TAG = 'ex';\nconst _SOURCE_TAG$2 = 'source';\nconst _DOCTYPE = `\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n`;\nclass Xmb extends Serializer {\n write(messages, locale) {\n const exampleVisitor = new ExampleVisitor();\n const visitor = new _Visitor$1();\n let rootNode = new Tag(_MESSAGES_TAG);\n messages.forEach(message => {\n const attrs = { id: message.id };\n if (message.description) {\n attrs['desc'] = message.description;\n }\n if (message.meaning) {\n attrs['meaning'] = message.meaning;\n }\n let sourceTags = [];\n message.sources.forEach((source) => {\n sourceTags.push(new Tag(_SOURCE_TAG$2, {}, [new Text$1(`${source.filePath}:${source.startLine}${source.endLine !== source.startLine ? ',' + source.endLine : ''}`)]));\n });\n rootNode.children.push(new CR(2), new Tag(_MESSAGE_TAG, attrs, [...sourceTags, ...visitor.serialize(message.nodes)]));\n });\n rootNode.children.push(new CR());\n return serialize([\n new Declaration({ version: '1.0', encoding: 'UTF-8' }),\n new CR(),\n new Doctype(_MESSAGES_TAG, _DOCTYPE),\n new CR(),\n exampleVisitor.addDefaultExamples(rootNode),\n new CR(),\n ]);\n }\n load(content, url) {\n throw new Error('Unsupported');\n }\n digest(message) {\n return digest(message);\n }\n createNameMapper(message) {\n return new SimplePlaceholderMapper(message, toPublicName);\n }\n}\nclass _Visitor$1 {\n visitText(text, context) {\n return [new Text$1(text.value)];\n }\n visitContainer(container, context) {\n const nodes = [];\n container.children.forEach((node) => nodes.push(...node.visit(this)));\n return nodes;\n }\n visitIcu(icu, context) {\n const nodes = [new Text$1(`{${icu.expressionPlaceholder}, ${icu.type}, `)];\n Object.keys(icu.cases).forEach((c) => {\n nodes.push(new Text$1(`${c} {`), ...icu.cases[c].visit(this), new Text$1(`} `));\n });\n nodes.push(new Text$1(`}`));\n return nodes;\n }\n visitTagPlaceholder(ph, context) {\n const startTagAsText = new Text$1(`<${ph.tag}>`);\n const startEx = new Tag(_EXAMPLE_TAG, {}, [startTagAsText]);\n // TC requires PH to have a non empty EX, and uses the text node to show the \"original\" value.\n const startTagPh = new Tag(_PLACEHOLDER_TAG$3, { name: ph.startName }, [startEx, startTagAsText]);\n if (ph.isVoid) {\n // void tags have no children nor closing tags\n return [startTagPh];\n }\n const closeTagAsText = new Text$1(``);\n const closeEx = new Tag(_EXAMPLE_TAG, {}, [closeTagAsText]);\n // TC requires PH to have a non empty EX, and uses the text node to show the \"original\" value.\n const closeTagPh = new Tag(_PLACEHOLDER_TAG$3, { name: ph.closeName }, [closeEx, closeTagAsText]);\n return [startTagPh, ...this.serialize(ph.children), closeTagPh];\n }\n visitPlaceholder(ph, context) {\n const interpolationAsText = new Text$1(`{{${ph.value}}}`);\n // Example tag needs to be not-empty for TC.\n const exTag = new Tag(_EXAMPLE_TAG, {}, [interpolationAsText]);\n return [\n // TC requires PH to have a non empty EX, and uses the text node to show the \"original\" value.\n new Tag(_PLACEHOLDER_TAG$3, { name: ph.name }, [exTag, interpolationAsText])\n ];\n }\n visitIcuPlaceholder(ph, context) {\n const icuExpression = ph.value.expression;\n const icuType = ph.value.type;\n const icuCases = Object.keys(ph.value.cases).map((value) => value + ' {...}').join(' ');\n const icuAsText = new Text$1(`{${icuExpression}, ${icuType}, ${icuCases}}`);\n const exTag = new Tag(_EXAMPLE_TAG, {}, [icuAsText]);\n return [\n // TC requires PH to have a non empty EX, and uses the text node to show the \"original\" value.\n new Tag(_PLACEHOLDER_TAG$3, { name: ph.name }, [exTag, icuAsText])\n ];\n }\n serialize(nodes) {\n return [].concat(...nodes.map(node => node.visit(this)));\n }\n}\nfunction digest(message) {\n return decimalDigest(message);\n}\n// TC requires at least one non-empty example on placeholders\nclass ExampleVisitor {\n addDefaultExamples(node) {\n node.visit(this);\n return node;\n }\n visitTag(tag) {\n if (tag.name === _PLACEHOLDER_TAG$3) {\n if (!tag.children || tag.children.length == 0) {\n const exText = new Text$1(tag.attrs['name'] || '...');\n tag.children = [new Tag(_EXAMPLE_TAG, {}, [exText])];\n }\n }\n else if (tag.children) {\n tag.children.forEach(node => node.visit(this));\n }\n }\n visitText(text) { }\n visitDeclaration(decl) { }\n visitDoctype(doctype) { }\n}\n// XMB/XTB placeholders can only contain A-Z, 0-9 and _\nfunction toPublicName(internalName) {\n return internalName.toUpperCase().replace(/[^A-Z0-9_]/g, '_');\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/* Closure variables holding messages must be named `MSG_[A-Z0-9]+` */\nconst CLOSURE_TRANSLATION_VAR_PREFIX = 'MSG_';\n/**\n * Prefix for non-`goog.getMsg` i18n-related vars.\n * Note: the prefix uses lowercase characters intentionally due to a Closure behavior that\n * considers variables like `I18N_0` as constants and throws an error when their value changes.\n */\nconst TRANSLATION_VAR_PREFIX = 'i18n_';\n/** Name of the i18n attributes **/\nconst I18N_ATTR = 'i18n';\nconst I18N_ATTR_PREFIX = 'i18n-';\n/** Prefix of var expressions used in ICUs */\nconst I18N_ICU_VAR_PREFIX = 'VAR_';\n/** Prefix of ICU expressions for post processing */\nconst I18N_ICU_MAPPING_PREFIX = 'I18N_EXP_';\n/** Placeholder wrapper for i18n expressions **/\nconst I18N_PLACEHOLDER_SYMBOL = '�';\nfunction isI18nAttribute(name) {\n return name === I18N_ATTR || name.startsWith(I18N_ATTR_PREFIX);\n}\nfunction isI18nRootNode(meta) {\n return meta instanceof Message;\n}\nfunction isSingleI18nIcu(meta) {\n return isI18nRootNode(meta) && meta.nodes.length === 1 && meta.nodes[0] instanceof Icu;\n}\nfunction hasI18nMeta(node) {\n return !!node.i18n;\n}\nfunction hasI18nAttrs(element) {\n return element.attrs.some((attr) => isI18nAttribute(attr.name));\n}\nfunction icuFromI18nMessage(message) {\n return message.nodes[0];\n}\nfunction wrapI18nPlaceholder(content, contextId = 0) {\n const blockId = contextId > 0 ? `:${contextId}` : '';\n return `${I18N_PLACEHOLDER_SYMBOL}${content}${blockId}${I18N_PLACEHOLDER_SYMBOL}`;\n}\nfunction assembleI18nBoundString(strings, bindingStartIndex = 0, contextId = 0) {\n if (!strings.length)\n return '';\n let acc = '';\n const lastIdx = strings.length - 1;\n for (let i = 0; i < lastIdx; i++) {\n acc += `${strings[i]}${wrapI18nPlaceholder(bindingStartIndex + i, contextId)}`;\n }\n acc += strings[lastIdx];\n return acc;\n}\nfunction getSeqNumberGenerator(startsAt = 0) {\n let current = startsAt;\n return () => current++;\n}\nfunction placeholdersToParams(placeholders) {\n const params = {};\n placeholders.forEach((values, key) => {\n params[key] = literal(values.length > 1 ? `[${values.join('|')}]` : values[0]);\n });\n return params;\n}\nfunction updatePlaceholderMap(map, name, ...values) {\n const current = map.get(name) || [];\n current.push(...values);\n map.set(name, current);\n}\nfunction assembleBoundTextPlaceholders(meta, bindingStartIndex = 0, contextId = 0) {\n const startIdx = bindingStartIndex;\n const placeholders = new Map();\n const node = meta instanceof Message ? meta.nodes.find(node => node instanceof Container) : meta;\n if (node) {\n node\n .children\n .filter((child) => child instanceof Placeholder)\n .forEach((child, idx) => {\n const content = wrapI18nPlaceholder(startIdx + idx, contextId);\n updatePlaceholderMap(placeholders, child.name, content);\n });\n }\n return placeholders;\n}\n/**\n * Format the placeholder names in a map of placeholders to expressions.\n *\n * The placeholder names are converted from \"internal\" format (e.g. `START_TAG_DIV_1`) to \"external\"\n * format (e.g. `startTagDiv_1`).\n *\n * @param params A map of placeholder names to expressions.\n * @param useCamelCase whether to camelCase the placeholder name when formatting.\n * @returns A new map of formatted placeholder names to expressions.\n */\nfunction formatI18nPlaceholderNamesInMap(params = {}, useCamelCase) {\n const _params = {};\n if (params && Object.keys(params).length) {\n Object.keys(params).forEach(key => _params[formatI18nPlaceholderName(key, useCamelCase)] = params[key]);\n }\n return _params;\n}\n/**\n * Converts internal placeholder names to public-facing format\n * (for example to use in goog.getMsg call).\n * Example: `START_TAG_DIV_1` is converted to `startTagDiv_1`.\n *\n * @param name The placeholder name that should be formatted\n * @returns Formatted placeholder name\n */\nfunction formatI18nPlaceholderName(name, useCamelCase = true) {\n const publicName = toPublicName(name);\n if (!useCamelCase) {\n return publicName;\n }\n const chunks = publicName.split('_');\n if (chunks.length === 1) {\n // if no \"_\" found - just lowercase the value\n return name.toLowerCase();\n }\n let postfix;\n // eject last element if it's a number\n if (/^\\d+$/.test(chunks[chunks.length - 1])) {\n postfix = chunks.pop();\n }\n let raw = chunks.shift().toLowerCase();\n if (chunks.length) {\n raw += chunks.map(c => c.charAt(0).toUpperCase() + c.slice(1).toLowerCase()).join('');\n }\n return postfix ? `${raw}_${postfix}` : raw;\n}\n/**\n * Generates a prefix for translation const name.\n *\n * @param extra Additional local prefix that should be injected into translation var name\n * @returns Complete translation const prefix\n */\nfunction getTranslationConstPrefix(extra) {\n return `${CLOSURE_TRANSLATION_VAR_PREFIX}${extra}`.toUpperCase();\n}\n/**\n * Generate AST to declare a variable. E.g. `var I18N_1;`.\n * @param variable the name of the variable to declare.\n */\nfunction declareI18nVariable(variable) {\n return new DeclareVarStmt(variable.name, undefined, INFERRED_TYPE, undefined, variable.sourceSpan);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Checks whether an object key contains potentially unsafe chars, thus the key should be wrapped in\n * quotes. Note: we do not wrap all keys into quotes, as it may have impact on minification and may\n * bot work in some cases when object keys are mangled by minifier.\n *\n * TODO(FW-1136): this is a temporary solution, we need to come up with a better way of working with\n * inputs that contain potentially unsafe chars.\n */\nconst UNSAFE_OBJECT_KEY_NAME_REGEXP = /[-.]/;\n/** Name of the temporary to use during data binding */\nconst TEMPORARY_NAME = '_t';\n/** Name of the context parameter passed into a template function */\nconst CONTEXT_NAME = 'ctx';\n/** Name of the RenderFlag passed into a template function */\nconst RENDER_FLAGS = 'rf';\n/** The prefix reference variables */\nconst REFERENCE_PREFIX = '_r';\n/** The name of the implicit context reference */\nconst IMPLICIT_REFERENCE = '$implicit';\n/** Non bindable attribute name **/\nconst NON_BINDABLE_ATTR = 'ngNonBindable';\n/** Name for the variable keeping track of the context returned by `ɵɵrestoreView`. */\nconst RESTORED_VIEW_CONTEXT_NAME = 'restoredCtx';\n/**\n * Maximum length of a single instruction chain. Because our output AST uses recursion, we're\n * limited in how many expressions we can nest before we reach the call stack limit. This\n * length is set very conservatively in order to reduce the chance of problems.\n */\nconst MAX_CHAIN_LENGTH = 500;\n/** Instructions that support chaining. */\nconst CHAINABLE_INSTRUCTIONS = new Set([\n Identifiers.element,\n Identifiers.elementStart,\n Identifiers.elementEnd,\n Identifiers.elementContainer,\n Identifiers.elementContainerStart,\n Identifiers.elementContainerEnd,\n Identifiers.i18nExp,\n Identifiers.listener,\n Identifiers.classProp,\n Identifiers.syntheticHostListener,\n Identifiers.hostProperty,\n Identifiers.syntheticHostProperty,\n Identifiers.property,\n Identifiers.propertyInterpolate1,\n Identifiers.propertyInterpolate2,\n Identifiers.propertyInterpolate3,\n Identifiers.propertyInterpolate4,\n Identifiers.propertyInterpolate5,\n Identifiers.propertyInterpolate6,\n Identifiers.propertyInterpolate7,\n Identifiers.propertyInterpolate8,\n Identifiers.propertyInterpolateV,\n Identifiers.attribute,\n Identifiers.attributeInterpolate1,\n Identifiers.attributeInterpolate2,\n Identifiers.attributeInterpolate3,\n Identifiers.attributeInterpolate4,\n Identifiers.attributeInterpolate5,\n Identifiers.attributeInterpolate6,\n Identifiers.attributeInterpolate7,\n Identifiers.attributeInterpolate8,\n Identifiers.attributeInterpolateV,\n Identifiers.styleProp,\n Identifiers.stylePropInterpolate1,\n Identifiers.stylePropInterpolate2,\n Identifiers.stylePropInterpolate3,\n Identifiers.stylePropInterpolate4,\n Identifiers.stylePropInterpolate5,\n Identifiers.stylePropInterpolate6,\n Identifiers.stylePropInterpolate7,\n Identifiers.stylePropInterpolate8,\n Identifiers.stylePropInterpolateV,\n Identifiers.textInterpolate,\n Identifiers.textInterpolate1,\n Identifiers.textInterpolate2,\n Identifiers.textInterpolate3,\n Identifiers.textInterpolate4,\n Identifiers.textInterpolate5,\n Identifiers.textInterpolate6,\n Identifiers.textInterpolate7,\n Identifiers.textInterpolate8,\n Identifiers.textInterpolateV,\n]);\n/** Generates a call to a single instruction. */\nfunction invokeInstruction(span, reference, params) {\n return importExpr(reference, null, span).callFn(params, span);\n}\n/**\n * Creates an allocator for a temporary variable.\n *\n * A variable declaration is added to the statements the first time the allocator is invoked.\n */\nfunction temporaryAllocator(statements, name) {\n let temp = null;\n return () => {\n if (!temp) {\n statements.push(new DeclareVarStmt(TEMPORARY_NAME, undefined, DYNAMIC_TYPE));\n temp = variable(name);\n }\n return temp;\n };\n}\nfunction invalid(arg) {\n throw new Error(`Invalid state: Visitor ${this.constructor.name} doesn't handle ${arg.constructor.name}`);\n}\nfunction asLiteral(value) {\n if (Array.isArray(value)) {\n return literalArr(value.map(asLiteral));\n }\n return literal(value, INFERRED_TYPE);\n}\nfunction conditionallyCreateMapObjectLiteral(keys, keepDeclared) {\n if (Object.getOwnPropertyNames(keys).length > 0) {\n return mapToExpression(keys, keepDeclared);\n }\n return null;\n}\nfunction mapToExpression(map, keepDeclared) {\n return literalMap(Object.getOwnPropertyNames(map).map(key => {\n // canonical syntax: `dirProp: publicProp`\n const value = map[key];\n let declaredName;\n let publicName;\n let minifiedName;\n let needsDeclaredName;\n if (Array.isArray(value)) {\n [publicName, declaredName] = value;\n minifiedName = key;\n needsDeclaredName = publicName !== declaredName;\n }\n else {\n minifiedName = declaredName = key;\n publicName = value;\n needsDeclaredName = false;\n }\n return {\n key: minifiedName,\n // put quotes around keys that contain potentially unsafe characters\n quoted: UNSAFE_OBJECT_KEY_NAME_REGEXP.test(minifiedName),\n value: (keepDeclared && needsDeclaredName) ?\n literalArr([asLiteral(publicName), asLiteral(declaredName)]) :\n asLiteral(publicName)\n };\n }));\n}\n/**\n * Remove trailing null nodes as they are implied.\n */\nfunction trimTrailingNulls(parameters) {\n while (isNull(parameters[parameters.length - 1])) {\n parameters.pop();\n }\n return parameters;\n}\nfunction getQueryPredicate(query, constantPool) {\n if (Array.isArray(query.predicate)) {\n let predicate = [];\n query.predicate.forEach((selector) => {\n // Each item in predicates array may contain strings with comma-separated refs\n // (for ex. 'ref, ref1, ..., refN'), thus we extract individual refs and store them\n // as separate array entities\n const selectors = selector.split(',').map(token => literal(token.trim()));\n predicate.push(...selectors);\n });\n return constantPool.getConstLiteral(literalArr(predicate), true);\n }\n else {\n // The original predicate may have been wrapped in a `forwardRef()` call.\n switch (query.predicate.forwardRef) {\n case 0 /* ForwardRefHandling.None */:\n case 2 /* ForwardRefHandling.Unwrapped */:\n return query.predicate.expression;\n case 1 /* ForwardRefHandling.Wrapped */:\n return importExpr(Identifiers.resolveForwardRef).callFn([query.predicate.expression]);\n }\n }\n}\n/**\n * A representation for an object literal used during codegen of definition objects. The generic\n * type `T` allows to reference a documented type of the generated structure, such that the\n * property names that are set can be resolved to their documented declaration.\n */\nclass DefinitionMap {\n constructor() {\n this.values = [];\n }\n set(key, value) {\n if (value) {\n this.values.push({ key: key, value, quoted: false });\n }\n }\n toLiteralMap() {\n return literalMap(this.values);\n }\n}\n/**\n * Extract a map of properties to values for a given element or template node, which can be used\n * by the directive matching machinery.\n *\n * @param elOrTpl the element or template in question\n * @return an object set up for directive matching. For attributes on the element/template, this\n * object maps a property name to its (static) value. For any bindings, this map simply maps the\n * property name to an empty string.\n */\nfunction getAttrsForDirectiveMatching(elOrTpl) {\n const attributesMap = {};\n if (elOrTpl instanceof Template && elOrTpl.tagName !== 'ng-template') {\n elOrTpl.templateAttrs.forEach(a => attributesMap[a.name] = '');\n }\n else {\n elOrTpl.attributes.forEach(a => {\n if (!isI18nAttribute(a.name)) {\n attributesMap[a.name] = a.value;\n }\n });\n elOrTpl.inputs.forEach(i => {\n attributesMap[i.name] = '';\n });\n elOrTpl.outputs.forEach(o => {\n attributesMap[o.name] = '';\n });\n }\n return attributesMap;\n}\n/**\n * Gets the number of arguments expected to be passed to a generated instruction in the case of\n * interpolation instructions.\n * @param interpolation An interpolation ast\n */\nfunction getInterpolationArgsLength(interpolation) {\n const { expressions, strings } = interpolation;\n if (expressions.length === 1 && strings.length === 2 && strings[0] === '' && strings[1] === '') {\n // If the interpolation has one interpolated value, but the prefix and suffix are both empty\n // strings, we only pass one argument, to a special instruction like `propertyInterpolate` or\n // `textInterpolate`.\n return 1;\n }\n else {\n return expressions.length + strings.length;\n }\n}\n/**\n * Generates the final instruction call statements based on the passed in configuration.\n * Will try to chain instructions as much as possible, if chaining is supported.\n */\nfunction getInstructionStatements(instructions) {\n const statements = [];\n let pendingExpression = null;\n let pendingExpressionType = null;\n let chainLength = 0;\n for (const current of instructions) {\n const resolvedParams = (typeof current.paramsOrFn === 'function' ? current.paramsOrFn() : current.paramsOrFn) ??\n [];\n const params = Array.isArray(resolvedParams) ? resolvedParams : [resolvedParams];\n // If the current instruction is the same as the previous one\n // and it can be chained, add another call to the chain.\n if (chainLength < MAX_CHAIN_LENGTH && pendingExpressionType === current.reference &&\n CHAINABLE_INSTRUCTIONS.has(pendingExpressionType)) {\n // We'll always have a pending expression when there's a pending expression type.\n pendingExpression = pendingExpression.callFn(params, pendingExpression.sourceSpan);\n chainLength++;\n }\n else {\n if (pendingExpression !== null) {\n statements.push(pendingExpression.toStmt());\n }\n pendingExpression = invokeInstruction(current.span, current.reference, params);\n pendingExpressionType = current.reference;\n chainLength = 0;\n }\n }\n // Since the current instruction adds the previous one to the statements,\n // we may be left with the final one at the end that is still pending.\n if (pendingExpression !== null) {\n statements.push(pendingExpression.toStmt());\n }\n return statements;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction compileInjectable(meta, resolveForwardRefs) {\n let result = null;\n const factoryMeta = {\n name: meta.name,\n type: meta.type,\n internalType: meta.internalType,\n typeArgumentCount: meta.typeArgumentCount,\n deps: [],\n target: FactoryTarget$1.Injectable,\n };\n if (meta.useClass !== undefined) {\n // meta.useClass has two modes of operation. Either deps are specified, in which case `new` is\n // used to instantiate the class with dependencies injected, or deps are not specified and\n // the factory of the class is used to instantiate it.\n //\n // A special case exists for useClass: Type where Type is the injectable type itself and no\n // deps are specified, in which case 'useClass' is effectively ignored.\n const useClassOnSelf = meta.useClass.expression.isEquivalent(meta.internalType);\n let deps = undefined;\n if (meta.deps !== undefined) {\n deps = meta.deps;\n }\n if (deps !== undefined) {\n // factory: () => new meta.useClass(...deps)\n result = compileFactoryFunction({\n ...factoryMeta,\n delegate: meta.useClass.expression,\n delegateDeps: deps,\n delegateType: R3FactoryDelegateType.Class,\n });\n }\n else if (useClassOnSelf) {\n result = compileFactoryFunction(factoryMeta);\n }\n else {\n result = {\n statements: [],\n expression: delegateToFactory(meta.type.value, meta.useClass.expression, resolveForwardRefs)\n };\n }\n }\n else if (meta.useFactory !== undefined) {\n if (meta.deps !== undefined) {\n result = compileFactoryFunction({\n ...factoryMeta,\n delegate: meta.useFactory,\n delegateDeps: meta.deps || [],\n delegateType: R3FactoryDelegateType.Function,\n });\n }\n else {\n result = {\n statements: [],\n expression: fn([], [new ReturnStatement(meta.useFactory.callFn([]))])\n };\n }\n }\n else if (meta.useValue !== undefined) {\n // Note: it's safe to use `meta.useValue` instead of the `USE_VALUE in meta` check used for\n // client code because meta.useValue is an Expression which will be defined even if the actual\n // value is undefined.\n result = compileFactoryFunction({\n ...factoryMeta,\n expression: meta.useValue.expression,\n });\n }\n else if (meta.useExisting !== undefined) {\n // useExisting is an `inject` call on the existing token.\n result = compileFactoryFunction({\n ...factoryMeta,\n expression: importExpr(Identifiers.inject).callFn([meta.useExisting.expression]),\n });\n }\n else {\n result = {\n statements: [],\n expression: delegateToFactory(meta.type.value, meta.internalType, resolveForwardRefs)\n };\n }\n const token = meta.internalType;\n const injectableProps = new DefinitionMap();\n injectableProps.set('token', token);\n injectableProps.set('factory', result.expression);\n // Only generate providedIn property if it has a non-null value\n if (meta.providedIn.expression.value !== null) {\n injectableProps.set('providedIn', convertFromMaybeForwardRefExpression(meta.providedIn));\n }\n const expression = importExpr(Identifiers.ɵɵdefineInjectable)\n .callFn([injectableProps.toLiteralMap()], undefined, true);\n return {\n expression,\n type: createInjectableType(meta),\n statements: result.statements,\n };\n}\nfunction createInjectableType(meta) {\n return new ExpressionType(importExpr(Identifiers.InjectableDeclaration, [typeWithParameters(meta.type.type, meta.typeArgumentCount)]));\n}\nfunction delegateToFactory(type, internalType, unwrapForwardRefs) {\n if (type.node === internalType.node) {\n // The types are the same, so we can simply delegate directly to the type's factory.\n // ```\n // factory: type.ɵfac\n // ```\n return internalType.prop('ɵfac');\n }\n if (!unwrapForwardRefs) {\n // The type is not wrapped in a `forwardRef()`, so we create a simple factory function that\n // accepts a sub-type as an argument.\n // ```\n // factory: function(t) { return internalType.ɵfac(t); }\n // ```\n return createFactoryFunction(internalType);\n }\n // The internalType is actually wrapped in a `forwardRef()` so we need to resolve that before\n // calling its factory.\n // ```\n // factory: function(t) { return core.resolveForwardRef(type).ɵfac(t); }\n // ```\n const unwrappedType = importExpr(Identifiers.resolveForwardRef).callFn([internalType]);\n return createFactoryFunction(unwrappedType);\n}\nfunction createFactoryFunction(type) {\n return fn([new FnParam('t', DYNAMIC_TYPE)], [new ReturnStatement(type.prop('ɵfac').callFn([variable('t')]))]);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst UNUSABLE_INTERPOLATION_REGEXPS = [\n /^\\s*$/,\n /[<>]/,\n /^[{}]$/,\n /&(#|[a-z])/i,\n /^\\/\\//, // comment\n];\nfunction assertInterpolationSymbols(identifier, value) {\n if (value != null && !(Array.isArray(value) && value.length == 2)) {\n throw new Error(`Expected '${identifier}' to be an array, [start, end].`);\n }\n else if (value != null) {\n const start = value[0];\n const end = value[1];\n // Check for unusable interpolation symbols\n UNUSABLE_INTERPOLATION_REGEXPS.forEach(regexp => {\n if (regexp.test(start) || regexp.test(end)) {\n throw new Error(`['${start}', '${end}'] contains unusable interpolation symbol.`);\n }\n });\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass InterpolationConfig {\n constructor(start, end) {\n this.start = start;\n this.end = end;\n }\n static fromArray(markers) {\n if (!markers) {\n return DEFAULT_INTERPOLATION_CONFIG;\n }\n assertInterpolationSymbols('interpolation', markers);\n return new InterpolationConfig(markers[0], markers[1]);\n }\n}\nconst DEFAULT_INTERPOLATION_CONFIG = new InterpolationConfig('{{', '}}');\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst $EOF = 0;\nconst $BSPACE = 8;\nconst $TAB = 9;\nconst $LF = 10;\nconst $VTAB = 11;\nconst $FF = 12;\nconst $CR = 13;\nconst $SPACE = 32;\nconst $BANG = 33;\nconst $DQ = 34;\nconst $HASH = 35;\nconst $$ = 36;\nconst $PERCENT = 37;\nconst $AMPERSAND = 38;\nconst $SQ = 39;\nconst $LPAREN = 40;\nconst $RPAREN = 41;\nconst $STAR = 42;\nconst $PLUS = 43;\nconst $COMMA = 44;\nconst $MINUS = 45;\nconst $PERIOD = 46;\nconst $SLASH = 47;\nconst $COLON = 58;\nconst $SEMICOLON = 59;\nconst $LT = 60;\nconst $EQ = 61;\nconst $GT = 62;\nconst $QUESTION = 63;\nconst $0 = 48;\nconst $7 = 55;\nconst $9 = 57;\nconst $A = 65;\nconst $E = 69;\nconst $F = 70;\nconst $X = 88;\nconst $Z = 90;\nconst $LBRACKET = 91;\nconst $BACKSLASH = 92;\nconst $RBRACKET = 93;\nconst $CARET = 94;\nconst $_ = 95;\nconst $a = 97;\nconst $b = 98;\nconst $e = 101;\nconst $f = 102;\nconst $n = 110;\nconst $r = 114;\nconst $t = 116;\nconst $u = 117;\nconst $v = 118;\nconst $x = 120;\nconst $z = 122;\nconst $LBRACE = 123;\nconst $BAR = 124;\nconst $RBRACE = 125;\nconst $NBSP = 160;\nconst $PIPE = 124;\nconst $TILDA = 126;\nconst $AT = 64;\nconst $BT = 96;\nfunction isWhitespace(code) {\n return (code >= $TAB && code <= $SPACE) || (code == $NBSP);\n}\nfunction isDigit(code) {\n return $0 <= code && code <= $9;\n}\nfunction isAsciiLetter(code) {\n return code >= $a && code <= $z || code >= $A && code <= $Z;\n}\nfunction isAsciiHexDigit(code) {\n return code >= $a && code <= $f || code >= $A && code <= $F || isDigit(code);\n}\nfunction isNewLine(code) {\n return code === $LF || code === $CR;\n}\nfunction isOctalDigit(code) {\n return $0 <= code && code <= $7;\n}\nfunction isQuote(code) {\n return code === $SQ || code === $DQ || code === $BT;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass ParseLocation {\n constructor(file, offset, line, col) {\n this.file = file;\n this.offset = offset;\n this.line = line;\n this.col = col;\n }\n toString() {\n return this.offset != null ? `${this.file.url}@${this.line}:${this.col}` : this.file.url;\n }\n moveBy(delta) {\n const source = this.file.content;\n const len = source.length;\n let offset = this.offset;\n let line = this.line;\n let col = this.col;\n while (offset > 0 && delta < 0) {\n offset--;\n delta++;\n const ch = source.charCodeAt(offset);\n if (ch == $LF) {\n line--;\n const priorLine = source.substring(0, offset - 1).lastIndexOf(String.fromCharCode($LF));\n col = priorLine > 0 ? offset - priorLine : offset;\n }\n else {\n col--;\n }\n }\n while (offset < len && delta > 0) {\n const ch = source.charCodeAt(offset);\n offset++;\n delta--;\n if (ch == $LF) {\n line++;\n col = 0;\n }\n else {\n col++;\n }\n }\n return new ParseLocation(this.file, offset, line, col);\n }\n // Return the source around the location\n // Up to `maxChars` or `maxLines` on each side of the location\n getContext(maxChars, maxLines) {\n const content = this.file.content;\n let startOffset = this.offset;\n if (startOffset != null) {\n if (startOffset > content.length - 1) {\n startOffset = content.length - 1;\n }\n let endOffset = startOffset;\n let ctxChars = 0;\n let ctxLines = 0;\n while (ctxChars < maxChars && startOffset > 0) {\n startOffset--;\n ctxChars++;\n if (content[startOffset] == '\\n') {\n if (++ctxLines == maxLines) {\n break;\n }\n }\n }\n ctxChars = 0;\n ctxLines = 0;\n while (ctxChars < maxChars && endOffset < content.length - 1) {\n endOffset++;\n ctxChars++;\n if (content[endOffset] == '\\n') {\n if (++ctxLines == maxLines) {\n break;\n }\n }\n }\n return {\n before: content.substring(startOffset, this.offset),\n after: content.substring(this.offset, endOffset + 1),\n };\n }\n return null;\n }\n}\nclass ParseSourceFile {\n constructor(content, url) {\n this.content = content;\n this.url = url;\n }\n}\nclass ParseSourceSpan {\n /**\n * Create an object that holds information about spans of tokens/nodes captured during\n * lexing/parsing of text.\n *\n * @param start\n * The location of the start of the span (having skipped leading trivia).\n * Skipping leading trivia makes source-spans more \"user friendly\", since things like HTML\n * elements will appear to begin at the start of the opening tag, rather than at the start of any\n * leading trivia, which could include newlines.\n *\n * @param end\n * The location of the end of the span.\n *\n * @param fullStart\n * The start of the token without skipping the leading trivia.\n * This is used by tooling that splits tokens further, such as extracting Angular interpolations\n * from text tokens. Such tooling creates new source-spans relative to the original token's\n * source-span. If leading trivia characters have been skipped then the new source-spans may be\n * incorrectly offset.\n *\n * @param details\n * Additional information (such as identifier names) that should be associated with the span.\n */\n constructor(start, end, fullStart = start, details = null) {\n this.start = start;\n this.end = end;\n this.fullStart = fullStart;\n this.details = details;\n }\n toString() {\n return this.start.file.content.substring(this.start.offset, this.end.offset);\n }\n}\nvar ParseErrorLevel;\n(function (ParseErrorLevel) {\n ParseErrorLevel[ParseErrorLevel[\"WARNING\"] = 0] = \"WARNING\";\n ParseErrorLevel[ParseErrorLevel[\"ERROR\"] = 1] = \"ERROR\";\n})(ParseErrorLevel || (ParseErrorLevel = {}));\nclass ParseError {\n constructor(span, msg, level = ParseErrorLevel.ERROR) {\n this.span = span;\n this.msg = msg;\n this.level = level;\n }\n contextualMessage() {\n const ctx = this.span.start.getContext(100, 3);\n return ctx ? `${this.msg} (\"${ctx.before}[${ParseErrorLevel[this.level]} ->]${ctx.after}\")` :\n this.msg;\n }\n toString() {\n const details = this.span.details ? `, ${this.span.details}` : '';\n return `${this.contextualMessage()}: ${this.span.start}${details}`;\n }\n}\n/**\n * Generates Source Span object for a given R3 Type for JIT mode.\n *\n * @param kind Component or Directive.\n * @param typeName name of the Component or Directive.\n * @param sourceUrl reference to Component or Directive source.\n * @returns instance of ParseSourceSpan that represent a given Component or Directive.\n */\nfunction r3JitTypeSourceSpan(kind, typeName, sourceUrl) {\n const sourceFileName = `in ${kind} ${typeName} in ${sourceUrl}`;\n const sourceFile = new ParseSourceFile('', sourceFileName);\n return new ParseSourceSpan(new ParseLocation(sourceFile, -1, -1, -1), new ParseLocation(sourceFile, -1, -1, -1));\n}\nlet _anonymousTypeIndex = 0;\nfunction identifierName(compileIdentifier) {\n if (!compileIdentifier || !compileIdentifier.reference) {\n return null;\n }\n const ref = compileIdentifier.reference;\n if (ref['__anonymousType']) {\n return ref['__anonymousType'];\n }\n if (ref['__forward_ref__']) {\n // We do not want to try to stringify a `forwardRef()` function because that would cause the\n // inner function to be evaluated too early, defeating the whole point of the `forwardRef`.\n return '__forward_ref__';\n }\n let identifier = stringify(ref);\n if (identifier.indexOf('(') >= 0) {\n // case: anonymous functions!\n identifier = `anonymous_${_anonymousTypeIndex++}`;\n ref['__anonymousType'] = identifier;\n }\n else {\n identifier = sanitizeIdentifier(identifier);\n }\n return identifier;\n}\nfunction sanitizeIdentifier(name) {\n return name.replace(/\\W/g, '_');\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * In TypeScript, tagged template functions expect a \"template object\", which is an array of\n * \"cooked\" strings plus a `raw` property that contains an array of \"raw\" strings. This is\n * typically constructed with a function called `__makeTemplateObject(cooked, raw)`, but it may not\n * be available in all environments.\n *\n * This is a JavaScript polyfill that uses __makeTemplateObject when it's available, but otherwise\n * creates an inline helper with the same functionality.\n *\n * In the inline function, if `Object.defineProperty` is available we use that to attach the `raw`\n * array.\n */\nconst makeTemplateObjectPolyfill = '(this&&this.__makeTemplateObject||function(e,t){return Object.defineProperty?Object.defineProperty(e,\"raw\",{value:t}):e.raw=t,e})';\nclass AbstractJsEmitterVisitor extends AbstractEmitterVisitor {\n constructor() {\n super(false);\n }\n visitWrappedNodeExpr(ast, ctx) {\n throw new Error('Cannot emit a WrappedNodeExpr in Javascript.');\n }\n visitDeclareVarStmt(stmt, ctx) {\n ctx.print(stmt, `var ${stmt.name}`);\n if (stmt.value) {\n ctx.print(stmt, ' = ');\n stmt.value.visitExpression(this, ctx);\n }\n ctx.println(stmt, `;`);\n return null;\n }\n visitTaggedTemplateExpr(ast, ctx) {\n // The following convoluted piece of code is effectively the downlevelled equivalent of\n // ```\n // tag`...`\n // ```\n // which is effectively like:\n // ```\n // tag(__makeTemplateObject(cooked, raw), expression1, expression2, ...);\n // ```\n const elements = ast.template.elements;\n ast.tag.visitExpression(this, ctx);\n ctx.print(ast, `(${makeTemplateObjectPolyfill}(`);\n ctx.print(ast, `[${elements.map(part => escapeIdentifier(part.text, false)).join(', ')}], `);\n ctx.print(ast, `[${elements.map(part => escapeIdentifier(part.rawText, false)).join(', ')}])`);\n ast.template.expressions.forEach(expression => {\n ctx.print(ast, ', ');\n expression.visitExpression(this, ctx);\n });\n ctx.print(ast, ')');\n return null;\n }\n visitFunctionExpr(ast, ctx) {\n ctx.print(ast, `function${ast.name ? ' ' + ast.name : ''}(`);\n this._visitParams(ast.params, ctx);\n ctx.println(ast, `) {`);\n ctx.incIndent();\n this.visitAllStatements(ast.statements, ctx);\n ctx.decIndent();\n ctx.print(ast, `}`);\n return null;\n }\n visitDeclareFunctionStmt(stmt, ctx) {\n ctx.print(stmt, `function ${stmt.name}(`);\n this._visitParams(stmt.params, ctx);\n ctx.println(stmt, `) {`);\n ctx.incIndent();\n this.visitAllStatements(stmt.statements, ctx);\n ctx.decIndent();\n ctx.println(stmt, `}`);\n return null;\n }\n visitLocalizedString(ast, ctx) {\n // The following convoluted piece of code is effectively the downlevelled equivalent of\n // ```\n // $localize `...`\n // ```\n // which is effectively like:\n // ```\n // $localize(__makeTemplateObject(cooked, raw), expression1, expression2, ...);\n // ```\n ctx.print(ast, `$localize(${makeTemplateObjectPolyfill}(`);\n const parts = [ast.serializeI18nHead()];\n for (let i = 1; i < ast.messageParts.length; i++) {\n parts.push(ast.serializeI18nTemplatePart(i));\n }\n ctx.print(ast, `[${parts.map(part => escapeIdentifier(part.cooked, false)).join(', ')}], `);\n ctx.print(ast, `[${parts.map(part => escapeIdentifier(part.raw, false)).join(', ')}])`);\n ast.expressions.forEach(expression => {\n ctx.print(ast, ', ');\n expression.visitExpression(this, ctx);\n });\n ctx.print(ast, ')');\n return null;\n }\n _visitParams(params, ctx) {\n this.visitAllObjects(param => ctx.print(null, param.name), params, ctx, ',');\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * The Trusted Types policy, or null if Trusted Types are not\n * enabled/supported, or undefined if the policy has not been created yet.\n */\nlet policy;\n/**\n * Returns the Trusted Types policy, or null if Trusted Types are not\n * enabled/supported. The first call to this function will create the policy.\n */\nfunction getPolicy() {\n if (policy === undefined) {\n policy = null;\n if (_global.trustedTypes) {\n try {\n policy =\n _global.trustedTypes.createPolicy('angular#unsafe-jit', {\n createScript: (s) => s,\n });\n }\n catch {\n // trustedTypes.createPolicy throws if called with a name that is\n // already registered, even in report-only mode. Until the API changes,\n // catch the error not to break the applications functionally. In such\n // cases, the code will fall back to using strings.\n }\n }\n }\n return policy;\n}\n/**\n * Unsafely promote a string to a TrustedScript, falling back to strings when\n * Trusted Types are not available.\n * @security In particular, it must be assured that the provided string will\n * never cause an XSS vulnerability if used in a context that will be\n * interpreted and executed as a script by a browser, e.g. when calling eval.\n */\nfunction trustedScriptFromString(script) {\n return getPolicy()?.createScript(script) || script;\n}\n/**\n * Unsafely call the Function constructor with the given string arguments.\n * @security This is a security-sensitive function; any use of this function\n * must go through security review. In particular, it must be assured that it\n * is only called from the JIT compiler, as use in other code can lead to XSS\n * vulnerabilities.\n */\nfunction newTrustedFunctionForJIT(...args) {\n if (!_global.trustedTypes) {\n // In environments that don't support Trusted Types, fall back to the most\n // straightforward implementation:\n return new Function(...args);\n }\n // Chrome currently does not support passing TrustedScript to the Function\n // constructor. The following implements the workaround proposed on the page\n // below, where the Chromium bug is also referenced:\n // https://github.com/w3c/webappsec-trusted-types/wiki/Trusted-Types-for-function-constructor\n const fnArgs = args.slice(0, -1).join(',');\n const fnBody = args[args.length - 1];\n const body = `(function anonymous(${fnArgs}\n) { ${fnBody}\n})`;\n // Using eval directly confuses the compiler and prevents this module from\n // being stripped out of JS binaries even if not used. The global['eval']\n // indirection fixes that.\n const fn = _global['eval'](trustedScriptFromString(body));\n if (fn.bind === undefined) {\n // Workaround for a browser bug that only exists in Chrome 83, where passing\n // a TrustedScript to eval just returns the TrustedScript back without\n // evaluating it. In that case, fall back to the most straightforward\n // implementation:\n return new Function(...args);\n }\n // To completely mimic the behavior of calling \"new Function\", two more\n // things need to happen:\n // 1. Stringifying the resulting function should return its source code\n fn.toString = () => body;\n // 2. When calling the resulting function, `this` should refer to `global`\n return fn.bind(_global);\n // When Trusted Types support in Function constructors is widely available,\n // the implementation of this function can be simplified to:\n // return new Function(...args.map(a => trustedScriptFromString(a)));\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * A helper class to manage the evaluation of JIT generated code.\n */\nclass JitEvaluator {\n /**\n *\n * @param sourceUrl The URL of the generated code.\n * @param statements An array of Angular statement AST nodes to be evaluated.\n * @param refResolver Resolves `o.ExternalReference`s into values.\n * @param createSourceMaps If true then create a source-map for the generated code and include it\n * inline as a source-map comment.\n * @returns A map of all the variables in the generated code.\n */\n evaluateStatements(sourceUrl, statements, refResolver, createSourceMaps) {\n const converter = new JitEmitterVisitor(refResolver);\n const ctx = EmitterVisitorContext.createRoot();\n // Ensure generated code is in strict mode\n if (statements.length > 0 && !isUseStrictStatement(statements[0])) {\n statements = [\n literal('use strict').toStmt(),\n ...statements,\n ];\n }\n converter.visitAllStatements(statements, ctx);\n converter.createReturnStmt(ctx);\n return this.evaluateCode(sourceUrl, ctx, converter.getArgs(), createSourceMaps);\n }\n /**\n * Evaluate a piece of JIT generated code.\n * @param sourceUrl The URL of this generated code.\n * @param ctx A context object that contains an AST of the code to be evaluated.\n * @param vars A map containing the names and values of variables that the evaluated code might\n * reference.\n * @param createSourceMap If true then create a source-map for the generated code and include it\n * inline as a source-map comment.\n * @returns The result of evaluating the code.\n */\n evaluateCode(sourceUrl, ctx, vars, createSourceMap) {\n let fnBody = `\"use strict\";${ctx.toSource()}\\n//# sourceURL=${sourceUrl}`;\n const fnArgNames = [];\n const fnArgValues = [];\n for (const argName in vars) {\n fnArgValues.push(vars[argName]);\n fnArgNames.push(argName);\n }\n if (createSourceMap) {\n // using `new Function(...)` generates a header, 1 line of no arguments, 2 lines otherwise\n // E.g. ```\n // function anonymous(a,b,c\n // /**/) { ... }```\n // We don't want to hard code this fact, so we auto detect it via an empty function first.\n const emptyFn = newTrustedFunctionForJIT(...fnArgNames.concat('return null;')).toString();\n const headerLines = emptyFn.slice(0, emptyFn.indexOf('return null;')).split('\\n').length - 1;\n fnBody += `\\n${ctx.toSourceMapGenerator(sourceUrl, headerLines).toJsComment()}`;\n }\n const fn = newTrustedFunctionForJIT(...fnArgNames.concat(fnBody));\n return this.executeFunction(fn, fnArgValues);\n }\n /**\n * Execute a JIT generated function by calling it.\n *\n * This method can be overridden in tests to capture the functions that are generated\n * by this `JitEvaluator` class.\n *\n * @param fn A function to execute.\n * @param args The arguments to pass to the function being executed.\n * @returns The return value of the executed function.\n */\n executeFunction(fn, args) {\n return fn(...args);\n }\n}\n/**\n * An Angular AST visitor that converts AST nodes into executable JavaScript code.\n */\nclass JitEmitterVisitor extends AbstractJsEmitterVisitor {\n constructor(refResolver) {\n super();\n this.refResolver = refResolver;\n this._evalArgNames = [];\n this._evalArgValues = [];\n this._evalExportedVars = [];\n }\n createReturnStmt(ctx) {\n const stmt = new ReturnStatement(new LiteralMapExpr(this._evalExportedVars.map(resultVar => new LiteralMapEntry(resultVar, variable(resultVar), false))));\n stmt.visitStatement(this, ctx);\n }\n getArgs() {\n const result = {};\n for (let i = 0; i < this._evalArgNames.length; i++) {\n result[this._evalArgNames[i]] = this._evalArgValues[i];\n }\n return result;\n }\n visitExternalExpr(ast, ctx) {\n this._emitReferenceToExternal(ast, this.refResolver.resolveExternalReference(ast.value), ctx);\n return null;\n }\n visitWrappedNodeExpr(ast, ctx) {\n this._emitReferenceToExternal(ast, ast.node, ctx);\n return null;\n }\n visitDeclareVarStmt(stmt, ctx) {\n if (stmt.hasModifier(StmtModifier.Exported)) {\n this._evalExportedVars.push(stmt.name);\n }\n return super.visitDeclareVarStmt(stmt, ctx);\n }\n visitDeclareFunctionStmt(stmt, ctx) {\n if (stmt.hasModifier(StmtModifier.Exported)) {\n this._evalExportedVars.push(stmt.name);\n }\n return super.visitDeclareFunctionStmt(stmt, ctx);\n }\n _emitReferenceToExternal(ast, value, ctx) {\n let id = this._evalArgValues.indexOf(value);\n if (id === -1) {\n id = this._evalArgValues.length;\n this._evalArgValues.push(value);\n const name = identifierName({ reference: value }) || 'val';\n this._evalArgNames.push(`jit_${name}_${id}`);\n }\n ctx.print(ast, this._evalArgNames[id]);\n }\n}\nfunction isUseStrictStatement(statement) {\n return statement.isEquivalent(literal('use strict').toStmt());\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction compileInjector(meta) {\n const definitionMap = new DefinitionMap();\n if (meta.providers !== null) {\n definitionMap.set('providers', meta.providers);\n }\n if (meta.imports.length > 0) {\n definitionMap.set('imports', literalArr(meta.imports));\n }\n const expression = importExpr(Identifiers.defineInjector).callFn([definitionMap.toLiteralMap()], undefined, true);\n const type = createInjectorType(meta);\n return { expression, type, statements: [] };\n}\nfunction createInjectorType(meta) {\n return new ExpressionType(importExpr(Identifiers.InjectorDeclaration, [new ExpressionType(meta.type.type)]));\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Implementation of `CompileReflector` which resolves references to @angular/core\n * symbols at runtime, according to a consumer-provided mapping.\n *\n * Only supports `resolveExternalReference`, all other methods throw.\n */\nclass R3JitReflector {\n constructor(context) {\n this.context = context;\n }\n resolveExternalReference(ref) {\n // This reflector only handles @angular/core imports.\n if (ref.moduleName !== '@angular/core') {\n throw new Error(`Cannot resolve external reference to ${ref.moduleName}, only references to @angular/core are supported.`);\n }\n if (!this.context.hasOwnProperty(ref.name)) {\n throw new Error(`No value provided for @angular/core symbol '${ref.name}'.`);\n }\n return this.context[ref.name];\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * How the selector scope of an NgModule (its declarations, imports, and exports) should be emitted\n * as a part of the NgModule definition.\n */\nvar R3SelectorScopeMode;\n(function (R3SelectorScopeMode) {\n /**\n * Emit the declarations inline into the module definition.\n *\n * This option is useful in certain contexts where it's known that JIT support is required. The\n * tradeoff here is that this emit style prevents directives and pipes from being tree-shaken if\n * they are unused, but the NgModule is used.\n */\n R3SelectorScopeMode[R3SelectorScopeMode[\"Inline\"] = 0] = \"Inline\";\n /**\n * Emit the declarations using a side effectful function call, `ɵɵsetNgModuleScope`, that is\n * guarded with the `ngJitMode` flag.\n *\n * This form of emit supports JIT and can be optimized away if the `ngJitMode` flag is set to\n * false, which allows unused directives and pipes to be tree-shaken.\n */\n R3SelectorScopeMode[R3SelectorScopeMode[\"SideEffect\"] = 1] = \"SideEffect\";\n /**\n * Don't generate selector scopes at all.\n *\n * This is useful for contexts where JIT support is known to be unnecessary.\n */\n R3SelectorScopeMode[R3SelectorScopeMode[\"Omit\"] = 2] = \"Omit\";\n})(R3SelectorScopeMode || (R3SelectorScopeMode = {}));\n/**\n * Construct an `R3NgModuleDef` for the given `R3NgModuleMetadata`.\n */\nfunction compileNgModule(meta) {\n const { adjacentType, internalType, bootstrap, declarations, imports, exports, schemas, containsForwardDecls, selectorScopeMode, id } = meta;\n const statements = [];\n const definitionMap = new DefinitionMap();\n definitionMap.set('type', internalType);\n if (bootstrap.length > 0) {\n definitionMap.set('bootstrap', refsToArray(bootstrap, containsForwardDecls));\n }\n if (selectorScopeMode === R3SelectorScopeMode.Inline) {\n // If requested to emit scope information inline, pass the `declarations`, `imports` and\n // `exports` to the `ɵɵdefineNgModule()` call directly.\n if (declarations.length > 0) {\n definitionMap.set('declarations', refsToArray(declarations, containsForwardDecls));\n }\n if (imports.length > 0) {\n definitionMap.set('imports', refsToArray(imports, containsForwardDecls));\n }\n if (exports.length > 0) {\n definitionMap.set('exports', refsToArray(exports, containsForwardDecls));\n }\n }\n else if (selectorScopeMode === R3SelectorScopeMode.SideEffect) {\n // In this mode, scope information is not passed into `ɵɵdefineNgModule` as it\n // would prevent tree-shaking of the declarations, imports and exports references. Instead, it's\n // patched onto the NgModule definition with a `ɵɵsetNgModuleScope` call that's guarded by the\n // `ngJitMode` flag.\n const setNgModuleScopeCall = generateSetNgModuleScopeCall(meta);\n if (setNgModuleScopeCall !== null) {\n statements.push(setNgModuleScopeCall);\n }\n }\n else {\n // Selector scope emit was not requested, so skip it.\n }\n if (schemas !== null && schemas.length > 0) {\n definitionMap.set('schemas', literalArr(schemas.map(ref => ref.value)));\n }\n if (id !== null) {\n definitionMap.set('id', id);\n // Generate a side-effectful call to register this NgModule by its id, as per the semantics of\n // NgModule ids.\n statements.push(importExpr(Identifiers.registerNgModuleType).callFn([adjacentType, id]).toStmt());\n }\n const expression = importExpr(Identifiers.defineNgModule).callFn([definitionMap.toLiteralMap()], undefined, true);\n const type = createNgModuleType(meta);\n return { expression, type, statements };\n}\n/**\n * This function is used in JIT mode to generate the call to `ɵɵdefineNgModule()` from a call to\n * `ɵɵngDeclareNgModule()`.\n */\nfunction compileNgModuleDeclarationExpression(meta) {\n const definitionMap = new DefinitionMap();\n definitionMap.set('type', new WrappedNodeExpr(meta.type));\n if (meta.bootstrap !== undefined) {\n definitionMap.set('bootstrap', new WrappedNodeExpr(meta.bootstrap));\n }\n if (meta.declarations !== undefined) {\n definitionMap.set('declarations', new WrappedNodeExpr(meta.declarations));\n }\n if (meta.imports !== undefined) {\n definitionMap.set('imports', new WrappedNodeExpr(meta.imports));\n }\n if (meta.exports !== undefined) {\n definitionMap.set('exports', new WrappedNodeExpr(meta.exports));\n }\n if (meta.schemas !== undefined) {\n definitionMap.set('schemas', new WrappedNodeExpr(meta.schemas));\n }\n if (meta.id !== undefined) {\n definitionMap.set('id', new WrappedNodeExpr(meta.id));\n }\n return importExpr(Identifiers.defineNgModule).callFn([definitionMap.toLiteralMap()]);\n}\nfunction createNgModuleType({ type: moduleType, declarations, exports, imports, includeImportTypes, publicDeclarationTypes }) {\n return new ExpressionType(importExpr(Identifiers.NgModuleDeclaration, [\n new ExpressionType(moduleType.type),\n publicDeclarationTypes === null ? tupleTypeOf(declarations) :\n tupleOfTypes(publicDeclarationTypes),\n includeImportTypes ? tupleTypeOf(imports) : NONE_TYPE,\n tupleTypeOf(exports),\n ]));\n}\n/**\n * Generates a function call to `ɵɵsetNgModuleScope` with all necessary information so that the\n * transitive module scope can be computed during runtime in JIT mode. This call is marked pure\n * such that the references to declarations, imports and exports may be elided causing these\n * symbols to become tree-shakeable.\n */\nfunction generateSetNgModuleScopeCall(meta) {\n const { adjacentType: moduleType, declarations, imports, exports, containsForwardDecls } = meta;\n const scopeMap = new DefinitionMap();\n if (declarations.length > 0) {\n scopeMap.set('declarations', refsToArray(declarations, containsForwardDecls));\n }\n if (imports.length > 0) {\n scopeMap.set('imports', refsToArray(imports, containsForwardDecls));\n }\n if (exports.length > 0) {\n scopeMap.set('exports', refsToArray(exports, containsForwardDecls));\n }\n if (Object.keys(scopeMap.values).length === 0) {\n return null;\n }\n // setNgModuleScope(...)\n const fnCall = new InvokeFunctionExpr(\n /* fn */ importExpr(Identifiers.setNgModuleScope), \n /* args */ [moduleType, scopeMap.toLiteralMap()]);\n // (ngJitMode guard) && setNgModuleScope(...)\n const guardedCall = jitOnlyGuardedExpression(fnCall);\n // function() { (ngJitMode guard) && setNgModuleScope(...); }\n const iife = new FunctionExpr(\n /* params */ [], \n /* statements */ [guardedCall.toStmt()]);\n // (function() { (ngJitMode guard) && setNgModuleScope(...); })()\n const iifeCall = new InvokeFunctionExpr(\n /* fn */ iife, \n /* args */ []);\n return iifeCall.toStmt();\n}\nfunction tupleTypeOf(exp) {\n const types = exp.map(ref => typeofExpr(ref.type));\n return exp.length > 0 ? expressionType(literalArr(types)) : NONE_TYPE;\n}\nfunction tupleOfTypes(types) {\n const typeofTypes = types.map(type => typeofExpr(type));\n return types.length > 0 ? expressionType(literalArr(typeofTypes)) : NONE_TYPE;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction compilePipeFromMetadata(metadata) {\n const definitionMapValues = [];\n // e.g. `name: 'myPipe'`\n definitionMapValues.push({ key: 'name', value: literal(metadata.pipeName), quoted: false });\n // e.g. `type: MyPipe`\n definitionMapValues.push({ key: 'type', value: metadata.type.value, quoted: false });\n // e.g. `pure: true`\n definitionMapValues.push({ key: 'pure', value: literal(metadata.pure), quoted: false });\n if (metadata.isStandalone) {\n definitionMapValues.push({ key: 'standalone', value: literal(true), quoted: false });\n }\n const expression = importExpr(Identifiers.definePipe).callFn([literalMap(definitionMapValues)], undefined, true);\n const type = createPipeType(metadata);\n return { expression, type, statements: [] };\n}\nfunction createPipeType(metadata) {\n return new ExpressionType(importExpr(Identifiers.PipeDeclaration, [\n typeWithParameters(metadata.type.type, metadata.typeArgumentCount),\n new ExpressionType(new LiteralExpr(metadata.pipeName)),\n new ExpressionType(new LiteralExpr(metadata.isStandalone)),\n ]));\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nvar R3TemplateDependencyKind;\n(function (R3TemplateDependencyKind) {\n R3TemplateDependencyKind[R3TemplateDependencyKind[\"Directive\"] = 0] = \"Directive\";\n R3TemplateDependencyKind[R3TemplateDependencyKind[\"Pipe\"] = 1] = \"Pipe\";\n R3TemplateDependencyKind[R3TemplateDependencyKind[\"NgModule\"] = 2] = \"NgModule\";\n})(R3TemplateDependencyKind || (R3TemplateDependencyKind = {}));\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass ParserError {\n constructor(message, input, errLocation, ctxLocation) {\n this.input = input;\n this.errLocation = errLocation;\n this.ctxLocation = ctxLocation;\n this.message = `Parser Error: ${message} ${errLocation} [${input}] in ${ctxLocation}`;\n }\n}\nclass ParseSpan {\n constructor(start, end) {\n this.start = start;\n this.end = end;\n }\n toAbsolute(absoluteOffset) {\n return new AbsoluteSourceSpan(absoluteOffset + this.start, absoluteOffset + this.end);\n }\n}\nclass AST {\n constructor(span, \n /**\n * Absolute location of the expression AST in a source code file.\n */\n sourceSpan) {\n this.span = span;\n this.sourceSpan = sourceSpan;\n }\n toString() {\n return 'AST';\n }\n}\nclass ASTWithName extends AST {\n constructor(span, sourceSpan, nameSpan) {\n super(span, sourceSpan);\n this.nameSpan = nameSpan;\n }\n}\nclass EmptyExpr extends AST {\n visit(visitor, context = null) {\n // do nothing\n }\n}\nclass ImplicitReceiver extends AST {\n visit(visitor, context = null) {\n return visitor.visitImplicitReceiver(this, context);\n }\n}\n/**\n * Receiver when something is accessed through `this` (e.g. `this.foo`). Note that this class\n * inherits from `ImplicitReceiver`, because accessing something through `this` is treated the\n * same as accessing it implicitly inside of an Angular template (e.g. `[attr.title]=\"this.title\"`\n * is the same as `[attr.title]=\"title\"`.). Inheriting allows for the `this` accesses to be treated\n * the same as implicit ones, except for a couple of exceptions like `$event` and `$any`.\n * TODO: we should find a way for this class not to extend from `ImplicitReceiver` in the future.\n */\nclass ThisReceiver extends ImplicitReceiver {\n visit(visitor, context = null) {\n return visitor.visitThisReceiver?.(this, context);\n }\n}\n/**\n * Multiple expressions separated by a semicolon.\n */\nclass Chain extends AST {\n constructor(span, sourceSpan, expressions) {\n super(span, sourceSpan);\n this.expressions = expressions;\n }\n visit(visitor, context = null) {\n return visitor.visitChain(this, context);\n }\n}\nclass Conditional extends AST {\n constructor(span, sourceSpan, condition, trueExp, falseExp) {\n super(span, sourceSpan);\n this.condition = condition;\n this.trueExp = trueExp;\n this.falseExp = falseExp;\n }\n visit(visitor, context = null) {\n return visitor.visitConditional(this, context);\n }\n}\nclass PropertyRead extends ASTWithName {\n constructor(span, sourceSpan, nameSpan, receiver, name) {\n super(span, sourceSpan, nameSpan);\n this.receiver = receiver;\n this.name = name;\n }\n visit(visitor, context = null) {\n return visitor.visitPropertyRead(this, context);\n }\n}\nclass PropertyWrite extends ASTWithName {\n constructor(span, sourceSpan, nameSpan, receiver, name, value) {\n super(span, sourceSpan, nameSpan);\n this.receiver = receiver;\n this.name = name;\n this.value = value;\n }\n visit(visitor, context = null) {\n return visitor.visitPropertyWrite(this, context);\n }\n}\nclass SafePropertyRead extends ASTWithName {\n constructor(span, sourceSpan, nameSpan, receiver, name) {\n super(span, sourceSpan, nameSpan);\n this.receiver = receiver;\n this.name = name;\n }\n visit(visitor, context = null) {\n return visitor.visitSafePropertyRead(this, context);\n }\n}\nclass KeyedRead extends AST {\n constructor(span, sourceSpan, receiver, key) {\n super(span, sourceSpan);\n this.receiver = receiver;\n this.key = key;\n }\n visit(visitor, context = null) {\n return visitor.visitKeyedRead(this, context);\n }\n}\nclass SafeKeyedRead extends AST {\n constructor(span, sourceSpan, receiver, key) {\n super(span, sourceSpan);\n this.receiver = receiver;\n this.key = key;\n }\n visit(visitor, context = null) {\n return visitor.visitSafeKeyedRead(this, context);\n }\n}\nclass KeyedWrite extends AST {\n constructor(span, sourceSpan, receiver, key, value) {\n super(span, sourceSpan);\n this.receiver = receiver;\n this.key = key;\n this.value = value;\n }\n visit(visitor, context = null) {\n return visitor.visitKeyedWrite(this, context);\n }\n}\nclass BindingPipe extends ASTWithName {\n constructor(span, sourceSpan, exp, name, args, nameSpan) {\n super(span, sourceSpan, nameSpan);\n this.exp = exp;\n this.name = name;\n this.args = args;\n }\n visit(visitor, context = null) {\n return visitor.visitPipe(this, context);\n }\n}\nclass LiteralPrimitive extends AST {\n constructor(span, sourceSpan, value) {\n super(span, sourceSpan);\n this.value = value;\n }\n visit(visitor, context = null) {\n return visitor.visitLiteralPrimitive(this, context);\n }\n}\nclass LiteralArray extends AST {\n constructor(span, sourceSpan, expressions) {\n super(span, sourceSpan);\n this.expressions = expressions;\n }\n visit(visitor, context = null) {\n return visitor.visitLiteralArray(this, context);\n }\n}\nclass LiteralMap extends AST {\n constructor(span, sourceSpan, keys, values) {\n super(span, sourceSpan);\n this.keys = keys;\n this.values = values;\n }\n visit(visitor, context = null) {\n return visitor.visitLiteralMap(this, context);\n }\n}\nclass Interpolation extends AST {\n constructor(span, sourceSpan, strings, expressions) {\n super(span, sourceSpan);\n this.strings = strings;\n this.expressions = expressions;\n }\n visit(visitor, context = null) {\n return visitor.visitInterpolation(this, context);\n }\n}\nclass Binary extends AST {\n constructor(span, sourceSpan, operation, left, right) {\n super(span, sourceSpan);\n this.operation = operation;\n this.left = left;\n this.right = right;\n }\n visit(visitor, context = null) {\n return visitor.visitBinary(this, context);\n }\n}\n/**\n * For backwards compatibility reasons, `Unary` inherits from `Binary` and mimics the binary AST\n * node that was originally used. This inheritance relation can be deleted in some future major,\n * after consumers have been given a chance to fully support Unary.\n */\nclass Unary extends Binary {\n /**\n * During the deprecation period this constructor is private, to avoid consumers from creating\n * a `Unary` with the fallback properties for `Binary`.\n */\n constructor(span, sourceSpan, operator, expr, binaryOp, binaryLeft, binaryRight) {\n super(span, sourceSpan, binaryOp, binaryLeft, binaryRight);\n this.operator = operator;\n this.expr = expr;\n // Redeclare the properties that are inherited from `Binary` as `never`, as consumers should not\n // depend on these fields when operating on `Unary`.\n this.left = null;\n this.right = null;\n this.operation = null;\n }\n /**\n * Creates a unary minus expression \"-x\", represented as `Binary` using \"0 - x\".\n */\n static createMinus(span, sourceSpan, expr) {\n return new Unary(span, sourceSpan, '-', expr, '-', new LiteralPrimitive(span, sourceSpan, 0), expr);\n }\n /**\n * Creates a unary plus expression \"+x\", represented as `Binary` using \"x - 0\".\n */\n static createPlus(span, sourceSpan, expr) {\n return new Unary(span, sourceSpan, '+', expr, '-', expr, new LiteralPrimitive(span, sourceSpan, 0));\n }\n visit(visitor, context = null) {\n if (visitor.visitUnary !== undefined) {\n return visitor.visitUnary(this, context);\n }\n return visitor.visitBinary(this, context);\n }\n}\nclass PrefixNot extends AST {\n constructor(span, sourceSpan, expression) {\n super(span, sourceSpan);\n this.expression = expression;\n }\n visit(visitor, context = null) {\n return visitor.visitPrefixNot(this, context);\n }\n}\nclass NonNullAssert extends AST {\n constructor(span, sourceSpan, expression) {\n super(span, sourceSpan);\n this.expression = expression;\n }\n visit(visitor, context = null) {\n return visitor.visitNonNullAssert(this, context);\n }\n}\nclass Call extends AST {\n constructor(span, sourceSpan, receiver, args, argumentSpan) {\n super(span, sourceSpan);\n this.receiver = receiver;\n this.args = args;\n this.argumentSpan = argumentSpan;\n }\n visit(visitor, context = null) {\n return visitor.visitCall(this, context);\n }\n}\nclass SafeCall extends AST {\n constructor(span, sourceSpan, receiver, args, argumentSpan) {\n super(span, sourceSpan);\n this.receiver = receiver;\n this.args = args;\n this.argumentSpan = argumentSpan;\n }\n visit(visitor, context = null) {\n return visitor.visitSafeCall(this, context);\n }\n}\n/**\n * Records the absolute position of a text span in a source file, where `start` and `end` are the\n * starting and ending byte offsets, respectively, of the text span in a source file.\n */\nclass AbsoluteSourceSpan {\n constructor(start, end) {\n this.start = start;\n this.end = end;\n }\n}\nclass ASTWithSource extends AST {\n constructor(ast, source, location, absoluteOffset, errors) {\n super(new ParseSpan(0, source === null ? 0 : source.length), new AbsoluteSourceSpan(absoluteOffset, source === null ? absoluteOffset : absoluteOffset + source.length));\n this.ast = ast;\n this.source = source;\n this.location = location;\n this.errors = errors;\n }\n visit(visitor, context = null) {\n if (visitor.visitASTWithSource) {\n return visitor.visitASTWithSource(this, context);\n }\n return this.ast.visit(visitor, context);\n }\n toString() {\n return `${this.source} in ${this.location}`;\n }\n}\nclass VariableBinding {\n /**\n * @param sourceSpan entire span of the binding.\n * @param key name of the LHS along with its span.\n * @param value optional value for the RHS along with its span.\n */\n constructor(sourceSpan, key, value) {\n this.sourceSpan = sourceSpan;\n this.key = key;\n this.value = value;\n }\n}\nclass ExpressionBinding {\n /**\n * @param sourceSpan entire span of the binding.\n * @param key binding name, like ngForOf, ngForTrackBy, ngIf, along with its\n * span. Note that the length of the span may not be the same as\n * `key.source.length`. For example,\n * 1. key.source = ngFor, key.span is for \"ngFor\"\n * 2. key.source = ngForOf, key.span is for \"of\"\n * 3. key.source = ngForTrackBy, key.span is for \"trackBy\"\n * @param value optional expression for the RHS.\n */\n constructor(sourceSpan, key, value) {\n this.sourceSpan = sourceSpan;\n this.key = key;\n this.value = value;\n }\n}\nclass RecursiveAstVisitor {\n visit(ast, context) {\n // The default implementation just visits every node.\n // Classes that extend RecursiveAstVisitor should override this function\n // to selectively visit the specified node.\n ast.visit(this, context);\n }\n visitUnary(ast, context) {\n this.visit(ast.expr, context);\n }\n visitBinary(ast, context) {\n this.visit(ast.left, context);\n this.visit(ast.right, context);\n }\n visitChain(ast, context) {\n this.visitAll(ast.expressions, context);\n }\n visitConditional(ast, context) {\n this.visit(ast.condition, context);\n this.visit(ast.trueExp, context);\n this.visit(ast.falseExp, context);\n }\n visitPipe(ast, context) {\n this.visit(ast.exp, context);\n this.visitAll(ast.args, context);\n }\n visitImplicitReceiver(ast, context) { }\n visitThisReceiver(ast, context) { }\n visitInterpolation(ast, context) {\n this.visitAll(ast.expressions, context);\n }\n visitKeyedRead(ast, context) {\n this.visit(ast.receiver, context);\n this.visit(ast.key, context);\n }\n visitKeyedWrite(ast, context) {\n this.visit(ast.receiver, context);\n this.visit(ast.key, context);\n this.visit(ast.value, context);\n }\n visitLiteralArray(ast, context) {\n this.visitAll(ast.expressions, context);\n }\n visitLiteralMap(ast, context) {\n this.visitAll(ast.values, context);\n }\n visitLiteralPrimitive(ast, context) { }\n visitPrefixNot(ast, context) {\n this.visit(ast.expression, context);\n }\n visitNonNullAssert(ast, context) {\n this.visit(ast.expression, context);\n }\n visitPropertyRead(ast, context) {\n this.visit(ast.receiver, context);\n }\n visitPropertyWrite(ast, context) {\n this.visit(ast.receiver, context);\n this.visit(ast.value, context);\n }\n visitSafePropertyRead(ast, context) {\n this.visit(ast.receiver, context);\n }\n visitSafeKeyedRead(ast, context) {\n this.visit(ast.receiver, context);\n this.visit(ast.key, context);\n }\n visitCall(ast, context) {\n this.visit(ast.receiver, context);\n this.visitAll(ast.args, context);\n }\n visitSafeCall(ast, context) {\n this.visit(ast.receiver, context);\n this.visitAll(ast.args, context);\n }\n // This is not part of the AstVisitor interface, just a helper method\n visitAll(asts, context) {\n for (const ast of asts) {\n this.visit(ast, context);\n }\n }\n}\nclass AstTransformer {\n visitImplicitReceiver(ast, context) {\n return ast;\n }\n visitThisReceiver(ast, context) {\n return ast;\n }\n visitInterpolation(ast, context) {\n return new Interpolation(ast.span, ast.sourceSpan, ast.strings, this.visitAll(ast.expressions));\n }\n visitLiteralPrimitive(ast, context) {\n return new LiteralPrimitive(ast.span, ast.sourceSpan, ast.value);\n }\n visitPropertyRead(ast, context) {\n return new PropertyRead(ast.span, ast.sourceSpan, ast.nameSpan, ast.receiver.visit(this), ast.name);\n }\n visitPropertyWrite(ast, context) {\n return new PropertyWrite(ast.span, ast.sourceSpan, ast.nameSpan, ast.receiver.visit(this), ast.name, ast.value.visit(this));\n }\n visitSafePropertyRead(ast, context) {\n return new SafePropertyRead(ast.span, ast.sourceSpan, ast.nameSpan, ast.receiver.visit(this), ast.name);\n }\n visitLiteralArray(ast, context) {\n return new LiteralArray(ast.span, ast.sourceSpan, this.visitAll(ast.expressions));\n }\n visitLiteralMap(ast, context) {\n return new LiteralMap(ast.span, ast.sourceSpan, ast.keys, this.visitAll(ast.values));\n }\n visitUnary(ast, context) {\n switch (ast.operator) {\n case '+':\n return Unary.createPlus(ast.span, ast.sourceSpan, ast.expr.visit(this));\n case '-':\n return Unary.createMinus(ast.span, ast.sourceSpan, ast.expr.visit(this));\n default:\n throw new Error(`Unknown unary operator ${ast.operator}`);\n }\n }\n visitBinary(ast, context) {\n return new Binary(ast.span, ast.sourceSpan, ast.operation, ast.left.visit(this), ast.right.visit(this));\n }\n visitPrefixNot(ast, context) {\n return new PrefixNot(ast.span, ast.sourceSpan, ast.expression.visit(this));\n }\n visitNonNullAssert(ast, context) {\n return new NonNullAssert(ast.span, ast.sourceSpan, ast.expression.visit(this));\n }\n visitConditional(ast, context) {\n return new Conditional(ast.span, ast.sourceSpan, ast.condition.visit(this), ast.trueExp.visit(this), ast.falseExp.visit(this));\n }\n visitPipe(ast, context) {\n return new BindingPipe(ast.span, ast.sourceSpan, ast.exp.visit(this), ast.name, this.visitAll(ast.args), ast.nameSpan);\n }\n visitKeyedRead(ast, context) {\n return new KeyedRead(ast.span, ast.sourceSpan, ast.receiver.visit(this), ast.key.visit(this));\n }\n visitKeyedWrite(ast, context) {\n return new KeyedWrite(ast.span, ast.sourceSpan, ast.receiver.visit(this), ast.key.visit(this), ast.value.visit(this));\n }\n visitCall(ast, context) {\n return new Call(ast.span, ast.sourceSpan, ast.receiver.visit(this), this.visitAll(ast.args), ast.argumentSpan);\n }\n visitSafeCall(ast, context) {\n return new SafeCall(ast.span, ast.sourceSpan, ast.receiver.visit(this), this.visitAll(ast.args), ast.argumentSpan);\n }\n visitAll(asts) {\n const res = [];\n for (let i = 0; i < asts.length; ++i) {\n res[i] = asts[i].visit(this);\n }\n return res;\n }\n visitChain(ast, context) {\n return new Chain(ast.span, ast.sourceSpan, this.visitAll(ast.expressions));\n }\n visitSafeKeyedRead(ast, context) {\n return new SafeKeyedRead(ast.span, ast.sourceSpan, ast.receiver.visit(this), ast.key.visit(this));\n }\n}\n// A transformer that only creates new nodes if the transformer makes a change or\n// a change is made a child node.\nclass AstMemoryEfficientTransformer {\n visitImplicitReceiver(ast, context) {\n return ast;\n }\n visitThisReceiver(ast, context) {\n return ast;\n }\n visitInterpolation(ast, context) {\n const expressions = this.visitAll(ast.expressions);\n if (expressions !== ast.expressions)\n return new Interpolation(ast.span, ast.sourceSpan, ast.strings, expressions);\n return ast;\n }\n visitLiteralPrimitive(ast, context) {\n return ast;\n }\n visitPropertyRead(ast, context) {\n const receiver = ast.receiver.visit(this);\n if (receiver !== ast.receiver) {\n return new PropertyRead(ast.span, ast.sourceSpan, ast.nameSpan, receiver, ast.name);\n }\n return ast;\n }\n visitPropertyWrite(ast, context) {\n const receiver = ast.receiver.visit(this);\n const value = ast.value.visit(this);\n if (receiver !== ast.receiver || value !== ast.value) {\n return new PropertyWrite(ast.span, ast.sourceSpan, ast.nameSpan, receiver, ast.name, value);\n }\n return ast;\n }\n visitSafePropertyRead(ast, context) {\n const receiver = ast.receiver.visit(this);\n if (receiver !== ast.receiver) {\n return new SafePropertyRead(ast.span, ast.sourceSpan, ast.nameSpan, receiver, ast.name);\n }\n return ast;\n }\n visitLiteralArray(ast, context) {\n const expressions = this.visitAll(ast.expressions);\n if (expressions !== ast.expressions) {\n return new LiteralArray(ast.span, ast.sourceSpan, expressions);\n }\n return ast;\n }\n visitLiteralMap(ast, context) {\n const values = this.visitAll(ast.values);\n if (values !== ast.values) {\n return new LiteralMap(ast.span, ast.sourceSpan, ast.keys, values);\n }\n return ast;\n }\n visitUnary(ast, context) {\n const expr = ast.expr.visit(this);\n if (expr !== ast.expr) {\n switch (ast.operator) {\n case '+':\n return Unary.createPlus(ast.span, ast.sourceSpan, expr);\n case '-':\n return Unary.createMinus(ast.span, ast.sourceSpan, expr);\n default:\n throw new Error(`Unknown unary operator ${ast.operator}`);\n }\n }\n return ast;\n }\n visitBinary(ast, context) {\n const left = ast.left.visit(this);\n const right = ast.right.visit(this);\n if (left !== ast.left || right !== ast.right) {\n return new Binary(ast.span, ast.sourceSpan, ast.operation, left, right);\n }\n return ast;\n }\n visitPrefixNot(ast, context) {\n const expression = ast.expression.visit(this);\n if (expression !== ast.expression) {\n return new PrefixNot(ast.span, ast.sourceSpan, expression);\n }\n return ast;\n }\n visitNonNullAssert(ast, context) {\n const expression = ast.expression.visit(this);\n if (expression !== ast.expression) {\n return new NonNullAssert(ast.span, ast.sourceSpan, expression);\n }\n return ast;\n }\n visitConditional(ast, context) {\n const condition = ast.condition.visit(this);\n const trueExp = ast.trueExp.visit(this);\n const falseExp = ast.falseExp.visit(this);\n if (condition !== ast.condition || trueExp !== ast.trueExp || falseExp !== ast.falseExp) {\n return new Conditional(ast.span, ast.sourceSpan, condition, trueExp, falseExp);\n }\n return ast;\n }\n visitPipe(ast, context) {\n const exp = ast.exp.visit(this);\n const args = this.visitAll(ast.args);\n if (exp !== ast.exp || args !== ast.args) {\n return new BindingPipe(ast.span, ast.sourceSpan, exp, ast.name, args, ast.nameSpan);\n }\n return ast;\n }\n visitKeyedRead(ast, context) {\n const obj = ast.receiver.visit(this);\n const key = ast.key.visit(this);\n if (obj !== ast.receiver || key !== ast.key) {\n return new KeyedRead(ast.span, ast.sourceSpan, obj, key);\n }\n return ast;\n }\n visitKeyedWrite(ast, context) {\n const obj = ast.receiver.visit(this);\n const key = ast.key.visit(this);\n const value = ast.value.visit(this);\n if (obj !== ast.receiver || key !== ast.key || value !== ast.value) {\n return new KeyedWrite(ast.span, ast.sourceSpan, obj, key, value);\n }\n return ast;\n }\n visitAll(asts) {\n const res = [];\n let modified = false;\n for (let i = 0; i < asts.length; ++i) {\n const original = asts[i];\n const value = original.visit(this);\n res[i] = value;\n modified = modified || value !== original;\n }\n return modified ? res : asts;\n }\n visitChain(ast, context) {\n const expressions = this.visitAll(ast.expressions);\n if (expressions !== ast.expressions) {\n return new Chain(ast.span, ast.sourceSpan, expressions);\n }\n return ast;\n }\n visitCall(ast, context) {\n const receiver = ast.receiver.visit(this);\n const args = this.visitAll(ast.args);\n if (receiver !== ast.receiver || args !== ast.args) {\n return new Call(ast.span, ast.sourceSpan, receiver, args, ast.argumentSpan);\n }\n return ast;\n }\n visitSafeCall(ast, context) {\n const receiver = ast.receiver.visit(this);\n const args = this.visitAll(ast.args);\n if (receiver !== ast.receiver || args !== ast.args) {\n return new SafeCall(ast.span, ast.sourceSpan, receiver, args, ast.argumentSpan);\n }\n return ast;\n }\n visitSafeKeyedRead(ast, context) {\n const obj = ast.receiver.visit(this);\n const key = ast.key.visit(this);\n if (obj !== ast.receiver || key !== ast.key) {\n return new SafeKeyedRead(ast.span, ast.sourceSpan, obj, key);\n }\n return ast;\n }\n}\n// Bindings\nclass ParsedProperty {\n constructor(name, expression, type, sourceSpan, keySpan, valueSpan) {\n this.name = name;\n this.expression = expression;\n this.type = type;\n this.sourceSpan = sourceSpan;\n this.keySpan = keySpan;\n this.valueSpan = valueSpan;\n this.isLiteral = this.type === ParsedPropertyType.LITERAL_ATTR;\n this.isAnimation = this.type === ParsedPropertyType.ANIMATION;\n }\n}\nvar ParsedPropertyType;\n(function (ParsedPropertyType) {\n ParsedPropertyType[ParsedPropertyType[\"DEFAULT\"] = 0] = \"DEFAULT\";\n ParsedPropertyType[ParsedPropertyType[\"LITERAL_ATTR\"] = 1] = \"LITERAL_ATTR\";\n ParsedPropertyType[ParsedPropertyType[\"ANIMATION\"] = 2] = \"ANIMATION\";\n})(ParsedPropertyType || (ParsedPropertyType = {}));\nclass ParsedEvent {\n // Regular events have a target\n // Animation events have a phase\n constructor(name, targetOrPhase, type, handler, sourceSpan, handlerSpan, keySpan) {\n this.name = name;\n this.targetOrPhase = targetOrPhase;\n this.type = type;\n this.handler = handler;\n this.sourceSpan = sourceSpan;\n this.handlerSpan = handlerSpan;\n this.keySpan = keySpan;\n }\n}\n/**\n * ParsedVariable represents a variable declaration in a microsyntax expression.\n */\nclass ParsedVariable {\n constructor(name, value, sourceSpan, keySpan, valueSpan) {\n this.name = name;\n this.value = value;\n this.sourceSpan = sourceSpan;\n this.keySpan = keySpan;\n this.valueSpan = valueSpan;\n }\n}\nclass BoundElementProperty {\n constructor(name, type, securityContext, value, unit, sourceSpan, keySpan, valueSpan) {\n this.name = name;\n this.type = type;\n this.securityContext = securityContext;\n this.value = value;\n this.unit = unit;\n this.sourceSpan = sourceSpan;\n this.keySpan = keySpan;\n this.valueSpan = valueSpan;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass EventHandlerVars {\n}\nEventHandlerVars.event = variable('$event');\n/**\n * Converts the given expression AST into an executable output AST, assuming the expression is\n * used in an action binding (e.g. an event handler).\n */\nfunction convertActionBinding(localResolver, implicitReceiver, action, bindingId, baseSourceSpan, implicitReceiverAccesses, globals) {\n if (!localResolver) {\n localResolver = new DefaultLocalResolver(globals);\n }\n const actionWithoutBuiltins = convertPropertyBindingBuiltins({\n createLiteralArrayConverter: (argCount) => {\n // Note: no caching for literal arrays in actions.\n return (args) => literalArr(args);\n },\n createLiteralMapConverter: (keys) => {\n // Note: no caching for literal maps in actions.\n return (values) => {\n const entries = keys.map((k, i) => ({\n key: k.key,\n value: values[i],\n quoted: k.quoted,\n }));\n return literalMap(entries);\n };\n },\n createPipeConverter: (name) => {\n throw new Error(`Illegal State: Actions are not allowed to contain pipes. Pipe: ${name}`);\n }\n }, action);\n const visitor = new _AstToIrVisitor(localResolver, implicitReceiver, bindingId, /* supportsInterpolation */ false, baseSourceSpan, implicitReceiverAccesses);\n const actionStmts = [];\n flattenStatements(actionWithoutBuiltins.visit(visitor, _Mode.Statement), actionStmts);\n prependTemporaryDecls(visitor.temporaryCount, bindingId, actionStmts);\n if (visitor.usesImplicitReceiver) {\n localResolver.notifyImplicitReceiverUse();\n }\n const lastIndex = actionStmts.length - 1;\n if (lastIndex >= 0) {\n const lastStatement = actionStmts[lastIndex];\n // Ensure that the value of the last expression statement is returned\n if (lastStatement instanceof ExpressionStatement) {\n actionStmts[lastIndex] = new ReturnStatement(lastStatement.expr);\n }\n }\n return actionStmts;\n}\nfunction convertPropertyBindingBuiltins(converterFactory, ast) {\n return convertBuiltins(converterFactory, ast);\n}\nclass ConvertPropertyBindingResult {\n constructor(stmts, currValExpr) {\n this.stmts = stmts;\n this.currValExpr = currValExpr;\n }\n}\n/**\n * Converts the given expression AST into an executable output AST, assuming the expression\n * is used in property binding. The expression has to be preprocessed via\n * `convertPropertyBindingBuiltins`.\n */\nfunction convertPropertyBinding(localResolver, implicitReceiver, expressionWithoutBuiltins, bindingId) {\n if (!localResolver) {\n localResolver = new DefaultLocalResolver();\n }\n const visitor = new _AstToIrVisitor(localResolver, implicitReceiver, bindingId, /* supportsInterpolation */ false);\n const outputExpr = expressionWithoutBuiltins.visit(visitor, _Mode.Expression);\n const stmts = getStatementsFromVisitor(visitor, bindingId);\n if (visitor.usesImplicitReceiver) {\n localResolver.notifyImplicitReceiverUse();\n }\n return new ConvertPropertyBindingResult(stmts, outputExpr);\n}\n/**\n * Given some expression, such as a binding or interpolation expression, and a context expression to\n * look values up on, visit each facet of the given expression resolving values from the context\n * expression such that a list of arguments can be derived from the found values that can be used as\n * arguments to an external update instruction.\n *\n * @param localResolver The resolver to use to look up expressions by name appropriately\n * @param contextVariableExpression The expression representing the context variable used to create\n * the final argument expressions\n * @param expressionWithArgumentsToExtract The expression to visit to figure out what values need to\n * be resolved and what arguments list to build.\n * @param bindingId A name prefix used to create temporary variable names if they're needed for the\n * arguments generated\n * @returns An array of expressions that can be passed as arguments to instruction expressions like\n * `o.importExpr(R3.propertyInterpolate).callFn(result)`\n */\nfunction convertUpdateArguments(localResolver, contextVariableExpression, expressionWithArgumentsToExtract, bindingId) {\n const visitor = new _AstToIrVisitor(localResolver, contextVariableExpression, bindingId, /* supportsInterpolation */ true);\n const outputExpr = visitor.visitInterpolation(expressionWithArgumentsToExtract, _Mode.Expression);\n if (visitor.usesImplicitReceiver) {\n localResolver.notifyImplicitReceiverUse();\n }\n const stmts = getStatementsFromVisitor(visitor, bindingId);\n const args = outputExpr.args;\n return { stmts, args };\n}\nfunction getStatementsFromVisitor(visitor, bindingId) {\n const stmts = [];\n for (let i = 0; i < visitor.temporaryCount; i++) {\n stmts.push(temporaryDeclaration(bindingId, i));\n }\n return stmts;\n}\nfunction convertBuiltins(converterFactory, ast) {\n const visitor = new _BuiltinAstConverter(converterFactory);\n return ast.visit(visitor);\n}\nfunction temporaryName(bindingId, temporaryNumber) {\n return `tmp_${bindingId}_${temporaryNumber}`;\n}\nfunction temporaryDeclaration(bindingId, temporaryNumber) {\n return new DeclareVarStmt(temporaryName(bindingId, temporaryNumber));\n}\nfunction prependTemporaryDecls(temporaryCount, bindingId, statements) {\n for (let i = temporaryCount - 1; i >= 0; i--) {\n statements.unshift(temporaryDeclaration(bindingId, i));\n }\n}\nvar _Mode;\n(function (_Mode) {\n _Mode[_Mode[\"Statement\"] = 0] = \"Statement\";\n _Mode[_Mode[\"Expression\"] = 1] = \"Expression\";\n})(_Mode || (_Mode = {}));\nfunction ensureStatementMode(mode, ast) {\n if (mode !== _Mode.Statement) {\n throw new Error(`Expected a statement, but saw ${ast}`);\n }\n}\nfunction ensureExpressionMode(mode, ast) {\n if (mode !== _Mode.Expression) {\n throw new Error(`Expected an expression, but saw ${ast}`);\n }\n}\nfunction convertToStatementIfNeeded(mode, expr) {\n if (mode === _Mode.Statement) {\n return expr.toStmt();\n }\n else {\n return expr;\n }\n}\nclass _BuiltinAstConverter extends AstTransformer {\n constructor(_converterFactory) {\n super();\n this._converterFactory = _converterFactory;\n }\n visitPipe(ast, context) {\n const args = [ast.exp, ...ast.args].map(ast => ast.visit(this, context));\n return new BuiltinFunctionCall(ast.span, ast.sourceSpan, args, this._converterFactory.createPipeConverter(ast.name, args.length));\n }\n visitLiteralArray(ast, context) {\n const args = ast.expressions.map(ast => ast.visit(this, context));\n return new BuiltinFunctionCall(ast.span, ast.sourceSpan, args, this._converterFactory.createLiteralArrayConverter(ast.expressions.length));\n }\n visitLiteralMap(ast, context) {\n const args = ast.values.map(ast => ast.visit(this, context));\n return new BuiltinFunctionCall(ast.span, ast.sourceSpan, args, this._converterFactory.createLiteralMapConverter(ast.keys));\n }\n}\nclass _AstToIrVisitor {\n constructor(_localResolver, _implicitReceiver, bindingId, supportsInterpolation, baseSourceSpan, implicitReceiverAccesses) {\n this._localResolver = _localResolver;\n this._implicitReceiver = _implicitReceiver;\n this.bindingId = bindingId;\n this.supportsInterpolation = supportsInterpolation;\n this.baseSourceSpan = baseSourceSpan;\n this.implicitReceiverAccesses = implicitReceiverAccesses;\n this._nodeMap = new Map();\n this._resultMap = new Map();\n this._currentTemporary = 0;\n this.temporaryCount = 0;\n this.usesImplicitReceiver = false;\n }\n visitUnary(ast, mode) {\n let op;\n switch (ast.operator) {\n case '+':\n op = UnaryOperator.Plus;\n break;\n case '-':\n op = UnaryOperator.Minus;\n break;\n default:\n throw new Error(`Unsupported operator ${ast.operator}`);\n }\n return convertToStatementIfNeeded(mode, new UnaryOperatorExpr(op, this._visit(ast.expr, _Mode.Expression), undefined, this.convertSourceSpan(ast.span)));\n }\n visitBinary(ast, mode) {\n let op;\n switch (ast.operation) {\n case '+':\n op = BinaryOperator.Plus;\n break;\n case '-':\n op = BinaryOperator.Minus;\n break;\n case '*':\n op = BinaryOperator.Multiply;\n break;\n case '/':\n op = BinaryOperator.Divide;\n break;\n case '%':\n op = BinaryOperator.Modulo;\n break;\n case '&&':\n op = BinaryOperator.And;\n break;\n case '||':\n op = BinaryOperator.Or;\n break;\n case '==':\n op = BinaryOperator.Equals;\n break;\n case '!=':\n op = BinaryOperator.NotEquals;\n break;\n case '===':\n op = BinaryOperator.Identical;\n break;\n case '!==':\n op = BinaryOperator.NotIdentical;\n break;\n case '<':\n op = BinaryOperator.Lower;\n break;\n case '>':\n op = BinaryOperator.Bigger;\n break;\n case '<=':\n op = BinaryOperator.LowerEquals;\n break;\n case '>=':\n op = BinaryOperator.BiggerEquals;\n break;\n case '??':\n return this.convertNullishCoalesce(ast, mode);\n default:\n throw new Error(`Unsupported operation ${ast.operation}`);\n }\n return convertToStatementIfNeeded(mode, new BinaryOperatorExpr(op, this._visit(ast.left, _Mode.Expression), this._visit(ast.right, _Mode.Expression), undefined, this.convertSourceSpan(ast.span)));\n }\n visitChain(ast, mode) {\n ensureStatementMode(mode, ast);\n return this.visitAll(ast.expressions, mode);\n }\n visitConditional(ast, mode) {\n const value = this._visit(ast.condition, _Mode.Expression);\n return convertToStatementIfNeeded(mode, value.conditional(this._visit(ast.trueExp, _Mode.Expression), this._visit(ast.falseExp, _Mode.Expression), this.convertSourceSpan(ast.span)));\n }\n visitPipe(ast, mode) {\n throw new Error(`Illegal state: Pipes should have been converted into functions. Pipe: ${ast.name}`);\n }\n visitImplicitReceiver(ast, mode) {\n ensureExpressionMode(mode, ast);\n this.usesImplicitReceiver = true;\n return this._implicitReceiver;\n }\n visitThisReceiver(ast, mode) {\n return this.visitImplicitReceiver(ast, mode);\n }\n visitInterpolation(ast, mode) {\n if (!this.supportsInterpolation) {\n throw new Error('Unexpected interpolation');\n }\n ensureExpressionMode(mode, ast);\n let args = [];\n for (let i = 0; i < ast.strings.length - 1; i++) {\n args.push(literal(ast.strings[i]));\n args.push(this._visit(ast.expressions[i], _Mode.Expression));\n }\n args.push(literal(ast.strings[ast.strings.length - 1]));\n // If we're dealing with an interpolation of 1 value with an empty prefix and suffix, reduce the\n // args returned to just the value, because we're going to pass it to a special instruction.\n const strings = ast.strings;\n if (strings.length === 2 && strings[0] === '' && strings[1] === '') {\n // Single argument interpolate instructions.\n args = [args[1]];\n }\n else if (ast.expressions.length >= 9) {\n // 9 or more arguments must be passed to the `interpolateV`-style instructions, which accept\n // an array of arguments\n args = [literalArr(args)];\n }\n return new InterpolationExpression(args);\n }\n visitKeyedRead(ast, mode) {\n const leftMostSafe = this.leftMostSafeNode(ast);\n if (leftMostSafe) {\n return this.convertSafeAccess(ast, leftMostSafe, mode);\n }\n else {\n return convertToStatementIfNeeded(mode, this._visit(ast.receiver, _Mode.Expression).key(this._visit(ast.key, _Mode.Expression)));\n }\n }\n visitKeyedWrite(ast, mode) {\n const obj = this._visit(ast.receiver, _Mode.Expression);\n const key = this._visit(ast.key, _Mode.Expression);\n const value = this._visit(ast.value, _Mode.Expression);\n if (obj === this._implicitReceiver) {\n this._localResolver.maybeRestoreView();\n }\n return convertToStatementIfNeeded(mode, obj.key(key).set(value));\n }\n visitLiteralArray(ast, mode) {\n throw new Error(`Illegal State: literal arrays should have been converted into functions`);\n }\n visitLiteralMap(ast, mode) {\n throw new Error(`Illegal State: literal maps should have been converted into functions`);\n }\n visitLiteralPrimitive(ast, mode) {\n // For literal values of null, undefined, true, or false allow type interference\n // to infer the type.\n const type = ast.value === null || ast.value === undefined || ast.value === true || ast.value === true ?\n INFERRED_TYPE :\n undefined;\n return convertToStatementIfNeeded(mode, literal(ast.value, type, this.convertSourceSpan(ast.span)));\n }\n _getLocal(name, receiver) {\n if (this._localResolver.globals?.has(name) && receiver instanceof ThisReceiver) {\n return null;\n }\n return this._localResolver.getLocal(name);\n }\n visitPrefixNot(ast, mode) {\n return convertToStatementIfNeeded(mode, not(this._visit(ast.expression, _Mode.Expression)));\n }\n visitNonNullAssert(ast, mode) {\n return convertToStatementIfNeeded(mode, this._visit(ast.expression, _Mode.Expression));\n }\n visitPropertyRead(ast, mode) {\n const leftMostSafe = this.leftMostSafeNode(ast);\n if (leftMostSafe) {\n return this.convertSafeAccess(ast, leftMostSafe, mode);\n }\n else {\n let result = null;\n const prevUsesImplicitReceiver = this.usesImplicitReceiver;\n const receiver = this._visit(ast.receiver, _Mode.Expression);\n if (receiver === this._implicitReceiver) {\n result = this._getLocal(ast.name, ast.receiver);\n if (result) {\n // Restore the previous \"usesImplicitReceiver\" state since the implicit\n // receiver has been replaced with a resolved local expression.\n this.usesImplicitReceiver = prevUsesImplicitReceiver;\n this.addImplicitReceiverAccess(ast.name);\n }\n }\n if (result == null) {\n result = receiver.prop(ast.name, this.convertSourceSpan(ast.span));\n }\n return convertToStatementIfNeeded(mode, result);\n }\n }\n visitPropertyWrite(ast, mode) {\n const receiver = this._visit(ast.receiver, _Mode.Expression);\n const prevUsesImplicitReceiver = this.usesImplicitReceiver;\n let varExpr = null;\n if (receiver === this._implicitReceiver) {\n const localExpr = this._getLocal(ast.name, ast.receiver);\n if (localExpr) {\n if (localExpr instanceof ReadPropExpr) {\n // If the local variable is a property read expression, it's a reference\n // to a 'context.property' value and will be used as the target of the\n // write expression.\n varExpr = localExpr;\n // Restore the previous \"usesImplicitReceiver\" state since the implicit\n // receiver has been replaced with a resolved local expression.\n this.usesImplicitReceiver = prevUsesImplicitReceiver;\n this.addImplicitReceiverAccess(ast.name);\n }\n else {\n // Otherwise it's an error.\n const receiver = ast.name;\n const value = (ast.value instanceof PropertyRead) ? ast.value.name : undefined;\n throw new Error(`Cannot assign value \"${value}\" to template variable \"${receiver}\". Template variables are read-only.`);\n }\n }\n }\n // If no local expression could be produced, use the original receiver's\n // property as the target.\n if (varExpr === null) {\n varExpr = receiver.prop(ast.name, this.convertSourceSpan(ast.span));\n }\n return convertToStatementIfNeeded(mode, varExpr.set(this._visit(ast.value, _Mode.Expression)));\n }\n visitSafePropertyRead(ast, mode) {\n return this.convertSafeAccess(ast, this.leftMostSafeNode(ast), mode);\n }\n visitSafeKeyedRead(ast, mode) {\n return this.convertSafeAccess(ast, this.leftMostSafeNode(ast), mode);\n }\n visitAll(asts, mode) {\n return asts.map(ast => this._visit(ast, mode));\n }\n visitCall(ast, mode) {\n const leftMostSafe = this.leftMostSafeNode(ast);\n if (leftMostSafe) {\n return this.convertSafeAccess(ast, leftMostSafe, mode);\n }\n const convertedArgs = this.visitAll(ast.args, _Mode.Expression);\n if (ast instanceof BuiltinFunctionCall) {\n return convertToStatementIfNeeded(mode, ast.converter(convertedArgs));\n }\n const receiver = ast.receiver;\n if (receiver instanceof PropertyRead &&\n receiver.receiver instanceof ImplicitReceiver &&\n !(receiver.receiver instanceof ThisReceiver) && receiver.name === '$any') {\n if (convertedArgs.length !== 1) {\n throw new Error(`Invalid call to $any, expected 1 argument but received ${convertedArgs.length || 'none'}`);\n }\n return convertToStatementIfNeeded(mode, convertedArgs[0]);\n }\n const call = this._visit(receiver, _Mode.Expression)\n .callFn(convertedArgs, this.convertSourceSpan(ast.span));\n return convertToStatementIfNeeded(mode, call);\n }\n visitSafeCall(ast, mode) {\n return this.convertSafeAccess(ast, this.leftMostSafeNode(ast), mode);\n }\n _visit(ast, mode) {\n const result = this._resultMap.get(ast);\n if (result)\n return result;\n return (this._nodeMap.get(ast) || ast).visit(this, mode);\n }\n convertSafeAccess(ast, leftMostSafe, mode) {\n // If the expression contains a safe access node on the left it needs to be converted to\n // an expression that guards the access to the member by checking the receiver for blank. As\n // execution proceeds from left to right, the left most part of the expression must be guarded\n // first but, because member access is left associative, the right side of the expression is at\n // the top of the AST. The desired result requires lifting a copy of the left part of the\n // expression up to test it for blank before generating the unguarded version.\n // Consider, for example the following expression: a?.b.c?.d.e\n // This results in the ast:\n // .\n // / \\\n // ?. e\n // / \\\n // . d\n // / \\\n // ?. c\n // / \\\n // a b\n // The following tree should be generated:\n //\n // /---- ? ----\\\n // / | \\\n // a /--- ? ---\\ null\n // / | \\\n // . . null\n // / \\ / \\\n // . c . e\n // / \\ / \\\n // a b . d\n // / \\\n // . c\n // / \\\n // a b\n //\n // Notice that the first guard condition is the left hand of the left most safe access node\n // which comes in as leftMostSafe to this routine.\n let guardedExpression = this._visit(leftMostSafe.receiver, _Mode.Expression);\n let temporary = undefined;\n if (this.needsTemporaryInSafeAccess(leftMostSafe.receiver)) {\n // If the expression has method calls or pipes then we need to save the result into a\n // temporary variable to avoid calling stateful or impure code more than once.\n temporary = this.allocateTemporary();\n // Preserve the result in the temporary variable\n guardedExpression = temporary.set(guardedExpression);\n // Ensure all further references to the guarded expression refer to the temporary instead.\n this._resultMap.set(leftMostSafe.receiver, temporary);\n }\n const condition = guardedExpression.isBlank();\n // Convert the ast to an unguarded access to the receiver's member. The map will substitute\n // leftMostNode with its unguarded version in the call to `this.visit()`.\n if (leftMostSafe instanceof SafeCall) {\n this._nodeMap.set(leftMostSafe, new Call(leftMostSafe.span, leftMostSafe.sourceSpan, leftMostSafe.receiver, leftMostSafe.args, leftMostSafe.argumentSpan));\n }\n else if (leftMostSafe instanceof SafeKeyedRead) {\n this._nodeMap.set(leftMostSafe, new KeyedRead(leftMostSafe.span, leftMostSafe.sourceSpan, leftMostSafe.receiver, leftMostSafe.key));\n }\n else {\n this._nodeMap.set(leftMostSafe, new PropertyRead(leftMostSafe.span, leftMostSafe.sourceSpan, leftMostSafe.nameSpan, leftMostSafe.receiver, leftMostSafe.name));\n }\n // Recursively convert the node now without the guarded member access.\n const access = this._visit(ast, _Mode.Expression);\n // Remove the mapping. This is not strictly required as the converter only traverses each node\n // once but is safer if the conversion is changed to traverse the nodes more than once.\n this._nodeMap.delete(leftMostSafe);\n // If we allocated a temporary, release it.\n if (temporary) {\n this.releaseTemporary(temporary);\n }\n // Produce the conditional\n return convertToStatementIfNeeded(mode, condition.conditional(NULL_EXPR, access));\n }\n convertNullishCoalesce(ast, mode) {\n const left = this._visit(ast.left, _Mode.Expression);\n const right = this._visit(ast.right, _Mode.Expression);\n const temporary = this.allocateTemporary();\n this.releaseTemporary(temporary);\n // Generate the following expression. It is identical to how TS\n // transpiles binary expressions with a nullish coalescing operator.\n // let temp;\n // (temp = a) !== null && temp !== undefined ? temp : b;\n return convertToStatementIfNeeded(mode, temporary.set(left)\n .notIdentical(NULL_EXPR)\n .and(temporary.notIdentical(literal(undefined)))\n .conditional(temporary, right));\n }\n // Given an expression of the form a?.b.c?.d.e then the left most safe node is\n // the (a?.b). The . and ?. are left associative thus can be rewritten as:\n // ((((a?.c).b).c)?.d).e. This returns the most deeply nested safe read or\n // safe method call as this needs to be transformed initially to:\n // a == null ? null : a.c.b.c?.d.e\n // then to:\n // a == null ? null : a.b.c == null ? null : a.b.c.d.e\n leftMostSafeNode(ast) {\n const visit = (visitor, ast) => {\n return (this._nodeMap.get(ast) || ast).visit(visitor);\n };\n return ast.visit({\n visitUnary(ast) {\n return null;\n },\n visitBinary(ast) {\n return null;\n },\n visitChain(ast) {\n return null;\n },\n visitConditional(ast) {\n return null;\n },\n visitCall(ast) {\n return visit(this, ast.receiver);\n },\n visitSafeCall(ast) {\n return visit(this, ast.receiver) || ast;\n },\n visitImplicitReceiver(ast) {\n return null;\n },\n visitThisReceiver(ast) {\n return null;\n },\n visitInterpolation(ast) {\n return null;\n },\n visitKeyedRead(ast) {\n return visit(this, ast.receiver);\n },\n visitKeyedWrite(ast) {\n return null;\n },\n visitLiteralArray(ast) {\n return null;\n },\n visitLiteralMap(ast) {\n return null;\n },\n visitLiteralPrimitive(ast) {\n return null;\n },\n visitPipe(ast) {\n return null;\n },\n visitPrefixNot(ast) {\n return null;\n },\n visitNonNullAssert(ast) {\n return null;\n },\n visitPropertyRead(ast) {\n return visit(this, ast.receiver);\n },\n visitPropertyWrite(ast) {\n return null;\n },\n visitSafePropertyRead(ast) {\n return visit(this, ast.receiver) || ast;\n },\n visitSafeKeyedRead(ast) {\n return visit(this, ast.receiver) || ast;\n }\n });\n }\n // Returns true of the AST includes a method or a pipe indicating that, if the\n // expression is used as the target of a safe property or method access then\n // the expression should be stored into a temporary variable.\n needsTemporaryInSafeAccess(ast) {\n const visit = (visitor, ast) => {\n return ast && (this._nodeMap.get(ast) || ast).visit(visitor);\n };\n const visitSome = (visitor, ast) => {\n return ast.some(ast => visit(visitor, ast));\n };\n return ast.visit({\n visitUnary(ast) {\n return visit(this, ast.expr);\n },\n visitBinary(ast) {\n return visit(this, ast.left) || visit(this, ast.right);\n },\n visitChain(ast) {\n return false;\n },\n visitConditional(ast) {\n return visit(this, ast.condition) || visit(this, ast.trueExp) || visit(this, ast.falseExp);\n },\n visitCall(ast) {\n return true;\n },\n visitSafeCall(ast) {\n return true;\n },\n visitImplicitReceiver(ast) {\n return false;\n },\n visitThisReceiver(ast) {\n return false;\n },\n visitInterpolation(ast) {\n return visitSome(this, ast.expressions);\n },\n visitKeyedRead(ast) {\n return false;\n },\n visitKeyedWrite(ast) {\n return false;\n },\n visitLiteralArray(ast) {\n return true;\n },\n visitLiteralMap(ast) {\n return true;\n },\n visitLiteralPrimitive(ast) {\n return false;\n },\n visitPipe(ast) {\n return true;\n },\n visitPrefixNot(ast) {\n return visit(this, ast.expression);\n },\n visitNonNullAssert(ast) {\n return visit(this, ast.expression);\n },\n visitPropertyRead(ast) {\n return false;\n },\n visitPropertyWrite(ast) {\n return false;\n },\n visitSafePropertyRead(ast) {\n return false;\n },\n visitSafeKeyedRead(ast) {\n return false;\n }\n });\n }\n allocateTemporary() {\n const tempNumber = this._currentTemporary++;\n this.temporaryCount = Math.max(this._currentTemporary, this.temporaryCount);\n return new ReadVarExpr(temporaryName(this.bindingId, tempNumber));\n }\n releaseTemporary(temporary) {\n this._currentTemporary--;\n if (temporary.name != temporaryName(this.bindingId, this._currentTemporary)) {\n throw new Error(`Temporary ${temporary.name} released out of order`);\n }\n }\n /**\n * Creates an absolute `ParseSourceSpan` from the relative `ParseSpan`.\n *\n * `ParseSpan` objects are relative to the start of the expression.\n * This method converts these to full `ParseSourceSpan` objects that\n * show where the span is within the overall source file.\n *\n * @param span the relative span to convert.\n * @returns a `ParseSourceSpan` for the given span or null if no\n * `baseSourceSpan` was provided to this class.\n */\n convertSourceSpan(span) {\n if (this.baseSourceSpan) {\n const start = this.baseSourceSpan.start.moveBy(span.start);\n const end = this.baseSourceSpan.start.moveBy(span.end);\n const fullStart = this.baseSourceSpan.fullStart.moveBy(span.start);\n return new ParseSourceSpan(start, end, fullStart);\n }\n else {\n return null;\n }\n }\n /** Adds the name of an AST to the list of implicit receiver accesses. */\n addImplicitReceiverAccess(name) {\n if (this.implicitReceiverAccesses) {\n this.implicitReceiverAccesses.add(name);\n }\n }\n}\nfunction flattenStatements(arg, output) {\n if (Array.isArray(arg)) {\n arg.forEach((entry) => flattenStatements(entry, output));\n }\n else {\n output.push(arg);\n }\n}\nfunction unsupported() {\n throw new Error('Unsupported operation');\n}\nclass InterpolationExpression extends Expression {\n constructor(args) {\n super(null, null);\n this.args = args;\n this.isConstant = unsupported;\n this.isEquivalent = unsupported;\n this.visitExpression = unsupported;\n }\n}\nclass DefaultLocalResolver {\n constructor(globals) {\n this.globals = globals;\n }\n notifyImplicitReceiverUse() { }\n maybeRestoreView() { }\n getLocal(name) {\n if (name === EventHandlerVars.event.name) {\n return EventHandlerVars.event;\n }\n return null;\n }\n}\nclass BuiltinFunctionCall extends Call {\n constructor(span, sourceSpan, args, converter) {\n super(span, sourceSpan, new EmptyExpr(span, sourceSpan), args, null);\n this.converter = converter;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// =================================================================================================\n// =================================================================================================\n// =========== S T O P - S T O P - S T O P - S T O P - S T O P - S T O P ===========\n// =================================================================================================\n// =================================================================================================\n//\n// DO NOT EDIT THIS LIST OF SECURITY SENSITIVE PROPERTIES WITHOUT A SECURITY REVIEW!\n// Reach out to mprobst for details.\n//\n// =================================================================================================\n/** Map from tagName|propertyName to SecurityContext. Properties applying to all tags use '*'. */\nlet _SECURITY_SCHEMA;\nfunction SECURITY_SCHEMA() {\n if (!_SECURITY_SCHEMA) {\n _SECURITY_SCHEMA = {};\n // Case is insignificant below, all element and attribute names are lower-cased for lookup.\n registerContext(SecurityContext.HTML, [\n 'iframe|srcdoc',\n '*|innerHTML',\n '*|outerHTML',\n ]);\n registerContext(SecurityContext.STYLE, ['*|style']);\n // NB: no SCRIPT contexts here, they are never allowed due to the parser stripping them.\n registerContext(SecurityContext.URL, [\n '*|formAction',\n 'area|href',\n 'area|ping',\n 'audio|src',\n 'a|href',\n 'a|ping',\n 'blockquote|cite',\n 'body|background',\n 'del|cite',\n 'form|action',\n 'img|src',\n 'input|src',\n 'ins|cite',\n 'q|cite',\n 'source|src',\n 'track|src',\n 'video|poster',\n 'video|src',\n ]);\n registerContext(SecurityContext.RESOURCE_URL, [\n 'applet|code',\n 'applet|codebase',\n 'base|href',\n 'embed|src',\n 'frame|src',\n 'head|profile',\n 'html|manifest',\n 'iframe|src',\n 'link|href',\n 'media|src',\n 'object|codebase',\n 'object|data',\n 'script|src',\n ]);\n }\n return _SECURITY_SCHEMA;\n}\nfunction registerContext(ctx, specs) {\n for (const spec of specs)\n _SECURITY_SCHEMA[spec.toLowerCase()] = ctx;\n}\n/**\n * The set of security-sensitive attributes of an `