{"version":3,"file":"polyfills.fa226a3815014368.js","mappings":"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;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;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,MAAM48C,SAAN,CAAgB;EACZzhE,WAAW,GAAG;IACV,KAAK0hE,aAAL,GAAqB,IAArB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIC,WAAW,CAACC,OAAD,EAAU77C,QAAV,EAAoB87C,YAAY,GAAG,EAAnC,EAAuC;IAC9C,MAAMC,gBAAgB,GAAGC,uBAAuB,CAACH,OAAD,CAAhD;IACAA,OAAO,GAAGI,aAAa,CAACJ,OAAD,CAAvB;IACAA,OAAO,GAAG,KAAKK,iBAAL,CAAuBL,OAAvB,CAAV;;IACA,MAAMM,aAAa,GAAG,KAAKC,aAAL,CAAmBP,OAAnB,EAA4B77C,QAA5B,EAAsC87C,YAAtC,CAAtB;;IACA,OAAO,CAACK,aAAD,EAAgB,GAAGJ,gBAAnB,EAAqCz6C,IAArC,CAA0C,IAA1C,CAAP;EACH;;EACD46C,iBAAiB,CAACL,OAAD,EAAU;IACvBA,OAAO,GAAG,KAAKQ,kCAAL,CAAwCR,OAAxC,CA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AAlB,KAA0B,CAAC,CAAhE,EAAmE;MAC/DhJ,KAAK,GAAGgiE,SAAR;IACH;EACJ;;EACD,OAAOhiE,KAAP;AACH;;AACD,SAAS2hE,SAAT,CAAmB3hE,KAAnB,EAA0B;EACtB,OAAOA,KAAK,CACP+e,OADE,CACM,aADN,EACqB5T,CAAC,IAAI;IAC7B,OAAOA,CAAC,CAAC0T,MAAF,CAAS,CAAT,IAAc,GAAd,GAAoB1T,CAAC,CAAC0T,MAAF,CAAS,CAAT,CAA3B;EACH,CAHM,EAIFjC,WAJE,EAAP;AAKH;;AAED,MAAMqlD,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;EACjBpqE,WAAW,CAACqqE,cAAD,EAAiB;IACxB,KAAKA,cAAL,GAAsBA,cAAtB;IACA;;IACA,KAAKC,iBAAL,GAAyB,KAAzB;IACA;AACR;AACA;AACA;;IACQ,KAAKC,WAAL,GAAmB,KAAnB;IACA,KAAKC,oBAAL,GAA4B,KAA5B;IACA;;IACA,KAAKC,cAAL,GAAsB,IAAtB;IACA;;IACA,KAAKC,cAAL,GAAsB,IAAtB;IACA;;IACA,KAAKC,kBAAL,GAA0B,IAA1B;IACA;;IACA,KAAKC,kBAAL,GAA0B,IAA1B;IACA,KAAKC,iBAAL,GAAyB,IAAzB;IACA,KAAKC,kBAAL,GAA0B,IAA1B,CAnBwB,CAoBxB;IACA;;IACA;AACR;AACA;AACA;AACA;;IACQ,KA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kB,MAAlB,EAA0Bs2B,OAAO,CAACrzB,IAAI,CAACimD,QAAN,CAAjC;;EACA,IAAIjmD,IAAI,CAACqnB,IAAL,KAAc,KAAlB,EAAyB;IACrB;IACAy8B,aAAa,CAAC/mD,GAAd,CAAkB,MAAlB,EAA0Bs2B,OAAO,CAACrzB,IAAI,CAACqnB,IAAN,CAAjC;EACH;;EACD,OAAOy8B,aAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACAymD,aAAa,CAACjuG,OAAD,CAAb;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AClgsBA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA2iH,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,MAAMx+E,mBAAmB,GAAG,QAA5B;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASsyF,YAAT,CAAsBnyF,YAAtB,EAAoCnB,WAApC,EAAiDs+B,QAAjD,EAA2Di1D,oBAA3D,EAAiFC,mBAAmB,GAAG,EAAvG,EAA2G;EACvG,MAAMC,aAAa,GAAG,EAAtB;EACA,MAAMC,qBAAqB,GAAG,EAA9B;EACA,MAAMC,oBAAoB,GAAG,EAA7B;EACA,MAAM55D,QAAQ,GAAG65D,aAAa,CAACzyF,YAAY,CAAC,CAAD,CAAb,EAAkBA,YAAY,CAACsB,GAAb,CAAiB,CAAjB,CAAlB,CAA9B;EACA,MAAMoxF,mBAAmB,GAAG,CAAC95D,QAAQ,CAAChmC,IAAV,CAA5B;EACA,MAAMwT,gBAAgB,GAAG,EAAzB;EACA,IAAInF,aAAa,GAAG23B,QAAQ,CAAChmC,IAA7B;;EACA,KAAK,IAAI1rB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG84B,YAAY,CAAC74B,MAAjC,EAAyCD,CAAC,EAA1C,EAA8C;IAC1C,MAAM;MAAE85B,WAAF;MAAe2xF,eAAe,GAAGC,sBAAsB,CAAC1rH,CAAD,CAAvD;MAA4D2rH;IAA5D,IAAoFC,gBAAgB,CAAC9yF,YAAY,CAAC94B,CAAD,CAAb,EAAkB84B,YAAY,CAACsB,GAAb,CAAiBp6B,CAAjB,CAAlB,CAA1G;IACA+5B,aAAa,IAAK,KAAI0xF,eAAgB,IAAG3xF,WAAY,EAArD;;IACA,IAAInC,WAAW,KAAKh5B,SAApB,EAA+B;MAC3BysH,aAAa,CAACK,eAAD,CAAb,GAAiC9zF,WAAW,CAAC33B,CAAC,GAAG,CAAL,CAA5C;MACAqrH,qBAAqB,CAACI,eAAD,CAArB,GAAyCN,mBAAmB,CAACnrH,CAAC,GAAG,CAAL,CAA5D;IACH;;IACDk/B,gBAAgB,CAACj8B,IAAjB,CAAsBwoH,eAAtB;;IACA,IAAIE,mBAAmB,KAAKhtH,SAA5B,EAAuC;MACnC2sH,oBAAoB,CAACG,eAAD,CAApB,GAAwCE,mBAAxC;IACH;;IACDH,mBAAmB,CAACvoH,IAApB,CAAyB62B,WAAzB;EACH;;EACD,MAAMgnE,SAAS,GAAGpvC,QAAQ,CAACv4B,QAAT,IAAqB5N,+DAAY,CAACwO,aAAD,EAAgB23B,QAAQ,CAAC1mC,OAAT,IAAoB,EAApC,CAAnD;EACA,MAAMoO,SAAS,GAAGs4B,QAAQ,CAACt4B,SAAT,GAAqBs4B,QAAQ,CAACt4B,SAAT,CAAmB1f,MAAnB,CAA0B+B,EAAE,IAAIA,EAAE,KAAKqlF,SAAvC,CAArB,GAAyE,EAA3F;EACA,OAAO;IACHrlF,EAAE,EAAEqlF,SADD;IAEH1nE,SAFG;IAGHgyF,aAHG;IAIHC,qBAJG;IAKH3/F,IAAI,EAAEqO,aALH;IAMHZ,QAAQ,EAAEu4B,QAAQ,CAACv4B,QANhB;IAOHnO,OAAO,EAAE0mC,QAAQ,CAAC1mC,OAAT,IAAoB,EAP1B;IAQHkO,WAAW,EAAEw4B,QAAQ,CAACx4B,WAAT,IAAwB,EARlC;IASHJ,YAAY,EAAE0yF,mBATX;IAUHN,oBAVG;IAWHhsF,gBAXG;IAYHosF,oBAZG;IAaHr1D;EAbG,CAAP;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,SAASs1D,aAAT,CAAuBpxF,MAAvB,EAA+BC,GAA/B,EAAoC;EAChC,MAAM;IAAE1O,IAAI,EAAEqO,aAAR;IAAuB8xF;EAAvB,IAAiCC,UAAU,CAAC3xF,MAAD,EAASC,GAAT,CAAjD;;EACA,IAAIyxF,KAAK,KAAKltH,SAAd,EAAyB;IACrB,OAAO;MAAE+sB,IAAI,EAAEqO;IAAR,CAAP;EACH,CAFD,MAGK;IACD,MAAM,CAACgyF,gBAAD,EAAmB,GAAG3yF,SAAtB,IAAmCyyF,KAAK,CAACzjG,KAAN,CAAYuQ,mBAAZ,CAAzC;IACA,MAAM,CAAC8gE,cAAD,EAAiBtgE,QAAjB,IAA6B4yF,gBAAgB,CAAC3jG,KAAjB,CAAuB+uF,YAAvB,EAAqC,CAArC,CAAnC;IACA,IAAI,CAACnsF,OAAD,EAAUkO,WAAV,IAAyBugE,cAAc,CAACrxE,KAAf,CAAqB8uF,iBAArB,EAAwC,CAAxC,CAA7B;;IACA,IAAIh+E,WAAW,KAAKv6B,SAApB,EAA+B;MAC3Bu6B,WAAW,GAAGlO,OAAd;MACAA,OAAO,GAAGrsB,SAAV;IACH;;IACD,IAAIu6B,WAAW,KAAK,EAApB,EAAwB;MACpBA,WAAW,GAAGv6B,SAAd;IACH;;IACD,OAAO;MAAE+sB,IAAI,EAAEqO,aAAR;MAAuB/O,OAAvB;MAAgCkO,WAAhC;MAA6CC,QAA7C;MAAuDC;IAAvD,CAAP;EACH;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASwyF,gBAAT,CAA0BzxF,MAA1B,EAAkCC,GAAlC,EAAuC;EACnC,MAAM;IAAE1O,IAAI,EAAEoO,WAAR;IAAqB+xF;EAArB,IAA+BC,UAAU,CAAC3xF,MAAD,EAASC,GAAT,CAA/C;;EACA,IAAIyxF,KAAK,KAAKltH,SAAd,EAAyB;IACrB,OAAO;MAAEm7B;IAAF,CAAP;EACH,CAFD,MAGK;IACD,MAAM,CAAC2xF,eAAD,EAAkBE,mBAAlB,IAAyCE,KAAK,CAACzjG,KAAN,CAAY+uF,YAAZ,CAA/C;IACA,OAAO;MAAEr9E,WAAF;MAAe2xF,eAAf;MAAgCE;IAAhC,CAAP;EACH;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASG,UAAT,CAAoB3xF,MAApB,EAA4BC,GAA5B,EAAiC;EAC7B,IAAIA,GAAG,CAACpY,MAAJ,CAAW,CAAX,MAAkBgpG,cAAtB,EAAsC;IAClC,OAAO;MAAEt/F,IAAI,EAAEyO;IAAR,CAAP;EACH,CAFD,MAGK;IACD,MAAM6xF,UAAU,GAAGC,cAAc,CAAC9xF,MAAD,EAASC,GAAT,CAAjC;IACA,OAAO;MACHyxF,KAAK,EAAE1xF,MAAM,CAAC/f,SAAP,CAAiB,CAAjB,EAAoB4xG,UAApB,CADJ;MAEHtgG,IAAI,EAAEyO,MAAM,CAAC/f,SAAP,CAAiB4xG,UAAU,GAAG,CAA9B;IAFH,CAAP;EAIH;AACJ;;AACD,SAASN,sBAAT,CAAgCjkG,KAAhC,EAAuC;EACnC,OAAOA,KAAK,KAAK,CAAV,GAAc,IAAd,GAAsB,MAAKA,KAAK,GAAG,CAAE,EAA5C;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASwkG,cAAT,CAAwB9xF,MAAxB,EAAgCC,GAAhC,EAAqC;EACjC,KAAK,IAAI8xF,WAAW,GAAG,CAAlB,EAAqBC,QAAQ,GAAG,CAArC,EAAwCD,WAAW,GAAG/xF,MAAM,CAACl6B,MAA7D,EAAqEisH,WAAW,IAAIC,QAAQ,EAA5F,EAAgG;IAC5F,IAAI/xF,GAAG,CAAC+xF,QAAD,CAAH,KAAkB,IAAtB,EAA4B;MACxBA,QAAQ;IACX,CAFD,MAGK,IAAIhyF,MAAM,CAAC+xF,WAAD,CAAN,KAAwBlB,cAA5B,EAA4C;MAC7C,OAAOkB,WAAP;IACH;EACJ;;EACD,MAAM,IAAIlxH,KAAJ,CAAW,6CAA4Co/B,GAAI,IAA3D,CAAN;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMgyF,uBAAN,SAAsCpxH,KAAtC,CAA4C;EACxCE,WAAW,CAACmxH,aAAD,EAAgB;IACvB,MAAO,4BAA2BC,eAAe,CAACD,aAAD,CAAgB,GAAjE;IACA,KAAKA,aAAL,GAAqBA,aAArB;IACA,KAAKtuH,IAAL,GAAY,yBAAZ;EACH;;AALuC;;AAO5C,SAASwuH,yBAAT,CAAmC5/G,CAAnC,EAAsC;EAClC,OAAOA,CAAC,CAAC5O,IAAF,KAAW,yBAAlB;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASyuH,WAAT,CAAqB7U,YAArB,EAAmC7+E,YAAnC,EAAiDsyF,aAAjD,EAAgE;EAC5D,MAAM5hH,OAAO,GAAGyhH,YAAY,CAACnyF,YAAD,EAAesyF,aAAf,CAA5B,CAD4D,CAE5D;;EACA,IAAIqB,WAAW,GAAG9U,YAAY,CAACnuG,OAAO,CAACiS,EAAT,CAA9B,CAH4D,CAI5D;;EACA,IAAIjS,OAAO,CAAC4vB,SAAR,KAAsBz6B,SAA1B,EAAqC;IACjC,KAAK,IAAIqB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGwJ,OAAO,CAAC4vB,SAAR,CAAkBn5B,MAAtB,IAAgCwsH,WAAW,KAAK9tH,SAAhE,EAA2EqB,CAAC,EAA5E,EAAgF;MAC5EysH,WAAW,GAAG9U,YAAY,CAACnuG,OAAO,CAAC4vB,SAAR,CAAkBp5B,CAAlB,CAAD,CAA1B;IACH;EACJ;;EACD,IAAIysH,WAAW,KAAK9tH,SAApB,EAA+B;IAC3B,MAAM,IAAIytH,uBAAJ,CAA4B5iH,OAA5B,CAAN;EACH;;EACD,OAAO,CACHijH,WAAW,CAAC3zF,YADT,EACuB2zF,WAAW,CAACvtF,gBAAZ,CAA6B/kB,GAA7B,CAAiC0f,WAAW,IAAI;IACtE,IAAIrwB,OAAO,CAAC4hH,aAAR,CAAsB9uH,cAAtB,CAAqCu9B,WAArC,CAAJ,EAAuD;MACnD,OAAOrwB,OAAO,CAAC4hH,aAAR,CAAsBvxF,WAAtB,CAAP;IACH,CAFD,MAGK;MACD,MAAM,IAAI7+B,KAAJ,CAAW,sFAAqFsxH,eAAe,CAAC9iH,OAAD,CAAU,KAA/G,GACX,oDAAmDqwB,WAAY,wCAD9D,CAAN;IAEH;EACJ,CARyB,CADvB,CAAP;AAWH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS6yF,gBAAT,CAA0B3yF,aAA1B,EAAyC;EACrC,MAAM1O,KAAK,GAAG0O,aAAa,CAAC3R,KAAd,CAAoB,aAApB,CAAd;EACA,MAAM0Q,YAAY,GAAG,CAACzN,KAAK,CAAC,CAAD,CAAN,CAArB;EACA,MAAM6T,gBAAgB,GAAG,EAAzB;;EACA,KAAK,IAAIl/B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGqrB,KAAK,CAACprB,MAAN,GAAe,CAAnC,EAAsCD,CAAC,IAAI,CAA3C,EAA8C;IAC1Ck/B,gBAAgB,CAACj8B,IAAjB,CAAsBooB,KAAK,CAACrrB,CAAD,CAA3B;IACA84B,YAAY,CAAC71B,IAAb,CAAmB,GAAEooB,KAAK,CAACrrB,CAAC,GAAG,CAAL,CAAQ,EAAlC;EACH;;EACD,MAAM2sH,eAAe,GAAG7zF,YAAY,CAAC3e,GAAb,CAAiB61B,IAAI,IAAIA,IAAI,CAAChuB,MAAL,CAAY,CAAZ,MAAmBgpG,cAAnB,GAAoC,OAAOh7E,IAA3C,GAAkDA,IAA3E,CAAxB;EACA,OAAO;IACHtkB,IAAI,EAAEqO,aADH;IAEHjB,YAAY,EAAE8zF,kBAAkB,CAAC9zF,YAAD,EAAe6zF,eAAf,CAF7B;IAGHztF;EAHG,CAAP;AAKH;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS2tF,qBAAT,CAA+B/zF,YAA/B,EAA6CoG,gBAAgB,GAAG,EAAhE,EAAoE;EAChE,IAAInF,aAAa,GAAGjB,YAAY,CAAC,CAAD,CAAhC;;EACA,KAAK,IAAI94B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGk/B,gBAAgB,CAACj/B,MAArC,EAA6CD,CAAC,EAA9C,EAAkD;IAC9C+5B,aAAa,IAAK,KAAImF,gBAAgB,CAACl/B,CAAD,CAAI,IAAG84B,YAAY,CAAC94B,CAAC,GAAG,CAAL,CAAQ,EAAjE;EACH;;EACD,OAAO;IACH0rB,IAAI,EAAEqO,aADH;IAEHjB,YAAY,EAAE8zF,kBAAkB,CAAC9zF,YAAD,EAAeA,YAAf,CAF7B;IAGHoG;EAHG,CAAP;AAKH;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS0tF,kBAAT,CAA4BzyF,MAA5B,EAAoCC,GAApC,EAAyC;EACrC71B,MAAM,CAACyC,cAAP,CAAsBmzB,MAAtB,EAA8B,KAA9B,EAAqC;IAAEh3B,KAAK,EAAEi3B;EAAT,CAArC;EACA,OAAOD,MAAP;AACH;;AACD,SAASmyF,eAAT,CAAyB9iH,OAAzB,EAAkC;EAC9B,MAAMsjH,aAAa,GAAGtjH,OAAO,CAACwhB,OAAR,IAAoB,OAAMxhB,OAAO,CAACwhB,OAAQ,GAAhE;EACA,MAAM+hG,MAAM,GAAGvjH,OAAO,CAAC4vB,SAAR,IAAqB5vB,OAAO,CAAC4vB,SAAR,CAAkBn5B,MAAlB,GAA2B,CAAhD,GACV,KAAIuJ,OAAO,CAAC4vB,SAAR,CAAkBjf,GAAlB,CAAsBqV,CAAC,IAAK,IAAGA,CAAE,GAAjC,EAAqCjN,IAArC,CAA0C,IAA1C,CAAgD,GAD1C,GAEX,EAFJ;EAGA,OAAQ,IAAG/Y,OAAO,CAACiS,EAAG,IAAGsxG,MAAO,MAAKvjH,OAAO,CAACkiB,IAAK,IAAGohG,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;EACpC;EACA,IAAI,CAACmT,SAAS,CAACmC,SAAf,EAA0B;IACtBnC,SAAS,CAACmC,SAAV,GAAsBA,SAAtB;EACH;;EACD,IAAI,CAACnC,SAAS,CAACoC,YAAf,EAA6B;IACzBpC,SAAS,CAACoC,YAAV,GAAyB,EAAzB;EACH;;EACD3oH,MAAM,CAAC6T,IAAP,CAAYu/F,YAAZ,EAA0Br+F,OAA1B,CAAkC5c,GAAG,IAAI;IACrCouH,SAAS,CAACoC,YAAV,CAAuBxwH,GAAvB,IAA8BgwH,gBAAgB,CAAC/U,YAAY,CAACj7G,GAAD,CAAb,CAA9C;EACH,CAFD;AAGH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASywH,iBAAT,GAA6B;EACzBrC,SAAS,CAACmC,SAAV,GAAsBtuH,SAAtB;EACAmsH,SAAS,CAACoC,YAAV,GAAyB,EAAzB;AACH;AACD;AACA;AACA;AACA;AACA;;;AACA,SAASD,SAAT,CAAmBn0F,YAAnB,EAAiCsyF,aAAjC,EAAgD;EAC5C,IAAI;IACA,OAAOoB,WAAW,CAAC1B,SAAS,CAACoC,YAAX,EAAyBp0F,YAAzB,EAAuCsyF,aAAvC,CAAlB;EACH,CAFD,CAGA,OAAOz+G,CAAP,EAAU;IACNE,OAAO,CAACusG,IAAR,CAAazsG,CAAC,CAACnD,OAAf;IACA,OAAO,CAACsvB,YAAD,EAAesyF,aAAf,CAAP;EACH;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMnjH,OAAO,GAAK,eAAe,CAAC,MAAO,OAAOmlH,UAAP,KAAsB,WAAtB,IAAqCA,UAAtC,IACnC,OAAO7yH,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,MAAM0pH,WAAW,GAAG,UAAUv0F,YAAV,EAAwB,GAAGnB,WAA3B,EAAwC;EACxD,IAAI01F,WAAW,CAACJ,SAAhB,EAA2B;IACvB;IACA,MAAMR,WAAW,GAAGY,WAAW,CAACJ,SAAZ,CAAsBn0F,YAAtB,EAAoCnB,WAApC,CAApB;IACAmB,YAAY,GAAG2zF,WAAW,CAAC,CAAD,CAA1B;IACA90F,WAAW,GAAG80F,WAAW,CAAC,CAAD,CAAzB;EACH;;EACD,IAAIjjH,OAAO,GAAG8jH,UAAU,CAACx0F,YAAY,CAAC,CAAD,CAAb,EAAkBA,YAAY,CAACsB,GAAb,CAAiB,CAAjB,CAAlB,CAAxB;;EACA,KAAK,IAAIp6B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG84B,YAAY,CAAC74B,MAAjC,EAAyCD,CAAC,EAA1C,EAA8C;IAC1CwJ,OAAO,IAAImuB,WAAW,CAAC33B,CAAC,GAAG,CAAL,CAAX,GAAqBstH,UAAU,CAACx0F,YAAY,CAAC94B,CAAD,CAAb,EAAkB84B,YAAY,CAACsB,GAAb,CAAiBp6B,CAAjB,CAAlB,CAA1C;EACH;;EACD,OAAOwJ,OAAP;AACH,CAZD;;AAaA,MAAM+jH,YAAY,GAAG,GAArB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASD,UAAT,CAAoBxzF,WAApB,EAAiC0zF,cAAjC,EAAiD;EAC7C,OAAOA,cAAc,CAACxrG,MAAf,CAAsB,CAAtB,MAA6BurG,YAA7B,GACHzzF,WAAW,CAAC1f,SAAZ,CAAsB6xG,cAAc,CAACnyF,WAAD,EAAc0zF,cAAd,CAAd,GAA8C,CAApE,CADG,GAEH1zF,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/fesm2015/compiler.mjs","./node_modules/@angular/localize/fesm2015/init.mjs","./node_modules/@angular/localize/fesm2015/localize.mjs"],"sourcesContent":["/***************************************************************************************************\r\n * Load `$localize` onto the global scope - used if i18n tags appear in Angular templates.\r\n */\r\nimport '@angular/localize/init';\r\n/**\r\n * This file includes polyfills needed by Angular and is loaded before the app.\r\n * You can add your own extra polyfills to this file.\r\n *\r\n * This file is divided into 2 sections:\r\n * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\r\n * 2. Application imports. Files imported after ZoneJS that should be loaded before your main\r\n * file.\r\n *\r\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\r\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\r\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\r\n *\r\n * Learn more in https://angular.io/guide/browser-support\r\n */\r\n\r\n/***************************************************************************************************\r\n * BROWSER POLYFILLS\r\n */\r\n\r\n/**\r\n * IE11 requires the following for NgClass support on SVG elements\r\n */\r\n// import 'classlist.js'; // Run `npm install --save classlist.js`.\r\n\r\n/**\r\n * Web Animations `@angular/platform-browser/animations`\r\n * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari.\r\n * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0).\r\n */\r\n// import 'web-animations-js'; // Run `npm install --save web-animations-js`.\r\n\r\n/**\r\n * By default, zone.js will patch all possible macroTask and DomEvents\r\n * user can disable parts of macroTask/DomEvents patch by setting following flags\r\n * because those flags need to be set before `zone.js` being loaded, and webpack\r\n * will put import in the top of bundle, so user need to create a separate file\r\n * in this directory (for example: zone-flags.ts), and put the following flags\r\n * into that file, and then add the following code before importing zone.js.\r\n * import './zone-flags';\r\n *\r\n * The flags allowed in zone-flags.ts are listed here.\r\n *\r\n * The following flags will work for all browsers.\r\n *\r\n * (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\r\n * (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\r\n * (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\r\n *\r\n * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\r\n * with the following flag, it will bypass `zone.js` patch for IE/Edge\r\n *\r\n * (window as any).__Zone_enable_cross_context_check = true;\r\n *\r\n */\r\n\r\n/***************************************************************************************************\r\n * Zone JS is required by default for Angular itself.\r\n */\r\nimport 'zone.js'; // Included with Angular CLI.\r\n\r\n\r\n/***************************************************************************************************\r\n * APPLICATION IMPORTS\r\n */\r\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 !== null && overrideType !== void 0 ? 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 var _a, _b;\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 (_b = (_a = TAG_DEFINITIONS[tagName]) !== null && _a !== void 0 ? _a : TAG_DEFINITIONS[tagName.toLowerCase()]) !== null && _b !== void 0 ? _b : _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 var _a;\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 (_a = rawText !== null && rawText !== void 0 ? rawText : sourceSpan === null || sourceSpan === void 0 ? void 0 : sourceSpan.toString()) !== null && _a !== void 0 ? _a : 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 var _a, _b;\n return (_b = (_a = this.messageParts[i]) === null || _a === void 0 ? void 0 : _a.sourceSpan) !== null && _b !== void 0 ? _b : this.sourceSpan;\n }\n getPlaceholderSourceSpan(i) {\n var _a, _b, _c, _d;\n return (_d = (_b = (_a = this.placeHolderNames[i]) === null || _a === void 0 ? void 0 : _a.sourceSpan) !== null && _b !== void 0 ? _b : (_c = this.expressions[i]) === null || _c === void 0 ? void 0 : _c.sourceSpan) !== null && _d !== void 0 ? _d : 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 var _a;\n const placeholder = this.placeHolderNames[partIndex - 1];\n const messagePart = this.messageParts[partIndex];\n let metaBlock = placeholder.text;\n if (((_a = placeholder.associatedMessage) === null || _a === void 0 ? void 0 : _a.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 var _a;\n this.leadingComments = (_a = this.leadingComments) !== null && _a !== void 0 ? _a : [];\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 var _a;\n const statements = [];\n let pendingExpression = null;\n let pendingExpressionType = null;\n let chainLength = 0;\n for (const current of instructions) {\n const resolvedParams = (_a = (typeof current.paramsOrFn === 'function' ? current.paramsOrFn() : current.paramsOrFn)) !== null && _a !== void 0 ? _a : [];\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(Object.assign(Object.assign({}, factoryMeta), { delegate: meta.useClass.expression, delegateDeps: deps, delegateType: R3FactoryDelegateType.Class }));\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(Object.assign(Object.assign({}, factoryMeta), { delegate: meta.useFactory, delegateDeps: meta.deps || [], delegateType: R3FactoryDelegateType.Function }));\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(Object.assign(Object.assign({}, factoryMeta), { expression: meta.useValue.expression }));\n }\n else if (meta.useExisting !== undefined) {\n // useExisting is an `inject` call on the existing token.\n result = compileFactoryFunction(Object.assign(Object.assign({}, factoryMeta), { expression: importExpr(Identifiers.inject).callFn([meta.useExisting.expression]) }));\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 (_a) {\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 var _a;\n return ((_a = getPolicy()) === null || _a === void 0 ? void 0 : _a.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 var _a;\n return (_a = visitor.visitThisReceiver) === null || _a === void 0 ? void 0 : _a.call(visitor, 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 var _a;\n if (((_a = this._localResolver.globals) === null || _a === void 0 ? void 0 : _a.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 `