{"version":3,"file":"polyfills.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;;;IACMi7C;EACF,qBAAc;IAAA;;IACV,KAAKC,aAAL,GAAqB,IAArB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;;;WACI,qBAAYC,OAAZ,EAAqBr5C,QAArB,EAAkD;MAAA,IAAnBs5C,YAAmB,uEAAJ,EAAI;MAC9C,IAAMC,gBAAgB,GAAGC,uBAAuB,CAACH,OAAD,CAAhD;MACAA,OAAO,GAAGI,aAAa,CAACJ,OAAD,CAAvB;MACAA,OAAO,GAAG,KAAKK,iBAAL,CAAuBL,OAAvB,CAAV;;MACA,IAAMM,aAAa,GAAG,KAAKC,aAAL,CAAmBP,OAAnB,EAA4Br5C,QAA5B,EAAsCs5C,YAAtC,CAAtB;;MACA,OAAO,CAACK,aAAD,yJAAmBJ,gBAAnB,GAAqC75C,IAArC,CAA0C,IAA1C,CAAP;IACH;;;WACD,2BAAkB25C,OAAlB,EAA2B;MACvBA,OAAO,GAAG,KAAKQ,kCAAL,CAAwCR,OAAxC,CAAV;MACA,OAAO,KAAKS,6BAAL,CAAmCT,OAAnC,CAAP;IACH;IACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;WACI,4CAAmCA,OAAnC,EAA4C;MACxC;MACA,OAAOA,OAAO,CAAC95C,OAAR,CAAgBw6C,yBAAhB,EAA2C,YAAgB;QAC9D,OAAO,qDAAO,GAAd;MAC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,MAAF,CAAS,CAAT,CAA3B;EACH,CAHM,EAIFpB,WAJE,EAAP;AAKH;;AAED,IAAMyjD,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,IAAMC,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;;IACMC;EACF,wBAAYC,cAAZ,EAA4B;IAAA;;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,KAAKC,YAAL,GAAoB,IAAI1hD,GAAJ,EAApB;IACA;AACR;AACA;AACA;AACA;;IACQ,KAAK2hD,aAAL,GAAqB,IAAI3hD,GAAJ,EAArB;IACA,KAAK4hD,mBAAL,GAA2B,EAA3B;IACA,KAAKC,mBAAL,GAA2B,EAA3B;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;;;;;WACI,4BAAmBl+C,KAAnB,EAA0B;MACtB;MACA;MACA;MACA;MACA;MACA;MACA,IAAIm+C,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C,YAA/B;;EACA,IAAI7nC,IAAI,CAAColD,YAAT,EAAuB;IACnBpC,aAAa,CAAClmD,GAAd,CAAkB,cAAlB,EAAkCu1B,OAAO,CAACryB,IAAI,CAAColD,YAAN,CAAzC;EACH,CATkC,CAUnC;;;EACApC,aAAa,CAAClmD,GAAd,CAAkB,MAAlB,EAA0Bu1B,OAAO,CAACryB,IAAI,CAACmlD,QAAN,CAAjC;;EACA,IAAInlD,IAAI,CAAC6nB,IAAL,KAAc,KAAlB,EAAyB;IACrB;IACAm7B,aAAa,CAAClmD,GAAd,CAAkB,MAAlB,EAA0Bu1B,OAAO,CAACryB,IAAI,CAAC6nB,IAAN,CAAjC;EACH;;EACD,OAAOm7B,aAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACAwmD,aAAa,CAACttG,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;;AACAuhH,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,IAAMG,cAAc,GAAG,GAAvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,IAAMrT,iBAAiB,GAAG,GAA1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,IAAMC,YAAY,GAAG,IAArB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,IAAMv+E,mBAAmB,GAAG,QAA5B;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAAS4xF,YAAT,CAAsBzxF,YAAtB,EAAoCnB,WAApC,EAAiDm+B,QAAjD,EAA2D00D,oBAA3D,EAA2G;EAAA,IAA1BC,mBAA0B,uEAAJ,EAAI;EACvG,IAAMC,aAAa,GAAG,EAAtB;EACA,IAAMC,qBAAqB,GAAG,EAA9B;EACA,IAAMC,oBAAoB,GAAG,EAA7B;EACA,IAAMl5D,QAAQ,GAAGm5D,aAAa,CAAC/xF,YAAY,CAAC,CAAD,CAAb,EAAkBA,YAAY,CAACmB,GAAb,CAAiB,CAAjB,CAAlB,CAA9B;EACA,IAAM6wF,mBAAmB,GAAG,CAACp5D,QAAQ,CAACpkC,IAAV,CAA5B;EACA,IAAM0R,gBAAgB,GAAG,EAAzB;EACA,IAAIpF,aAAa,GAAG83B,QAAQ,CAACpkC,IAA7B;;EACA,KAAK,IAAIhtB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGw4B,YAAY,CAACv4B,MAAjC,EAAyCD,CAAC,EAA1C,EAA8C;IAC1C,wBAA0FyqH,gBAAgB,CAACjyF,YAAY,CAACx4B,CAAD,CAAb,EAAkBw4B,YAAY,CAACmB,GAAb,CAAiB35B,CAAjB,CAAlB,CAA1G;IAAA,IAAQq5B,WAAR,qBAAQA,WAAR;IAAA,8CAAqBqxF,eAArB;IAAA,IAAqBA,eAArB,sCAAuCC,sBAAsB,CAAC3qH,CAAD,CAA7D;IAAA,IAAkE4qH,mBAAlE,qBAAkEA,mBAAlE;;IACAtxF,aAAa,gBAASoxF,eAAT,cAA4BrxF,WAA5B,CAAb;;IACA,IAAIhC,WAAW,KAAKv4B,SAApB,EAA+B;MAC3BsrH,aAAa,CAACM,eAAD,CAAb,GAAiCrzF,WAAW,CAACr3B,CAAC,GAAG,CAAL,CAA5C;MACAqqH,qBAAqB,CAACK,eAAD,CAArB,GAAyCP,mBAAmB,CAACnqH,CAAC,GAAG,CAAL,CAA5D;IACH;;IACD0+B,gBAAgB,CAACp7B,IAAjB,CAAsBonH,eAAtB;;IACA,IAAIE,mBAAmB,KAAK9rH,SAA5B,EAAuC;MACnCwrH,oBAAoB,CAACI,eAAD,CAApB,GAAwCE,mBAAxC;IACH;;IACDJ,mBAAmB,CAAClnH,IAApB,CAAyB+1B,WAAzB;EACH;;EACD,IAAMkmE,SAAS,GAAGnuC,QAAQ,CAACx4B,QAAT,IAAqB9L,+DAAY,CAACwM,aAAD,EAAgB83B,QAAQ,CAAC7kC,OAAT,IAAoB,EAApC,CAAnD;EACA,IAAMsM,SAAS,GAAGu4B,QAAQ,CAACv4B,SAAT,GAAqBu4B,QAAQ,CAACv4B,SAAT,CAAmBne,MAAnB,CAA0B,UAAA4C,EAAE;IAAA,OAAIA,EAAE,KAAKiiF,SAAX;EAAA,CAA5B,CAArB,GAAyE,EAA3F;EACA,OAAO;IACHjiF,EAAE,EAAEiiF,SADD;IAEH1mE,SAAS,EAATA,SAFG;IAGHuxF,aAAa,EAAbA,aAHG;IAIHC,qBAAqB,EAArBA,qBAJG;IAKHr9F,IAAI,EAAEsM,aALH;IAMHV,QAAQ,EAAEw4B,QAAQ,CAACx4B,QANhB;IAOHrM,OAAO,EAAE6kC,QAAQ,CAAC7kC,OAAT,IAAoB,EAP1B;IAQHoM,WAAW,EAAEy4B,QAAQ,CAACz4B,WAAT,IAAwB,EARlC;IASHH,YAAY,EAAEgyF,mBATX;IAUHN,oBAAoB,EAApBA,oBAVG;IAWHxrF,gBAAgB,EAAhBA,gBAXG;IAYH4rF,oBAAoB,EAApBA,oBAZG;IAaH90D,QAAQ,EAARA;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,SAAS+0D,aAAT,CAAuB7wF,MAAvB,EAA+BC,GAA/B,EAAoC;EAChC,kBAAuCkxF,UAAU,CAACnxF,MAAD,EAASC,GAAT,CAAjD;EAAA,IAAcL,aAAd,eAAQtM,IAAR;EAAA,IAA6B89F,KAA7B,eAA6BA,KAA7B;;EACA,IAAIA,KAAK,KAAKhsH,SAAd,EAAyB;IACrB,OAAO;MAAEkuB,IAAI,EAAEsM;IAAR,CAAP;EACH,CAFD,MAGK;IACD,mBAAyCwxF,KAAK,CAACjhG,KAAN,CAAYwO,mBAAZ,CAAzC;IAAA;IAAA,IAAO0yF,gBAAP;IAAA,IAA4BlyF,SAA5B;;IACA,4BAAmCkyF,gBAAgB,CAAClhG,KAAjB,CAAuB+sF,YAAvB,EAAqC,CAArC,CAAnC;IAAA;IAAA,IAAO3e,cAAP;IAAA,IAAuBr/D,QAAvB;;IACA,4BAA6Bq/D,cAAc,CAACpuE,KAAf,CAAqB8sF,iBAArB,EAAwC,CAAxC,CAA7B;IAAA;IAAA,IAAKpqF,OAAL;IAAA,IAAcoM,WAAd;;IACA,IAAIA,WAAW,KAAK75B,SAApB,EAA+B;MAC3B65B,WAAW,GAAGpM,OAAd;MACAA,OAAO,GAAGztB,SAAV;IACH;;IACD,IAAI65B,WAAW,KAAK,EAApB,EAAwB;MACpBA,WAAW,GAAG75B,SAAd;IACH;;IACD,OAAO;MAAEkuB,IAAI,EAAEsM,aAAR;MAAuB/M,OAAO,EAAPA,OAAvB;MAAgCoM,WAAW,EAAXA,WAAhC;MAA6CC,QAAQ,EAARA,QAA7C;MAAuDC,SAAS,EAATA;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,SAAS4xF,gBAAT,CAA0B/wF,MAA1B,EAAkCC,GAAlC,EAAuC;EACnC,mBAAqCkxF,UAAU,CAACnxF,MAAD,EAASC,GAAT,CAA/C;EAAA,IAAcN,WAAd,gBAAQrM,IAAR;EAAA,IAA2B89F,KAA3B,gBAA2BA,KAA3B;;EACA,IAAIA,KAAK,KAAKhsH,SAAd,EAAyB;IACrB,OAAO;MAAEu6B,WAAW,EAAXA;IAAF,CAAP;EACH,CAFD,MAGK;IACD,oBAA+CyxF,KAAK,CAACjhG,KAAN,CAAY+sF,YAAZ,CAA/C;IAAA;IAAA,IAAO8T,eAAP;IAAA,IAAwBE,mBAAxB;;IACA,OAAO;MAAEvxF,WAAW,EAAXA,WAAF;MAAeqxF,eAAe,EAAfA,eAAf;MAAgCE,mBAAmB,EAAnBA;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,SAASC,UAAT,CAAoBnxF,MAApB,EAA4BC,GAA5B,EAAiC;EAC7B,IAAIA,GAAG,CAAC9W,MAAJ,CAAW,CAAX,MAAkBmnG,cAAtB,EAAsC;IAClC,OAAO;MAAEh9F,IAAI,EAAE0M;IAAR,CAAP;EACH,CAFD,MAGK;IACD,IAAMsxF,UAAU,GAAGC,cAAc,CAACvxF,MAAD,EAASC,GAAT,CAAjC;IACA,OAAO;MACHmxF,KAAK,EAAEpxF,MAAM,CAACjQ,SAAP,CAAiB,CAAjB,EAAoBuhG,UAApB,CADJ;MAEHh+F,IAAI,EAAE0M,MAAM,CAACjQ,SAAP,CAAiBuhG,UAAU,GAAG,CAA9B;IAFH,CAAP;EAIH;AACJ;;AACD,SAASL,sBAAT,CAAgC1hG,KAAhC,EAAuC;EACnC,OAAOA,KAAK,KAAK,CAAV,GAAc,IAAd,gBAA2BA,KAAK,GAAG,CAAnC,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASgiG,cAAT,CAAwBvxF,MAAxB,EAAgCC,GAAhC,EAAqC;EACjC,KAAK,IAAIuxF,WAAW,GAAG,CAAlB,EAAqBC,QAAQ,GAAG,CAArC,EAAwCD,WAAW,GAAGxxF,MAAM,CAACz5B,MAA7D,EAAqEirH,WAAW,IAAIC,QAAQ,EAA5F,EAAgG;IAC5F,IAAIxxF,GAAG,CAACwxF,QAAD,CAAH,KAAkB,IAAtB,EAA4B;MACxBA,QAAQ;IACX,CAFD,MAGK,IAAIzxF,MAAM,CAACwxF,WAAD,CAAN,KAAwBlB,cAA5B,EAA4C;MAC7C,OAAOkB,WAAP;IACH;EACJ;;EACD,MAAM,IAAIjvH,KAAJ,sDAAuD09B,GAAvD,SAAN;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;IACMyxF;EACF,iCAAYC,aAAZ,EAA2B;IAAA;;IAAA;;IACvB,sFAAkCC,eAAe,CAACD,aAAD,CAAjD;IACA,MAAKA,aAAL,GAAqBA,aAArB;IACA,MAAKptH,IAAL,GAAY,yBAAZ;IAHuB;EAI1B;;;;;6JALiChC;;AAOtC,SAASsvH,yBAAT,CAAmCn+G,CAAnC,EAAsC;EAClC,OAAOA,CAAC,CAACnP,IAAF,KAAW,yBAAlB;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASutH,WAAT,CAAqBpU,YAArB,EAAmC5+E,YAAnC,EAAiD4xF,aAAjD,EAAgE;EAC5D,IAAMrgH,OAAO,GAAGkgH,YAAY,CAACzxF,YAAD,EAAe4xF,aAAf,CAA5B,CAD4D,CAE5D;;EACA,IAAIqB,WAAW,GAAGrU,YAAY,CAACrtG,OAAO,CAACuT,EAAT,CAA9B,CAH4D,CAI5D;;EACA,IAAIvT,OAAO,CAAC8uB,SAAR,KAAsB/5B,SAA1B,EAAqC;IACjC,KAAK,IAAIkB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG+J,OAAO,CAAC8uB,SAAR,CAAkB54B,MAAtB,IAAgCwrH,WAAW,KAAK3sH,SAAhE,EAA2EkB,CAAC,EAA5E,EAAgF;MAC5EyrH,WAAW,GAAGrU,YAAY,CAACrtG,OAAO,CAAC8uB,SAAR,CAAkB74B,CAAlB,CAAD,CAA1B;IACH;EACJ;;EACD,IAAIyrH,WAAW,KAAK3sH,SAApB,EAA+B;IAC3B,MAAM,IAAIssH,uBAAJ,CAA4BrhH,OAA5B,CAAN;EACH;;EACD,OAAO,CACH0hH,WAAW,CAACjzF,YADT,EACuBizF,WAAW,CAAC/sF,gBAAZ,CAA6B/Y,GAA7B,CAAiC,UAAAyT,WAAW,EAAI;IACtE,IAAIrvB,OAAO,CAACqgH,aAAR,CAAsBrtH,cAAtB,CAAqCq8B,WAArC,CAAJ,EAAuD;MACnD,OAAOrvB,OAAO,CAACqgH,aAAR,CAAsBhxF,WAAtB,CAAP;IACH,CAFD,MAGK;MACD,MAAM,IAAIn9B,KAAJ,CAAU,6FAAsFqvH,eAAe,CAACvhH,OAAD,CAArG,sEACwCqvB,WADxC,2CAAV,CAAN;IAEH;EACJ,CARyB,CADvB,CAAP;AAWH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASsyF,gBAAT,CAA0BpyF,aAA1B,EAAyC;EACrC,IAAM1M,KAAK,GAAG0M,aAAa,CAACzP,KAAd,CAAoB,aAApB,CAAd;EACA,IAAM2O,YAAY,GAAG,CAAC5L,KAAK,CAAC,CAAD,CAAN,CAArB;EACA,IAAM8R,gBAAgB,GAAG,EAAzB;;EACA,KAAK,IAAI1+B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG4sB,KAAK,CAAC3sB,MAAN,GAAe,CAAnC,EAAsCD,CAAC,IAAI,CAA3C,EAA8C;IAC1C0+B,gBAAgB,CAACp7B,IAAjB,CAAsBspB,KAAK,CAAC5sB,CAAD,CAA3B;IACAw4B,YAAY,CAACl1B,IAAb,WAAqBspB,KAAK,CAAC5sB,CAAC,GAAG,CAAL,CAA1B;EACH;;EACD,IAAM2rH,eAAe,GAAGnzF,YAAY,CAAC7S,GAAb,CAAiB,UAAAspB,IAAI;IAAA,OAAIA,IAAI,CAACpsB,MAAL,CAAY,CAAZ,MAAmBmnG,cAAnB,GAAoC,OAAO/6E,IAA3C,GAAkDA,IAAtD;EAAA,CAArB,CAAxB;EACA,OAAO;IACHjiB,IAAI,EAAEsM,aADH;IAEHd,YAAY,EAAEozF,kBAAkB,CAACpzF,YAAD,EAAemzF,eAAf,CAF7B;IAGHjtF,gBAAgB,EAAhBA;EAHG,CAAP;AAKH;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASmtF,qBAAT,CAA+BrzF,YAA/B,EAAoE;EAAA,IAAvBkG,gBAAuB,uEAAJ,EAAI;EAChE,IAAIpF,aAAa,GAAGd,YAAY,CAAC,CAAD,CAAhC;;EACA,KAAK,IAAIx4B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG0+B,gBAAgB,CAACz+B,MAArC,EAA6CD,CAAC,EAA9C,EAAkD;IAC9Cs5B,aAAa,gBAASoF,gBAAgB,CAAC1+B,CAAD,CAAzB,cAAgCw4B,YAAY,CAACx4B,CAAC,GAAG,CAAL,CAA5C,CAAb;EACH;;EACD,OAAO;IACHgtB,IAAI,EAAEsM,aADH;IAEHd,YAAY,EAAEozF,kBAAkB,CAACpzF,YAAD,EAAeA,YAAf,CAF7B;IAGHkG,gBAAgB,EAAhBA;EAHG,CAAP;AAKH;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASktF,kBAAT,CAA4BlyF,MAA5B,EAAoCC,GAApC,EAAyC;EACrCl1B,MAAM,CAACyC,cAAP,CAAsBwyB,MAAtB,EAA8B,KAA9B,EAAqC;IAAEj2B,KAAK,EAAEk2B;EAAT,CAArC;EACA,OAAOD,MAAP;AACH;;AACD,SAAS4xF,eAAT,CAAyBvhH,OAAzB,EAAkC;EAC9B,IAAM+hH,aAAa,GAAG/hH,OAAO,CAACwiB,OAAR,mBAA0BxiB,OAAO,CAACwiB,OAAlC,OAAtB;EACA,IAAMw/F,MAAM,GAAGhiH,OAAO,CAAC8uB,SAAR,IAAqB9uB,OAAO,CAAC8uB,SAAR,CAAkB54B,MAAlB,GAA2B,CAAhD,eACN8J,OAAO,CAAC8uB,SAAR,CAAkBlT,GAAlB,CAAsB,UAAA+K,CAAC;IAAA,mBAAQA,CAAR;EAAA,CAAvB,EAAqCzN,IAArC,CAA0C,IAA1C,CADM,SAEX,EAFJ;EAGA,mBAAWlZ,OAAO,CAACuT,EAAnB,eAAyByuG,MAAzB,iBAAqChiH,OAAO,CAACijB,IAA7C,eAAqD8+F,aAArD;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,CAA0B5U,YAA1B,EAAwC;EACpC;EACA,IAAI,CAAC0S,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;;EACDznH,MAAM,CAAC0T,IAAP,CAAYi/F,YAAZ,EAA0B/9F,OAA1B,CAAkC,UAAA1c,GAAG,EAAI;IACrCmtH,SAAS,CAACoC,YAAV,CAAuBvvH,GAAvB,IAA8B+uH,gBAAgB,CAACtU,YAAY,CAACz6G,GAAD,CAAb,CAA9C;EACH,CAFD;AAGH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASwvH,iBAAT,GAA6B;EACzBrC,SAAS,CAACmC,SAAV,GAAsBntH,SAAtB;EACAgrH,SAAS,CAACoC,YAAV,GAAyB,EAAzB;AACH;AACD;AACA;AACA;AACA;AACA;;;AACA,SAASD,SAAT,CAAmBzzF,YAAnB,EAAiC4xF,aAAjC,EAAgD;EAC5C,IAAI;IACA,OAAOoB,WAAW,CAAC1B,SAAS,CAACoC,YAAX,EAAyB1zF,YAAzB,EAAuC4xF,aAAvC,CAAlB;EACH,CAFD,CAGA,OAAOh9G,CAAP,EAAU;IACNE,OAAO,CAACurG,IAAR,CAAazrG,CAAC,CAACrD,OAAf;IACA,OAAO,CAACyuB,YAAD,EAAe4xF,aAAf,CAAP;EACH;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAM/hH,OAAO,GAAK,eAAgB;EAAA,OAAO,OAAO+jH,UAAP,KAAsB,WAAtB,IAAqCA,UAAtC,IACnC,OAAO7wH,MAAP,KAAkB,WAAlB,IAAiCA,MADE,IACU,OAAOD,MAAP,KAAkB,WAAlB,IAAiCA,MAD3C,IAEnC,OAAO2I,IAAP,KAAgB,WAAhB,IAA+B,OAAOkF,iBAAP,KAA6B,WAA5D,IACGlF,IAAI,YAAYkF,iBADnB,IACwClF,IAHX;AAAA,CAAD,EAAjC;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,IAAMooH,WAAW,GAAG,SAAdA,WAAc,CAAU7zF,YAAV,EAAwC;EAAA,kCAAbnB,WAAa;IAAbA,WAAa;EAAA;;EACxD,IAAIg1F,WAAW,CAACJ,SAAhB,EAA2B;IACvB;IACA,IAAMR,WAAW,GAAGY,WAAW,CAACJ,SAAZ,CAAsBzzF,YAAtB,EAAoCnB,WAApC,CAApB;IACAmB,YAAY,GAAGizF,WAAW,CAAC,CAAD,CAA1B;IACAp0F,WAAW,GAAGo0F,WAAW,CAAC,CAAD,CAAzB;EACH;;EACD,IAAI1hH,OAAO,GAAGuiH,UAAU,CAAC9zF,YAAY,CAAC,CAAD,CAAb,EAAkBA,YAAY,CAACmB,GAAb,CAAiB,CAAjB,CAAlB,CAAxB;;EACA,KAAK,IAAI35B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGw4B,YAAY,CAACv4B,MAAjC,EAAyCD,CAAC,EAA1C,EAA8C;IAC1C+J,OAAO,IAAIstB,WAAW,CAACr3B,CAAC,GAAG,CAAL,CAAX,GAAqBssH,UAAU,CAAC9zF,YAAY,CAACx4B,CAAD,CAAb,EAAkBw4B,YAAY,CAACmB,GAAb,CAAiB35B,CAAjB,CAAlB,CAA1C;EACH;;EACD,OAAO+J,OAAP;AACH,CAZD;;AAaA,IAAMwiH,YAAY,GAAG,GAArB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASD,UAAT,CAAoBjzF,WAApB,EAAiCmzF,cAAjC,EAAiD;EAC7C,OAAOA,cAAc,CAAC3pG,MAAf,CAAsB,CAAtB,MAA6B0pG,YAA7B,GACHlzF,WAAW,CAAC5P,SAAZ,CAAsBwhG,cAAc,CAAC5xF,WAAD,EAAcmzF,cAAd,CAAd,GAA8C,CAApE,CADG,GAEHnzF,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;;;;;;;;;;;;;;;;;;AC5nBe;AACf;;AAEA,yCAAyC,SAAS;AAClD;AACA;;AAEA;AACA;;;;;;;;;;;;;;;ACRe;AACf;AACA;;;;;;;;;;;;;;;;ACFqD;AACtC;AACf,iCAAiC,gEAAgB;AACjD;;;;;;;;;;;;;;;ACHe;AACf;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;ACNe;AACf;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACJiD;AACoB;AACtD;AACf,MAAM,wEAAwB;AAC9B;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,iBAAiB,8DAAc;AAC/B;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;ACjBA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;;;;;;;;;ACjByE;AAC1D;AACf;;AAEA;AACA,kCAAkC,0EAA0B;AAC5D;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACxD+C;AAChC;AACf;AACA;AACA,IAAI;AACJ;AACA,iBAAiB,6DAAa;AAC9B;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;ACnBe;AACf;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACLiD;AAClC;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH,kBAAkB,8DAAc;AAChC;;;;;;;;;;;;;;;ACjBe;AACf;AACA;;;;;;;;;;;;;;;ACFe;AACf;AACA;AACA;;AAEA;AACA,gFAAgF;AAChF;AACA,IAAI;AACJ;AACA;AACA;;;;;;;;;;;;;;;ACXe;AACf;AACA;;;;;;;;;;;;;;;ACFe;AACf;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,4BAA4B,+BAA+B;AAC3D;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA,IAAI;AACJ;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;;;;;;;;;;;;;;;AC5Be;AACf;AACA;;;;;;;;;;;;;;;ACFe;AACf;AACA;;;;;;;;;;;;;;;;;ACFkC;AAC6B;AAChD;AACf,eAAe,sDAAO;AACtB;AACA,IAAI;AACJ;AACA;;AAEA,SAAS,qEAAqB;AAC9B;;;;;;;;;;;;;;;;ACVkC;AACnB;AACf;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB;AAClB;AACA;AACA,yDAAyD;AACzD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,aAAa;AACb,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,yDAAyD;AACzD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,oFAAoF;AACpF;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,oCAAoC,sDAAO;AAC3C;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,sBAAsB;AACvC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA,aAAa,YAAY;AACzB;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA,+CAA+C,QAAQ;AACvD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY;AACZ;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,+CAA+C,QAAQ;AACvD;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA,KAAK;AACL;AACA,+CAA+C,QAAQ;AACvD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;;;;;;;;;;;;;;;AC/Ve;AACf;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACNiD;AACY;AACY;AACtB;AACpC;AACf,SAAS,8DAAc,SAAS,oEAAoB,YAAY,0EAA0B,YAAY,+DAAe;AACrH;;;;;;;;;;;;;;;;ACNiD;AAClC;AACf;AACA,aAAa,8DAAc;AAC3B;AACA;;AAEA;AACA;;;;;;;;;;;;;;;;;;;ACRiD;AACE;AACsB;AACtB;AACpC;AACf,SAAS,8DAAc,SAAS,+DAAe,SAAS,0EAA0B,SAAS,+DAAe;AAC1G;;;;;;;;;;;;;;;;;;;ACNuD;AACJ;AACsB;AAClB;AACxC;AACf,SAAS,iEAAiB,SAAS,+DAAe,SAAS,0EAA0B,SAAS,iEAAiB;AAC/G;;;;;;;;;;;;;;;ACNe;AACf;;AAEA;AACA;AACA,IAAI;AACJ;AACA,GAAG;AACH;;;;;;;;;;;;;;;;ACRqD;AACtC;AACf;AACA,oCAAoC,gEAAgB;AACpD;AACA;AACA;AACA,sFAAsF,gEAAgB;AACtG;;;;;;;;;;;;;;;;;;;ACRiD;AACA;AACI;AACd;AACxB;AACf;;AAEA;AACA,2BAA2B,gEAAgB;;AAE3C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa,yDAAS,mBAAmB,8DAAc;AACvD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,WAAW,8DAAc;AACzB;;AAEA;AACA","sources":["./src/polyfills.ts","./node_modules/zone.js/fesm2015/zone.js","./node_modules/@babel/runtime/helpers/arrayLikeToArray.js","./node_modules/@babel/runtime/helpers/classCallCheck.js","./node_modules/@babel/runtime/helpers/createClass.js","./node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js","./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","./node_modules/@angular/compiler/fesm2015/compiler.mjs","./node_modules/@angular/localize/fesm2015/init.mjs","./node_modules/@angular/localize/fesm2015/localize.mjs","./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","./node_modules/@babel/runtime/helpers/esm/construct.js","./node_modules/@babel/runtime/helpers/esm/createClass.js","./node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","./node_modules/@babel/runtime/helpers/esm/get.js","./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","./node_modules/@babel/runtime/helpers/esm/inherits.js","./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","./node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js","./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","./node_modules/@babel/runtime/helpers/esm/superPropBase.js","./node_modules/@babel/runtime/helpers/esm/toArray.js","./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","./node_modules/@babel/runtime/helpers/esm/typeof.js","./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js"],"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/** IE9, IE10, IE11, and Chrome <55 requires all of the following polyfills.\r\n * This also includes Android Emulators with older versions of Chrome and Google Search/Googlebot\r\n */\r\n\r\n// import 'core-js/es6/symbol';\r\n// import 'core-js/es6/object';\r\n// import 'core-js/es6/function';\r\n// import 'core-js/es6/parse-int';\r\n// import 'core-js/es6/parse-float';\r\n// import 'core-js/es6/number';\r\n// import 'core-js/es6/math';\r\n// import 'core-js/es6/string';\r\n// import 'core-js/es6/date';\r\n// import 'core-js/es6/array';\r\n// import 'core-js/es6/regexp';\r\n// import 'core-js/es6/map';\r\n// import 'core-js/es6/weak-map';\r\n// import 'core-js/es6/set';\r\n\r\n/** IE10 and IE11 requires the following for the Reflect API. */\r\n// import 'core-js/es6/reflect';\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.ts';\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__BLACK_LISTED_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 * APPLICATION IMPORTS\r\n */\r\n\r\n// ng2-dragula\r\n\r\n(window as any).global = window;\r\n","'use strict';\n/**\n * @license Angular v12.0.0-next.0\n * (c) 2010-2020 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 */\nconst Zone$1 = (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 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 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, drainMicroTaskQueue);\n }\n else {\n global[symbolSetTimeout](drainMicroTaskQueue, 0);\n }\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 };\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';\nconst NULL_ON_PROP_VALUE = [null];\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 = {};\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[event.type];\n if (!eventNameSymbol) {\n eventNameSymbol = zoneSymbolEventNames[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 signiture\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 // substr(2) cuz 'onclick' -> 'click', etc\n const eventName = prop.substr(2);\n let eventNameSymbol = zoneSymbolEventNames[eventName];\n if (!eventNameSymbol) {\n eventNameSymbol = zoneSymbolEventNames[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 let previousValue = target[eventNameSymbol];\n if (previousValue) {\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 if (originalDescSet) {\n originalDescSet.apply(target, NULL_ON_PROP_VALUE);\n }\n if (typeof newValue === 'function') {\n target[eventNameSymbol] = newValue;\n target.addEventListener(eventName, wrapFn, false);\n }\n else {\n target[eventNameSymbol] = null;\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 && 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.substr(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 : 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 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 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 executor && executor(makeResolver(promise, RESOLVED), 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 let C = this.constructor[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 let C = this.constructor[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 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$1 = {};\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$1[eventName] = {};\n zoneSymbolEventNames$1[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames$1[eventName][TRUE_STR] = symbolCapture;\n}\nfunction patchEventTarget(_global, 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 task.invoke(task, target, [event]);\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 };\n // global shared zoneAwareCallback to handle all event callback with capture = false\n const globalZoneAwareCallback = 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 // event.target is needed for Samsung TV and SourceBuffer\n // || global is needed https://github.com/angular/zone.js/issues/190\n const target = this || event.target || _global;\n const tasks = target[zoneSymbolEventNames$1[event.type][FALSE_STR]];\n if (tasks) {\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 invokeTask(tasks[0], target, event);\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 invokeTask(copyTasks[i], target, event);\n }\n }\n }\n };\n // global shared zoneAwareCallback to handle all event callback with capture = true\n const globalZoneAwareCaptureCallback = 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 // event.target is needed for Samsung TV and SourceBuffer\n // || global is needed https://github.com/angular/zone.js/issues/190\n const target = this || event.target || _global;\n const tasks = target[zoneSymbolEventNames$1[event.type][TRUE_STR]];\n if (tasks) {\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 invokeTask(tasks[0], target, event);\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 invokeTask(copyTasks[i], target, event);\n }\n }\n }\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$1[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 upatched 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$1[eventName];\n if (!symbolEventNames) {\n prepareEventNames(eventName, eventNameToString);\n symbolEventNames = zoneSymbolEventNames$1[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$1[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$1[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$1[eventName];\n if (!symbolEventName) {\n prepareEventNames(eventName);\n symbolEventName = zoneSymbolEventNames$1[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 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 }\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 */\nconst globalEventHandlersEventNames = [\n 'abort',\n 'animationcancel',\n 'animationend',\n 'animationiteration',\n 'auxclick',\n 'beforeinput',\n 'blur',\n 'cancel',\n 'canplay',\n 'canplaythrough',\n 'change',\n 'compositionstart',\n 'compositionupdate',\n 'compositionend',\n 'cuechange',\n 'click',\n 'close',\n 'contextmenu',\n 'curechange',\n 'dblclick',\n 'drag',\n 'dragend',\n 'dragenter',\n 'dragexit',\n 'dragleave',\n 'dragover',\n 'drop',\n 'durationchange',\n 'emptied',\n 'ended',\n 'error',\n 'focus',\n 'focusin',\n 'focusout',\n 'gotpointercapture',\n 'input',\n 'invalid',\n 'keydown',\n 'keypress',\n 'keyup',\n 'load',\n 'loadstart',\n 'loadeddata',\n 'loadedmetadata',\n 'lostpointercapture',\n 'mousedown',\n 'mouseenter',\n 'mouseleave',\n 'mousemove',\n 'mouseout',\n 'mouseover',\n 'mouseup',\n 'mousewheel',\n 'orientationchange',\n 'pause',\n 'play',\n 'playing',\n 'pointercancel',\n 'pointerdown',\n 'pointerenter',\n 'pointerleave',\n 'pointerlockchange',\n 'mozpointerlockchange',\n 'webkitpointerlockerchange',\n 'pointerlockerror',\n 'mozpointerlockerror',\n 'webkitpointerlockerror',\n 'pointermove',\n 'pointout',\n 'pointerover',\n 'pointerup',\n 'progress',\n 'ratechange',\n 'reset',\n 'resize',\n 'scroll',\n 'seeked',\n 'seeking',\n 'select',\n 'selectionchange',\n 'selectstart',\n 'show',\n 'sort',\n 'stalled',\n 'submit',\n 'suspend',\n 'timeupdate',\n 'volumechange',\n 'touchcancel',\n 'touchmove',\n 'touchstart',\n 'touchend',\n 'transitioncancel',\n 'transitionend',\n 'waiting',\n 'wheel'\n];\nconst documentEventNames = [\n 'afterscriptexecute', 'beforescriptexecute', 'DOMContentLoaded', 'freeze', 'fullscreenchange',\n 'mozfullscreenchange', 'webkitfullscreenchange', 'msfullscreenchange', 'fullscreenerror',\n 'mozfullscreenerror', 'webkitfullscreenerror', 'msfullscreenerror', 'readystatechange',\n 'visibilitychange', 'resume'\n];\nconst windowEventNames = [\n 'absolutedeviceorientation',\n 'afterinput',\n 'afterprint',\n 'appinstalled',\n 'beforeinstallprompt',\n 'beforeprint',\n 'beforeunload',\n 'devicelight',\n 'devicemotion',\n 'deviceorientation',\n 'deviceorientationabsolute',\n 'deviceproximity',\n 'hashchange',\n 'languagechange',\n 'message',\n 'mozbeforepaint',\n 'offline',\n 'online',\n 'paint',\n 'pageshow',\n 'pagehide',\n 'popstate',\n 'rejectionhandled',\n 'storage',\n 'unhandledrejection',\n 'unload',\n 'userproximity',\n 'vrdisplayconnected',\n 'vrdisplaydisconnected',\n 'vrdisplaypresentchange'\n];\nconst htmlElementEventNames = [\n 'beforecopy', 'beforecut', 'beforepaste', 'copy', 'cut', 'paste', 'dragstart', 'loadend',\n 'animationstart', 'search', 'transitionrun', 'transitionstart', 'webkitanimationend',\n 'webkitanimationiteration', 'webkitanimationstart', 'webkittransitionend'\n];\nconst mediaElementEventNames = ['encrypted', 'waitingforkey', 'msneedkey', 'mozinterruptbegin', 'mozinterruptend'];\nconst ieElementEventNames = [\n 'activate',\n 'afterupdate',\n 'ariarequest',\n 'beforeactivate',\n 'beforedeactivate',\n 'beforeeditfocus',\n 'beforeupdate',\n 'cellchange',\n 'controlselect',\n 'dataavailable',\n 'datasetchanged',\n 'datasetcomplete',\n 'errorupdate',\n 'filterchange',\n 'layoutcomplete',\n 'losecapture',\n 'move',\n 'moveend',\n 'movestart',\n 'propertychange',\n 'resizeend',\n 'resizestart',\n 'rowenter',\n 'rowexit',\n 'rowsdelete',\n 'rowsinserted',\n 'command',\n 'compassneedscalibration',\n 'deactivate',\n 'help',\n 'mscontentzoom',\n 'msmanipulationstatechanged',\n 'msgesturechange',\n 'msgesturedoubletap',\n 'msgestureend',\n 'msgesturehold',\n 'msgesturestart',\n 'msgesturetap',\n 'msgotpointercapture',\n 'msinertiastart',\n 'mslostpointercapture',\n 'mspointercancel',\n 'mspointerdown',\n 'mspointerenter',\n 'mspointerhover',\n 'mspointerleave',\n 'mspointermove',\n 'mspointerout',\n 'mspointerover',\n 'mspointerup',\n 'pointerout',\n 'mssitemodejumplistitemremoved',\n 'msthumbnailclick',\n 'stop',\n 'storagecommit'\n];\nconst webglEventNames = ['webglcontextrestored', 'webglcontextlost', 'webglcontextcreationerror'];\nconst formEventNames = ['autocomplete', 'autocompleteerror'];\nconst detailEventNames = ['toggle'];\nconst frameEventNames = ['load'];\nconst frameSetEventNames = ['blur', 'error', 'focus', 'load', 'resize', 'scroll', 'messageerror'];\nconst marqueeEventNames = ['bounce', 'finish', 'start'];\nconst XMLHttpRequestEventNames = [\n 'loadstart', 'progress', 'abort', 'error', 'load', 'progress', 'timeout', 'loadend',\n 'readystatechange'\n];\nconst IDBIndexEventNames = ['upgradeneeded', 'complete', 'abort', 'success', 'error', 'blocked', 'versionchange', 'close'];\nconst websocketEventNames = ['close', 'error', 'open', 'message'];\nconst workerEventNames = ['error', 'message'];\nconst eventNames = globalEventHandlersEventNames.concat(webglEventNames, formEventNames, detailEventNames, documentEventNames, windowEventNames, htmlElementEventNames, ieElementEventNames);\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}\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 supportsWebSocket = typeof WebSocket !== 'undefined';\n const ignoreProperties = _global['__Zone_ignore_on_properties'];\n // for browsers that we can patch the descriptor: Chrome & Firefox\n if (isBrowser) {\n const internalWindow = window;\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, eventNames.concat(['messageerror']), ignoreProperties ? ignoreProperties.concat(ignoreErrorProperties) : ignoreProperties, ObjectGetPrototypeOf(internalWindow));\n patchFilteredProperties(Document.prototype, eventNames, ignoreProperties);\n if (typeof internalWindow['SVGElement'] !== 'undefined') {\n patchFilteredProperties(internalWindow['SVGElement'].prototype, eventNames, ignoreProperties);\n }\n patchFilteredProperties(Element.prototype, eventNames, ignoreProperties);\n patchFilteredProperties(HTMLElement.prototype, eventNames, ignoreProperties);\n patchFilteredProperties(HTMLMediaElement.prototype, mediaElementEventNames, ignoreProperties);\n patchFilteredProperties(HTMLFrameSetElement.prototype, windowEventNames.concat(frameSetEventNames), ignoreProperties);\n patchFilteredProperties(HTMLBodyElement.prototype, windowEventNames.concat(frameSetEventNames), ignoreProperties);\n patchFilteredProperties(HTMLFrameElement.prototype, frameEventNames, ignoreProperties);\n patchFilteredProperties(HTMLIFrameElement.prototype, frameEventNames, ignoreProperties);\n const HTMLMarqueeElement = internalWindow['HTMLMarqueeElement'];\n if (HTMLMarqueeElement) {\n patchFilteredProperties(HTMLMarqueeElement.prototype, marqueeEventNames, ignoreProperties);\n }\n const Worker = internalWindow['Worker'];\n if (Worker) {\n patchFilteredProperties(Worker.prototype, workerEventNames, ignoreProperties);\n }\n }\n const XMLHttpRequest = _global['XMLHttpRequest'];\n if (XMLHttpRequest) {\n // XMLHttpRequest is not available in ServiceWorker, so we need to check here\n patchFilteredProperties(XMLHttpRequest.prototype, XMLHttpRequestEventNames, ignoreProperties);\n }\n const XMLHttpRequestEventTarget = _global['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget) {\n patchFilteredProperties(XMLHttpRequestEventTarget && XMLHttpRequestEventTarget.prototype, XMLHttpRequestEventNames, ignoreProperties);\n }\n if (typeof IDBIndex !== 'undefined') {\n patchFilteredProperties(IDBIndex.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBRequest.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBOpenDBRequest.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBDatabase.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBTransaction.prototype, IDBIndexEventNames, ignoreProperties);\n patchFilteredProperties(IDBCursor.prototype, IDBIndexEventNames, ignoreProperties);\n }\n if (supportsWebSocket) {\n patchFilteredProperties(WebSocket.prototype, websocketEventNames, 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 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: zoneSymbolEventNames$1,\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, [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, [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","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}\n\nmodule.exports = _createForOfIteratorHelper, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\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 `