{"version":3,"file":"vendor.js","mappings":"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GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,MAAM;AAC1B;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACO;AACP,6BAA6B,sBAAsB;AACnD;AACA;AACA;AACA;AACO;AACP,kDAAkD,QAAQ;AAC1D,yCAAyC,QAAQ;AACjD,yDAAyD,QAAQ;AACjE;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA,iBAAiB,uFAAuF,cAAc;AACtH,uBAAuB,gCAAgC,qCAAqC,2CAA2C;AACvI,4BAA4B,MAAM,iBAAiB,YAAY;AAC/D,uBAAuB;AACvB,8BAA8B;AAC9B,6BAA6B;AAC7B,4BAA4B;AAC5B;AACA;AACO;AACP;AACA,iBAAiB,6CAA6C,UAAU,sDAAsD,cAAc;AAC5I,0BAA0B,6BAA6B,oBAAoB,gDAAgD,kBAAkB;AAC7I;AACA;AACO;AACP;AACA;AACA,2GAA2G,uFAAuF,cAAc;AAChN,uBAAuB,8BAA8B,gDAAgD,wDAAwD;AAC7J,6CAA6C,sCAAsC,UAAU,mBAAmB,IAAI;AACpH;AACA;AACO;AACP,iCAAiC,uCAAuC,YAAY,KAAK,OAAO;AAChG;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,6CAA6C;AAC7C;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB,sCAAsC,kBAAkB;AACnF,0BAA0B;AAC1B;AACA;AACA;AACO;AACP;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACO;AACP;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA,6DAA6D,cAAc;AAC3E;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA,6CAA6C,QAAQ;AACrD;AACA;AACA;AACO;AACP,oCAAoC;AACpC;AACA;AACO;AACP;AACA;AACA;AACO;AACP,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACO;AACP,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,iBAAiB,oDAAoD,qEAAqE,cAAc;AACxJ,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA;AACO;AACP;AACA;AACA;AACA,iBAAiB,oCAAoC;AACrD;AACA;AACA,CAAC;AACD;AACA;AACA,CAAC;AACD;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,MAAM;AAC1B;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACO;AACP,6BAA6B,sBAAsB;AACnD;AACA;AACA;AACA;AACA;AACO;AACP,kDAAkD,QAAQ;AAC1D,yCAAyC,QAAQ;AACjD,yDAAyD,QAAQ;AACjE;AACA;AACA;AACA;AACO;AACP,6EAA6E,OAAO;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA,iBAAiB,uFAAuF,cAAc;AACtH,uBAAuB,gCAAgC,qCAAqC,2CAA2C;AACvI,4BAA4B,MAAM,iBAAiB,YAAY;AAC/D,uBAAuB;AACvB,8BAA8B;AAC9B,6BAA6B;AAC7B,4BAA4B;AAC5B;AACA;AACO;AACP;AACA,iBAAiB,6CAA6C,UAAU,sDAAsD,cAAc;AAC5I,0BAA0B,6BAA6B,oBAAoB,gDAAgD,kBAAkB;AAC7I;AACA;AACO;AACP;AACA;AACA,2GAA2G,uFAAuF,cAAc;AAChN,uBAAuB,8BAA8B,gDAAgD,wDAAwD;AAC7J,6CAA6C,sCAAsC,UAAU,mBAAmB,IAAI;AACpH;AACA;AACO;AACP,iCAAiC,uCAAuC,YAAY,KAAK,OAAO;AAChG;AACA;AACA;AACA;AACA,0CAA0C,4BAA4B;AACtE,CAAC;AACD;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP,6CAA6C;AAC7C;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvPA;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,gBAAN,CAAuB;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,gBAAN,CAAuB;AAGvB;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,UAAU,GAAG,GAAnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASrxE,OAAT,CAAiBz+B,IAAjB,EAAuB+vG,WAAvB,EAAoC;EAChC,OAAO;IAAEryH,IAAI,EAAE;IAAE;IAAV;IAA+CsiB,IAA/C;IAAqD+vG,WAArD;IAAkE1hG,OAAO,EAAE;EAA3E,CAAP;AACH;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS2hG,OAAT,CAAiBC,OAAjB,EAA0BhzG,MAAM,GAAG,IAAnC,EAAyC;EACrC,OAAO;IAAEvf,IAAI,EAAE;IAAE;IAAV;IAA+Cuf,MAA/C;IAAuDgzG;EAAvD,CAAP;AACH;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;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAStzD,KAAT,CAAeuzD,KAAf,EAAsB7hG,OAAO,GAAG,IAAhC,EAAsC;EAClC,OAAO;IAAE3wB,IAAI,EAAE;IAAE;IAAV;IAA6CwyH,KAA7C;IAAoD7hG;EAApD,CAAP;AACH;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;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS8hG,QAAT,CAAkBD,KAAlB,EAAyB7hG,OAAO,GAAG,IAAnC,EAAyC;EACrC,OAAO;IAAE3wB,IAAI,EAAE;IAAE;IAAV;IAAgDwyH,KAAhD;IAAuD7hG;EAAvD,CAAP;AACH;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASuL,KAAT,CAAew2F,MAAf,EAAuB;EACnB,OAAO;IAAE1yH,IAAI,EAAE;IAAE;IAAV;IAA6Cuf,MAAM,EAAEmzG,MAArD;IAA6Dl4F,MAAM,EAAE;EAArE,CAAP;AACH;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;AACA;AACA;;;AACA,SAAS7O,KAAT,CAAerJ,IAAf,EAAqB/C,MAArB,EAA6BoR,OAA7B,EAAsC;EAClC,OAAO;IAAE3wB,IAAI,EAAE;IAAE;IAAV;IAA6CsiB,IAA7C;IAAmD/C,MAAnD;IAA2DoR;EAA3D,CAAP;AACH;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASgiG,SAAT,CAAmBH,KAAnB,EAA0B;EACtB,OAAO;IAAExyH,IAAI,EAAE;IAAE;IAAV;IAAiDwyH;EAAjD,CAAP;AACH;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASzZ,UAAT,CAAoB6Z,eAApB,EAAqCJ,KAArC,EAA4C7hG,OAAO,GAAG,IAAtD,EAA4D;EACxD,OAAO;IAAE3wB,IAAI,EAAE;IAAE;IAAV;IAAkD6yH,IAAI,EAAED,eAAxD;IAAyErX,SAAS,EAAEiX,KAApF;IAA2F7hG;EAA3F,CAAP;AACH;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS4qF,SAAT,CAAmBiX,KAAnB,EAA0B7hG,OAAO,GAAG,IAApC,EAA0C;EACtC,OAAO;IAAE3wB,IAAI,EAAE;IAAE;IAAV;IAAiDu7G,SAAS,EAAEiX,KAA5D;IAAmE7hG;EAAnE,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASmiG,YAAT,CAAsBniG,OAAO,GAAG,IAAhC,EAAsC;EAClC,OAAO;IAAE3wB,IAAI,EAAE;IAAE;IAAV;IAAoD2wB;EAApD,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASoiG,YAAT,CAAsBxX,SAAtB,EAAiC5qF,OAAO,GAAG,IAA3C,EAAiD;EAC7C,OAAO;IAAE3wB,IAAI,EAAE;IAAG;IAAX;IAAmDu7G,SAAnD;IAA8D5qF;EAA9D,CAAP;AACH;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASkiD,KAAT,CAAep8D,QAAf,EAAyB8kG,SAAzB,EAAoC5qF,OAAO,GAAG,IAA9C,EAAoD;EAChD,OAAO;IAAE3wB,IAAI,EAAE;IAAG;IAAX;IAA8CyW,QAA9C;IAAwD8kG,SAAxD;IAAmE5qF;EAAnE,CAAP;AACH;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASqiG,OAAT,CAAiBT,OAAjB,EAA0BhX,SAA1B,EAAqC;EACjC,OAAO;IAAEv7G,IAAI,EAAE;IAAG;IAAX;IAAg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H,UAAjC,EAA6CiW,aAA7C,EAA4DE,aAA5D,CAAP;EACH;;AAnDqB;AAsD1B;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;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjnJA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,IAAIgC,IAAI,GAAG,IAAX;;AACA,SAASC,MAAT,GAAkB;EACd,OAAOD,IAAP;AACH;;AACD,SAASE,MAAT,CAAgBC,OAAhB,EAAyB;EACrBH,IAAI,GAAGG,OAAP;AACH;;AACD,SAASC,iBAAT,CAA2BD,OAA3B,EAAoC;EAChC,IAAI,CAACH,IAAL,EAAW;IACPA,IAAI,GAAGG,OAAP;EACH;AACJ;AACD;;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAME,UAAN,CAAiB;AAGjB;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMroJ,QAAQ,GAAG,IAAI9B,yDAAJ,CAAmB,eAAnB,CAAjB;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,MAAMoqJ,gBAAN,CAAuB;EACnBC,SAAS,CAACC,gBAAD,EAAmB;IACxB,MAAM,IAAIr5H,KAAJ,CAAU,iBAAV,CAAN;EACH;;AAHkB;;AAKvBm5H,gBAAgB,CAAC9tI,IAAjB;EAAA,iBAA6G8tI,gBAA7G;AAAA;;AACAA,gBAAgB,CAAC3tI,KAAjB,kBADmGg1E,gEACnG;EAAA,OAAiH24D,gBAAj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1B;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASswH,uBAAT,CAAiCn8H,MAAjC,EAAyC;EACrC,MAAML,IAAI,GAAGq1H,iEAAe,CAACh1H,MAAD,CAA5B;EACA,OAAOL,IAAI,CAACs1H,6EAAD,CAAX;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASoH,qBAAT,CAA+Br8H,MAA/B,EAAuC;EACnC,MAAML,IAAI,GAAGq1H,iEAAe,CAACh1H,MAAD,CAA5B;EACA,OAAOL,IAAI,CAACs1H,2EAAD,CAAX;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASsH,mBAAT,CAA6Bv8H,MAA7B,EAAqC6L,KAArC,EAA4C;EACxC,MAAMlM,IAAI,GAAGq1H,iEAAe,CAACh1H,MAAD,CAA5B;EACA,OAAOy7H,mBAAmB,CAAC97H,IAAI,CAACs1H,yEAAD,CAAL,EAAoCppH,KAApC,CAA1B;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS4wH,mBAAT,CAA6Bz8H,MAA7B,EAAqC6L,KAArC,EAA4C;EACxC,MAAMlM,IAAI,GAAGq1H,iEAAe,CAACh1H,MAAD,CAA5B;EACA,OAAOy7H,mBAAmB,CAAC97H,IAAI,CAACs1H,yEAAD,CAAL,EAAoCppH,KAApC,CAA1B;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS8wH,uBAAT,CAAiC38H,MAAjC,EAAyC6L,KAAzC,EAAgD;EAC5C,MAAMlM,IAAI,GAAGq1H,iEAAe,CAACh1H,MAAD,CAA5B;EACA,MAAM48H,kBAAkB,GAAGj9H,IAAI,CAACs1H,6EAAD,CAA/B;EACA,OAAOwG,mBAAmB,CAACmB,kBAAD,EAAqB/wH,KAArB,CAA1B;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASixH,qBAAT,CAA+B98H,MAA/B,EAAuC+8H,MAAvC,EAA+C;EAC3C,MAAMp9H,IAAI,GAAGq1H,iEAAe,CAACh1H,MAAD,CAA5B;EACA,MAAM+0D,GAAG,GAAGp1D,IAAI,CAACs1H,4EAAD,CAAJ,CAAqC8H,MAArC,CAAZ;;EACA,IAAI,OAAOhoE,GAAP,KAAe,WAAnB,EAAgC;IAC5B,IAAIgoE,MAAM,KAAKhC,YAAY,CAACkC,eAA5B,EAA6C;MACzC,OAAOt9H,IAAI,CAACs1H,4EAAD,CAAJ,CAAqC8F,YAAY,CAACmC,OAAlD,CAAP;IACH,CAFD,MAGK,IAAIH,MAAM,KAAKhC,YAAY,CAACoC,aAA5B,EAA2C;MAC5C,OAAOx9H,IAAI,CAACs1H,4EAAD,CAAJ,CAAqC8F,YAAY,CAACqC,KAAlD,CAAP;IACH;EACJ;;EACD,OAAOroE,GAAP;AACH;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASsoE,qBAAT,CAA+Br9H,MAA/B,EAAuCpuB,IAAvC,EAA6C;EACzC,MAAM+tB,IAAI,GAAGq1H,iEAAe,CAACh1H,MAAD,CAA5B;EACA,OAAOL,IAAI,CAACs1H,4EAAD,CAAJ,CAAqCrjJ,IAArC,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS2rJ,uBAAT,CAAiCv9H,MAAjC,EAAyC;EACrC,MAAML,IAAI,GAAGq1H,iEAAe,CAACh1H,MAAD,CAA5B;EACA,OAAOL,IAAI,CAACs1H,6EAAD,CAAJ,IAAyC,IAAhD;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASwI,qBAAT,CAA+Bz9H,MAA/B,EAAuC;EACnC,MAAML,IAAI,GAAGq1H,iEAAe,CAACh1H,MAAD,CAA5B;EACA,OAAOL,IAAI,CAACs1H,2EAAD,CAAJ,IAAuC,IAA9C;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS0I,qBAAT,CAA+B39H,MAA/B,EAAuC;EACnC,OAAOk1H,wEAAsB,CAACl1H,MAAD,CAA7B;AACH;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS49H,mBAAT,CAA6B59H,MAA7B,EAAqC;EACjC,MAAML,IAAI,GAAGq1H,iEAAe,CAACh1H,MAAD,CAA5B;EACA,OAAOL,IAAI,CAACs1H,yEAAD,CAAX;AACH;AACD;AACA;AACA;AACA;;;AACA,MAAM6I,mBAAmB,GAAG3I,kEAA5B;;AACA,SAAS4I,aAAT,CAAuBp+H,IAAvB,EAA6B;EACzB,IAAI,CAACA,IAAI,CAACs1H,wEAAD,CAAT,EAAuC;IACnC,MAAM,IAAI73H,KAAJ,CAAW,6CAA4CuC,IAAI,CAACs1H,uEAAD,CAClD,gGADT,CAAN;EAEH;AACJ;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASgJ,4BAAT,CAAsCj+H,MAAtC,EAA8C;EAC1C,MAAML,IAAI,GAAGq1H,iEAAe,CAACh1H,MAAD,CAA5B;EACA+9H,aAAa,CAACp+H,IAAD,CAAb;EACA,MAAMu+H,KAAK,GAAGv+H,IAAI,CAACs1H,wEAAD,CAAJ,CAAiC;EAAE;EAAnC,KAAwF,EAAtG;EACA,OAAOiJ,KAAK,CAACrvJ,GAAN,CAAWsvJ,IAAD,IAAU;IACvB,IAAI,OAAOA,IAAP,KAAgB,QAApB,EAA8B;MAC1B,OAAOC,WAAW,CAACD,IAAD,CAAlB;IACH;;IACD,OAAO,CAACC,WAAW,CAACD,IAAI,CAAC,CAAD,CAAL,CAAZ,EAAuBC,WAAW,CAACD,IAAI,CAAC,CAAD,CAAL,CAAlC,CAAP;EACH,CALM,CAAP;AAMH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASE,wBAAT,CAAkCr+H,MAAlC,EAA0Co7H,SAA1C,EAAqDvvH,KAArD,EAA4D;EACxD,MAAMlM,IAAI,GAAGq1H,iEAAe,CAACh1H,MAAD,CAA5B;EACA+9H,aAAa,CAACp+H,IAAD,CAAb;EACA,MAAM2+H,cAAc,GAAG,CACnB3+H,IAAI,CAACs1H,wEAAD,CAAJ,CAAiC;EAAE;EAAnC,CADmB,EAEnBt1H,IAAI,CAACs1H,wEAAD,CAAJ,CAAiC;EAAE;EAAnC,CAFmB,CAAvB;EAIA,MAAMsJ,UAAU,GAAG9C,mBAAmB,CAAC6C,cAAD,EAAiBlD,SAAjB,CAAnB,IAAkD,EAArE;EACA,OAAOK,mBAAmB,CAAC8C,UAAD,EAAa1yH,KAAb,CAAnB,IAA0C,EAAjD;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS2yH,kBAAT,CAA4Bx+H,MAA5B,EAAoC;EAChC,MAAML,IAAI,GAAGq1H,iEAAe,CAACh1H,MAAD,CAA5B;EACA,OAAOL,IAAI,CAACs1H,6EAAD,CAAX;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASwG,mBAAT,CAA6B97H,IAA7B,EAAmC3lB,KAAnC,EAA0C;EACtC,KAAK,IAAIikB,CAAC,GAAGjkB,KAAb,EAAoBikB,CAAC,GAAG,CAAC,CAAzB,EAA4BA,CAAC,EAA7B,EAAiC;IAC7B,IAAI,OAAO0B,IAAI,CAAC1B,CAAD,CAAX,KAAmB,WAAvB,EAAoC;MAChC,OAAO0B,IAAI,CAAC1B,CAAD,CAAX;IACH;EACJ;;EACD,MAAM,IAAIb,KAAJ,CAAU,wCAAV,CAAN;AACH;AACD;AACA;AACA;;;AACA,SAASghI,WAAT,CAAqB9hI,IAArB,EAA2B;EACvB,MAAM,CAACoiI,CAAD,EAAInlH,CAAJ,IAASjd,IAAI,CAACjV,KAAL,CAAW,GAAX,CAAf;EACA,OAAO;IAAEs3I,KAAK,EAAE,CAACD,CAAV;IAAaE,OAAO,EAAE,CAACrlH;EAAvB,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASslH,iBAAT,CAA2BC,IAA3B,EAAiCxuH,MAAjC,EAAyCtQ,MAAM,GAAG,IAAlD,EAAwD;EACpD,MAAM++H,QAAQ,GAAGnB,mBAAmB,CAAC59H,MAAD,CAAnB,CAA4B8+H,IAA5B,KAAqCnE,aAAa,CAACmE,IAAD,CAAlD,IAA4D,EAA7E;EACA,MAAME,YAAY,GAAGD,QAAQ,CAAC;EAAE;EAAH,CAA7B;;EACA,IAAIzuH,MAAM,KAAK,QAAX,IAAuB,OAAO0uH,YAAP,KAAwB,QAAnD,EAA6D;IACzD,OAAOA,YAAP;EACH;;EACD,OAAOD,QAAQ,CAAC;EAAE;EAAH,CAAR,IAA2CD,IAAlD;AACH,EACD;;;AACA,MAAMG,6BAA6B,GAAG,CAAtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,yBAAT,CAAmCJ,IAAnC,EAAyC;EACrC,IAAIK,MAAJ;EACA,MAAMJ,QAAQ,GAAGpE,aAAa,CAACmE,IAAD,CAA9B;;EACA,IAAIC,QAAJ,EAAc;IACVI,MAAM,GAAGJ,QAAQ,CAAC;IAAE;IAAH,CAAjB;EACH;;EACD,OAAO,OAAOI,MAAP,KAAkB,QAAlB,GAA6BA,MAA7B,GAAsCF,6BAA7C;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMG,kBAAkB,GAAG,uGAA3B,EACA;;AACA,MAAMC,aAAa,GAAG,EAAtB;AACA,MAAMC,kBAAkB,GAAG,mNAA3B;AACA,IAAIC,SAAJ;;AACA,CAAC,UAAUA,SAAV,EAAqB;EAClBA,SAAS,CAACA,SAAS,CAAC,OAAD,CAAT,GAAqB,CAAtB,CAAT,GAAoC,OAApC;EACAA,SAAS,CAACA,SAAS,CAAC,UAAD,CAAT,GAAwB,CAAzB,CAAT,GAAuC,UAAvC;EACAA,SAAS,CAACA,SAAS,CAAC,MAAD,CAAT,GAAoB,CAArB,CAAT,GAAmC,MAAnC;EACAA,SAAS,CAACA,SAAS,CAAC,UAAD,CAAT,GAAwB,CAAzB,CAAT,GAAuC,UAAvC;AACH,CALD,EAKGA,SAAS,KAAKA,SAAS,GAAG,EAAjB,CALZ;;AAMA,IAAIC,QAAJ;;AACA,CAAC,UAAUA,QAAV,EAAoB;EACjBA,QAAQ,CAACA,QAAQ,CAAC,UAAD,CAAR,GAAuB,CAAxB,CAAR,GAAqC,UAArC;EACAA,QAAQ,CAACA,QAAQ,CAAC,OAAD,CAAR,GAAoB,CAArB,CAAR,GAAkC,OAAlC;EACAA,QAAQ,CAACA,QAAQ,CAAC,MAAD,CAAR,GAAmB,CAApB,CAAR,GAAiC,MAAjC;EACAA,QAAQ,CAACA,QAAQ,CAAC,OAAD,CAAR,GAAoB,CAArB,CAAR,GAAkC,OAAlC;EACAA,QAAQ,CAACA,QAAQ,CAAC,SAAD,CAAR,GAAsB,CAAvB,CAAR,GAAoC,SAApC;EACAA,QAAQ,CAACA,QAAQ,CAAC,SAAD,CAAR,GAAsB,CAAvB,CAAR,GAAoC,SAApC;EACAA,QAAQ,CAACA,QAAQ,CAAC,mBAAD,CAAR,GAAgC,CAAjC,CAAR,GAA8C,mBAA9C;EACAA,QAAQ,CAACA,QAAQ,CAAC,KAAD,CAAR,GAAkB,CAAnB,CAAR,GAAgC,KAAhC;AACH,CATD,EASGA,QAAQ,KAAKA,QAAQ,GAAG,EAAhB,CATX;;AAUA,IAAIC,eAAJ;;AACA,CAAC,UAAUA,eAAV,EAA2B;EACxBA,eAAe,CAACA,eAAe,CAAC,YAAD,CAAf,GAAgC,CAAjC,CAAf,GAAqD,YAArD;EACAA,eAAe,CAACA,eAAe,CAAC,MAAD,CAAf,GAA0B,CAA3B,CAAf,GAA+C,MAA/C;EACAA,eAAe,CAACA,eAAe,CAAC,QAAD,CAAf,GAA4B,CAA7B,CAAf,GAAiD,QAAjD;EACAA,eAAe,CAACA,eAAe,CAAC,MAAD,CAAf,GAA0B,CAA3B,CAAf,GAA+C,MAA/C;AACH,CALD,EAKGA,eAAe,KAAKA,eAAe,GAAG,EAAvB,CALlB;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASzxJ,UAAT,CAAoBiV,KAApB,EAA2BqtB,MAA3B,EAAmCtQ,MAAnC,EAA2C0/H,QAA3C,EAAqD;EACjD,IAAI9qJ,IAAI,GAAG+qJ,MAAM,CAAC18I,KAAD,CAAjB;EACA,MAAM28I,WAAW,GAAGC,cAAc,CAAC7/H,MAAD,EAASsQ,MAAT,CAAlC;EACAA,MAAM,GAAGsvH,WAAW,IAAItvH,MAAxB;EACA,IAAIovB,KAAK,GAAG,EAAZ;EACA,IAAIif,KAAJ;;EACA,OAAOruC,MAAP,EAAe;IACXquC,KAAK,GAAG2gF,kBAAkB,CAAC1uB,IAAnB,CAAwBtgG,MAAxB,CAAR;;IACA,IAAIquC,KAAJ,EAAW;MACPjf,KAAK,GAAGA,KAAK,CAACurB,MAAN,CAAatM,KAAK,CAAC73D,KAAN,CAAY,CAAZ,CAAb,CAAR;MACA,MAAMg5I,IAAI,GAAGpgG,KAAK,CAAC+xC,GAAN,EAAb;;MACA,IAAI,CAACquD,IAAL,EAAW;QACP;MACH;;MACDxvH,MAAM,GAAGwvH,IAAT;IACH,CAPD,MAQK;MACDpgG,KAAK,CAACtwB,IAAN,CAAWkB,MAAX;MACA;IACH;EACJ;;EACD,IAAIyvH,kBAAkB,GAAGnrJ,IAAI,CAACorJ,iBAAL,EAAzB;;EACA,IAAIN,QAAJ,EAAc;IACVK,kBAAkB,GAAGE,gBAAgB,CAACP,QAAD,EAAWK,kBAAX,CAArC;IACAnrJ,IAAI,GAAGsrJ,sBAAsB,CAACtrJ,IAAD,EAAO8qJ,QAAP,EAAiB,IAAjB,CAA7B;EACH;;EACD,IAAI14I,IAAI,GAAG,EAAX;EACA04C,KAAK,CAAC9yC,OAAN,CAAc3J,KAAK,IAAI;IACnB,MAAMk9I,aAAa,GAAGC,gBAAgB,CAACn9I,KAAD,CAAtC;IACA+D,IAAI,IAAIm5I,aAAa,GAAGA,aAAa,CAACvrJ,IAAD,EAAOorB,MAAP,EAAe+/H,kBAAf,CAAhB,GACjB98I,KAAK,KAAK,MAAV,GAAmB,IAAnB,GACIA,KAAK,CAACgE,OAAN,CAAc,UAAd,EAA0B,EAA1B,EAA8BA,OAA9B,CAAsC,KAAtC,EAA6C,IAA7C,CAFR;EAGH,CALD;EAMA,OAAOD,IAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASq5I,UAAT,CAAoBzpJ,IAApB,EAA0BkB,KAA1B,EAAiClD,IAAjC,EAAuC;EACnC;EACA;EACA;EACA;EACA,MAAMwqB,OAAO,GAAG,IAAInE,IAAJ,CAAS,CAAT,CAAhB,CALmC,CAMnC;EACA;EACA;EACA;EACA;;EACAmE,OAAO,CAACjE,WAAR,CAAoBvkB,IAApB,EAA0BkB,KAA1B,EAAiClD,IAAjC,EAXmC,CAYnC;EACA;EACA;;EACAwqB,OAAO,CAAC2a,QAAR,CAAiB,CAAjB,EAAoB,CAApB,EAAuB,CAAvB;EACA,OAAO3a,OAAP;AACH;;AACD,SAASygI,cAAT,CAAwB7/H,MAAxB,EAAgCsQ,MAAhC,EAAwC;EACpC,MAAMmwD,QAAQ,GAAGw6D,WAAW,CAACj7H,MAAD,CAA5B;EACAq/H,aAAa,CAAC5+D,QAAD,CAAb,GAA0B4+D,aAAa,CAAC5+D,QAAD,CAAb,IAA2B,EAArD;;EACA,IAAI4+D,aAAa,CAAC5+D,QAAD,CAAb,CAAwBnwD,MAAxB,CAAJ,EAAqC;IACjC,OAAO+uH,aAAa,CAAC5+D,QAAD,CAAb,CAAwBnwD,MAAxB,CAAP;EACH;;EACD,IAAIgwH,WAAW,GAAG,EAAlB;;EACA,QAAQhwH,MAAR;IACI,KAAK,WAAL;MACIgwH,WAAW,GAAG/D,mBAAmB,CAACv8H,MAAD,EAAS86H,WAAW,CAACl6H,KAArB,CAAjC;MACA;;IACJ,KAAK,YAAL;MACI0/H,WAAW,GAAG/D,mBAAmB,CAACv8H,MAAD,EAAS86H,WAAW,CAACyF,MAArB,CAAjC;MACA;;IACJ,KAAK,UAAL;MACID,WAAW,GAAG/D,mBAAmB,CAACv8H,MAAD,EAAS86H,WAAW,CAAC0F,IAArB,CAAjC;MACA;;IACJ,KAAK,UAAL;MACIF,WAAW,GAAG/D,mBAAmB,CAACv8H,MAAD,EAAS86H,WAAW,CAAC2F,IAArB,CAAjC;MACA;;IACJ,KAAK,WAAL;MACIH,WAAW,GAAG7D,mBAAmB,CAACz8H,MAAD,EAAS86H,WAAW,CAACl6H,KAArB,CAAjC;MACA;;IACJ,KAAK,YAAL;MACI0/H,WAAW,GAAG7D,mBAAmB,CAACz8H,MAAD,EAAS86H,WAAW,CAACyF,MAArB,CAAjC;MACA;;IACJ,KAAK,UAAL;MACID,WAAW,GAAG7D,mBAAmB,CAACz8H,MAAD,EAAS86H,WAAW,CAAC0F,IAArB,CAAjC;MACA;;IACJ,KAAK,UAAL;MACIF,WAAW,GAAG7D,mBAAmB,CAACz8H,MAAD,EAAS86H,WAAW,CAAC2F,IAArB,CAAjC;MACA;;IACJ,KAAK,OAAL;MACI,MAAMC,SAAS,GAAGb,cAAc,CAAC7/H,MAAD,EAAS,WAAT,CAAhC;MACA,MAAM2gI,SAAS,GAAGd,cAAc,CAAC7/H,MAAD,EAAS,WAAT,CAAhC;MACAsgI,WAAW,GAAGM,cAAc,CAACjE,uBAAuB,CAAC38H,MAAD,EAAS86H,WAAW,CAACl6H,KAArB,CAAxB,EAAqD,CAAC8/H,SAAD,EAAYC,SAAZ,CAArD,CAA5B;MACA;;IACJ,KAAK,QAAL;MACI,MAAME,UAAU,GAAGhB,cAAc,CAAC7/H,MAAD,EAAS,YAAT,CAAjC;MACA,MAAM8gI,UAAU,GAAGjB,cAAc,CAAC7/H,MAAD,EAAS,YAAT,CAAjC;MACAsgI,WAAW,GAAGM,cAAc,CAACjE,uBAAuB,CAAC38H,MAAD,EAAS86H,WAAW,CAACyF,MAArB,CAAxB,EAAsD,CAACM,UAAD,EAAaC,UAAb,CAAtD,CAA5B;MACA;;IACJ,KAAK,MAAL;MACI,MAAMC,QAAQ,GAAGlB,cAAc,CAAC7/H,MAAD,EAAS,UAAT,CAA/B;MACA,MAAMghI,QAAQ,GAAGnB,cAAc,CAAC7/H,MAAD,EAAS,UAAT,CAA/B;MACAsgI,WAAW,GACPM,cAAc,CAACjE,uBAAuB,CAAC38H,MAAD,EAAS86H,WAAW,CAAC0F,IAArB,CAAxB,EAAoD,CAACO,QAAD,EAAWC,QAAX,CAApD,CADlB;MAEA;;IACJ,KAAK,MAAL;MACI,MAAMC,QAAQ,GAAGpB,cAAc,CAAC7/H,MAAD,EAAS,UAAT,CAA/B;MACA,MAAMkhI,QAAQ,GAAGrB,cAAc,CAAC7/H,MAAD,EAAS,UAAT,CAA/B;MACAsgI,WAAW,GACPM,cAAc,CAACjE,uBAAuB,CAAC38H,MAAD,EAAS86H,WAAW,CAAC2F,IAArB,CAAxB,EAAoD,CAACQ,QAAD,EAAWC,QAAX,CAApD,CADlB;MAEA;EA9CR;;EAgDA,IAAIZ,WAAJ,EAAiB;IACbjB,aAAa,CAAC5+D,QAAD,CAAb,CAAwBnwD,MAAxB,IAAkCgwH,WAAlC;EACH;;EACD,OAAOA,WAAP;AACH;;AACD,SAASM,cAAT,CAAwBpiF,GAAxB,EAA6B2iF,UAA7B,EAAyC;EACrC,IAAIA,UAAJ,EAAgB;IACZ3iF,GAAG,GAAGA,GAAG,CAACv3D,OAAJ,CAAY,aAAZ,EAA2B,UAAU03D,KAAV,EAAiB/6B,GAAjB,EAAsB;MACnD,OAAQu9G,UAAU,IAAI,IAAd,IAAsBv9G,GAAG,IAAIu9G,UAA9B,GAA4CA,UAAU,CAACv9G,GAAD,CAAtD,GAA8D+6B,KAArE;IACH,CAFK,CAAN;EAGH;;EACD,OAAOH,GAAP;AACH;;AACD,SAAS33D,SAAT,CAAmB2vE,GAAnB,EAAwB2oE,MAAxB,EAAgCiC,SAAS,GAAG,GAA5C,EAAiD/wH,IAAjD,EAAuDgxH,OAAvD,EAAgE;EAC5D,IAAIC,GAAG,GAAG,EAAV;;EACA,IAAI9qE,GAAG,GAAG,CAAN,IAAY6qE,OAAO,IAAI7qE,GAAG,IAAI,CAAlC,EAAsC;IAClC,IAAI6qE,OAAJ,EAAa;MACT7qE,GAAG,GAAG,CAACA,GAAD,GAAO,CAAb;IACH,CAFD,MAGK;MACDA,GAAG,GAAG,CAACA,GAAP;MACA8qE,GAAG,GAAGF,SAAN;IACH;EACJ;;EACD,IAAIG,MAAM,GAAGngI,MAAM,CAACo1D,GAAD,CAAnB;;EACA,OAAO+qE,MAAM,CAACtnJ,MAAP,GAAgBklJ,MAAvB,EAA+B;IAC3BoC,MAAM,GAAG,MAAMA,MAAf;EACH;;EACD,IAAIlxH,IAAJ,EAAU;IACNkxH,MAAM,GAAGA,MAAM,CAACz6I,KAAP,CAAay6I,MAAM,CAACtnJ,MAAP,GAAgBklJ,MAA7B,CAAT;EACH;;EACD,OAAOmC,GAAG,GAAGC,MAAb;AACH;;AACD,SAASC,uBAAT,CAAiCC,YAAjC,EAA+CtC,MAA/C,EAAuD;EACnD,MAAMuC,KAAK,GAAG76I,SAAS,CAAC46I,YAAD,EAAe,CAAf,CAAvB;EACA,OAAOC,KAAK,CAACt1B,SAAN,CAAgB,CAAhB,EAAmB+yB,MAAnB,CAAP;AACH;AACD;AACA;AACA;;;AACA,SAASwC,UAAT,CAAoBztI,IAApB,EAA0Bk2B,IAA1B,EAAgChe,MAAM,GAAG,CAAzC,EAA4CiE,IAAI,GAAG,KAAnD,EAA0DgxH,OAAO,GAAG,KAApE,EAA2E;EACvE,OAAO,UAAUzsJ,IAAV,EAAgBorB,MAAhB,EAAwB;IAC3B,IAAI8/H,IAAI,GAAG8B,WAAW,CAAC1tI,IAAD,EAAOtf,IAAP,CAAtB;;IACA,IAAIw3B,MAAM,GAAG,CAAT,IAAc0zH,IAAI,GAAG,CAAC1zH,MAA1B,EAAkC;MAC9B0zH,IAAI,IAAI1zH,MAAR;IACH;;IACD,IAAIlY,IAAI,KAAKsrI,QAAQ,CAACqC,KAAtB,EAA6B;MACzB,IAAI/B,IAAI,KAAK,CAAT,IAAc1zH,MAAM,KAAK,CAAC,EAA9B,EAAkC;QAC9B0zH,IAAI,GAAG,EAAP;MACH;IACJ,CAJD,MAKK,IAAI5rI,IAAI,KAAKsrI,QAAQ,CAACsC,iBAAtB,EAAyC;MAC1C,OAAON,uBAAuB,CAAC1B,IAAD,EAAO11G,IAAP,CAA9B;IACH;;IACD,MAAM23G,WAAW,GAAGjF,qBAAqB,CAAC98H,MAAD,EAAS+6H,YAAY,CAACiH,SAAtB,CAAzC;IACA,OAAOn7I,SAAS,CAACi5I,IAAD,EAAO11G,IAAP,EAAa23G,WAAb,EAA0B1xH,IAA1B,EAAgCgxH,OAAhC,CAAhB;EACH,CAfD;AAgBH;;AACD,SAASO,WAAT,CAAqB9B,IAArB,EAA2BlrJ,IAA3B,EAAiC;EAC7B,QAAQkrJ,IAAR;IACI,KAAKN,QAAQ,CAACyC,QAAd;MACI,OAAOrtJ,IAAI,CAACimB,WAAL,EAAP;;IACJ,KAAK2kI,QAAQ,CAAC0C,KAAd;MACI,OAAOttJ,IAAI,CAACkmB,QAAL,EAAP;;IACJ,KAAK0kI,QAAQ,CAACvkI,IAAd;MACI,OAAOrmB,IAAI,CAACmmB,OAAL,EAAP;;IACJ,KAAKykI,QAAQ,CAACqC,KAAd;MACI,OAAOjtJ,IAAI,CAACutJ,QAAL,EAAP;;IACJ,KAAK3C,QAAQ,CAAC4C,OAAd;MACI,OAAOxtJ,IAAI,CAACytJ,UAAL,EAAP;;IACJ,KAAK7C,QAAQ,CAAC8C,OAAd;MACI,OAAO1tJ,IAAI,CAAC2tJ,UAAL,EAAP;;IACJ,KAAK/C,QAAQ,CAACsC,iBAAd;MACI,OAAOltJ,IAAI,CAAC4tJ,eAAL,EAAP;;IACJ,KAAKhD,QAAQ,CAACiD,GAAd;MACI,OAAO7tJ,IAAI,CAACqnB,MAAL,EAAP;;IACJ;MACI,MAAM,IAAImB,KAAJ,CAAW,2BAA0B0iI,IAAK,IAA1C,CAAN;EAlBR;AAoBH;AACD;AACA;AACA;;;AACA,SAAS4C,aAAT,CAAuBxuI,IAAvB,EAA6B2X,KAA7B,EAAoC82H,IAAI,GAAG/0J,SAAS,CAACg1J,MAArD,EAA6DC,QAAQ,GAAG,KAAxE,EAA+E;EAC3E,OAAO,UAAUjuJ,IAAV,EAAgBorB,MAAhB,EAAwB;IAC3B,OAAO8iI,kBAAkB,CAACluJ,IAAD,EAAOorB,MAAP,EAAe9L,IAAf,EAAqB2X,KAArB,EAA4B82H,IAA5B,EAAkCE,QAAlC,CAAzB;EACH,CAFD;AAGH;AACD;AACA;AACA;;;AACA,SAASC,kBAAT,CAA4BluJ,IAA5B,EAAkCorB,MAAlC,EAA0C9L,IAA1C,EAAgD2X,KAAhD,EAAuD82H,IAAvD,EAA6DE,QAA7D,EAAuE;EACnE,QAAQ3uI,IAAR;IACI,KAAKurI,eAAe,CAACsD,MAArB;MACI,OAAOj1J,mBAAmB,CAACkyB,MAAD,EAAS2iI,IAAT,EAAe92H,KAAf,CAAnB,CAAyCj3B,IAAI,CAACkmB,QAAL,EAAzC,CAAP;;IACJ,KAAK2kI,eAAe,CAACuD,IAArB;MACI,OAAOn1J,iBAAiB,CAACmyB,MAAD,EAAS2iI,IAAT,EAAe92H,KAAf,CAAjB,CAAuCj3B,IAAI,CAACqnB,MAAL,EAAvC,CAAP;;IACJ,KAAKwjI,eAAe,CAACwD,UAArB;MACI,MAAMC,YAAY,GAAGtuJ,IAAI,CAACutJ,QAAL,EAArB;MACA,MAAMgB,cAAc,GAAGvuJ,IAAI,CAACytJ,UAAL,EAAvB;;MACA,IAAIQ,QAAJ,EAAc;QACV,MAAM3E,KAAK,GAAGD,4BAA4B,CAACj+H,MAAD,CAA1C;QACA,MAAMu+H,UAAU,GAAGF,wBAAwB,CAACr+H,MAAD,EAAS2iI,IAAT,EAAe92H,KAAf,CAA3C;QACA,MAAM7xB,KAAK,GAAGkkJ,KAAK,CAACvgI,SAAN,CAAgBwgI,IAAI,IAAI;UAClC,IAAIpgI,KAAK,CAAC6Q,OAAN,CAAcuvH,IAAd,CAAJ,EAAyB;YACrB;YACA,MAAM,CAAC9jI,IAAD,EAAOmjD,EAAP,IAAa2gF,IAAnB;YACA,MAAMiF,SAAS,GAAGF,YAAY,IAAI7oI,IAAI,CAACskI,KAArB,IAA8BwE,cAAc,IAAI9oI,IAAI,CAACukI,OAAvE;YACA,MAAMyE,QAAQ,GAAIH,YAAY,GAAG1lF,EAAE,CAACmhF,KAAlB,IACbuE,YAAY,KAAK1lF,EAAE,CAACmhF,KAApB,IAA6BwE,cAAc,GAAG3lF,EAAE,CAACohF,OADtD,CAJqB,CAMrB;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;YACA;;YACA,IAAIvkI,IAAI,CAACskI,KAAL,GAAanhF,EAAE,CAACmhF,KAApB,EAA2B;cACvB,IAAIyE,SAAS,IAAIC,QAAjB,EAA2B;gBACvB,OAAO,IAAP;cACH;YACJ,CAJD,MAKK,IAAID,SAAS,IAAIC,QAAjB,EAA2B;cAC5B,OAAO,IAAP;YACH;UACJ,CAxBD,MAyBK;YAAE;YACH,IAAIlF,IAAI,CAACQ,KAAL,KAAeuE,YAAf,IAA+B/E,IAAI,CAACS,OAAL,KAAiBuE,cAApD,EAAoE;cAChE,OAAO,IAAP;YACH;UACJ;;UACD,OAAO,KAAP;QACH,CAhCa,CAAd;;QAiCA,IAAInpJ,KAAK,KAAK,CAAC,CAAf,EAAkB;UACd,OAAOukJ,UAAU,CAACvkJ,KAAD,CAAjB;QACH;MACJ,CA1CL,CA2CI;;;MACA,OAAOmhJ,mBAAmB,CAACn7H,MAAD,EAAS2iI,IAAT,EAAe92H,KAAf,CAAnB,CAAyCq3H,YAAY,GAAG,EAAf,GAAoB,CAApB,GAAwB,CAAjE,CAAP;;IACJ,KAAKzD,eAAe,CAACvD,IAArB;MACI,OAAOF,iBAAiB,CAACh8H,MAAD,EAAS6L,KAAT,CAAjB,CAAiCj3B,IAAI,CAACimB,WAAL,MAAsB,CAAtB,GAA0B,CAA1B,GAA8B,CAA/D,CAAP;;IACJ;MACI;MACA;MACA;MACA;MACA,MAAMyoI,UAAU,GAAGpvI,IAAnB;MACA,MAAM,IAAIkJ,KAAJ,CAAW,+BAA8BkmI,UAAW,EAApD,CAAN;EA1DR;AA4DH;AACD;AACA;AACA;AACA;AACA;;;AACA,SAASC,cAAT,CAAwB13H,KAAxB,EAA+B;EAC3B,OAAO,UAAUj3B,IAAV,EAAgBorB,MAAhB,EAAwBoM,MAAxB,EAAgC;IACnC,MAAM9C,IAAI,GAAG,CAAC,CAAD,GAAK8C,MAAlB;IACA,MAAMg1H,SAAS,GAAGtE,qBAAqB,CAAC98H,MAAD,EAAS+6H,YAAY,CAACiH,SAAtB,CAAvC;IACA,MAAMrD,KAAK,GAAGr1H,IAAI,GAAG,CAAP,GAAWjjB,IAAI,CAACM,KAAL,CAAW2iB,IAAI,GAAG,EAAlB,CAAX,GAAmCjjB,IAAI,CAACmwB,IAAL,CAAUlN,IAAI,GAAG,EAAjB,CAAjD;;IACA,QAAQuC,KAAR;MACI,KAAK0zH,SAAS,CAAC3+H,KAAf;QACI,OAAO,CAAE0I,IAAI,IAAI,CAAT,GAAc,GAAd,GAAoB,EAArB,IAA2BziB,SAAS,CAAC83I,KAAD,EAAQ,CAAR,EAAWyC,SAAX,CAApC,GACHv6I,SAAS,CAACR,IAAI,CAAC2yB,GAAL,CAAS1P,IAAI,GAAG,EAAhB,CAAD,EAAsB,CAAtB,EAAyB83H,SAAzB,CADb;;MAEJ,KAAK7B,SAAS,CAACiE,QAAf;QACI,OAAO,SAAUl6H,IAAI,IAAI,CAAT,GAAc,GAAd,GAAoB,EAA7B,IAAmCziB,SAAS,CAAC83I,KAAD,EAAQ,CAAR,EAAWyC,SAAX,CAAnD;;MACJ,KAAK7B,SAAS,CAACiB,IAAf;QACI,OAAO,SAAUl3H,IAAI,IAAI,CAAT,GAAc,GAAd,GAAoB,EAA7B,IAAmCziB,SAAS,CAAC83I,KAAD,EAAQ,CAAR,EAAWyC,SAAX,CAA5C,GAAoE,GAApE,GACHv6I,SAAS,CAACR,IAAI,CAAC2yB,GAAL,CAAS1P,IAAI,GAAG,EAAhB,CAAD,EAAsB,CAAtB,EAAyB83H,SAAzB,CADb;;MAEJ,KAAK7B,SAAS,CAACkE,QAAf;QACI,IAAIr3H,MAAM,KAAK,CAAf,EAAkB;UACd,OAAO,GAAP;QACH,CAFD,MAGK;UACD,OAAO,CAAE9C,IAAI,IAAI,CAAT,GAAc,GAAd,GAAoB,EAArB,IAA2BziB,SAAS,CAAC83I,KAAD,EAAQ,CAAR,EAAWyC,SAAX,CAApC,GAA4D,GAA5D,GACHv6I,SAAS,CAACR,IAAI,CAAC2yB,GAAL,CAAS1P,IAAI,GAAG,EAAhB,CAAD,EAAsB,CAAtB,EAAyB83H,SAAzB,CADb;QAEH;;MACL;QACI,MAAM,IAAIhkI,KAAJ,CAAW,uBAAsByO,KAAM,GAAvC,CAAN;IAlBR;EAoBH,CAxBD;AAyBH;;AACD,MAAM63H,OAAO,GAAG,CAAhB;AACA,MAAMC,QAAQ,GAAG,CAAjB;;AACA,SAASC,sBAAT,CAAgChtJ,IAAhC,EAAsC;EAClC,MAAMitJ,cAAc,GAAGxD,UAAU,CAACzpJ,IAAD,EAAO8sJ,OAAP,EAAgB,CAAhB,CAAV,CAA6BznI,MAA7B,EAAvB;EACA,OAAOokI,UAAU,CAACzpJ,IAAD,EAAO,CAAP,EAAU,KAAMitJ,cAAc,IAAIF,QAAnB,GAA+BA,QAA/B,GAA0CA,QAAQ,GAAG,CAA1D,IAA+DE,cAAzE,CAAjB;AACH;;AACD,SAASC,mBAAT,CAA6BC,QAA7B,EAAuC;EACnC,OAAO1D,UAAU,CAAC0D,QAAQ,CAAClpI,WAAT,EAAD,EAAyBkpI,QAAQ,CAACjpI,QAAT,EAAzB,EAA8CipI,QAAQ,CAAChpI,OAAT,MAAsB4oI,QAAQ,GAAGI,QAAQ,CAAC9nI,MAAT,EAAjC,CAA9C,CAAjB;AACH;;AACD,SAAS+nI,UAAT,CAAoB55G,IAApB,EAA0B65G,UAAU,GAAG,KAAvC,EAA8C;EAC1C,OAAO,UAAUrvJ,IAAV,EAAgBorB,MAAhB,EAAwB;IAC3B,IAAIjb,MAAJ;;IACA,IAAIk/I,UAAJ,EAAgB;MACZ,MAAMC,yBAAyB,GAAG,IAAIjpI,IAAJ,CAASrmB,IAAI,CAACimB,WAAL,EAAT,EAA6BjmB,IAAI,CAACkmB,QAAL,EAA7B,EAA8C,CAA9C,EAAiDmB,MAAjD,KAA4D,CAA9F;MACA,MAAMljB,KAAK,GAAGnE,IAAI,CAACmmB,OAAL,EAAd;MACAhW,MAAM,GAAG,IAAIsB,IAAI,CAACM,KAAL,CAAW,CAAC5N,KAAK,GAAGmrJ,yBAAT,IAAsC,CAAjD,CAAb;IACH,CAJD,MAKK;MACD,MAAMC,SAAS,GAAGL,mBAAmB,CAAClvJ,IAAD,CAArC,CADC,CAED;MACA;;MACA,MAAMwvJ,UAAU,GAAGR,sBAAsB,CAACO,SAAS,CAACtpI,WAAV,EAAD,CAAzC;MACA,MAAMke,IAAI,GAAGorH,SAAS,CAACjpI,OAAV,KAAsBkpI,UAAU,CAAClpI,OAAX,EAAnC;MACAnW,MAAM,GAAG,IAAIsB,IAAI,CAACmW,KAAL,CAAWuc,IAAI,GAAG,OAAlB,CAAb,CANC,CAMwC;IAC5C;;IACD,OAAOlyB,SAAS,CAAC9B,MAAD,EAASqlC,IAAT,EAAe0yG,qBAAqB,CAAC98H,MAAD,EAAS+6H,YAAY,CAACiH,SAAtB,CAApC,CAAhB;EACH,CAhBD;AAiBH;AACD;AACA;AACA;;;AACA,SAASqC,uBAAT,CAAiCj6G,IAAjC,EAAuC/Z,IAAI,GAAG,KAA9C,EAAqD;EACjD,OAAO,UAAUz7B,IAAV,EAAgBorB,MAAhB,EAAwB;IAC3B,MAAMmkI,SAAS,GAAGL,mBAAmB,CAAClvJ,IAAD,CAArC;IACA,MAAM0vJ,iBAAiB,GAAGH,SAAS,CAACtpI,WAAV,EAA1B;IACA,OAAOhU,SAAS,CAACy9I,iBAAD,EAAoBl6G,IAApB,EAA0B0yG,qBAAqB,CAAC98H,MAAD,EAAS+6H,YAAY,CAACiH,SAAtB,CAA/C,EAAiF3xH,IAAjF,CAAhB;EACH,CAJD;AAKH;;AACD,MAAMk0H,YAAY,GAAG,EAArB,EACA;AACA;AACA;AACA;;AACA,SAASnE,gBAAT,CAA0B9vH,MAA1B,EAAkC;EAC9B,IAAIi0H,YAAY,CAACj0H,MAAD,CAAhB,EAA0B;IACtB,OAAOi0H,YAAY,CAACj0H,MAAD,CAAnB;EACH;;EACD,IAAInrB,SAAJ;;EACA,QAAQmrB,MAAR;IACI;IACA,KAAK,GAAL;IACA,KAAK,IAAL;IACA,KAAK,KAAL;MACInrB,SAAS,GAAGu9I,aAAa,CAACjD,eAAe,CAACvD,IAAjB,EAAuBnuJ,gBAAgB,CAACgzB,WAAxC,CAAzB;MACA;;IACJ,KAAK,MAAL;MACI5b,SAAS,GAAGu9I,aAAa,CAACjD,eAAe,CAACvD,IAAjB,EAAuBnuJ,gBAAgB,CAACkzB,IAAxC,CAAzB;MACA;;IACJ,KAAK,OAAL;MACI9b,SAAS,GAAGu9I,aAAa,CAACjD,eAAe,CAACvD,IAAjB,EAAuBnuJ,gBAAgB,CAACy2J,MAAxC,CAAzB;MACA;IACJ;;IACA,KAAK,GAAL;MACIr/I,SAAS,GAAGw8I,UAAU,CAACnC,QAAQ,CAACyC,QAAV,EAAoB,CAApB,EAAuB,CAAvB,EAA0B,KAA1B,EAAiC,IAAjC,CAAtB;MACA;IACJ;;IACA,KAAK,IAAL;MACI98I,SAAS,GAAGw8I,UAAU,CAACnC,QAAQ,CAACyC,QAAV,EAAoB,CAApB,EAAuB,CAAvB,EAA0B,IAA1B,EAAgC,IAAhC,CAAtB;MACA;IACJ;;IACA,KAAK,KAAL;MACI98I,SAAS,GAAGw8I,UAAU,CAACnC,QAAQ,CAACyC,QAAV,EAAoB,CAApB,EAAuB,CAAvB,EAA0B,KAA1B,EAAiC,IAAjC,CAAtB;MACA;IACJ;;IACA,KAAK,MAAL;MACI98I,SAAS,GAAGw8I,UAAU,CAACnC,QAAQ,CAACyC,QAAV,EAAoB,CAApB,EAAuB,CAAvB,EAA0B,KAA1B,EAAiC,IAAjC,CAAtB;MACA;IACJ;;IACA,KAAK,GAAL;MACI98I,SAAS,GAAGk/I,uBAAuB,CAAC,CAAD,CAAnC;MACA;IACJ;IACA;;IACA,KAAK,IAAL;MACIl/I,SAAS,GAAGk/I,uBAAuB,CAAC,CAAD,EAAI,IAAJ,CAAnC;MACA;IACJ;IACA;;IACA,KAAK,KAAL;MACIl/I,SAAS,GAAGk/I,uBAAuB,CAAC,CAAD,CAAnC;MACA;IACJ;;IACA,KAAK,MAAL;MACIl/I,SAAS,GAAGk/I,uBAAuB,CAAC,CAAD,CAAnC;MACA;IACJ;;IACA,KAAK,GAAL;IACA,KAAK,GAAL;MACIl/I,SAAS,GAAGw8I,UAAU,CAACnC,QAAQ,CAAC0C,KAAV,EAAiB,CAAjB,EAAoB,CAApB,CAAtB;MACA;;IACJ,KAAK,IAAL;IACA,KAAK,IAAL;MACI/8I,SAAS,GAAGw8I,UAAU,CAACnC,QAAQ,CAAC0C,KAAV,EAAiB,CAAjB,EAAoB,CAApB,CAAtB;MACA;IACJ;;IACA,KAAK,KAAL;MACI/8I,SAAS,GAAGu9I,aAAa,CAACjD,eAAe,CAACsD,MAAjB,EAAyBh1J,gBAAgB,CAACgzB,WAA1C,CAAzB;MACA;;IACJ,KAAK,MAAL;MACI5b,SAAS,GAAGu9I,aAAa,CAACjD,eAAe,CAACsD,MAAjB,EAAyBh1J,gBAAgB,CAACkzB,IAA1C,CAAzB;MACA;;IACJ,KAAK,OAAL;MACI9b,SAAS,GAAGu9I,aAAa,CAACjD,eAAe,CAACsD,MAAjB,EAAyBh1J,gBAAgB,CAACy2J,MAA1C,CAAzB;MACA;IACJ;;IACA,KAAK,KAAL;MACIr/I,SAAS,GACLu9I,aAAa,CAACjD,eAAe,CAACsD,MAAjB,EAAyBh1J,gBAAgB,CAACgzB,WAA1C,EAAuDnzB,SAAS,CAAC+yB,UAAjE,CADjB;MAEA;;IACJ,KAAK,MAAL;MACIxb,SAAS,GACLu9I,aAAa,CAACjD,eAAe,CAACsD,MAAjB,EAAyBh1J,gBAAgB,CAACkzB,IAA1C,EAAgDrzB,SAAS,CAAC+yB,UAA1D,CADjB;MAEA;;IACJ,KAAK,OAAL;MACIxb,SAAS,GACLu9I,aAAa,CAACjD,eAAe,CAACsD,MAAjB,EAAyBh1J,gBAAgB,CAACy2J,MAA1C,EAAkD52J,SAAS,CAAC+yB,UAA5D,CADjB;MAEA;IACJ;;IACA,KAAK,GAAL;MACIxb,SAAS,GAAG6+I,UAAU,CAAC,CAAD,CAAtB;MACA;;IACJ,KAAK,IAAL;MACI7+I,SAAS,GAAG6+I,UAAU,CAAC,CAAD,CAAtB;MACA;IACJ;;IACA,KAAK,GAAL;MACI7+I,SAAS,GAAG6+I,UAAU,CAAC,CAAD,EAAI,IAAJ,CAAtB;MACA;IACJ;;IACA,KAAK,GAAL;MACI7+I,SAAS,GAAGw8I,UAAU,CAACnC,QAAQ,CAACvkI,IAAV,EAAgB,CAAhB,CAAtB;MACA;;IACJ,KAAK,IAAL;MACI9V,SAAS,GAAGw8I,UAAU,CAACnC,QAAQ,CAACvkI,IAAV,EAAgB,CAAhB,CAAtB;MACA;IACJ;;IACA,KAAK,GAAL;IACA,KAAK,IAAL;MACI9V,SAAS,GAAGw8I,UAAU,CAACnC,QAAQ,CAACiD,GAAV,EAAe,CAAf,CAAtB;MACA;;IACJ,KAAK,KAAL;MACIt9I,SAAS,GACLu9I,aAAa,CAACjD,eAAe,CAACuD,IAAjB,EAAuBj1J,gBAAgB,CAACgzB,WAAxC,EAAqDnzB,SAAS,CAAC+yB,UAA/D,CADjB;MAEA;;IACJ,KAAK,MAAL;MACIxb,SAAS,GAAGu9I,aAAa,CAACjD,eAAe,CAACuD,IAAjB,EAAuBj1J,gBAAgB,CAACkzB,IAAxC,EAA8CrzB,SAAS,CAAC+yB,UAAxD,CAAzB;MACA;;IACJ,KAAK,OAAL;MACIxb,SAAS,GACLu9I,aAAa,CAACjD,eAAe,CAACuD,IAAjB,EAAuBj1J,gBAAgB,CAACy2J,MAAxC,EAAgD52J,SAAS,CAAC+yB,UAA1D,CADjB;MAEA;;IACJ,KAAK,QAAL;MACIxb,SAAS,GAAGu9I,aAAa,CAACjD,eAAe,CAACuD,IAAjB,EAAuBj1J,gBAAgB,CAAC6yB,KAAxC,EAA+ChzB,SAAS,CAAC+yB,UAAzD,CAAzB;MACA;IACJ;;IACA,KAAK,GAAL;IACA,KAAK,IAAL;IACA,KAAK,KAAL;MACIxb,SAAS,GAAGu9I,aAAa,CAACjD,eAAe,CAACuD,IAAjB,EAAuBj1J,gBAAgB,CAACgzB,WAAxC,CAAzB;MACA;;IACJ,KAAK,MAAL;MACI5b,SAAS,GAAGu9I,aAAa,CAACjD,eAAe,CAACuD,IAAjB,EAAuBj1J,gBAAgB,CAACkzB,IAAxC,CAAzB;MACA;;IACJ,KAAK,OAAL;MACI9b,SAAS,GAAGu9I,aAAa,CAACjD,eAAe,CAACuD,IAAjB,EAAuBj1J,gBAAgB,CAACy2J,MAAxC,CAAzB;MACA;;IACJ,KAAK,QAAL;MACIr/I,SAAS,GAAGu9I,aAAa,CAACjD,eAAe,CAACuD,IAAjB,EAAuBj1J,gBAAgB,CAAC6yB,KAAxC,CAAzB;MACA;IACJ;;IACA,KAAK,GAAL;IACA,KAAK,IAAL;IACA,KAAK,KAAL;MACIzb,SAAS,GAAGu9I,aAAa,CAACjD,eAAe,CAACwD,UAAjB,EAA6Bl1J,gBAAgB,CAACgzB,WAA9C,CAAzB;MACA;;IACJ,KAAK,MAAL;MACI5b,SAAS,GAAGu9I,aAAa,CAACjD,eAAe,CAACwD,UAAjB,EAA6Bl1J,gBAAgB,CAACkzB,IAA9C,CAAzB;MACA;;IACJ,KAAK,OAAL;MACI9b,SAAS,GAAGu9I,aAAa,CAACjD,eAAe,CAACwD,UAAjB,EAA6Bl1J,gBAAgB,CAACy2J,MAA9C,CAAzB;MACA;IACJ;;IACA,KAAK,GAAL;IACA,KAAK,IAAL;IACA,KAAK,KAAL;MACIr/I,SAAS,GAAGu9I,aAAa,CAACjD,eAAe,CAACwD,UAAjB,EAA6Bl1J,gBAAgB,CAACgzB,WAA9C,EAA2DnzB,SAAS,CAAC+yB,UAArE,EAAiF,IAAjF,CAAzB;MACA;;IACJ,KAAK,MAAL;MACIxb,SAAS,GAAGu9I,aAAa,CAACjD,eAAe,CAACwD,UAAjB,EAA6Bl1J,gBAAgB,CAACkzB,IAA9C,EAAoDrzB,SAAS,CAAC+yB,UAA9D,EAA0E,IAA1E,CAAzB;MACA;;IACJ,KAAK,OAAL;MACIxb,SAAS,GAAGu9I,aAAa,CAACjD,eAAe,CAACwD,UAAjB,EAA6Bl1J,gBAAgB,CAACy2J,MAA9C,EAAsD52J,SAAS,CAAC+yB,UAAhE,EAA4E,IAA5E,CAAzB;MACA;IACJ;;IACA,KAAK,GAAL;IACA,KAAK,IAAL;IACA,KAAK,KAAL;MACIxb,SAAS,GAAGu9I,aAAa,CAACjD,eAAe,CAACwD,UAAjB,EAA6Bl1J,gBAAgB,CAACgzB,WAA9C,EAA2DnzB,SAAS,CAACg1J,MAArE,EAA6E,IAA7E,CAAzB;MACA;;IACJ,KAAK,MAAL;MACIz9I,SAAS,GACLu9I,aAAa,CAACjD,eAAe,CAACwD,UAAjB,EAA6Bl1J,gBAAgB,CAACkzB,IAA9C,EAAoDrzB,SAAS,CAACg1J,MAA9D,EAAsE,IAAtE,CADjB;MAEA;;IACJ,KAAK,OAAL;MACIz9I,SAAS,GAAGu9I,aAAa,CAACjD,eAAe,CAACwD,UAAjB,EAA6Bl1J,gBAAgB,CAACy2J,MAA9C,EAAsD52J,SAAS,CAACg1J,MAAhE,EAAwE,IAAxE,CAAzB;MACA;IACJ;;IACA,KAAK,GAAL;MACIz9I,SAAS,GAAGw8I,UAAU,CAACnC,QAAQ,CAACqC,KAAV,EAAiB,CAAjB,EAAoB,CAAC,EAArB,CAAtB;MACA;;IACJ,KAAK,IAAL;MACI18I,SAAS,GAAGw8I,UAAU,CAACnC,QAAQ,CAACqC,KAAV,EAAiB,CAAjB,EAAoB,CAAC,EAArB,CAAtB;MACA;IACJ;;IACA,KAAK,GAAL;MACI18I,SAAS,GAAGw8I,UAAU,CAACnC,QAAQ,CAACqC,KAAV,EAAiB,CAAjB,CAAtB;MACA;IACJ;;IACA,KAAK,IAAL;MACI18I,SAAS,GAAGw8I,UAAU,CAACnC,QAAQ,CAACqC,KAAV,EAAiB,CAAjB,CAAtB;MACA;IACJ;;IACA,KAAK,GAAL;MACI18I,SAAS,GAAGw8I,UAAU,CAACnC,QAAQ,CAAC4C,OAAV,EAAmB,CAAnB,CAAtB;MACA;;IACJ,KAAK,IAAL;MACIj9I,SAAS,GAAGw8I,UAAU,CAACnC,QAAQ,CAAC4C,OAAV,EAAmB,CAAnB,CAAtB;MACA;IACJ;;IACA,KAAK,GAAL;MACIj9I,SAAS,GAAGw8I,UAAU,CAACnC,QAAQ,CAAC8C,OAAV,EAAmB,CAAnB,CAAtB;MACA;;IACJ,KAAK,IAAL;MACIn9I,SAAS,GAAGw8I,UAAU,CAACnC,QAAQ,CAAC8C,OAAV,EAAmB,CAAnB,CAAtB;MACA;IACJ;;IACA,KAAK,GAAL;MACIn9I,SAAS,GAAGw8I,UAAU,CAACnC,QAAQ,CAACsC,iBAAV,EAA6B,CAA7B,CAAtB;MACA;;IACJ,KAAK,IAAL;MACI38I,SAAS,GAAGw8I,UAAU,CAACnC,QAAQ,CAACsC,iBAAV,EAA6B,CAA7B,CAAtB;MACA;;IACJ,KAAK,KAAL;MACI38I,SAAS,GAAGw8I,UAAU,CAACnC,QAAQ,CAACsC,iBAAV,EAA6B,CAA7B,CAAtB;MACA;IACJ;;IACA,KAAK,GAAL;IACA,KAAK,IAAL;IACA,KAAK,KAAL;MACI38I,SAAS,GAAGo+I,cAAc,CAAChE,SAAS,CAAC3+H,KAAX,CAA1B;MACA;IACJ;;IACA,KAAK,OAAL;MACIzb,SAAS,GAAGo+I,cAAc,CAAChE,SAAS,CAACkE,QAAX,CAA1B;MACA;IACJ;;IACA,KAAK,GAAL;IACA,KAAK,IAAL;IACA,KAAK,KAAL,CA5NJ,CA6NI;;IACA,KAAK,GAAL;IACA,KAAK,IAAL;IACA,KAAK,KAAL;MACIt+I,SAAS,GAAGo+I,cAAc,CAAChE,SAAS,CAACiE,QAAX,CAA1B;MACA;IACJ;;IACA,KAAK,MAAL;IACA,KAAK,MAAL,CArOJ,CAsOI;;IACA,KAAK,MAAL;MACIr+I,SAAS,GAAGo+I,cAAc,CAAChE,SAAS,CAACiB,IAAX,CAA1B;MACA;;IACJ;MACI,OAAO,IAAP;EA3OR;;EA6OA+D,YAAY,CAACj0H,MAAD,CAAZ,GAAuBnrB,SAAvB;EACA,OAAOA,SAAP;AACH;;AACD,SAAS86I,gBAAT,CAA0BP,QAA1B,EAAoC+E,QAApC,EAA8C;EAC1C;EACA;EACA/E,QAAQ,GAAGA,QAAQ,CAACz4I,OAAT,CAAiB,IAAjB,EAAuB,EAAvB,CAAX;EACA,MAAMy9I,uBAAuB,GAAGzpI,IAAI,CAACkV,KAAL,CAAW,2BAA2BuvH,QAAtC,IAAkD,KAAlF;EACA,OAAOl5I,KAAK,CAACk+I,uBAAD,CAAL,GAAiCD,QAAjC,GAA4CC,uBAAnD;AACH;;AACD,SAASC,cAAT,CAAwB/vJ,IAAxB,EAA8BgqJ,OAA9B,EAAuC;EACnChqJ,IAAI,GAAG,IAAIqmB,IAAJ,CAASrmB,IAAI,CAACsmB,OAAL,EAAT,CAAP;EACAtmB,IAAI,CAACgwJ,UAAL,CAAgBhwJ,IAAI,CAACytJ,UAAL,KAAoBzD,OAApC;EACA,OAAOhqJ,IAAP;AACH;;AACD,SAASsrJ,sBAAT,CAAgCtrJ,IAAhC,EAAsC8qJ,QAAtC,EAAgDhlE,OAAhD,EAAyD;EACrD,MAAMmqE,YAAY,GAAGnqE,OAAO,GAAG,CAAC,CAAJ,GAAQ,CAApC;EACA,MAAMqlE,kBAAkB,GAAGnrJ,IAAI,CAACorJ,iBAAL,EAA3B;EACA,MAAM8E,cAAc,GAAG7E,gBAAgB,CAACP,QAAD,EAAWK,kBAAX,CAAvC;EACA,OAAO4E,cAAc,CAAC/vJ,IAAD,EAAOiwJ,YAAY,IAAIC,cAAc,GAAG/E,kBAArB,CAAnB,CAArB;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASJ,MAAT,CAAgB18I,KAAhB,EAAuB;EACnB,IAAIizF,MAAM,CAACjzF,KAAD,CAAV,EAAmB;IACf,OAAOA,KAAP;EACH;;EACD,IAAI,OAAOA,KAAP,KAAiB,QAAjB,IAA6B,CAACuD,KAAK,CAACvD,KAAD,CAAvC,EAAgD;IAC5C,OAAO,IAAIgY,IAAJ,CAAShY,KAAT,CAAP;EACH;;EACD,IAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;IAC3BA,KAAK,GAAGA,KAAK,CAACotB,IAAN,EAAR;;IACA,IAAI,kCAAkCjH,IAAlC,CAAuCnmB,KAAvC,CAAJ,EAAmD;MAC/C;AACZ;AACA;AACA;AACA;AACA;AACA;MACY,MAAM,CAACq2B,CAAD,EAAIC,CAAC,GAAG,CAAR,EAAWoC,CAAC,GAAG,CAAf,IAAoB14B,KAAK,CAACoE,KAAN,CAAY,GAAZ,EAAiBxY,GAAjB,CAAsB4gC,GAAD,IAAS,CAACA,GAA/B,CAA1B;MACA,OAAO4wH,UAAU,CAAC/mH,CAAD,EAAIC,CAAC,GAAG,CAAR,EAAWoC,CAAX,CAAjB;IACH;;IACD,MAAMopH,QAAQ,GAAGv3H,UAAU,CAACvqB,KAAD,CAA3B,CAb2B,CAc3B;;IACA,IAAI,CAACuD,KAAK,CAACvD,KAAK,GAAG8hJ,QAAT,CAAV,EAA8B;MAC1B,OAAO,IAAI9pI,IAAJ,CAAS8pI,QAAT,CAAP;IACH;;IACD,IAAIpmF,KAAJ;;IACA,IAAIA,KAAK,GAAG17D,KAAK,CAAC07D,KAAN,CAAYygF,kBAAZ,CAAZ,EAA6C;MACzC,OAAO4F,eAAe,CAACrmF,KAAD,CAAtB;IACH;EACJ;;EACD,MAAM/pE,IAAI,GAAG,IAAIqmB,IAAJ,CAAShY,KAAT,CAAb;;EACA,IAAI,CAACizF,MAAM,CAACthG,IAAD,CAAX,EAAmB;IACf,MAAM,IAAIwoB,KAAJ,CAAW,sBAAqBna,KAAM,eAAtC,CAAN;EACH;;EACD,OAAOrO,IAAP;AACH;AACD;AACA;AACA;AACA;;;AACA,SAASowJ,eAAT,CAAyBrmF,KAAzB,EAAgC;EAC5B,MAAM/pE,IAAI,GAAG,IAAIqmB,IAAJ,CAAS,CAAT,CAAb;EACA,IAAIgqI,MAAM,GAAG,CAAb;EACA,IAAIC,KAAK,GAAG,CAAZ,CAH4B,CAI5B;;EACA,MAAMC,UAAU,GAAGxmF,KAAK,CAAC,CAAD,CAAL,GAAW/pE,IAAI,CAAC2rC,cAAhB,GAAiC3rC,IAAI,CAACumB,WAAzD;EACA,MAAMiqI,UAAU,GAAGzmF,KAAK,CAAC,CAAD,CAAL,GAAW/pE,IAAI,CAACywJ,WAAhB,GAA8BzwJ,IAAI,CAACmlC,QAAtD,CAN4B,CAO5B;;EACA,IAAI4kC,KAAK,CAAC,CAAD,CAAT,EAAc;IACVsmF,MAAM,GAAGz4D,MAAM,CAAC7tB,KAAK,CAAC,CAAD,CAAL,GAAWA,KAAK,CAAC,EAAD,CAAjB,CAAf;IACAumF,KAAK,GAAG14D,MAAM,CAAC7tB,KAAK,CAAC,CAAD,CAAL,GAAWA,KAAK,CAAC,EAAD,CAAjB,CAAd;EACH;;EACDwmF,UAAU,CAAC9mF,IAAX,CAAgBzpE,IAAhB,EAAsB43F,MAAM,CAAC7tB,KAAK,CAAC,CAAD,CAAN,CAA5B,EAAwC6tB,MAAM,CAAC7tB,KAAK,CAAC,CAAD,CAAN,CAAN,GAAmB,CAA3D,EAA8D6tB,MAAM,CAAC7tB,KAAK,CAAC,CAAD,CAAN,CAApE;EACA,MAAM+/E,CAAC,GAAGlyD,MAAM,CAAC7tB,KAAK,CAAC,CAAD,CAAL,IAAY,CAAb,CAAN,GAAwBsmF,MAAlC;EACA,MAAM1rH,CAAC,GAAGizD,MAAM,CAAC7tB,KAAK,CAAC,CAAD,CAAL,IAAY,CAAb,CAAN,GAAwBumF,KAAlC;EACA,MAAMr9I,CAAC,GAAG2kF,MAAM,CAAC7tB,KAAK,CAAC,CAAD,CAAL,IAAY,CAAb,CAAhB,CAf4B,CAgB5B;EACA;EACA;;EACA,MAAM2mF,EAAE,GAAGj/I,IAAI,CAACM,KAAL,CAAW6mB,UAAU,CAAC,QAAQmxC,KAAK,CAAC,CAAD,CAAL,IAAY,CAApB,CAAD,CAAV,GAAqC,IAAhD,CAAX;EACAymF,UAAU,CAAC/mF,IAAX,CAAgBzpE,IAAhB,EAAsB8pJ,CAAtB,EAAyBnlH,CAAzB,EAA4B1xB,CAA5B,EAA+By9I,EAA/B;EACA,OAAO1wJ,IAAP;AACH;;AACD,SAASshG,MAAT,CAAgBjzF,KAAhB,EAAuB;EACnB,OAAOA,KAAK,YAAYgY,IAAjB,IAAyB,CAACzU,KAAK,CAACvD,KAAK,CAACsiJ,OAAN,EAAD,CAAtC;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,oBAAoB,GAAG,6BAA7B;AACA,MAAMC,UAAU,GAAG,EAAnB;AACA,MAAMC,WAAW,GAAG,GAApB;AACA,MAAMC,SAAS,GAAG,GAAlB;AACA,MAAMC,WAAW,GAAG,GAApB;AACA,MAAMC,SAAS,GAAG,GAAlB;AACA,MAAMC,UAAU,GAAG,GAAnB;AACA,MAAMC,aAAa,GAAG,GAAtB;AACA,MAAMC,YAAY,GAAG,GAArB;AACA;AACA;AACA;;AACA,SAASC,0BAAT,CAAoChjJ,KAApC,EAA2Cw8E,OAA3C,EAAoDz/D,MAApD,EAA4DkmI,WAA5D,EAAyEC,aAAzE,EAAwFC,UAAxF,EAAoGC,SAAS,GAAG,KAAhH,EAAuH;EACnH,IAAIC,aAAa,GAAG,EAApB;EACA,IAAIC,MAAM,GAAG,KAAb;;EACA,IAAI,CAAC7/I,QAAQ,CAACzD,KAAD,CAAb,EAAsB;IAClBqjJ,aAAa,GAAGxJ,qBAAqB,CAAC98H,MAAD,EAAS+6H,YAAY,CAACyL,QAAtB,CAArC;EACH,CAFD,MAGK;IACD,IAAIC,YAAY,GAAGC,WAAW,CAACzjJ,KAAD,CAA9B;;IACA,IAAIojJ,SAAJ,EAAe;MACXI,YAAY,GAAGE,SAAS,CAACF,YAAD,CAAxB;IACH;;IACD,IAAIG,MAAM,GAAGnnE,OAAO,CAACmnE,MAArB;IACA,IAAIC,WAAW,GAAGpnE,OAAO,CAACqnE,OAA1B;IACA,IAAIC,WAAW,GAAGtnE,OAAO,CAACunE,OAA1B;;IACA,IAAIZ,UAAJ,EAAgB;MACZ,MAAM1mG,KAAK,GAAG0mG,UAAU,CAACznF,KAAX,CAAiB6mF,oBAAjB,CAAd;;MACA,IAAI9lG,KAAK,KAAK,IAAd,EAAoB;QAChB,MAAM,IAAItiC,KAAJ,CAAW,GAAEgpI,UAAW,4BAAxB,CAAN;MACH;;MACD,MAAMa,UAAU,GAAGvnG,KAAK,CAAC,CAAD,CAAxB;MACA,MAAMwnG,eAAe,GAAGxnG,KAAK,CAAC,CAAD,CAA7B;MACA,MAAMynG,eAAe,GAAGznG,KAAK,CAAC,CAAD,CAA7B;;MACA,IAAIunG,UAAU,IAAI,IAAlB,EAAwB;QACpBL,MAAM,GAAGQ,iBAAiB,CAACH,UAAD,CAA1B;MACH;;MACD,IAAIC,eAAe,IAAI,IAAvB,EAA6B;QACzBL,WAAW,GAAGO,iBAAiB,CAACF,eAAD,CAA/B;MACH;;MACD,IAAIC,eAAe,IAAI,IAAvB,EAA6B;QACzBJ,WAAW,GAAGK,iBAAiB,CAACD,eAAD,CAA/B;MACH,CAFD,MAGK,IAAID,eAAe,IAAI,IAAnB,IAA2BL,WAAW,GAAGE,WAA7C,EAA0D;QAC3DA,WAAW,GAAGF,WAAd;MACH;IACJ;;IACDQ,WAAW,CAACZ,YAAD,EAAeI,WAAf,EAA4BE,WAA5B,CAAX;IACA,IAAI5H,MAAM,GAAGsH,YAAY,CAACtH,MAA1B;IACA,IAAImI,UAAU,GAAGb,YAAY,CAACa,UAA9B;IACA,MAAMC,QAAQ,GAAGd,YAAY,CAACc,QAA9B;IACA,IAAIC,QAAQ,GAAG,EAAf;IACAjB,MAAM,GAAGpH,MAAM,CAACsI,KAAP,CAAa9rH,CAAC,IAAI,CAACA,CAAnB,CAAT,CAlCC,CAmCD;;IACA,OAAO2rH,UAAU,GAAGV,MAApB,EAA4BU,UAAU,EAAtC,EAA0C;MACtCnI,MAAM,CAAChgH,OAAP,CAAe,CAAf;IACH,CAtCA,CAuCD;;;IACA,OAAOmoH,UAAU,GAAG,CAApB,EAAuBA,UAAU,EAAjC,EAAqC;MACjCnI,MAAM,CAAChgH,OAAP,CAAe,CAAf;IACH,CA1CA,CA2CD;;;IACA,IAAImoH,UAAU,GAAG,CAAjB,EAAoB;MAChBE,QAAQ,GAAGrI,MAAM,CAAC3gI,MAAP,CAAc8oI,UAAd,EAA0BnI,MAAM,CAACllJ,MAAjC,CAAX;IACH,CAFD,MAGK;MACDutJ,QAAQ,GAAGrI,MAAX;MACAA,MAAM,GAAG,CAAC,CAAD,CAAT;IACH,CAlDA,CAmDD;;;IACA,MAAMn8E,MAAM,GAAG,EAAf;;IACA,IAAIm8E,MAAM,CAACllJ,MAAP,IAAiBwlF,OAAO,CAACioE,MAA7B,EAAqC;MACjC1kF,MAAM,CAAC7jC,OAAP,CAAeggH,MAAM,CAAC3gI,MAAP,CAAc,CAACihE,OAAO,CAACioE,MAAvB,EAA+BvI,MAAM,CAACllJ,MAAtC,EAA8CkwB,IAA9C,CAAmD,EAAnD,CAAf;IACH;;IACD,OAAOg1H,MAAM,CAACllJ,MAAP,GAAgBwlF,OAAO,CAACkoE,KAA/B,EAAsC;MAClC3kF,MAAM,CAAC7jC,OAAP,CAAeggH,MAAM,CAAC3gI,MAAP,CAAc,CAACihE,OAAO,CAACkoE,KAAvB,EAA8BxI,MAAM,CAACllJ,MAArC,EAA6CkwB,IAA7C,CAAkD,EAAlD,CAAf;IACH;;IACD,IAAIg1H,MAAM,CAACllJ,MAAX,EAAmB;MACf+oE,MAAM,CAAC7jC,OAAP,CAAeggH,MAAM,CAACh1H,IAAP,CAAY,EAAZ,CAAf;IACH;;IACDm8H,aAAa,GAAGtjF,MAAM,CAAC74C,IAAP,CAAY2yH,qBAAqB,CAAC98H,MAAD,EAASkmI,WAAT,CAAjC,CAAhB,CA9DC,CA+DD;;IACA,IAAIsB,QAAQ,CAACvtJ,MAAb,EAAqB;MACjBqsJ,aAAa,IAAIxJ,qBAAqB,CAAC98H,MAAD,EAASmmI,aAAT,CAArB,GAA+CqB,QAAQ,CAACr9H,IAAT,CAAc,EAAd,CAAhE;IACH;;IACD,IAAIo9H,QAAJ,EAAc;MACVjB,aAAa,IAAIxJ,qBAAqB,CAAC98H,MAAD,EAAS+6H,YAAY,CAAC6M,WAAtB,CAArB,GAA0D,GAA1D,GAAgEL,QAAjF;IACH;EACJ;;EACD,IAAItkJ,KAAK,GAAG,CAAR,IAAa,CAACsjJ,MAAlB,EAA0B;IACtBD,aAAa,GAAG7mE,OAAO,CAACooE,MAAR,GAAiBvB,aAAjB,GAAiC7mE,OAAO,CAACqoE,MAAzD;EACH,CAFD,MAGK;IACDxB,aAAa,GAAG7mE,OAAO,CAACsoE,MAAR,GAAiBzB,aAAjB,GAAiC7mE,OAAO,CAACuoE,MAAzD;EACH;;EACD,OAAO1B,aAAP;AACH;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,SAAS2B,cAAT,CAAwBhlJ,KAAxB,EAA+B+c,MAA/B,EAAuC++H,QAAvC,EAAiDmJ,YAAjD,EAA+D9B,UAA/D,EAA2E;EACvE,MAAM91H,MAAM,GAAG+sH,qBAAqB,CAACr9H,MAAD,EAAS46H,iBAAiB,CAACuN,QAA3B,CAApC;EACA,MAAM1oE,OAAO,GAAG2oE,iBAAiB,CAAC93H,MAAD,EAASwsH,qBAAqB,CAAC98H,MAAD,EAAS+6H,YAAY,CAACiH,SAAtB,CAA9B,CAAjC;EACAviE,OAAO,CAACqnE,OAAR,GAAkB5H,yBAAyB,CAACgJ,YAAD,CAA3C;EACAzoE,OAAO,CAACunE,OAAR,GAAkBvnE,OAAO,CAACqnE,OAA1B;EACA,MAAM/xE,GAAG,GAAGkxE,0BAA0B,CAAChjJ,KAAD,EAAQw8E,OAAR,EAAiBz/D,MAAjB,EAAyB+6H,YAAY,CAACoC,aAAtC,EAAqDpC,YAAY,CAACkC,eAAlE,EAAmFmJ,UAAnF,CAAtC;EACA,OAAOrxE,GAAG,CACL9tE,OADE,CACM8+I,aADN,EACqBhH,QADrB,EAEH;EAFG,CAGF93I,OAHE,CAGM8+I,aAHN,EAGqB,EAHrB,EAIH;EACA;EACA;EACA;EAPG,CAQF11H,IARE,EAAP;AASH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASg4H,aAAT,CAAuBplJ,KAAvB,EAA8B+c,MAA9B,EAAsComI,UAAtC,EAAkD;EAC9C,MAAM91H,MAAM,GAAG+sH,qBAAqB,CAACr9H,MAAD,EAAS46H,iBAAiB,CAAC0N,OAA3B,CAApC;EACA,MAAM7oE,OAAO,GAAG2oE,iBAAiB,CAAC93H,MAAD,EAASwsH,qBAAqB,CAAC98H,MAAD,EAAS+6H,YAAY,CAACiH,SAAtB,CAA9B,CAAjC;EACA,MAAMjtE,GAAG,GAAGkxE,0BAA0B,CAAChjJ,KAAD,EAAQw8E,OAAR,EAAiBz/D,MAAjB,EAAyB+6H,YAAY,CAACqC,KAAtC,EAA6CrC,YAAY,CAACmC,OAA1D,EAAmEkJ,UAAnE,EAA+E,IAA/E,CAAtC;EACA,OAAOrxE,GAAG,CAAC9tE,OAAJ,CAAY,IAAI64C,MAAJ,CAAWkmG,YAAX,EAAyB,GAAzB,CAAZ,EAA2ClJ,qBAAqB,CAAC98H,MAAD,EAAS+6H,YAAY,CAACwN,WAAtB,CAAhE,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,YAAT,CAAsBvlJ,KAAtB,EAA6B+c,MAA7B,EAAqComI,UAArC,EAAiD;EAC7C,MAAM91H,MAAM,GAAG+sH,qBAAqB,CAACr9H,MAAD,EAAS46H,iBAAiB,CAACsC,OAA3B,CAApC;EACA,MAAMz9D,OAAO,GAAG2oE,iBAAiB,CAAC93H,MAAD,EAASwsH,qBAAqB,CAAC98H,MAAD,EAAS+6H,YAAY,CAACiH,SAAtB,CAA9B,CAAjC;EACA,OAAOiE,0BAA0B,CAAChjJ,KAAD,EAAQw8E,OAAR,EAAiBz/D,MAAjB,EAAyB+6H,YAAY,CAACqC,KAAtC,EAA6CrC,YAAY,CAACmC,OAA1D,EAAmEkJ,UAAnE,CAAjC;AACH;;AACD,SAASgC,iBAAT,CAA2B93H,MAA3B,EAAmC8wH,SAAS,GAAG,GAA/C,EAAoD;EAChD,MAAMh0I,CAAC,GAAG;IACNw5I,MAAM,EAAE,CADF;IAENE,OAAO,EAAE,CAFH;IAGNE,OAAO,EAAE,CAHH;IAINe,MAAM,EAAE,EAJF;IAKNC,MAAM,EAAE,EALF;IAMNH,MAAM,EAAE,EANF;IAONC,MAAM,EAAE,EAPF;IAQNH,KAAK,EAAE,CARD;IASND,MAAM,EAAE;EATF,CAAV;EAWA,MAAMe,YAAY,GAAGn4H,MAAM,CAACjpB,KAAP,CAAau+I,WAAb,CAArB;EACA,MAAM8C,QAAQ,GAAGD,YAAY,CAAC,CAAD,CAA7B;EACA,MAAME,QAAQ,GAAGF,YAAY,CAAC,CAAD,CAA7B;EACA,MAAMG,aAAa,GAAGF,QAAQ,CAACphJ,OAAT,CAAiBo+I,WAAjB,MAAkC,CAAC,CAAnC,GAClBgD,QAAQ,CAACrhJ,KAAT,CAAeq+I,WAAf,CADkB,GAElB,CACIgD,QAAQ,CAACt8B,SAAT,CAAmB,CAAnB,EAAsBs8B,QAAQ,CAACG,WAAT,CAAqBlD,SAArB,IAAkC,CAAxD,CADJ,EAEI+C,QAAQ,CAACt8B,SAAT,CAAmBs8B,QAAQ,CAACG,WAAT,CAAqBlD,SAArB,IAAkC,CAArD,CAFJ,CAFJ;EAAA,MAKOmD,OAAO,GAAGF,aAAa,CAAC,CAAD,CAL9B;EAAA,MAKmCG,QAAQ,GAAGH,aAAa,CAAC,CAAD,CAAb,IAAoB,EALlE;EAMAx7I,CAAC,CAAC26I,MAAF,GAAWe,OAAO,CAAC18B,SAAR,CAAkB,CAAlB,EAAqB08B,OAAO,CAACxhJ,OAAR,CAAgBw+I,UAAhB,CAArB,CAAX;;EACA,KAAK,IAAI7nI,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG8qI,QAAQ,CAAC9uJ,MAA7B,EAAqCgkB,CAAC,EAAtC,EAA0C;IACtC,MAAM+qI,EAAE,GAAGD,QAAQ,CAACroD,MAAT,CAAgBziF,CAAhB,CAAX;;IACA,IAAI+qI,EAAE,KAAKrD,SAAX,EAAsB;MAClBv4I,CAAC,CAAC05I,OAAF,GAAY15I,CAAC,CAAC45I,OAAF,GAAY/oI,CAAC,GAAG,CAA5B;IACH,CAFD,MAGK,IAAI+qI,EAAE,KAAKlD,UAAX,EAAuB;MACxB14I,CAAC,CAAC45I,OAAF,GAAY/oI,CAAC,GAAG,CAAhB;IACH,CAFI,MAGA;MACD7Q,CAAC,CAAC46I,MAAF,IAAYgB,EAAZ;IACH;EACJ;;EACD,MAAMhmF,MAAM,GAAG8lF,OAAO,CAACzhJ,KAAR,CAAcw+I,SAAd,CAAf;EACAz4I,CAAC,CAACu6I,KAAF,GAAU3kF,MAAM,CAAC,CAAD,CAAN,GAAYA,MAAM,CAAC,CAAD,CAAN,CAAU/oE,MAAtB,GAA+B,CAAzC;EACAmT,CAAC,CAACs6I,MAAF,GAAY1kF,MAAM,CAAC,CAAD,CAAN,IAAaA,MAAM,CAAC,CAAD,CAApB,GAA2B,CAACA,MAAM,CAAC,CAAD,CAAN,IAAaA,MAAM,CAAC,CAAD,CAApB,EAAyB/oE,MAApD,GAA6D,CAAxE;;EACA,IAAI0uJ,QAAJ,EAAc;IACV,MAAMM,QAAQ,GAAGP,QAAQ,CAACzuJ,MAAT,GAAkBmT,CAAC,CAAC26I,MAAF,CAAS9tJ,MAA3B,GAAoCmT,CAAC,CAAC46I,MAAF,CAAS/tJ,MAA9D;IAAA,MAAsEu/B,GAAG,GAAGmvH,QAAQ,CAACrhJ,OAAT,CAAiBw+I,UAAjB,CAA5E;IACA14I,CAAC,CAACy6I,MAAF,GAAWc,QAAQ,CAACv8B,SAAT,CAAmB,CAAnB,EAAsB5yF,GAAtB,EAA2BvyB,OAA3B,CAAmC,IAAnC,EAAyC,EAAzC,CAAX;IACAmG,CAAC,CAAC06I,MAAF,GAAWa,QAAQ,CAAC7hJ,KAAT,CAAe0yB,GAAG,GAAGyvH,QAArB,EAA+BhiJ,OAA/B,CAAuC,IAAvC,EAA6C,EAA7C,CAAX;EACH,CAJD,MAKK;IACDmG,CAAC,CAACy6I,MAAF,GAAWzG,SAAS,GAAGh0I,CAAC,CAAC26I,MAAzB;IACA36I,CAAC,CAAC06I,MAAF,GAAW16I,CAAC,CAAC46I,MAAb;EACH;;EACD,OAAO56I,CAAP;AACH,EACD;;;AACA,SAASu5I,SAAT,CAAmBF,YAAnB,EAAiC;EAC7B;EACA,IAAIA,YAAY,CAACtH,MAAb,CAAoB,CAApB,MAA2B,CAA/B,EAAkC;IAC9B,OAAOsH,YAAP;EACH,CAJ4B,CAK7B;;;EACA,MAAMyC,WAAW,GAAGzC,YAAY,CAACtH,MAAb,CAAoBllJ,MAApB,GAA6BwsJ,YAAY,CAACa,UAA9D;;EACA,IAAIb,YAAY,CAACc,QAAjB,EAA2B;IACvBd,YAAY,CAACc,QAAb,IAAyB,CAAzB;EACH,CAFD,MAGK;IACD,IAAI2B,WAAW,KAAK,CAApB,EAAuB;MACnBzC,YAAY,CAACtH,MAAb,CAAoB/vH,IAApB,CAAyB,CAAzB,EAA4B,CAA5B;IACH,CAFD,MAGK,IAAI85H,WAAW,KAAK,CAApB,EAAuB;MACxBzC,YAAY,CAACtH,MAAb,CAAoB/vH,IAApB,CAAyB,CAAzB;IACH;;IACDq3H,YAAY,CAACa,UAAb,IAA2B,CAA3B;EACH;;EACD,OAAOb,YAAP;AACH;AACD;AACA;AACA;AACA;;;AACA,SAASC,WAAT,CAAqBlwE,GAArB,EAA0B;EACtB,IAAI2yE,MAAM,GAAG9iJ,IAAI,CAAC2yB,GAAL,CAASw9C,GAAT,IAAgB,EAA7B;EACA,IAAI+wE,QAAQ,GAAG,CAAf;EAAA,IAAkBpI,MAAlB;EAAA,IAA0BmI,UAA1B;EACA,IAAIrpI,CAAJ,EAAOkb,CAAP,EAAUiwH,KAAV,CAHsB,CAItB;;EACA,IAAI,CAAC9B,UAAU,GAAG6B,MAAM,CAAC7hJ,OAAP,CAAeo+I,WAAf,CAAd,IAA6C,CAAC,CAAlD,EAAqD;IACjDyD,MAAM,GAAGA,MAAM,CAACliJ,OAAP,CAAey+I,WAAf,EAA4B,EAA5B,CAAT;EACH,CAPqB,CAQtB;;;EACA,IAAI,CAACznI,CAAC,GAAGkrI,MAAM,CAACx5H,MAAP,CAAc,IAAd,CAAL,IAA4B,CAAhC,EAAmC;IAC/B;IACA,IAAI23H,UAAU,GAAG,CAAjB,EACIA,UAAU,GAAGrpI,CAAb;IACJqpI,UAAU,IAAI,CAAC6B,MAAM,CAACriJ,KAAP,CAAamX,CAAC,GAAG,CAAjB,CAAf;IACAkrI,MAAM,GAAGA,MAAM,CAAC/8B,SAAP,CAAiB,CAAjB,EAAoBnuG,CAApB,CAAT;EACH,CAND,MAOK,IAAIqpI,UAAU,GAAG,CAAjB,EAAoB;IACrB;IACAA,UAAU,GAAG6B,MAAM,CAAClvJ,MAApB;EACH,CAnBqB,CAoBtB;;;EACA,KAAKgkB,CAAC,GAAG,CAAT,EAAYkrI,MAAM,CAACzoD,MAAP,CAAcziF,CAAd,MAAqB0nI,SAAjC,EAA4C1nI,CAAC,EAA7C,EAAiD;IAAE;EAClD;;EACD,IAAIA,CAAC,MAAMmrI,KAAK,GAAGD,MAAM,CAAClvJ,MAArB,CAAL,EAAmC;IAC/B;IACAklJ,MAAM,GAAG,CAAC,CAAD,CAAT;IACAmI,UAAU,GAAG,CAAb;EACH,CAJD,MAKK;IACD;IACA8B,KAAK;;IACL,OAAOD,MAAM,CAACzoD,MAAP,CAAc0oD,KAAd,MAAyBzD,SAAhC,EACIyD,KAAK,GAJR,CAKD;;;IACA9B,UAAU,IAAIrpI,CAAd;IACAkhI,MAAM,GAAG,EAAT,CAPC,CAQD;;IACA,KAAKhmH,CAAC,GAAG,CAAT,EAAYlb,CAAC,IAAImrI,KAAjB,EAAwBnrI,CAAC,IAAIkb,CAAC,EAA9B,EAAkC;MAC9BgmH,MAAM,CAAChmH,CAAD,CAAN,GAAYqzD,MAAM,CAAC28D,MAAM,CAACzoD,MAAP,CAAcziF,CAAd,CAAD,CAAlB;IACH;EACJ,CAxCqB,CAyCtB;;;EACA,IAAIqpI,UAAU,GAAG7B,UAAjB,EAA6B;IACzBtG,MAAM,GAAGA,MAAM,CAAC3gI,MAAP,CAAc,CAAd,EAAiBinI,UAAU,GAAG,CAA9B,CAAT;IACA8B,QAAQ,GAAGD,UAAU,GAAG,CAAxB;IACAA,UAAU,GAAG,CAAb;EACH;;EACD,OAAO;IAAEnI,MAAF;IAAUoI,QAAV;IAAoBD;EAApB,CAAP;AACH;AACD;AACA;AACA;AACA;;;AACA,SAASD,WAAT,CAAqBZ,YAArB,EAAmCK,OAAnC,EAA4CE,OAA5C,EAAqD;EACjD,IAAIF,OAAO,GAAGE,OAAd,EAAuB;IACnB,MAAM,IAAI5pI,KAAJ,CAAW,gDAA+C0pI,OAAQ,iCAAgCE,OAAQ,IAA1G,CAAN;EACH;;EACD,IAAI7H,MAAM,GAAGsH,YAAY,CAACtH,MAA1B;EACA,IAAI+J,WAAW,GAAG/J,MAAM,CAACllJ,MAAP,GAAgBwsJ,YAAY,CAACa,UAA/C;EACA,MAAM+B,YAAY,GAAGhjJ,IAAI,CAACD,GAAL,CAASC,IAAI,CAACF,GAAL,CAAS2gJ,OAAT,EAAkBoC,WAAlB,CAAT,EAAyClC,OAAzC,CAArB,CANiD,CAOjD;;EACA,IAAIsC,OAAO,GAAGD,YAAY,GAAG5C,YAAY,CAACa,UAA1C;EACA,IAAIiC,KAAK,GAAGpK,MAAM,CAACmK,OAAD,CAAlB;;EACA,IAAIA,OAAO,GAAG,CAAd,EAAiB;IACb;IACAnK,MAAM,CAAC3gI,MAAP,CAAcnY,IAAI,CAACF,GAAL,CAASsgJ,YAAY,CAACa,UAAtB,EAAkCgC,OAAlC,CAAd,EAFa,CAGb;;IACA,KAAK,IAAInwH,CAAC,GAAGmwH,OAAb,EAAsBnwH,CAAC,GAAGgmH,MAAM,CAACllJ,MAAjC,EAAyCk/B,CAAC,EAA1C,EAA8C;MAC1CgmH,MAAM,CAAChmH,CAAD,CAAN,GAAY,CAAZ;IACH;EACJ,CAPD,MAQK;IACD;IACA+vH,WAAW,GAAG7iJ,IAAI,CAACF,GAAL,CAAS,CAAT,EAAY+iJ,WAAZ,CAAd;IACAzC,YAAY,CAACa,UAAb,GAA0B,CAA1B;IACAnI,MAAM,CAACllJ,MAAP,GAAgBoM,IAAI,CAACF,GAAL,CAAS,CAAT,EAAYmjJ,OAAO,GAAGD,YAAY,GAAG,CAArC,CAAhB;IACAlK,MAAM,CAAC,CAAD,CAAN,GAAY,CAAZ;;IACA,KAAK,IAAIlhI,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGqrI,OAApB,EAA6BrrI,CAAC,EAA9B,EACIkhI,MAAM,CAAClhI,CAAD,CAAN,GAAY,CAAZ;EACP;;EACD,IAAIsrI,KAAK,IAAI,CAAb,EAAgB;IACZ,IAAID,OAAO,GAAG,CAAV,GAAc,CAAlB,EAAqB;MACjB,KAAK,IAAI7xG,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG6xG,OAApB,EAA6B7xG,CAAC,EAA9B,EAAkC;QAC9B0nG,MAAM,CAAChgH,OAAP,CAAe,CAAf;QACAsnH,YAAY,CAACa,UAAb;MACH;;MACDnI,MAAM,CAAChgH,OAAP,CAAe,CAAf;MACAsnH,YAAY,CAACa,UAAb;IACH,CAPD,MAQK;MACDnI,MAAM,CAACmK,OAAO,GAAG,CAAX,CAAN;IACH;EACJ,CAvCgD,CAwCjD;;;EACA,OAAOJ,WAAW,GAAG7iJ,IAAI,CAACF,GAAL,CAAS,CAAT,EAAYkjJ,YAAZ,CAArB,EAAgDH,WAAW,EAA3D,EACI/J,MAAM,CAAC/vH,IAAP,CAAY,CAAZ;;EACJ,IAAIo6H,iBAAiB,GAAGH,YAAY,KAAK,CAAzC,CA3CiD,CA4CjD;EACA;;EACA,MAAMI,MAAM,GAAG3C,OAAO,GAAGL,YAAY,CAACa,UAAtC,CA9CiD,CA+CjD;;EACA,MAAMoC,KAAK,GAAGvK,MAAM,CAACwK,WAAP,CAAmB,UAAUD,KAAV,EAAiB/tH,CAAjB,EAAoB1d,CAApB,EAAuBkhI,MAAvB,EAA+B;IAC5DxjH,CAAC,GAAGA,CAAC,GAAG+tH,KAAR;IACAvK,MAAM,CAAClhI,CAAD,CAAN,GAAY0d,CAAC,GAAG,EAAJ,GAASA,CAAT,GAAaA,CAAC,GAAG,EAA7B,CAF4D,CAE3B;;IACjC,IAAI6tH,iBAAJ,EAAuB;MACnB;MACA,IAAIrK,MAAM,CAAClhI,CAAD,CAAN,KAAc,CAAd,IAAmBA,CAAC,IAAIwrI,MAA5B,EAAoC;QAChCtK,MAAM,CAAC1tD,GAAP;MACH,CAFD,MAGK;QACD+3D,iBAAiB,GAAG,KAApB;MACH;IACJ;;IACD,OAAO7tH,CAAC,IAAI,EAAL,GAAU,CAAV,GAAc,CAArB,CAZ4D,CAYpC;EAC3B,CAba,EAaX,CAbW,CAAd;;EAcA,IAAI+tH,KAAJ,EAAW;IACPvK,MAAM,CAAChgH,OAAP,CAAeuqH,KAAf;IACAjD,YAAY,CAACa,UAAb;EACH;AACJ;;AACD,SAASF,iBAAT,CAA2BpgJ,IAA3B,EAAiC;EAC7B,MAAMjC,MAAM,GAAGiB,QAAQ,CAACgB,IAAD,CAAvB;;EACA,IAAIR,KAAK,CAACzB,MAAD,CAAT,EAAmB;IACf,MAAM,IAAIqY,KAAJ,CAAU,0CAA0CpW,IAApD,CAAN;EACH;;EACD,OAAOjC,MAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;;;AACA,MAAM6kJ,cAAN,CAAqB;;AAErBA,cAAc,CAACnhJ,IAAf;EAAA,iBAA2GmhJ,cAA3G;AAAA;;AACAA,cAAc,CAAChhJ,KAAf,kBAx8EmGg1E,gEAw8EnG;EAAA,OAA+GgsE,cAA/G;EAAA;IAAA;;IAAA;MAAA;IAAA;MAAA,KAAgK5pI,MAAD,IAAY,IAAI6pI,oBAAJ,CAAyB7pI,MAAzB,CAA3K,EAx8EmG49D,sDAw8EnG,CAA6NxxF,oDAA7N;IAAA;;IAAA;EAAA;EAAA,YAA2I;AAA3I;;AACA;EAAA,mDAz8EmGwxF,+DAy8EnG,CAA2FgsE,cAA3F,EAAuH,CAAC;IAC5Gh4J,IAAI,EAAElG,qDADsG;IAE5G0d,IAAI,EAAE,CAAC;MACCJ,UAAU,EAAE,MADb;MAECwS,UAAU,EAAGwE,MAAD,IAAY,IAAI6pI,oBAAJ,CAAyB7pI,MAAzB,CAFzB;MAGCQ,IAAI,EAAE,CAACp0B,oDAAD;IAHP,CAAD;EAFsG,CAAD,CAAvH;AAAA;AAQA;AACA;AACA;AACA;AACA;;;AACA,SAAS09J,iBAAT,CAA2B7mJ,KAA3B,EAAkC8mJ,KAAlC,EAAyCC,cAAzC,EAAyDhqI,MAAzD,EAAiE;EAC7D,IAAI4jB,GAAG,GAAI,IAAG3gC,KAAM,EAApB;;EACA,IAAI8mJ,KAAK,CAACziJ,OAAN,CAAcs8B,GAAd,IAAqB,CAAC,CAA1B,EAA6B;IACzB,OAAOA,GAAP;EACH;;EACDA,GAAG,GAAGomH,cAAc,CAACF,iBAAf,CAAiC7mJ,KAAjC,EAAwC+c,MAAxC,CAAN;;EACA,IAAI+pI,KAAK,CAACziJ,OAAN,CAAcs8B,GAAd,IAAqB,CAAC,CAA1B,EAA6B;IACzB,OAAOA,GAAP;EACH;;EACD,IAAImmH,KAAK,CAACziJ,OAAN,CAAc,OAAd,IAAyB,CAAC,CAA9B,EAAiC;IAC7B,OAAO,OAAP;EACH;;EACD,MAAM,IAAI8V,KAAJ,CAAW,sCAAqCna,KAAM,GAAtD,CAAN;AACH;AACD;AACA;AACA;AACA;AACA;;;AACA,MAAM4mJ,oBAAN,SAAmCD,cAAnC,CAAkD;EAC9CrhJ,WAAW,CAACyX,MAAD,EAAS;IAChB;IACA,KAAKA,MAAL,GAAcA,MAAd;EACH;;EACD8pI,iBAAiB,CAAC7mJ,KAAD,EAAQ+c,MAAR,EAAgB;IAC7B,MAAMiqI,MAAM,GAAGnM,mBAAmB,CAAC99H,MAAM,IAAI,KAAKA,MAAhB,CAAnB,CAA2C/c,KAA3C,CAAf;;IACA,QAAQgnJ,MAAR;MACI,KAAKpP,MAAM,CAACqP,IAAZ;QACI,OAAO,MAAP;;MACJ,KAAKrP,MAAM,CAACsP,GAAZ;QACI,OAAO,KAAP;;MACJ,KAAKtP,MAAM,CAACuP,GAAZ;QACI,OAAO,KAAP;;MACJ,KAAKvP,MAAM,CAACwP,GAAZ;QACI,OAAO,KAAP;;MACJ,KAAKxP,MAAM,CAACyP,IAAZ;QACI,OAAO,MAAP;;MACJ;QACI,OAAO,OAAP;IAZR;EAcH;;AArB6C;;AAuBlDT,oBAAoB,CAACphJ,IAArB;EAAA,iBAAiHohJ,oBAAjH,EAhgFmGjsE,sDAggFnG,CAAuJxxF,oDAAvJ;AAAA;;AACAy9J,oBAAoB,CAACjhJ,KAArB,kBAjgFmGg1E,gEAigFnG;EAAA,OAAqHisE,oBAArH;EAAA,SAAqHA,oBAArH;AAAA;;AACA;EAAA,mDAlgFmGjsE,+DAkgFnG,CAA2FisE,oBAA3F,EAA6H,CAAC;IAClHj4J,IAAI,EAAElG,qDAAUA;EADkG,CAAD,CAA7H,EAE4B,YAAY;IAAE,OAAO,CAAC;MAAEkG,IAAI,EAAEgP,SAAR;MAAmB8J,UAAU,EAAE,CAAC;QAC9D9Y,IAAI,EAAE1F,iDADwD;QAE9Dkd,IAAI,EAAE,CAAChd,oDAAD;MAFwD,CAAD;IAA/B,CAAD,CAAP;EAGlB,CALxB;AAAA;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASm+J,kBAAT,CAA4B5qI,IAA5B,EAAkC8gE,QAAlC,EAA4C+pE,SAA5C,EAAuD;EACnD,OAAOpV,qEAAmB,CAACz1H,IAAD,EAAO8gE,QAAP,EAAiB+pE,SAAjB,CAA1B;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,gBAAT,CAA0BC,SAA1B,EAAqCx2I,IAArC,EAA2C;EACvCA,IAAI,GAAGy2I,kBAAkB,CAACz2I,IAAD,CAAzB;;EACA,KAAK,MAAM02I,MAAX,IAAqBF,SAAS,CAACrjJ,KAAV,CAAgB,GAAhB,CAArB,EAA2C;IACvC,MAAMwjJ,OAAO,GAAGD,MAAM,CAACtjJ,OAAP,CAAe,GAAf,CAAhB;IACA,MAAM,CAACwjJ,UAAD,EAAaC,WAAb,IAA4BF,OAAO,IAAI,CAAC,CAAZ,GAAgB,CAACD,MAAD,EAAS,EAAT,CAAhB,GAA+B,CAACA,MAAM,CAAC9jJ,KAAP,CAAa,CAAb,EAAgB+jJ,OAAhB,CAAD,EAA2BD,MAAM,CAAC9jJ,KAAP,CAAa+jJ,OAAO,GAAG,CAAvB,CAA3B,CAAjE;;IACA,IAAIC,UAAU,CAACz6H,IAAX,OAAsBnc,IAA1B,EAAgC;MAC5B,OAAO82I,kBAAkB,CAACD,WAAD,CAAzB;IACH;EACJ;;EACD,OAAO,IAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMr1E,OAAN,CAAc;EACVntE,WAAW,CAAC0iJ,gBAAD,EAAmBC,gBAAnB,EAAqCC,KAArC,EAA4C37I,SAA5C,EAAuD;IAC9D,KAAKy7I,gBAAL,GAAwBA,gBAAxB;IACA,KAAKC,gBAAL,GAAwBA,gBAAxB;IACA,KAAKC,KAAL,GAAaA,KAAb;IACA,KAAK37I,SAAL,GAAiBA,SAAjB;IACA,KAAK47I,eAAL,GAAuB,IAAvB;IACA,KAAKC,eAAL,GAAuB,IAAvB;IACA,KAAKC,eAAL,GAAuB,EAAvB;IACA,KAAKC,SAAL,GAAiB,IAAjB;EACH;;EACQ,IAALC,KAAK,CAACvoJ,KAAD,EAAQ;IACb,KAAKwoJ,cAAL,CAAoB,KAAKH,eAAzB;;IACA,KAAKA,eAAL,GAAuB,OAAOroJ,KAAP,KAAiB,QAAjB,GAA4BA,KAAK,CAACoE,KAAN,CAAY,KAAZ,CAA5B,GAAiD,EAAxE;;IACA,KAAKqkJ,aAAL,CAAmB,KAAKJ,eAAxB;;IACA,KAAKI,aAAL,CAAmB,KAAKH,SAAxB;EACH;;EACU,IAAPI,OAAO,CAAC1oJ,KAAD,EAAQ;IACf,KAAKwoJ,cAAL,CAAoB,KAAKF,SAAzB;;IACA,KAAKG,aAAL,CAAmB,KAAKJ,eAAxB;;IACA,KAAKF,eAAL,GAAuB,IAAvB;IACA,KAAKC,eAAL,GAAuB,IAAvB;IACA,KAAKE,SAAL,GAAiB,OAAOtoJ,KAAP,KAAiB,QAAjB,GAA4BA,KAAK,CAACoE,KAAN,CAAY,KAAZ,CAA5B,GAAiDpE,KAAlE;;IACA,IAAI,KAAKsoJ,SAAT,EAAoB;MAChB,IAAIlW,qEAAmB,CAAC,KAAKkW,SAAN,CAAvB,EAAyC;QACrC,KAAKH,eAAL,GAAuB,KAAKH,gBAAL,CAAsB99I,IAAtB,CAA2B,KAAKo+I,SAAhC,EAA2C9+G,MAA3C,EAAvB;MACH,CAFD,MAGK;QACD,KAAK4+G,eAAL,GAAuB,KAAKH,gBAAL,CAAsB/9I,IAAtB,CAA2B,KAAKo+I,SAAhC,EAA2C9+G,MAA3C,EAAvB;MACH;IACJ;EACJ;;EACD0lC,SAAS,GAAG;IACR,IAAI,KAAKi5E,eAAT,EAA0B;MACtB,MAAMQ,eAAe,GAAG,KAAKR,eAAL,CAAqBryH,IAArB,CAA0B,KAAKwyH,SAA/B,CAAxB;;MACA,IAAIK,eAAJ,EAAqB;QACjB,KAAKC,qBAAL,CAA2BD,eAA3B;MACH;IACJ,CALD,MAMK,IAAI,KAAKP,eAAT,EAA0B;MAC3B,MAAMS,eAAe,GAAG,KAAKT,eAAL,CAAqBtyH,IAArB,CAA0B,KAAKwyH,SAA/B,CAAxB;;MACA,IAAIO,eAAJ,EAAqB;QACjB,KAAKC,qBAAL,CAA2BD,eAA3B;MACH;IACJ;EACJ;;EACDC,qBAAqB,CAACn8I,OAAD,EAAU;IAC3BA,OAAO,CAACuoD,gBAAR,CAA0B6zF,MAAD,IAAY,KAAKC,YAAL,CAAkBD,MAAM,CAACpoH,GAAzB,EAA8BooH,MAAM,CAAC77I,YAArC,CAArC;IACAP,OAAO,CAACs8I,kBAAR,CAA4BF,MAAD,IAAY,KAAKC,YAAL,CAAkBD,MAAM,CAACpoH,GAAzB,EAA8BooH,MAAM,CAAC77I,YAArC,CAAvC;IACAP,OAAO,CAACwoD,kBAAR,CAA4B4zF,MAAD,IAAY;MACnC,IAAIA,MAAM,CAAC/7I,aAAX,EAA0B;QACtB,KAAKg8I,YAAL,CAAkBD,MAAM,CAACpoH,GAAzB,EAA8B,KAA9B;MACH;IACJ,CAJD;EAKH;;EACDioH,qBAAqB,CAACj8I,OAAD,EAAU;IAC3BA,OAAO,CAACuoD,gBAAR,CAA0B6zF,MAAD,IAAY;MACjC,IAAI,OAAOA,MAAM,CAACjjI,IAAd,KAAuB,QAA3B,EAAqC;QACjC,KAAKkjI,YAAL,CAAkBD,MAAM,CAACjjI,IAAzB,EAA+B,IAA/B;MACH,CAFD,MAGK;QACD,MAAM,IAAI3L,KAAJ,CAAW,iEAAgEk4H,4DAAU,CAAC0W,MAAM,CAACjjI,IAAR,CAAc,EAAnG,CAAN;MACH;IACJ,CAPD;IAQAnZ,OAAO,CAACwoD,kBAAR,CAA4B4zF,MAAD,IAAY,KAAKC,YAAL,CAAkBD,MAAM,CAACjjI,IAAzB,EAA+B,KAA/B,CAAvC;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;EACI2iI,aAAa,CAACS,WAAD,EAAc;IACvB,IAAIA,WAAJ,EAAiB;MACb,IAAIpuI,KAAK,CAAC6Q,OAAN,CAAcu9H,WAAd,KAA8BA,WAAW,YAAYn4I,GAAzD,EAA8D;QAC1Dm4I,WAAW,CAACv/I,OAAZ,CAAqB4+I,KAAD,IAAW,KAAKS,YAAL,CAAkBT,KAAlB,EAAyB,IAAzB,CAA/B;MACH,CAFD,MAGK;QACD/rI,MAAM,CAACu1D,IAAP,CAAYm3E,WAAZ,EAAyBv/I,OAAzB,CAAiC4+I,KAAK,IAAI,KAAKS,YAAL,CAAkBT,KAAlB,EAAyB,CAAC,CAACW,WAAW,CAACX,KAAD,CAAtC,CAA1C;MACH;IACJ;EACJ;EACD;AACJ;AACA;AACA;;;EACIC,cAAc,CAACU,WAAD,EAAc;IACxB,IAAIA,WAAJ,EAAiB;MACb,IAAIpuI,KAAK,CAAC6Q,OAAN,CAAcu9H,WAAd,KAA8BA,WAAW,YAAYn4I,GAAzD,EAA8D;QAC1Dm4I,WAAW,CAACv/I,OAAZ,CAAqB4+I,KAAD,IAAW,KAAKS,YAAL,CAAkBT,KAAlB,EAAyB,KAAzB,CAA/B;MACH,CAFD,MAGK;QACD/rI,MAAM,CAACu1D,IAAP,CAAYm3E,WAAZ,EAAyBv/I,OAAzB,CAAiC4+I,KAAK,IAAI,KAAKS,YAAL,CAAkBT,KAAlB,EAAyB,KAAzB,CAA1C;MACH;IACJ;EACJ;;EACDS,YAAY,CAACT,KAAD,EAAQY,OAAR,EAAiB;IACzBZ,KAAK,GAAGA,KAAK,CAACn7H,IAAN,EAAR;;IACA,IAAIm7H,KAAJ,EAAW;MACPA,KAAK,CAACnkJ,KAAN,CAAY,MAAZ,EAAoBuF,OAApB,CAA4B4+I,KAAK,IAAI;QACjC,IAAIY,OAAJ,EAAa;UACT,KAAK58I,SAAL,CAAeU,QAAf,CAAwB,KAAKi7I,KAAL,CAAWn7I,aAAnC,EAAkDw7I,KAAlD;QACH,CAFD,MAGK;UACD,KAAKh8I,SAAL,CAAeO,WAAf,CAA2B,KAAKo7I,KAAL,CAAWn7I,aAAtC,EAAqDw7I,KAArD;QACH;MACJ,CAPD;IAQH;EACJ;;AA9GS;;AAgHd91E,OAAO,CAACjtE,IAAR;EAAA,iBAAoGitE,OAApG,EAnsFmGkI,+DAmsFnG,CAA6HA,0DAA7H,GAnsFmGA,+DAmsFnG,CAA4JA,0DAA5J,GAnsFmGA,+DAmsFnG,CAA2LA,qDAA3L,GAnsFmGA,+DAmsFnG,CAAqNA,oDAArN;AAAA;;AACAlI,OAAO,CAAC5rE,IAAR,kBApsFmG8zE,+DAosFnG;EAAA,MAAwFlI,OAAxF;EAAA;EAAA;IAAA;IAAA;EAAA;EAAA;AAAA;;AACA;EAAA,mDArsFmGkI,+DAqsFnG,CAA2FlI,OAA3F,EAAgH,CAAC;IACrG9jF,IAAI,EAAEpF,oDAD+F;IAErG4c,IAAI,EAAE,CAAC;MACCf,QAAQ,EAAE,WADX;MAECikJ,UAAU,EAAE;IAFb,CAAD;EAF+F,CAAD,CAAhH,EAM4B,YAAY;IAAE,OAAO,CAAC;MAAE16J,IAAI,EAAEgsF,0DAAkByuE;IAA1B,CAAD,EAA+B;MAAEz6J,IAAI,EAAEgsF,0DAAkBh3B;IAA1B,CAA/B,EAA6D;MAAEh1D,IAAI,EAAEgsF,qDAAa/wF;IAArB,CAA7D,EAAsF;MAAE+E,IAAI,EAAEgsF,oDAAYhxF;IAApB,CAAtF,CAAP;EAAuH,CANjK,EAMmL;IAAE4+J,KAAK,EAAE,CAAC;MAC7K55J,IAAI,EAAEhG,gDADuK;MAE7Kwd,IAAI,EAAE,CAAC,OAAD;IAFuK,CAAD,CAAT;IAGnKuiJ,OAAO,EAAE,CAAC;MACV/5J,IAAI,EAAEhG,gDADI;MAEVwd,IAAI,EAAE,CAAC,SAAD;IAFI,CAAD;EAH0J,CANnL;AAAA;AAcA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMmjJ,iBAAN,CAAwB;EACpBhkJ,WAAW,CAAC29B,iBAAD,EAAoB;IAC3B,KAAKA,iBAAL,GAAyBA,iBAAzB;IACA,KAAKsmH,iBAAL,GAAyB,IAAzB;EACH;EACD;;;EACA78I,WAAW,CAACC,OAAD,EAAU;IACjB,MAAM;MAAEs2B,iBAAiB,EAAE6O,gBAArB;MAAuC03G,yBAAyB,EAAEh+I,QAAlE;MAA4Ei+I,gCAAgC,EAAEC;IAA9G,IAAmI,IAAzI;IACA53G,gBAAgB,CAAClH,KAAjB;IACA,KAAK++G,aAAL,GAAqBhsJ,SAArB;;IACA,IAAI,KAAK4rJ,iBAAT,EAA4B;MACxB,MAAM7gH,QAAQ,GAAG,KAAKkhH,yBAAL,IAAkC93G,gBAAgB,CAAC+3G,cAApE;;MACA,IAAIl9I,OAAO,CAAC,2BAAD,CAAP,IAAwCA,OAAO,CAAC,kCAAD,CAAnD,EAAyF;QACrF,IAAI,KAAKm9I,UAAT,EACI,KAAKA,UAAL,CAAgBrmH,OAAhB;;QACJ,IAAIj4B,QAAJ,EAAc;UACV,KAAKs+I,UAAL,GAAkBxX,6DAAc,CAAC9mI,QAAD,EAAWu+I,iBAAiB,CAACrhH,QAAD,CAA5B,CAAhC;QACH,CAFD,MAGK,IAAIghH,eAAJ,EAAqB;UACtB,KAAKI,UAAL,GAAkBJ,eAAe,CAAClgH,MAAhB,CAAuBugH,iBAAiB,CAACrhH,QAAD,CAAxC,CAAlB;QACH,CAFI,MAGA;UACD,KAAKohH,UAAL,GAAkBnsJ,SAAlB;QACH;MACJ;;MACD,KAAKgsJ,aAAL,GAAqB73G,gBAAgB,CAACniB,eAAjB,CAAiC,KAAK45H,iBAAtC,EAAyD;QAC1ExyJ,KAAK,EAAE+6C,gBAAgB,CAAC96C,MADkD;QAE1E0xC,QAF0E;QAG1EshH,WAAW,EAAE,KAAKF,UAHwD;QAI1EG,gBAAgB,EAAE,KAAKC;MAJmD,CAAzD,CAArB;IAMH;EACJ;EACD;;;EACA73I,WAAW,GAAG;IACV,IAAI,KAAKy3I,UAAT,EACI,KAAKA,UAAL,CAAgBrmH,OAAhB;EACP;;AArCmB;;AAuCxB6lH,iBAAiB,CAAC9jJ,IAAlB;EAAA,iBAA8G8jJ,iBAA9G,EA5zFmG3uE,+DA4zFnG,CAAiJA,2DAAjJ;AAAA;;AACA2uE,iBAAiB,CAACziJ,IAAlB,kBA7zFmG8zE,+DA6zFnG;EAAA,MAAkG2uE,iBAAlG;EAAA;EAAA;IAAA;IAAA;IAAA;IAAA;IAAA;EAAA;EAAA;EAAA,WA7zFmG3uE,kEA6zFnG;AAAA;;AACA;EAAA,mDA9zFmGA,+DA8zFnG,CAA2F2uE,iBAA3F,EAA0H,CAAC;IAC/G36J,IAAI,EAAEpF,oDADyG;IAE/G4c,IAAI,EAAE,CAAC;MACCf,QAAQ,EAAE,qBADX;MAECikJ,UAAU,EAAE;IAFb,CAAD;EAFyG,CAAD,CAA1H,EAM4B,YAAY;IAAE,OAAO,CAAC;MAAE16J,IAAI,EAAEgsF,2DAAmB9wF;IAA3B,CAAD,CAAP;EAAyC,CANnF,EAMqG;IAAE0/J,iBAAiB,EAAE,CAAC;MAC3G56J,IAAI,EAAEhG,gDAAKA;IADgG,CAAD,CAArB;IAErFihK,yBAAyB,EAAE,CAAC;MAC5Bj7J,IAAI,EAAEhG,gDAAKA;IADiB,CAAD,CAF0D;IAIrFuhK,wBAAwB,EAAE,CAAC;MAC3Bv7J,IAAI,EAAEhG,gDAAKA;IADgB,CAAD,CAJ2D;IAMrF6gK,yBAAyB,EAAE,CAAC;MAC5B76J,IAAI,EAAEhG,gDAAKA;IADiB,CAAD,CAN0D;IAQrF8gK,gCAAgC,EAAE,CAAC;MACnC96J,IAAI,EAAEhG,gDAAKA;IADwB,CAAD;EARmD,CANrG;AAAA,MAiBA;;;AACA,SAASohK,iBAAT,CAA2BrhH,QAA3B,EAAqC;EACjC,MAAMyhH,cAAc,GAAGzhH,QAAQ,CAACy4B,GAAT,CAAaoxE,sDAAb,CAAvB;EACA,OAAO4X,cAAc,CAACzhH,QAAtB;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM2mF,WAAW,GAAG,OAAOppH,SAAP,KAAqB,WAArB,IAAoC,CAAC,CAACA,SAA1D;AACA;AACA;AACA;;AACA,MAAMmkJ,cAAN,CAAqB;EACjB9kJ,WAAW,CAACtY,SAAD,EAAYq9J,OAAZ,EAAqBtzJ,KAArB,EAA4BmqD,KAA5B,EAAmC;IAC1C,KAAKl0D,SAAL,GAAiBA,SAAjB;IACA,KAAKq9J,OAAL,GAAeA,OAAf;IACA,KAAKtzJ,KAAL,GAAaA,KAAb;IACA,KAAKmqD,KAAL,GAAaA,KAAb;EACH;;EACQ,IAAL94C,KAAK,GAAG;IACR,OAAO,KAAKrR,KAAL,KAAe,CAAtB;EACH;;EACO,IAAJ8wB,IAAI,GAAG;IACP,OAAO,KAAK9wB,KAAL,KAAe,KAAKmqD,KAAL,GAAa,CAAnC;EACH;;EACO,IAAJopG,IAAI,GAAG;IACP,OAAO,KAAKvzJ,KAAL,GAAa,CAAb,KAAmB,CAA1B;EACH;;EACM,IAAH4K,GAAG,GAAG;IACN,OAAO,CAAC,KAAK2oJ,IAAb;EACH;;AAlBgB;AAoBrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMr/I,OAAN,CAAc;EACV3F,WAAW,CAACilJ,cAAD,EAAiBC,SAAjB,EAA4BC,QAA5B,EAAsC;IAC7C,KAAKF,cAAL,GAAsBA,cAAtB;IACA,KAAKC,SAAL,GAAiBA,SAAjB;IACA,KAAKC,QAAL,GAAgBA,QAAhB;IACA,KAAKC,QAAL,GAAgB,IAAhB;IACA,KAAKC,aAAL,GAAqB,IAArB;IACA,KAAKC,OAAL,GAAe,IAAf;EACH;EACD;AACJ;AACA;AACA;;;EACe,IAAPP,OAAO,CAACA,OAAD,EAAU;IACjB,KAAKK,QAAL,GAAgBL,OAAhB;IACA,KAAKM,aAAL,GAAqB,IAArB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACoB,IAAZE,YAAY,CAAC96I,EAAD,EAAK;IACjB,IAAIs/G,WAAW,IAAIt/G,EAAE,IAAI,IAArB,IAA6B,OAAOA,EAAP,KAAc,UAA/C,EAA2D;MACvD;MACA,IAAIs4E,OAAO,IAAIA,OAAO,CAACC,IAAvB,EAA6B;QACzBD,OAAO,CAACC,IAAR,CAAc,4CAA2C6oB,IAAI,CAAC25C,SAAL,CAAe/6I,EAAf,CAAmB,IAA/D,GACR,oFADL;MAEH;IACJ;;IACD,KAAKg7I,UAAL,GAAkBh7I,EAAlB;EACH;;EACe,IAAZ86I,YAAY,GAAG;IACf,OAAO,KAAKE,UAAZ;EACH;EACD;AACJ;AACA;AACA;;;EACqB,IA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ACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMuc,IAAN,CAAW;EACP5F,WAAW,CAACilJ,cAAD,EAAiBj9J,WAAjB,EAA8B;IACrC,KAAKi9J,cAAL,GAAsBA,cAAtB;IACA,KAAK5+D,QAAL,GAAgB,IAAIkgE,WAAJ,EAAhB;IACA,KAAKC,gBAAL,GAAwB,IAAxB;IACA,KAAKC,gBAAL,GAAwB,IAAxB;IACA,KAAKC,YAAL,GAAoB,IAApB;IACA,KAAKC,YAAL,GAAoB,IAApB;IACA,KAAKH,gBAAL,GAAwBx+J,WAAxB;EACH;EACD;AACJ;AACA;;;EACY,IAAJ4+J,IAAI,CAACrlD,SAAD,EAAY;IAChB,KAAKlb,QAAL,CAAc3+F,SAAd,GAA0B,KAAK2+F,QAAL,CAAcugE,IAAd,GAAqBrlD,SAA/C;;IACA,KAAKslD,WAAL;EACH;EACD;AACJ;AACA;;;EACgB,IAARC,QAAQ,CAAC9+J,WAAD,EAAc;IACtB++J,cAAc,CAAC,UAAD,EAAa/+J,WAAb,CAAd;IACA,KAAKw+J,gBAAL,GAAwBx+J,WAAxB;IACA,KAAK0+J,YAAL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B,CAACsB,aAAD,EAAgB/wJ,KAAhB,CAA9B;IACH;;IACD,OAAOA,KAAK,CAACw7D,WAAN,EAAP;EACH;;AARe;;AAUpBu1F,aAAa,CAACvrJ,IAAd;EAAA,iBAA0GurJ,aAA1G;AAAA;;AACAA,aAAa,CAACN,KAAd,kBA1qImG91E,0DA0qInG;EAAA;EAAA,MAAwGo2E,aAAxG;EAAA;EAAA;AAAA;;AACA;EAAA,mDA3qImGp2E,+DA2qInG,CAA2Fo2E,aAA3F,EAAsH,CAAC;IAC3GpiK,IAAI,EAAEikJ,+CADqG;IAE3GzsI,IAAI,EAAE,CAAC;MACC8K,IAAI,EAAE,WADP;MAECo4I,UAAU,EAAE;IAFb,CAAD;EAFqG,CAAD,CAAtH;AAAA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;;;AACA,MAAM2H,0BAA0B,GAAG,IAAI9nK,yDAAJ,CAAmB,4BAAnB,CAAnC,EACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA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ACA;;AACA,MAAMC,wBAAwB,GAAG,IAAjC;AACA,MAAMC,yBAAyB,GAAG,IAAlC;AACA;;AACA,MAAMC,gBAAgB,GAAG,CAACjE,eAAD,EAAkBL,kBAAlB,EAAsCN,oBAAtC,CAAzB;AACA,MAAM6E,aAAa,GAAG;EAClBC,WAAW,EAAE,CAAC,EAAD,EAAK,EAAL,EAAS,EAAT,EAAa,EAAb,EAAiB,EAAjB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,GAA/B,EAAoC,GAApC,EAAyC,GAAzC,EAA8C,GAA9C,EAAmD,IAAnD,EAAyD,IAAzD,EAA+D,IAA/D,EAAqE,IAArE,EAA2E,IAA3E;AADK,CAAtB;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,YAAY,GAAG,IAAIpyK,yDAAJ,CAAmB,aAAnB,EAAkC;EAAE6c,UAAU,EAAE,MAAd;EAAsBD,OAAO,EAAE,MAAMs1J;AAArC,CAAlC,CAArB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMG,gBAAN,CAAuB;EACnBj2J,WAAW,GAAG;IACV,KAAKk2J,WAAL,GAAmBnxK,qDAAM,CAACwrK,YAAD,CAAzB;IACA,KAAK7sJ,MAAL,GAAcyyJ,aAAa,CAACpxK,qDAAM,CAACixK,YAAD,CAAP,CAA3B;IACA,KAAKh6H,QAAL,GA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OH;EACJ;AACJ;AACD;AACA;AACA;;;AACA,SAAS7D,6BAAT,CAAuCl1F,GAAvC,EAA4CozF,WAA5C,EAAyD;EACrD,IAAIpzF,GAAG,CAACs0F,QAAJ,IAAgBlB,WAAW,KAAK5F,eAApC,EAAqD;IACjDvtE,OAAO,CAACC,IAAR,CAAayqD,qEAAmB,CAAC;IAAK;IAAN,EAAwD,GAAEykB,mBAAmB,CAACpvF,GAAG,CAACqvF,KAAL,CAAY,6CAAlC,GAClF,sEADkF,GAElF,4EAFkF,GAGlF,oFAH2B,CAAhC;EAIH;AACJ;AACD;AACA;AACA;AACA;;;AACA,SAAS8F,iCAAT,CAA2Cn1F,GAA3C,EAAgDozF,WAAhD,EAA6D;EACzD,IAAIpzF,GAAG,CAACk2F,YAAJ,IAAoB9C,WAAW,KAAK5F,eAAxC,EAAyD;IACrDvtE,OAAO,CAACC,IAAR,CAAayqD,qEAAmB,CAAC;IAAK;IAAN,EAAwD,GAAEykB,mBAAmB,CAACpvF,GAAG,CAACqvF,KAAL,CAAY,iDAAlC,GAClF,sEADkF,GAElF,2FAFkF,GAGlF,+FAH2B,CAAhC;EAIH;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACp2NA;AACA;AACA;AACA;AACA;AAEA;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,MAAMwK,WAAN,CAAkB;AAElB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,WAAN,CAAkB;AAGlB;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,WAAN,CAAkB;EACd;EACA78J,WA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,IAAL,CAAU0oH,SAAV;MACH,CAFD,SAGQ;QACJnI,QAAQ,CAAC;QAAE;QAAH,EAAyCmI,SAAzC,EAAoDH,IAApD,CAAR;MACH;IACJ;EACJ,CAfD,MAgBK;IACDhI,QAAQ,CAAC;IAAE;IAAH,EAA2CmI,SAA3C,EAAsDH,IAAtD,CAAR;;IACA,IAAI;MACAA,IAAI,CAACvoH,IAAL,CAAU0oH,SAAV;IACH,CAFD,SAGQ;MACJnI,QAAQ,CAAC;MAAE;MAAH,EAAyCmI,SAAzC,EAAoDH,IAApD,CAAR;IACH;EACJ;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMK,kBAAkB,GAAG,CAAC,CAA5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,mBAAN,CAA0B;EACtB3+K,WAAW;EACX;AACJ;AACA;EACIQ,OAJW;EAKX;AACJ;AACA;EACIo+K,cARW,EAQKC,oBARL,EAQ2B;IAClC,KAAKr+K,OAAL,GAAeA,OAAf;IACA;AACR;AACA;AACA;;IACQ,KAAKs+K,SAAL,GAAiB,KAAjB;IACAn+K,SAAS,IAAImpK,aAAa,CAACtpK,OAAD,EAAU,uBAAV,CAA1B;IACAG,SAAS,IAAI2oK,WAAW,CAAC,OAAO9oK,OAAR,EAAiB,UAAjB,EAA6B,4BAA7B,CAAxB;IACA,KAAKu+K,mBAAL,GAA2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CAAmCrnM,EAAnC,EAAuC;EACnC,OAAO+mM,OAAO,CAAC3zH,GAAR,CAAYpzE,EAAZ,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASsnM,mCAAT,CAA6CC,eAA7C,EAA8D;EAC1DP,0BAA0B,GAAG,CAACO,eAA9B;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,sBAAsB,GAAG;EAC3BtkL,IAAI,EAAE;AADqB,CAA/B;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMukL,gBAAgB,GAAG;EACrBvkL,IAAI,EAAE;AADe,CAAzB;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,IAAIwkL,gCAAgC,GAAG,KAAvC;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,4BAAT,CAAsCC,WAAtC,EAAmD;EAC/CF,gCAAgC,GAAGE,WAAnC;AACH;AACD;AACA;AACA;;;AACA,SAASC,4BAAT,GAAwC;EACpC,OAAOH,gCAAP;AACH;;AACD,IAAII,iCAAiC,GAAG,KAAxC;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,6BAAT,CAAuCH,WAAvC,EAAoD;EAChDE,iCAAiC,GAAGF,WAApC;AACH;AACD;AACA;AACA;;;AACA,SAASI,6BAAT,GAAyC;EACrC,OAAOF,iCAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASG,sBAAT,CAAgC9xL,OAAhC,EAAyCs0K,KAAzC,EAAgD9mE,OAAhD,EAAyD+iE,OAAzD,EAAkEwhB,aAAlE,EAAiF;EAC7E;EACA;EACA;EACA;EACA,IAAIxhB,OAAO,KAAK,IAAhB,EACI,OANyE,CAO7E;;EACA,IAAI,CAACwhB,aAAD,IAAkBvkF,OAAO,KAAK,IAAlC,EAAwC;IACpC;IACA;IACA;IACA,MAAMwkF,SAAS,GACf;IACA;IACC,OAAOC,kBAA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iB,YAAnE,CAAN;EACH;AACJ;;AACD,SAASw9C,YAAT,GAAwB;EACpB,MAAMjwB,KAAK,GAAG2F,QAAQ,EAAtB;EACA,OAAO3F,KAAK,IAAIA,KAAK,CAAC5B,SAAD,CAArB;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMkzB,uBAAuB,GAAG,IAAI5gN,cAAJ,CAAmB,yBAAnB,CAAhC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMqB,QAAQ,GAAG,IAAIrB,cAAJ,CAAmB,UAAnB,EACjB;AACA;AACA,CAAC;AAAE;AAHc,CAAjB;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAM6gN,kBAAkB,GAAG,IAAI7gN,cAAJ,CAAmB,oBAAnB,CAA3B;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAM8gN,YAAN,CAAmB;EACf7oI,GAAG,CAACt7D,KAAD,EAAQirK,aAAa,GAAG4gB,kBAAxB,EAA4C;IAC3C,IAAI5gB,aAAa,KAAK4gB,kBAAtB,EAA0C;MACtC,MAAM5tG,KAAK,GAAG,IAAI3pE,KAAJ,CAAW,sCAAqC2wI,SAAS,CAACjlJ,KAAD,CAAQ,GAAjE,CAAd;MACAi+E,KAAK,CAAC7yE,IAAN,GAAa,mBAAb;MACA,MAAM6yE,KAAN;IACH;;IACD,OAAOgtF,aAAP;EACH;;AARc;AAWnB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASm5B,mBAAT,CAA6B,GAAG76G,OAAhC,EAAyC;EACrC,OAAO;IAAE2+E,UAAU,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CAA2B3yM,KAA3B,EAAkC6uH,QAAlC,EAA4CtkE,UAA5C,EAAwD;EACpD,OAAO,IAAI4mJ,oBAAJ,CAAyBP,aAAa,CAACt1I,GAAd,CAAkBt7D,KAAlB,CAAzB,EAAmD6uH,QAAnD,EAA6DtkE,UAA7D,CAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMsoJ,SAAS,GAAG,EAAlB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,kBAAN,CAAyB;EACrB;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACkB,OAAPnzK,OAAO,CAAC90B,SAAD,EAAY;IACtB,OAAOqnM,0BAA0B,CAACrnM,SAAD,CAAjC;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EAC2B,OAAhBkoM,gBAAgB,CAACloM,SAAD,EAAY05B,MAAZ,EAAoB;IACvC,MAAMyuK,2BAA2B,GAAGF,kBAAkB,CAACnzK,OAAnB,CAA2B90B,SAA3B,CAApC;IACA,OAAOioM,kBAAkB,CAACG,qBAAnB,CAAyCD,2BAAzC,EAAsEzuK,MAAtE,CAAP;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACgC,OAArB0uK,qBAAqB,CAACpoM,SAAD,EAAY05B,MAAZ,EAAoB;IAC5C,OAAO,IAAI2u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I/uE,YAAY,GAAG;IACXm6M,aAAa,CAAC,KAAKuB,mBAAL,IAA4B,KAAKphC,MAAlC,CAAb;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIwhC,MAAM,GAAG;IACL,KAAKxhC,MAAL,CAAYtU,KAAZ,KAAsB,CAAC;IAAG;IAA1B;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACI+1C,QAAQ,GAAG;IACP,KAAKzhC,MAAL,CAAYtU,KAAZ,KAAsB;IAAG;IAAzB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIlmJ,aAAa,GAAG;IACZs6L,qBAAqB,CAAC,KAAK9/B,MAAL,CAAYvU,KAAZ,CAAD,EAAqB,KAAKuU,MAA1B,EAAkC,KAAKl1L,OAAvC,CAArB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACI42N,cAAc,GAAG;IACb,IAAIlmN,SAAJ,EAAe;MACXykN,sBAAsB,CAAC,KAAKjgC,MAAL,CAAYvU,KAAZ,CAAD,EAAqB,KAAKuU,MAA1B,EAAkC,KAAKl1L,OAAvC,CAAtB;IACH;EACJ;;EACD62N,wBAAwB,GAAG;IACvB,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A;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,IAAIC,mEAAJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,qBAAT,CAA+Bn3C,KAA/B,EAAsCnO,KAAtC,EAA6CulD,qBAA7C,EAAoEvgO,KAApE,EAA2EwgO,aAA3E,EAA0FC,cAA1F,EAA0G;EACtGvxN,SAAS,IAAIyzK,qBAAqB,CAAC0E,QAAQ,EAAT,CAAlC;EACA,IAAIq5C,SAAS,GAAGD,cAAc,GAAGzlD,KAAK,CAACksC,aAAT,GAAyBlsC,KAAK,CAACmsC,aAA7D;EACA,IAAIwZ,QAAQ,GAAG9c,oBAAoB,CAAC6c,SAAD,CAAnC;EACA,IAAIE,QAAQ,GAAG1c,oBAAoB,CAACwc,SAAD,CAAnC;EACAv3C,KAAK,CAACnpL,KAAD,CAAL,GAAeugO,qBAAf;EACA,IAAIM,sBAAsB,GAAG,KAA7B;EACA,IAAIC,WAAJ;;EACA,IAAI/8M,KAAK,CAAC6Q,OAAN,CAAc2rM,qBAAd,CAAJ,EAA0C;IAC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9B,CADa,GACsB,KADtB,GAC8BgN,IAAI,CAACF,KAAL,CAAW9M,KAAK,GAAG,CAAnB,CAD9B,GAEZ,iBAAgBojO,SAAU,IAFf,CAAhB;AAGH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASl9N,WAAT,CAAqBorB,IAArB,EAA2BroB,KAA3B,EAAkC6xN,MAAlC,EAA0C;EACtCuI,oBAAoB,CAAC/xM,IAAD,EAAOroB,KAAP,EAAc6xN,MAAd,EAAsB,KAAtB,CAApB;EACA,OAAO50N,WAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASrP,WAAT,CAAqBuW,SAArB,EAAgCnE,KAAhC,EAAuC;EACnCo6N,oBAAoB,CAACj2N,SAAD,EAAYnE,KAAZ,EAAmB,IAAnB,EAAyB,IAAzB,CAApB;EACA,OAAOpS,WAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASysO,UAAT,CAAoBnsN,MAApB,EAA4B;EACxBosN,eAAe,CAACC,qBAAD,EAAwBC,iBAAxB,EAA2CtsN,MAA3C,EAAmD,KAAnD,CAAf;AACH;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASssN,iBAAT,CAA2BtrC,aAA3B,EAA0CnrL,IAA1C,EAAgD;EAC5C,KAAK,IAAIiX,CAAC,GAAGs+M,UAAU,CAACv1N,IAAD,CAAvB,EAA+BiX,CAAC,IAAI,CAApC,EAAuCA,CAAC,GAAGu+M,cAAc,CAACx1N,IAAD,EAAOiX,CAAP,CAAzD,EAAoE;IAChEu/M,qBAAqB,CAACrrC,aAAD,EAAgB6pC,gBAAgB,CAACh1N,IAAD,CAAhC,EAAwCi1N,kBAAkB,CAACj1N,IAAD,CAA1D,CAArB;EACH;AACJ;AA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Z,MAAsB;EAAE0pF,SAAF;EAAa1pF;AAAb,CAAtB,CAAjB,CAAtC;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;;AACA,MAAM/c,QAAQ,GAAGmiM,aAAa,CAAC,UAAD,EAAc//K,QAAD,IAAcA,QAA3B,EAAqC7N,SAArC,EAAgDA,SAAhD;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAChP,IAAD,EAAOo+L,IAAP,KAAgBsuD,eAAe,CAAC1sP,IAAD,EAAOo+L,IAAP,CAZD,CAA9B;AAcA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASjpJ,IAAT,CAAc,GAAG39B,IAAjB,EAAuB,CACnB;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;;;AACA,MAAMi7O,gBAAgB,GAAG,IAAzB;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,eAAe,GAAG,IAAIn4P,cAAJ,CAAmB,yBAAnB,CAAxB;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMo4P,qBAAN,CAA4B;EACxBh8O,WAAW,CAACi8O,QAAD,EAAW;IAClB,KAAKA,QAAL,GAAgBA,QAAhB;IACA,KAAK/7M,OAAL,GAAe1B,IAAf;IACA,KAAK2B,MAAL,GAAc3B,IAAd;IACA,KAAK09M,WAAL,GAAmB,KAAnB;IACA,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,CAA1C,CAA9B;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMqiB,YAAY,GAAG,IAAI15P,cAAJ,CAAmB,cAAnB,CAArB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAM25P,mBAAmB,GAAG,IAAI35P,cAAJ,CAAmB,oBAAnB,CAA5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,IAAI45P,0BAAJ;;AACA,CAAC,UAAUA,0BAAV,EAAsC;EACnCA,0BAA0B,CAACA,0BAA0B,CAAC,OAAD,CAA1B,GAAsC,CAAvC,CAA1B,GAAsE,OAAtE;EACAA,0BAA0B,CAACA,0BAA0B,CAAC,SAAD,CAA1B,GAAwC,CAAzC,CAA1B,GAAwE,SAAxE;EACAA,0BAA0B,CAACA,0BAA0B,CAAC,QAAD,CAA1B,GAAuC,CAAxC,CAA1B,GAAuE,QAAvE;AACH,CAJD,EAIGA,0BAA0B,KAAKA,0BAA0B,GAAG,EAAlC,CAJ7B;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,4BAAN,CAAmC;EAC/Bz9O,WAAW,CAACokJ,eAAD,EAAkBs5F,kBAAlB,EAAsC;IAC7C,KAAKt5F,eAAL,GAAuBA,eAAvB;IACA,KAAKs5F,kBAAL,GAA0BA,kBAA1B;EACH;;AAJ8B;AAMnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMC,QAAN,CAAe;EACX;AACJ;AACA;AACA;EACIC,iBAAiB,CAAC/T,UAAD,EAAa;IAC1B,OAAO,IAAID,eAAJ,CA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pD;EACH;AACJ;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASq0O,8BAAT,GAA0C;EACtC,IAAIC,2BAA2B,GAAG9yE,OAAO,CAAC,uBAAD,CAAzC;EACA,IAAI+yE,0BAA0B,GAAG/yE,OAAO,CAAC,sBAAD,CAAxC;;EACA,IAAI,OAAO4yE,IAAP,KAAgB,WAAhB,IAA+BE,2BAA/B,IAA8DC,0BAAlE,EAA8F;IAC1F;IACA;IACA,MAAMC,8BAA8B,GAAGF,2BAA2B,CAACF,IAAI,CAACK,UAAL,CAAgB,kBAAhB,CAAD,CAAlE;;IACA,IAAID,8BAAJ,EAAoC;MAChCF,2BAA2B,GAAGE,8BAA9B;IACH;;IACD,MAAME,6BAA6B,GAAGH,0BAA0B,CAACH,IAAI,CAACK,UAAL,CAAgB,kBAAhB,CAAD,CAAhE;;IACA,IAAIC,6BAAJ,EAAmC;MAC/BH,0BAA0B,GAAGG,6BAA7B;IACH;EACJ;;EACD,OAAO;IAAEJ,2BAAF;IAA+BC;EAA/B,CAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM96P,MAAN,CAAa;EACT8b,WAAW,CAAC;IAAEo/O,oBAAoB,GAAG,KAAzB;IAAgCC,kCAAkC,GAAG,KAArE;IAA4EC,gCAAgC,GAAG;EAA/G,CAAD,EAAyH;IAChI,KAAKC,oBAAL,GAA4B,KAA5B;IACA,KAAKC,oBAAL,GAA4B,KAA5B;IACA;AACR;AACA;;IACQ,KAAKC,QAAL,G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B;IAChB,MAAM,IAAI10O,KAAJ,CAAU,+CAAV,CAAN;EACH,CAHqB,CAItB;EACA;;;EACA,IAAI,OAAOlU,SAAP,KAAqB,WAArB,IAAoCA,SAAxC,EAAmD;IAC/CsrK,OAAO,CAAC,WAAD,CAAP,GAAuB,KAAvB;EACH;;EACDq9E,QAAQ,GAAG,KAAX;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASI,gBAAT,CAA0BjhQ,EAA1B,EAA8B;EAC1B,MAAMY,IAAI,GAAGymM,yBAAyB,CAACrnM,EAAD,CAAtC;EACA,IAAI,CAACY,IAAL,EACI,MAAMsgQ,aAAa,CAAClhQ,EAAD,CAAnB;EACJ,OAAO,IAAImhP,eAAJ,CAAoBvgP,IAApB,CAAP;AACH;AACD;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASugQ,eAAT,CAAyBnhQ,EAAzB,EAA6B;EACzB,MAAMY,IAAI,GAAGymM,yBAAyB,CAACrnM,EAAD,CAAtC;EACA,IAAI,CAACY,IAAL,EACI,MAAMsgQ,aAAa,CAAClhQ,EAAD,CAAnB;EACJ,OAAOY,IAAP;AACH;;AACD,SAASsgQ,aAAT,CAAuBlhQ,EAAvB,EAA2B;EACvB,OAAO,IAAIosB,KAAJ,CAAW,qBAAoBpsB,EAAG,SAAlC,CAAP;AACH;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM1E,iBAAN,CAAwB;AAExB;AACA;AACA;AACA;;;AACAA,iBAAiB,CAACyqL,iBAAlB,GAAsCq7E,uBAAtC;AACA;;AACA,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AACA;AACA;AACA;;AACA,MAAM82Q,mBAAmB,GAAG,IAAI92Q,yDAAJ,CAAmB,mBAAnB,CAA5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAM+2Q,YAAY,GAAG,oMAArB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,MAAMC,UAAN,CAAiB;EACb;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACc,OAAH/8P,GAAG,CAACA,GAAD,EAAM;IACZ,OAAOg9P,YAAY,CAACh9P,GAAD,CAAnB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACc,OAAHD,GAAG,CAACA,GAAD,EAAM;IACZ,OAAOk9P,YAAY,CAACl9P,GAAD,CAAnB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACmB,OAARm9P,QAAQ,CAACC,OAAD,EAAU;IACrB,OAAOC,iBAAiB,CAACD,OAAD,CAAxB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACuB,OAAZE,YAAY,CAACF,OAAD,EAAU;IACzB,OAAOG,qBAAqB,CAACH,OAAD,CAA5B;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACgB,OAALtzJ,KAAK,CAACszJ,OAAD,EAAU;IAClB,OAAOI,cAAc,CAACJ,OAAD,CAArB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACoB,OAATK,SAAS,CAACA,SAAD,EAAY;IACxB,OAAOC,kBAAkB,CAACD,SAAD,CAAzB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACoB,OAATE,SAAS,CAACA,SAAD,EAAY;IACxB,OAAOC,kBAAkB,CAACD,SAAD,CAAzB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACkB,OAAPrkL,OAAO,CAACA,OAAD,EAAU;IACpB,OAAOukL,gBAAgB,CAACvkL,OAAD,CAAvB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;;;EACwB,OAAbwkL,aAAa,CAACV,OAAD,EAAU;IAC1B,OAAOU,aAAa,CAACV,OAAD,CAApB;EACH;;EACa,OAAPW,OAAO,CAACC,UAAD,EAAa;IACvB,OAAOD,OAAO,CAACC,UAAD,CAAd;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACuB,OAAZC,YAAY,CAACD,UAAD,EAAa;IAC5B,OAAOC,YAAY,CAACD,UAAD,CAAnB;EACH;;AAlRY;AAoRjB;AACA;AACA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AACJ;AACA;AACA;;;EACInuN,KAAK,CAACz0C,KAAK,GAAGrC,SAAT,EAAoB;IACrB,IAAI,KAAK2iQ,OAAT,EACI,KAAKA,OAAL,CAAa7rN,KAAb,CAAmBz0C,KAAnB;EACP;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIulF,QAAQ,CAACk+K,SAAD,EAAYrpM,IAAZ,EAAkB;IACtB,OAAO,KAAKkmM,OAAL,GAAe,KAAKA,OAAL,CAAa/6K,QAAb,CAAsBk+K,SAAtB,EAAiCrpM,IAAjC,CAAf,GAAwD,KAA/D;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIspM,QAAQ,CAACD,SAAD,EAAYrpM,IAAZ,EAAkB;IACtB,OAAO,KAAKkmM,OAAL,GAAe,KAAKA,OAAL,CAAaoD,QAAb,CAAsBD,SAAtB,EAAiCrpM,IAAjC,CAAf,GAAwD,IAA/D;EACH;;AApQ0B;AAuQ/B;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMupM,gBAAN,SAA+BhB,wBAA/B,CAAwD;EACpD;AACJ;AACA;AACA;EACqB,IAAbiB,aAAa,GAAG;IAChB,OAAO,IAAP;EACH;EACD;AACJ;AACA;AACA;;;EACY,IAAJxpM,IAAI,GAAG;IACP,OAAO,IAAP;EACH;;AAdmD;AAiBxD;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMypM,SAAN,SAAwBlB,wBAAxB,CAAiD;EAC7Cr9P,WAAW,GAAG;IACV,MAAM,GAAG+1D,SAAT;IACA;AACR;AACA;AACA;AACA;AACA;;IACQ,KAAK49I,OAAL,GAAe,IAAf;IACA;AA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AgB+vL,QAAvB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACe,IAAP78G,OAAO,GAAG;IACV,OAAO,KAAKlzE,MAAL,KAAgB+vL,QAAvB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;;;EACa,IAALrlD,KAAK,GAAG;IACR,OAAO,CAAC,KAAKmiD,QAAb;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACiB,IAATC,SAAS,GAAG;IACZ,OAAO,CAAC,KAAK/pN,OAAb;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACgB,IAARouN,QAAQ,GAAG;IACX,OAAO,KAAKC,SAAL,GAAiB,KAAKA,SAAtB,GAAmC,KAAKj9N,MAAL,GAAc,KAAKA,MAAL,CAAYg9N,QAA1B,GAAqC,QAA/E;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIE,aAAa,CAACpG,UAAD,EAAa;IACtB,KAAKgB,cAAL,GAAsBhB,UAAtB;IACA,KAAKiC,oBAAL,GAA4BiD,iBAAiB,CAAClF,UAAD,CAA7C;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIqG,kBAAkB,CAACrG,UAAD,EAAa;IAC3B,KAAKkB,mBAAL,GAA2BlB,UAA3B;IACA,KAAKmC,yBAAL,GAAiCkD,sBAAsB,CAACrF,UAAD,CAAvD;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIqB,aAAa,CAACrB,UAAD,EAAa;IACtB,KAAKoG,aAAL,CAAmB/E,aAAa,CAACrB,UAAD,EAAa,KAAKgB,cAAlB,CAAhC;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIsF,kBAAkB,CAACtG,UAAD,EAAa;IAC3B,KAAKqG,kBAAL,CAAwBhF,aAAa,CAACrB,UAAD,EAAa,KAAKkB,mBAAlB,CAArC;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIM,gBAAgB,CAACxB,UAAD,EAAa;IACzB,KAAKoG,aAAL,CAAmB5E,gBAAgB,CAACxB,UAAD,EAAa,KAAKgB,cAAlB,CAAnC;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIuF,qBAAqB,CAACvG,UAAD,EAAa;IAC9B,KAAKqG,kBAAL,CAAwB7E,gBAAgB,CAACxB,UAAD,EAAa,KAAKkB,mBAAlB,CAAxC;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIE,YAAY,CAACd,SAAD,EAAY;IACpB,OAAOc,YAAY,CAAC,KAAKJ,cAAN,EAAsBV,SAAtB,CAAnB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIkG,iBAAiB,CAAClG,SAAD,EAAY;IACzB,OAAOc,YAAY,CAAC,KAAKF,mBAAN,EAA2BZ,SAA3B,CAAnB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;;;EACImG,eAAe,GAAG;IACd,KAAKnG,SAAL,GAAiB,IAAjB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;;;EACIoG,oBAAoB,GAAG;IACnB,KAAKtE,cAAL,GAAsB,IAAtB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIuE,aAAa,CAACl4F,IAAI,GAAG,EAAR,EAAY;IACrB,KAAK32H,OAAL,GAAe,IAAf;;IACA,IAAI,KAAKigK,OAAL,IAAgB,CAACtpC,IAAI,CAACm4F,QAA1B,EAAoC;MAChC,KAAK7uD,OAAL,CAAa4uD,aAAb,CAA2Bl4F,IAA3B;IACH;EACJ;EACD;AACJ;AACA;AACA;;;EACIo4F,gBAAgB,GAAG;IACf,KAAKF,aAAL,CAAmB;MAAEC,QAAQ,EAAE;I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Ab,EAAtC;EACH;EACD;;;EACAJ,KAAK,CAAC14P,IAAD,EAAO;IACR,OAAO,IAAP;EACH;;AA9yBiB;AAizBtB;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMm5P,SAAN,SAAwBxD,eAAxB,CAAwC;EACpC;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACIthQ,WAAW,CAACg/E,QAAD,EAAW4hL,eAAX,EAA4B5C,cAA5B,EAA4C;IACnD,MAAM2C,cAAc,CAACC,eAAD,CAApB,EAAuCG,mBAAmB,CAAC/C,cAAD,EAAiB4C,eAAjB,CAA1D;IACA,KAAK5hL,QAAL,GAAgBA,QAAhB;;IACA,KAAKslL,gBAAL;;IACA,KAAKM,kBAAL,CAAwBhE,eAAxB;;IACA,KAAKmE,cAAL;;IACA,KAAKzB,sBAAL,CAA4B;MACxBd,QAAQ,EAAE,IADc;MAExB;MACA;MACA;MACA1oP,SAAS,EAAE,CAAC,CAAC,KAAKkkP;IALM,CAA5B;EAOH;;EACDgH,eAAe,CAACr5P,IAAD,EAAOqvP,OAAP,EAAgB;IAC3B,IAAI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e,GAAG,CAAC,MAAM5iI,OAAO,CAACC,OAAR,EAAP,GAAxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAM4qO,OAAN,SAAsBvM,SAAtB,CAAgC;EAC5Bv+P,WAAW,CAAC8kC,MAAD,EAAS82N,UAAT,EAAqBoF,eAArB,EAAsCoH,cAAtC,EAAsD55N,kBAAtD,EAA0E;IACjF;IACA,KAAKA,kBAAL,GAA0BA,kBAA1B;IACA,KAAKwsN,OAAL,GAAe,IAAI8O,WAAJ,EAAf;IACA;;IACA,KAAKiB,WAAL,GAAmB,KAAnB;IACA;AACR;AACA;AACA;AACA;;IACQ,KAAKj8N,MAAL,GAAc,IAAItrD,uDAAJ,EAAd;IACA,KAAKmwN,OAAL,GAAe7uK,MAAf;;IACA,KAAK84N,cAAL,CAAoBhC,UAApB;;IACA,KAAKkC,mBAAL,CAAyBkD,eAAzB;;IACA,KAAKxC,aAAL,GAAqB2J,mBAAmB,CAAC,IAAD,EAAOC,cAAP,CAAxC;EACH;EACD;;;EACAhhQ,WAAW,CAACC,OAAD,EAAU;IACjB,KAAK2jQ,eAAL;;IACA,IAAI,CAAC,KAAKD,WAAN,IAAqB,UAAU1jQ,OAAnC,EAA4C;MACxC,IAAI,KAAK0jQ,WAAT,EAAsB;QAClB,KAAKE,UAAL;;QACA,IAAI,KAAK3M,aAAT,EAAwB;UACpB;UACA;UACA;UACA;UACA,MAAM4M,OAAO,GAAG7jQ,OAAO,CAAC,MAAD,CAAP,CAAgBK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CAA2Fu8L,mBAA3F,EAA4H,CAAC;IACjHvoR,IAAI,EAAEvF,mDAD2G;IAEjH+c,IAAI,EAAE,CAAC;MACC4F,YAAY,EAAE,CAACirQ,0BAAD,CADf;MAEChrQ,OAAO,EAAE,CAACirQ,0BAAD,EAA6BD,0BAA7B;IAFV,CAAD;EAF2G,CAAD,CAA5H;AAAA;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMK,SAAN,SAAwBzQ,eAAxB,CAAwC;EACpC;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACIthQ,WAAW,CAACg/E,QAAD,EAAW4hL,eAAX,EAA4B5C,cAA5B,EAA4C;IACnD,MAAM2C,cAAc,CAACC,eAAD,CAApB,EAAuCG,mBAAmB,CAAC/C,cAAD,EAAiB4C,eAAjB,CAA1D;IACA,KAAK5hL,QAAL,GAAgBA,QAAhB;;IACA,KAAKslL,gBAAL;;IACA,KAAKM,kBAAL,CAAwBhE,eAAxB;;IACA,KAAKmE,cAAL;;IACA,KAAKzB,sBAAL,CAA4B;MACxBd,QAAQ,EAAE,IADc;MAExB;MACA;MACA;MACA;MACA1oP,SAAS,EAAE,CAAC,CAAC,KAAKkkP;IANM,CAA5B;EAQH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;;;EACIgU,EAAE,CAACvgR,KAAD,EAAQ;IACN,OAAO,KAAKutF,QAAL,CAAc,KAAKkyJ,YAAL,CAAkBz/O,KAAlB,CAAd,CAAP;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA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GAAG;IACV,KAAKuyQ,cAAL,GAAsB,KAAtB;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACmB,IAAXvI,WAAW,GAAG;IACd,MAAMwI,IAAI,GAAG,IAAIF,WAAJ,EAAb;IACAE,IAAI,CAACD,cAAL,GAAsB,IAAtB;IACA,OAAOC,IAAP;EACH;;EACDlqN,KAAK,CAAC02B,QAAD,EAAWhlE,OAAO,GAAG,IAArB,EAA2B;IAC5B,MAAMy4P,eAAe,GAAG,KAAKC,eAAL,CAAqB1zL,QAArB,CAAxB;;IACA,IAAIw1C,UAAU,GAAG,EAAjB;;IACA,IAAI69I,wBAAwB,CAACr4P,OAAD,CAA5B,EAAuC;MACnC;MACAw6G,UAAU,GAAGx6G,OAAb;IACH,CAHD,MAIK,IAAIA,OAAO,KAAK,IAAhB,EAAsB;MACvB;MACAw6G,UAAU,CAAConI,UAAX,GAAwB5hP,OAAO,CAACkiP,SAAhC;MACA1nI,UAAU,CAACwsI,eAAX,GAA6BhnP,OAAO,CAACgkP,cAArC;IACH;;IACD,OAAO,IAAI8G,SAAJ,CAAc2N,eAAd,EAA+Bj+I,UAA/B,CAAP;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;EACIivB,MAAM,CAACzkE,QAAD,EAAWhlE,OAAO,GAAG,IAArB,EAA2B;IAC7B,MAAMy4P,eAAe,GAAG,KAAKC,eAAL,CAAqB1zL,QAArB,CAAxB,CAD6B,CAE7B;;;IACA,OAAO,IAAI6mL,UAAJ,CAAe4M,eAAf,EAAgCz4P,OAAhC,CAAP;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMstN,UAAN,CAAiB;EACb/rS,WAAW,CAACokS,MAAD,EAAStgB,KAAT,EAAgBkoB,iBAAhB,EAAmChwQ,QAAnC,EAA6Cz8B,EAA7C,EAAiD;IACxD,KAAK6kS,MAAL,GAAcA,MAAd;IACA,KAAKtgB,KAAL,GAAaA,KAAb;IACA,KAAKkoB,iBAAL,GAAyBA,iBAAzB;IACA,KAAKhwQ,QAAL,GAAgBA,QAAhB;IACA,KAAKz8B,EAAL,GAAUA,EAAV;IACA,KAAK0sS,iBAAL,GAAyB,KAAzB;IACA,KAAKC,mBAAL,GAA2B,KAA3B;IACA,KAAKC,WAAL,GAAmB,KAAnB;IACA,KAAKliB,QAAL,GAAgB,IAAhB;IACA;;IACA,KAAKmiB,SAAL,GAAiB,IAAIrmT,0CAAJ,EAAjB;IACA,KAAKsmT,0BAAL,CAAgC,GAAhC;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EACwB,IAAhBrB,gBAAgB,CAACA,gBAAD,EAAmB;IACnC,KAAKiB,iBAAL,GAAyBt1C,kEAAgB,CAACq0C,gBAAD,CAAzC;EACH;;EACmB,IAAhBA,gBAAgB,GAAG;IACnB,OAAO,KAAKiB,iBAAZ;EACH;EACD;AACJ;AACA;AACA;AACA;AACA;;;EAC0B,IAAlBlD,kBAAkB,CAACA,kBAAD,EAAqB;IACvC,KAAKmD,mBAAL,GAA2Bv1C,kEAAgB,CA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","sources":["./node_modules/@ng-bootstrap/ng-bootstrap/__ivy_ngcc__/fesm2015/ng-bootstrap.js","./node_modules/@swimlane/ngx-datatable/__ivy_ngcc__/fesm2015/swimlane-ngx-datatable.js","./node_modules/ng2-google-charts/fesm2015/ng2-google-charts.js","./node_modules/rxjs/_esm2015/internal/BehaviorSubject.js","./node_modules/rxjs/_esm2015/internal/InnerSubscriber.js","./node_modules/rxjs/_esm2015/internal/Notification.js","./node_modules/rxjs/_esm2015/internal/Observable.js","./node_modules/rxjs/_esm2015/internal/Observer.js","./node_modules/rxjs/_esm2015/internal/OuterSubscriber.js","./node_modules/rxjs/_esm2015/internal/ReplaySubject.js","./node_modules/rxjs/_esm2015/internal/Scheduler.js","./node_modules/rxjs/_esm2015/internal/Subject.js","./node_modules/rxjs/_esm2015/internal/SubjectSubscription.js","./node_modules/rxjs/_esm2015/internal/Subscriber.js","./node_modules/rxjs/_esm2015/internal/Subscription.js","./node_modules/rxjs/_esm2015/internal/config.js","./node_modules/rxjs/_esm2015/internal/observable/ConnectableObservable.js","./node_modules/rxjs/_esm2015/internal/observable/combineLatest.js","./node_modules/rxjs/_esm2015/internal/observable/concat.js","./node_modules/rxjs/_esm2015/internal/observable/defer.js","./node_modules/rxjs/_esm2015/internal/observable/empty.js","./node_modules/rxjs/_esm2015/internal/observable/forkJoin.js","./node_modules/rxjs/_esm2015/internal/observable/from.js","./node_modules/rxjs/_esm2015/internal/observable/fromArray.js","./node_modules/rxjs/_esm2015/internal/observable/fromEvent.js","./node_modules/rxjs/_esm2015/internal/observable/merge.js","./node_modules/rxjs/_esm2015/internal/observable/of.js","./node_modules/rxjs/_esm2015/internal/observable/race.js","./node_modules/rxjs/_esm2015/internal/observable/throwError.js","./node_modules/rxjs/_esm2015/internal/observable/timer.js","./node_modules/rxjs/_esm2015/internal/operators/audit.js","./node_modules/rxjs/_esm2015/internal/operators/auditTime.js","./node_modules/rxjs/_esm2015/internal/operators/catchError.js","./node_modules/rxjs/_esm2015/internal/operators/concatAll.js","./node_modules/rxjs/_esm2015/internal/operators/concatMap.js","./node_modules/rxjs/_esm2015/internal/operators/debounceTime.js","./node_modules/rxjs/_esm2015/internal/operators/defaultIfEmpty.js","./node_modules/rxjs/_esm2015/internal/operators/delay.js","./node_modules/rxjs/_esm2015/internal/operators/filter.js","./node_modules/rxjs/_esm2015/internal/operators/finalize.js","./node_modules/rxjs/_esm2015/internal/operators/first.js","./node_modules/rxjs/_esm2015/internal/operators/last.js","./node_modules/rxjs/_esm2015/internal/operators/map.js","./node_modules/rxjs/_esm2015/internal/operators/mapTo.js","./node_modules/rxjs/_esm2015/internal/operators/mergeAll.js","./node_modules/rxjs/_esm2015/internal/operators/mergeMap.js","./node_modules/rxjs/_esm2015/internal/operators/multicast.js","./node_modules/rxjs/_esm2015/internal/operators/observeOn.js","./node_modules/rxjs/_esm2015/internal/operators/refCount.js","./node_modules/rxjs/_esm2015/internal/operators/scan.js","./node_modules/rxjs/_esm2015/internal/operators/share.js","./node_modules/rxjs/_esm2015/internal/operators/shareReplay.js","./node_modules/rxjs/_esm2015/internal/operators/startWith.js","./node_modules/rxjs/_esm2015/internal/operators/switchMap.js","./node_modules/rxjs/_esm2015/internal/operators/take.js","./node_modules/rxjs/_esm2015/internal/operators/takeLast.js","./node_modules/rxjs/_esm2015/internal/operators/takeUntil.js","./node_modules/rxjs/_esm2015/internal/operators/takeWhile.js","./node_modules/rxjs/_esm2015/internal/operators/tap.js","./node_modules/rxjs/_esm2015/internal/operators/throwIfEmpty.js","./node_modules/rxjs/_esm2015/internal/operators/withLatestFrom.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduleArray.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduleIterable.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduleObservable.js","./node_modules/rxjs/_esm2015/internal/scheduled/schedulePromise.js","./node_modules/rxjs/_esm2015/internal/scheduled/scheduled.js","./node_modules/rxjs/_esm2015/internal/scheduler/Action.js","./node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameAction.js","./node_modules/rxjs/_esm2015/internal/scheduler/AnimationFrameScheduler.js","./node_modules/rxjs/_esm2015/internal/scheduler/AsapAction.js","./node_modules/rxjs/_esm2015/internal/scheduler/AsapScheduler.js","./node_modules/rxjs/_esm2015/internal/scheduler/AsyncAction.js","./node_modules/rxjs/_esm2015/internal/scheduler/AsyncScheduler.js","./node_modules/rxjs/_esm2015/internal/scheduler/QueueAction.js","./node_modules/rxjs/_esm2015/internal/scheduler/QueueScheduler.js","./node_modules/rxjs/_esm2015/internal/scheduler/animationFrame.js","./node_modules/rxjs/_esm2015/internal/scheduler/asap.js","./node_modules/rxjs/_esm2015/internal/scheduler/async.js","./node_modules/rxjs/_esm2015/internal/scheduler/queue.js","./node_modules/rxjs/_esm2015/internal/symbol/iterator.js","./node_modules/rxjs/_esm2015/internal/symbol/observable.js","./node_modules/rxjs/_esm2015/internal/symbol/rxSubscriber.js","./node_modules/rxjs/_esm2015/internal/util/ArgumentOutOfRangeError.js","./node_modules/rxjs/_esm2015/internal/util/EmptyError.js","./node_modules/rxjs/_esm2015/internal/util/Immediate.js","./node_modules/rxjs/_esm2015/internal/util/ObjectUnsubscribedError.js","./node_modules/rxjs/_esm2015/internal/util/UnsubscriptionError.js","./node_modules/rxjs/_esm2015/internal/util/canReportError.js","./node_modules/rxjs/_esm2015/internal/util/hostReportError.js","./node_modules/rxjs/_esm2015/internal/util/identity.js","./node_modules/rxjs/_esm2015/internal/util/isArray.js","./node_modules/rxjs/_esm2015/internal/util/isArrayLike.js","./node_modules/rxjs/_esm2015/internal/util/isDate.js","./node_modules/rxjs/_esm2015/internal/util/isFunction.js","./node_modules/rxjs/_esm2015/internal/util/isInteropObservable.js","./node_modules/rxjs/_esm2015/internal/util/isIterable.js","./node_modules/rxjs/_esm2015/internal/util/isNumeric.js","./node_modules/rxjs/_esm2015/internal/util/isObject.js","./node_modules/rxjs/_esm2015/internal/util/isObservable.js","./node_modules/rxjs/_esm2015/internal/util/isPromise.js","./node_modules/rxjs/_esm2015/internal/util/isScheduler.js","./node_modules/rxjs/_esm2015/internal/util/noop.js","./node_modules/rxjs/_esm2015/internal/util/pipe.js","./node_modules/rxjs/_esm2015/internal/util/subscribeTo.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToArray.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToIterable.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToObservable.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToPromise.js","./node_modules/rxjs/_esm2015/internal/util/subscribeToResult.js","./node_modules/rxjs/_esm2015/internal/util/toSubscriber.js","./node_modules/sweetalert2/dist/sweetalert2.all.js","./node_modules/zoftinium-frontend/__ivy_ngcc__/fesm2015/zoftinium-frontend.js","./node_modules/@swimlane/ngx-datatable/node_modules/tslib/tslib.es6.js","./node_modules/tslib/tslib.es6.js","./node_modules/@angular/animations/fesm2020/animations.mjs","./node_modules/@angular/animations/fesm2020/browser.mjs","./node_modules/@angular/common/fesm2020/common.mjs","./node_modules/@angular/common/fesm2020/http.mjs","./node_modules/@angular/core/fesm2020/core.mjs","./node_modules/@angular/forms/fesm2020/forms.mjs","./node_modules/@angular/platform-browser/fesm2020/animations.mjs","./node_modules/@angular/platform-browser/fesm2020/platform-browser.mjs","./node_modules/@angular/router/fesm2020/router.mjs","./node_modules/@ng-select/ng-select/fesm2020/ng-select-ng-select.mjs","./node_modules/@ngx-translate/core/fesm2020/ngx-translate-core.mjs","./node_modules/@ngx-translate/http-loader/fesm2020/ngx-translate-http-loader.mjs","./node_modules/ngx-toastr/fesm2020/ngx-toastr.mjs","./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js"],"sourcesContent":["import { Injectable, Component, Input, TemplateRef, Output, EventEmitter, ViewEncapsulation, ChangeDetectionStrategy, Inject, InjectionToken, LOCALE_ID, NgModule, ChangeDetectorRef, ContentChildren, Directive, NgZone, PLATFORM_ID, Injector, Renderer2, ElementRef, ViewContainerRef, ComponentFactoryResolver, ApplicationRef, ContentChild, forwardRef, Optional, Host, defineInjectable, inject, RendererFactory2, INJECTOR, ViewChild } from '@angular/core';\nimport { CommonModule, isPlatformBrowser, FormStyle, getLocaleDayNames, getLocaleMonthNames, TranslationWidth, formatDate, DOCUMENT } from '@angular/common';\nimport { NG_VALUE_ACCESSOR, NG_VALIDATORS, FormsModule } from '@angular/forms';\nimport { merge, Subject, timer, fromEvent, race, Observable, BehaviorSubject } from 'rxjs';\nimport { filter, map, switchMap, takeUntil, take, delay, withLatestFrom, share, tap } from 'rxjs/operators';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/**\n * @param {?} value\n * @return {?}\n */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@angular/common';\nimport * as ɵngcc2 from '@angular/forms';\n\nfunction NgbAccordion_ng_template_0_ng_template_2_Template(rf, ctx) { }\nfunction NgbAccordion_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"button\", 3);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵtemplate(2, NgbAccordion_ng_template_0_ng_template_2_Template, 0, 0, \"ng-template\", 4);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const panel_r3 = ctx.$implicit;\n ɵngcc0.ɵɵproperty(\"ngbPanelToggle\", panel_r3);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", panel_r3.title, \"\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", panel_r3.titleTpl == null ? null : panel_r3.titleTpl.templateRef);\n} }\nfunction NgbAccordion_ng_template_2_ng_template_2_Template(rf, ctx) { }\nfunction NgbAccordion_ng_template_2_div_3_ng_template_2_Template(rf, ctx) { }\nfunction NgbAccordion_ng_template_2_div_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 9)(1, \"div\", 10);\n ɵngcc0.ɵɵtemplate(2, NgbAccordion_ng_template_2_div_3_ng_template_2_Template, 0, 0, \"ng-template\", 4);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const panel_r5 = ɵngcc0.ɵɵnextContext().$implicit;\n ɵngcc0.ɵɵclassProp(\"show\", panel_r5.isOpen);\n ɵngcc0.ɵɵpropertyInterpolate(\"id\", panel_r5.id);\n ɵngcc0.ɵɵattribute(\"aria-labelledby\", panel_r5.id + \"-header\");\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", panel_r5.contentTpl == null ? null : panel_r5.contentTpl.templateRef);\n} }\nconst _c0 = function (a0, a1) { return { $implicit: a0, opened: a1 }; };\nfunction NgbAccordion_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 5)(1, \"div\", 6);\n ɵngcc0.ɵɵtemplate(2, NgbAccordion_ng_template_2_ng_template_2_Template, 0, 0, \"ng-template\", 7);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(3, NgbAccordion_ng_template_2_div_3_Template, 3, 5, \"div\", 8);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const panel_r5 = ctx.$implicit;\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n const _r0 = ɵngcc0.ɵɵreference(1);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵclassMap(\"card-header \" + (panel_r5.type ? \"bg-\" + panel_r5.type : ctx_r2.type ? \"bg-\" + ctx_r2.type : \"\"));\n ɵngcc0.ɵɵpropertyInterpolate1(\"id\", \"\", panel_r5.id, \"-header\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", (panel_r5.headerTpl == null ? null : panel_r5.headerTpl.templateRef) || _r0)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction2(6, _c0, panel_r5, panel_r5.isOpen));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r2.destroyOnHide || panel_r5.isOpen);\n} }\nfunction NgbAlert_button_1_Template(rf, ctx) { if (rf & 1) {\n const _r2 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"button\", 1);\n ɵngcc0.ɵɵlistener(\"click\", function NgbAlert_button_1_Template_button_click_0_listener() { ɵngcc0.ɵɵrestoreView(_r2); const ctx_r1 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r1.closeHandler()); });\n ɵngcc0.ɵɵelementStart(1, \"span\", 2);\n ɵngcc0.ɵɵtext(2, \"\\u00D7\");\n ɵngcc0.ɵɵelementEnd()();\n} }\nconst _c3 = [\"*\"];\nfunction NgbCarousel_ol_0_li_1_Template(rf, ctx) { if (rf & 1) {\n const _r7 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"li\", 7);\n ɵngcc0.ɵɵlistener(\"click\", function NgbCarousel_ol_0_li_1_Template_li_click_0_listener() { const restoredCtx = ɵngcc0.ɵɵrestoreView(_r7); const slide_r5 = restoredCtx.$implicit; const ctx_r6 = ɵngcc0.ɵɵnextContext(2); ctx_r6.select(slide_r5.id); return ɵngcc0.ɵɵresetView(ctx_r6.pauseOnHover && ctx_r6.pause()); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const slide_r5 = ctx.$implicit;\n const ctx_r4 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵclassProp(\"active\", slide_r5.id === ctx_r4.activeId);\n ɵngcc0.ɵɵproperty(\"id\", slide_r5.id);\n} }\nfunction NgbCarousel_ol_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"ol\", 5);\n ɵngcc0.ɵɵtemplate(1, NgbCarousel_ol_0_li_1_Template, 1, 3, \"li\", 6);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r0.slides);\n} }\nfunction NgbCarousel_div_2_ng_template_1_Template(rf, ctx) { }\nfunction NgbCarousel_div_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 8);\n ɵngcc0.ɵɵtemplate(1, NgbCarousel_div_2_ng_template_1_Template, 0, 0, \"ng-template\", 9);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const slide_r8 = ctx.$implicit;\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵclassProp(\"active\", slide_r8.id === ctx_r1.activeId);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", slide_r8.tplRef);\n} }\nfunction NgbCarousel_a_3_Template(rf, ctx) { if (rf & 1) {\n const _r11 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"a\", 10);\n ɵngcc0.ɵɵlistener(\"click\", function NgbCarousel_a_3_Template_a_click_0_listener() { ɵngcc0.ɵɵrestoreView(_r11); const ctx_r10 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r10.prev()); });\n ɵngcc0.ɵɵelement(1, \"span\", 11);\n ɵngcc0.ɵɵelementStart(2, \"span\", 12);\n ɵngcc0.ɵɵi18n(3, 13);\n ɵngcc0.ɵɵelementEnd()();\n} }\nfunction NgbCarousel_a_4_Template(rf, ctx) { if (rf & 1) {\n const _r13 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"a\", 14);\n ɵngcc0.ɵɵlistener(\"click\", function NgbCarousel_a_4_Template_a_click_0_listener() { ɵngcc0.ɵɵrestoreView(_r13); const ctx_r12 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r12.next()); });\n ɵngcc0.ɵɵelement(1, \"span\", 15);\n ɵngcc0.ɵɵelementStart(2, \"span\", 12);\n ɵngcc0.ɵɵi18n(3, 16);\n ɵngcc0.ɵɵelementEnd()();\n} }\nconst _c8 = [\"months\"];\nfunction NgbDatepicker_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"div\", 7);\n} if (rf & 2) {\n const date_r6 = ctx.date;\n const currentMonth_r7 = ctx.currentMonth;\n const selected_r8 = ctx.selected;\n const disabled_r9 = ctx.disabled;\n const focused_r10 = ctx.focused;\n ɵngcc0.ɵɵproperty(\"date\", date_r6)(\"currentMonth\", currentMonth_r7)(\"selected\", selected_r8)(\"disabled\", disabled_r9)(\"focused\", focused_r10);\n} }\nfunction NgbDatepicker_ngb_datepicker_navigation_3_Template(rf, ctx) { if (rf & 1) {\n const _r12 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"ngb-datepicker-navigation\", 8);\n ɵngcc0.ɵɵlistener(\"navigate\", function NgbDatepicker_ngb_datepicker_navigation_3_Template_ngb_datepicker_navigation_navigate_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r12); const ctx_r11 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r11.onNavigateEvent($event)); })(\"select\", function NgbDatepicker_ngb_datepicker_navigation_3_Template_ngb_datepicker_navigation_select_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r12); const ctx_r13 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r13.onNavigateDateSelect($event)); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"date\", ctx_r2.model.firstDate)(\"months\", ctx_r2.model.months)(\"disabled\", ctx_r2.model.disabled)(\"showSelect\", ctx_r2.model.navigation === \"select\")(\"prevDisabled\", ctx_r2.model.prevDisabled)(\"nextDisabled\", ctx_r2.model.nextDisabled)(\"selectBoxes\", ctx_r2.model.selectBoxes);\n} }\nfunction NgbDatepicker_ng_template_6_div_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 12);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const month_r14 = ɵngcc0.ɵɵnextContext().$implicit;\n const ctx_r16 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate2(\" \", ctx_r16.i18n.getMonthFullName(month_r14.number, month_r14.year), \" \", ctx_r16.i18n.getYearNumerals(month_r14.year), \" \");\n} }\nfunction NgbDatepicker_ng_template_6_Template(rf, ctx) { if (rf & 1) {\n const _r19 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"div\", 9);\n ɵngcc0.ɵɵtemplate(1, NgbDatepicker_ng_template_6_div_1_Template, 2, 2, \"div\", 10);\n ɵngcc0.ɵɵelementStart(2, \"ngb-datepicker-month-view\", 11);\n ɵngcc0.ɵɵlistener(\"select\", function NgbDatepicker_ng_template_6_Template_ngb_datepicker_month_view_select_2_listener($event) { ɵngcc0.ɵɵrestoreView(_r19); const ctx_r18 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r18.onDateSelect($event)); });\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const month_r14 = ctx.$implicit;\n const ctx_r4 = ɵngcc0.ɵɵnextContext();\n const _r0 = ɵngcc0.ɵɵreference(1);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r4.navigation === \"none\" || ctx_r4.displayMonths > 1 && ctx_r4.navigation === \"select\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"month\", month_r14)(\"dayTemplate\", ctx_r4.dayTemplate || _r0)(\"showWeekdays\", ctx_r4.showWeekdays)(\"showWeekNumbers\", ctx_r4.showWeekNumbers);\n} }\nfunction NgbDatepicker_ng_template_7_Template(rf, ctx) { }\nfunction NgbDatepickerMonthView_div_0_div_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"div\", 5);\n} }\nfunction NgbDatepickerMonthView_div_0_div_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 6);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const w_r4 = ctx.$implicit;\n const ctx_r3 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", ctx_r3.i18n.getWeekdayShortName(w_r4), \" \");\n} }\nfunction NgbDatepickerMonthView_div_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 2);\n ɵngcc0.ɵɵtemplate(1, NgbDatepickerMonthView_div_0_div_1_Template, 1, 0, \"div\", 3);\n ɵngcc0.ɵɵtemplate(2, NgbDatepickerMonthView_div_0_div_2_Template, 2, 1, \"div\", 4);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r0.showWeekNumbers);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r0.month.weekdays);\n} }\nfunction NgbDatepickerMonthView_ng_template_1_div_0_div_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 11);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const week_r5 = ɵngcc0.ɵɵnextContext(2).$implicit;\n const ctx_r7 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx_r7.i18n.getWeekNumerals(week_r5.number));\n} }\nfunction NgbDatepickerMonthView_ng_template_1_div_0_div_2_ng_template_1_ng_template_0_Template(rf, ctx) { }\nfunction NgbDatepickerMonthView_ng_template_1_div_0_div_2_ng_template_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, NgbDatepickerMonthView_ng_template_1_div_0_div_2_ng_template_1_ng_template_0_Template, 0, 0, \"ng-template\", 14);\n} if (rf & 2) {\n const day_r10 = ɵngcc0.ɵɵnextContext().$implicit;\n const ctx_r11 = ɵngcc0.ɵɵnextContext(3);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r11.dayTemplate)(\"ngTemplateOutletContext\", day_r10.context);\n} }\nfunction NgbDatepickerMonthView_ng_template_1_div_0_div_2_Template(rf, ctx) { if (rf & 1) {\n const _r15 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"div\", 12);\n ɵngcc0.ɵɵlistener(\"click\", function NgbDatepickerMonthView_ng_template_1_div_0_div_2_Template_div_click_0_listener() { const restoredCtx = ɵngcc0.ɵɵrestoreView(_r15); const day_r10 = restoredCtx.$implicit; const ctx_r14 = ɵngcc0.ɵɵnextContext(3); return ɵngcc0.ɵɵresetView(ctx_r14.doSelect(day_r10)); });\n ɵngcc0.ɵɵtemplate(1, NgbDatepickerMonthView_ng_template_1_div_0_div_2_ng_template_1_Template, 1, 2, \"ng-template\", 13);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const day_r10 = ctx.$implicit;\n ɵngcc0.ɵɵclassProp(\"disabled\", day_r10.context.disabled)(\"hidden\", day_r10.hidden)(\"ngb-dp-today\", day_r10.context.today);\n ɵngcc0.ɵɵproperty(\"tabindex\", day_r10.tabindex);\n ɵngcc0.ɵɵattribute(\"aria-label\", day_r10.ariaLabel);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !day_r10.hidden);\n} }\nfunction NgbDatepickerMonthView_ng_template_1_div_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 8);\n ɵngcc0.ɵɵtemplate(1, NgbDatepickerMonthView_ng_template_1_div_0_div_1_Template, 2, 1, \"div\", 9);\n ɵngcc0.ɵɵtemplate(2, NgbDatepickerMonthView_ng_template_1_div_0_div_2_Template, 2, 9, \"div\", 10);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const week_r5 = ɵngcc0.ɵɵnextContext().$implicit;\n const ctx_r6 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r6.showWeekNumbers);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", week_r5.days);\n} }\nfunction NgbDatepickerMonthView_ng_template_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, NgbDatepickerMonthView_ng_template_1_div_0_Template, 3, 2, \"div\", 7);\n} if (rf & 2) {\n const week_r5 = ctx.$implicit;\n ɵngcc0.ɵɵproperty(\"ngIf\", !week_r5.collapsed);\n} }\nfunction NgbDatepickerNavigation_ngb_datepicker_navigation_select_3_Template(rf, ctx) { if (rf & 1) {\n const _r3 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"ngb-datepicker-navigation-select\", 7);\n ɵngcc0.ɵɵlistener(\"select\", function NgbDatepickerNavigation_ngb_datepicker_navigation_select_3_Template_ngb_datepicker_navigation_select_select_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r3); const ctx_r2 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r2.select.emit($event)); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"date\", ctx_r0.date)(\"disabled\", ctx_r0.disabled)(\"months\", ctx_r0.selectBoxes.months)(\"years\", ctx_r0.selectBoxes.years);\n} }\nfunction NgbDatepickerNavigation_4_ng_template_0_div_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"div\", 0);\n} }\nfunction NgbDatepickerNavigation_4_ng_template_0_div_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"div\", 0);\n} }\nfunction NgbDatepickerNavigation_4_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, NgbDatepickerNavigation_4_ng_template_0_div_0_Template, 1, 0, \"div\", 9);\n ɵngcc0.ɵɵelementStart(1, \"div\", 10);\n ɵngcc0.ɵɵtext(2);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(3, NgbDatepickerNavigation_4_ng_template_0_div_3_Template, 1, 0, \"div\", 9);\n} if (rf & 2) {\n const month_r5 = ctx.$implicit;\n const i_r6 = ctx.index;\n const ctx_r4 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", i_r6 > 0);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵtextInterpolate2(\" \", ctx_r4.i18n.getMonthFullName(month_r5.number, month_r5.year), \" \", ctx_r4.i18n.getYearNumerals(month_r5.year), \" \");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", i_r6 !== ctx_r4.months.length - 1);\n} }\nfunction NgbDatepickerNavigation_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, NgbDatepickerNavigation_4_ng_template_0_Template, 4, 4, \"ng-template\", 8);\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r1.months);\n} }\nconst _c17 = [\"ngbDatepickerDayView\", \"\"];\nfunction NgbDatepickerNavigationSelect_option_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"option\", 3);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const m_r2 = ctx.$implicit;\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"value\", m_r2);\n ɵngcc0.ɵɵattribute(\"aria-label\", ctx_r0.i18n.getMonthFullName(m_r2, ctx_r0.date == null ? null : ctx_r0.date.year));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx_r0.i18n.getMonthShortName(m_r2, ctx_r0.date == null ? null : ctx_r0.date.year));\n} }\nfunction NgbDatepickerNavigationSelect_option_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"option\", 3);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const y_r3 = ctx.$implicit;\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"value\", y_r3);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(ctx_r1.i18n.getYearNumerals(y_r3));\n} }\nfunction NgbPagination_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 8);\n ɵngcc0.ɵɵi18n(1, 9);\n ɵngcc0.ɵɵelementEnd();\n} }\nfunction NgbPagination_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 8);\n ɵngcc0.ɵɵi18n(1, 10);\n ɵngcc0.ɵɵelementEnd();\n} }\nfunction NgbPagination_ng_template_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 8);\n ɵngcc0.ɵɵi18n(1, 11);\n ɵngcc0.ɵɵelementEnd();\n} }\nfunction NgbPagination_ng_template_6_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 8);\n ɵngcc0.ɵɵi18n(1, 12);\n ɵngcc0.ɵɵelementEnd();\n} }\nfunction NgbPagination_ng_template_8_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtext(0, \"...\");\n} }\nfunction NgbPagination_ng_template_10_span_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\", 14);\n ɵngcc0.ɵɵtext(1, \"(current)\");\n ɵngcc0.ɵɵelementEnd();\n} }\nfunction NgbPagination_ng_template_10_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtext(0);\n ɵngcc0.ɵɵtemplate(1, NgbPagination_ng_template_10_span_1_Template, 2, 0, \"span\", 13);\n} if (rf & 2) {\n const page_r17 = ctx.$implicit;\n const currentPage_r18 = ctx.currentPage;\n ɵngcc0.ɵɵtextInterpolate1(\" \", page_r17, \" \");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", page_r17 === currentPage_r18);\n} }\nfunction NgbPagination_li_13_ng_template_2_Template(rf, ctx) { }\nconst _c36 = function (a0, a1) { return { disabled: a0, currentPage: a1 }; };\nfunction NgbPagination_li_13_Template(rf, ctx) { if (rf & 1) {\n const _r22 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"li\", 15)(1, \"a\", 16);\n ɵngcc0.ɵɵlistener(\"click\", function NgbPagination_li_13_Template_a_click_1_listener($event) { ɵngcc0.ɵɵrestoreView(_r22); const ctx_r21 = ɵngcc0.ɵɵnextContext(); ctx_r21.selectPage(1); return ɵngcc0.ɵɵresetView($event.preventDefault()); });\n ɵngcc0.ɵɵtemplate(2, NgbPagination_li_13_ng_template_2_Template, 0, 0, \"ng-template\", 17);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r12 = ɵngcc0.ɵɵnextContext();\n const _r0 = ɵngcc0.ɵɵreference(1);\n ɵngcc0.ɵɵclassProp(\"disabled\", ctx_r12.previousDisabled());\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵattribute(\"tabindex\", ctx_r12.hasPrevious() ? null : \"-1\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", (ctx_r12.tplFirst == null ? null : ctx_r12.tplFirst.templateRef) || _r0)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction2(5, _c36, ctx_r12.previousDisabled(), ctx_r12.page));\n} }\nfunction NgbPagination_li_14_ng_template_2_Template(rf, ctx) { }\nconst _c39 = function (a0) { return { disabled: a0 }; };\nfunction NgbPagination_li_14_Template(rf, ctx) { if (rf & 1) {\n const _r25 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"li\", 15)(1, \"a\", 18);\n ɵngcc0.ɵɵlistener(\"click\", function NgbPagination_li_14_Template_a_click_1_listener($event) { ɵngcc0.ɵɵrestoreView(_r25); const ctx_r24 = ɵngcc0.ɵɵnextContext(); ctx_r24.selectPage(ctx_r24.page - 1); return ɵngcc0.ɵɵresetView($event.preventDefault()); });\n ɵngcc0.ɵɵtemplate(2, NgbPagination_li_14_ng_template_2_Template, 0, 0, \"ng-template\", 17);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r13 = ɵngcc0.ɵɵnextContext();\n const _r2 = ɵngcc0.ɵɵreference(3);\n ɵngcc0.ɵɵclassProp(\"disabled\", ctx_r13.previousDisabled());\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵattribute(\"tabindex\", ctx_r13.hasPrevious() ? null : \"-1\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", (ctx_r13.tplPrevious == null ? null : ctx_r13.tplPrevious.templateRef) || _r2)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction1(5, _c39, ctx_r13.previousDisabled()));\n} }\nfunction NgbPagination_li_15_a_1_ng_template_1_Template(rf, ctx) { }\nconst _c40 = function (a1) { return { disabled: true, currentPage: a1 }; };\nfunction NgbPagination_li_15_a_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"a\", 21);\n ɵngcc0.ɵɵtemplate(1, NgbPagination_li_15_a_1_ng_template_1_Template, 0, 0, \"ng-template\", 17);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r27 = ɵngcc0.ɵɵnextContext(2);\n const _r8 = ɵngcc0.ɵɵreference(9);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", (ctx_r27.tplEllipsis == null ? null : ctx_r27.tplEllipsis.templateRef) || _r8)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction1(2, _c40, ctx_r27.page));\n} }\nfunction NgbPagination_li_15_a_2_ng_template_1_Template(rf, ctx) { }\nconst _c41 = function (a0, a1, a2) { return { disabled: a0, $implicit: a1, currentPage: a2 }; };\nfunction NgbPagination_li_15_a_2_Template(rf, ctx) { if (rf & 1) {\n const _r33 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"a\", 22);\n ɵngcc0.ɵɵlistener(\"click\", function NgbPagination_li_15_a_2_Template_a_click_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r33); const pageNumber_r26 = ɵngcc0.ɵɵnextContext().$implicit; const ctx_r31 = ɵngcc0.ɵɵnextContext(); ctx_r31.selectPage(pageNumber_r26); return ɵngcc0.ɵɵresetView($event.preventDefault()); });\n ɵngcc0.ɵɵtemplate(1, NgbPagination_li_15_a_2_ng_template_1_Template, 0, 0, \"ng-template\", 17);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const pageNumber_r26 = ɵngcc0.ɵɵnextContext().$implicit;\n const ctx_r28 = ɵngcc0.ɵɵnextContext();\n const _r10 = ɵngcc0.ɵɵreference(11);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", (ctx_r28.tplNumber == null ? null : ctx_r28.tplNumber.templateRef) || _r10)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction3(2, _c41, ctx_r28.disabled, pageNumber_r26, ctx_r28.page));\n} }\nfunction NgbPagination_li_15_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"li\", 15);\n ɵngcc0.ɵɵtemplate(1, NgbPagination_li_15_a_1_Template, 2, 4, \"a\", 19);\n ɵngcc0.ɵɵtemplate(2, NgbPagination_li_15_a_2_Template, 2, 6, \"a\", 20);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const pageNumber_r26 = ctx.$implicit;\n const ctx_r14 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵclassProp(\"active\", pageNumber_r26 === ctx_r14.page)(\"disabled\", ctx_r14.isEllipsis(pageNumber_r26) || ctx_r14.disabled);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r14.isEllipsis(pageNumber_r26));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r14.isEllipsis(pageNumber_r26));\n} }\nfunction NgbPagination_li_16_ng_template_2_Template(rf, ctx) { }\nfunction NgbPagination_li_16_Template(rf, ctx) { if (rf & 1) {\n const _r37 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"li\", 15)(1, \"a\", 23);\n ɵngcc0.ɵɵlistener(\"click\", function NgbPagination_li_16_Template_a_click_1_listener($event) { ɵngcc0.ɵɵrestoreView(_r37); const ctx_r36 = ɵngcc0.ɵɵnextContext(); ctx_r36.selectPage(ctx_r36.page + 1); return ɵngcc0.ɵɵresetView($event.preventDefault()); });\n ɵngcc0.ɵɵtemplate(2, NgbPagination_li_16_ng_template_2_Template, 0, 0, \"ng-template\", 17);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r15 = ɵngcc0.ɵɵnextContext();\n const _r4 = ɵngcc0.ɵɵreference(5);\n ɵngcc0.ɵɵclassProp(\"disabled\", ctx_r15.nextDisabled());\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵattribute(\"tabindex\", ctx_r15.hasNext() ? null : \"-1\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", (ctx_r15.tplNext == null ? null : ctx_r15.tplNext.templateRef) || _r4)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction2(5, _c36, ctx_r15.nextDisabled(), ctx_r15.page));\n} }\nfunction NgbPagination_li_17_ng_template_2_Template(rf, ctx) { }\nfunction NgbPagination_li_17_Template(rf, ctx) { if (rf & 1) {\n const _r40 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"li\", 15)(1, \"a\", 24);\n ɵngcc0.ɵɵlistener(\"click\", function NgbPagination_li_17_Template_a_click_1_listener($event) { ɵngcc0.ɵɵrestoreView(_r40); const ctx_r39 = ɵngcc0.ɵɵnextContext(); ctx_r39.selectPage(ctx_r39.pageCount); return ɵngcc0.ɵɵresetView($event.preventDefault()); });\n ɵngcc0.ɵɵtemplate(2, NgbPagination_li_17_ng_template_2_Template, 0, 0, \"ng-template\", 17);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r16 = ɵngcc0.ɵɵnextContext();\n const _r6 = ɵngcc0.ɵɵreference(7);\n ɵngcc0.ɵɵclassProp(\"disabled\", ctx_r16.nextDisabled());\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵattribute(\"tabindex\", ctx_r16.hasNext() ? null : \"-1\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", (ctx_r16.tplLast == null ? null : ctx_r16.tplLast.templateRef) || _r6)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction2(5, _c36, ctx_r16.nextDisabled(), ctx_r16.page));\n} }\nfunction NgbPopoverWindow_h3_1_ng_template_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtext(0);\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵtextInterpolate(ctx_r2.title);\n} }\nfunction NgbPopoverWindow_h3_1_ng_template_3_Template(rf, ctx) { }\nfunction NgbPopoverWindow_h3_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"h3\", 3);\n ɵngcc0.ɵɵtemplate(1, NgbPopoverWindow_h3_1_ng_template_1_Template, 1, 1, \"ng-template\", null, 4, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(3, NgbPopoverWindow_h3_1_ng_template_3_Template, 0, 0, \"ng-template\", 5);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const _r1 = ɵngcc0.ɵɵreference(2);\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.isTitleTemplate() ? ctx_r0.title : _r1)(\"ngTemplateOutletContext\", ctx_r0.context);\n} }\nfunction NgbProgressbar_span_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\");\n ɵngcc0.ɵɵi18n(1, 3);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵi18nExp(ctx_r0.getPercentValue());\n ɵngcc0.ɵɵi18nApply(1);\n} }\nfunction NgbRating_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtext(0);\n} if (rf & 2) {\n const fill_r3 = ctx.fill;\n ɵngcc0.ɵɵtextInterpolate(fill_r3 === 100 ? \"\\u2605\" : \"\\u2606\");\n} }\nfunction NgbRating_ng_template_2_ng_template_3_Template(rf, ctx) { }\nfunction NgbRating_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n const _r7 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"span\", 2);\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(2, \"span\", 3);\n ɵngcc0.ɵɵlistener(\"mouseenter\", function NgbRating_ng_template_2_Template_span_mouseenter_2_listener() { const restoredCtx = ɵngcc0.ɵɵrestoreView(_r7); const index_r4 = restoredCtx.index; const ctx_r6 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r6.enter(index_r4 + 1)); })(\"click\", function NgbRating_ng_template_2_Template_span_click_2_listener() { const restoredCtx = ɵngcc0.ɵɵrestoreView(_r7); const index_r4 = restoredCtx.index; const ctx_r8 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r8.handleClick(index_r4 + 1)); });\n ɵngcc0.ɵɵtemplate(3, NgbRating_ng_template_2_ng_template_3_Template, 0, 0, \"ng-template\", 4);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const index_r4 = ctx.index;\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n const _r0 = ɵngcc0.ɵɵreference(1);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\"(\", index_r4 < ctx_r2.nextRate ? \"*\" : \" \", \")\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵstyleProp(\"cursor\", ctx_r2.readonly || ctx_r2.disabled ? \"default\" : \"pointer\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r2.starTemplate || ctx_r2.starTemplateFromContent || _r0)(\"ngTemplateOutletContext\", ctx_r2.contexts[index_r4]);\n} }\nfunction NgbTabset_li_1_ng_template_3_Template(rf, ctx) { }\nfunction NgbTabset_li_1_Template(rf, ctx) { if (rf & 1) {\n const _r5 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"li\", 4)(1, \"a\", 5);\n ɵngcc0.ɵɵlistener(\"click\", function NgbTabset_li_1_Template_a_click_1_listener($event) { const restoredCtx = ɵngcc0.ɵɵrestoreView(_r5); const tab_r2 = restoredCtx.$implicit; const ctx_r4 = ɵngcc0.ɵɵnextContext(); ctx_r4.select(tab_r2.id); return ɵngcc0.ɵɵresetView($event.preventDefault()); });\n ɵngcc0.ɵɵtext(2);\n ɵngcc0.ɵɵtemplate(3, NgbTabset_li_1_ng_template_3_Template, 0, 0, \"ng-template\", 6);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const tab_r2 = ctx.$implicit;\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵclassProp(\"active\", tab_r2.id === ctx_r0.activeId)(\"disabled\", tab_r2.disabled);\n ɵngcc0.ɵɵproperty(\"id\", tab_r2.id);\n ɵngcc0.ɵɵattribute(\"tabindex\", tab_r2.disabled ? \"-1\" : undefined)(\"aria-controls\", !ctx_r0.destroyOnHide || tab_r2.id === ctx_r0.activeId ? tab_r2.id + \"-panel\" : null)(\"aria-selected\", tab_r2.id === ctx_r0.activeId)(\"aria-disabled\", tab_r2.disabled);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate1(\" \", tab_r2.title, \"\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", tab_r2.titleTpl == null ? null : tab_r2.titleTpl.templateRef);\n} }\nfunction NgbTabset_ng_template_3_div_0_ng_template_1_Template(rf, ctx) { }\nfunction NgbTabset_ng_template_3_div_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 8);\n ɵngcc0.ɵɵtemplate(1, NgbTabset_ng_template_3_div_0_ng_template_1_Template, 0, 0, \"ng-template\", 6);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const tab_r6 = ɵngcc0.ɵɵnextContext().$implicit;\n const ctx_r7 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵclassMapInterpolate1(\"tab-pane \", tab_r6.id === ctx_r7.activeId ? \"active\" : null, \"\");\n ɵngcc0.ɵɵpropertyInterpolate1(\"id\", \"\", tab_r6.id, \"-panel\");\n ɵngcc0.ɵɵattribute(\"aria-labelledby\", tab_r6.id);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", tab_r6.contentTpl == null ? null : tab_r6.contentTpl.templateRef);\n} }\nfunction NgbTabset_ng_template_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, NgbTabset_ng_template_3_div_0_Template, 2, 6, \"div\", 7);\n} if (rf & 2) {\n const tab_r6 = ctx.$implicit;\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r1.destroyOnHide || tab_r6.id === ctx_r1.activeId);\n} }\nfunction NgbTimepicker_button_3_Template(rf, ctx) { if (rf & 1) {\n const _r9 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"button\", 11);\n ɵngcc0.ɵɵlistener(\"click\", function NgbTimepicker_button_3_Template_button_click_0_listener() { ɵngcc0.ɵɵrestoreView(_r9); const ctx_r8 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r8.changeHour(ctx_r8.hourStep)); });\n ɵngcc0.ɵɵelement(1, \"span\", 12);\n ɵngcc0.ɵɵelementStart(2, \"span\", 13);\n ɵngcc0.ɵɵi18n(3, 14);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵclassProp(\"btn-sm\", ctx_r0.isSmallSize)(\"btn-lg\", ctx_r0.isLargeSize)(\"disabled\", ctx_r0.disabled);\n ɵngcc0.ɵɵproperty(\"disabled\", ctx_r0.disabled);\n} }\nfunction NgbTimepicker_button_5_Template(rf, ctx) { if (rf & 1) {\n const _r11 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"button\", 11);\n ɵngcc0.ɵɵlistener(\"click\", function NgbTimepicker_button_5_Template_button_click_0_listener() { ɵngcc0.ɵɵrestoreView(_r11); const ctx_r10 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r10.changeHour(-ctx_r10.hourStep)); });\n ɵngcc0.ɵɵelement(1, \"span\", 15);\n ɵngcc0.ɵɵelementStart(2, \"span\", 13);\n ɵngcc0.ɵɵi18n(3, 16);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵclassProp(\"btn-sm\", ctx_r1.isSmallSize)(\"btn-lg\", ctx_r1.isLargeSize)(\"disabled\", ctx_r1.disabled);\n ɵngcc0.ɵɵproperty(\"disabled\", ctx_r1.disabled);\n} }\nfunction NgbTimepicker_button_9_Template(rf, ctx) { if (rf & 1) {\n const _r13 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"button\", 11);\n ɵngcc0.ɵɵlistener(\"click\", function NgbTimepicker_button_9_Template_button_click_0_listener() { ɵngcc0.ɵɵrestoreView(_r13); const ctx_r12 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r12.changeMinute(ctx_r12.minuteStep)); });\n ɵngcc0.ɵɵelement(1, \"span\", 12);\n ɵngcc0.ɵɵelementStart(2, \"span\", 13);\n ɵngcc0.ɵɵi18n(3, 17);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵclassProp(\"btn-sm\", ctx_r2.isSmallSize)(\"btn-lg\", ctx_r2.isLargeSize)(\"disabled\", ctx_r2.disabled);\n ɵngcc0.ɵɵproperty(\"disabled\", ctx_r2.disabled);\n} }\nfunction NgbTimepicker_button_11_Template(rf, ctx) { if (rf & 1) {\n const _r15 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"button\", 11);\n ɵngcc0.ɵɵlistener(\"click\", function NgbTimepicker_button_11_Template_button_click_0_listener() { ɵngcc0.ɵɵrestoreView(_r15); const ctx_r14 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r14.changeMinute(-ctx_r14.minuteStep)); });\n ɵngcc0.ɵɵelement(1, \"span\", 15);\n ɵngcc0.ɵɵelementStart(2, \"span\", 13);\n ɵngcc0.ɵɵi18n(3, 18);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵclassProp(\"btn-sm\", ctx_r3.isSmallSize)(\"btn-lg\", ctx_r3.isLargeSize)(\"disabled\", ctx_r3.disabled);\n ɵngcc0.ɵɵproperty(\"disabled\", ctx_r3.disabled);\n} }\nfunction NgbTimepicker_div_12_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 5);\n ɵngcc0.ɵɵtext(1, \":\");\n ɵngcc0.ɵɵelementEnd();\n} }\nfunction NgbTimepicker_div_13_button_1_Template(rf, ctx) { if (rf & 1) {\n const _r19 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"button\", 11);\n ɵngcc0.ɵɵlistener(\"click\", function NgbTimepicker_div_13_button_1_Template_button_click_0_listener() { ɵngcc0.ɵɵrestoreView(_r19); const ctx_r18 = ɵngcc0.ɵɵnextContext(2); return ɵngcc0.ɵɵresetView(ctx_r18.changeSecond(ctx_r18.secondStep)); });\n ɵngcc0.ɵɵelement(1, \"span\", 12);\n ɵngcc0.ɵɵelementStart(2, \"span\", 13);\n ɵngcc0.ɵɵi18n(3, 21);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r16 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵclassProp(\"btn-sm\", ctx_r16.isSmallSize)(\"btn-lg\", ctx_r16.isLargeSize)(\"disabled\", ctx_r16.disabled);\n ɵngcc0.ɵɵproperty(\"disabled\", ctx_r16.disabled);\n} }\nfunction NgbTimepicker_div_13_button_3_Template(rf, ctx) { if (rf & 1) {\n const _r21 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"button\", 11);\n ɵngcc0.ɵɵlistener(\"click\", function NgbTimepicker_div_13_button_3_Template_button_click_0_listener() { ɵngcc0.ɵɵrestoreView(_r21); const ctx_r20 = ɵngcc0.ɵɵnextContext(2); return ɵngcc0.ɵɵresetView(ctx_r20.changeSecond(-ctx_r20.secondStep)); });\n ɵngcc0.ɵɵelement(1, \"span\", 15);\n ɵngcc0.ɵɵelementStart(2, \"span\", 13);\n ɵngcc0.ɵɵi18n(3, 22);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r17 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵclassProp(\"btn-sm\", ctx_r17.isSmallSize)(\"btn-lg\", ctx_r17.isLargeSize)(\"disabled\", ctx_r17.disabled);\n ɵngcc0.ɵɵproperty(\"disabled\", ctx_r17.disabled);\n} }\nfunction NgbTimepicker_div_13_Template(rf, ctx) { if (rf & 1) {\n const _r23 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"div\", 19);\n ɵngcc0.ɵɵtemplate(1, NgbTimepicker_div_13_button_1_Template, 4, 7, \"button\", 3);\n ɵngcc0.ɵɵelementStart(2, \"input\", 20);\n ɵngcc0.ɵɵlistener(\"change\", function NgbTimepicker_div_13_Template_input_change_2_listener($event) { ɵngcc0.ɵɵrestoreView(_r23); const ctx_r22 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r22.updateSecond($event.target.value)); })(\"keydown.ArrowUp\", function NgbTimepicker_div_13_Template_input_keydown_ArrowUp_2_listener($event) { ɵngcc0.ɵɵrestoreView(_r23); const ctx_r24 = ɵngcc0.ɵɵnextContext(); ctx_r24.changeSecond(ctx_r24.secondStep); return ɵngcc0.ɵɵresetView($event.preventDefault()); })(\"keydown.ArrowDown\", function NgbTimepicker_div_13_Template_input_keydown_ArrowDown_2_listener($event) { ɵngcc0.ɵɵrestoreView(_r23); const ctx_r25 = ɵngcc0.ɵɵnextContext(); ctx_r25.changeSecond(-ctx_r25.secondStep); return ɵngcc0.ɵɵresetView($event.preventDefault()); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(3, NgbTimepicker_div_13_button_3_Template, 4, 7, \"button\", 3);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r5 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r5.spinners);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵclassProp(\"form-control-sm\", ctx_r5.isSmallSize)(\"form-control-lg\", ctx_r5.isLargeSize);\n ɵngcc0.ɵɵproperty(\"value\", ctx_r5.formatMinSec(ctx_r5.model == null ? null : ctx_r5.model.second))(\"readOnly\", ctx_r5.readonlyInputs)(\"disabled\", ctx_r5.disabled);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r5.spinners);\n} }\nfunction NgbTimepicker_div_14_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"div\", 5);\n} }\nfunction NgbTimepicker_div_15_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵi18n(1, 27);\n ɵngcc0.ɵɵelementContainerEnd();\n} }\nfunction NgbTimepicker_div_15_ng_template_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵi18n(0, 28);\n} }\nfunction NgbTimepicker_div_15_Template(rf, ctx) { if (rf & 1) {\n const _r30 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"div\", 23)(1, \"button\", 24);\n ɵngcc0.ɵɵlistener(\"click\", function NgbTimepicker_div_15_Template_button_click_1_listener() { ɵngcc0.ɵɵrestoreView(_r30); const ctx_r29 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r29.toggleMeridian()); });\n ɵngcc0.ɵɵtemplate(2, NgbTimepicker_div_15_ng_container_2_Template, 2, 0, \"ng-container\", 25);\n ɵngcc0.ɵɵtemplate(3, NgbTimepicker_div_15_ng_template_3_Template, 1, 0, \"ng-template\", null, 26, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const _r27 = ɵngcc0.ɵɵreference(4);\n const ctx_r7 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵclassProp(\"btn-sm\", ctx_r7.isSmallSize)(\"btn-lg\", ctx_r7.isLargeSize)(\"disabled\", ctx_r7.disabled);\n ɵngcc0.ɵɵproperty(\"disabled\", ctx_r7.disabled);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", (ctx_r7.model == null ? null : ctx_r7.model.hour) >= 12)(\"ngIfElse\", _r27);\n} }\nfunction NgbHighlight_ng_template_0_span_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\");\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const part_r1 = ɵngcc0.ɵɵnextContext().$implicit;\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵclassMap(ctx_r3.highlightClass);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate(part_r1);\n} }\nfunction NgbHighlight_ng_template_0_ng_template_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtext(0);\n} if (rf & 2) {\n const part_r1 = ɵngcc0.ɵɵnextContext().$implicit;\n ɵngcc0.ɵɵtextInterpolate(part_r1);\n} }\nfunction NgbHighlight_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, NgbHighlight_ng_template_0_span_0_Template, 2, 3, \"span\", 1);\n ɵngcc0.ɵɵtemplate(1, NgbHighlight_ng_template_0_ng_template_1_Template, 1, 1, \"ng-template\", null, 2, ɵngcc0.ɵɵtemplateRefExtractor);\n} if (rf & 2) {\n const isOdd_r2 = ctx.odd;\n const _r4 = ɵngcc0.ɵɵreference(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", isOdd_r2)(\"ngIfElse\", _r4);\n} }\nfunction NgbTypeaheadWindow_ng_template_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"ngb-highlight\", 2);\n} if (rf & 2) {\n const result_r3 = ctx.result;\n const term_r4 = ctx.term;\n const formatter_r5 = ctx.formatter;\n ɵngcc0.ɵɵproperty(\"result\", formatter_r5(result_r3))(\"term\", term_r4);\n} }\nfunction NgbTypeaheadWindow_ng_template_2_ng_template_1_Template(rf, ctx) { }\nconst _c76 = function (a0, a1, a2) { return { result: a0, term: a1, formatter: a2 }; };\nfunction NgbTypeaheadWindow_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n const _r10 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"button\", 3);\n ɵngcc0.ɵɵlistener(\"mouseenter\", function NgbTypeaheadWindow_ng_template_2_Template_button_mouseenter_0_listener() { const restoredCtx = ɵngcc0.ɵɵrestoreView(_r10); const idx_r7 = restoredCtx.index; const ctx_r9 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r9.markActive(idx_r7)); })(\"click\", function NgbTypeaheadWindow_ng_template_2_Template_button_click_0_listener() { const restoredCtx = ɵngcc0.ɵɵrestoreView(_r10); const result_r6 = restoredCtx.$implicit; const ctx_r11 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r11.select(result_r6)); });\n ɵngcc0.ɵɵtemplate(1, NgbTypeaheadWindow_ng_template_2_ng_template_1_Template, 0, 0, \"ng-template\", 4);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const result_r6 = ctx.$implicit;\n const idx_r7 = ctx.index;\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n const _r0 = ɵngcc0.ɵɵreference(1);\n ɵngcc0.ɵɵclassProp(\"active\", idx_r7 === ctx_r2.activeIdx);\n ɵngcc0.ɵɵproperty(\"id\", ctx_r2.id + \"-\" + idx_r7);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r2.resultTemplate || _r0)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction3(5, _c76, result_r6, ctx_r2.term, ctx_r2.formatter));\n} }\nfunction toInteger(value) {\n return parseInt(`${value}`, 10);\n}\n/**\n * @param {?} value\n * @return {?}\n */\nfunction toString(value) {\n return (value !== undefined && value !== null) ? `${value}` : '';\n}\n/**\n * @param {?} value\n * @param {?} max\n * @param {?=} min\n * @return {?}\n */\nfunction getValueInRange(value, max, min = 0) {\n return Math.max(Math.min(value, max), min);\n}\n/**\n * @param {?} value\n * @return {?}\n */\nfunction isString(value) {\n return typeof value === 'string';\n}\n/**\n * @param {?} value\n * @return {?}\n */\nfunction isNumber(value) {\n return !isNaN(toInteger(value));\n}\n/**\n * @param {?} value\n * @return {?}\n */\nfunction isInteger(value) {\n return typeof value === 'number' && isFinite(value) && Math.floor(value) === value;\n}\n/**\n * @param {?} value\n * @return {?}\n */\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\n/**\n * @param {?} value\n * @return {?}\n */\nfunction padNumber(value) {\n if (isNumber(value)) {\n return `0${value}`.slice(-2);\n }\n else {\n return '';\n }\n}\n/**\n * @param {?} text\n * @return {?}\n */\nfunction regExpEscape(text) {\n return text.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n}\n/**\n * @param {?} element\n * @param {?} className\n * @return {?}\n */\nfunction hasClassName(element, className) {\n return element && element.className && element.className.split &&\n element.className.split(/\\s+/).indexOf(className) >= 0;\n}\nif (typeof Element !== 'undefined' && !Element.prototype.closest) {\n // Polyfill for ie10+\n if (!Element.prototype.matches) {\n // IE uses the non-standard name: msMatchesSelector\n Element.prototype.matches = ((/** @type {?} */ (Element.prototype))).msMatchesSelector || Element.prototype.webkitMatchesSelector;\n }\n Element.prototype.closest = function (s) {\n /** @type {?} */\n let el = this;\n if (!document.documentElement.contains(el)) {\n return null;\n }\n do {\n if (el.matches(s)) {\n return el;\n }\n el = el.parentElement || el.parentNode;\n } while (el !== null && el.nodeType === 1);\n return null;\n };\n}\n/**\n * @param {?} element\n * @param {?} selector\n * @return {?}\n */\nfunction closest(element, selector) {\n if (!selector) {\n return null;\n }\n return element.closest(selector);\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/**\n * A configuration service for the [NgbAccordion](#/components/accordion/api#NgbAccordion) component.\n *\n * You can inject this service, typically in your root component, and customize its properties\n * to provide default values for all accordions used in the application.\n */\nclass NgbAccordionConfig {\n constructor() {\n this.closeOthers = false;\n }\n}\nNgbAccordionConfig.ɵfac = function NgbAccordionConfig_Factory(t) { return new (t || NgbAccordionConfig)(); };\nNgbAccordionConfig.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NgbAccordionConfig, factory: NgbAccordionConfig.ɵfac, providedIn: 'root' });\n/** @nocollapse */ NgbAccordionConfig.ngInjectableDef = defineInjectable({ factory: function NgbAccordionConfig_Factory() { return new NgbAccordionConfig(); }, token: NgbAccordionConfig, providedIn: \"root\" });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbAccordionConfig, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () { return []; }, null); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/** @type {?} */\nlet nextId = 0;\n/**\n * A directive to put on a button that toggles panel opening and closing.\n *\n * To be used inside the [`NgbPanelHeader`](#/components/accordion/api#NgbPanelHeader)\n *\n * \\@since 4.1.0\n */\nclass NgbPanelToggle {\n /**\n * @param {?} accordion\n * @param {?} panel\n */\n constructor(accordion, panel) {\n this.accordion = accordion;\n this.panel = panel;\n }\n /**\n * @param {?} panel\n * @return {?}\n */\n set ngbPanelToggle(panel) {\n if (panel) {\n this.panel = panel;\n }\n }\n}\nNgbPanelToggle.ɵfac = function NgbPanelToggle_Factory(t) { return new (t || NgbPanelToggle)(ɵngcc0.ɵɵdirectiveInject(forwardRef(() => NgbAccordion)), ɵngcc0.ɵɵdirectiveInject(forwardRef(() => NgbPanel), 9)); };\nNgbPanelToggle.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbPanelToggle, selectors: [[\"button\", \"ngbPanelToggle\", \"\"]], hostAttrs: [\"type\", \"button\"], hostVars: 5, hostBindings: function NgbPanelToggle_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"click\", function NgbPanelToggle_click_HostBindingHandler() { return ctx.accordion.toggle(ctx.panel.id); });\n } if (rf & 2) {\n ɵngcc0.ɵɵhostProperty(\"disabled\", ctx.panel.disabled);\n ɵngcc0.ɵɵattribute(\"aria-expanded\", ctx.panel.isOpen)(\"aria-controls\", ctx.panel.id);\n ɵngcc0.ɵɵclassProp(\"collapsed\", !ctx.panel.isOpen);\n } }, inputs: { ngbPanelToggle: \"ngbPanelToggle\" } });\n/** @nocollapse */\nNgbPanelToggle.ctorParameters = () => [\n { type: NgbAccordion, decorators: [{ type: Inject, args: [forwardRef(() => NgbAccordion),] }] },\n { type: NgbPanel, decorators: [{ type: Optional }, { type: Host }, { type: Inject, args: [forwardRef(() => NgbPanel),] }] }\n];\nNgbPanelToggle.propDecorators = {\n ngbPanelToggle: [{ type: Input }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPanelToggle, [{\n type: Directive,\n args: [{\n selector: 'button[ngbPanelToggle]',\n host: {\n 'type': 'button',\n '[disabled]': 'panel.disabled',\n '[class.collapsed]': '!panel.isOpen',\n '[attr.aria-expanded]': 'panel.isOpen',\n '[attr.aria-controls]': 'panel.id',\n '(click)': 'accordion.toggle(panel.id)'\n }\n }]\n }], function () { return [{ type: NgbAccordion, decorators: [{\n type: Inject,\n args: [forwardRef(() => NgbAccordion)]\n }] }, { type: NgbPanel, decorators: [{\n type: Optional\n }, {\n type: Host\n }, {\n type: Inject,\n args: [forwardRef(() => NgbPanel)]\n }] }]; }, { ngbPanelToggle: [{\n type: Input\n }] }); })();\n/**\n * A directive that wraps an accordion panel header with any HTML markup and a toggling button\n * marked with [`NgbPanelToggle`](#/components/accordion/api#NgbPanelToggle).\n * See the [header customization demo](#/components/accordion/examples#header) for more details.\n *\n * You can also use [`NgbPanelTitle`](#/components/accordion/api#NgbPanelTitle) to customize only the panel title.\n *\n * \\@since 4.1.0\n */\nclass NgbPanelHeader {\n /**\n * @param {?} templateRef\n */\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nNgbPanelHeader.ɵfac = function NgbPanelHeader_Factory(t) { return new (t || NgbPanelHeader)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nNgbPanelHeader.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbPanelHeader, selectors: [[\"ng-template\", \"ngbPanelHeader\", \"\"]] });\n/** @nocollapse */\nNgbPanelHeader.ctorParameters = () => [\n { type: TemplateRef }\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPanelHeader, [{\n type: Directive,\n args: [{ selector: 'ng-template[ngbPanelHeader]' }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\n/**\n * A directive that wraps only the panel title with HTML markup inside.\n *\n * You can also use [`NgbPanelHeader`](#/components/accordion/api#NgbPanelHeader) to customize the full panel header.\n */\nclass NgbPanelTitle {\n /**\n * @param {?} templateRef\n */\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nNgbPanelTitle.ɵfac = function NgbPanelTitle_Factory(t) { return new (t || NgbPanelTitle)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nNgbPanelTitle.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbPanelTitle, selectors: [[\"ng-template\", \"ngbPanelTitle\", \"\"]] });\n/** @nocollapse */\nNgbPanelTitle.ctorParameters = () => [\n { type: TemplateRef }\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPanelTitle, [{\n type: Directive,\n args: [{ selector: 'ng-template[ngbPanelTitle]' }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\n/**\n * A directive that wraps the accordion panel content.\n */\nclass NgbPanelContent {\n /**\n * @param {?} templateRef\n */\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nNgbPanelContent.ɵfac = function NgbPanelContent_Factory(t) { return new (t || NgbPanelContent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nNgbPanelContent.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbPanelContent, selectors: [[\"ng-template\", \"ngbPanelContent\", \"\"]] });\n/** @nocollapse */\nNgbPanelContent.ctorParameters = () => [\n { type: TemplateRef }\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPanelContent, [{\n type: Directive,\n args: [{ selector: 'ng-template[ngbPanelContent]' }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\n/**\n * A directive that wraps an individual accordion panel with title and collapsible content.\n */\nclass NgbPanel {\n constructor() {\n /**\n * If `true`, the panel is disabled an can't be toggled.\n */\n this.disabled = false;\n /**\n * An optional id for the panel that must be unique on the page.\n *\n * If not provided, it will be auto-generated in the `ngb-panel-xxx` format.\n */\n this.id = `ngb-panel-${nextId++}`;\n this.isOpen = false;\n }\n /**\n * @return {?}\n */\n ngAfterContentChecked() {\n // We are using @ContentChildren instead of @ContentChild as in the Angular version being used\n // only @ContentChildren allows us to specify the {descendants: false} option.\n // Without {descendants: false} we are hitting bugs described in:\n // https://github.com/ng-bootstrap/ng-bootstrap/issues/2240\n this.titleTpl = this.titleTpls.first;\n this.headerTpl = this.headerTpls.first;\n this.contentTpl = this.contentTpls.first;\n }\n}\nNgbPanel.ɵfac = function NgbPanel_Factory(t) { return new (t || NgbPanel)(); };\nNgbPanel.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbPanel, selectors: [[\"ngb-panel\"]], contentQueries: function NgbPanel_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbPanelTitle, 4);\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbPanelHeader, 4);\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbPanelContent, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.titleTpls = _t);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.headerTpls = _t);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.contentTpls = _t);\n } }, inputs: { disabled: \"disabled\", id: \"id\", title: \"title\", type: \"type\" } });\nNgbPanel.propDecorators = {\n disabled: [{ type: Input }],\n id: [{ type: Input }],\n title: [{ type: Input }],\n type: [{ type: Input }],\n titleTpls: [{ type: ContentChildren, args: [NgbPanelTitle, { descendants: false },] }],\n headerTpls: [{ type: ContentChildren, args: [NgbPanelHeader, { descendants: false },] }],\n contentTpls: [{ type: ContentChildren, args: [NgbPanelContent, { descendants: false },] }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPanel, [{\n type: Directive,\n args: [{ selector: 'ngb-panel' }]\n }], function () { return []; }, { disabled: [{\n type: Input\n }], id: [{\n type: Input\n }], title: [{\n type: Input\n }], type: [{\n type: Input\n }], titleTpls: [{\n type: ContentChildren,\n args: [NgbPanelTitle, { descendants: false }]\n }], headerTpls: [{\n type: ContentChildren,\n args: [NgbPanelHeader, { descendants: false }]\n }], contentTpls: [{\n type: ContentChildren,\n args: [NgbPanelContent, { descendants: false }]\n }] }); })();\n/**\n * Accordion is a collection of collapsible panels (bootstrap cards).\n *\n * It can ensure only one panel is opened at a time and allows to customize panel\n * headers.\n */\nclass NgbAccordion {\n /**\n * @param {?} config\n */\n constructor(config) {\n /**\n * An array or comma separated strings of panel ids that should be opened **initially**.\n *\n * For subsequent changes use methods like `expand()`, `collapse()`, etc. and\n * the `(panelChange)` event.\n */\n this.activeIds = [];\n /**\n * If `true`, panel content will be detached from DOM and not simply hidden when the panel is collapsed.\n */\n this.destroyOnHide = true;\n /**\n * Event emitted right before the panel toggle happens.\n *\n * See [NgbPanelChangeEvent](#/components/accordion/api#NgbPanelChangeEvent) for payload details.\n */\n this.panelChange = new EventEmitter();\n this.type = config.type;\n this.closeOtherPanels = config.closeOthers;\n }\n /**\n * Checks if a panel with a given id is expanded.\n * @param {?} panelId\n * @return {?}\n */\n isExpanded(panelId) { return this.activeIds.indexOf(panelId) > -1; }\n /**\n * Expands a panel with a given id.\n *\n * Has no effect if the panel is already expanded or disabled.\n * @param {?} panelId\n * @return {?}\n */\n expand(panelId) { this._changeOpenState(this._findPanelById(panelId), true); }\n /**\n * Expands all panels, if `[closeOthers]` is `false`.\n *\n * If `[closeOthers]` is `true`, it will expand the first panel, unless there is already a panel opened.\n * @return {?}\n */\n expandAll() {\n if (this.closeOtherPanels) {\n if (this.activeIds.length === 0 && this.panels.length) {\n this._changeOpenState(this.panels.first, true);\n }\n }\n else {\n this.panels.forEach(panel => this._changeOpenState(panel, true));\n }\n }\n /**\n * Collapses a panel with the given id.\n *\n * Has no effect if the panel is already collapsed or disabled.\n * @param {?} panelId\n * @return {?}\n */\n collapse(panelId) { this._changeOpenState(this._findPanelById(panelId), false); }\n /**\n * Collapses all opened panels.\n * @return {?}\n */\n collapseAll() {\n this.panels.forEach((panel) => { this._changeOpenState(panel, false); });\n }\n /**\n * Toggles a panel with the given id.\n *\n * Has no effect if the panel is disabled.\n * @param {?} panelId\n * @return {?}\n */\n toggle(panelId) {\n /** @type {?} */\n const panel = this._findPanelById(panelId);\n if (panel) {\n this._changeOpenState(panel, !panel.isOpen);\n }\n }\n /**\n * @return {?}\n */\n ngAfterContentChecked() {\n // active id updates\n if (isString(this.activeIds)) {\n this.activeIds = this.activeIds.split(/\\s*,\\s*/);\n }\n // update panels open states\n this.panels.forEach(panel => panel.isOpen = !panel.disabled && this.activeIds.indexOf(panel.id) > -1);\n // closeOthers updates\n if (this.activeIds.length > 1 && this.closeOtherPanels) {\n this._closeOthers(this.activeIds[0]);\n this._updateActiveIds();\n }\n }\n /**\n * @param {?} panel\n * @param {?} nextState\n * @return {?}\n */\n _changeOpenState(panel, nextState) {\n if (panel && !panel.disabled && panel.isOpen !== nextState) {\n /** @type {?} */\n let defaultPrevented = false;\n this.panelChange.emit({ panelId: panel.id, nextState: nextState, preventDefault: () => { defaultPrevented = true; } });\n if (!defaultPrevented) {\n panel.isOpen = nextState;\n if (nextState && this.closeOtherPanels) {\n this._closeOthers(panel.id);\n }\n this._updateActiveIds();\n }\n }\n }\n /**\n * @param {?} panelId\n * @return {?}\n */\n _closeOthers(panelId) {\n this.panels.forEach(panel => {\n if (panel.id !== panelId) {\n panel.isOpen = false;\n }\n });\n }\n /**\n * @param {?} panelId\n * @return {?}\n */\n _findPanelById(panelId) { return this.panels.find(p => p.id === panelId); }\n /**\n * @return {?}\n */\n _updateActiveIds() {\n this.activeIds = this.panels.filter(panel => panel.isOpen && !panel.disabled).map(panel => panel.id);\n }\n}\nNgbAccordion.ɵfac = function NgbAccordion_Factory(t) { return new (t || NgbAccordion)(ɵngcc0.ɵɵdirectiveInject(NgbAccordionConfig)); };\nNgbAccordion.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NgbAccordion, selectors: [[\"ngb-accordion\"]], contentQueries: function NgbAccordion_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbPanel, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.panels = _t);\n } }, hostAttrs: [\"role\", \"tablist\", 1, \"accordion\"], hostVars: 1, hostBindings: function NgbAccordion_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"aria-multiselectable\", !ctx.closeOtherPanels);\n } }, inputs: { activeIds: \"activeIds\", destroyOnHide: \"destroyOnHide\", type: \"type\", closeOtherPanels: [\"closeOthers\", \"closeOtherPanels\"] }, outputs: { panelChange: \"panelChange\" }, exportAs: [\"ngbAccordion\"], decls: 3, vars: 1, consts: [[\"ngbPanelHeader\", \"\"], [\"t\", \"\"], [\"ngFor\", \"\", 3, \"ngForOf\"], [1, \"btn\", \"btn-link\", 3, \"ngbPanelToggle\"], [3, \"ngTemplateOutlet\"], [1, \"card\"], [\"role\", \"tab\", 3, \"id\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [\"role\", \"tabpanel\", \"class\", \"collapse\", 3, \"id\", \"show\", 4, \"ngIf\"], [\"role\", \"tabpanel\", 1, \"collapse\", 3, \"id\"], [1, \"card-body\"]], template: function NgbAccordion_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, NgbAccordion_ng_template_0_Template, 3, 3, \"ng-template\", 0, 1, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(2, NgbAccordion_ng_template_2_Template, 4, 9, \"ng-template\", 2);\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.panels);\n } }, dependencies: [ɵngcc1.NgForOf, ɵngcc1.NgIf, ɵngcc1.NgTemplateOutlet, NgbPanelHeader, NgbPanelToggle], encapsulation: 2 });\n/** @nocollapse */\nNgbAccordion.ctorParameters = () => [\n { type: NgbAccordionConfig }\n];\nNgbAccordion.propDecorators = {\n panels: [{ type: ContentChildren, args: [NgbPanel,] }],\n activeIds: [{ type: Input }],\n closeOtherPanels: [{ type: Input, args: ['closeOthers',] }],\n destroyOnHide: [{ type: Input }],\n type: [{ type: Input }],\n panelChange: [{ type: Output }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbAccordion, [{\n type: Component,\n args: [{\n selector: 'ngb-accordion',\n exportAs: 'ngbAccordion',\n host: { 'class': 'accordion', 'role': 'tablist', '[attr.aria-multiselectable]': '!closeOtherPanels' },\n template: `\n \n \n \n \n
\n
\n \n
\n
\n
\n \n
\n
\n
\n
\n `\n }]\n }], function () { return [{ type: NgbAccordionConfig }]; }, { activeIds: [{\n type: Input\n }], destroyOnHide: [{\n type: Input\n }], panelChange: [{\n type: Output\n }], type: [{\n type: Input\n }], closeOtherPanels: [{\n type: Input,\n args: ['closeOthers']\n }], panels: [{\n type: ContentChildren,\n args: [NgbPanel]\n }] }); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/** @type {?} */\nconst NGB_ACCORDION_DIRECTIVES = [NgbAccordion, NgbPanel, NgbPanelTitle, NgbPanelContent, NgbPanelHeader, NgbPanelToggle];\nclass NgbAccordionModule {\n /**\n * Importing with '.forRoot()' is no longer necessary, you can simply import the module.\n * Will be removed in 4.0.0.\n *\n * @deprecated 3.0.0\n * @return {?}\n */\n static forRoot() { return { ngModule: NgbAccordionModule }; }\n}\nNgbAccordionModule.ɵfac = function NgbAccordionModule_Factory(t) { return new (t || NgbAccordionModule)(); };\nNgbAccordionModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgbAccordionModule });\nNgbAccordionModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [CommonModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbAccordionModule, [{\n type: NgModule,\n args: [{ declarations: NGB_ACCORDION_DIRECTIVES, exports: NGB_ACCORDION_DIRECTIVES, imports: [CommonModule] }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbAccordionModule, { declarations: function () { return [NgbAccordion, NgbPanel, NgbPanelTitle, NgbPanelContent, NgbPanelHeader, NgbPanelToggle]; }, imports: function () { return [CommonModule]; }, exports: function () { return [NgbAccordion, NgbPanel, NgbPanelTitle, NgbPanelContent, NgbPanelHeader, NgbPanelToggle]; } }); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/**\n * A configuration service for the [NgbAlert](#/components/alert/api#NgbAlert) component.\n *\n * You can inject this service, typically in your root component, and customize its properties\n * to provide default values for all alerts used in the application.\n */\nclass NgbAlertConfig {\n constructor() {\n this.dismissible = true;\n this.type = 'warning';\n }\n}\nNgbAlertConfig.ɵfac = function NgbAlertConfig_Factory(t) { return new (t || NgbAlertConfig)(); };\nNgbAlertConfig.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NgbAlertConfig, factory: NgbAlertConfig.ɵfac, providedIn: 'root' });\n/** @nocollapse */ NgbAlertConfig.ngInjectableDef = defineInjectable({ factory: function NgbAlertConfig_Factory() { return new NgbAlertConfig(); }, token: NgbAlertConfig, providedIn: \"root\" });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbAlertConfig, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () { return []; }, null); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/**\n * Alert is a component to provide contextual feedback messages for user.\n *\n * It supports several alert types and can be dismissed.\n */\nclass NgbAlert {\n /**\n * @param {?} config\n * @param {?} _renderer\n * @param {?} _element\n */\n constructor(config, _renderer, _element) {\n this._renderer = _renderer;\n this._element = _element;\n /**\n * An event emitted when the close button is clicked. It has no payload and only relevant for dismissible alerts.\n */\n this.close = new EventEmitter();\n this.dismissible = config.dismissible;\n this.type = config.type;\n }\n /**\n * @return {?}\n */\n closeHandler() { this.close.emit(null); }\n /**\n * @param {?} changes\n * @return {?}\n */\n ngOnChanges(changes) {\n /** @type {?} */\n const typeChange = changes['type'];\n if (typeChange && !typeChange.firstChange) {\n this._renderer.removeClass(this._element.nativeElement, `alert-${typeChange.previousValue}`);\n this._renderer.addClass(this._element.nativeElement, `alert-${typeChange.currentValue}`);\n }\n }\n /**\n * @return {?}\n */\n ngOnInit() { this._renderer.addClass(this._element.nativeElement, `alert-${this.type}`); }\n}\nNgbAlert.ɵfac = function NgbAlert_Factory(t) { return new (t || NgbAlert)(ɵngcc0.ɵɵdirectiveInject(NgbAlertConfig), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef)); };\nNgbAlert.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NgbAlert, selectors: [[\"ngb-alert\"]], hostAttrs: [\"role\", \"alert\", 1, \"alert\"], hostVars: 2, hostBindings: function NgbAlert_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"alert-dismissible\", ctx.dismissible);\n } }, inputs: { dismissible: \"dismissible\", type: \"type\" }, outputs: { close: \"close\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature], ngContentSelectors: _c3, decls: 2, vars: 1, consts: function () { let i18n_1; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_alert_close$$FESM2015_NG_BOOTSTRAP_JS_2 = goog.getMsg(\"Close\");\n i18n_1 = MSG_EXTERNAL_ngb_alert_close$$FESM2015_NG_BOOTSTRAP_JS_2;\n }\n else {\n i18n_1 = $localize `:@@ngb.alert.close␟f4e529ae5ffd73001d1ff4bbdeeb0a72e342e5c8␟7819314041543176992:Close`;\n } return [[\"type\", \"button\", \"class\", \"close\", \"aria-label\", i18n_1, 3, \"click\", 4, \"ngIf\"], [\"type\", \"button\", \"aria-label\", i18n_1, 1, \"close\", 3, \"click\"], [\"aria-hidden\", \"true\"]]; }, template: function NgbAlert_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵprojection(0);\n ɵngcc0.ɵɵtemplate(1, NgbAlert_button_1_Template, 3, 0, \"button\", 0);\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.dismissible);\n } }, dependencies: [ɵngcc1.NgIf], styles: [\"ngb-alert{display:block}\"], encapsulation: 2, changeDetection: 0 });\n/** @nocollapse */\nNgbAlert.ctorParameters = () => [\n { type: NgbAlertConfig },\n { type: Renderer2 },\n { type: ElementRef }\n];\nNgbAlert.propDecorators = {\n dismissible: [{ type: Input }],\n type: [{ type: Input }],\n close: [{ type: Output }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbAlert, [{\n type: Component,\n args: [{ selector: 'ngb-alert', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { 'role': 'alert', 'class': 'alert', '[class.alert-dismissible]': 'dismissible' }, template: `\n \n \n `, styles: [\"ngb-alert{display:block}\"] }]\n }], function () { return [{ type: NgbAlertConfig }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.ElementRef }]; }, { close: [{\n type: Output\n }], dismissible: [{\n type: Input\n }], type: [{\n type: Input\n }] }); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\nclass NgbAlertModule {\n /**\n * Importing with '.forRoot()' is no longer necessary, you can simply import the module.\n * Will be removed in 4.0.0.\n *\n * @deprecated 3.0.0\n * @return {?}\n */\n static forRoot() { return { ngModule: NgbAlertModule }; }\n}\nNgbAlertModule.ɵfac = function NgbAlertModule_Factory(t) { return new (t || NgbAlertModule)(); };\nNgbAlertModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgbAlertModule });\nNgbAlertModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [CommonModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbAlertModule, [{\n type: NgModule,\n args: [{ declarations: [NgbAlert], exports: [NgbAlert], imports: [CommonModule], entryComponents: [NgbAlert] }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbAlertModule, { declarations: function () { return [NgbAlert]; }, imports: function () { return [CommonModule]; }, exports: function () { return [NgbAlert]; } }); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\nclass NgbButtonLabel {\n}\nNgbButtonLabel.ɵfac = function NgbButtonLabel_Factory(t) { return new (t || NgbButtonLabel)(); };\nNgbButtonLabel.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbButtonLabel, selectors: [[\"\", \"ngbButtonLabel\", \"\"]], hostVars: 8, hostBindings: function NgbButtonLabel_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"btn\", true)(\"active\", ctx.active)(\"disabled\", ctx.disabled)(\"focus\", ctx.focused);\n } } });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbButtonLabel, [{\n type: Directive,\n args: [{\n selector: '[ngbButtonLabel]',\n host: { '[class.btn]': 'true', '[class.active]': 'active', '[class.disabled]': 'disabled', '[class.focus]': 'focused' }\n }]\n }], null, null); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/** @type {?} */\nconst NGB_CHECKBOX_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NgbCheckBox),\n multi: true\n};\n/**\n * Allows to easily create Bootstrap-style checkbox buttons.\n *\n * Integrates with forms, so the value of a checked button is bound to the underlying form control\n * either in a reactive or template-driven way.\n */\nclass NgbCheckBox {\n /**\n * @param {?} _label\n * @param {?} _cd\n */\n constructor(_label, _cd) {\n this._label = _label;\n this._cd = _cd;\n /**\n * If `true`, the checkbox button will be disabled\n */\n this.disabled = false;\n /**\n * The form control value when the checkbox is checked.\n */\n this.valueChecked = true;\n /**\n * The form control value when the checkbox is unchecked.\n */\n this.valueUnChecked = false;\n this.onChange = (_) => { };\n this.onTouched = () => { };\n }\n /**\n * @param {?} isFocused\n * @return {?}\n */\n set focused(isFocused) {\n this._label.focused = isFocused;\n if (!isFocused) {\n this.onTouched();\n }\n }\n /**\n * @param {?} $event\n * @return {?}\n */\n onInputChange($event) {\n /** @type {?} */\n const modelToPropagate = $event.target.checked ? this.valueChecked : this.valueUnChecked;\n this.onChange(modelToPropagate);\n this.onTouched();\n this.writeValue(modelToPropagate);\n }\n /**\n * @param {?} fn\n * @return {?}\n */\n registerOnChange(fn) { this.onChange = fn; }\n /**\n * @param {?} fn\n * @return {?}\n */\n registerOnTouched(fn) { this.onTouched = fn; }\n /**\n * @param {?} isDisabled\n * @return {?}\n */\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n this._label.disabled = isDisabled;\n }\n /**\n * @param {?} value\n * @return {?}\n */\n writeValue(value) {\n this.checked = value === this.valueChecked;\n this._label.active = this.checked;\n // label won't be updated, if it is inside the OnPush component when [ngModel] changes\n this._cd.markForCheck();\n }\n}\nNgbCheckBox.ɵfac = function NgbCheckBox_Factory(t) { return new (t || NgbCheckBox)(ɵngcc0.ɵɵdirectiveInject(NgbButtonLabel), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\nNgbCheckBox.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbCheckBox, selectors: [[\"\", \"ngbButton\", \"\", \"type\", \"checkbox\"]], hostAttrs: [\"autocomplete\", \"off\"], hostVars: 2, hostBindings: function NgbCheckBox_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"change\", function NgbCheckBox_change_HostBindingHandler($event) { return ctx.onInputChange($event); })(\"focus\", function NgbCheckBox_focus_HostBindingHandler() { return ctx.focused = true; })(\"blur\", function NgbCheckBox_blur_HostBindingHandler() { return ctx.focused = false; });\n } if (rf & 2) {\n ɵngcc0.ɵɵhostProperty(\"checked\", ctx.checked)(\"disabled\", ctx.disabled);\n } }, inputs: { disabled: \"disabled\", valueChecked: \"valueChecked\", valueUnChecked: \"valueUnChecked\" }, features: [ɵngcc0.ɵɵProvidersFeature([NGB_CHECKBOX_VALUE_ACCESSOR])] });\n/** @nocollapse */\nNgbCheckBox.ctorParameters = () => [\n { type: NgbButtonLabel },\n { type: ChangeDetectorRef }\n];\nNgbCheckBox.propDecorators = {\n disabled: [{ type: Input }],\n valueChecked: [{ type: Input }],\n valueUnChecked: [{ type: Input }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbCheckBox, [{\n type: Directive,\n args: [{\n selector: '[ngbButton][type=checkbox]',\n host: {\n 'autocomplete': 'off',\n '[checked]': 'checked',\n '[disabled]': 'disabled',\n '(change)': 'onInputChange($event)',\n '(focus)': 'focused = true',\n '(blur)': 'focused = false'\n },\n providers: [NGB_CHECKBOX_VALUE_ACCESSOR]\n }]\n }], function () { return [{ type: NgbButtonLabel }, { type: ɵngcc0.ChangeDetectorRef }]; }, { disabled: [{\n type: Input\n }], valueChecked: [{\n type: Input\n }], valueUnChecked: [{\n type: Input\n }] }); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/** @type {?} */\nconst NGB_RADIO_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NgbRadioGroup),\n multi: true\n};\n/** @type {?} */\nlet nextId$1 = 0;\n/**\n * Allows to easily create Bootstrap-style radio buttons.\n *\n * Integrates with forms, so the value of a checked button is bound to the underlying form control\n * either in a reactive or template-driven way.\n */\nclass NgbRadioGroup {\n constructor() {\n this._radios = new Set();\n this._value = null;\n /**\n * Name of the radio group applied to radio input elements.\n *\n * Will be applied to all radio input elements inside the group,\n * unless [`NgbRadio`](#/components/buttons/api#NgbRadio)'s specify names themselves.\n *\n * If not provided, will be generated in the `ngb-radio-xx` format.\n */\n this.name = `ngb-radio-${nextId$1++}`;\n this.onChange = (_) => { };\n this.onTouched = () => { };\n }\n /**\n * @return {?}\n */\n get disabled() { return this._disabled; }\n /**\n * @param {?} isDisabled\n * @return {?}\n */\n set disabled(isDisabled) { this.setDisabledState(isDisabled); }\n /**\n * @param {?} radio\n * @return {?}\n */\n onRadioChange(radio) {\n this.writeValue(radio.value);\n this.onChange(radio.value);\n }\n /**\n * @return {?}\n */\n onRadioValueUpdate() { this._updateRadiosValue(); }\n /**\n * @param {?} radio\n * @return {?}\n */\n register(radio) { this._radios.add(radio); }\n /**\n * @param {?} fn\n * @return {?}\n */\n registerOnChange(fn) { this.onChange = fn; }\n /**\n * @param {?} fn\n * @return {?}\n */\n registerOnTouched(fn) { this.onTouched = fn; }\n /**\n * @param {?} isDisabled\n * @return {?}\n */\n setDisabledState(isDisabled) {\n this._disabled = isDisabled;\n this._updateRadiosDisabled();\n }\n /**\n * @param {?} radio\n * @return {?}\n */\n unregister(radio) { this._radios.delete(radio); }\n /**\n * @param {?} value\n * @return {?}\n */\n writeValue(value) {\n this._value = value;\n this._updateRadiosValue();\n }\n /**\n * @return {?}\n */\n _updateRadiosValue() { this._radios.forEach((radio) => radio.updateValue(this._value)); }\n /**\n * @return {?}\n */\n _updateRadiosDisabled() { this._radios.forEach((radio) => radio.updateDisabled()); }\n}\nNgbRadioGroup.ɵfac = function NgbRadioGroup_Factory(t) { return new (t || NgbRadioGroup)(); };\nNgbRadioGroup.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbRadioGroup, selectors: [[\"\", \"ngbRadioGroup\", \"\"]], hostAttrs: [\"role\", \"radiogroup\"], inputs: { name: \"name\" }, features: [ɵngcc0.ɵɵProvidersFeature([NGB_RADIO_VALUE_ACCESSOR])] });\nNgbRadioGroup.propDecorators = {\n name: [{ type: Input }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbRadioGroup, [{\n type: Directive,\n args: [{ selector: '[ngbRadioGroup]', host: { 'role': 'radiogroup' }, providers: [NGB_RADIO_VALUE_ACCESSOR] }]\n }], function () { return []; }, { name: [{\n type: Input\n }] }); })();\n/**\n * A directive that marks an input of type \"radio\" as a part of the\n * [`NgbRadioGroup`](#/components/buttons/api#NgbRadioGroup).\n */\nclass NgbRadio {\n /**\n * @param {?} _group\n * @param {?} _label\n * @param {?} _renderer\n * @param {?} _element\n * @param {?} _cd\n */\n constructor(_group, _label, _renderer, _element, _cd) {\n this._group = _group;\n this._label = _label;\n this._renderer = _renderer;\n this._element = _element;\n this._cd = _cd;\n this._value = null;\n this._group.register(this);\n this.updateDisabled();\n }\n /**\n * The form control value when current radio button is checked.\n * @param {?} value\n * @return {?}\n */\n set value(value) {\n this._value = value;\n /** @type {?} */\n const stringValue = value ? value.toString() : '';\n this._renderer.setProperty(this._element.nativeElement, 'value', stringValue);\n this._group.onRadioValueUpdate();\n }\n /**\n * If `true`, current radio button will be disabled.\n * @param {?} isDisabled\n * @return {?}\n */\n set disabled(isDisabled) {\n this._disabled = isDisabled !== false;\n this.updateDisabled();\n }\n /**\n * @param {?} isFocused\n * @return {?}\n */\n set focused(isFocused) {\n if (this._label) {\n this._label.focused = isFocused;\n }\n if (!isFocused) {\n this._group.onTouched();\n }\n }\n /**\n * @return {?}\n */\n get checked() { return this._checked; }\n /**\n * @return {?}\n */\n get disabled() { return this._group.disabled || this._disabled; }\n /**\n * @return {?}\n */\n get value() { return this._value; }\n /**\n * @return {?}\n */\n get nameAttr() { return this.name || this._group.name; }\n /**\n * @return {?}\n */\n ngOnDestroy() { this._group.unregister(this); }\n /**\n * @return {?}\n */\n onChange() { this._group.onRadioChange(this); }\n /**\n * @param {?} value\n * @return {?}\n */\n updateValue(value) {\n // label won't be updated, if it is inside the OnPush component when [ngModel] changes\n if (this.value !== value) {\n this._cd.markForCheck();\n }\n this._checked = this.value === value;\n this._label.active = this._checked;\n }\n /**\n * @return {?}\n */\n updateDisabled() { this._label.disabled = this.disabled; }\n}\nNgbRadio.ɵfac = function NgbRadio_Factory(t) { return new (t || NgbRadio)(ɵngcc0.ɵɵdirectiveInject(NgbRadioGroup), ɵngcc0.ɵɵdirectiveInject(NgbButtonLabel), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\nNgbRadio.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbRadio, selectors: [[\"\", \"ngbButton\", \"\", \"type\", \"radio\"]], hostVars: 3, hostBindings: function NgbRadio_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"change\", function NgbRadio_change_HostBindingHandler() { return ctx.onChange(); })(\"focus\", function NgbRadio_focus_HostBindingHandler() { return ctx.focused = true; })(\"blur\", function NgbRadio_blur_HostBindingHandler() { return ctx.focused = false; });\n } if (rf & 2) {\n ɵngcc0.ɵɵhostProperty(\"checked\", ctx.checked)(\"disabled\", ctx.disabled)(\"name\", ctx.nameAttr);\n } }, inputs: { value: \"value\", disabled: \"disabled\", name: \"name\" } });\n/** @nocollapse */\nNgbRadio.ctorParameters = () => [\n { type: NgbRadioGroup },\n { type: NgbButtonLabel },\n { type: Renderer2 },\n { type: ElementRef },\n { type: ChangeDetectorRef }\n];\nNgbRadio.propDecorators = {\n name: [{ type: Input }],\n value: [{ type: Input, args: ['value',] }],\n disabled: [{ type: Input, args: ['disabled',] }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbRadio, [{\n type: Directive,\n args: [{\n selector: '[ngbButton][type=radio]',\n host: {\n '[checked]': 'checked',\n '[disabled]': 'disabled',\n '[name]': 'nameAttr',\n '(change)': 'onChange()',\n '(focus)': 'focused = true',\n '(blur)': 'focused = false'\n }\n }]\n }], function () { return [{ type: NgbRadioGroup }, { type: NgbButtonLabel }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.ChangeDetectorRef }]; }, { value: [{\n type: Input,\n args: ['value']\n }], disabled: [{\n type: Input,\n args: ['disabled']\n }], name: [{\n type: Input\n }] }); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/** @type {?} */\nconst NGB_BUTTON_DIRECTIVES = [NgbButtonLabel, NgbCheckBox, NgbRadioGroup, NgbRadio];\nclass NgbButtonsModule {\n /**\n * Importing with '.forRoot()' is no longer necessary, you can simply import the module.\n * Will be removed in 4.0.0.\n *\n * @deprecated 3.0.0\n * @return {?}\n */\n static forRoot() { return { ngModule: NgbButtonsModule }; }\n}\nNgbButtonsModule.ɵfac = function NgbButtonsModule_Factory(t) { return new (t || NgbButtonsModule)(); };\nNgbButtonsModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgbButtonsModule });\nNgbButtonsModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbButtonsModule, [{\n type: NgModule,\n args: [{ declarations: NGB_BUTTON_DIRECTIVES, exports: NGB_BUTTON_DIRECTIVES }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbButtonsModule, { declarations: [NgbButtonLabel, NgbCheckBox, NgbRadioGroup, NgbRadio], exports: [NgbButtonLabel, NgbCheckBox, NgbRadioGroup, NgbRadio] }); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/**\n * A configuration service for the [NgbCarousel](#/components/carousel/api#NgbCarousel) component.\n *\n * You can inject this service, typically in your root component, and customize its properties\n * to provide default values for all carousels used in the application.\n */\nclass NgbCarouselConfig {\n constructor() {\n this.interval = 5000;\n this.wrap = true;\n this.keyboard = true;\n this.pauseOnHover = true;\n this.showNavigationArrows = true;\n this.showNavigationIndicators = true;\n }\n}\nNgbCarouselConfig.ɵfac = function NgbCarouselConfig_Factory(t) { return new (t || NgbCarouselConfig)(); };\nNgbCarouselConfig.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NgbCarouselConfig, factory: NgbCarouselConfig.ɵfac, providedIn: 'root' });\n/** @nocollapse */ NgbCarouselConfig.ngInjectableDef = defineInjectable({ factory: function NgbCarouselConfig_Factory() { return new NgbCarouselConfig(); }, token: NgbCarouselConfig, providedIn: \"root\" });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbCarouselConfig, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () { return []; }, null); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/** @type {?} */\nlet nextId$2 = 0;\n/**\n * A directive that wraps the individual carousel slide.\n */\nclass NgbSlide {\n /**\n * @param {?} tplRef\n */\n constructor(tplRef) {\n this.tplRef = tplRef;\n /**\n * Slide id that must be unique for the entire document.\n *\n * If not provided, will be generated in the `ngb-slide-xx` format.\n */\n this.id = `ngb-slide-${nextId$2++}`;\n }\n}\nNgbSlide.ɵfac = function NgbSlide_Factory(t) { return new (t || NgbSlide)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nNgbSlide.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbSlide, selectors: [[\"ng-template\", \"ngbSlide\", \"\"]], inputs: { id: \"id\" } });\n/** @nocollapse */\nNgbSlide.ctorParameters = () => [\n { type: TemplateRef }\n];\nNgbSlide.propDecorators = {\n id: [{ type: Input }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbSlide, [{\n type: Directive,\n args: [{ selector: 'ng-template[ngbSlide]' }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, { id: [{\n type: Input\n }] }); })();\n/**\n * Carousel is a component to easily create and control slideshows.\n *\n * Allows to set intervals, change the way user interacts with the slides and provides a programmatic API.\n */\nclass NgbCarousel {\n /**\n * @param {?} config\n * @param {?} _platformId\n * @param {?} _ngZone\n * @param {?} _cd\n */\n constructor(config, _platformId, _ngZone, _cd) {\n this._platformId = _platformId;\n this._ngZone = _ngZone;\n this._cd = _cd;\n this._destroy$ = new Subject();\n this._start$ = new Subject();\n this._stop$ = new Subject();\n /**\n * An event emitted right after the slide transition is completed.\n *\n * See [`NgbSlideEvent`](#/components/carousel/api#NgbSlideEvent) for payload details.\n */\n this.slide = new EventEmitter();\n this.interval = config.interval;\n this.wrap = config.wrap;\n this.keyboard = config.keyboard;\n this.pauseOnHover = config.pauseOnHover;\n this.showNavigationArrows = config.showNavigationArrows;\n this.showNavigationIndicators = config.showNavigationIndicators;\n }\n /**\n * @return {?}\n */\n ngAfterContentInit() {\n // setInterval() doesn't play well with SSR and protractor,\n // so we should run it in the browser and outside Angular\n if (isPlatformBrowser(this._platformId)) {\n this._ngZone.runOutsideAngular(() => {\n this._start$\n .pipe(map(() => this.interval), filter(interval => interval > 0 && this.slides.length > 0), switchMap(interval => timer(interval).pipe(takeUntil(merge(this._stop$, this._destroy$)))))\n .subscribe(() => this._ngZone.run(() => this.next()));\n this._start$.next();\n });\n }\n this.slides.changes.pipe(takeUntil(this._destroy$)).subscribe(() => this._cd.markForCheck());\n }\n /**\n * @return {?}\n */\n ngAfterContentChecked() {\n /** @type {?} */\n let activeSlide = this._getSlideById(this.activeId);\n this.activeId = activeSlide ? activeSlide.id : (this.slides.length ? this.slides.first.id : null);\n }\n /**\n * @return {?}\n */\n ngOnDestroy() { this._destroy$.next(); }\n /**\n * @param {?} changes\n * @return {?}\n */\n ngOnChanges(changes) {\n if ('interval' in changes && !changes['interval'].isFirstChange()) {\n this._start$.next();\n }\n }\n /**\n * Navigates to a slide with the specified identifier.\n * @param {?} slideId\n * @return {?}\n */\n select(slideId) { this._cycleToSelected(slideId, this._getSlideEventDirection(this.activeId, slideId)); }\n /**\n * Navigates to the previous slide.\n * @return {?}\n */\n prev() { this._cycleToSelected(this._getPrevSlide(this.activeId), NgbSlideEventDirection.RIGHT); }\n /**\n * Navigates to the next slide.\n * @return {?}\n */\n next() { this._cycleToSelected(this._getNextSlide(this.activeId), NgbSlideEventDirection.LEFT); }\n /**\n * Pauses cycling through the slides.\n * @return {?}\n */\n pause() { this._stop$.next(); }\n /**\n * Restarts cycling through the slides from left to right.\n * @return {?}\n */\n cycle() { this._start$.next(); }\n /**\n * @param {?} slideIdx\n * @param {?} direction\n * @return {?}\n */\n _cycleToSelected(slideIdx, direction) {\n /** @type {?} */\n let selectedSlide = this._getSlideById(slideIdx);\n if (selectedSlide && selectedSlide.id !== this.activeId) {\n this.slide.emit({ prev: this.activeId, current: selectedSlide.id, direction: direction });\n this._start$.next();\n this.activeId = selectedSlide.id;\n }\n // we get here after the interval fires or any external API call like next(), prev() or select()\n this._cd.markForCheck();\n }\n /**\n * @param {?} currentActiveSlideId\n * @param {?} nextActiveSlideId\n * @return {?}\n */\n _getSlideEventDirection(currentActiveSlideId, nextActiveSlideId) {\n /** @type {?} */\n const currentActiveSlideIdx = this._getSlideIdxById(currentActiveSlideId);\n /** @type {?} */\n const nextActiveSlideIdx = this._getSlideIdxById(nextActiveSlideId);\n return currentActiveSlideIdx > nextActiveSlideIdx ? NgbSlideEventDirection.RIGHT : NgbSlideEventDirection.LEFT;\n }\n /**\n * @param {?} slideId\n * @return {?}\n */\n _getSlideById(slideId) { return this.slides.find(slide => slide.id === slideId); }\n /**\n * @param {?} slideId\n * @return {?}\n */\n _getSlideIdxById(slideId) {\n return this.slides.toArray().indexOf(this._getSlideById(slideId));\n }\n /**\n * @param {?} currentSlideId\n * @return {?}\n */\n _getNextSlide(currentSlideId) {\n /** @type {?} */\n const slideArr = this.slides.toArray();\n /** @type {?} */\n const currentSlideIdx = this._getSlideIdxById(currentSlideId);\n /** @type {?} */\n const isLastSlide = currentSlideIdx === slideArr.length - 1;\n return isLastSlide ? (this.wrap ? slideArr[0].id : slideArr[slideArr.length - 1].id) :\n slideArr[currentSlideIdx + 1].id;\n }\n /**\n * @param {?} currentSlideId\n * @return {?}\n */\n _getPrevSlide(currentSlideId) {\n /** @type {?} */\n const slideArr = this.slides.toArray();\n /** @type {?} */\n const currentSlideIdx = this._getSlideIdxById(currentSlideId);\n /** @type {?} */\n const isFirstSlide = currentSlideIdx === 0;\n return isFirstSlide ? (this.wrap ? slideArr[slideArr.length - 1].id : slideArr[0].id) :\n slideArr[currentSlideIdx - 1].id;\n }\n}\nNgbCarousel.ɵfac = function NgbCarousel_Factory(t) { return new (t || NgbCarousel)(ɵngcc0.ɵɵdirectiveInject(NgbCarouselConfig), ɵngcc0.ɵɵdirectiveInject(PLATFORM_ID), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\nNgbCarousel.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NgbCarousel, selectors: [[\"ngb-carousel\"]], contentQueries: function NgbCarousel_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbSlide, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.slides = _t);\n } }, hostAttrs: [\"tabIndex\", \"0\", 1, \"carousel\", \"slide\"], hostVars: 2, hostBindings: function NgbCarousel_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"mouseenter\", function NgbCarousel_mouseenter_HostBindingHandler() { return ctx.pauseOnHover && ctx.pause(); })(\"mouseleave\", function NgbCarousel_mouseleave_HostBindingHandler() { return ctx.pauseOnHover && ctx.cycle(); })(\"keydown.arrowLeft\", function NgbCarousel_keydown_arrowLeft_HostBindingHandler() { return ctx.keyboard && ctx.prev(); })(\"keydown.arrowRight\", function NgbCarousel_keydown_arrowRight_HostBindingHandler() { return ctx.keyboard && ctx.next(); });\n } if (rf & 2) {\n ɵngcc0.ɵɵstyleProp(\"display\", \"block\");\n } }, inputs: { interval: \"interval\", wrap: \"wrap\", keyboard: \"keyboard\", pauseOnHover: \"pauseOnHover\", showNavigationArrows: \"showNavigationArrows\", showNavigationIndicators: \"showNavigationIndicators\", activeId: \"activeId\" }, outputs: { slide: \"slide\" }, exportAs: [\"ngbCarousel\"], features: [ɵngcc0.ɵɵNgOnChangesFeature], decls: 5, vars: 4, consts: function () { let i18n_4; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_carousel_previous$$FESM2015_NG_BOOTSTRAP_JS__5 = goog.getMsg(\"Previous\");\n i18n_4 = MSG_EXTERNAL_ngb_carousel_previous$$FESM2015_NG_BOOTSTRAP_JS__5;\n }\n else {\n i18n_4 = $localize `:@@ngb.carousel.previous␟680d5c75b7fd8d37961083608b9fcdc4167b4c43␟4452427314943113135:Previous`;\n } let i18n_6; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_carousel_next$$FESM2015_NG_BOOTSTRAP_JS__7 = goog.getMsg(\"Next\");\n i18n_6 = MSG_EXTERNAL_ngb_carousel_next$$FESM2015_NG_BOOTSTRAP_JS__7;\n }\n else {\n i18n_6 = $localize `:@@ngb.carousel.next␟f732c304c7433e5a83ffcd862c3dce709a0f4982␟3885497195825665706:Next`;\n } return [[\"class\", \"carousel-indicators\", 4, \"ngIf\"], [1, \"carousel-inner\"], [\"class\", \"carousel-item\", 3, \"active\", 4, \"ngFor\", \"ngForOf\"], [\"class\", \"carousel-control-prev\", \"role\", \"button\", 3, \"click\", 4, \"ngIf\"], [\"class\", \"carousel-control-next\", \"role\", \"button\", 3, \"click\", 4, \"ngIf\"], [1, \"carousel-indicators\"], [3, \"id\", \"active\", \"click\", 4, \"ngFor\", \"ngForOf\"], [3, \"id\", \"click\"], [1, \"carousel-item\"], [3, \"ngTemplateOutlet\"], [\"role\", \"button\", 1, \"carousel-control-prev\", 3, \"click\"], [\"aria-hidden\", \"true\", 1, \"carousel-control-prev-icon\"], [1, \"sr-only\"], i18n_4, [\"role\", \"button\", 1, \"carousel-control-next\", 3, \"click\"], [\"aria-hidden\", \"true\", 1, \"carousel-control-next-icon\"], i18n_6]; }, template: function NgbCarousel_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, NgbCarousel_ol_0_Template, 2, 1, \"ol\", 0);\n ɵngcc0.ɵɵelementStart(1, \"div\", 1);\n ɵngcc0.ɵɵtemplate(2, NgbCarousel_div_2_Template, 2, 3, \"div\", 2);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(3, NgbCarousel_a_3_Template, 4, 0, \"a\", 3);\n ɵngcc0.ɵɵtemplate(4, NgbCarousel_a_4_Template, 4, 0, \"a\", 4);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.showNavigationIndicators);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.slides);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.showNavigationArrows);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.showNavigationArrows);\n } }, dependencies: [ɵngcc1.NgForOf, ɵngcc1.NgIf, ɵngcc1.NgTemplateOutlet], encapsulation: 2, changeDetection: 0 });\n/** @nocollapse */\nNgbCarousel.ctorParameters = () => [\n { type: NgbCarouselConfig },\n { type: undefined, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] },\n { type: NgZone },\n { type: ChangeDetectorRef }\n];\nNgbCarousel.propDecorators = {\n slides: [{ type: ContentChildren, args: [NgbSlide,] }],\n activeId: [{ type: Input }],\n interval: [{ type: Input }],\n wrap: [{ type: Input }],\n keyboard: [{ type: Input }],\n pauseOnHover: [{ type: Input }],\n showNavigationArrows: [{ type: Input }],\n showNavigationIndicators: [{ type: Input }],\n slide: [{ type: Output }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbCarousel, [{\n type: Component,\n args: [{\n selector: 'ngb-carousel',\n exportAs: 'ngbCarousel',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'carousel slide',\n '[style.display]': '\"block\"',\n 'tabIndex': '0',\n '(mouseenter)': 'pauseOnHover && pause()',\n '(mouseleave)': 'pauseOnHover && cycle()',\n '(keydown.arrowLeft)': 'keyboard && prev()',\n '(keydown.arrowRight)': 'keyboard && next()'\n },\n template: `\n
    \n
  1. \n
\n
\n
\n \n
\n
\n \n \n Previous\n \n \n \n Next\n \n `\n }]\n }], function () { return [{ type: NgbCarouselConfig }, { type: undefined, decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }] }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.ChangeDetectorRef }]; }, { slide: [{\n type: Output\n }], interval: [{\n type: Input\n }], wrap: [{\n type: Input\n }], keyboard: [{\n type: Input\n }], pauseOnHover: [{\n type: Input\n }], showNavigationArrows: [{\n type: Input\n }], showNavigationIndicators: [{\n type: Input\n }], activeId: [{\n type: Input\n }], slides: [{\n type: ContentChildren,\n args: [NgbSlide]\n }] }); })();\n/** @enum {string} */\nconst NgbSlideEventDirection = {\n LEFT: (/** @type {?} */ ('left')),\n RIGHT: (/** @type {?} */ ('right')),\n};\n/** @type {?} */\nconst NGB_CAROUSEL_DIRECTIVES = [NgbCarousel, NgbSlide];\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\nclass NgbCarouselModule {\n /**\n * Importing with '.forRoot()' is no longer necessary, you can simply import the module.\n * Will be removed in 4.0.0.\n *\n * @deprecated 3.0.0\n * @return {?}\n */\n static forRoot() { return { ngModule: NgbCarouselModule }; }\n}\nNgbCarouselModule.ɵfac = function NgbCarouselModule_Factory(t) { return new (t || NgbCarouselModule)(); };\nNgbCarouselModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgbCarouselModule });\nNgbCarouselModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [CommonModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbCarouselModule, [{\n type: NgModule,\n args: [{ declarations: NGB_CAROUSEL_DIRECTIVES, exports: NGB_CAROUSEL_DIRECTIVES, imports: [CommonModule] }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbCarouselModule, { declarations: function () { return [NgbCarousel, NgbSlide]; }, imports: function () { return [CommonModule]; }, exports: function () { return [NgbCarousel, NgbSlide]; } }); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/**\n * A directive to provide a simple way of hiding and showing elements on the page.\n */\nclass NgbCollapse {\n constructor() {\n /**\n * If `true`, will collapse the element or show it otherwise.\n */\n this.collapsed = false;\n }\n}\nNgbCollapse.ɵfac = function NgbCollapse_Factory(t) { return new (t || NgbCollapse)(); };\nNgbCollapse.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbCollapse, selectors: [[\"\", \"ngbCollapse\", \"\"]], hostVars: 4, hostBindings: function NgbCollapse_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"collapse\", true)(\"show\", !ctx.collapsed);\n } }, inputs: { collapsed: [\"ngbCollapse\", \"collapsed\"] }, exportAs: [\"ngbCollapse\"] });\nNgbCollapse.propDecorators = {\n collapsed: [{ type: Input, args: ['ngbCollapse',] }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbCollapse, [{\n type: Directive,\n args: [{\n selector: '[ngbCollapse]',\n exportAs: 'ngbCollapse',\n host: { '[class.collapse]': 'true', '[class.show]': '!collapsed' }\n }]\n }], function () { return []; }, { collapsed: [{\n type: Input,\n args: ['ngbCollapse']\n }] }); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\nclass NgbCollapseModule {\n /**\n * Importing with '.forRoot()' is no longer necessary, you can simply import the module.\n * Will be removed in 4.0.0.\n *\n * @deprecated 3.0.0\n * @return {?}\n */\n static forRoot() { return { ngModule: NgbCollapseModule }; }\n}\nNgbCollapseModule.ɵfac = function NgbCollapseModule_Factory(t) { return new (t || NgbCollapseModule)(); };\nNgbCollapseModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgbCollapseModule });\nNgbCollapseModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbCollapseModule, [{\n type: NgModule,\n args: [{ declarations: [NgbCollapse], exports: [NgbCollapse] }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbCollapseModule, { declarations: [NgbCollapse], exports: [NgbCollapse] }); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/**\n * A simple class that represents a date that datepicker also uses internally.\n *\n * It is the implementation of the `NgbDateStruct` interface that adds some convenience methods,\n * like `.equals()`, `.before()`, etc.\n *\n * All datepicker APIs consume `NgbDateStruct`, but return `NgbDate`.\n *\n * In many cases it is simpler to manipulate these objects together with\n * [`NgbCalendar`](#/components/datepicker/api#NgbCalendar) than native JS Dates.\n *\n * See the [date format overview](#/components/datepicker/overview#date-model) for more details.\n *\n * \\@since 3.0.0\n */\nclass NgbDate {\n /**\n * A **static method** that creates a new date object from the `NgbDateStruct`,\n *\n * ex. `NgbDate.from({year: 2000, month: 5, day: 1})`.\n *\n * If the `date` is already of `NgbDate` type, the method will return the same object.\n * @param {?} date\n * @return {?}\n */\n static from(date) {\n if (date instanceof NgbDate) {\n return date;\n }\n return date ? new NgbDate(date.year, date.month, date.day) : null;\n }\n /**\n * @param {?} year\n * @param {?} month\n * @param {?} day\n */\n constructor(year, month, day) {\n this.year = isInteger(year) ? year : null;\n this.month = isInteger(month) ? month : null;\n this.day = isInteger(day) ? day : null;\n }\n /**\n * Checks if the current date is equal to another date.\n * @param {?} other\n * @return {?}\n */\n equals(other) {\n return other && this.year === other.year && this.month === other.month && this.day === other.day;\n }\n /**\n * Checks if the current date is before another date.\n * @param {?} other\n * @return {?}\n */\n before(other) {\n if (!other) {\n return false;\n }\n if (this.year === other.year) {\n if (this.month === other.month) {\n return this.day === other.day ? false : this.day < other.day;\n }\n else {\n return this.month < other.month;\n }\n }\n else {\n return this.year < other.year;\n }\n }\n /**\n * Checks if the current date is after another date.\n * @param {?} other\n * @return {?}\n */\n after(other) {\n if (!other) {\n return false;\n }\n if (this.year === other.year) {\n if (this.month === other.month) {\n return this.day === other.day ? false : this.day > other.day;\n }\n else {\n return this.month > other.month;\n }\n }\n else {\n return this.year > other.year;\n }\n }\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/**\n * @param {?} jsDate\n * @return {?}\n */\nfunction fromJSDate(jsDate) {\n return new NgbDate(jsDate.getFullYear(), jsDate.getMonth() + 1, jsDate.getDate());\n}\n/**\n * @param {?} date\n * @return {?}\n */\nfunction toJSDate(date) {\n /** @type {?} */\n const jsDate = new Date(date.year, date.month - 1, date.day, 12);\n // this is done avoid 30 -> 1930 conversion\n if (!isNaN(jsDate.getTime())) {\n jsDate.setFullYear(date.year);\n }\n return jsDate;\n}\n/**\n * @return {?}\n */\nfunction NGB_DATEPICKER_CALENDAR_FACTORY() {\n return new NgbCalendarGregorian();\n}\n/**\n * A service that represents the calendar used by the datepicker.\n *\n * The default implementation uses the Gregorian calendar. You can inject it in your own\n * implementations if necessary to simplify `NgbDate` calculations.\n * @abstract\n */\nclass NgbCalendar {\n}\nNgbCalendar.ɵfac = function NgbCalendar_Factory(t) { return new (t || NgbCalendar)(); };\nNgbCalendar.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NgbCalendar, factory: function () { return NGB_DATEPICKER_CALENDAR_FACTORY(); }, providedIn: 'root' });\n/** @nocollapse */ NgbCalendar.ngInjectableDef = defineInjectable({ factory: NGB_DATEPICKER_CALENDAR_FACTORY, token: NgbCalendar, providedIn: \"root\" });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbCalendar, [{\n type: Injectable,\n args: [{ providedIn: 'root', useFactory: NGB_DATEPICKER_CALENDAR_FACTORY }]\n }], null, null); })();\nclass NgbCalendarGregorian extends NgbCalendar {\n /**\n * @return {?}\n */\n getDaysPerWeek() { return 7; }\n /**\n * @return {?}\n */\n getMonths() { return [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]; }\n /**\n * @return {?}\n */\n getWeeksPerMonth() { return 6; }\n /**\n * @param {?} date\n * @param {?=} period\n * @param {?=} number\n * @return {?}\n */\n getNext(date, period = 'd', number = 1) {\n /** @type {?} */\n let jsDate = toJSDate(date);\n switch (period) {\n case 'y':\n return new NgbDate(date.year + number, 1, 1);\n case 'm':\n jsDate = new Date(date.year, date.month + number - 1, 1, 12);\n break;\n case 'd':\n jsDate.setDate(jsDate.getDate() + number);\n break;\n default:\n return date;\n }\n return fromJSDate(jsDate);\n }\n /**\n * @param {?} date\n * @param {?=} period\n * @param {?=} number\n * @return {?}\n */\n getPrev(date, period = 'd', number = 1) { return this.getNext(date, period, -number); }\n /**\n * @param {?} date\n * @return {?}\n */\n getWeekday(date) {\n /** @type {?} */\n let jsDate = toJSDate(date);\n /** @type {?} */\n let day = jsDate.getDay();\n // in JS Date Sun=0, in ISO 8601 Sun=7\n return day === 0 ? 7 : day;\n }\n /**\n * @param {?} week\n * @param {?} firstDayOfWeek\n * @return {?}\n */\n getWeekNumber(week, firstDayOfWeek) {\n // in JS Date Sun=0, in ISO 8601 Sun=7\n if (firstDayOfWeek === 7) {\n firstDayOfWeek = 0;\n }\n /** @type {?} */\n const thursdayIndex = (4 + 7 - firstDayOfWeek) % 7;\n /** @type {?} */\n let date = week[thursdayIndex];\n /** @type {?} */\n const jsDate = toJSDate(date);\n jsDate.setDate(jsDate.getDate() + 4 - (jsDate.getDay() || 7)); // Thursday\n // Thursday\n /** @type {?} */\n const time = jsDate.getTime();\n jsDate.setMonth(0); // Compare with Jan 1\n jsDate.setDate(1);\n return Math.floor(Math.round((time - jsDate.getTime()) / 86400000) / 7) + 1;\n }\n /**\n * @return {?}\n */\n getToday() { return fromJSDate(new Date()); }\n /**\n * @param {?} date\n * @return {?}\n */\n isValid(date) {\n if (!date || !isInteger(date.year) || !isInteger(date.month) || !isInteger(date.day)) {\n return false;\n }\n // year 0 doesn't exist in Gregorian calendar\n if (date.year === 0) {\n return false;\n }\n /** @type {?} */\n const jsDate = toJSDate(date);\n return !isNaN(jsDate.getTime()) && jsDate.getFullYear() === date.year && jsDate.getMonth() + 1 === date.month &&\n jsDate.getDate() === date.day;\n }\n}\nNgbCalendarGregorian.ɵfac = /*@__PURE__*/ function () { let ɵNgbCalendarGregorian_BaseFactory; return function NgbCalendarGregorian_Factory(t) { return (ɵNgbCalendarGregorian_BaseFactory || (ɵNgbCalendarGregorian_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(NgbCalendarGregorian)))(t || NgbCalendarGregorian); }; }();\nNgbCalendarGregorian.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NgbCalendarGregorian, factory: NgbCalendarGregorian.ɵfac });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbCalendarGregorian, [{\n type: Injectable\n }], null, null); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/**\n * @param {?} prev\n * @param {?} next\n * @return {?}\n */\nfunction isChangedDate(prev, next) {\n return !dateComparator(prev, next);\n}\n/**\n * @param {?} prev\n * @param {?} next\n * @return {?}\n */\nfunction isChangedMonth(prev, next) {\n return !prev && !next ? false : !prev || !next ? true : prev.year !== next.year || prev.month !== next.month;\n}\n/**\n * @param {?} prev\n * @param {?} next\n * @return {?}\n */\nfunction dateComparator(prev, next) {\n return (!prev && !next) || (!!prev && !!next && prev.equals(next));\n}\n/**\n * @param {?} minDate\n * @param {?} maxDate\n * @return {?}\n */\nfunction checkMinBeforeMax(minDate, maxDate) {\n if (maxDate && minDate && maxDate.before(minDate)) {\n throw new Error(`'maxDate' ${maxDate} should be greater than 'minDate' ${minDate}`);\n }\n}\n/**\n * @param {?} date\n * @param {?} minDate\n * @param {?} maxDate\n * @return {?}\n */\nfunction checkDateInRange(date, minDate, maxDate) {\n if (date && minDate && date.before(minDate)) {\n return minDate;\n }\n if (date && maxDate && date.after(maxDate)) {\n return maxDate;\n }\n return date;\n}\n/**\n * @param {?} date\n * @param {?} state\n * @return {?}\n */\nfunction isDateSelectable(date, state) {\n const { minDate, maxDate, disabled, markDisabled } = state;\n // clang-format off\n return !(!isDefined(date) ||\n disabled ||\n (markDisabled && markDisabled(date, { year: date.year, month: date.month })) ||\n (minDate && date.before(minDate)) ||\n (maxDate && date.after(maxDate)));\n // clang-format on\n}\n/**\n * @param {?} calendar\n * @param {?} date\n * @param {?} minDate\n * @param {?} maxDate\n * @return {?}\n */\nfunction generateSelectBoxMonths(calendar, date, minDate, maxDate) {\n if (!date) {\n return [];\n }\n /** @type {?} */\n let months = calendar.getMonths(date.year);\n if (minDate && date.year === minDate.year) {\n /** @type {?} */\n const index = months.findIndex(month => month === minDate.month);\n months = months.slice(index);\n }\n if (maxDate && date.year === maxDate.year) {\n /** @type {?} */\n const index = months.findIndex(month => month === maxDate.month);\n months = months.slice(0, index + 1);\n }\n return months;\n}\n/**\n * @param {?} date\n * @param {?} minDate\n * @param {?} maxDate\n * @return {?}\n */\nfunction generateSelectBoxYears(date, minDate, maxDate) {\n if (!date) {\n return [];\n }\n /** @type {?} */\n const start = minDate && minDate.year || date.year - 10;\n /** @type {?} */\n const end = maxDate && maxDate.year || date.year + 10;\n return Array.from({ length: end - start + 1 }, (e, i) => start + i);\n}\n/**\n * @param {?} calendar\n * @param {?} date\n * @param {?} maxDate\n * @return {?}\n */\nfunction nextMonthDisabled(calendar, date, maxDate) {\n return maxDate && calendar.getNext(date, 'm').after(maxDate);\n}\n/**\n * @param {?} calendar\n * @param {?} date\n * @param {?} minDate\n * @return {?}\n */\nfunction prevMonthDisabled(calendar, date, minDate) {\n /** @type {?} */\n const prevDate = calendar.getPrev(date, 'm');\n return minDate && (prevDate.year === minDate.year && prevDate.month < minDate.month ||\n prevDate.year < minDate.year && minDate.month === 1);\n}\n/**\n * @param {?} calendar\n * @param {?} date\n * @param {?} state\n * @param {?} i18n\n * @param {?} force\n * @return {?}\n */\nfunction buildMonths(calendar, date, state, i18n, force) {\n const { displayMonths, months } = state;\n // move old months to a temporary array\n /** @type {?} */\n const monthsToReuse = months.splice(0, months.length);\n // generate new first dates, nullify or reuse months\n /** @type {?} */\n const firstDates = Array.from({ length: displayMonths }, (_, i) => {\n /** @type {?} */\n const firstDate = calendar.getNext(date, 'm', i);\n months[i] = null;\n if (!force) {\n /** @type {?} */\n const reusedIndex = monthsToReuse.findIndex(month => month.firstDate.equals(firstDate));\n // move reused month back to months\n if (reusedIndex !== -1) {\n months[i] = monthsToReuse.splice(reusedIndex, 1)[0];\n }\n }\n return firstDate;\n });\n // rebuild nullified months\n firstDates.forEach((firstDate, i) => {\n if (months[i] === null) {\n months[i] = buildMonth(calendar, firstDate, state, i18n, monthsToReuse.shift() || (/** @type {?} */ ({})));\n }\n });\n return months;\n}\n/**\n * @param {?} calendar\n * @param {?} date\n * @param {?} state\n * @param {?} i18n\n * @param {?=} month\n * @return {?}\n */\nfunction buildMonth(calendar, date, state, i18n, month = (/** @type {?} */ ({}))) {\n const { dayTemplateData, minDate, maxDate, firstDayOfWeek, markDisabled, outsideDays } = state;\n /** @type {?} */\n const calendarToday = calendar.getToday();\n month.firstDate = null;\n month.lastDate = null;\n month.number = date.month;\n month.year = date.year;\n month.weeks = month.weeks || [];\n month.weekdays = month.weekdays || [];\n date = getFirstViewDate(calendar, date, firstDayOfWeek);\n // month has weeks\n for (let week = 0; week < calendar.getWeeksPerMonth(); week++) {\n /** @type {?} */\n let weekObject = month.weeks[week];\n if (!weekObject) {\n weekObject = month.weeks[week] = { number: 0, days: [], collapsed: true };\n }\n /** @type {?} */\n const days = weekObject.days;\n // week has days\n for (let day = 0; day < calendar.getDaysPerWeek(); day++) {\n if (week === 0) {\n month.weekdays[day] = calendar.getWeekday(date);\n }\n /** @type {?} */\n const newDate = new NgbDate(date.year, date.month, date.day);\n /** @type {?} */\n const nextDate = calendar.getNext(newDate);\n /** @type {?} */\n const ariaLabel = i18n.getDayAriaLabel(newDate);\n // marking date as disabled\n /** @type {?} */\n let disabled = !!((minDate && newDate.before(minDate)) || (maxDate && newDate.after(maxDate)));\n if (!disabled && markDisabled) {\n disabled = markDisabled(newDate, { month: month.number, year: month.year });\n }\n // today\n /** @type {?} */\n let today = newDate.equals(calendarToday);\n // adding user-provided data to the context\n /** @type {?} */\n let contextUserData = dayTemplateData ? dayTemplateData(newDate, { month: month.number, year: month.year }) : undefined;\n // saving first date of the month\n if (month.firstDate === null && newDate.month === month.number) {\n month.firstDate = newDate;\n }\n // saving last date of the month\n if (newDate.month === month.number && nextDate.month !== month.number) {\n month.lastDate = newDate;\n }\n /** @type {?} */\n let dayObject = days[day];\n if (!dayObject) {\n dayObject = days[day] = (/** @type {?} */ ({}));\n }\n dayObject.date = newDate;\n dayObject.context = Object.assign(dayObject.context || {}, {\n $implicit: newDate,\n date: newDate,\n data: contextUserData,\n currentMonth: month.number, disabled,\n focused: false,\n selected: false, today\n });\n dayObject.tabindex = -1;\n dayObject.ariaLabel = ariaLabel;\n dayObject.hidden = false;\n date = nextDate;\n }\n weekObject.number = calendar.getWeekNumber(days.map(day => day.date), firstDayOfWeek);\n // marking week as collapsed\n weekObject.collapsed = outsideDays === 'collapsed' && days[0].date.month !== month.number &&\n days[days.length - 1].date.month !== month.number;\n }\n return month;\n}\n/**\n * @param {?} calendar\n * @param {?} date\n * @param {?} firstDayOfWeek\n * @return {?}\n */\nfunction getFirstViewDate(calendar, date, firstDayOfWeek) {\n /** @type {?} */\n const daysPerWeek = calendar.getDaysPerWeek();\n /** @type {?} */\n const firstMonthDate = new NgbDate(date.year, date.month, 1);\n /** @type {?} */\n const dayOfWeek = calendar.getWeekday(firstMonthDate) % daysPerWeek;\n return calendar.getPrev(firstMonthDate, 'd', (daysPerWeek + dayOfWeek - firstDayOfWeek) % daysPerWeek);\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/**\n * @param {?} locale\n * @return {?}\n */\nfunction NGB_DATEPICKER_18N_FACTORY(locale) {\n return new NgbDatepickerI18nDefault(locale);\n}\n/**\n * A service supplying i18n data to the datepicker component.\n *\n * The default implementation of this service uses the Angular locale and registered locale data for\n * weekdays and month names (as explained in the Angular i18n guide).\n *\n * It also provides a way to i18n data that depends on calendar calculations, like aria labels, day, week and year\n * numerals. For other static labels the datepicker uses the default Angular i18n.\n *\n * See the [i18n demo](#/components/datepicker/examples#i18n) and\n * [Hebrew calendar demo](#/components/datepicker/calendars#hebrew) on how to extend this class and define\n * a custom provider for i18n.\n * @abstract\n */\nclass NgbDatepickerI18n {\n /**\n * Returns the textual representation of a day that is rendered in a day cell.\n *\n * \\@since 3.0.0\n * @param {?} date\n * @return {?}\n */\n getDayNumerals(date) { return `${date.day}`; }\n /**\n * Returns the textual representation of a week number rendered by datepicker.\n *\n * \\@since 3.0.0\n * @param {?} weekNumber\n * @return {?}\n */\n getWeekNumerals(weekNumber) { return `${weekNumber}`; }\n /**\n * Returns the textual representation of a year that is rendered in the datepicker year select box.\n *\n * \\@since 3.0.0\n * @param {?} year\n * @return {?}\n */\n getYearNumerals(year) { return `${year}`; }\n}\nNgbDatepickerI18n.ɵfac = function NgbDatepickerI18n_Factory(t) { return new (t || NgbDatepickerI18n)(); };\nNgbDatepickerI18n.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NgbDatepickerI18n, factory: function NgbDatepickerI18n_Factory(t) { let r = null; if (t) {\n r = new t();\n }\n else {\n r = NGB_DATEPICKER_18N_FACTORY(ɵngcc0.ɵɵinject(LOCALE_ID));\n } return r; }, providedIn: 'root' });\n/** @nocollapse */ NgbDatepickerI18n.ngInjectableDef = defineInjectable({ factory: function NgbDatepickerI18n_Factory() { return NGB_DATEPICKER_18N_FACTORY(inject(LOCALE_ID)); }, token: NgbDatepickerI18n, providedIn: \"root\" });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDatepickerI18n, [{\n type: Injectable,\n args: [{ providedIn: 'root', useFactory: NGB_DATEPICKER_18N_FACTORY, deps: [LOCALE_ID] }]\n }], null, null); })();\nclass NgbDatepickerI18nDefault extends NgbDatepickerI18n {\n /**\n * @param {?} _locale\n */\n constructor(_locale) {\n super();\n this._locale = _locale;\n /** @type {?} */\n const weekdaysStartingOnSunday = getLocaleDayNames(_locale, FormStyle.Standalone, TranslationWidth.Short);\n this._weekdaysShort = weekdaysStartingOnSunday.map((day, index) => weekdaysStartingOnSunday[(index + 1) % 7]);\n this._monthsShort = getLocaleMonthNames(_locale, FormStyle.Standalone, TranslationWidth.Abbreviated);\n this._monthsFull = getLocaleMonthNames(_locale, FormStyle.Standalone, TranslationWidth.Wide);\n }\n /**\n * @param {?} weekday\n * @return {?}\n */\n getWeekdayShortName(weekday) { return this._weekdaysShort[weekday - 1]; }\n /**\n * @param {?} month\n * @return {?}\n */\n getMonthShortName(month) { return this._monthsShort[month - 1]; }\n /**\n * @param {?} month\n * @return {?}\n */\n getMonthFullName(month) { return this._monthsFull[month - 1]; }\n /**\n * @param {?} date\n * @return {?}\n */\n getDayAriaLabel(date) {\n /** @type {?} */\n const jsDate = new Date(date.year, date.month - 1, date.day);\n return formatDate(jsDate, 'fullDate', this._locale);\n }\n}\nNgbDatepickerI18nDefault.ɵfac = function NgbDatepickerI18nDefault_Factory(t) { return new (t || NgbDatepickerI18nDefault)(ɵngcc0.ɵɵinject(LOCALE_ID)); };\nNgbDatepickerI18nDefault.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NgbDatepickerI18nDefault, factory: NgbDatepickerI18nDefault.ɵfac });\n/** @nocollapse */\nNgbDatepickerI18nDefault.ctorParameters = () => [\n { type: String, decorators: [{ type: Inject, args: [LOCALE_ID,] }] }\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDatepickerI18nDefault, [{\n type: Injectable\n }], function () { return [{ type: String, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }]; }, null); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\nclass NgbDatepickerService {\n /**\n * @param {?} _calendar\n * @param {?} _i18n\n */\n constructor(_calendar, _i18n) {\n this._calendar = _calendar;\n this._i18n = _i18n;\n this._model$ = new Subject();\n this._select$ = new Subject();\n this._state = {\n disabled: false,\n displayMonths: 1,\n firstDayOfWeek: 1,\n focusVisible: false,\n months: [],\n navigation: 'select',\n outsideDays: 'visible',\n prevDisabled: false,\n nextDisabled: false,\n selectBoxes: { years: [], months: [] },\n selectedDate: null\n };\n }\n /**\n * @return {?}\n */\n get model$() { return this._model$.pipe(filter(model => model.months.length > 0)); }\n /**\n * @return {?}\n */\n get select$() { return this._select$.pipe(filter(date => date !== null)); }\n /**\n * @param {?} dayTemplateData\n * @return {?}\n */\n set dayTemplateData(dayTemplateData) {\n if (this._state.dayTemplateData !== dayTemplateData) {\n this._nextState({ dayTemplateData });\n }\n }\n /**\n * @param {?} disabled\n * @return {?}\n */\n set disabled(disabled) {\n if (this._state.disabled !== disabled) {\n this._nextState({ disabled });\n }\n }\n /**\n * @param {?} displayMonths\n * @return {?}\n */\n set displayMonths(displayMonths) {\n displayMonths = toInteger(displayMonths);\n if (isInteger(displayMonths) && displayMonths > 0 && this._state.displayMonths !== displayMonths) {\n this._nextState({ displayMonths });\n }\n }\n /**\n * @param {?} firstDayOfWeek\n * @return {?}\n */\n set firstDayOfWeek(firstDayOfWeek) {\n firstDayOfWeek = toInteger(firstDayOfWeek);\n if (isInteger(firstDayOfWeek) && firstDayOfWeek >= 0 && this._state.firstDayOfWeek !== firstDayOfWeek) {\n this._nextState({ firstDayOfWeek });\n }\n }\n /**\n * @param {?} focusVisible\n * @return {?}\n */\n set focusVisible(focusVisible) {\n if (this._state.focusVisible !== focusVisible && !this._state.disabled) {\n this._nextState({ focusVisible });\n }\n }\n /**\n * @param {?} date\n * @return {?}\n */\n set maxDate(date) {\n /** @type {?} */\n const maxDate = this.toValidDate(date, null);\n if (isChangedDate(this._state.maxDate, maxDate)) {\n this._nextState({ maxDate });\n }\n }\n /**\n * @param {?} markDisabled\n * @return {?}\n */\n set markDisabled(markDisabled) {\n if (this._state.markDisabled !== markDisabled) {\n this._nextState({ markDisabled });\n }\n }\n /**\n * @param {?} date\n * @return {?}\n */\n set minDate(date) {\n /** @type {?} */\n const minDate = this.toValidDate(date, null);\n if (isChangedDate(this._state.minDate, minDate)) {\n this._nextState({ minDate });\n }\n }\n /**\n * @param {?} navigation\n * @return {?}\n */\n set navigation(navigation) {\n if (this._state.navigation !== navigation) {\n this._nextState({ navigation });\n }\n }\n /**\n * @param {?} outsideDays\n * @return {?}\n */\n set outsideDays(outsideDays) {\n if (this._state.outsideDays !== outsideDays) {\n this._nextState({ outsideDays });\n }\n }\n /**\n * @param {?} date\n * @return {?}\n */\n focus(date) {\n if (!this._state.disabled && this._calendar.isValid(date) && isChangedDate(this._state.focusDate, date)) {\n this._nextState({ focusDate: date });\n }\n }\n /**\n * @param {?=} period\n * @param {?=} number\n * @return {?}\n */\n focusMove(period, number) {\n this.focus(this._calendar.getNext(this._state.focusDate, period, number));\n }\n /**\n * @return {?}\n */\n focusSelect() {\n if (isDateSelectable(this._state.focusDate, this._state)) {\n this.select(this._state.focusDate, { emitEvent: true });\n }\n }\n /**\n * @param {?} date\n * @return {?}\n */\n open(date) {\n /** @type {?} */\n const firstDate = this.toValidDate(date, this._calendar.getToday());\n if (!this._state.disabled && (!this._state.firstDate || isChangedMonth(this._state.firstDate, date))) {\n this._nextState({ firstDate });\n }\n }\n /**\n * @param {?} date\n * @param {?=} options\n * @return {?}\n */\n select(date, options = {}) {\n /** @type {?} */\n const selectedDate = this.toValidDate(date, null);\n if (!this._state.disabled) {\n if (isChangedDate(this._state.selectedDate, selectedDate)) {\n this._nextState({ selectedDate });\n }\n if (options.emitEvent && isDateSelectable(selectedDate, this._state)) {\n this._select$.next(selectedDate);\n }\n }\n }\n /**\n * @param {?} date\n * @param {?=} defaultValue\n * @return {?}\n */\n toValidDate(date, defaultValue) {\n /** @type {?} */\n const ngbDate = NgbDate.from(date);\n if (defaultValue === undefined) {\n defaultValue = this._calendar.getToday();\n }\n return this._calendar.isValid(ngbDate) ? ngbDate : defaultValue;\n }\n /**\n * @param {?} patch\n * @return {?}\n */\n _nextState(patch) {\n /** @type {?} */\n const newState = this._updateState(patch);\n this._patchContexts(newState);\n this._state = newState;\n this._model$.next(this._state);\n }\n /**\n * @param {?} state\n * @return {?}\n */\n _patchContexts(state) {\n const { months, displayMonths, selectedDate, focusDate, focusVisible, disabled, outsideDays } = state;\n state.months.forEach(month => {\n month.weeks.forEach(week => {\n week.days.forEach(day => {\n // patch focus flag\n if (focusDate) {\n day.context.focused = focusDate.equals(day.date) && focusVisible;\n }\n // calculating tabindex\n day.tabindex = !disabled && day.date.equals(focusDate) && focusDate.month === month.number ? 0 : -1;\n // override context disabled\n if (disabled === true) {\n day.context.disabled = true;\n }\n // patch selection flag\n if (selectedDate !== undefined) {\n day.context.selected = selectedDate !== null && selectedDate.equals(day.date);\n }\n // visibility\n if (month.number !== day.date.month) {\n day.hidden = outsideDays === 'hidden' || outsideDays === 'collapsed' ||\n (displayMonths > 1 && day.date.after(months[0].firstDate) &&\n day.date.before(months[displayMonths - 1].lastDate));\n }\n });\n });\n });\n }\n /**\n * @param {?} patch\n * @return {?}\n */\n _updateState(patch) {\n // patching fields\n /** @type {?} */\n const state = Object.assign({}, this._state, patch);\n /** @type {?} */\n let startDate = state.firstDate;\n // min/max dates changed\n if ('minDate' in patch || 'maxDate' in patch) {\n checkMinBeforeMax(state.minDate, state.maxDate);\n state.focusDate = checkDateInRange(state.focusDate, state.minDate, state.maxDate);\n state.firstDate = checkDateInRange(state.firstDate, state.minDate, state.maxDate);\n startDate = state.focusDate;\n }\n // disabled\n if ('disabled' in patch) {\n state.focusVisible = false;\n }\n // initial rebuild via 'select()'\n if ('selectedDate' in patch && this._state.months.length === 0) {\n startDate = state.selectedDate;\n }\n // terminate early if only focus visibility was changed\n if ('focusVisible' in patch) {\n return state;\n }\n // focus date changed\n if ('focusDate' in patch) {\n state.focusDate = checkDateInRange(state.focusDate, state.minDate, state.maxDate);\n startDate = state.focusDate;\n // nothing to rebuild if only focus changed and it is still visible\n if (state.months.length !== 0 && !state.focusDate.before(state.firstDate) &&\n !state.focusDate.after(state.lastDate)) {\n return state;\n }\n }\n // first date changed\n if ('firstDate' in patch) {\n state.firstDate = checkDateInRange(state.firstDate, state.minDate, state.maxDate);\n startDate = state.firstDate;\n }\n // rebuilding months\n if (startDate) {\n /** @type {?} */\n const forceRebuild = 'dayTemplateData' in patch || 'firstDayOfWeek' in patch || 'markDisabled' in patch ||\n 'minDate' in patch || 'maxDate' in patch || 'disabled' in patch || 'outsideDays' in patch;\n /** @type {?} */\n const months = buildMonths(this._calendar, startDate, state, this._i18n, forceRebuild);\n // updating months and boundary dates\n state.months = months;\n state.firstDate = months.length > 0 ? months[0].firstDate : undefined;\n state.lastDate = months.length > 0 ? months[months.length - 1].lastDate : undefined;\n // reset selected date if 'markDisabled' returns true\n if ('selectedDate' in patch && !isDateSelectable(state.selectedDate, state)) {\n state.selectedDate = null;\n }\n // adjusting focus after months were built\n if ('firstDate' in patch) {\n if (state.focusDate === undefined || state.focusDate.before(state.firstDate) ||\n state.focusDate.after(state.lastDate)) {\n state.focusDate = startDate;\n }\n }\n // adjusting months/years for the select box navigation\n /** @type {?} */\n const yearChanged = !this._state.firstDate || this._state.firstDate.year !== state.firstDate.year;\n /** @type {?} */\n const monthChanged = !this._state.firstDate || this._state.firstDate.month !== state.firstDate.month;\n if (state.navigation === 'select') {\n // years -> boundaries (min/max were changed)\n if ('minDate' in patch || 'maxDate' in patch || state.selectBoxes.years.length === 0 || yearChanged) {\n state.selectBoxes.years = generateSelectBoxYears(state.firstDate, state.minDate, state.maxDate);\n }\n // months -> when current year or boundaries change\n if ('minDate' in patch || 'maxDate' in patch || state.selectBoxes.months.length === 0 || yearChanged) {\n state.selectBoxes.months =\n generateSelectBoxMonths(this._calendar, state.firstDate, state.minDate, state.maxDate);\n }\n }\n else {\n state.selectBoxes = { years: [], months: [] };\n }\n // updating navigation arrows -> boundaries change (min/max) or month/year changes\n if ((state.navigation === 'arrows' || state.navigation === 'select') &&\n (monthChanged || yearChanged || 'minDate' in patch || 'maxDate' in patch || 'disabled' in patch)) {\n state.prevDisabled = state.disabled || prevMonthDisabled(this._calendar, state.firstDate, state.minDate);\n state.nextDisabled = state.disabled || nextMonthDisabled(this._calendar, state.lastDate, state.maxDate);\n }\n }\n return state;\n }\n}\nNgbDatepickerService.ɵfac = function NgbDatepickerService_Factory(t) { return new (t || NgbDatepickerService)(ɵngcc0.ɵɵinject(NgbCalendar), ɵngcc0.ɵɵinject(NgbDatepickerI18n)); };\nNgbDatepickerService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NgbDatepickerService, factory: NgbDatepickerService.ɵfac });\n/** @nocollapse */\nNgbDatepickerService.ctorParameters = () => [\n { type: NgbCalendar },\n { type: NgbDatepickerI18n }\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDatepickerService, [{\n type: Injectable\n }], function () { return [{ type: NgbCalendar }, { type: NgbDatepickerI18n }]; }, null); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/** @enum {number} */\nconst Key = {\n Tab: 9,\n Enter: 13,\n Escape: 27,\n Space: 32,\n PageUp: 33,\n PageDown: 34,\n End: 35,\n Home: 36,\n ArrowLeft: 37,\n ArrowUp: 38,\n ArrowRight: 39,\n ArrowDown: 40,\n};\nKey[Key.Tab] = 'Tab';\nKey[Key.Enter] = 'Enter';\nKey[Key.Escape] = 'Escape';\nKey[Key.Space] = 'Space';\nKey[Key.PageUp] = 'PageUp';\nKey[Key.PageDown] = 'PageDown';\nKey[Key.End] = 'End';\nKey[Key.Home] = 'Home';\nKey[Key.ArrowLeft] = 'ArrowLeft';\nKey[Key.ArrowUp] = 'ArrowUp';\nKey[Key.ArrowRight] = 'ArrowRight';\nKey[Key.ArrowDown] = 'ArrowDown';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\nclass NgbDatepickerKeyMapService {\n /**\n * @param {?} _service\n * @param {?} _calendar\n */\n constructor(_service, _calendar) {\n this._service = _service;\n this._calendar = _calendar;\n _service.model$.subscribe(model => {\n this._minDate = model.minDate;\n this._maxDate = model.maxDate;\n this._firstViewDate = model.firstDate;\n this._lastViewDate = model.lastDate;\n });\n }\n /**\n * @param {?} event\n * @return {?}\n */\n processKey(event) {\n // tslint:disable-next-line:deprecation\n switch (event.which) {\n case Key.PageUp:\n this._service.focusMove(event.shiftKey ? 'y' : 'm', -1);\n break;\n case Key.PageDown:\n this._service.focusMove(event.shiftKey ? 'y' : 'm', 1);\n break;\n case Key.End:\n this._service.focus(event.shiftKey ? this._maxDate : this._lastViewDate);\n break;\n case Key.Home:\n this._service.focus(event.shiftKey ? this._minDate : this._firstViewDate);\n break;\n case Key.ArrowLeft:\n this._service.focusMove('d', -1);\n break;\n case Key.ArrowUp:\n this._service.focusMove('d', -this._calendar.getDaysPerWeek());\n break;\n case Key.ArrowRight:\n this._service.focusMove('d', 1);\n break;\n case Key.ArrowDown:\n this._service.focusMove('d', this._calendar.getDaysPerWeek());\n break;\n case Key.Enter:\n case Key.Space:\n this._service.focusSelect();\n break;\n default:\n return;\n }\n // note 'return' in default case\n event.preventDefault();\n event.stopPropagation();\n }\n}\nNgbDatepickerKeyMapService.ɵfac = function NgbDatepickerKeyMapService_Factory(t) { return new (t || NgbDatepickerKeyMapService)(ɵngcc0.ɵɵinject(NgbDatepickerService), ɵngcc0.ɵɵinject(NgbCalendar)); };\nNgbDatepickerKeyMapService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NgbDatepickerKeyMapService, factory: NgbDatepickerKeyMapService.ɵfac });\n/** @nocollapse */\nNgbDatepickerKeyMapService.ctorParameters = () => [\n { type: NgbDatepickerService },\n { type: NgbCalendar }\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDatepickerKeyMapService, [{\n type: Injectable\n }], function () { return [{ type: NgbDatepickerService }, { type: NgbCalendar }]; }, null); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/** @enum {number} */\nconst NavigationEvent = {\n PREV: 0,\n NEXT: 1,\n};\nNavigationEvent[NavigationEvent.PREV] = 'PREV';\nNavigationEvent[NavigationEvent.NEXT] = 'NEXT';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/**\n * A configuration service for the [`NgbDatepicker`](#/components/datepicker/api#NgbDatepicker) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the datepickers used in the application.\n */\nclass NgbDatepickerConfig {\n constructor() {\n this.displayMonths = 1;\n this.firstDayOfWeek = 1;\n this.navigation = 'select';\n this.outsideDays = 'visible';\n this.showWeekdays = true;\n this.showWeekNumbers = false;\n }\n}\nNgbDatepickerConfig.ɵfac = function NgbDatepickerConfig_Factory(t) { return new (t || NgbDatepickerConfig)(); };\nNgbDatepickerConfig.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NgbDatepickerConfig, factory: NgbDatepickerConfig.ɵfac, providedIn: 'root' });\n/** @nocollapse */ NgbDatepickerConfig.ngInjectableDef = defineInjectable({ factory: function NgbDatepickerConfig_Factory() { return new NgbDatepickerConfig(); }, token: NgbDatepickerConfig, providedIn: \"root\" });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDatepickerConfig, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () { return []; }, null); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/**\n * @return {?}\n */\nfunction NGB_DATEPICKER_DATE_ADAPTER_FACTORY() {\n return new NgbDateStructAdapter();\n}\n/**\n * An abstract service that does the conversion between the internal datepicker `NgbDateStruct` model and\n * any provided user date model `D`, ex. a string, a native date, etc.\n *\n * The adapter is used **only** for conversion when binding datepicker to a form control,\n * ex. `[(ngModel)]=\"userDateModel\"`. Here `userDateModel` can be of any type.\n *\n * The default datepicker implementation assumes we use `NgbDateStruct` as a user model.\n *\n * See the [date format overview](#/components/datepicker/overview#date-model) for more details\n * and the [custom adapter demo](#/components/datepicker/examples#adapter) for an example.\n * @abstract\n * @template D\n */\nclass NgbDateAdapter {\n}\nNgbDateAdapter.ɵfac = function NgbDateAdapter_Factory(t) { return new (t || NgbDateAdapter)(); };\nNgbDateAdapter.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NgbDateAdapter, factory: function () { return NGB_DATEPICKER_DATE_ADAPTER_FACTORY(); }, providedIn: 'root' });\n/** @nocollapse */ NgbDateAdapter.ngInjectableDef = defineInjectable({ factory: NGB_DATEPICKER_DATE_ADAPTER_FACTORY, token: NgbDateAdapter, providedIn: \"root\" });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDateAdapter, [{\n type: Injectable,\n args: [{ providedIn: 'root', useFactory: NGB_DATEPICKER_DATE_ADAPTER_FACTORY }]\n }], null, null); })();\nclass NgbDateStructAdapter extends NgbDateAdapter {\n /**\n * Converts a NgbDateStruct value into NgbDateStruct value\n * @param {?} date\n * @return {?}\n */\n fromModel(date) {\n return (date && isInteger(date.year) && isInteger(date.month) && isInteger(date.day)) ?\n { year: date.year, month: date.month, day: date.day } :\n null;\n }\n /**\n * Converts a NgbDateStruct value into NgbDateStruct value\n * @param {?} date\n * @return {?}\n */\n toModel(date) {\n return (date && isInteger(date.year) && isInteger(date.month) && isInteger(date.day)) ?\n { year: date.year, month: date.month, day: date.day } :\n null;\n }\n}\nNgbDateStructAdapter.ɵfac = /*@__PURE__*/ function () { let ɵNgbDateStructAdapter_BaseFactory; return function NgbDateStructAdapter_Factory(t) { return (ɵNgbDateStructAdapter_BaseFactory || (ɵNgbDateStructAdapter_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(NgbDateStructAdapter)))(t || NgbDateStructAdapter); }; }();\nNgbDateStructAdapter.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NgbDateStructAdapter, factory: NgbDateStructAdapter.ɵfac });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDateStructAdapter, [{\n type: Injectable\n }], null, null); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/** @type {?} */\nconst NGB_DATEPICKER_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NgbDatepicker),\n multi: true\n};\n/**\n * A highly configurable component that helps you with selecting calendar dates.\n *\n * `NgbDatepicker` is meant to be displayed inline on a page or put inside a popup.\n */\nclass NgbDatepicker {\n /**\n * @param {?} _keyMapService\n * @param {?} _service\n * @param {?} _calendar\n * @param {?} i18n\n * @param {?} config\n * @param {?} _cd\n * @param {?} _elementRef\n * @param {?} _ngbDateAdapter\n * @param {?} _ngZone\n */\n constructor(_keyMapService, _service, _calendar, i18n, config, _cd, _elementRef, _ngbDateAdapter, _ngZone) {\n this._keyMapService = _keyMapService;\n this._service = _service;\n this._calendar = _calendar;\n this.i18n = i18n;\n this._cd = _cd;\n this._elementRef = _elementRef;\n this._ngbDateAdapter = _ngbDateAdapter;\n this._ngZone = _ngZone;\n this._destroyed$ = new Subject();\n /**\n * An event emitted right before the navigation happens and displayed month changes.\n *\n * See [`NgbDatepickerNavigateEvent`](#/components/datepicker/api#NgbDatepickerNavigateEvent) for the payload info.\n */\n this.navigate = new EventEmitter();\n /**\n * An event emitted when user selects a date using keyboard or mouse.\n *\n * The payload of the event is currently selected `NgbDate`.\n */\n this.select = new EventEmitter();\n this.onChange = (_) => { };\n this.onTouched = () => { };\n ['dayTemplate', 'dayTemplateData', 'displayMonths', 'firstDayOfWeek', 'footerTemplate', 'markDisabled', 'minDate',\n 'maxDate', 'navigation', 'outsideDays', 'showWeekdays', 'showWeekNumbers', 'startDate']\n .forEach(input => this[input] = config[input]);\n _service.select$.pipe(takeUntil(this._destroyed$)).subscribe(date => { this.select.emit(date); });\n _service.model$.pipe(takeUntil(this._destroyed$)).subscribe(model => {\n /** @type {?} */\n const newDate = model.firstDate;\n /** @type {?} */\n const oldDate = this.model ? this.model.firstDate : null;\n /** @type {?} */\n let navigationPrevented = false;\n // emitting navigation event if the first month changes\n if (!newDate.equals(oldDate)) {\n this.navigate.emit({\n current: oldDate ? { year: oldDate.year, month: oldDate.month } : null,\n next: { year: newDate.year, month: newDate.month },\n preventDefault: () => navigationPrevented = true\n });\n // can't prevent the very first navigation\n if (navigationPrevented && oldDate !== null) {\n this._service.open(oldDate);\n return;\n }\n }\n /** @type {?} */\n const newSelectedDate = model.selectedDate;\n /** @type {?} */\n const newFocusedDate = model.focusDate;\n /** @type {?} */\n const oldFocusedDate = this.model ? this.model.focusDate : null;\n this.model = model;\n // handling selection change\n if (isChangedDate(newSelectedDate, this._controlValue)) {\n this._controlValue = newSelectedDate;\n this.onTouched();\n this.onChange(this._ngbDateAdapter.toModel(newSelectedDate));\n }\n // handling focus change\n if (isChangedDate(newFocusedDate, oldFocusedDate) && oldFocusedDate && model.focusVisible) {\n this.focus();\n }\n _cd.markForCheck();\n });\n }\n /**\n * @return {?}\n */\n focus() {\n this._ngZone.onStable.asObservable().pipe(take(1)).subscribe(() => {\n /** @type {?} */\n const elementToFocus = this._elementRef.nativeElement.querySelector('div.ngb-dp-day[tabindex=\"0\"]');\n if (elementToFocus) {\n elementToFocus.focus();\n }\n });\n }\n /**\n * Navigates to the provided date.\n *\n * With the default calendar we use ISO 8601: 'month' is 1=Jan ... 12=Dec.\n * If nothing or invalid date provided calendar will open current month.\n *\n * Use the `[startDate]` input as an alternative.\n * @param {?=} date\n * @return {?}\n */\n navigateTo(date) {\n this._service.open(NgbDate.from(date ? date.day ? (/** @type {?} */ (date)) : Object.assign({}, date, { day: 1 }) : null));\n }\n /**\n * @return {?}\n */\n ngAfterViewInit() {\n this._ngZone.runOutsideAngular(() => {\n /** @type {?} */\n const focusIns$ = fromEvent(this._monthsEl.nativeElement, 'focusin');\n /** @type {?} */\n const focusOuts$ = fromEvent(this._monthsEl.nativeElement, 'focusout');\n // we're changing 'focusVisible' only when entering or leaving months view\n // and ignoring all focus events where both 'target' and 'related' target are day cells\n merge(focusIns$, focusOuts$)\n .pipe(filter(({ target, relatedTarget }) => !(hasClassName(target, 'ngb-dp-day') && hasClassName(relatedTarget, 'ngb-dp-day'))), takeUntil(this._destroyed$))\n .subscribe(({ type }) => this._ngZone.run(() => this._service.focusVisible = type === 'focusin'));\n });\n }\n /**\n * @return {?}\n */\n ngOnDestroy() { this._destroyed$.next(); }\n /**\n * @return {?}\n */\n ngOnInit() {\n if (this.model === undefined) {\n ['dayTemplateData', 'displayMonths', 'markDisabled', 'firstDayOfWeek', 'navigation', 'minDate', 'maxDate',\n 'outsideDays']\n .forEach(input => this._service[input] = this[input]);\n this.navigateTo(this.startDate);\n }\n }\n /**\n * @param {?} changes\n * @return {?}\n */\n ngOnChanges(changes) {\n ['dayTemplateData', 'displayMonths', 'markDisabled', 'firstDayOfWeek', 'navigation', 'minDate', 'maxDate',\n 'outsideDays']\n .filter(input => input in changes)\n .forEach(input => this._service[input] = this[input]);\n if ('startDate' in changes) {\n const { currentValue, previousValue } = changes.startDate;\n if (isChangedMonth(previousValue, currentValue)) {\n this.navigateTo(this.startDate);\n }\n }\n }\n /**\n * @param {?} date\n * @return {?}\n */\n onDateSelect(date) {\n this._service.focus(date);\n this._service.select(date, { emitEvent: true });\n }\n /**\n * @param {?} event\n * @return {?}\n */\n onKeyDown(event) { this._keyMapService.processKey(event); }\n /**\n * @param {?} date\n * @return {?}\n */\n onNavigateDateSelect(date) { this._service.open(date); }\n /**\n * @param {?} event\n * @return {?}\n */\n onNavigateEvent(event) {\n switch (event) {\n case NavigationEvent.PREV:\n this._service.open(this._calendar.getPrev(this.model.firstDate, 'm', 1));\n break;\n case NavigationEvent.NEXT:\n this._service.open(this._calendar.getNext(this.model.firstDate, 'm', 1));\n break;\n }\n }\n /**\n * @param {?} fn\n * @return {?}\n */\n registerOnChange(fn) { this.onChange = fn; }\n /**\n * @param {?} fn\n * @return {?}\n */\n registerOnTouched(fn) { this.onTouched = fn; }\n /**\n * @param {?} isDisabled\n * @return {?}\n */\n setDisabledState(isDisabled) { this._service.disabled = isDisabled; }\n /**\n * @param {?} value\n * @return {?}\n */\n writeValue(value) {\n this._controlValue = NgbDate.from(this._ngbDateAdapter.fromModel(value));\n this._service.select(this._controlValue);\n }\n}\nNgbDatepicker.ɵfac = function NgbDatepicker_Factory(t) { return new (t || NgbDatepicker)(ɵngcc0.ɵɵdirectiveInject(NgbDatepickerKeyMapService), ɵngcc0.ɵɵdirectiveInject(NgbDatepickerService), ɵngcc0.ɵɵdirectiveInject(NgbCalendar), ɵngcc0.ɵɵdirectiveInject(NgbDatepickerI18n), ɵngcc0.ɵɵdirectiveInject(NgbDatepickerConfig), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(NgbDateAdapter), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nNgbDatepicker.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NgbDatepicker, selectors: [[\"ngb-datepicker\"]], viewQuery: function NgbDatepicker_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c8, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._monthsEl = _t.first);\n } }, inputs: { dayTemplate: \"dayTemplate\", dayTemplateData: \"dayTemplateData\", displayMonths: \"displayMonths\", firstDayOfWeek: \"firstDayOfWeek\", footerTemplate: \"footerTemplate\", markDisabled: \"markDisabled\", maxDate: \"maxDate\", minDate: \"minDate\", navigation: \"navigation\", outsideDays: \"outsideDays\", showWeekdays: \"showWeekdays\", showWeekNumbers: \"showWeekNumbers\", startDate: \"startDate\" }, outputs: { navigate: \"navigate\", select: \"select\" }, exportAs: [\"ngbDatepicker\"], features: [ɵngcc0.ɵɵProvidersFeature([NGB_DATEPICKER_VALUE_ACCESSOR, NgbDatepickerService, NgbDatepickerKeyMapService]), ɵngcc0.ɵɵNgOnChangesFeature], decls: 8, vars: 3, consts: [[\"dt\", \"\"], [1, \"ngb-dp-header\", \"bg-light\"], [3, \"date\", \"months\", \"disabled\", \"showSelect\", \"prevDisabled\", \"nextDisabled\", \"selectBoxes\", \"navigate\", \"select\", 4, \"ngIf\"], [1, \"ngb-dp-months\", 3, \"keydown\"], [\"months\", \"\"], [\"ngFor\", \"\", 3, \"ngForOf\"], [3, \"ngTemplateOutlet\"], [\"ngbDatepickerDayView\", \"\", 3, \"date\", \"currentMonth\", \"selected\", \"disabled\", \"focused\"], [3, \"date\", \"months\", \"disabled\", \"showSelect\", \"prevDisabled\", \"nextDisabled\", \"selectBoxes\", \"navigate\", \"select\"], [1, \"ngb-dp-month\"], [\"class\", \"ngb-dp-month-name bg-light\", 4, \"ngIf\"], [3, \"month\", \"dayTemplate\", \"showWeekdays\", \"showWeekNumbers\", \"select\"], [1, \"ngb-dp-month-name\", \"bg-light\"]], template: function NgbDatepicker_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, NgbDatepicker_ng_template_0_Template, 1, 5, \"ng-template\", null, 0, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵelementStart(2, \"div\", 1);\n ɵngcc0.ɵɵtemplate(3, NgbDatepicker_ngb_datepicker_navigation_3_Template, 1, 7, \"ngb-datepicker-navigation\", 2);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(4, \"div\", 3, 4);\n ɵngcc0.ɵɵlistener(\"keydown\", function NgbDatepicker_Template_div_keydown_4_listener($event) { return ctx.onKeyDown($event); });\n ɵngcc0.ɵɵtemplate(6, NgbDatepicker_ng_template_6_Template, 3, 5, \"ng-template\", 5);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(7, NgbDatepicker_ng_template_7_Template, 0, 0, \"ng-template\", 6);\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.navigation !== \"none\");\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.model.months);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx.footerTemplate);\n } }, dependencies: function () { return [ɵngcc1.NgForOf, ɵngcc1.NgIf, ɵngcc1.NgTemplateOutlet, NgbDatepickerMonthView, NgbDatepickerNavigation, NgbDatepickerDayView]; }, styles: [\"ngb-datepicker{border:1px solid #dfdfdf;border-radius:.25rem;display:inline-block}ngb-datepicker-month-view{pointer-events:auto}ngb-datepicker.dropdown-menu{padding:0}.ngb-dp-body{z-index:1050}.ngb-dp-header{border-bottom:0;border-radius:.25rem .25rem 0 0;padding-top:.25rem}.ngb-dp-months{display:-ms-flexbox;display:flex}.ngb-dp-month{pointer-events:none}.ngb-dp-month-name{font-size:larger;height:2rem;line-height:2rem;text-align:center}.ngb-dp-month+.ngb-dp-month .ngb-dp-month-name,.ngb-dp-month+.ngb-dp-month .ngb-dp-week{padding-left:1rem}.ngb-dp-month:last-child .ngb-dp-week{padding-right:.25rem}.ngb-dp-month:first-child .ngb-dp-week{padding-left:.25rem}.ngb-dp-month .ngb-dp-week:last-child{padding-bottom:.25rem}\"], encapsulation: 2, changeDetection: 0 });\n/** @nocollapse */\nNgbDatepicker.ctorParameters = () => [\n { type: NgbDatepickerKeyMapService },\n { type: NgbDatepickerService },\n { type: NgbCalendar },\n { type: NgbDatepickerI18n },\n { type: NgbDatepickerConfig },\n { type: ChangeDetectorRef },\n { type: ElementRef },\n { type: NgbDateAdapter },\n { type: NgZone }\n];\nNgbDatepicker.propDecorators = {\n _monthsEl: [{ type: ViewChild, args: ['months',] }],\n dayTemplate: [{ type: Input }],\n dayTemplateData: [{ type: Input }],\n displayMonths: [{ type: Input }],\n firstDayOfWeek: [{ type: Input }],\n footerTemplate: [{ type: Input }],\n markDisabled: [{ type: Input }],\n maxDate: [{ type: Input }],\n minDate: [{ type: Input }],\n navigation: [{ type: Input }],\n outsideDays: [{ type: Input }],\n showWeekdays: [{ type: Input }],\n showWeekNumbers: [{ type: Input }],\n startDate: [{ type: Input }],\n navigate: [{ type: Output }],\n select: [{ type: Output }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDatepicker, [{\n type: Component,\n args: [{ exportAs: 'ngbDatepicker', selector: 'ngb-datepicker', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: `\n \n
\n
\n
\n\n
\n \n \n
\n\n
\n \n
\n
1 && navigation === 'select')\"\n class=\"ngb-dp-month-name bg-light\">\n {{ i18n.getMonthFullName(month.number, month.year) }} {{ i18n.getYearNumerals(month.year) }}\n
\n \n \n
\n
\n
\n\n \n `, providers: [NGB_DATEPICKER_VALUE_ACCESSOR, NgbDatepickerService, NgbDatepickerKeyMapService], styles: [\"ngb-datepicker{border:1px solid #dfdfdf;border-radius:.25rem;display:inline-block}ngb-datepicker-month-view{pointer-events:auto}ngb-datepicker.dropdown-menu{padding:0}.ngb-dp-body{z-index:1050}.ngb-dp-header{border-bottom:0;border-radius:.25rem .25rem 0 0;padding-top:.25rem}.ngb-dp-months{display:-ms-flexbox;display:flex}.ngb-dp-month{pointer-events:none}.ngb-dp-month-name{font-size:larger;height:2rem;line-height:2rem;text-align:center}.ngb-dp-month+.ngb-dp-month .ngb-dp-month-name,.ngb-dp-month+.ngb-dp-month .ngb-dp-week{padding-left:1rem}.ngb-dp-month:last-child .ngb-dp-week{padding-right:.25rem}.ngb-dp-month:first-child .ngb-dp-week{padding-left:.25rem}.ngb-dp-month .ngb-dp-week:last-child{padding-bottom:.25rem}\"] }]\n }], function () { return [{ type: NgbDatepickerKeyMapService }, { type: NgbDatepickerService }, { type: NgbCalendar }, { type: NgbDatepickerI18n }, { type: NgbDatepickerConfig }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc0.ElementRef }, { type: NgbDateAdapter }, { type: ɵngcc0.NgZone }]; }, { navigate: [{\n type: Output\n }], select: [{\n type: Output\n }], _monthsEl: [{\n type: ViewChild,\n args: ['months']\n }], dayTemplate: [{\n type: Input\n }], dayTemplateData: [{\n type: Input\n }], displayMonths: [{\n type: Input\n }], firstDayOfWeek: [{\n type: Input\n }], footerTemplate: [{\n type: Input\n }], markDisabled: [{\n type: Input\n }], maxDate: [{\n type: Input\n }], minDate: [{\n type: Input\n }], navigation: [{\n type: Input\n }], outsideDays: [{\n type: Input\n }], showWeekdays: [{\n type: Input\n }], showWeekNumbers: [{\n type: Input\n }], startDate: [{\n type: Input\n }] }); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\nclass NgbDatepickerMonthView {\n /**\n * @param {?} i18n\n */\n constructor(i18n) {\n this.i18n = i18n;\n this.select = new EventEmitter();\n }\n /**\n * @param {?} day\n * @return {?}\n */\n doSelect(day) {\n if (!day.context.disabled && !day.hidden) {\n this.select.emit(day.date);\n }\n }\n}\nNgbDatepickerMonthView.ɵfac = function NgbDatepickerMonthView_Factory(t) { return new (t || NgbDatepickerMonthView)(ɵngcc0.ɵɵdirectiveInject(NgbDatepickerI18n)); };\nNgbDatepickerMonthView.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NgbDatepickerMonthView, selectors: [[\"ngb-datepicker-month-view\"]], hostAttrs: [\"role\", \"grid\"], inputs: { dayTemplate: \"dayTemplate\", month: \"month\", showWeekdays: \"showWeekdays\", showWeekNumbers: \"showWeekNumbers\" }, outputs: { select: \"select\" }, decls: 2, vars: 2, consts: [[\"class\", \"ngb-dp-week ngb-dp-weekdays bg-light\", 4, \"ngIf\"], [\"ngFor\", \"\", 3, \"ngForOf\"], [1, \"ngb-dp-week\", \"ngb-dp-weekdays\", \"bg-light\"], [\"class\", \"ngb-dp-weekday ngb-dp-showweek\", 4, \"ngIf\"], [\"class\", \"ngb-dp-weekday small\", 4, \"ngFor\", \"ngForOf\"], [1, \"ngb-dp-weekday\", \"ngb-dp-showweek\"], [1, \"ngb-dp-weekday\", \"small\"], [\"class\", \"ngb-dp-week\", \"role\", \"row\", 4, \"ngIf\"], [\"role\", \"row\", 1, \"ngb-dp-week\"], [\"class\", \"ngb-dp-week-number small text-muted\", 4, \"ngIf\"], [\"class\", \"ngb-dp-day\", \"role\", \"gridcell\", 3, \"disabled\", \"tabindex\", \"hidden\", \"ngb-dp-today\", \"click\", 4, \"ngFor\", \"ngForOf\"], [1, \"ngb-dp-week-number\", \"small\", \"text-muted\"], [\"role\", \"gridcell\", 1, \"ngb-dp-day\", 3, \"tabindex\", \"click\"], [3, \"ngIf\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]], template: function NgbDatepickerMonthView_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, NgbDatepickerMonthView_div_0_Template, 3, 2, \"div\", 0);\n ɵngcc0.ɵɵtemplate(1, NgbDatepickerMonthView_ng_template_1_Template, 1, 1, \"ng-template\", 1);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.showWeekdays);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.month.weeks);\n } }, dependencies: [ɵngcc1.NgForOf, ɵngcc1.NgIf, ɵngcc1.NgTemplateOutlet], styles: [\"ngb-datepicker-month-view{display:block}.ngb-dp-week-number,.ngb-dp-weekday{line-height:2rem;text-align:center;font-style:italic}.ngb-dp-weekday{color:#5bc0de;color:var(--info)}.ngb-dp-week{border-radius:.25rem;display:-ms-flexbox;display:flex}.ngb-dp-weekdays{border-bottom:1px solid rgba(0,0,0,.125);border-radius:0}.ngb-dp-day,.ngb-dp-week-number,.ngb-dp-weekday{width:2rem;height:2rem}.ngb-dp-day{cursor:pointer}.ngb-dp-day.disabled,.ngb-dp-day.hidden{cursor:default}\"], encapsulation: 2 });\n/** @nocollapse */\nNgbDatepickerMonthView.ctorParameters = () => [\n { type: NgbDatepickerI18n }\n];\nNgbDatepickerMonthView.propDecorators = {\n dayTemplate: [{ type: Input }],\n month: [{ type: Input }],\n showWeekdays: [{ type: Input }],\n showWeekNumbers: [{ type: Input }],\n select: [{ type: Output }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDatepickerMonthView, [{\n type: Component,\n args: [{ selector: 'ngb-datepicker-month-view', host: { 'role': 'grid' }, encapsulation: ViewEncapsulation.None, template: `\n
\n
\n
\n {{ i18n.getWeekdayShortName(w) }}\n
\n
\n \n
\n
{{ i18n.getWeekNumerals(week.number) }}
\n
\n \n \n \n
\n
\n
\n `, styles: [\"ngb-datepicker-month-view{display:block}.ngb-dp-week-number,.ngb-dp-weekday{line-height:2rem;text-align:center;font-style:italic}.ngb-dp-weekday{color:#5bc0de;color:var(--info)}.ngb-dp-week{border-radius:.25rem;display:-ms-flexbox;display:flex}.ngb-dp-weekdays{border-bottom:1px solid rgba(0,0,0,.125);border-radius:0}.ngb-dp-day,.ngb-dp-week-number,.ngb-dp-weekday{width:2rem;height:2rem}.ngb-dp-day{cursor:pointer}.ngb-dp-day.disabled,.ngb-dp-day.hidden{cursor:default}\"] }]\n }], function () { return [{ type: NgbDatepickerI18n }]; }, { select: [{\n type: Output\n }], dayTemplate: [{\n type: Input\n }], month: [{\n type: Input\n }], showWeekdays: [{\n type: Input\n }], showWeekNumbers: [{\n type: Input\n }] }); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\nclass NgbDatepickerNavigation {\n /**\n * @param {?} i18n\n */\n constructor(i18n) {\n this.i18n = i18n;\n this.navigation = NavigationEvent;\n this.months = [];\n this.navigate = new EventEmitter();\n this.select = new EventEmitter();\n }\n}\nNgbDatepickerNavigation.ɵfac = function NgbDatepickerNavigation_Factory(t) { return new (t || NgbDatepickerNavigation)(ɵngcc0.ɵɵdirectiveInject(NgbDatepickerI18n)); };\nNgbDatepickerNavigation.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NgbDatepickerNavigation, selectors: [[\"ngb-datepicker-navigation\"]], inputs: { months: \"months\", date: \"date\", disabled: \"disabled\", showSelect: \"showSelect\", prevDisabled: \"prevDisabled\", nextDisabled: \"nextDisabled\", selectBoxes: \"selectBoxes\" }, outputs: { navigate: \"navigate\", select: \"select\" }, decls: 8, vars: 4, consts: function () { let i18n_9; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_datepicker_previous_month$$FESM2015_NG_BOOTSTRAP_JS_10 = goog.getMsg(\"Previous month\");\n i18n_9 = MSG_EXTERNAL_ngb_datepicker_previous_month$$FESM2015_NG_BOOTSTRAP_JS_10;\n }\n else {\n i18n_9 = $localize `:@@ngb.datepicker.previous-month␟c3b08b07b5ab98e7cdcf18df39355690ab7d3884␟8586908745456864217:Previous month`;\n } let i18n_11; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_datepicker_previous_month$$FESM2015_NG_BOOTSTRAP_JS_12 = goog.getMsg(\"Previous month\");\n i18n_11 = MSG_EXTERNAL_ngb_datepicker_previous_month$$FESM2015_NG_BOOTSTRAP_JS_12;\n }\n else {\n i18n_11 = $localize `:@@ngb.datepicker.previous-month␟c3b08b07b5ab98e7cdcf18df39355690ab7d3884␟8586908745456864217:Previous month`;\n } let i18n_13; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_datepicker_next_month$$FESM2015_NG_BOOTSTRAP_JS_14 = goog.getMsg(\"Next month\");\n i18n_13 = MSG_EXTERNAL_ngb_datepicker_next_month$$FESM2015_NG_BOOTSTRAP_JS_14;\n }\n else {\n i18n_13 = $localize `:@@ngb.datepicker.next-month␟4bd046985cfe13040d5ef0cd881edce0968a111a␟3628374603023447227:Next month`;\n } let i18n_15; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_datepicker_next_month$$FESM2015_NG_BOOTSTRAP_JS_16 = goog.getMsg(\"Next month\");\n i18n_15 = MSG_EXTERNAL_ngb_datepicker_next_month$$FESM2015_NG_BOOTSTRAP_JS_16;\n }\n else {\n i18n_15 = $localize `:@@ngb.datepicker.next-month␟4bd046985cfe13040d5ef0cd881edce0968a111a␟3628374603023447227:Next month`;\n } return [[1, \"ngb-dp-arrow\"], [\"type\", \"button\", \"aria-label\", i18n_9, \"title\", i18n_11, 1, \"btn\", \"btn-link\", \"ngb-dp-arrow-btn\", 3, \"disabled\", \"click\"], [1, \"ngb-dp-navigation-chevron\"], [\"class\", \"ngb-dp-navigation-select\", 3, \"date\", \"disabled\", \"months\", \"years\", \"select\", 4, \"ngIf\"], [4, \"ngIf\"], [1, \"ngb-dp-arrow\", \"right\"], [\"type\", \"button\", \"aria-label\", i18n_13, \"title\", i18n_15, 1, \"btn\", \"btn-link\", \"ngb-dp-arrow-btn\", 3, \"disabled\", \"click\"], [1, \"ngb-dp-navigation-select\", 3, \"date\", \"disabled\", \"months\", \"years\", \"select\"], [\"ngFor\", \"\", 3, \"ngForOf\"], [\"class\", \"ngb-dp-arrow\", 4, \"ngIf\"], [1, \"ngb-dp-month-name\"]]; }, template: function NgbDatepickerNavigation_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 0)(1, \"button\", 1);\n ɵngcc0.ɵɵlistener(\"click\", function NgbDatepickerNavigation_Template_button_click_1_listener() { return ctx.navigate.emit(ctx.navigation.PREV); });\n ɵngcc0.ɵɵelement(2, \"span\", 2);\n ɵngcc0.ɵɵelementEnd()();\n ɵngcc0.ɵɵtemplate(3, NgbDatepickerNavigation_ngb_datepicker_navigation_select_3_Template, 1, 4, \"ngb-datepicker-navigation-select\", 3);\n ɵngcc0.ɵɵtemplate(4, NgbDatepickerNavigation_4_Template, 1, 1, null, 4);\n ɵngcc0.ɵɵelementStart(5, \"div\", 5)(6, \"button\", 6);\n ɵngcc0.ɵɵlistener(\"click\", function NgbDatepickerNavigation_Template_button_click_6_listener() { return ctx.navigate.emit(ctx.navigation.NEXT); });\n ɵngcc0.ɵɵelement(7, \"span\", 2);\n ɵngcc0.ɵɵelementEnd()();\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"disabled\", ctx.prevDisabled);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.showSelect);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.showSelect);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"disabled\", ctx.nextDisabled);\n } }, dependencies: function () { return [ɵngcc1.NgForOf, ɵngcc1.NgIf, NgbDatepickerNavigationSelect]; }, styles: [\"ngb-datepicker-navigation{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.ngb-dp-navigation-chevron{border-style:solid;border-width:.2em .2em 0 0;display:inline-block;width:.75em;height:.75em;margin-left:.25em;margin-right:.15em;-webkit-transform:rotate(-135deg);transform:rotate(-135deg)}.right .ngb-dp-navigation-chevron{-webkit-transform:rotate(45deg);transform:rotate(45deg);margin-left:.15em;margin-right:.25em}.ngb-dp-arrow{display:-ms-flexbox;display:flex;-ms-flex:1 1 auto;flex:1 1 auto;padding-right:0;padding-left:0;margin:0;width:2rem;height:2rem}.ngb-dp-arrow.right{-ms-flex-pack:end;justify-content:flex-end}.ngb-dp-arrow-btn{padding:0 .25rem;margin:0 .5rem;border:none;background-color:transparent;z-index:1}.ngb-dp-arrow-btn:focus{outline-width:1px;outline-style:auto}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.ngb-dp-arrow-btn:focus{outline-style:solid}}.ngb-dp-month-name{font-size:larger;height:2rem;line-height:2rem;text-align:center}.ngb-dp-navigation-select{display:-ms-flexbox;display:flex;-ms-flex:1 1 9rem;flex:1 1 9rem}\"], encapsulation: 2, changeDetection: 0 });\n/** @nocollapse */\nNgbDatepickerNavigation.ctorParameters = () => [\n { type: NgbDatepickerI18n }\n];\nNgbDatepickerNavigation.propDecorators = {\n date: [{ type: Input }],\n disabled: [{ type: Input }],\n months: [{ type: Input }],\n showSelect: [{ type: Input }],\n prevDisabled: [{ type: Input }],\n nextDisabled: [{ type: Input }],\n selectBoxes: [{ type: Input }],\n navigate: [{ type: Output }],\n select: [{ type: Output }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDatepickerNavigation, [{\n type: Component,\n args: [{ selector: 'ngb-datepicker-navigation', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: `\n
\n \n
\n \n \n\n \n
0\">
\n
\n {{ i18n.getMonthFullName(month.number, month.year) }} {{ i18n.getYearNumerals(month.year) }}\n
\n
\n
\n
\n \n
\n `, styles: [\"ngb-datepicker-navigation{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.ngb-dp-navigation-chevron{border-style:solid;border-width:.2em .2em 0 0;display:inline-block;width:.75em;height:.75em;margin-left:.25em;margin-right:.15em;-webkit-transform:rotate(-135deg);transform:rotate(-135deg)}.right .ngb-dp-navigation-chevron{-webkit-transform:rotate(45deg);transform:rotate(45deg);margin-left:.15em;margin-right:.25em}.ngb-dp-arrow{display:-ms-flexbox;display:flex;-ms-flex:1 1 auto;flex:1 1 auto;padding-right:0;padding-left:0;margin:0;width:2rem;height:2rem}.ngb-dp-arrow.right{-ms-flex-pack:end;justify-content:flex-end}.ngb-dp-arrow-btn{padding:0 .25rem;margin:0 .5rem;border:none;background-color:transparent;z-index:1}.ngb-dp-arrow-btn:focus{outline-width:1px;outline-style:auto}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.ngb-dp-arrow-btn:focus{outline-style:solid}}.ngb-dp-month-name{font-size:larger;height:2rem;line-height:2rem;text-align:center}.ngb-dp-navigation-select{display:-ms-flexbox;display:flex;-ms-flex:1 1 9rem;flex:1 1 9rem}\"] }]\n }], function () { return [{ type: NgbDatepickerI18n }]; }, { months: [{\n type: Input\n }], navigate: [{\n type: Output\n }], select: [{\n type: Output\n }], date: [{\n type: Input\n }], disabled: [{\n type: Input\n }], showSelect: [{\n type: Input\n }], prevDisabled: [{\n type: Input\n }], nextDisabled: [{\n type: Input\n }], selectBoxes: [{\n type: Input\n }] }); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/** @type {?} */\nconst isContainedIn = (element, array) => array ? array.some(item => item.contains(element)) : false;\n/** @type {?} */\nconst matchesSelectorIfAny = (element, selector) => !selector || closest(element, selector) != null;\n// we'll have to use 'touch' events instead of 'mouse' events on iOS and add a more significant delay\n// to avoid re-opening when handling (click) on a toggling element\n// TODO: use proper Angular platform detection when NgbAutoClose becomes a service and we can inject PLATFORM_ID\n/** @type {?} */\nlet iOS = false;\nif (typeof navigator !== 'undefined') {\n iOS = !!navigator.userAgent && /iPad|iPhone|iPod/.test(navigator.userAgent);\n}\n/**\n * @param {?} zone\n * @param {?} document\n * @param {?} type\n * @param {?} close\n * @param {?} closed$\n * @param {?} insideElements\n * @param {?=} ignoreElements\n * @param {?=} insideSelector\n * @return {?}\n */\nfunction ngbAutoClose(zone, document, type, close, closed$, insideElements, ignoreElements, insideSelector) {\n // closing on ESC and outside clicks\n if (type) {\n zone.runOutsideAngular(() => {\n /** @type {?} */\n const shouldCloseOnClick = (event) => {\n /** @type {?} */\n const element = (/** @type {?} */ (event.target));\n if ((event instanceof MouseEvent && event.button === 2) || isContainedIn(element, ignoreElements)) {\n return false;\n }\n if (type === 'inside') {\n return isContainedIn(element, insideElements) && matchesSelectorIfAny(element, insideSelector);\n }\n else if (type === 'outside') {\n return !isContainedIn(element, insideElements);\n }\n else /* if (type === true) */ {\n return matchesSelectorIfAny(element, insideSelector) || !isContainedIn(element, insideElements);\n }\n };\n /** @type {?} */\n const escapes$ = fromEvent(document, 'keydown')\n .pipe(takeUntil(closed$), \n // tslint:disable-next-line:deprecation\n filter(e => e.which === Key.Escape));\n // we have to pre-calculate 'shouldCloseOnClick' on 'mousedown/touchstart',\n // because on 'mouseup/touchend' DOM nodes might be detached\n /** @type {?} */\n const mouseDowns$ = fromEvent(document, iOS ? 'touchstart' : 'mousedown')\n .pipe(map(shouldCloseOnClick), takeUntil(closed$));\n /** @type {?} */\n const closeableClicks$ = fromEvent(document, iOS ? 'touchend' : 'mouseup')\n .pipe(withLatestFrom(mouseDowns$), filter(([_, shouldClose]) => shouldClose), delay(iOS ? 16 : 0), takeUntil(closed$));\n race([escapes$, closeableClicks$]).subscribe(() => zone.run(close));\n });\n }\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/** @type {?} */\nconst FOCUSABLE_ELEMENTS_SELECTOR = [\n 'a[href]', 'button:not([disabled])', 'input:not([disabled]):not([type=\"hidden\"])', 'select:not([disabled])',\n 'textarea:not([disabled])', '[contenteditable]', '[tabindex]:not([tabindex=\"-1\"])'\n].join(', ');\n/**\n * Returns first and last focusable elements inside of a given element based on specific CSS selector\n * @param {?} element\n * @return {?}\n */\nfunction getFocusableBoundaryElements(element) {\n /** @type {?} */\n const list = Array.from((/** @type {?} */ (element.querySelectorAll(FOCUSABLE_ELEMENTS_SELECTOR))))\n .filter(el => el.tabIndex !== -1);\n return [list[0], list[list.length - 1]];\n}\n/**\n * Function that enforces browser focus to be trapped inside a DOM element.\n *\n * Works only for clicks inside the element and navigation with 'Tab', ignoring clicks outside of the element\n *\n * \\@param element The element around which focus will be trapped inside\n * \\@param stopFocusTrap$ The observable stream. When completed the focus trap will clean up listeners\n * and free internal resources\n * \\@param refocusOnClick Put the focus back to the last focused element whenever a click occurs on element (default to\n * false)\n * @type {?}\n */\nconst ngbFocusTrap = (element, stopFocusTrap$, refocusOnClick = false) => {\n // last focused element\n /** @type {?} */\n const lastFocusedElement$ = fromEvent(element, 'focusin').pipe(takeUntil(stopFocusTrap$), map(e => e.target));\n // 'tab' / 'shift+tab' stream\n fromEvent(element, 'keydown')\n .pipe(takeUntil(stopFocusTrap$), \n // tslint:disable:deprecation\n filter(e => e.which === Key.Tab), \n // tslint:enable:deprecation\n withLatestFrom(lastFocusedElement$))\n .subscribe(([tabEvent, focusedElement]) => {\n const [first, last] = getFocusableBoundaryElements(element);\n if ((focusedElement === first || focusedElement === element) && tabEvent.shiftKey) {\n last.focus();\n tabEvent.preventDefault();\n }\n if (focusedElement === last && !tabEvent.shiftKey) {\n first.focus();\n tabEvent.preventDefault();\n }\n });\n // inside click\n if (refocusOnClick) {\n fromEvent(element, 'click')\n .pipe(takeUntil(stopFocusTrap$), withLatestFrom(lastFocusedElement$), map(arr => (/** @type {?} */ (arr[1]))))\n .subscribe(lastFocusedElement => lastFocusedElement.focus());\n }\n};\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n// previous version:\n// https://github.com/angular-ui/bootstrap/blob/07c31d0731f7cb068a1932b8e01d2312b796b4ec/src/position/position.js\nclass Positioning {\n /**\n * @param {?} element\n * @return {?}\n */\n getAllStyles(element) { return window.getComputedStyle(element); }\n /**\n * @param {?} element\n * @param {?} prop\n * @return {?}\n */\n getStyle(element, prop) { return this.getAllStyles(element)[prop]; }\n /**\n * @param {?} element\n * @return {?}\n */\n isStaticPositioned(element) {\n return (this.getStyle(element, 'position') || 'static') === 'static';\n }\n /**\n * @param {?} element\n * @return {?}\n */\n offsetParent(element) {\n /** @type {?} */\n let offsetParentEl = (/** @type {?} */ (element.offsetParent)) || document.documentElement;\n while (offsetParentEl && offsetParentEl !== document.documentElement && this.isStaticPositioned(offsetParentEl)) {\n offsetParentEl = (/** @type {?} */ (offsetParentEl.offsetParent));\n }\n return offsetParentEl || document.documentElement;\n }\n /**\n * @param {?} element\n * @param {?=} round\n * @return {?}\n */\n position(element, round = true) {\n /** @type {?} */\n let elPosition;\n /** @type {?} */\n let parentOffset = { width: 0, height: 0, top: 0, bottom: 0, left: 0, right: 0 };\n if (this.getStyle(element, 'position') === 'fixed') {\n elPosition = element.getBoundingClientRect();\n elPosition = {\n top: elPosition.top,\n bottom: elPosition.bottom,\n left: elPosition.left,\n right: elPosition.right,\n height: elPosition.height,\n width: elPosition.width\n };\n }\n else {\n /** @type {?} */\n const offsetParentEl = this.offsetParent(element);\n elPosition = this.offset(element, false);\n if (offsetParentEl !== document.documentElement) {\n parentOffset = this.offset(offsetParentEl, false);\n }\n parentOffset.top += offsetParentEl.clientTop;\n parentOffset.left += offsetParentEl.clientLeft;\n }\n elPosition.top -= parentOffset.top;\n elPosition.bottom -= parentOffset.top;\n elPosition.left -= parentOffset.left;\n elPosition.right -= parentOffset.left;\n if (round) {\n elPosition.top = Math.round(elPosition.top);\n elPosition.bottom = Math.round(elPosition.bottom);\n elPosition.left = Math.round(elPosition.left);\n elPosition.right = Math.round(elPosition.right);\n }\n return elPosition;\n }\n /**\n * @param {?} element\n * @param {?=} round\n * @return {?}\n */\n offset(element, round = true) {\n /** @type {?} */\n const elBcr = element.getBoundingClientRect();\n /** @type {?} */\n const viewportOffset = {\n top: window.pageYOffset - document.documentElement.clientTop,\n left: window.pageXOffset - document.documentElement.clientLeft\n };\n /** @type {?} */\n let elOffset = {\n height: elBcr.height || element.offsetHeight,\n width: elBcr.width || element.offsetWidth,\n top: elBcr.top + viewportOffset.top,\n bottom: elBcr.bottom + viewportOffset.top,\n left: elBcr.left + viewportOffset.left,\n right: elBcr.right + viewportOffset.left\n };\n if (round) {\n elOffset.height = Math.round(elOffset.height);\n elOffset.width = Math.round(elOffset.width);\n elOffset.top = Math.round(elOffset.top);\n elOffset.bottom = Math.round(elOffset.bottom);\n elOffset.left = Math.round(elOffset.left);\n elOffset.right = Math.round(elOffset.right);\n }\n return elOffset;\n }\n /*\n Return false if the element to position is outside the viewport\n */\n /**\n * @param {?} hostElement\n * @param {?} targetElement\n * @param {?} placement\n * @param {?=} appendToBody\n * @return {?}\n */\n positionElements(hostElement, targetElement, placement, appendToBody) {\n const [placementPrimary = 'top', placementSecondary = 'center'] = placement.split('-');\n /** @type {?} */\n const hostElPosition = appendToBody ? this.offset(hostElement, false) : this.position(hostElement, false);\n /** @type {?} */\n const targetElStyles = this.getAllStyles(targetElement);\n /** @type {?} */\n const marginTop = parseFloat(targetElStyles.marginTop);\n /** @type {?} */\n const marginBottom = parseFloat(targetElStyles.marginBottom);\n /** @type {?} */\n const marginLeft = parseFloat(targetElStyles.marginLeft);\n /** @type {?} */\n const marginRight = parseFloat(targetElStyles.marginRight);\n /** @type {?} */\n let topPosition = 0;\n /** @type {?} */\n let leftPosition = 0;\n switch (placementPrimary) {\n case 'top':\n topPosition = (hostElPosition.top - (targetElement.offsetHeight + marginTop + marginBottom));\n break;\n case 'bottom':\n topPosition = (hostElPosition.top + hostElPosition.height);\n break;\n case 'left':\n leftPosition = (hostElPosition.left - (targetElement.offsetWidth + marginLeft + marginRight));\n break;\n case 'right':\n leftPosition = (hostElPosition.left + hostElPosition.width);\n break;\n }\n switch (placementSecondary) {\n case 'top':\n topPosition = hostElPosition.top;\n break;\n case 'bottom':\n topPosition = hostElPosition.top + hostElPosition.height - targetElement.offsetHeight;\n break;\n case 'left':\n leftPosition = hostElPosition.left;\n break;\n case 'right':\n leftPosition = hostElPosition.left + hostElPosition.width - targetElement.offsetWidth;\n break;\n case 'center':\n if (placementPrimary === 'top' || placementPrimary === 'bottom') {\n leftPosition = (hostElPosition.left + hostElPosition.width / 2 - targetElement.offsetWidth / 2);\n }\n else {\n topPosition = (hostElPosition.top + hostElPosition.height / 2 - targetElement.offsetHeight / 2);\n }\n break;\n }\n /// The translate3d/gpu acceleration render a blurry text on chrome, the next line is commented until a browser fix\n // targetElement.style.transform = `translate3d(${Math.round(leftPosition)}px, ${Math.floor(topPosition)}px, 0px)`;\n targetElement.style.transform = `translate(${Math.round(leftPosition)}px, ${Math.round(topPosition)}px)`;\n // Check if the targetElement is inside the viewport\n /** @type {?} */\n const targetElBCR = targetElement.getBoundingClientRect();\n /** @type {?} */\n const html = document.documentElement;\n /** @type {?} */\n const windowHeight = window.innerHeight || html.clientHeight;\n /** @type {?} */\n const windowWidth = window.innerWidth || html.clientWidth;\n return targetElBCR.left >= 0 && targetElBCR.top >= 0 && targetElBCR.right <= windowWidth &&\n targetElBCR.bottom <= windowHeight;\n }\n}\n/** @type {?} */\nconst placementSeparator = /\\s+/;\n/** @type {?} */\nconst positionService = new Positioning();\n/*\n * Accept the placement array and applies the appropriate placement dependent on the viewport.\n * Returns the applied placement.\n * In case of auto placement, placements are selected in order\n * 'top', 'bottom', 'left', 'right',\n * 'top-left', 'top-right',\n * 'bottom-left', 'bottom-right',\n * 'left-top', 'left-bottom',\n * 'right-top', 'right-bottom'.\n * */\n/**\n * @param {?} hostElement\n * @param {?} targetElement\n * @param {?} placement\n * @param {?=} appendToBody\n * @param {?=} baseClass\n * @return {?}\n */\nfunction positionElements(hostElement, targetElement, placement, appendToBody, baseClass) {\n /** @type {?} */\n let placementVals = Array.isArray(placement) ? placement : (/** @type {?} */ (placement.split(placementSeparator)));\n /** @type {?} */\n const allowedPlacements = [\n 'top', 'bottom', 'left', 'right', 'top-left', 'top-right', 'bottom-left', 'bottom-right', 'left-top', 'left-bottom',\n 'right-top', 'right-bottom'\n ];\n /** @type {?} */\n const classList = targetElement.classList;\n /** @type {?} */\n const addClassesToTarget = (targetPlacement) => {\n const [primary, secondary] = targetPlacement.split('-');\n /** @type {?} */\n const classes = [];\n if (baseClass) {\n classes.push(`${baseClass}-${primary}`);\n if (secondary) {\n classes.push(`${baseClass}-${primary}-${secondary}`);\n }\n classes.forEach((classname) => { classList.add(classname); });\n }\n return classes;\n };\n // Remove old placement classes to avoid issues\n if (baseClass) {\n allowedPlacements.forEach((placementToRemove) => { classList.remove(`${baseClass}-${placementToRemove}`); });\n }\n // replace auto placement with other placements\n /** @type {?} */\n let hasAuto = placementVals.findIndex(val => val === 'auto');\n if (hasAuto >= 0) {\n allowedPlacements.forEach(function (obj) {\n if (placementVals.find(val => val.search('^' + obj) !== -1) == null) {\n placementVals.splice(hasAuto++, 1, (/** @type {?} */ (obj)));\n }\n });\n }\n // coordinates where to position\n // Required for transform:\n /** @type {?} */\n const style = targetElement.style;\n style.position = 'absolute';\n style.top = '0';\n style.left = '0';\n style['will-change'] = 'transform';\n /** @type {?} */\n let testPlacement;\n /** @type {?} */\n let isInViewport = false;\n for (testPlacement of placementVals) {\n /** @type {?} */\n let addedClasses = addClassesToTarget(testPlacement);\n if (positionService.positionElements(hostElement, targetElement, testPlacement, appendToBody)) {\n isInViewport = true;\n break;\n }\n // Remove the baseClasses for further calculation\n if (baseClass) {\n addedClasses.forEach((classname) => { classList.remove(classname); });\n }\n }\n if (!isInViewport) {\n // If nothing match, the first placement is the default one\n testPlacement = placementVals[0];\n addClassesToTarget(testPlacement);\n positionService.positionElements(hostElement, targetElement, testPlacement, appendToBody);\n }\n return testPlacement;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/**\n * @return {?}\n */\nfunction NGB_DATEPICKER_PARSER_FORMATTER_FACTORY() {\n return new NgbDateISOParserFormatter();\n}\n/**\n * An abstract service for parsing and formatting dates for the\n * [`NgbInputDatepicker`](#/components/datepicker/api#NgbInputDatepicker) directive.\n * Converts between the internal `NgbDateStruct` model presentation and a `string` that is displayed in the\n * input element.\n *\n * When user types something in the input this service attempts to parse it into a `NgbDateStruct` object.\n * And vice versa, when users selects a date in the calendar with the mouse, it must be displayed as a `string`\n * in the input.\n *\n * Default implementation uses the ISO 8601 format, but you can provide another implementation via DI\n * to use an alternative string format or a custom parsing logic.\n *\n * See the [date format overview](#/components/datepicker/overview#date-model) for more details.\n * @abstract\n */\nclass NgbDateParserFormatter {\n}\nNgbDateParserFormatter.ɵfac = function NgbDateParserFormatter_Factory(t) { return new (t || NgbDateParserFormatter)(); };\nNgbDateParserFormatter.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NgbDateParserFormatter, factory: function () { return NGB_DATEPICKER_PARSER_FORMATTER_FACTORY(); }, providedIn: 'root' });\n/** @nocollapse */ NgbDateParserFormatter.ngInjectableDef = defineInjectable({ factory: NGB_DATEPICKER_PARSER_FORMATTER_FACTORY, token: NgbDateParserFormatter, providedIn: \"root\" });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDateParserFormatter, [{\n type: Injectable,\n args: [{ providedIn: 'root', useFactory: NGB_DATEPICKER_PARSER_FORMATTER_FACTORY }]\n }], null, null); })();\nclass NgbDateISOParserFormatter extends NgbDateParserFormatter {\n /**\n * @param {?} value\n * @return {?}\n */\n parse(value) {\n if (value) {\n /** @type {?} */\n const dateParts = value.trim().split('-');\n if (dateParts.length === 1 && isNumber(dateParts[0])) {\n return { year: toInteger(dateParts[0]), month: null, day: null };\n }\n else if (dateParts.length === 2 && isNumber(dateParts[0]) && isNumber(dateParts[1])) {\n return { year: toInteger(dateParts[0]), month: toInteger(dateParts[1]), day: null };\n }\n else if (dateParts.length === 3 && isNumber(dateParts[0]) && isNumber(dateParts[1]) && isNumber(dateParts[2])) {\n return { year: toInteger(dateParts[0]), month: toInteger(dateParts[1]), day: toInteger(dateParts[2]) };\n }\n }\n return null;\n }\n /**\n * @param {?} date\n * @return {?}\n */\n format(date) {\n return date ?\n `${date.year}-${isNumber(date.month) ? padNumber(date.month) : ''}-${isNumber(date.day) ? padNumber(date.day) : ''}` :\n '';\n }\n}\nNgbDateISOParserFormatter.ɵfac = /*@__PURE__*/ function () { let ɵNgbDateISOParserFormatter_BaseFactory; return function NgbDateISOParserFormatter_Factory(t) { return (ɵNgbDateISOParserFormatter_BaseFactory || (ɵNgbDateISOParserFormatter_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(NgbDateISOParserFormatter)))(t || NgbDateISOParserFormatter); }; }();\nNgbDateISOParserFormatter.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NgbDateISOParserFormatter, factory: NgbDateISOParserFormatter.ɵfac });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDateISOParserFormatter, [{\n type: Injectable\n }], null, null); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/** @type {?} */\nconst NGB_DATEPICKER_VALUE_ACCESSOR$1 = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NgbInputDatepicker),\n multi: true\n};\n/** @type {?} */\nconst NGB_DATEPICKER_VALIDATOR = {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => NgbInputDatepicker),\n multi: true\n};\n/**\n * A directive that allows to stick a datepicker popup to an input field.\n *\n * Manages interaction with the input field itself, does value formatting and provides forms integration.\n */\nclass NgbInputDatepicker {\n /**\n * @param {?} _parserFormatter\n * @param {?} _elRef\n * @param {?} _vcRef\n * @param {?} _renderer\n * @param {?} _cfr\n * @param {?} _ngZone\n * @param {?} _service\n * @param {?} _calendar\n * @param {?} _dateAdapter\n * @param {?} _document\n * @param {?} _changeDetector\n */\n constructor(_parserFormatter, _elRef, _vcRef, _renderer, _cfr, _ngZone, _service, _calendar, _dateAdapter, _document, _changeDetector) {\n this._parserFormatter = _parserFormatter;\n this._elRef = _elRef;\n this._vcRef = _vcRef;\n this._renderer = _renderer;\n this._cfr = _cfr;\n this._ngZone = _ngZone;\n this._service = _service;\n this._calendar = _calendar;\n this._dateAdapter = _dateAdapter;\n this._document = _document;\n this._changeDetector = _changeDetector;\n this._cRef = null;\n this._disabled = false;\n /**\n * Indicates whether the datepicker popup should be closed automatically after date selection / outside click or not.\n *\n * * `true` - the popup will close on both date selection and outside click.\n * * `false` - the popup can only be closed manually via `close()` or `toggle()` methods.\n * * `\"inside\"` - the popup will close on date selection, but not outside clicks.\n * * `\"outside\"` - the popup will close only on the outside click and not on date selection/inside clicks.\n *\n * \\@since 3.0.0\n */\n this.autoClose = true;\n /**\n * The preferred placement of the datepicker popup.\n *\n * Possible values are `\"top\"`, `\"top-left\"`, `\"top-right\"`, `\"bottom\"`, `\"bottom-left\"`,\n * `\"bottom-right\"`, `\"left\"`, `\"left-top\"`, `\"left-bottom\"`, `\"right\"`, `\"right-top\"`,\n * `\"right-bottom\"`\n *\n * Accepts an array of strings or a string with space separated possible values.\n *\n * The default order of preference is `\"bottom-left bottom-right top-left top-right\"`\n *\n * Please see the [positioning overview](#/positioning) for more details.\n */\n this.placement = ['bottom-left', 'bottom-right', 'top-left', 'top-right'];\n /**\n * An event emitted when user selects a date using keyboard or mouse.\n *\n * The payload of the event is currently selected `NgbDate`.\n *\n * \\@since 1.1.1\n */\n this.dateSelect = new EventEmitter();\n /**\n * Event emitted right after the navigation happens and displayed month changes.\n *\n * See [`NgbDatepickerNavigateEvent`](#/components/datepicker/api#NgbDatepickerNavigateEvent) for the payload info.\n */\n this.navigate = new EventEmitter();\n /**\n * An event fired after closing datepicker window.\n *\n * \\@since 4.2.0\n */\n this.closed = new EventEmitter();\n this._onChange = (_) => { };\n this._onTouched = () => { };\n this._validatorChange = () => { };\n this._zoneSubscription = _ngZone.onStable.subscribe(() => this._updatePopupPosition());\n }\n /**\n * @return {?}\n */\n get disabled() {\n return this._disabled;\n }\n /**\n * @param {?} value\n * @return {?}\n */\n set disabled(value) {\n this._disabled = value === '' || (value && value !== 'false');\n if (this.isOpen()) {\n this._cRef.instance.setDisabledState(this._disabled);\n }\n }\n /**\n * @param {?} fn\n * @return {?}\n */\n registerOnChange(fn) { this._onChange = fn; }\n /**\n * @param {?} fn\n * @return {?}\n */\n registerOnTouched(fn) { this._onTouched = fn; }\n /**\n * @param {?} fn\n * @return {?}\n */\n registerOnValidatorChange(fn) { this._validatorChange = fn; }\n /**\n * @param {?} isDisabled\n * @return {?}\n */\n setDisabledState(isDisabled) { this.disabled = isDisabled; }\n /**\n * @param {?} c\n * @return {?}\n */\n validate(c) {\n /** @type {?} */\n const value = c.value;\n if (value === null || value === undefined) {\n return null;\n }\n /** @type {?} */\n const ngbDate = this._fromDateStruct(this._dateAdapter.fromModel(value));\n if (!this._calendar.isValid(ngbDate)) {\n return { 'ngbDate': { invalid: c.value } };\n }\n if (this.minDate && ngbDate.before(NgbDate.from(this.minDate))) {\n return { 'ngbDate': { requiredBefore: this.minDate } };\n }\n if (this.maxDate && ngbDate.after(NgbDate.from(this.maxDate))) {\n return { 'ngbDate': { requiredAfter: this.maxDate } };\n }\n }\n /**\n * @param {?} value\n * @return {?}\n */\n writeValue(value) {\n this._model = this._fromDateStruct(this._dateAdapter.fromModel(value));\n this._writeModelValue(this._model);\n }\n /**\n * @param {?} value\n * @param {?=} updateView\n * @return {?}\n */\n manualDateChange(value, updateView = false) {\n /** @type {?} */\n const inputValueChanged = value !== this._inputValue;\n if (inputValueChanged) {\n this._inputValue = value;\n this._model = this._fromDateStruct(this._parserFormatter.parse(value));\n }\n if (inputValueChanged || !updateView) {\n this._onChange(this._model ? this._dateAdapter.toModel(this._model) : (value === '' ? null : value));\n }\n if (updateView && this._model) {\n this._writeModelValue(this._model);\n }\n }\n /**\n * @return {?}\n */\n isOpen() { return !!this._cRef; }\n /**\n * Opens the datepicker popup.\n *\n * If the related form control contains a valid date, the corresponding month will be opened.\n * @return {?}\n */\n open() {\n if (!this.isOpen()) {\n /** @type {?} */\n const cf = this._cfr.resolveComponentFactory(NgbDatepicker);\n this._cRef = this._vcRef.createComponent(cf);\n this._applyPopupStyling(this._cRef.location.nativeElement);\n this._applyDatepickerInputs(this._cRef.instance);\n this._subscribeForDatepickerOutputs(this._cRef.instance);\n this._cRef.instance.ngOnInit();\n this._cRef.instance.writeValue(this._dateAdapter.toModel(this._model));\n // date selection event handling\n this._cRef.instance.registerOnChange((selectedDate) => {\n this.writeValue(selectedDate);\n this._onChange(selectedDate);\n this._onTouched();\n });\n this._cRef.changeDetectorRef.detectChanges();\n this._cRef.instance.setDisabledState(this.disabled);\n if (this.container === 'body') {\n window.document.querySelector(this.container).appendChild(this._cRef.location.nativeElement);\n }\n // focus handling\n ngbFocusTrap(this._cRef.location.nativeElement, this.closed, true);\n this._cRef.instance.focus();\n ngbAutoClose(this._ngZone, this._document, this.autoClose, () => this.close(), this.closed, [], [this._elRef.nativeElement, this._cRef.location.nativeElement]);\n }\n }\n /**\n * Closes the datepicker popup.\n * @return {?}\n */\n close() {\n if (this.isOpen()) {\n this._vcRef.remove(this._vcRef.indexOf(this._cRef.hostView));\n this._cRef = null;\n this.closed.emit();\n this._changeDetector.markForCheck();\n }\n }\n /**\n * Toggles the datepicker popup.\n * @return {?}\n */\n toggle() {\n if (this.isOpen()) {\n this.close();\n }\n else {\n this.open();\n }\n }\n /**\n * Navigates to the provided date.\n *\n * With the default calendar we use ISO 8601: 'month' is 1=Jan ... 12=Dec.\n * If nothing or invalid date provided calendar will open current month.\n *\n * Use the `[startDate]` input as an alternative.\n * @param {?=} date\n * @return {?}\n */\n navigateTo(date) {\n if (this.isOpen()) {\n this._cRef.instance.navigateTo(date);\n }\n }\n /**\n * @return {?}\n */\n onBlur() { this._onTouched(); }\n /**\n * @param {?} changes\n * @return {?}\n */\n ngOnChanges(changes) {\n if (changes['minDate'] || changes['maxDate']) {\n this._validatorChange();\n }\n }\n /**\n * @return {?}\n */\n ngOnDestroy() {\n this.close();\n this._zoneSubscription.unsubscribe();\n }\n /**\n * @param {?} datepickerInstance\n * @return {?}\n */\n _applyDatepickerInputs(datepickerInstance) {\n ['dayTemplate', 'dayTemplateData', 'displayMonths', 'firstDayOfWeek', 'footerTemplate', 'markDisabled', 'minDate',\n 'maxDate', 'navigation', 'outsideDays', 'showNavigation', 'showWeekdays', 'showWeekNumbers']\n .forEach((optionName) => {\n if (this[optionName] !== undefined) {\n datepickerInstance[optionName] = this[optionName];\n }\n });\n datepickerInstance.startDate = this.startDate || this._model;\n }\n /**\n * @param {?} nativeElement\n * @return {?}\n */\n _applyPopupStyling(nativeElement) {\n this._renderer.addClass(nativeElement, 'dropdown-menu');\n this._renderer.addClass(nativeElement, 'show');\n if (this.container === 'body') {\n this._renderer.addClass(nativeElement, 'ngb-dp-body');\n }\n }\n /**\n * @param {?} datepickerInstance\n * @return {?}\n */\n _subscribeForDatepickerOutputs(datepickerInstance) {\n datepickerInstance.navigate.subscribe(navigateEvent => this.navigate.emit(navigateEvent));\n datepickerInstance.select.subscribe(date => {\n this.dateSelect.emit(date);\n if (this.autoClose === true || this.autoClose === 'inside') {\n this.close();\n }\n });\n }\n /**\n * @param {?} model\n * @return {?}\n */\n _writeModelValue(model) {\n /** @type {?} */\n const value = this._parserFormatter.format(model);\n this._inputValue = value;\n this._renderer.setProperty(this._elRef.nativeElement, 'value', value);\n if (this.isOpen()) {\n this._cRef.instance.writeValue(this._dateAdapter.toModel(model));\n this._onTouched();\n }\n }\n /**\n * @param {?} date\n * @return {?}\n */\n _fromDateStruct(date) {\n /** @type {?} */\n const ngbDate = date ? new NgbDate(date.year, date.month, date.day) : null;\n return this._calendar.isValid(ngbDate) ? ngbDate : null;\n }\n /**\n * @return {?}\n */\n _updatePopupPosition() {\n if (!this._cRef) {\n return;\n }\n /** @type {?} */\n let hostElement;\n if (typeof this.positionTarget === 'string') {\n hostElement = window.document.querySelector(this.positionTarget);\n }\n else if (this.positionTarget instanceof HTMLElement) {\n hostElement = this.positionTarget;\n }\n else {\n hostElement = this._elRef.nativeElement;\n }\n if (this.positionTarget && !hostElement) {\n throw new Error('ngbDatepicker could not find element declared in [positionTarget] to position against.');\n }\n positionElements(hostElement, this._cRef.location.nativeElement, this.placement, this.container === 'body');\n }\n}\nNgbInputDatepicker.ɵfac = function NgbInputDatepicker_Factory(t) { return new (t || NgbInputDatepicker)(ɵngcc0.ɵɵdirectiveInject(NgbDateParserFormatter), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ViewContainerRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ComponentFactoryResolver), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(NgbDatepickerService), ɵngcc0.ɵɵdirectiveInject(NgbCalendar), ɵngcc0.ɵɵdirectiveInject(NgbDateAdapter), ɵngcc0.ɵɵdirectiveInject(DOCUMENT), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\nNgbInputDatepicker.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbInputDatepicker, selectors: [[\"input\", \"ngbDatepicker\", \"\"]], hostVars: 1, hostBindings: function NgbInputDatepicker_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"input\", function NgbInputDatepicker_input_HostBindingHandler($event) { return ctx.manualDateChange($event.target.value); })(\"change\", function NgbInputDatepicker_change_HostBindingHandler($event) { return ctx.manualDateChange($event.target.value, true); })(\"blur\", function NgbInputDatepicker_blur_HostBindingHandler() { return ctx.onBlur(); });\n } if (rf & 2) {\n ɵngcc0.ɵɵhostProperty(\"disabled\", ctx.disabled);\n } }, inputs: { autoClose: \"autoClose\", placement: \"placement\", disabled: \"disabled\", dayTemplate: \"dayTemplate\", dayTemplateData: \"dayTemplateData\", displayMonths: \"displayMonths\", firstDayOfWeek: \"firstDayOfWeek\", footerTemplate: \"footerTemplate\", markDisabled: \"markDisabled\", minDate: \"minDate\", maxDate: \"maxDate\", navigation: \"navigation\", outsideDays: \"outsideDays\", showWeekdays: \"showWeekdays\", showWeekNumbers: \"showWeekNumbers\", startDate: \"startDate\", container: \"container\", positionTarget: \"positionTarget\" }, outputs: { dateSelect: \"dateSelect\", navigate: \"navigate\", closed: \"closed\" }, exportAs: [\"ngbDatepicker\"], features: [ɵngcc0.ɵɵProvidersFeature([NGB_DATEPICKER_VALUE_ACCESSOR$1, NGB_DATEPICKER_VALIDATOR, NgbDatepickerService]), ɵngcc0.ɵɵNgOnChangesFeature] });\n/** @nocollapse */\nNgbInputDatepicker.ctorParameters = () => [\n { type: NgbDateParserFormatter },\n { type: ElementRef },\n { type: ViewContainerRef },\n { type: Renderer2 },\n { type: ComponentFactoryResolver },\n { type: NgZone },\n { type: NgbDatepickerService },\n { type: NgbCalendar },\n { type: NgbDateAdapter },\n { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },\n { type: ChangeDetectorRef }\n];\nNgbInputDatepicker.propDecorators = {\n autoClose: [{ type: Input }],\n dayTemplate: [{ type: Input }],\n dayTemplateData: [{ type: Input }],\n displayMonths: [{ type: Input }],\n firstDayOfWeek: [{ type: Input }],\n footerTemplate: [{ type: Input }],\n markDisabled: [{ type: Input }],\n minDate: [{ type: Input }],\n maxDate: [{ type: Input }],\n navigation: [{ type: Input }],\n outsideDays: [{ type: Input }],\n placement: [{ type: Input }],\n showWeekdays: [{ type: Input }],\n showWeekNumbers: [{ type: Input }],\n startDate: [{ type: Input }],\n container: [{ type: Input }],\n positionTarget: [{ type: Input }],\n dateSelect: [{ type: Output }],\n navigate: [{ type: Output }],\n closed: [{ type: Output }],\n disabled: [{ type: Input }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbInputDatepicker, [{\n type: Directive,\n args: [{\n selector: 'input[ngbDatepicker]',\n exportAs: 'ngbDatepicker',\n host: {\n '(input)': 'manualDateChange($event.target.value)',\n '(change)': 'manualDateChange($event.target.value, true)',\n '(blur)': 'onBlur()',\n '[disabled]': 'disabled'\n },\n providers: [NGB_DATEPICKER_VALUE_ACCESSOR$1, NGB_DATEPICKER_VALIDATOR, NgbDatepickerService]\n }]\n }], function () { return [{ type: NgbDateParserFormatter }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.ViewContainerRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.ComponentFactoryResolver }, { type: ɵngcc0.NgZone }, { type: NgbDatepickerService }, { type: NgbCalendar }, { type: NgbDateAdapter }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: ɵngcc0.ChangeDetectorRef }]; }, { autoClose: [{\n type: Input\n }], placement: [{\n type: Input\n }], dateSelect: [{\n type: Output\n }], navigate: [{\n type: Output\n }], closed: [{\n type: Output\n }], disabled: [{\n type: Input\n }], dayTemplate: [{\n type: Input\n }], dayTemplateData: [{\n type: Input\n }], displayMonths: [{\n type: Input\n }], firstDayOfWeek: [{\n type: Input\n }], footerTemplate: [{\n type: Input\n }], markDisabled: [{\n type: Input\n }], minDate: [{\n type: Input\n }], maxDate: [{\n type: Input\n }], navigation: [{\n type: Input\n }], outsideDays: [{\n type: Input\n }], showWeekdays: [{\n type: Input\n }], showWeekNumbers: [{\n type: Input\n }], startDate: [{\n type: Input\n }], container: [{\n type: Input\n }], positionTarget: [{\n type: Input\n }] }); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\nclass NgbDatepickerDayView {\n /**\n * @param {?} i18n\n */\n constructor(i18n) {\n this.i18n = i18n;\n }\n /**\n * @return {?}\n */\n isMuted() { return !this.selected && (this.date.month !== this.currentMonth || this.disabled); }\n}\nNgbDatepickerDayView.ɵfac = function NgbDatepickerDayView_Factory(t) { return new (t || NgbDatepickerDayView)(ɵngcc0.ɵɵdirectiveInject(NgbDatepickerI18n)); };\nNgbDatepickerDayView.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NgbDatepickerDayView, selectors: [[\"\", \"ngbDatepickerDayView\", \"\"]], hostAttrs: [1, \"btn-light\"], hostVars: 10, hostBindings: function NgbDatepickerDayView_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"bg-primary\", ctx.selected)(\"text-white\", ctx.selected)(\"text-muted\", ctx.isMuted())(\"outside\", ctx.isMuted())(\"active\", ctx.focused);\n } }, inputs: { currentMonth: \"currentMonth\", date: \"date\", disabled: \"disabled\", focused: \"focused\", selected: \"selected\" }, attrs: _c17, decls: 1, vars: 1, template: function NgbDatepickerDayView_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtext(0);\n } if (rf & 2) {\n ɵngcc0.ɵɵtextInterpolate(ctx.i18n.getDayNumerals(ctx.date));\n } }, styles: [\"[ngbDatepickerDayView]{text-align:center;width:2rem;height:2rem;line-height:2rem;border-radius:.25rem;background:0 0}[ngbDatepickerDayView].outside{opacity:.5}\"], encapsulation: 2, changeDetection: 0 });\n/** @nocollapse */\nNgbDatepickerDayView.ctorParameters = () => [\n { type: NgbDatepickerI18n }\n];\nNgbDatepickerDayView.propDecorators = {\n currentMonth: [{ type: Input }],\n date: [{ type: Input }],\n disabled: [{ type: Input }],\n focused: [{ type: Input }],\n selected: [{ type: Input }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDatepickerDayView, [{\n type: Component,\n args: [{ selector: '[ngbDatepickerDayView]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {\n 'class': 'btn-light',\n '[class.bg-primary]': 'selected',\n '[class.text-white]': 'selected',\n '[class.text-muted]': 'isMuted()',\n '[class.outside]': 'isMuted()',\n '[class.active]': 'focused'\n }, template: `{{ i18n.getDayNumerals(date) }}`, styles: [\"[ngbDatepickerDayView]{text-align:center;width:2rem;height:2rem;line-height:2rem;border-radius:.25rem;background:0 0}[ngbDatepickerDayView].outside{opacity:.5}\"] }]\n }], function () { return [{ type: NgbDatepickerI18n }]; }, { currentMonth: [{\n type: Input\n }], date: [{\n type: Input\n }], disabled: [{\n type: Input\n }], focused: [{\n type: Input\n }], selected: [{\n type: Input\n }] }); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\nclass NgbDatepickerNavigationSelect {\n /**\n * @param {?} i18n\n */\n constructor(i18n) {\n this.i18n = i18n;\n this.select = new EventEmitter();\n }\n /**\n * @param {?} month\n * @return {?}\n */\n changeMonth(month) { this.select.emit(new NgbDate(this.date.year, toInteger(month), 1)); }\n /**\n * @param {?} year\n * @return {?}\n */\n changeYear(year) { this.select.emit(new NgbDate(toInteger(year), this.date.month, 1)); }\n}\nNgbDatepickerNavigationSelect.ɵfac = function NgbDatepickerNavigationSelect_Factory(t) { return new (t || NgbDatepickerNavigationSelect)(ɵngcc0.ɵɵdirectiveInject(NgbDatepickerI18n)); };\nNgbDatepickerNavigationSelect.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NgbDatepickerNavigationSelect, selectors: [[\"ngb-datepicker-navigation-select\"]], inputs: { date: \"date\", disabled: \"disabled\", months: \"months\", years: \"years\" }, outputs: { select: \"select\" }, decls: 4, vars: 6, consts: function () { let i18n_18; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_datepicker_select_month$$FESM2015_NG_BOOTSTRAP_JS_19 = goog.getMsg(\"Select month\");\n i18n_18 = MSG_EXTERNAL_ngb_datepicker_select_month$$FESM2015_NG_BOOTSTRAP_JS_19;\n }\n else {\n i18n_18 = $localize `:@@ngb.datepicker.select-month␟1dbc84807f35518112f62e5775d1daebd3d8462b␟2253869508135064750:Select month`;\n } let i18n_20; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_datepicker_select_month$$FESM2015_NG_BOOTSTRAP_JS_21 = goog.getMsg(\"Select month\");\n i18n_20 = MSG_EXTERNAL_ngb_datepicker_select_month$$FESM2015_NG_BOOTSTRAP_JS_21;\n }\n else {\n i18n_20 = $localize `:@@ngb.datepicker.select-month␟1dbc84807f35518112f62e5775d1daebd3d8462b␟2253869508135064750:Select month`;\n } let i18n_22; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_datepicker_select_year$$FESM2015_NG_BOOTSTRAP_JS_23 = goog.getMsg(\"Select year\");\n i18n_22 = MSG_EXTERNAL_ngb_datepicker_select_year$$FESM2015_NG_BOOTSTRAP_JS_23;\n }\n else {\n i18n_22 = $localize `:@@ngb.datepicker.select-year␟8ceb09d002bf0c5d1cac171dfbffe1805d2b3962␟8852264961585484321:Select year`;\n } let i18n_24; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_datepicker_select_year$$FESM2015_NG_BOOTSTRAP_JS_25 = goog.getMsg(\"Select year\");\n i18n_24 = MSG_EXTERNAL_ngb_datepicker_select_year$$FESM2015_NG_BOOTSTRAP_JS_25;\n }\n else {\n i18n_24 = $localize `:@@ngb.datepicker.select-year␟8ceb09d002bf0c5d1cac171dfbffe1805d2b3962␟8852264961585484321:Select year`;\n } return [[\"aria-label\", i18n_18, \"title\", i18n_20, 1, \"custom-select\", 3, \"disabled\", \"value\", \"change\"], [3, \"value\", 4, \"ngFor\", \"ngForOf\"], [\"aria-label\", i18n_22, \"title\", i18n_24, 1, \"custom-select\", 3, \"disabled\", \"value\", \"change\"], [3, \"value\"]]; }, template: function NgbDatepickerNavigationSelect_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"select\", 0);\n ɵngcc0.ɵɵlistener(\"change\", function NgbDatepickerNavigationSelect_Template_select_change_0_listener($event) { return ctx.changeMonth($event.target.value); });\n ɵngcc0.ɵɵtemplate(1, NgbDatepickerNavigationSelect_option_1_Template, 2, 3, \"option\", 1);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(2, \"select\", 2);\n ɵngcc0.ɵɵlistener(\"change\", function NgbDatepickerNavigationSelect_Template_select_change_2_listener($event) { return ctx.changeYear($event.target.value); });\n ɵngcc0.ɵɵtemplate(3, NgbDatepickerNavigationSelect_option_3_Template, 2, 2, \"option\", 1);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"disabled\", ctx.disabled)(\"value\", ctx.date == null ? null : ctx.date.month);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.months);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"disabled\", ctx.disabled)(\"value\", ctx.date == null ? null : ctx.date.year);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.years);\n } }, dependencies: [ɵngcc1.NgForOf, ɵngcc2.NgSelectOption, ɵngcc2.ɵNgSelectMultipleOption], styles: [\"ngb-datepicker-navigation-select>.custom-select{-ms-flex:1 1 auto;flex:1 1 auto;padding:0 .5rem;font-size:.875rem;height:1.85rem}\"], encapsulation: 2, changeDetection: 0 });\n/** @nocollapse */\nNgbDatepickerNavigationSelect.ctorParameters = () => [\n { type: NgbDatepickerI18n }\n];\nNgbDatepickerNavigationSelect.propDecorators = {\n date: [{ type: Input }],\n disabled: [{ type: Input }],\n months: [{ type: Input }],\n years: [{ type: Input }],\n select: [{ type: Output }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDatepickerNavigationSelect, [{\n type: Component,\n args: [{ selector: 'ngb-datepicker-navigation-select', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: `\n \n \n \n \n \n `, styles: [\"ngb-datepicker-navigation-select>.custom-select{-ms-flex:1 1 auto;flex:1 1 auto;padding:0 .5rem;font-size:.875rem;height:1.85rem}\"] }]\n }], function () { return [{ type: NgbDatepickerI18n }]; }, { select: [{\n type: Output\n }], date: [{\n type: Input\n }], disabled: [{\n type: Input\n }], months: [{\n type: Input\n }], years: [{\n type: Input\n }] }); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/**\n * @abstract\n */\nclass NgbCalendarHijri extends NgbCalendar {\n /**\n * @return {?}\n */\n getDaysPerWeek() { return 7; }\n /**\n * @return {?}\n */\n getMonths() { return [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]; }\n /**\n * @return {?}\n */\n getWeeksPerMonth() { return 6; }\n /**\n * @param {?} date\n * @param {?=} period\n * @param {?=} number\n * @return {?}\n */\n getNext(date, period = 'd', number = 1) {\n date = new NgbDate(date.year, date.month, date.day);\n switch (period) {\n case 'y':\n date = this._setYear(date, date.year + number);\n date.month = 1;\n date.day = 1;\n return date;\n case 'm':\n date = this._setMonth(date, date.month + number);\n date.day = 1;\n return date;\n case 'd':\n return this._setDay(date, date.day + number);\n default:\n return date;\n }\n }\n /**\n * @param {?} date\n * @param {?=} period\n * @param {?=} number\n * @return {?}\n */\n getPrev(date, period = 'd', number = 1) { return this.getNext(date, period, -number); }\n /**\n * @param {?} date\n * @return {?}\n */\n getWeekday(date) {\n /** @type {?} */\n const day = this.toGregorian(date).getDay();\n // in JS Date Sun=0, in ISO 8601 Sun=7\n return day === 0 ? 7 : day;\n }\n /**\n * @param {?} week\n * @param {?} firstDayOfWeek\n * @return {?}\n */\n getWeekNumber(week, firstDayOfWeek) {\n // in JS Date Sun=0, in ISO 8601 Sun=7\n if (firstDayOfWeek === 7) {\n firstDayOfWeek = 0;\n }\n /** @type {?} */\n const thursdayIndex = (4 + 7 - firstDayOfWeek) % 7;\n /** @type {?} */\n const date = week[thursdayIndex];\n /** @type {?} */\n const jsDate = this.toGregorian(date);\n jsDate.setDate(jsDate.getDate() + 4 - (jsDate.getDay() || 7)); // Thursday\n // Thursday\n /** @type {?} */\n const time = jsDate.getTime();\n /** @type {?} */\n const MuhDate = this.toGregorian(new NgbDate(date.year, 1, 1));\n return Math.floor(Math.round((time - MuhDate.getTime()) / 86400000) / 7) + 1;\n }\n /**\n * @return {?}\n */\n getToday() { return this.fromGregorian(new Date()); }\n /**\n * @param {?} date\n * @return {?}\n */\n isValid(date) {\n return date && isNumber(date.year) && isNumber(date.month) && isNumber(date.day) &&\n !isNaN(this.toGregorian(date).getTime());\n }\n /**\n * @param {?} date\n * @param {?} day\n * @return {?}\n */\n _setDay(date, day) {\n day = +day;\n /** @type {?} */\n let mDays = this.getDaysPerMonth(date.month, date.year);\n if (day <= 0) {\n while (day <= 0) {\n date = this._setMonth(date, date.month - 1);\n mDays = this.getDaysPerMonth(date.month, date.year);\n day += mDays;\n }\n }\n else if (day > mDays) {\n while (day > mDays) {\n day -= mDays;\n date = this._setMonth(date, date.month + 1);\n mDays = this.getDaysPerMonth(date.month, date.year);\n }\n }\n date.day = day;\n return date;\n }\n /**\n * @param {?} date\n * @param {?} month\n * @return {?}\n */\n _setMonth(date, month) {\n month = +month;\n date.year = date.year + Math.floor((month - 1) / 12);\n date.month = Math.floor(((month - 1) % 12 + 12) % 12) + 1;\n return date;\n }\n /**\n * @param {?} date\n * @param {?} year\n * @return {?}\n */\n _setYear(date, year) {\n date.year = +year;\n return date;\n }\n}\nNgbCalendarHijri.ɵfac = /*@__PURE__*/ function () { let ɵNgbCalendarHijri_BaseFactory; return function NgbCalendarHijri_Factory(t) { return (ɵNgbCalendarHijri_BaseFactory || (ɵNgbCalendarHijri_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(NgbCalendarHijri)))(t || NgbCalendarHijri); }; }();\nNgbCalendarHijri.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NgbCalendarHijri, factory: NgbCalendarHijri.ɵfac });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbCalendarHijri, [{\n type: Injectable\n }], null, null); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/**\n * Checks if islamic year is a leap year\n * @param {?} hYear\n * @return {?}\n */\nfunction isIslamicLeapYear(hYear) {\n return (14 + 11 * hYear) % 30 < 11;\n}\n/**\n * Checks if gregorian years is a leap year\n * @param {?} gDate\n * @return {?}\n */\nfunction isGregorianLeapYear(gDate) {\n /** @type {?} */\n const year = gDate.getFullYear();\n return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;\n}\n/**\n * Returns the start of Hijri Month.\n * `hMonth` is 0 for Muharram, 1 for Safar, etc.\n * `hYear` is any Hijri hYear.\n * @param {?} hYear\n * @param {?} hMonth\n * @return {?}\n */\nfunction getIslamicMonthStart(hYear, hMonth) {\n return Math.ceil(29.5 * hMonth) + (hYear - 1) * 354 + Math.floor((3 + 11 * hYear) / 30.0);\n}\n/**\n * Returns the start of Hijri year.\n * `year` is any Hijri year.\n * @param {?} year\n * @return {?}\n */\nfunction getIslamicYearStart(year) {\n return (year - 1) * 354 + Math.floor((3 + 11 * year) / 30.0);\n}\n/**\n * @param {?} a\n * @param {?} b\n * @return {?}\n */\nfunction mod(a, b) {\n return a - b * Math.floor(a / b);\n}\n/**\n * The civil calendar is one type of Hijri calendars used in islamic countries.\n * Uses a fixed cycle of alternating 29- and 30-day months,\n * with a leap day added to the last month of 11 out of every 30 years.\n * http://cldr.unicode.org/development/development-process/design-proposals/islamic-calendar-types\n * All the calculations here are based on the equations from \"Calendrical Calculations\" By Edward M. Reingold, Nachum\n * Dershowitz.\n * @type {?}\n */\nconst GREGORIAN_EPOCH = 1721425.5;\n/** @type {?} */\nconst ISLAMIC_EPOCH = 1948439.5;\nclass NgbCalendarIslamicCivil extends NgbCalendarHijri {\n /**\n * Returns the equivalent islamic(civil) date value for a give input Gregorian date.\n * `gDate` is a JS Date to be converted to Hijri.\n * @param {?} gDate\n * @return {?}\n */\n fromGregorian(gDate) {\n /** @type {?} */\n const gYear = gDate.getFullYear();\n /** @type {?} */\n const gMonth = gDate.getMonth();\n /** @type {?} */\n const gDay = gDate.getDate();\n /** @type {?} */\n let julianDay = GREGORIAN_EPOCH - 1 + 365 * (gYear - 1) + Math.floor((gYear - 1) / 4) +\n -Math.floor((gYear - 1) / 100) + Math.floor((gYear - 1) / 400) +\n Math.floor((367 * (gMonth + 1) - 362) / 12 + (gMonth + 1 <= 2 ? 0 : isGregorianLeapYear(gDate) ? -1 : -2) + gDay);\n julianDay = Math.floor(julianDay) + 0.5;\n /** @type {?} */\n const days = julianDay - ISLAMIC_EPOCH;\n /** @type {?} */\n const hYear = Math.floor((30 * days + 10646) / 10631.0);\n /** @type {?} */\n let hMonth = Math.ceil((days - 29 - getIslamicYearStart(hYear)) / 29.5);\n hMonth = Math.min(hMonth, 11);\n /** @type {?} */\n const hDay = Math.ceil(days - getIslamicMonthStart(hYear, hMonth)) + 1;\n return new NgbDate(hYear, hMonth + 1, hDay);\n }\n /**\n * Returns the equivalent JS date value for a give input islamic(civil) date.\n * `hDate` is an islamic(civil) date to be converted to Gregorian.\n * @param {?} hDate\n * @return {?}\n */\n toGregorian(hDate) {\n /** @type {?} */\n const hYear = hDate.year;\n /** @type {?} */\n const hMonth = hDate.month - 1;\n /** @type {?} */\n const hDay = hDate.day;\n /** @type {?} */\n const julianDay = hDay + Math.ceil(29.5 * hMonth) + (hYear - 1) * 354 + Math.floor((3 + 11 * hYear) / 30) + ISLAMIC_EPOCH - 1;\n /** @type {?} */\n const wjd = Math.floor(julianDay - 0.5) + 0.5;\n /** @type {?} */\n const depoch = wjd - GREGORIAN_EPOCH;\n /** @type {?} */\n const quadricent = Math.floor(depoch / 146097);\n /** @type {?} */\n const dqc = mod(depoch, 146097);\n /** @type {?} */\n const cent = Math.floor(dqc / 36524);\n /** @type {?} */\n const dcent = mod(dqc, 36524);\n /** @type {?} */\n const quad = Math.floor(dcent / 1461);\n /** @type {?} */\n const dquad = mod(dcent, 1461);\n /** @type {?} */\n const yindex = Math.floor(dquad / 365);\n /** @type {?} */\n let year = quadricent * 400 + cent * 100 + quad * 4 + yindex;\n if (!(cent === 4 || yindex === 4)) {\n year++;\n }\n /** @type {?} */\n const gYearStart = GREGORIAN_EPOCH + 365 * (year - 1) + Math.floor((year - 1) / 4) - Math.floor((year - 1) / 100) +\n Math.floor((year - 1) / 400);\n /** @type {?} */\n const yearday = wjd - gYearStart;\n /** @type {?} */\n const tjd = GREGORIAN_EPOCH - 1 + 365 * (year - 1) + Math.floor((year - 1) / 4) - Math.floor((year - 1) / 100) +\n Math.floor((year - 1) / 400) + Math.floor(739 / 12 + (isGregorianLeapYear(new Date(year, 3, 1)) ? -1 : -2) + 1);\n /** @type {?} */\n const leapadj = wjd < tjd ? 0 : isGregorianLeapYear(new Date(year, 3, 1)) ? 1 : 2;\n /** @type {?} */\n const month = Math.floor(((yearday + leapadj) * 12 + 373) / 367);\n /** @type {?} */\n const tjd2 = GREGORIAN_EPOCH - 1 + 365 * (year - 1) + Math.floor((year - 1) / 4) - Math.floor((year - 1) / 100) +\n Math.floor((year - 1) / 400) +\n Math.floor((367 * month - 362) / 12 + (month <= 2 ? 0 : isGregorianLeapYear(new Date(year, month - 1, 1)) ? -1 : -2) +\n 1);\n /** @type {?} */\n const day = wjd - tjd2 + 1;\n return new Date(year, month - 1, day);\n }\n /**\n * Returns the number of days in a specific Hijri month.\n * `month` is 1 for Muharram, 2 for Safar, etc.\n * `year` is any Hijri year.\n * @param {?} month\n * @param {?} year\n * @return {?}\n */\n getDaysPerMonth(month, year) {\n year = year + Math.floor(month / 13);\n month = ((month - 1) % 12) + 1;\n /** @type {?} */\n let length = 29 + month % 2;\n if (month === 12 && isIslamicLeapYear(year)) {\n length++;\n }\n return length;\n }\n}\nNgbCalendarIslamicCivil.ɵfac = /*@__PURE__*/ function () { let ɵNgbCalendarIslamicCivil_BaseFactory; return function NgbCalendarIslamicCivil_Factory(t) { return (ɵNgbCalendarIslamicCivil_BaseFactory || (ɵNgbCalendarIslamicCivil_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(NgbCalendarIslamicCivil)))(t || NgbCalendarIslamicCivil); }; }();\nNgbCalendarIslamicCivil.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NgbCalendarIslamicCivil, factory: NgbCalendarIslamicCivil.ɵfac });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbCalendarIslamicCivil, [{\n type: Injectable\n }], null, null); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/**\n * Umalqura calendar is one type of Hijri calendars used in islamic countries.\n * This Calendar is used by Saudi Arabia for administrative purpose.\n * Unlike tabular calendars, the algorithm involves astronomical calculation, but it's still deterministic.\n * http://cldr.unicode.org/development/development-process/design-proposals/islamic-calendar-types\n * @type {?}\n */\nconst GREGORIAN_FIRST_DATE = new Date(1882, 10, 12);\n/** @type {?} */\nconst GREGORIAN_LAST_DATE = new Date(2174, 10, 25);\n/** @type {?} */\nconst HIJRI_BEGIN = 1300;\n/** @type {?} */\nconst HIJRI_END = 1600;\n/** @type {?} */\nconst ONE_DAY = 1000 * 60 * 60 * 24;\n/** @type {?} */\nconst MONTH_LENGTH = [\n // 1300-1304\n '101010101010', '110101010100', '111011001001', '011011010100', '011011101010',\n // 1305-1309\n '001101101100', '101010101101', '010101010101', '011010101001', '011110010010',\n // 1310-1314\n '101110101001', '010111010100', '101011011010', '010101011100', '110100101101',\n // 1315-1319\n '011010010101', '011101001010', '101101010100', '101101101010', '010110101101',\n // 1320-1324\n '010010101110', '101001001111', '010100010111', '011010001011', '011010100101',\n // 1325-1329\n '101011010101', '001011010110', '100101011011', '010010011101', '101001001101',\n // 1330-1334\n '110100100110', '110110010101', '010110101100', '100110110110', '001010111010',\n // 1335-1339\n '101001011011', '010100101011', '101010010101', '011011001010', '101011101001',\n // 1340-1344\n '001011110100', '100101110110', '001010110110', '100101010110', '101011001010',\n // 1345-1349\n '101110100100', '101111010010', '010111011001', '001011011100', '100101101101',\n // 1350-1354\n '010101001101', '101010100101', '101101010010', '101110100101', '010110110100',\n // 1355-1359\n '100110110110', '010101010111', '001010010111', '010101001011', '011010100011',\n // 1360-1364\n '011101010010', '101101100101', '010101101010', '101010101011', '010100101011',\n // 1365-1369\n '110010010101', '110101001010', '110110100101', '010111001010', '101011010110',\n // 1370-1374\n '100101010111', '010010101011', '100101001011', '101010100101', '101101010010',\n // 1375-1379\n '101101101010', '010101110101', '001001110110', '100010110111', '010001011011',\n // 1380-1384\n '010101010101', '010110101001', '010110110100', '100111011010', '010011011101',\n // 1385-1389\n '001001101110', '100100110110', '101010101010', '110101010100', '110110110010',\n // 1390-1394\n '010111010101', '001011011010', '100101011011', '010010101011', '101001010101',\n // 1395-1399\n '101101001001', '101101100100', '101101110001', '010110110100', '101010110101',\n // 1400-1404\n '101001010101', '110100100101', '111010010010', '111011001001', '011011010100',\n // 1405-1409\n '101011101001', '100101101011', '010010101011', '101010010011', '110101001001',\n // 1410-1414\n '110110100100', '110110110010', '101010111001', '010010111010', '101001011011',\n // 1415-1419\n '010100101011', '101010010101', '101100101010', '101101010101', '010101011100',\n // 1420-1424\n '010010111101', '001000111101', '100100011101', '101010010101', '101101001010',\n // 1425-1429\n '101101011010', '010101101101', '001010110110', '100100111011', '010010011011',\n // 1430-1434\n '011001010101', '011010101001', '011101010100', '101101101010', '010101101100',\n // 1435-1439\n '101010101101', '010101010101', '101100101001', '101110010010', '101110101001',\n // 1440-1444\n '010111010100', '101011011010', '010101011010', '101010101011', '010110010101',\n // 1445-1449\n '011101001001', '011101100100', '101110101010', '010110110101', '001010110110',\n // 1450-1454\n '101001010110', '111001001101', '101100100101', '101101010010', '101101101010',\n // 1455-1459\n '010110101101', '001010101110', '100100101111', '010010010111', '011001001011',\n // 1460-1464\n '011010100101', '011010101100', '101011010110', '010101011101', '010010011101',\n // 1465-1469\n '101001001101', '110100010110', '110110010101', '010110101010', '010110110101',\n // 1470-1474\n '001011011010', '100101011011', '010010101101', '010110010101', '011011001010',\n // 1475-1479\n '011011100100', '101011101010', '010011110101', '001010110110', '100101010110',\n // 1480-1484\n '101010101010', '101101010100', '101111010010', '010111011001', '001011101010',\n // 1485-1489\n '100101101101', '010010101101', '101010010101', '101101001010', '101110100101',\n // 1490-1494\n '010110110010', '100110110101', '010011010110', '101010010111', '010101000111',\n // 1495-1499\n '011010010011', '011101001001', '101101010101', '010101101010', '101001101011',\n // 1500-1504\n '010100101011', '101010001011', '110101000110', '110110100011', '010111001010',\n // 1505-1509\n '101011010110', '010011011011', '001001101011', '100101001011', '101010100101',\n // 1510-1514\n '101101010010', '101101101001', '010101110101', '000101110110', '100010110111',\n // 1515-1519\n '001001011011', '010100101011', '010101100101', '010110110100', '100111011010',\n // 1520-1524\n '010011101101', '000101101101', '100010110110', '101010100110', '110101010010',\n // 1525-1529\n '110110101001', '010111010100', '101011011010', '100101011011', '010010101011',\n // 1530-1534\n '011001010011', '011100101001', '011101100010', '101110101001', '010110110010',\n // 1535-1539\n '101010110101', '010101010101', '101100100101', '110110010010', '111011001001',\n // 1540-1544\n '011011010010', '101011101001', '010101101011', '010010101011', '101001010101',\n // 1545-1549\n '110100101001', '110101010100', '110110101010', '100110110101', '010010111010',\n // 1550-1554\n '101000111011', '010010011011', '101001001101', '101010101010', '101011010101',\n // 1555-1559\n '001011011010', '100101011101', '010001011110', '101000101110', '110010011010',\n // 1560-1564\n '110101010101', '011010110010', '011010111001', '010010111010', '101001011101',\n // 1565-1569\n '010100101101', '101010010101', '101101010010', '101110101000', '101110110100',\n // 1570-1574\n '010110111001', '001011011010', '100101011010', '101101001010', '110110100100',\n // 1575-1579\n '111011010001', '011011101000', '101101101010', '010101101101', '010100110101',\n // 1580-1584\n '011010010101', '110101001010', '110110101000', '110111010100', '011011011010',\n // 1585-1589\n '010101011011', '001010011101', '011000101011', '101100010101', '101101001010',\n // 1590-1594\n '101110010101', '010110101010', '101010101110', '100100101110', '110010001111',\n // 1595-1599\n '010100100111', '011010010101', '011010101010', '101011010110', '010101011101',\n // 1600\n '001010011101'\n];\n/**\n * @param {?} date1\n * @param {?} date2\n * @return {?}\n */\nfunction getDaysDiff(date1, date2) {\n /** @type {?} */\n const diff = Math.abs(date1.getTime() - date2.getTime());\n return Math.round(diff / ONE_DAY);\n}\nclass NgbCalendarIslamicUmalqura extends NgbCalendarIslamicCivil {\n /**\n * Returns the equivalent islamic(Umalqura) date value for a give input Gregorian date.\n * `gdate` is s JS Date to be converted to Hijri.\n * @param {?} gDate\n * @return {?}\n */\n fromGregorian(gDate) {\n /** @type {?} */\n let hDay = 1;\n /** @type {?} */\n let hMonth = 0;\n /** @type {?} */\n let hYear = 1300;\n /** @type {?} */\n let daysDiff = getDaysDiff(gDate, GREGORIAN_FIRST_DATE);\n if (gDate.getTime() - GREGORIAN_FIRST_DATE.getTime() >= 0 && gDate.getTime() - GREGORIAN_LAST_DATE.getTime() <= 0) {\n /** @type {?} */\n let year = 1300;\n for (let i = 0; i < MONTH_LENGTH.length; i++, year++) {\n for (let j = 0; j < 12; j++) {\n /** @type {?} */\n let numOfDays = +MONTH_LENGTH[i][j] + 29;\n if (daysDiff <= numOfDays) {\n hDay = daysDiff + 1;\n if (hDay > numOfDays) {\n hDay = 1;\n j++;\n }\n if (j > 11) {\n j = 0;\n year++;\n }\n hMonth = j;\n hYear = year;\n return new NgbDate(hYear, hMonth + 1, hDay);\n }\n daysDiff = daysDiff - numOfDays;\n }\n }\n }\n else {\n return super.fromGregorian(gDate);\n }\n }\n /**\n * Converts the current Hijri date to Gregorian.\n * @param {?} hDate\n * @return {?}\n */\n toGregorian(hDate) {\n /** @type {?} */\n const hYear = hDate.year;\n /** @type {?} */\n const hMonth = hDate.month - 1;\n /** @type {?} */\n const hDay = hDate.day;\n /** @type {?} */\n let gDate = new Date(GREGORIAN_FIRST_DATE);\n /** @type {?} */\n let dayDiff = hDay - 1;\n if (hYear >= HIJRI_BEGIN && hYear <= HIJRI_END) {\n for (let y = 0; y < hYear - HIJRI_BEGIN; y++) {\n for (let m = 0; m < 12; m++) {\n dayDiff += +MONTH_LENGTH[y][m] + 29;\n }\n }\n for (let m = 0; m < hMonth; m++) {\n dayDiff += +MONTH_LENGTH[hYear - HIJRI_BEGIN][m] + 29;\n }\n gDate.setDate(GREGORIAN_FIRST_DATE.getDate() + dayDiff);\n }\n else {\n gDate = super.toGregorian(hDate);\n }\n return gDate;\n }\n /**\n * Returns the number of days in a specific Hijri hMonth.\n * `hMonth` is 1 for Muharram, 2 for Safar, etc.\n * `hYear` is any Hijri hYear.\n * @param {?} hMonth\n * @param {?} hYear\n * @return {?}\n */\n getDaysPerMonth(hMonth, hYear) {\n if (hYear >= HIJRI_BEGIN && hYear <= HIJRI_END) {\n /** @type {?} */\n const pos = hYear - HIJRI_BEGIN;\n return +MONTH_LENGTH[pos][hMonth - 1] + 29;\n }\n return super.getDaysPerMonth(hMonth, hYear);\n }\n}\nNgbCalendarIslamicUmalqura.ɵfac = /*@__PURE__*/ function () { let ɵNgbCalendarIslamicUmalqura_BaseFactory; return function NgbCalendarIslamicUmalqura_Factory(t) { return (ɵNgbCalendarIslamicUmalqura_BaseFactory || (ɵNgbCalendarIslamicUmalqura_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(NgbCalendarIslamicUmalqura)))(t || NgbCalendarIslamicUmalqura); }; }();\nNgbCalendarIslamicUmalqura.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NgbCalendarIslamicUmalqura, factory: NgbCalendarIslamicUmalqura.ɵfac });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbCalendarIslamicUmalqura, [{\n type: Injectable\n }], null, null); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/**\n * Returns the equivalent JS date value for a give input Jalali date.\n * `jalaliDate` is an Jalali date to be converted to Gregorian.\n * @param {?} jalaliDate\n * @return {?}\n */\nfunction toGregorian(jalaliDate) {\n /** @type {?} */\n let jdn = jalaliToJulian(jalaliDate.year, jalaliDate.month, jalaliDate.day);\n /** @type {?} */\n let date = julianToGregorian(jdn);\n date.setHours(6, 30, 3, 200);\n return date;\n}\n/**\n * Returns the equivalent jalali date value for a give input Gregorian date.\n * `gdate` is a JS Date to be converted to jalali.\n * utc to local\n * @param {?} gdate\n * @return {?}\n */\nfunction fromGregorian(gdate) {\n /** @type {?} */\n let g2d = gregorianToJulian(gdate.getFullYear(), gdate.getMonth() + 1, gdate.getDate());\n return julianToJalali(g2d);\n}\n/**\n * @param {?} date\n * @param {?} yearValue\n * @return {?}\n */\nfunction setJalaliYear(date, yearValue) {\n date.year = +yearValue;\n return date;\n}\n/**\n * @param {?} date\n * @param {?} month\n * @return {?}\n */\nfunction setJalaliMonth(date, month) {\n month = +month;\n date.year = date.year + Math.floor((month - 1) / 12);\n date.month = Math.floor(((month - 1) % 12 + 12) % 12) + 1;\n return date;\n}\n/**\n * @param {?} date\n * @param {?} day\n * @return {?}\n */\nfunction setJalaliDay(date, day) {\n /** @type {?} */\n let mDays = getDaysPerMonth(date.month, date.year);\n if (day <= 0) {\n while (day <= 0) {\n date = setJalaliMonth(date, date.month - 1);\n mDays = getDaysPerMonth(date.month, date.year);\n day += mDays;\n }\n }\n else if (day > mDays) {\n while (day > mDays) {\n day -= mDays;\n date = setJalaliMonth(date, date.month + 1);\n mDays = getDaysPerMonth(date.month, date.year);\n }\n }\n date.day = day;\n return date;\n}\n/**\n * @param {?} a\n * @param {?} b\n * @return {?}\n */\nfunction mod$1(a, b) {\n return a - b * Math.floor(a / b);\n}\n/**\n * @param {?} a\n * @param {?} b\n * @return {?}\n */\nfunction div(a, b) {\n return Math.trunc(a / b);\n}\n/*\n This function determines if the Jalali (Persian) year is\n leap (366-day long) or is the common year (365 days), and\n finds the day in March (Gregorian calendar) of the first\n day of the Jalali year (jalaliYear).\n @param jalaliYear Jalali calendar year (-61 to 3177)\n @return\n leap: number of years since the last leap year (0 to 4)\n gYear: Gregorian year of the beginning of Jalali year\n march: the March day of Farvardin the 1st (1st day of jalaliYear)\n @see: http://www.astro.uni.torun.pl/~kb/Papers/EMP/PersianC-EMP.htm\n @see: http://www.fourmilab.ch/documents/calendar/\n */\n/**\n * @param {?} jalaliYear\n * @return {?}\n */\nfunction jalCal(jalaliYear) {\n // Jalali years starting the 33-year rule.\n /** @type {?} */\n let breaks = [-61, 9, 38, 199, 426, 686, 756, 818, 1111, 1181, 1210, 1635, 2060, 2097, 2192, 2262, 2324, 2394, 2456, 3178];\n /** @type {?} */\n const breaksLength = breaks.length;\n /** @type {?} */\n const gYear = jalaliYear + 621;\n /** @type {?} */\n let leapJ = -14;\n /** @type {?} */\n let jp = breaks[0];\n if (jalaliYear < jp || jalaliYear >= breaks[breaksLength - 1]) {\n throw new Error('Invalid Jalali year ' + jalaliYear);\n }\n // Find the limiting years for the Jalali year jalaliYear.\n /** @type {?} */\n let jump;\n for (let i = 1; i < breaksLength; i += 1) {\n /** @type {?} */\n const jm = breaks[i];\n jump = jm - jp;\n if (jalaliYear < jm) {\n break;\n }\n leapJ = leapJ + div(jump, 33) * 8 + div(mod$1(jump, 33), 4);\n jp = jm;\n }\n /** @type {?} */\n let n = jalaliYear - jp;\n // Find the number of leap years from AD 621 to the beginning\n // of the current Jalali year in the Persian calendar.\n leapJ = leapJ + div(n, 33) * 8 + div(mod$1(n, 33) + 3, 4);\n if (mod$1(jump, 33) === 4 && jump - n === 4) {\n leapJ += 1;\n }\n // And the same in the Gregorian calendar (until the year gYear).\n /** @type {?} */\n const leapG = div(gYear, 4) - div((div(gYear, 100) + 1) * 3, 4) - 150;\n // Determine the Gregorian date of Farvardin the 1st.\n /** @type {?} */\n const march = 20 + leapJ - leapG;\n // Find how many years have passed since the last leap year.\n if (jump - n < 6) {\n n = n - jump + div(jump + 4, 33) * 33;\n }\n /** @type {?} */\n let leap = mod$1(mod$1(n + 1, 33) - 1, 4);\n if (leap === -1) {\n leap = 4;\n }\n return { leap: leap, gy: gYear, march: march };\n}\n/*\n Calculates Gregorian and Julian calendar dates from the Julian Day number\n (jdn) for the period since jdn=-34839655 (i.e. the year -100100 of both\n calendars) to some millions years ahead of the present.\n @param jdn Julian Day number\n @return\n gYear: Calendar year (years BC numbered 0, -1, -2, ...)\n gMonth: Calendar month (1 to 12)\n gDay: Calendar day of the month M (1 to 28/29/30/31)\n */\n/**\n * @param {?} julianDayNumber\n * @return {?}\n */\nfunction julianToGregorian(julianDayNumber) {\n /** @type {?} */\n let j = 4 * julianDayNumber + 139361631;\n j = j + div(div(4 * julianDayNumber + 183187720, 146097) * 3, 4) * 4 - 3908;\n /** @type {?} */\n const i = div(mod$1(j, 1461), 4) * 5 + 308;\n /** @type {?} */\n const gDay = div(mod$1(i, 153), 5) + 1;\n /** @type {?} */\n const gMonth = mod$1(div(i, 153), 12) + 1;\n /** @type {?} */\n const gYear = div(j, 1461) - 100100 + div(8 - gMonth, 6);\n return new Date(gYear, gMonth - 1, gDay);\n}\n/*\n Converts a date of the Jalali calendar to the Julian Day number.\n @param jy Jalali year (1 to 3100)\n @param jm Jalali month (1 to 12)\n @param jd Jalali day (1 to 29/31)\n @return Julian Day number\n */\n/**\n * @param {?} gy\n * @param {?} gm\n * @param {?} gd\n * @return {?}\n */\nfunction gregorianToJulian(gy, gm, gd) {\n /** @type {?} */\n let d = div((gy + div(gm - 8, 6) + 100100) * 1461, 4) + div(153 * mod$1(gm + 9, 12) + 2, 5) + gd - 34840408;\n d = d - div(div(gy + 100100 + div(gm - 8, 6), 100) * 3, 4) + 752;\n return d;\n}\n/*\n Converts the Julian Day number to a date in the Jalali calendar.\n @param julianDayNumber Julian Day number\n @return\n jalaliYear: Jalali year (1 to 3100)\n jalaliMonth: Jalali month (1 to 12)\n jalaliDay: Jalali day (1 to 29/31)\n */\n/**\n * @param {?} julianDayNumber\n * @return {?}\n */\nfunction julianToJalali(julianDayNumber) {\n /** @type {?} */\n let gy = julianToGregorian(julianDayNumber).getFullYear() // Calculate Gregorian year (gy).\n ;\n /** @type {?} */\n let jalaliYear = gy - 621;\n /** @type {?} */\n let r = jalCal(jalaliYear);\n /** @type {?} */\n let gregorianDay = gregorianToJulian(gy, 3, r.march);\n /** @type {?} */\n let jalaliDay;\n /** @type {?} */\n let jalaliMonth;\n /** @type {?} */\n let numberOfDays;\n // Find number of days that passed since 1 Farvardin.\n numberOfDays = julianDayNumber - gregorianDay;\n if (numberOfDays >= 0) {\n if (numberOfDays <= 185) {\n // The first 6 months.\n jalaliMonth = 1 + div(numberOfDays, 31);\n jalaliDay = mod$1(numberOfDays, 31) + 1;\n return new NgbDate(jalaliYear, jalaliMonth, jalaliDay);\n }\n else {\n // The remaining months.\n numberOfDays -= 186;\n }\n }\n else {\n // Previous Jalali year.\n jalaliYear -= 1;\n numberOfDays += 179;\n if (r.leap === 1) {\n numberOfDays += 1;\n }\n }\n jalaliMonth = 7 + div(numberOfDays, 30);\n jalaliDay = mod$1(numberOfDays, 30) + 1;\n return new NgbDate(jalaliYear, jalaliMonth, jalaliDay);\n}\n/*\n Converts a date of the Jalali calendar to the Julian Day number.\n @param jYear Jalali year (1 to 3100)\n @param jMonth Jalali month (1 to 12)\n @param jDay Jalali day (1 to 29/31)\n @return Julian Day number\n */\n/**\n * @param {?} jYear\n * @param {?} jMonth\n * @param {?} jDay\n * @return {?}\n */\nfunction jalaliToJulian(jYear, jMonth, jDay) {\n /** @type {?} */\n let r = jalCal(jYear);\n return gregorianToJulian(r.gy, 3, r.march) + (jMonth - 1) * 31 - div(jMonth, 7) * (jMonth - 7) + jDay - 1;\n}\n/**\n * Returns the number of days in a specific jalali month.\n * @param {?} month\n * @param {?} year\n * @return {?}\n */\nfunction getDaysPerMonth(month, year) {\n if (month <= 6) {\n return 31;\n }\n if (month <= 11) {\n return 30;\n }\n if (jalCal(year).leap === 0) {\n return 30;\n }\n return 29;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\nclass NgbCalendarPersian extends NgbCalendar {\n /**\n * @return {?}\n */\n getDaysPerWeek() { return 7; }\n /**\n * @return {?}\n */\n getMonths() { return [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]; }\n /**\n * @return {?}\n */\n getWeeksPerMonth() { return 6; }\n /**\n * @param {?} date\n * @param {?=} period\n * @param {?=} number\n * @return {?}\n */\n getNext(date, period = 'd', number = 1) {\n date = new NgbDate(date.year, date.month, date.day);\n switch (period) {\n case 'y':\n date = setJalaliYear(date, date.year + number);\n date.month = 1;\n date.day = 1;\n return date;\n case 'm':\n date = setJalaliMonth(date, date.month + number);\n date.day = 1;\n return date;\n case 'd':\n return setJalaliDay(date, date.day + number);\n default:\n return date;\n }\n }\n /**\n * @param {?} date\n * @param {?=} period\n * @param {?=} number\n * @return {?}\n */\n getPrev(date, period = 'd', number = 1) { return this.getNext(date, period, -number); }\n /**\n * @param {?} date\n * @return {?}\n */\n getWeekday(date) {\n /** @type {?} */\n const day = toGregorian(date).getDay();\n // in JS Date Sun=0, in ISO 8601 Sun=7\n return day === 0 ? 7 : day;\n }\n /**\n * @param {?} week\n * @param {?} firstDayOfWeek\n * @return {?}\n */\n getWeekNumber(week, firstDayOfWeek) {\n // in JS Date Sun=0, in ISO 8601 Sun=7\n if (firstDayOfWeek === 7) {\n firstDayOfWeek = 0;\n }\n /** @type {?} */\n const thursdayIndex = (4 + 7 - firstDayOfWeek) % 7;\n /** @type {?} */\n const date = week[thursdayIndex];\n /** @type {?} */\n const jsDate = toGregorian(date);\n jsDate.setDate(jsDate.getDate() + 4 - (jsDate.getDay() || 7)); // Thursday\n // Thursday\n /** @type {?} */\n const time = jsDate.getTime();\n /** @type {?} */\n const startDate = toGregorian(new NgbDate(date.year, 1, 1));\n return Math.floor(Math.round((time - startDate.getTime()) / 86400000) / 7) + 1;\n }\n /**\n * @return {?}\n */\n getToday() { return fromGregorian(new Date()); }\n /**\n * @param {?} date\n * @return {?}\n */\n isValid(date) {\n return date && isInteger(date.year) && isInteger(date.month) && isInteger(date.day) &&\n !isNaN(toGregorian(date).getTime());\n }\n}\nNgbCalendarPersian.ɵfac = /*@__PURE__*/ function () { let ɵNgbCalendarPersian_BaseFactory; return function NgbCalendarPersian_Factory(t) { return (ɵNgbCalendarPersian_BaseFactory || (ɵNgbCalendarPersian_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(NgbCalendarPersian)))(t || NgbCalendarPersian); }; }();\nNgbCalendarPersian.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NgbCalendarPersian, factory: NgbCalendarPersian.ɵfac });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbCalendarPersian, [{\n type: Injectable\n }], null, null); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/** @type {?} */\nconst PARTS_PER_HOUR = 1080;\n/** @type {?} */\nconst PARTS_PER_DAY = 24 * PARTS_PER_HOUR;\n/** @type {?} */\nconst PARTS_FRACTIONAL_MONTH = 12 * PARTS_PER_HOUR + 793;\n/** @type {?} */\nconst PARTS_PER_MONTH = 29 * PARTS_PER_DAY + PARTS_FRACTIONAL_MONTH;\n/** @type {?} */\nconst BAHARAD = 11 * PARTS_PER_HOUR + 204;\n/** @type {?} */\nconst HEBREW_DAY_ON_JAN_1_1970 = 2092591;\n/** @type {?} */\nconst GREGORIAN_EPOCH$1 = 1721425.5;\n/**\n * @param {?} year\n * @return {?}\n */\nfunction isGregorianLeapYear$1(year) {\n return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;\n}\n/**\n * @param {?} year\n * @return {?}\n */\nfunction numberOfFirstDayInYear(year) {\n /** @type {?} */\n let monthsBeforeYear = Math.floor((235 * year - 234) / 19);\n /** @type {?} */\n let fractionalMonthsBeforeYear = monthsBeforeYear * PARTS_FRACTIONAL_MONTH + BAHARAD;\n /** @type {?} */\n let dayNumber = monthsBeforeYear * 29 + Math.floor(fractionalMonthsBeforeYear / PARTS_PER_DAY);\n /** @type {?} */\n let timeOfDay = fractionalMonthsBeforeYear % PARTS_PER_DAY;\n /** @type {?} */\n let dayOfWeek = dayNumber % 7;\n if (dayOfWeek === 2 || dayOfWeek === 4 || dayOfWeek === 6) {\n dayNumber++;\n dayOfWeek = dayNumber % 7;\n }\n if (dayOfWeek === 1 && timeOfDay > 15 * PARTS_PER_HOUR + 204 && !isHebrewLeapYear(year)) {\n dayNumber += 2;\n }\n else if (dayOfWeek === 0 && timeOfDay > 21 * PARTS_PER_HOUR + 589 && isHebrewLeapYear(year - 1)) {\n dayNumber++;\n }\n return dayNumber;\n}\n/**\n * @param {?} month\n * @param {?} year\n * @return {?}\n */\nfunction getDaysInGregorianMonth(month, year) {\n /** @type {?} */\n let days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n if (isGregorianLeapYear$1(year)) {\n days[1]++;\n }\n return days[month - 1];\n}\n/**\n * @param {?} year\n * @return {?}\n */\nfunction getHebrewMonths(year) {\n return isHebrewLeapYear(year) ? 13 : 12;\n}\n/**\n * Returns the number of days in a specific Hebrew year.\n * `year` is any Hebrew year.\n * @param {?} year\n * @return {?}\n */\nfunction getDaysInHebrewYear(year) {\n return numberOfFirstDayInYear(year + 1) - numberOfFirstDayInYear(year);\n}\n/**\n * @param {?} year\n * @return {?}\n */\nfunction isHebrewLeapYear(year) {\n /** @type {?} */\n let b = (year * 12 + 17) % 19;\n return b >= ((b < 0) ? -7 : 12);\n}\n/**\n * Returns the number of days in a specific Hebrew month.\n * `month` is 1 for Nisan, 2 for Iyar etc. Note: Hebrew leap year contains 13 months.\n * `year` is any Hebrew year.\n * @param {?} month\n * @param {?} year\n * @return {?}\n */\nfunction getDaysInHebrewMonth(month, year) {\n /** @type {?} */\n let yearLength = numberOfFirstDayInYear(year + 1) - numberOfFirstDayInYear(year);\n /** @type {?} */\n let yearType = (yearLength <= 380 ? yearLength : (yearLength - 30)) - 353;\n /** @type {?} */\n let leapYear = isHebrewLeapYear(year);\n /** @type {?} */\n let daysInMonth = leapYear ? [30, 29, 29, 29, 30, 30, 29, 30, 29, 30, 29, 30, 29] :\n [30, 29, 29, 29, 30, 29, 30, 29, 30, 29, 30, 29];\n if (yearType > 0) {\n daysInMonth[2]++; // Kislev gets an extra day in normal or complete years.\n }\n if (yearType > 1) {\n daysInMonth[1]++; // Heshvan gets an extra day in complete years only.\n }\n return daysInMonth[month - 1];\n}\n/**\n * @param {?} date\n * @return {?}\n */\nfunction getDayNumberInHebrewYear(date) {\n /** @type {?} */\n let numberOfDay = 0;\n for (let i = 1; i < date.month; i++) {\n numberOfDay += getDaysInHebrewMonth(i, date.year);\n }\n return numberOfDay + date.day;\n}\n/**\n * @param {?} date\n * @param {?} val\n * @return {?}\n */\nfunction setHebrewMonth(date, val) {\n /** @type {?} */\n let after = val >= 0;\n if (!after) {\n val = -val;\n }\n while (val > 0) {\n if (after) {\n if (val > getHebrewMonths(date.year) - date.month) {\n val -= getHebrewMonths(date.year) - date.month + 1;\n date.year++;\n date.month = 1;\n }\n else {\n date.month += val;\n val = 0;\n }\n }\n else {\n if (val >= date.month) {\n date.year--;\n val -= date.month;\n date.month = getHebrewMonths(date.year);\n }\n else {\n date.month -= val;\n val = 0;\n }\n }\n }\n return date;\n}\n/**\n * @param {?} date\n * @param {?} val\n * @return {?}\n */\nfunction setHebrewDay(date, val) {\n /** @type {?} */\n let after = val >= 0;\n if (!after) {\n val = -val;\n }\n while (val > 0) {\n if (after) {\n if (val > getDaysInHebrewYear(date.year) - getDayNumberInHebrewYear(date)) {\n val -= getDaysInHebrewYear(date.year) - getDayNumberInHebrewYear(date) + 1;\n date.year++;\n date.month = 1;\n date.day = 1;\n }\n else if (val > getDaysInHebrewMonth(date.month, date.year) - date.day) {\n val -= getDaysInHebrewMonth(date.month, date.year) - date.day + 1;\n date.month++;\n date.day = 1;\n }\n else {\n date.day += val;\n val = 0;\n }\n }\n else {\n if (val >= date.day) {\n val -= date.day;\n date.month--;\n if (date.month === 0) {\n date.year--;\n date.month = getHebrewMonths(date.year);\n }\n date.day = getDaysInHebrewMonth(date.month, date.year);\n }\n else {\n date.day -= val;\n val = 0;\n }\n }\n }\n return date;\n}\n/**\n * Returns the equivalent Hebrew date value for a give input Gregorian date.\n * `gdate` is a JS Date to be converted to Hebrew date.\n * @param {?} gdate\n * @return {?}\n */\nfunction fromGregorian$1(gdate) {\n /** @type {?} */\n const date = new Date(gdate);\n /** @type {?} */\n const gYear = date.getFullYear();\n /** @type {?} */\n const gMonth = date.getMonth();\n /** @type {?} */\n const gDay = date.getDate();\n /** @type {?} */\n let julianDay = GREGORIAN_EPOCH$1 - 1 + 365 * (gYear - 1) + Math.floor((gYear - 1) / 4) -\n Math.floor((gYear - 1) / 100) + Math.floor((gYear - 1) / 400) +\n Math.floor((367 * (gMonth + 1) - 362) / 12 + (gMonth + 1 <= 2 ? 0 : isGregorianLeapYear$1(gYear) ? -1 : -2) + gDay);\n julianDay = Math.floor(julianDay + 0.5);\n /** @type {?} */\n let daysSinceHebEpoch = julianDay - 347997;\n /** @type {?} */\n let monthsSinceHebEpoch = Math.floor(daysSinceHebEpoch * PARTS_PER_DAY / PARTS_PER_MONTH);\n /** @type {?} */\n let hYear = Math.floor((monthsSinceHebEpoch * 19 + 234) / 235) + 1;\n /** @type {?} */\n let firstDayOfThisYear = numberOfFirstDayInYear(hYear);\n /** @type {?} */\n let dayOfYear = daysSinceHebEpoch - firstDayOfThisYear;\n while (dayOfYear < 1) {\n hYear--;\n firstDayOfThisYear = numberOfFirstDayInYear(hYear);\n dayOfYear = daysSinceHebEpoch - firstDayOfThisYear;\n }\n /** @type {?} */\n let hMonth = 1;\n /** @type {?} */\n let hDay = dayOfYear;\n while (hDay > getDaysInHebrewMonth(hMonth, hYear)) {\n hDay -= getDaysInHebrewMonth(hMonth, hYear);\n hMonth++;\n }\n return new NgbDate(hYear, hMonth, hDay);\n}\n/**\n * Returns the equivalent JS date value for a given Hebrew date.\n * `hebrewDate` is an Hebrew date to be converted to Gregorian.\n * @param {?} hebrewDate\n * @return {?}\n */\nfunction toGregorian$1(hebrewDate) {\n /** @type {?} */\n const hYear = hebrewDate.year;\n /** @type {?} */\n const hMonth = hebrewDate.month;\n /** @type {?} */\n const hDay = hebrewDate.day;\n /** @type {?} */\n let days = numberOfFirstDayInYear(hYear);\n for (let i = 1; i < hMonth; i++) {\n days += getDaysInHebrewMonth(i, hYear);\n }\n days += hDay;\n /** @type {?} */\n let diffDays = days - HEBREW_DAY_ON_JAN_1_1970;\n /** @type {?} */\n let after = diffDays >= 0;\n if (!after) {\n diffDays = -diffDays;\n }\n /** @type {?} */\n let gYear = 1970;\n /** @type {?} */\n let gMonth = 1;\n /** @type {?} */\n let gDay = 1;\n while (diffDays > 0) {\n if (after) {\n if (diffDays >= (isGregorianLeapYear$1(gYear) ? 366 : 365)) {\n diffDays -= isGregorianLeapYear$1(gYear) ? 366 : 365;\n gYear++;\n }\n else if (diffDays >= getDaysInGregorianMonth(gMonth, gYear)) {\n diffDays -= getDaysInGregorianMonth(gMonth, gYear);\n gMonth++;\n }\n else {\n gDay += diffDays;\n diffDays = 0;\n }\n }\n else {\n if (diffDays >= (isGregorianLeapYear$1(gYear - 1) ? 366 : 365)) {\n diffDays -= isGregorianLeapYear$1(gYear - 1) ? 366 : 365;\n gYear--;\n }\n else {\n if (gMonth > 1) {\n gMonth--;\n }\n else {\n gMonth = 12;\n gYear--;\n }\n if (diffDays >= getDaysInGregorianMonth(gMonth, gYear)) {\n diffDays -= getDaysInGregorianMonth(gMonth, gYear);\n }\n else {\n gDay = getDaysInGregorianMonth(gMonth, gYear) - diffDays + 1;\n diffDays = 0;\n }\n }\n }\n }\n return new Date(gYear, gMonth - 1, gDay);\n}\n/**\n * @param {?} numerals\n * @return {?}\n */\nfunction hebrewNumerals(numerals) {\n if (!numerals) {\n return '';\n }\n /** @type {?} */\n const hArray0_9 = ['', '\\u05d0', '\\u05d1', '\\u05d2', '\\u05d3', '\\u05d4', '\\u05d5', '\\u05d6', '\\u05d7', '\\u05d8'];\n /** @type {?} */\n const hArray10_19 = [\n '\\u05d9', '\\u05d9\\u05d0', '\\u05d9\\u05d1', '\\u05d9\\u05d2', '\\u05d9\\u05d3', '\\u05d8\\u05d5', '\\u05d8\\u05d6',\n '\\u05d9\\u05d6', '\\u05d9\\u05d7', '\\u05d9\\u05d8'\n ];\n /** @type {?} */\n const hArray20_90 = ['', '', '\\u05db', '\\u05dc', '\\u05de', '\\u05e0', '\\u05e1', '\\u05e2', '\\u05e4', '\\u05e6'];\n /** @type {?} */\n const hArray100_900 = [\n '', '\\u05e7', '\\u05e8', '\\u05e9', '\\u05ea', '\\u05ea\\u05e7', '\\u05ea\\u05e8', '\\u05ea\\u05e9', '\\u05ea\\u05ea',\n '\\u05ea\\u05ea\\u05e7'\n ];\n /** @type {?} */\n const hArray1000_9000 = [\n '', '\\u05d0', '\\u05d1', '\\u05d1\\u05d0', '\\u05d1\\u05d1', '\\u05d4', '\\u05d4\\u05d0', '\\u05d4\\u05d1',\n '\\u05d4\\u05d1\\u05d0', '\\u05d4\\u05d1\\u05d1'\n ];\n /** @type {?} */\n const geresh = '\\u05f3';\n /** @type {?} */\n const gershaim = '\\u05f4';\n /** @type {?} */\n let mem = 0;\n /** @type {?} */\n let result = [];\n /** @type {?} */\n let step = 0;\n while (numerals > 0) {\n /** @type {?} */\n let m = numerals % 10;\n if (step === 0) {\n mem = m;\n }\n else if (step === 1) {\n if (m !== 1) {\n result.unshift(hArray20_90[m], hArray0_9[mem]);\n }\n else {\n result.unshift(hArray10_19[mem]);\n }\n }\n else if (step === 2) {\n result.unshift(hArray100_900[m]);\n }\n else {\n if (m !== 5) {\n result.unshift(hArray1000_9000[m], geresh, ' ');\n }\n break;\n }\n numerals = Math.floor(numerals / 10);\n if (step === 0 && numerals === 0) {\n result.unshift(hArray0_9[m]);\n }\n step++;\n }\n result = result.join('').split('');\n if (result.length === 1) {\n result.push(geresh);\n }\n else if (result.length > 1) {\n result.splice(result.length - 1, 0, gershaim);\n }\n return result.join('');\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/**\n * \\@since 3.2.0\n */\nclass NgbCalendarHebrew extends NgbCalendar {\n /**\n * @return {?}\n */\n getDaysPerWeek() { return 7; }\n /**\n * @param {?=} year\n * @return {?}\n */\n getMonths(year) {\n if (year && isHebrewLeapYear(year)) {\n return [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];\n }\n else {\n return [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];\n }\n }\n /**\n * @return {?}\n */\n getWeeksPerMonth() { return 6; }\n /**\n * @param {?} date\n * @return {?}\n */\n isValid(date) {\n /** @type {?} */\n let b = date && isNumber(date.year) && isNumber(date.month) && isNumber(date.day);\n b = b && date.month > 0 && date.month <= (isHebrewLeapYear(date.year) ? 13 : 12);\n b = b && date.day > 0 && date.day <= getDaysInHebrewMonth(date.month, date.year);\n return b && !isNaN(toGregorian$1(date).getTime());\n }\n /**\n * @param {?} date\n * @param {?=} period\n * @param {?=} number\n * @return {?}\n */\n getNext(date, period = 'd', number = 1) {\n date = new NgbDate(date.year, date.month, date.day);\n switch (period) {\n case 'y':\n date.year += number;\n date.month = 1;\n date.day = 1;\n return date;\n case 'm':\n date = setHebrewMonth(date, number);\n date.day = 1;\n return date;\n case 'd':\n return setHebrewDay(date, number);\n default:\n return date;\n }\n }\n /**\n * @param {?} date\n * @param {?=} period\n * @param {?=} number\n * @return {?}\n */\n getPrev(date, period = 'd', number = 1) { return this.getNext(date, period, -number); }\n /**\n * @param {?} date\n * @return {?}\n */\n getWeekday(date) {\n /** @type {?} */\n const day = toGregorian$1(date).getDay();\n // in JS Date Sun=0, in ISO 8601 Sun=7\n return day === 0 ? 7 : day;\n }\n /**\n * @param {?} week\n * @param {?} firstDayOfWeek\n * @return {?}\n */\n getWeekNumber(week, firstDayOfWeek) {\n /** @type {?} */\n const date = week[week.length - 1];\n return Math.ceil(getDayNumberInHebrewYear(date) / 7);\n }\n /**\n * @return {?}\n */\n getToday() { return fromGregorian$1(new Date()); }\n /**\n * \\@since 3.4.0\n * @param {?} date\n * @return {?}\n */\n toGregorian(date) { return fromJSDate(toGregorian$1(date)); }\n /**\n * \\@since 3.4.0\n * @param {?} date\n * @return {?}\n */\n fromGregorian(date) { return fromGregorian$1(toJSDate(date)); }\n}\nNgbCalendarHebrew.ɵfac = /*@__PURE__*/ function () { let ɵNgbCalendarHebrew_BaseFactory; return function NgbCalendarHebrew_Factory(t) { return (ɵNgbCalendarHebrew_BaseFactory || (ɵNgbCalendarHebrew_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(NgbCalendarHebrew)))(t || NgbCalendarHebrew); }; }();\nNgbCalendarHebrew.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NgbCalendarHebrew, factory: NgbCalendarHebrew.ɵfac });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbCalendarHebrew, [{\n type: Injectable\n }], null, null); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/** @type {?} */\nconst WEEKDAYS = ['שני', 'שלישי', 'רביעי', 'חמישי', 'שישי', 'שבת', 'ראשון'];\n/** @type {?} */\nconst MONTHS = ['תשרי', 'חשון', 'כסלו', 'טבת', 'שבט', 'אדר', 'ניסן', 'אייר', 'סיון', 'תמוז', 'אב', 'אלול'];\n/** @type {?} */\nconst MONTHS_LEAP = ['תשרי', 'חשון', 'כסלו', 'טבת', 'שבט', 'אדר א׳', 'אדר ב׳', 'ניסן', 'אייר', 'סיון', 'תמוז', 'אב', 'אלול'];\n/**\n * \\@since 3.2.0\n */\nclass NgbDatepickerI18nHebrew extends NgbDatepickerI18n {\n /**\n * @param {?} month\n * @param {?=} year\n * @return {?}\n */\n getMonthShortName(month, year) { return this.getMonthFullName(month, year); }\n /**\n * @param {?} month\n * @param {?=} year\n * @return {?}\n */\n getMonthFullName(month, year) {\n return isHebrewLeapYear(year) ? MONTHS_LEAP[month - 1] : MONTHS[month - 1];\n }\n /**\n * @param {?} weekday\n * @return {?}\n */\n getWeekdayShortName(weekday) { return WEEKDAYS[weekday - 1]; }\n /**\n * @param {?} date\n * @return {?}\n */\n getDayAriaLabel(date) {\n return `${hebrewNumerals(date.day)} ${this.getMonthFullName(date.month, date.year)} ${hebrewNumerals(date.year)}`;\n }\n /**\n * @param {?} date\n * @return {?}\n */\n getDayNumerals(date) { return hebrewNumerals(date.day); }\n /**\n * @param {?} weekNumber\n * @return {?}\n */\n getWeekNumerals(weekNumber) { return hebrewNumerals(weekNumber); }\n /**\n * @param {?} year\n * @return {?}\n */\n getYearNumerals(year) { return hebrewNumerals(year); }\n}\nNgbDatepickerI18nHebrew.ɵfac = /*@__PURE__*/ function () { let ɵNgbDatepickerI18nHebrew_BaseFactory; return function NgbDatepickerI18nHebrew_Factory(t) { return (ɵNgbDatepickerI18nHebrew_BaseFactory || (ɵNgbDatepickerI18nHebrew_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(NgbDatepickerI18nHebrew)))(t || NgbDatepickerI18nHebrew); }; }();\nNgbDatepickerI18nHebrew.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NgbDatepickerI18nHebrew, factory: NgbDatepickerI18nHebrew.ɵfac });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDatepickerI18nHebrew, [{\n type: Injectable\n }], null, null); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/**\n * [`NgbDateAdapter`](#/components/datepicker/api#NgbDateAdapter) implementation that uses\n * native javascript dates as a user date model.\n */\nclass NgbDateNativeAdapter extends NgbDateAdapter {\n /**\n * Converts a native `Date` to a `NgbDateStruct`.\n * @param {?} date\n * @return {?}\n */\n fromModel(date) {\n return (date instanceof Date && !isNaN(date.getTime())) ? this._fromNativeDate(date) : null;\n }\n /**\n * Converts a `NgbDateStruct` to a native `Date`.\n * @param {?} date\n * @return {?}\n */\n toModel(date) {\n return date && isInteger(date.year) && isInteger(date.month) && isInteger(date.day) ? this._toNativeDate(date) :\n null;\n }\n /**\n * @param {?} date\n * @return {?}\n */\n _fromNativeDate(date) {\n return { year: date.getFullYear(), month: date.getMonth() + 1, day: date.getDate() };\n }\n /**\n * @param {?} date\n * @return {?}\n */\n _toNativeDate(date) {\n /** @type {?} */\n const jsDate = new Date(date.year, date.month - 1, date.day, 12);\n // avoid 30 -> 1930 conversion\n jsDate.setFullYear(date.year);\n return jsDate;\n }\n}\nNgbDateNativeAdapter.ɵfac = /*@__PURE__*/ function () { let ɵNgbDateNativeAdapter_BaseFactory; return function NgbDateNativeAdapter_Factory(t) { return (ɵNgbDateNativeAdapter_BaseFactory || (ɵNgbDateNativeAdapter_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(NgbDateNativeAdapter)))(t || NgbDateNativeAdapter); }; }();\nNgbDateNativeAdapter.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NgbDateNativeAdapter, factory: NgbDateNativeAdapter.ɵfac });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDateNativeAdapter, [{\n type: Injectable\n }], null, null); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/**\n * Same as [`NgbDateNativeAdapter`](#/components/datepicker/api#NgbDateNativeAdapter), but with UTC dates.\n *\n * \\@since 3.2.0\n */\nclass NgbDateNativeUTCAdapter extends NgbDateNativeAdapter {\n /**\n * @param {?} date\n * @return {?}\n */\n _fromNativeDate(date) {\n return { year: date.getUTCFullYear(), month: date.getUTCMonth() + 1, day: date.getUTCDate() };\n }\n /**\n * @param {?} date\n * @return {?}\n */\n _toNativeDate(date) {\n /** @type {?} */\n const jsDate = new Date(Date.UTC(date.year, date.month - 1, date.day));\n // avoid 30 -> 1930 conversion\n jsDate.setUTCFullYear(date.year);\n return jsDate;\n }\n}\nNgbDateNativeUTCAdapter.ɵfac = /*@__PURE__*/ function () { let ɵNgbDateNativeUTCAdapter_BaseFactory; return function NgbDateNativeUTCAdapter_Factory(t) { return (ɵNgbDateNativeUTCAdapter_BaseFactory || (ɵNgbDateNativeUTCAdapter_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(NgbDateNativeUTCAdapter)))(t || NgbDateNativeUTCAdapter); }; }();\nNgbDateNativeUTCAdapter.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NgbDateNativeUTCAdapter, factory: NgbDateNativeUTCAdapter.ɵfac });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDateNativeUTCAdapter, [{\n type: Injectable\n }], null, null); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\nclass NgbDatepickerModule {\n /**\n * Importing with '.forRoot()' is no longer necessary, you can simply import the module.\n * Will be removed in 4.0.0.\n *\n * @deprecated 3.0.0\n * @return {?}\n */\n static forRoot() { return { ngModule: NgbDatepickerModule }; }\n}\nNgbDatepickerModule.ɵfac = function NgbDatepickerModule_Factory(t) { return new (t || NgbDatepickerModule)(); };\nNgbDatepickerModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgbDatepickerModule });\nNgbDatepickerModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [CommonModule, FormsModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDatepickerModule, [{\n type: NgModule,\n args: [{\n declarations: [\n NgbDatepicker, NgbDatepickerMonthView, NgbDatepickerNavigation, NgbDatepickerNavigationSelect, NgbDatepickerDayView,\n NgbInputDatepicker\n ],\n exports: [NgbDatepicker, NgbInputDatepicker],\n imports: [CommonModule, FormsModule],\n entryComponents: [NgbDatepicker]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbDatepickerModule, { declarations: function () { return [NgbDatepicker, NgbDatepickerMonthView, NgbDatepickerNavigation, NgbDatepickerNavigationSelect, NgbDatepickerDayView, NgbInputDatepicker]; }, imports: function () { return [CommonModule, FormsModule]; }, exports: function () { return [NgbDatepicker, NgbInputDatepicker]; } }); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/**\n * A configuration service for the [`NgbDropdown`](#/components/dropdown/api#NgbDropdown) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the dropdowns used in the application.\n */\nclass NgbDropdownConfig {\n constructor() {\n this.autoClose = true;\n this.placement = ['bottom-left', 'bottom-right', 'top-left', 'top-right'];\n }\n}\nNgbDropdownConfig.ɵfac = function NgbDropdownConfig_Factory(t) { return new (t || NgbDropdownConfig)(); };\nNgbDropdownConfig.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NgbDropdownConfig, factory: NgbDropdownConfig.ɵfac, providedIn: 'root' });\n/** @nocollapse */ NgbDropdownConfig.ngInjectableDef = defineInjectable({ factory: function NgbDropdownConfig_Factory() { return new NgbDropdownConfig(); }, token: NgbDropdownConfig, providedIn: \"root\" });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDropdownConfig, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () { return []; }, null); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\nclass NgbNavbar {\n}\nNgbNavbar.ɵfac = function NgbNavbar_Factory(t) { return new (t || NgbNavbar)(); };\nNgbNavbar.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbNavbar, selectors: [[\"\", 8, \"navbar\"]] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbNavbar, [{\n type: Directive,\n args: [{ selector: '.navbar' }]\n }], null, null); })();\n/**\n * A directive you should put put on a dropdown item to enable keyboard navigation.\n * Arrow keys will move focus between items marked with this directive.\n *\n * \\@since 4.1.0\n */\nclass NgbDropdownItem {\n /**\n * @param {?} elementRef\n */\n constructor(elementRef) {\n this.elementRef = elementRef;\n this._disabled = false;\n }\n /**\n * @param {?} value\n * @return {?}\n */\n set disabled(value) {\n this._disabled = (/** @type {?} */ (value)) === '' || value === true; // accept an empty attribute as true\n }\n /**\n * @return {?}\n */\n get disabled() { return this._disabled; }\n}\nNgbDropdownItem.ɵfac = function NgbDropdownItem_Factory(t) { return new (t || NgbDropdownItem)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef)); };\nNgbDropdownItem.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbDropdownItem, selectors: [[\"\", \"ngbDropdownItem\", \"\"]], hostAttrs: [1, \"dropdown-item\"], hostVars: 2, hostBindings: function NgbDropdownItem_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"disabled\", ctx.disabled);\n } }, inputs: { disabled: \"disabled\" } });\n/** @nocollapse */\nNgbDropdownItem.ctorParameters = () => [\n { type: ElementRef }\n];\nNgbDropdownItem.propDecorators = {\n disabled: [{ type: Input }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDropdownItem, [{\n type: Directive,\n args: [{ selector: '[ngbDropdownItem]', host: { 'class': 'dropdown-item', '[class.disabled]': 'disabled' } }]\n }], function () { return [{ type: ɵngcc0.ElementRef }]; }, { disabled: [{\n type: Input\n }] }); })();\n/**\n * A directive that wraps dropdown menu content and dropdown items.\n */\nclass NgbDropdownMenu {\n /**\n * @param {?} dropdown\n */\n constructor(dropdown) {\n this.dropdown = dropdown;\n this.placement = 'bottom';\n this.isOpen = false;\n }\n}\nNgbDropdownMenu.ɵfac = function NgbDropdownMenu_Factory(t) { return new (t || NgbDropdownMenu)(ɵngcc0.ɵɵdirectiveInject(forwardRef(() => NgbDropdown))); };\nNgbDropdownMenu.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbDropdownMenu, selectors: [[\"\", \"ngbDropdownMenu\", \"\"]], contentQueries: function NgbDropdownMenu_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbDropdownItem, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.menuItems = _t);\n } }, hostVars: 5, hostBindings: function NgbDropdownMenu_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"keydown.ArrowUp\", function NgbDropdownMenu_keydown_ArrowUp_HostBindingHandler($event) { return ctx.dropdown.onKeyDown($event); })(\"keydown.ArrowDown\", function NgbDropdownMenu_keydown_ArrowDown_HostBindingHandler($event) { return ctx.dropdown.onKeyDown($event); })(\"keydown.Home\", function NgbDropdownMenu_keydown_Home_HostBindingHandler($event) { return ctx.dropdown.onKeyDown($event); })(\"keydown.End\", function NgbDropdownMenu_keydown_End_HostBindingHandler($event) { return ctx.dropdown.onKeyDown($event); })(\"keydown.Enter\", function NgbDropdownMenu_keydown_Enter_HostBindingHandler($event) { return ctx.dropdown.onKeyDown($event); })(\"keydown.Space\", function NgbDropdownMenu_keydown_Space_HostBindingHandler($event) { return ctx.dropdown.onKeyDown($event); });\n } if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"x-placement\", ctx.placement);\n ɵngcc0.ɵɵclassProp(\"dropdown-menu\", true)(\"show\", ctx.dropdown.isOpen());\n } } });\n/** @nocollapse */\nNgbDropdownMenu.ctorParameters = () => [\n { type: NgbDropdown, decorators: [{ type: Inject, args: [forwardRef(() => NgbDropdown),] }] }\n];\nNgbDropdownMenu.propDecorators = {\n menuItems: [{ type: ContentChildren, args: [NgbDropdownItem,] }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDropdownMenu, [{\n type: Directive,\n args: [{\n selector: '[ngbDropdownMenu]',\n host: {\n '[class.dropdown-menu]': 'true',\n '[class.show]': 'dropdown.isOpen()',\n '[attr.x-placement]': 'placement',\n '(keydown.ArrowUp)': 'dropdown.onKeyDown($event)',\n '(keydown.ArrowDown)': 'dropdown.onKeyDown($event)',\n '(keydown.Home)': 'dropdown.onKeyDown($event)',\n '(keydown.End)': 'dropdown.onKeyDown($event)',\n '(keydown.Enter)': 'dropdown.onKeyDown($event)',\n '(keydown.Space)': 'dropdown.onKeyDown($event)'\n }\n }]\n }], function () { return [{ type: NgbDropdown, decorators: [{\n type: Inject,\n args: [forwardRef(() => NgbDropdown)]\n }] }]; }, { menuItems: [{\n type: ContentChildren,\n args: [NgbDropdownItem]\n }] }); })();\n/**\n * A directive to mark an element to which dropdown menu will be anchored.\n *\n * This is a simple version of the `NgbDropdownToggle` directive.\n * It plays the same role, but doesn't listen to click events to toggle dropdown menu thus enabling support\n * for events other than click.\n *\n * \\@since 1.1.0\n */\nclass NgbDropdownAnchor {\n /**\n * @param {?} dropdown\n * @param {?} _elementRef\n */\n constructor(dropdown, _elementRef) {\n this.dropdown = dropdown;\n this._elementRef = _elementRef;\n this.anchorEl = _elementRef.nativeElement;\n }\n /**\n * @return {?}\n */\n getNativeElement() { return this._elementRef.nativeElement; }\n}\nNgbDropdownAnchor.ɵfac = function NgbDropdownAnchor_Factory(t) { return new (t || NgbDropdownAnchor)(ɵngcc0.ɵɵdirectiveInject(forwardRef(() => NgbDropdown)), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef)); };\nNgbDropdownAnchor.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbDropdownAnchor, selectors: [[\"\", \"ngbDropdownAnchor\", \"\"]], hostAttrs: [\"aria-haspopup\", \"true\", 1, \"dropdown-toggle\"], hostVars: 1, hostBindings: function NgbDropdownAnchor_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"aria-expanded\", ctx.dropdown.isOpen());\n } } });\n/** @nocollapse */\nNgbDropdownAnchor.ctorParameters = () => [\n { type: NgbDropdown, decorators: [{ type: Inject, args: [forwardRef(() => NgbDropdown),] }] },\n { type: ElementRef }\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDropdownAnchor, [{\n type: Directive,\n args: [{\n selector: '[ngbDropdownAnchor]',\n host: { 'class': 'dropdown-toggle', 'aria-haspopup': 'true', '[attr.aria-expanded]': 'dropdown.isOpen()' }\n }]\n }], function () { return [{ type: NgbDropdown, decorators: [{\n type: Inject,\n args: [forwardRef(() => NgbDropdown)]\n }] }, { type: ɵngcc0.ElementRef }]; }, null); })();\n/**\n * A directive to mark an element that will toggle dropdown via the `click` event.\n *\n * You can also use `NgbDropdownAnchor` as an alternative.\n */\nclass NgbDropdownToggle extends NgbDropdownAnchor {\n /**\n * @param {?} dropdown\n * @param {?} elementRef\n */\n constructor(dropdown, elementRef) {\n super(dropdown, elementRef);\n }\n}\nNgbDropdownToggle.ɵfac = function NgbDropdownToggle_Factory(t) { return new (t || NgbDropdownToggle)(ɵngcc0.ɵɵdirectiveInject(forwardRef(() => NgbDropdown)), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef)); };\nNgbDropdownToggle.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbDropdownToggle, selectors: [[\"\", \"ngbDropdownToggle\", \"\"]], hostAttrs: [\"aria-haspopup\", \"true\", 1, \"dropdown-toggle\"], hostVars: 1, hostBindings: function NgbDropdownToggle_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"click\", function NgbDropdownToggle_click_HostBindingHandler() { return ctx.dropdown.toggle(); })(\"keydown.ArrowUp\", function NgbDropdownToggle_keydown_ArrowUp_HostBindingHandler($event) { return ctx.dropdown.onKeyDown($event); })(\"keydown.ArrowDown\", function NgbDropdownToggle_keydown_ArrowDown_HostBindingHandler($event) { return ctx.dropdown.onKeyDown($event); })(\"keydown.Home\", function NgbDropdownToggle_keydown_Home_HostBindingHandler($event) { return ctx.dropdown.onKeyDown($event); })(\"keydown.End\", function NgbDropdownToggle_keydown_End_HostBindingHandler($event) { return ctx.dropdown.onKeyDown($event); });\n } if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"aria-expanded\", ctx.dropdown.isOpen());\n } }, features: [ɵngcc0.ɵɵProvidersFeature([{ provide: NgbDropdownAnchor, useExisting: forwardRef(() => NgbDropdownToggle) }]), ɵngcc0.ɵɵInheritDefinitionFeature] });\n/** @nocollapse */\nNgbDropdownToggle.ctorParameters = () => [\n { type: NgbDropdown, decorators: [{ type: Inject, args: [forwardRef(() => NgbDropdown),] }] },\n { type: ElementRef }\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDropdownToggle, [{\n type: Directive,\n args: [{\n selector: '[ngbDropdownToggle]',\n host: {\n 'class': 'dropdown-toggle',\n 'aria-haspopup': 'true',\n '[attr.aria-expanded]': 'dropdown.isOpen()',\n '(click)': 'dropdown.toggle()',\n '(keydown.ArrowUp)': 'dropdown.onKeyDown($event)',\n '(keydown.ArrowDown)': 'dropdown.onKeyDown($event)',\n '(keydown.Home)': 'dropdown.onKeyDown($event)',\n '(keydown.End)': 'dropdown.onKeyDown($event)'\n },\n providers: [{ provide: NgbDropdownAnchor, useExisting: forwardRef(() => NgbDropdownToggle) }]\n }]\n }], function () { return [{ type: NgbDropdown, decorators: [{\n type: Inject,\n args: [forwardRef(() => NgbDropdown)]\n }] }, { type: ɵngcc0.ElementRef }]; }, null); })();\n/**\n * A directive that provides contextual overlays for displaying lists of links and more.\n */\nclass NgbDropdown {\n /**\n * @param {?} _changeDetector\n * @param {?} config\n * @param {?} _document\n * @param {?} _ngZone\n * @param {?} _elementRef\n * @param {?} _renderer\n * @param {?} ngbNavbar\n */\n constructor(_changeDetector, config, _document, _ngZone, _elementRef, _renderer, ngbNavbar) {\n this._changeDetector = _changeDetector;\n this._document = _document;\n this._ngZone = _ngZone;\n this._elementRef = _elementRef;\n this._renderer = _renderer;\n this._closed$ = new Subject();\n /**\n * Defines whether or not the dropdown menu is opened initially.\n */\n this._open = false;\n /**\n * An event fired when the dropdown is opened or closed.\n *\n * The event payload is a `boolean`:\n * * `true` - the dropdown was opened\n * * `false` - the dropdown was closed\n */\n this.openChange = new EventEmitter();\n this.placement = config.placement;\n this.container = config.container;\n this.autoClose = config.autoClose;\n this.display = ngbNavbar ? 'static' : 'dynamic';\n this._zoneSubscription = _ngZone.onStable.subscribe(() => { this._positionMenu(); });\n }\n /**\n * @return {?}\n */\n ngOnInit() {\n this._applyPlacementClasses();\n if (this._open) {\n this._setCloseHandlers();\n }\n }\n /**\n * @param {?} changes\n * @return {?}\n */\n ngOnChanges(changes) {\n if (changes.container && this._open) {\n this._applyContainer(this.container);\n }\n if (changes.placement && !changes.placement.isFirstChange) {\n this._applyPlacementClasses();\n }\n }\n /**\n * Checks if the dropdown menu is open.\n * @return {?}\n */\n isOpen() { return this._open; }\n /**\n * Opens the dropdown menu.\n * @return {?}\n */\n open() {\n if (!this._open) {\n this._open = true;\n this._applyContainer(this.container);\n this.openChange.emit(true);\n this._setCloseHandlers();\n }\n }\n /**\n * @return {?}\n */\n _setCloseHandlers() {\n ngbAutoClose(this._ngZone, this._document, this.autoClose, () => this.close(), this._closed$, this._menu ? [this._menuElement.nativeElement] : [], this._anchor ? [this._anchor.getNativeElement()] : [], '.dropdown-item,.dropdown-divider');\n }\n /**\n * Closes the dropdown menu.\n * @return {?}\n */\n close() {\n if (this._open) {\n this._open = false;\n this._resetContainer();\n this._closed$.next();\n this.openChange.emit(false);\n this._changeDetector.markForCheck();\n }\n }\n /**\n * Toggles the dropdown menu.\n * @return {?}\n */\n toggle() {\n if (this.isOpen()) {\n this.close();\n }\n else {\n this.open();\n }\n }\n /**\n * @return {?}\n */\n ngOnDestroy() {\n this._resetContainer();\n this._closed$.next();\n this._zoneSubscription.unsubscribe();\n }\n /**\n * @param {?} event\n * @return {?}\n */\n onKeyDown(event) {\n // tslint:disable-next-line:deprecation\n /** @type {?} */\n const key = event.which;\n /** @type {?} */\n const itemElements = this._getMenuElements();\n /** @type {?} */\n let position = -1;\n /** @type {?} */\n let isEventFromItems = false;\n /** @type {?} */\n const isEventFromToggle = this._isEventFromToggle(event);\n if (!isEventFromToggle && itemElements.length) {\n itemElements.forEach((itemElement, index) => {\n if (itemElement.contains((/** @type {?} */ (event.target)))) {\n isEventFromItems = true;\n }\n if (itemElement === this._document.activeElement) {\n position = index;\n }\n });\n }\n // closing on Enter / Space\n if (key === Key.Space || key === Key.Enter) {\n if (isEventFromItems && (this.autoClose === true || this.autoClose === 'inside')) {\n this.close();\n }\n return;\n }\n // opening / navigating\n if (isEventFromToggle || isEventFromItems) {\n this.open();\n if (itemElements.length) {\n switch (key) {\n case Key.ArrowDown:\n position = Math.min(position + 1, itemElements.length - 1);\n break;\n case Key.ArrowUp:\n if (this._isDropup() && position === -1) {\n position = itemElements.length - 1;\n break;\n }\n position = Math.max(position - 1, 0);\n break;\n case Key.Home:\n position = 0;\n break;\n case Key.End:\n position = itemElements.length - 1;\n break;\n }\n itemElements[position].focus();\n }\n event.preventDefault();\n }\n }\n /**\n * @return {?}\n */\n _isDropup() { return this._elementRef.nativeElement.classList.contains('dropup'); }\n /**\n * @param {?} event\n * @return {?}\n */\n _isEventFromToggle(event) {\n return this._anchor.getNativeElement().contains((/** @type {?} */ (event.target)));\n }\n /**\n * @return {?}\n */\n _getMenuElements() {\n if (this._menu == null) {\n return [];\n }\n return this._menu.menuItems.filter(item => !item.disabled).map(item => item.elementRef.nativeElement);\n }\n /**\n * @return {?}\n */\n _positionMenu() {\n if (this.isOpen() && this._menu) {\n this._applyPlacementClasses(this.display === 'dynamic' ?\n positionElements(this._anchor.anchorEl, this._bodyContainer || this._menuElement.nativeElement, this.placement, this.container === 'body') :\n this._getFirstPlacement(this.placement));\n }\n }\n /**\n * @param {?} placement\n * @return {?}\n */\n _getFirstPlacement(placement) {\n return Array.isArray(placement) ? placement[0] : (/** @type {?} */ (placement.split(' ')[0]));\n }\n /**\n * @return {?}\n */\n _resetContainer() {\n /** @type {?} */\n const renderer = this._renderer;\n if (this._menuElement) {\n /** @type {?} */\n const dropdownElement = this._elementRef.nativeElement;\n /** @type {?} */\n const dropdownMenuElement = this._menuElement.nativeElement;\n renderer.appendChild(dropdownElement, dropdownMenuElement);\n renderer.removeStyle(dropdownMenuElement, 'position');\n renderer.removeStyle(dropdownMenuElement, 'transform');\n }\n if (this._bodyContainer) {\n renderer.removeChild(this._document.body, this._bodyContainer);\n this._bodyContainer = null;\n }\n }\n /**\n * @param {?=} container\n * @return {?}\n */\n _applyContainer(container = null) {\n this._resetContainer();\n if (container === 'body') {\n /** @type {?} */\n const renderer = this._renderer;\n /** @type {?} */\n const dropdownMenuElement = this._menuElement.nativeElement;\n /** @type {?} */\n const bodyContainer = this._bodyContainer = this._bodyContainer || renderer.createElement('div');\n // Override some styles to have the positionning working\n renderer.setStyle(bodyContainer, 'position', 'absolute');\n renderer.setStyle(dropdownMenuElement, 'position', 'static');\n renderer.setStyle(bodyContainer, 'z-index', '1050');\n renderer.appendChild(bodyContainer, dropdownMenuElement);\n renderer.appendChild(this._document.body, bodyContainer);\n }\n }\n /**\n * @param {?=} placement\n * @return {?}\n */\n _applyPlacementClasses(placement) {\n if (this._menu) {\n if (!placement) {\n placement = this._getFirstPlacement(this.placement);\n }\n /** @type {?} */\n const renderer = this._renderer;\n /** @type {?} */\n const dropdownElement = this._elementRef.nativeElement;\n // remove the current placement classes\n renderer.removeClass(dropdownElement, 'dropup');\n renderer.removeClass(dropdownElement, 'dropdown');\n this._menu.placement = placement;\n /*\n * apply the new placement\n * in case of top use up-arrow or down-arrow otherwise\n */\n /** @type {?} */\n const dropdownClass = placement.search('^top') !== -1 ? 'dropup' : 'dropdown';\n renderer.addClass(dropdownElement, dropdownClass);\n /** @type {?} */\n const bodyContainer = this._bodyContainer;\n if (bodyContainer) {\n renderer.removeClass(bodyContainer, 'dropup');\n renderer.removeClass(bodyContainer, 'dropdown');\n renderer.addClass(bodyContainer, dropdownClass);\n }\n }\n }\n}\nNgbDropdown.ɵfac = function NgbDropdown_Factory(t) { return new (t || NgbDropdown)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(NgbDropdownConfig), ɵngcc0.ɵɵdirectiveInject(DOCUMENT), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(NgbNavbar, 8)); };\nNgbDropdown.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbDropdown, selectors: [[\"\", \"ngbDropdown\", \"\"]], contentQueries: function NgbDropdown_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbDropdownMenu, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbDropdownMenu, 5, ElementRef);\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbDropdownAnchor, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._menu = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._menuElement = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._anchor = _t.first);\n } }, hostVars: 2, hostBindings: function NgbDropdown_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"show\", ctx.isOpen());\n } }, inputs: { _open: [\"open\", \"_open\"], placement: \"placement\", container: \"container\", autoClose: \"autoClose\", display: \"display\" }, outputs: { openChange: \"openChange\" }, exportAs: [\"ngbDropdown\"], features: [ɵngcc0.ɵɵNgOnChangesFeature] });\n/** @nocollapse */\nNgbDropdown.ctorParameters = () => [\n { type: ChangeDetectorRef },\n { type: NgbDropdownConfig },\n { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },\n { type: NgZone },\n { type: ElementRef },\n { type: Renderer2 },\n { type: NgbNavbar, decorators: [{ type: Optional }] }\n];\nNgbDropdown.propDecorators = {\n _menu: [{ type: ContentChild, args: [NgbDropdownMenu,] }],\n _menuElement: [{ type: ContentChild, args: [NgbDropdownMenu, { read: ElementRef },] }],\n _anchor: [{ type: ContentChild, args: [NgbDropdownAnchor,] }],\n autoClose: [{ type: Input }],\n _open: [{ type: Input, args: ['open',] }],\n placement: [{ type: Input }],\n container: [{ type: Input }],\n display: [{ type: Input }],\n openChange: [{ type: Output }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDropdown, [{\n type: Directive,\n args: [{ selector: '[ngbDropdown]', exportAs: 'ngbDropdown', host: { '[class.show]': 'isOpen()' } }]\n }], function () { return [{ type: ɵngcc0.ChangeDetectorRef }, { type: NgbDropdownConfig }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: NgbNavbar, decorators: [{\n type: Optional\n }] }]; }, { _open: [{\n type: Input,\n args: ['open']\n }], openChange: [{\n type: Output\n }], placement: [{\n type: Input\n }], container: [{\n type: Input\n }], autoClose: [{\n type: Input\n }], display: [{\n type: Input\n }], _menu: [{\n type: ContentChild,\n args: [NgbDropdownMenu]\n }], _menuElement: [{\n type: ContentChild,\n args: [NgbDropdownMenu, { read: ElementRef }]\n }], _anchor: [{\n type: ContentChild,\n args: [NgbDropdownAnchor]\n }] }); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/** @type {?} */\nconst NGB_DROPDOWN_DIRECTIVES = [NgbDropdown, NgbDropdownAnchor, NgbDropdownToggle, NgbDropdownMenu, NgbDropdownItem, NgbNavbar];\nclass NgbDropdownModule {\n /**\n * Importing with '.forRoot()' is no longer necessary, you can simply import the module.\n * Will be removed in 4.0.0.\n *\n * @deprecated 3.0.0\n * @return {?}\n */\n static forRoot() { return { ngModule: NgbDropdownModule }; }\n}\nNgbDropdownModule.ɵfac = function NgbDropdownModule_Factory(t) { return new (t || NgbDropdownModule)(); };\nNgbDropdownModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgbDropdownModule });\nNgbDropdownModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbDropdownModule, [{\n type: NgModule,\n args: [{ declarations: NGB_DROPDOWN_DIRECTIVES, exports: NGB_DROPDOWN_DIRECTIVES }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbDropdownModule, { declarations: [NgbDropdown, NgbDropdownAnchor, NgbDropdownToggle, NgbDropdownMenu, NgbDropdownItem, NgbNavbar], exports: [NgbDropdown, NgbDropdownAnchor, NgbDropdownToggle, NgbDropdownMenu, NgbDropdownItem, NgbNavbar] }); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/**\n * A configuration service for the [`NgbModal`](#/components/modal/api#NgbModal) service.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all modals used in the application.\n *\n * \\@since 3.1.0\n */\nclass NgbModalConfig {\n constructor() {\n this.backdrop = true;\n this.keyboard = true;\n }\n}\nNgbModalConfig.ɵfac = function NgbModalConfig_Factory(t) { return new (t || NgbModalConfig)(); };\nNgbModalConfig.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NgbModalConfig, factory: NgbModalConfig.ɵfac, providedIn: 'root' });\n/** @nocollapse */ NgbModalConfig.ngInjectableDef = defineInjectable({ factory: function NgbModalConfig_Factory() { return new NgbModalConfig(); }, token: NgbModalConfig, providedIn: \"root\" });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbModalConfig, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () { return []; }, null); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\nclass ContentRef {\n /**\n * @param {?} nodes\n * @param {?=} viewRef\n * @param {?=} componentRef\n */\n constructor(nodes, viewRef, componentRef) {\n this.nodes = nodes;\n this.viewRef = viewRef;\n this.componentRef = componentRef;\n }\n}\n/**\n * @template T\n */\nclass PopupService {\n /**\n * @param {?} _type\n * @param {?} _injector\n * @param {?} _viewContainerRef\n * @param {?} _renderer\n * @param {?} _componentFactoryResolver\n * @param {?} _applicationRef\n */\n constructor(_type, _injector, _viewContainerRef, _renderer, _componentFactoryResolver, _applicationRef) {\n this._type = _type;\n this._injector = _injector;\n this._viewContainerRef = _viewContainerRef;\n this._renderer = _renderer;\n this._componentFactoryResolver = _componentFactoryResolver;\n this._applicationRef = _applicationRef;\n }\n /**\n * @param {?=} content\n * @param {?=} context\n * @return {?}\n */\n open(content, context) {\n if (!this._windowRef) {\n this._contentRef = this._getContentRef(content, context);\n this._windowRef = this._viewContainerRef.createComponent(this._componentFactoryResolver.resolveComponentFactory(this._type), 0, this._injector, this._contentRef.nodes);\n }\n return this._windowRef;\n }\n /**\n * @return {?}\n */\n close() {\n if (this._windowRef) {\n this._viewContainerRef.remove(this._viewContainerRef.indexOf(this._windowRef.hostView));\n this._windowRef = null;\n if (this._contentRef.viewRef) {\n this._applicationRef.detachView(this._contentRef.viewRef);\n this._contentRef.viewRef.destroy();\n this._contentRef = null;\n }\n }\n }\n /**\n * @param {?} content\n * @param {?=} context\n * @return {?}\n */\n _getContentRef(content, context) {\n if (!content) {\n return new ContentRef([]);\n }\n else if (content instanceof TemplateRef) {\n /** @type {?} */\n const viewRef = content.createEmbeddedView(context);\n this._applicationRef.attachView(viewRef);\n return new ContentRef([viewRef.rootNodes], viewRef);\n }\n else {\n return new ContentRef([[this._renderer.createText(`${content}`)]]);\n }\n }\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/** @type {?} */\nconst noop = () => { };\n/**\n * Utility to handle the scrollbar.\n *\n * It allows to compensate the lack of a vertical scrollbar by adding an\n * equivalent padding on the right of the body, and to remove this compensation.\n */\nclass ScrollBar {\n /**\n * @param {?} _document\n */\n constructor(_document) {\n this._document = _document;\n }\n /**\n * Detects if a scrollbar is present and if yes, already compensates for its\n * removal by adding an equivalent padding on the right of the body.\n *\n * @return {?} a callback used to revert the compensation (noop if there was none,\n * otherwise a function removing the padding)\n */\n compensate() { return !this._isPresent() ? noop : this._adjustBody(this._getWidth()); }\n /**\n * Adds a padding of the given width on the right of the body.\n *\n * @param {?} width\n * @return {?} a callback used to revert the padding to its previous value\n */\n _adjustBody(width) {\n /** @type {?} */\n const body = this._document.body;\n /** @type {?} */\n const userSetPadding = body.style.paddingRight;\n /** @type {?} */\n const paddingAmount = parseFloat(window.getComputedStyle(body)['padding-right']);\n body.style['padding-right'] = `${paddingAmount + width}px`;\n return () => body.style['padding-right'] = userSetPadding;\n }\n /**\n * Tells whether a scrollbar is currently present on the body.\n *\n * @return {?} true if scrollbar is present, false otherwise\n */\n _isPresent() {\n /** @type {?} */\n const rect = this._document.body.getBoundingClientRect();\n return rect.left + rect.right < window.innerWidth;\n }\n /**\n * Calculates and returns the width of a scrollbar.\n *\n * @return {?} the width of a scrollbar on this page\n */\n _getWidth() {\n /** @type {?} */\n const measurer = this._document.createElement('div');\n measurer.className = 'modal-scrollbar-measure';\n /** @type {?} */\n const body = this._document.body;\n body.appendChild(measurer);\n /** @type {?} */\n const width = measurer.getBoundingClientRect().width - measurer.clientWidth;\n body.removeChild(measurer);\n return width;\n }\n}\nScrollBar.ɵfac = function ScrollBar_Factory(t) { return new (t || ScrollBar)(ɵngcc0.ɵɵinject(DOCUMENT)); };\nScrollBar.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: ScrollBar, factory: ScrollBar.ɵfac, providedIn: 'root' });\n/** @nocollapse */\nScrollBar.ctorParameters = () => [\n { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }\n];\n/** @nocollapse */ ScrollBar.ngInjectableDef = defineInjectable({ factory: function ScrollBar_Factory() { return new ScrollBar(inject(DOCUMENT)); }, token: ScrollBar, providedIn: \"root\" });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ScrollBar, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; }, null); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\nclass NgbModalBackdrop {\n}\nNgbModalBackdrop.ɵfac = function NgbModalBackdrop_Factory(t) { return new (t || NgbModalBackdrop)(); };\nNgbModalBackdrop.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NgbModalBackdrop, selectors: [[\"ngb-modal-backdrop\"]], hostAttrs: [2, \"z-index\", \"1050\"], hostVars: 2, hostBindings: function NgbModalBackdrop_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassMap(\"modal-backdrop fade show\" + (ctx.backdropClass ? \" \" + ctx.backdropClass : \"\"));\n } }, inputs: { backdropClass: \"backdropClass\" }, decls: 0, vars: 0, template: function NgbModalBackdrop_Template(rf, ctx) { }, encapsulation: 2 });\nNgbModalBackdrop.propDecorators = {\n backdropClass: [{ type: Input }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbModalBackdrop, [{\n type: Component,\n args: [{\n selector: 'ngb-modal-backdrop',\n template: '',\n host: { '[class]': '\"modal-backdrop fade show\" + (backdropClass ? \" \" + backdropClass : \"\")', 'style': 'z-index: 1050' }\n }]\n }], null, { backdropClass: [{\n type: Input\n }] }); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/**\n * A reference to the currently opened (active) modal.\n *\n * Instances of this class can be injected into your component passed as modal content.\n * So you can `.close()` or `.dismiss()` the modal window from your component.\n */\nclass NgbActiveModal {\n /**\n * Closes the modal with an optional `result` value.\n *\n * The `NgbMobalRef.result` promise will be resolved with the provided value.\n * @param {?=} result\n * @return {?}\n */\n close(result) { }\n /**\n * Dismisses the modal with an optional `reason` value.\n *\n * The `NgbModalRef.result` promise will be rejected with the provided value.\n * @param {?=} reason\n * @return {?}\n */\n dismiss(reason) { }\n}\n/**\n * A reference to the newly opened modal returned by the `NgbModal.open()` method.\n */\nclass NgbModalRef {\n /**\n * @param {?} _windowCmptRef\n * @param {?} _contentRef\n * @param {?=} _backdropCmptRef\n * @param {?=} _beforeDismiss\n */\n constructor(_windowCmptRef, _contentRef, _backdropCmptRef, _beforeDismiss) {\n this._windowCmptRef = _windowCmptRef;\n this._contentRef = _contentRef;\n this._backdropCmptRef = _backdropCmptRef;\n this._beforeDismiss = _beforeDismiss;\n _windowCmptRef.instance.dismissEvent.subscribe((reason) => { this.dismiss(reason); });\n this.result = new Promise((resolve, reject) => {\n this._resolve = resolve;\n this._reject = reject;\n });\n this.result.then(null, () => { });\n }\n /**\n * The instance of a component used for the modal content.\n *\n * When a `TemplateRef` is used as the content, will return `undefined`.\n * @return {?}\n */\n get componentInstance() {\n if (this._contentRef.componentRef) {\n return this._contentRef.componentRef.instance;\n }\n }\n /**\n * Closes the modal with an optional `result` value.\n *\n * The `NgbMobalRef.result` promise will be resolved with the provided value.\n * @param {?=} result\n * @return {?}\n */\n close(result) {\n if (this._windowCmptRef) {\n this._resolve(result);\n this._removeModalElements();\n }\n }\n /**\n * @param {?=} reason\n * @return {?}\n */\n _dismiss(reason) {\n this._reject(reason);\n this._removeModalElements();\n }\n /**\n * Dismisses the modal with an optional `reason` value.\n *\n * The `NgbModalRef.result` promise will be rejected with the provided value.\n * @param {?=} reason\n * @return {?}\n */\n dismiss(reason) {\n if (this._windowCmptRef) {\n if (!this._beforeDismiss) {\n this._dismiss(reason);\n }\n else {\n /** @type {?} */\n const dismiss = this._beforeDismiss();\n if (dismiss && dismiss.then) {\n dismiss.then(result => {\n if (result !== false) {\n this._dismiss(reason);\n }\n }, () => { });\n }\n else if (dismiss !== false) {\n this._dismiss(reason);\n }\n }\n }\n }\n /**\n * @return {?}\n */\n _removeModalElements() {\n /** @type {?} */\n const windowNativeEl = this._windowCmptRef.location.nativeElement;\n windowNativeEl.parentNode.removeChild(windowNativeEl);\n this._windowCmptRef.destroy();\n if (this._backdropCmptRef) {\n /** @type {?} */\n const backdropNativeEl = this._backdropCmptRef.location.nativeElement;\n backdropNativeEl.parentNode.removeChild(backdropNativeEl);\n this._backdropCmptRef.destroy();\n }\n if (this._contentRef && this._contentRef.viewRef) {\n this._contentRef.viewRef.destroy();\n }\n this._windowCmptRef = null;\n this._backdropCmptRef = null;\n this._contentRef = null;\n }\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/** @enum {number} */\nconst ModalDismissReasons = {\n BACKDROP_CLICK: 0,\n ESC: 1,\n};\nModalDismissReasons[ModalDismissReasons.BACKDROP_CLICK] = 'BACKDROP_CLICK';\nModalDismissReasons[ModalDismissReasons.ESC] = 'ESC';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\nclass NgbModalWindow {\n /**\n * @param {?} _document\n * @param {?} _elRef\n */\n constructor(_document, _elRef) {\n this._document = _document;\n this._elRef = _elRef;\n this.backdrop = true;\n this.keyboard = true;\n this.dismissEvent = new EventEmitter();\n }\n /**\n * @param {?} $event\n * @return {?}\n */\n backdropClick($event) {\n if (this.backdrop === true && this._elRef.nativeElement === $event.target) {\n this.dismiss(ModalDismissReasons.BACKDROP_CLICK);\n }\n }\n /**\n * @param {?} $event\n * @return {?}\n */\n escKey($event) {\n if (this.keyboard && !$event.defaultPrevented) {\n this.dismiss(ModalDismissReasons.ESC);\n }\n }\n /**\n * @param {?} reason\n * @return {?}\n */\n dismiss(reason) { this.dismissEvent.emit(reason); }\n /**\n * @return {?}\n */\n ngOnInit() { this._elWithFocus = this._document.activeElement; }\n /**\n * @return {?}\n */\n ngAfterViewInit() {\n if (!this._elRef.nativeElement.contains(document.activeElement)) {\n /** @type {?} */\n const autoFocusable = (/** @type {?} */ (this._elRef.nativeElement.querySelector(`[ngbAutofocus]`)));\n /** @type {?} */\n const firstFocusable = getFocusableBoundaryElements(this._elRef.nativeElement)[0];\n /** @type {?} */\n const elementToFocus = autoFocusable || firstFocusable || this._elRef.nativeElement;\n elementToFocus.focus();\n }\n }\n /**\n * @return {?}\n */\n ngOnDestroy() {\n /** @type {?} */\n const body = this._document.body;\n /** @type {?} */\n const elWithFocus = this._elWithFocus;\n /** @type {?} */\n let elementToFocus;\n if (elWithFocus && elWithFocus['focus'] && body.contains(elWithFocus)) {\n elementToFocus = elWithFocus;\n }\n else {\n elementToFocus = body;\n }\n elementToFocus.focus();\n this._elWithFocus = null;\n }\n}\nNgbModalWindow.ɵfac = function NgbModalWindow_Factory(t) { return new (t || NgbModalWindow)(ɵngcc0.ɵɵdirectiveInject(DOCUMENT), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef)); };\nNgbModalWindow.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NgbModalWindow, selectors: [[\"ngb-modal-window\"]], hostAttrs: [\"role\", \"dialog\", \"tabindex\", \"-1\"], hostVars: 4, hostBindings: function NgbModalWindow_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"keyup.esc\", function NgbModalWindow_keyup_esc_HostBindingHandler($event) { return ctx.escKey($event); })(\"click\", function NgbModalWindow_click_HostBindingHandler($event) { return ctx.backdropClick($event); });\n } if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"aria-modal\", true)(\"aria-labelledby\", ctx.ariaLabelledBy);\n ɵngcc0.ɵɵclassMap(\"modal fade show d-block\" + (ctx.windowClass ? \" \" + ctx.windowClass : \"\"));\n } }, inputs: { backdrop: \"backdrop\", keyboard: \"keyboard\", ariaLabelledBy: \"ariaLabelledBy\", centered: \"centered\", size: \"size\", windowClass: \"windowClass\" }, outputs: { dismissEvent: \"dismiss\" }, ngContentSelectors: _c3, decls: 3, vars: 2, consts: [[\"role\", \"document\"], [1, \"modal-content\"]], template: function NgbModalWindow_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵelementStart(0, \"div\", 0)(1, \"div\", 1);\n ɵngcc0.ɵɵprojection(2);\n ɵngcc0.ɵɵelementEnd()();\n } if (rf & 2) {\n ɵngcc0.ɵɵclassMap(\"modal-dialog\" + (ctx.size ? \" modal-\" + ctx.size : \"\") + (ctx.centered ? \" modal-dialog-centered\" : \"\"));\n } }, encapsulation: 2 });\n/** @nocollapse */\nNgbModalWindow.ctorParameters = () => [\n { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },\n { type: ElementRef }\n];\nNgbModalWindow.propDecorators = {\n ariaLabelledBy: [{ type: Input }],\n backdrop: [{ type: Input }],\n centered: [{ type: Input }],\n keyboard: [{ type: Input }],\n size: [{ type: Input }],\n windowClass: [{ type: Input }],\n dismissEvent: [{ type: Output, args: ['dismiss',] }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbModalWindow, [{\n type: Component,\n args: [{\n selector: 'ngb-modal-window',\n host: {\n '[class]': '\"modal fade show d-block\" + (windowClass ? \" \" + windowClass : \"\")',\n 'role': 'dialog',\n 'tabindex': '-1',\n '(keyup.esc)': 'escKey($event)',\n '(click)': 'backdropClick($event)',\n '[attr.aria-modal]': 'true',\n '[attr.aria-labelledby]': 'ariaLabelledBy'\n },\n template: `\n
\n
\n
\n `\n }]\n }], function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: ɵngcc0.ElementRef }]; }, { backdrop: [{\n type: Input\n }], keyboard: [{\n type: Input\n }], dismissEvent: [{\n type: Output,\n args: ['dismiss']\n }], ariaLabelledBy: [{\n type: Input\n }], centered: [{\n type: Input\n }], size: [{\n type: Input\n }], windowClass: [{\n type: Input\n }] }); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\nclass NgbModalStack {\n /**\n * @param {?} _applicationRef\n * @param {?} _injector\n * @param {?} _document\n * @param {?} _scrollBar\n * @param {?} _rendererFactory\n */\n constructor(_applicationRef, _injector, _document, _scrollBar, _rendererFactory) {\n this._applicationRef = _applicationRef;\n this._injector = _injector;\n this._document = _document;\n this._scrollBar = _scrollBar;\n this._rendererFactory = _rendererFactory;\n this._activeWindowCmptHasChanged = new Subject();\n this._ariaHiddenValues = new Map();\n this._backdropAttributes = ['backdropClass'];\n this._modalRefs = [];\n this._windowAttributes = ['ariaLabelledBy', 'backdrop', 'centered', 'keyboard', 'size', 'windowClass'];\n this._windowCmpts = [];\n // Trap focus on active WindowCmpt\n this._activeWindowCmptHasChanged.subscribe(() => {\n if (this._windowCmpts.length) {\n /** @type {?} */\n const activeWindowCmpt = this._windowCmpts[this._windowCmpts.length - 1];\n ngbFocusTrap(activeWindowCmpt.location.nativeElement, this._activeWindowCmptHasChanged);\n this._revertAriaHidden();\n this._setAriaHidden(activeWindowCmpt.location.nativeElement);\n }\n });\n }\n /**\n * @param {?} moduleCFR\n * @param {?} contentInjector\n * @param {?} content\n * @param {?} options\n * @return {?}\n */\n open(moduleCFR, contentInjector, content, options) {\n /** @type {?} */\n const containerEl = isDefined(options.container) ? this._document.querySelector(options.container) : this._document.body;\n /** @type {?} */\n const renderer = this._rendererFactory.createRenderer(null, null);\n /** @type {?} */\n const revertPaddingForScrollBar = this._scrollBar.compensate();\n /** @type {?} */\n const removeBodyClass = () => {\n if (!this._modalRefs.length) {\n renderer.removeClass(this._document.body, 'modal-open');\n this._revertAriaHidden();\n }\n };\n if (!containerEl) {\n throw new Error(`The specified modal container \"${options.container || 'body'}\" was not found in the DOM.`);\n }\n /** @type {?} */\n const activeModal = new NgbActiveModal();\n /** @type {?} */\n const contentRef = this._getContentRef(moduleCFR, options.injector || contentInjector, content, activeModal);\n /** @type {?} */\n let backdropCmptRef = options.backdrop !== false ? this._attachBackdrop(moduleCFR, containerEl) : null;\n /** @type {?} */\n let windowCmptRef = this._attachWindowComponent(moduleCFR, containerEl, contentRef);\n /** @type {?} */\n let ngbModalRef = new NgbModalRef(windowCmptRef, contentRef, backdropCmptRef, options.beforeDismiss);\n this._registerModalRef(ngbModalRef);\n this._registerWindowCmpt(windowCmptRef);\n ngbModalRef.result.then(revertPaddingForScrollBar, revertPaddingForScrollBar);\n ngbModalRef.result.then(removeBodyClass, removeBodyClass);\n activeModal.close = (result) => { ngbModalRef.close(result); };\n activeModal.dismiss = (reason) => { ngbModalRef.dismiss(reason); };\n this._applyWindowOptions(windowCmptRef.instance, options);\n if (this._modalRefs.length === 1) {\n renderer.addClass(this._document.body, 'modal-open');\n }\n if (backdropCmptRef && backdropCmptRef.instance) {\n this._applyBackdropOptions(backdropCmptRef.instance, options);\n }\n return ngbModalRef;\n }\n /**\n * @param {?=} reason\n * @return {?}\n */\n dismissAll(reason) { this._modalRefs.forEach(ngbModalRef => ngbModalRef.dismiss(reason)); }\n /**\n * @return {?}\n */\n hasOpenModals() { return this._modalRefs.length > 0; }\n /**\n * @param {?} moduleCFR\n * @param {?} containerEl\n * @return {?}\n */\n _attachBackdrop(moduleCFR, containerEl) {\n /** @type {?} */\n let backdropFactory = moduleCFR.resolveComponentFactory(NgbModalBackdrop);\n /** @type {?} */\n let backdropCmptRef = backdropFactory.create(this._injector);\n this._applicationRef.attachView(backdropCmptRef.hostView);\n containerEl.appendChild(backdropCmptRef.location.nativeElement);\n return backdropCmptRef;\n }\n /**\n * @param {?} moduleCFR\n * @param {?} containerEl\n * @param {?} contentRef\n * @return {?}\n */\n _attachWindowComponent(moduleCFR, containerEl, contentRef) {\n /** @type {?} */\n let windowFactory = moduleCFR.resolveComponentFactory(NgbModalWindow);\n /** @type {?} */\n let windowCmptRef = windowFactory.create(this._injector, contentRef.nodes);\n this._applicationRef.attachView(windowCmptRef.hostView);\n containerEl.appendChild(windowCmptRef.location.nativeElement);\n return windowCmptRef;\n }\n /**\n * @param {?} windowInstance\n * @param {?} options\n * @return {?}\n */\n _applyWindowOptions(windowInstance, options) {\n this._windowAttributes.forEach((optionName) => {\n if (isDefined(options[optionName])) {\n windowInstance[optionName] = options[optionName];\n }\n });\n }\n /**\n * @param {?} backdropInstance\n * @param {?} options\n * @return {?}\n */\n _applyBackdropOptions(backdropInstance, options) {\n this._backdropAttributes.forEach((optionName) => {\n if (isDefined(options[optionName])) {\n backdropInstance[optionName] = options[optionName];\n }\n });\n }\n /**\n * @param {?} moduleCFR\n * @param {?} contentInjector\n * @param {?} content\n * @param {?} activeModal\n * @return {?}\n */\n _getContentRef(moduleCFR, contentInjector, content, activeModal) {\n if (!content) {\n return new ContentRef([]);\n }\n else if (content instanceof TemplateRef) {\n return this._createFromTemplateRef(content, activeModal);\n }\n else if (isString(content)) {\n return this._createFromString(content);\n }\n else {\n return this._createFromComponent(moduleCFR, contentInjector, content, activeModal);\n }\n }\n /**\n * @param {?} content\n * @param {?} activeModal\n * @return {?}\n */\n _createFromTemplateRef(content, activeModal) {\n /** @type {?} */\n const context = {\n $implicit: activeModal,\n /**\n * @param {?} result\n * @return {?}\n */\n close(result) { activeModal.close(result); },\n /**\n * @param {?} reason\n * @return {?}\n */\n dismiss(reason) { activeModal.dismiss(reason); }\n };\n /** @type {?} */\n const viewRef = content.createEmbeddedView(context);\n this._applicationRef.attachView(viewRef);\n return new ContentRef([viewRef.rootNodes], viewRef);\n }\n /**\n * @param {?} content\n * @return {?}\n */\n _createFromString(content) {\n /** @type {?} */\n const component = this._document.createTextNode(`${content}`);\n return new ContentRef([[component]]);\n }\n /**\n * @param {?} moduleCFR\n * @param {?} contentInjector\n * @param {?} content\n * @param {?} context\n * @return {?}\n */\n _createFromComponent(moduleCFR, contentInjector, content, context) {\n /** @type {?} */\n const contentCmptFactory = moduleCFR.resolveComponentFactory(content);\n /** @type {?} */\n const modalContentInjector = Injector.create({ providers: [{ provide: NgbActiveModal, useValue: context }], parent: contentInjector });\n /** @type {?} */\n const componentRef = contentCmptFactory.create(modalContentInjector);\n this._applicationRef.attachView(componentRef.hostView);\n return new ContentRef([[componentRef.location.nativeElement]], componentRef.hostView, componentRef);\n }\n /**\n * @param {?} element\n * @return {?}\n */\n _setAriaHidden(element) {\n /** @type {?} */\n const parent = element.parentElement;\n if (parent && element !== this._document.body) {\n Array.from(parent.children).forEach(sibling => {\n if (sibling !== element && sibling.nodeName !== 'SCRIPT') {\n this._ariaHiddenValues.set(sibling, sibling.getAttribute('aria-hidden'));\n sibling.setAttribute('aria-hidden', 'true');\n }\n });\n this._setAriaHidden(parent);\n }\n }\n /**\n * @return {?}\n */\n _revertAriaHidden() {\n this._ariaHiddenValues.forEach((value, element) => {\n if (value) {\n element.setAttribute('aria-hidden', value);\n }\n else {\n element.removeAttribute('aria-hidden');\n }\n });\n this._ariaHiddenValues.clear();\n }\n /**\n * @param {?} ngbModalRef\n * @return {?}\n */\n _registerModalRef(ngbModalRef) {\n /** @type {?} */\n const unregisterModalRef = () => {\n /** @type {?} */\n const index = this._modalRefs.indexOf(ngbModalRef);\n if (index > -1) {\n this._modalRefs.splice(index, 1);\n }\n };\n this._modalRefs.push(ngbModalRef);\n ngbModalRef.result.then(unregisterModalRef, unregisterModalRef);\n }\n /**\n * @param {?} ngbWindowCmpt\n * @return {?}\n */\n _registerWindowCmpt(ngbWindowCmpt) {\n this._windowCmpts.push(ngbWindowCmpt);\n this._activeWindowCmptHasChanged.next();\n ngbWindowCmpt.onDestroy(() => {\n /** @type {?} */\n const index = this._windowCmpts.indexOf(ngbWindowCmpt);\n if (index > -1) {\n this._windowCmpts.splice(index, 1);\n this._activeWindowCmptHasChanged.next();\n }\n });\n }\n}\nNgbModalStack.ɵfac = function NgbModalStack_Factory(t) { return new (t || NgbModalStack)(ɵngcc0.ɵɵinject(ɵngcc0.ApplicationRef), ɵngcc0.ɵɵinject(ɵngcc0.Injector), ɵngcc0.ɵɵinject(DOCUMENT), ɵngcc0.ɵɵinject(ScrollBar), ɵngcc0.ɵɵinject(ɵngcc0.RendererFactory2)); };\nNgbModalStack.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NgbModalStack, factory: NgbModalStack.ɵfac, providedIn: 'root' });\n/** @nocollapse */\nNgbModalStack.ctorParameters = () => [\n { type: ApplicationRef },\n { type: Injector },\n { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },\n { type: ScrollBar },\n { type: RendererFactory2 }\n];\n/** @nocollapse */ NgbModalStack.ngInjectableDef = defineInjectable({ factory: function NgbModalStack_Factory() { return new NgbModalStack(inject(ApplicationRef), inject(INJECTOR), inject(DOCUMENT), inject(ScrollBar), inject(RendererFactory2)); }, token: NgbModalStack, providedIn: \"root\" });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbModalStack, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () { return [{ type: ɵngcc0.ApplicationRef }, { type: ɵngcc0.Injector }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: ScrollBar }, { type: ɵngcc0.RendererFactory2 }]; }, null); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/**\n * A service for opening modal windows.\n *\n * Creating a modal is straightforward: create a component or a template and pass it as an argument to\n * the `.open()` method.\n */\nclass NgbModal {\n /**\n * @param {?} _moduleCFR\n * @param {?} _injector\n * @param {?} _modalStack\n * @param {?} _config\n */\n constructor(_moduleCFR, _injector, _modalStack, _config) {\n this._moduleCFR = _moduleCFR;\n this._injector = _injector;\n this._modalStack = _modalStack;\n this._config = _config;\n }\n /**\n * Opens a new modal window with the specified content and supplied options.\n *\n * Content can be provided as a `TemplateRef` or a component type. If you pass a component type as content,\n * then instances of those components can be injected with an instance of the `NgbActiveModal` class. You can then\n * use `NgbActiveModal` methods to close / dismiss modals from \"inside\" of your component.\n *\n * Also see the [`NgbModalOptions`](#/components/modal/api#NgbModalOptions) for the list of supported options.\n * @param {?} content\n * @param {?=} options\n * @return {?}\n */\n open(content, options = {}) {\n /** @type {?} */\n const combinedOptions = Object.assign({}, this._config, options);\n return this._modalStack.open(this._moduleCFR, this._injector, content, combinedOptions);\n }\n /**\n * Dismisses all currently displayed modal windows with the supplied reason.\n *\n * \\@since 3.1.0\n * @param {?=} reason\n * @return {?}\n */\n dismissAll(reason) { this._modalStack.dismissAll(reason); }\n /**\n * Indicates if there are currently any open modal windows in the application.\n *\n * \\@since 3.3.0\n * @return {?}\n */\n hasOpenModals() { return this._modalStack.hasOpenModals(); }\n}\nNgbModal.ɵfac = function NgbModal_Factory(t) { return new (t || NgbModal)(ɵngcc0.ɵɵinject(ɵngcc0.ComponentFactoryResolver), ɵngcc0.ɵɵinject(ɵngcc0.Injector), ɵngcc0.ɵɵinject(NgbModalStack), ɵngcc0.ɵɵinject(NgbModalConfig)); };\nNgbModal.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NgbModal, factory: NgbModal.ɵfac, providedIn: 'root' });\n/** @nocollapse */\nNgbModal.ctorParameters = () => [\n { type: ComponentFactoryResolver },\n { type: Injector },\n { type: NgbModalStack },\n { type: NgbModalConfig }\n];\n/** @nocollapse */ NgbModal.ngInjectableDef = defineInjectable({ factory: function NgbModal_Factory() { return new NgbModal(inject(ComponentFactoryResolver), inject(INJECTOR), inject(NgbModalStack), inject(NgbModalConfig)); }, token: NgbModal, providedIn: \"root\" });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbModal, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () { return [{ type: ɵngcc0.ComponentFactoryResolver }, { type: ɵngcc0.Injector }, { type: NgbModalStack }, { type: NgbModalConfig }]; }, null); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\nclass NgbModalModule {\n /**\n * Importing with '.forRoot()' is no longer necessary, you can simply import the module.\n * Will be removed in 4.0.0.\n *\n * @deprecated 3.0.0\n * @return {?}\n */\n static forRoot() { return { ngModule: NgbModalModule }; }\n}\nNgbModalModule.ɵfac = function NgbModalModule_Factory(t) { return new (t || NgbModalModule)(); };\nNgbModalModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgbModalModule });\nNgbModalModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ providers: [NgbModal] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbModalModule, [{\n type: NgModule,\n args: [{\n declarations: [NgbModalBackdrop, NgbModalWindow],\n entryComponents: [NgbModalBackdrop, NgbModalWindow],\n providers: [NgbModal]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbModalModule, { declarations: [NgbModalBackdrop, NgbModalWindow] }); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/**\n * A configuration service for the [`NgbPagination`](#/components/pagination/api#NgbPagination) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the paginations used in the application.\n */\nclass NgbPaginationConfig {\n constructor() {\n this.disabled = false;\n this.boundaryLinks = false;\n this.directionLinks = true;\n this.ellipses = true;\n this.maxSize = 0;\n this.pageSize = 10;\n this.rotate = false;\n }\n}\nNgbPaginationConfig.ɵfac = function NgbPaginationConfig_Factory(t) { return new (t || NgbPaginationConfig)(); };\nNgbPaginationConfig.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NgbPaginationConfig, factory: NgbPaginationConfig.ɵfac, providedIn: 'root' });\n/** @nocollapse */ NgbPaginationConfig.ngInjectableDef = defineInjectable({ factory: function NgbPaginationConfig_Factory() { return new NgbPaginationConfig(); }, token: NgbPaginationConfig, providedIn: \"root\" });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPaginationConfig, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () { return []; }, null); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/**\n * A directive to match the 'ellipsis' link template\n *\n * \\@since 4.1.0\n */\nclass NgbPaginationEllipsis {\n /**\n * @param {?} templateRef\n */\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nNgbPaginationEllipsis.ɵfac = function NgbPaginationEllipsis_Factory(t) { return new (t || NgbPaginationEllipsis)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nNgbPaginationEllipsis.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbPaginationEllipsis, selectors: [[\"ng-template\", \"ngbPaginationEllipsis\", \"\"]] });\n/** @nocollapse */\nNgbPaginationEllipsis.ctorParameters = () => [\n { type: TemplateRef }\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPaginationEllipsis, [{\n type: Directive,\n args: [{ selector: 'ng-template[ngbPaginationEllipsis]' }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\n/**\n * A directive to match the 'first' link template\n *\n * \\@since 4.1.0\n */\nclass NgbPaginationFirst {\n /**\n * @param {?} templateRef\n */\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nNgbPaginationFirst.ɵfac = function NgbPaginationFirst_Factory(t) { return new (t || NgbPaginationFirst)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nNgbPaginationFirst.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbPaginationFirst, selectors: [[\"ng-template\", \"ngbPaginationFirst\", \"\"]] });\n/** @nocollapse */\nNgbPaginationFirst.ctorParameters = () => [\n { type: TemplateRef }\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPaginationFirst, [{\n type: Directive,\n args: [{ selector: 'ng-template[ngbPaginationFirst]' }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\n/**\n * A directive to match the 'last' link template\n *\n * \\@since 4.1.0\n */\nclass NgbPaginationLast {\n /**\n * @param {?} templateRef\n */\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nNgbPaginationLast.ɵfac = function NgbPaginationLast_Factory(t) { return new (t || NgbPaginationLast)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nNgbPaginationLast.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbPaginationLast, selectors: [[\"ng-template\", \"ngbPaginationLast\", \"\"]] });\n/** @nocollapse */\nNgbPaginationLast.ctorParameters = () => [\n { type: TemplateRef }\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPaginationLast, [{\n type: Directive,\n args: [{ selector: 'ng-template[ngbPaginationLast]' }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\n/**\n * A directive to match the 'next' link template\n *\n * \\@since 4.1.0\n */\nclass NgbPaginationNext {\n /**\n * @param {?} templateRef\n */\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nNgbPaginationNext.ɵfac = function NgbPaginationNext_Factory(t) { return new (t || NgbPaginationNext)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nNgbPaginationNext.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbPaginationNext, selectors: [[\"ng-template\", \"ngbPaginationNext\", \"\"]] });\n/** @nocollapse */\nNgbPaginationNext.ctorParameters = () => [\n { type: TemplateRef }\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPaginationNext, [{\n type: Directive,\n args: [{ selector: 'ng-template[ngbPaginationNext]' }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\n/**\n * A directive to match the page 'number' link template\n *\n * \\@since 4.1.0\n */\nclass NgbPaginationNumber {\n /**\n * @param {?} templateRef\n */\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nNgbPaginationNumber.ɵfac = function NgbPaginationNumber_Factory(t) { return new (t || NgbPaginationNumber)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nNgbPaginationNumber.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbPaginationNumber, selectors: [[\"ng-template\", \"ngbPaginationNumber\", \"\"]] });\n/** @nocollapse */\nNgbPaginationNumber.ctorParameters = () => [\n { type: TemplateRef }\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPaginationNumber, [{\n type: Directive,\n args: [{ selector: 'ng-template[ngbPaginationNumber]' }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\n/**\n * A directive to match the 'previous' link template\n *\n * \\@since 4.1.0\n */\nclass NgbPaginationPrevious {\n /**\n * @param {?} templateRef\n */\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nNgbPaginationPrevious.ɵfac = function NgbPaginationPrevious_Factory(t) { return new (t || NgbPaginationPrevious)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nNgbPaginationPrevious.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbPaginationPrevious, selectors: [[\"ng-template\", \"ngbPaginationPrevious\", \"\"]] });\n/** @nocollapse */\nNgbPaginationPrevious.ctorParameters = () => [\n { type: TemplateRef }\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPaginationPrevious, [{\n type: Directive,\n args: [{ selector: 'ng-template[ngbPaginationPrevious]' }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\n/**\n * A component that displays page numbers and allows to customize them in several ways.\n */\nclass NgbPagination {\n /**\n * @param {?} config\n */\n constructor(config) {\n this.pageCount = 0;\n this.pages = [];\n /**\n * The current page.\n *\n * Page numbers start with `1`.\n */\n this.page = 1;\n /**\n * An event fired when the page is changed. Will fire only if collection size is set and all values are valid.\n *\n * Event payload is the number of the newly selected page.\n *\n * Page numbers start with `1`.\n */\n this.pageChange = new EventEmitter(true);\n this.disabled = config.disabled;\n this.boundaryLinks = config.boundaryLinks;\n this.directionLinks = config.directionLinks;\n this.ellipses = config.ellipses;\n this.maxSize = config.maxSize;\n this.pageSize = config.pageSize;\n this.rotate = config.rotate;\n this.size = config.size;\n }\n /**\n * @return {?}\n */\n hasPrevious() { return this.page > 1; }\n /**\n * @return {?}\n */\n hasNext() { return this.page < this.pageCount; }\n /**\n * @return {?}\n */\n nextDisabled() { return !this.hasNext() || this.disabled; }\n /**\n * @return {?}\n */\n previousDisabled() { return !this.hasPrevious() || this.disabled; }\n /**\n * @param {?} pageNumber\n * @return {?}\n */\n selectPage(pageNumber) { this._updatePages(pageNumber); }\n /**\n * @param {?} changes\n * @return {?}\n */\n ngOnChanges(changes) { this._updatePages(this.page); }\n /**\n * @param {?} pageNumber\n * @return {?}\n */\n isEllipsis(pageNumber) { return pageNumber === -1; }\n /**\n * Appends ellipses and first/last page number to the displayed pages\n * @param {?} start\n * @param {?} end\n * @return {?}\n */\n _applyEllipses(start, end) {\n if (this.ellipses) {\n if (start > 0) {\n if (start > 1) {\n this.pages.unshift(-1);\n }\n this.pages.unshift(1);\n }\n if (end < this.pageCount) {\n if (end < (this.pageCount - 1)) {\n this.pages.push(-1);\n }\n this.pages.push(this.pageCount);\n }\n }\n }\n /**\n * Rotates page numbers based on maxSize items visible.\n * Currently selected page stays in the middle:\n *\n * Ex. for selected page = 6:\n * [5,*6*,7] for maxSize = 3\n * [4,5,*6*,7] for maxSize = 4\n * @return {?}\n */\n _applyRotation() {\n /** @type {?} */\n let start = 0;\n /** @type {?} */\n let end = this.pageCount;\n /** @type {?} */\n let leftOffset = Math.floor(this.maxSize / 2);\n /** @type {?} */\n let rightOffset = this.maxSize % 2 === 0 ? leftOffset - 1 : leftOffset;\n if (this.page <= leftOffset) {\n // very beginning, no rotation -> [0..maxSize]\n end = this.maxSize;\n }\n else if (this.pageCount - this.page < leftOffset) {\n // very end, no rotation -> [len-maxSize..len]\n start = this.pageCount - this.maxSize;\n }\n else {\n // rotate\n start = this.page - leftOffset - 1;\n end = this.page + rightOffset;\n }\n return [start, end];\n }\n /**\n * Paginates page numbers based on maxSize items per page.\n * @return {?}\n */\n _applyPagination() {\n /** @type {?} */\n let page = Math.ceil(this.page / this.maxSize) - 1;\n /** @type {?} */\n let start = page * this.maxSize;\n /** @type {?} */\n let end = start + this.maxSize;\n return [start, end];\n }\n /**\n * @param {?} newPageNo\n * @return {?}\n */\n _setPageInRange(newPageNo) {\n /** @type {?} */\n const prevPageNo = this.page;\n this.page = getValueInRange(newPageNo, this.pageCount, 1);\n if (this.page !== prevPageNo && isNumber(this.collectionSize)) {\n this.pageChange.emit(this.page);\n }\n }\n /**\n * @param {?} newPage\n * @return {?}\n */\n _updatePages(newPage) {\n this.pageCount = Math.ceil(this.collectionSize / this.pageSize);\n if (!isNumber(this.pageCount)) {\n this.pageCount = 0;\n }\n // fill-in model needed to render pages\n this.pages.length = 0;\n for (let i = 1; i <= this.pageCount; i++) {\n this.pages.push(i);\n }\n // set page within 1..max range\n this._setPageInRange(newPage);\n // apply maxSize if necessary\n if (this.maxSize > 0 && this.pageCount > this.maxSize) {\n /** @type {?} */\n let start = 0;\n /** @type {?} */\n let end = this.pageCount;\n // either paginating or rotating page numbers\n if (this.rotate) {\n [start, end] = this._applyRotation();\n }\n else {\n [start, end] = this._applyPagination();\n }\n this.pages = this.pages.slice(start, end);\n // adding ellipses\n this._applyEllipses(start, end);\n }\n }\n}\nNgbPagination.ɵfac = function NgbPagination_Factory(t) { return new (t || NgbPagination)(ɵngcc0.ɵɵdirectiveInject(NgbPaginationConfig)); };\nNgbPagination.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NgbPagination, selectors: [[\"ngb-pagination\"]], contentQueries: function NgbPagination_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbPaginationEllipsis, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbPaginationFirst, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbPaginationLast, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbPaginationNext, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbPaginationNumber, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbPaginationPrevious, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.tplEllipsis = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.tplFirst = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.tplLast = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.tplNext = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.tplNumber = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.tplPrevious = _t.first);\n } }, hostAttrs: [\"role\", \"navigation\"], inputs: { page: \"page\", disabled: \"disabled\", boundaryLinks: \"boundaryLinks\", directionLinks: \"directionLinks\", ellipses: \"ellipses\", maxSize: \"maxSize\", pageSize: \"pageSize\", rotate: \"rotate\", size: \"size\", collectionSize: \"collectionSize\" }, outputs: { pageChange: \"pageChange\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature], decls: 18, vars: 7, consts: function () { let i18n_26; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_pagination_first$$FESM2015_NG_BOOTSTRAP_JS__27 = goog.getMsg(\"\\u00AB\\u00AB\");\n i18n_26 = MSG_EXTERNAL_ngb_pagination_first$$FESM2015_NG_BOOTSTRAP_JS__27;\n }\n else {\n i18n_26 = $localize `:@@ngb.pagination.first␟656506dfd46380956a655f919f1498d018f75ca0␟6867721956102594380:««`;\n } let i18n_28; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_pagination_previous$$FESM2015_NG_BOOTSTRAP_JS__29 = goog.getMsg(\"\\u00AB\");\n i18n_28 = MSG_EXTERNAL_ngb_pagination_previous$$FESM2015_NG_BOOTSTRAP_JS__29;\n }\n else {\n i18n_28 = $localize `:@@ngb.pagination.previous␟6e52b6ee77a4848d899dd21b591c6fd499e3aef3␟6479320895410098858:«`;\n } let i18n_30; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_pagination_next$$FESM2015_NG_BOOTSTRAP_JS__31 = goog.getMsg(\"\\u00BB\");\n i18n_30 = MSG_EXTERNAL_ngb_pagination_next$$FESM2015_NG_BOOTSTRAP_JS__31;\n }\n else {\n i18n_30 = $localize `:@@ngb.pagination.next␟ba9cbb4ff311464308a3627e4f1c3345d9fe6d7d␟5458177150283468089:»`;\n } let i18n_32; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_pagination_last$$FESM2015_NG_BOOTSTRAP_JS__33 = goog.getMsg(\"\\u00BB\\u00BB\");\n i18n_32 = MSG_EXTERNAL_ngb_pagination_last$$FESM2015_NG_BOOTSTRAP_JS__33;\n }\n else {\n i18n_32 = $localize `:@@ngb.pagination.last␟49f27a460bc97e7e00be5b37098bfa79884fc7d9␟5277020320267646988:»»`;\n } let i18n_34; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_pagination_first_aria$$FESM2015_NG_BOOTSTRAP_JS__35 = goog.getMsg(\"First\");\n i18n_34 = MSG_EXTERNAL_ngb_pagination_first_aria$$FESM2015_NG_BOOTSTRAP_JS__35;\n }\n else {\n i18n_34 = $localize `:@@ngb.pagination.first-aria␟f2f852318759c6396b5d3d17031d53817d7b38cc␟2241508602425256033:First`;\n } let i18n_37; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_pagination_previous_aria$$FESM2015_NG_BOOTSTRAP_JS__38 = goog.getMsg(\"Previous\");\n i18n_37 = MSG_EXTERNAL_ngb_pagination_previous_aria$$FESM2015_NG_BOOTSTRAP_JS__38;\n }\n else {\n i18n_37 = $localize `:@@ngb.pagination.previous-aria␟680d5c75b7fd8d37961083608b9fcdc4167b4c43␟4452427314943113135:Previous`;\n } let i18n_42; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_pagination_next_aria$$FESM2015_NG_BOOTSTRAP_JS__43 = goog.getMsg(\"Next\");\n i18n_42 = MSG_EXTERNAL_ngb_pagination_next_aria$$FESM2015_NG_BOOTSTRAP_JS__43;\n }\n else {\n i18n_42 = $localize `:@@ngb.pagination.next-aria␟f732c304c7433e5a83ffcd862c3dce709a0f4982␟3885497195825665706:Next`;\n } let i18n_44; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_pagination_last_aria$$FESM2015_NG_BOOTSTRAP_JS__45 = goog.getMsg(\"Last\");\n i18n_44 = MSG_EXTERNAL_ngb_pagination_last_aria$$FESM2015_NG_BOOTSTRAP_JS__45;\n }\n else {\n i18n_44 = $localize `:@@ngb.pagination.last-aria␟5c729788ba138508aca1bec050b610f7bf81db3e␟4882268002141858767:Last`;\n } return [[\"first\", \"\"], [\"previous\", \"\"], [\"next\", \"\"], [\"last\", \"\"], [\"ellipsis\", \"\"], [\"defaultNumber\", \"\"], [\"class\", \"page-item\", 3, \"disabled\", 4, \"ngIf\"], [\"class\", \"page-item\", 3, \"active\", \"disabled\", 4, \"ngFor\", \"ngForOf\"], [\"aria-hidden\", \"true\"], i18n_26, i18n_28, i18n_30, i18n_32, [\"class\", \"sr-only\", 4, \"ngIf\"], [1, \"sr-only\"], [1, \"page-item\"], [\"aria-label\", i18n_34, \"href\", \"\", 1, \"page-link\", 3, \"click\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [\"aria-label\", i18n_37, \"href\", \"\", 1, \"page-link\", 3, \"click\"], [\"class\", \"page-link\", 4, \"ngIf\"], [\"class\", \"page-link\", \"href\", \"\", 3, \"click\", 4, \"ngIf\"], [1, \"page-link\"], [\"href\", \"\", 1, \"page-link\", 3, \"click\"], [\"aria-label\", i18n_42, \"href\", \"\", 1, \"page-link\", 3, \"click\"], [\"aria-label\", i18n_44, \"href\", \"\", 1, \"page-link\", 3, \"click\"]]; }, template: function NgbPagination_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, NgbPagination_ng_template_0_Template, 2, 0, \"ng-template\", null, 0, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(2, NgbPagination_ng_template_2_Template, 2, 0, \"ng-template\", null, 1, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(4, NgbPagination_ng_template_4_Template, 2, 0, \"ng-template\", null, 2, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(6, NgbPagination_ng_template_6_Template, 2, 0, \"ng-template\", null, 3, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(8, NgbPagination_ng_template_8_Template, 1, 0, \"ng-template\", null, 4, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(10, NgbPagination_ng_template_10_Template, 2, 2, \"ng-template\", null, 5, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵelementStart(12, \"ul\");\n ɵngcc0.ɵɵtemplate(13, NgbPagination_li_13_Template, 3, 8, \"li\", 6);\n ɵngcc0.ɵɵtemplate(14, NgbPagination_li_14_Template, 3, 7, \"li\", 6);\n ɵngcc0.ɵɵtemplate(15, NgbPagination_li_15_Template, 3, 6, \"li\", 7);\n ɵngcc0.ɵɵtemplate(16, NgbPagination_li_16_Template, 3, 8, \"li\", 6);\n ɵngcc0.ɵɵtemplate(17, NgbPagination_li_17_Template, 3, 8, \"li\", 6);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(12);\n ɵngcc0.ɵɵclassMap(\"pagination\" + (ctx.size ? \" pagination-\" + ctx.size : \"\"));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.boundaryLinks);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.directionLinks);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.pages);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.directionLinks);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.boundaryLinks);\n } }, dependencies: [ɵngcc1.NgForOf, ɵngcc1.NgIf, ɵngcc1.NgTemplateOutlet], encapsulation: 2, changeDetection: 0 });\n/** @nocollapse */\nNgbPagination.ctorParameters = () => [\n { type: NgbPaginationConfig }\n];\nNgbPagination.propDecorators = {\n tplEllipsis: [{ type: ContentChild, args: [NgbPaginationEllipsis,] }],\n tplFirst: [{ type: ContentChild, args: [NgbPaginationFirst,] }],\n tplLast: [{ type: ContentChild, args: [NgbPaginationLast,] }],\n tplNext: [{ type: ContentChild, args: [NgbPaginationNext,] }],\n tplNumber: [{ type: ContentChild, args: [NgbPaginationNumber,] }],\n tplPrevious: [{ type: ContentChild, args: [NgbPaginationPrevious,] }],\n disabled: [{ type: Input }],\n boundaryLinks: [{ type: Input }],\n directionLinks: [{ type: Input }],\n ellipses: [{ type: Input }],\n rotate: [{ type: Input }],\n collectionSize: [{ type: Input }],\n maxSize: [{ type: Input }],\n page: [{ type: Input }],\n pageSize: [{ type: Input }],\n pageChange: [{ type: Output }],\n size: [{ type: Input }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPagination, [{\n type: Component,\n args: [{\n selector: 'ngb-pagination',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { 'role': 'navigation' },\n template: `\n ««\n «\n »\n »»\n ...\n \n {{ page }}\n (current)\n \n \n `\n }]\n }], function () { return [{ type: NgbPaginationConfig }]; }, { page: [{\n type: Input\n }], pageChange: [{\n type: Output\n }], disabled: [{\n type: Input\n }], boundaryLinks: [{\n type: Input\n }], directionLinks: [{\n type: Input\n }], ellipses: [{\n type: Input\n }], maxSize: [{\n type: Input\n }], pageSize: [{\n type: Input\n }], rotate: [{\n type: Input\n }], size: [{\n type: Input\n }], tplEllipsis: [{\n type: ContentChild,\n args: [NgbPaginationEllipsis]\n }], tplFirst: [{\n type: ContentChild,\n args: [NgbPaginationFirst]\n }], tplLast: [{\n type: ContentChild,\n args: [NgbPaginationLast]\n }], tplNext: [{\n type: ContentChild,\n args: [NgbPaginationNext]\n }], tplNumber: [{\n type: ContentChild,\n args: [NgbPaginationNumber]\n }], tplPrevious: [{\n type: ContentChild,\n args: [NgbPaginationPrevious]\n }], collectionSize: [{\n type: Input\n }] }); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/** @type {?} */\nconst DIRECTIVES = [\n NgbPagination, NgbPaginationEllipsis, NgbPaginationFirst, NgbPaginationLast, NgbPaginationNext, NgbPaginationNumber,\n NgbPaginationPrevious\n];\nclass NgbPaginationModule {\n /**\n * Importing with '.forRoot()' is no longer necessary, you can simply import the module.\n * Will be removed in 4.0.0.\n *\n * @deprecated 3.0.0\n * @return {?}\n */\n static forRoot() { return { ngModule: NgbPaginationModule }; }\n}\nNgbPaginationModule.ɵfac = function NgbPaginationModule_Factory(t) { return new (t || NgbPaginationModule)(); };\nNgbPaginationModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgbPaginationModule });\nNgbPaginationModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [CommonModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPaginationModule, [{\n type: NgModule,\n args: [{ declarations: DIRECTIVES, exports: DIRECTIVES, imports: [CommonModule] }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbPaginationModule, { declarations: function () { return [NgbPagination, NgbPaginationEllipsis, NgbPaginationFirst, NgbPaginationLast, NgbPaginationNext, NgbPaginationNumber, NgbPaginationPrevious]; }, imports: function () { return [CommonModule]; }, exports: function () { return [NgbPagination, NgbPaginationEllipsis, NgbPaginationFirst, NgbPaginationLast, NgbPaginationNext, NgbPaginationNumber, NgbPaginationPrevious]; } }); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\nclass Trigger {\n /**\n * @param {?} open\n * @param {?=} close\n */\n constructor(open, close) {\n this.open = open;\n this.close = close;\n if (!close) {\n this.close = open;\n }\n }\n /**\n * @return {?}\n */\n isManual() { return this.open === 'manual' || this.close === 'manual'; }\n}\n/** @type {?} */\nconst DEFAULT_ALIASES = {\n 'hover': ['mouseenter', 'mouseleave'],\n 'focus': ['focusin', 'focusout'],\n};\n/**\n * @param {?} triggers\n * @param {?=} aliases\n * @return {?}\n */\nfunction parseTriggers(triggers, aliases = DEFAULT_ALIASES) {\n /** @type {?} */\n const trimmedTriggers = (triggers || '').trim();\n if (trimmedTriggers.length === 0) {\n return [];\n }\n /** @type {?} */\n const parsedTriggers = trimmedTriggers.split(/\\s+/).map(trigger => trigger.split(':')).map((triggerPair) => {\n /** @type {?} */\n let alias = aliases[triggerPair[0]] || triggerPair;\n return new Trigger(alias[0], alias[1]);\n });\n /** @type {?} */\n const manualTriggers = parsedTriggers.filter(triggerPair => triggerPair.isManual());\n if (manualTriggers.length > 1) {\n throw 'Triggers parse error: only one manual trigger is allowed';\n }\n if (manualTriggers.length === 1 && parsedTriggers.length > 1) {\n throw 'Triggers parse error: manual trigger can\\'t be mixed with other triggers';\n }\n return parsedTriggers;\n}\n/**\n * @param {?} renderer\n * @param {?} nativeElement\n * @param {?} triggers\n * @param {?} isOpenedFn\n * @return {?}\n */\nfunction observeTriggers(renderer, nativeElement, triggers, isOpenedFn) {\n return new Observable(subscriber => {\n /** @type {?} */\n const listeners = [];\n /** @type {?} */\n const openFn = () => subscriber.next(true);\n /** @type {?} */\n const closeFn = () => subscriber.next(false);\n /** @type {?} */\n const toggleFn = () => subscriber.next(!isOpenedFn());\n triggers.forEach((trigger) => {\n if (trigger.open === trigger.close) {\n listeners.push(renderer.listen(nativeElement, trigger.open, toggleFn));\n }\n else {\n listeners.push(renderer.listen(nativeElement, trigger.open, openFn), renderer.listen(nativeElement, trigger.close, closeFn));\n }\n });\n return () => { listeners.forEach(unsubscribeFn => unsubscribeFn()); };\n });\n}\n/** @type {?} */\nconst delayOrNoop = (time) => time > 0 ? delay(time) : (a) => a;\n/**\n * @param {?} openDelay\n * @param {?} closeDelay\n * @param {?} isOpenedFn\n * @return {?}\n */\nfunction triggerDelay(openDelay, closeDelay, isOpenedFn) {\n return (input$) => {\n /** @type {?} */\n let pending = null;\n /** @type {?} */\n const filteredInput$ = input$.pipe(map(open => ({ open })), filter(event => {\n /** @type {?} */\n const currentlyOpen = isOpenedFn();\n if (currentlyOpen !== event.open && (!pending || pending.open === currentlyOpen)) {\n pending = event;\n return true;\n }\n if (pending && pending.open !== event.open) {\n pending = null;\n }\n return false;\n }), share());\n /** @type {?} */\n const delayedOpen$ = filteredInput$.pipe(filter(event => event.open), delayOrNoop(openDelay));\n /** @type {?} */\n const delayedClose$ = filteredInput$.pipe(filter(event => !event.open), delayOrNoop(closeDelay));\n return merge(delayedOpen$, delayedClose$)\n .pipe(filter(event => {\n if (event === pending) {\n pending = null;\n return event.open !== isOpenedFn();\n }\n return false;\n }), map(event => event.open));\n };\n}\n/**\n * @param {?} renderer\n * @param {?} nativeElement\n * @param {?} triggers\n * @param {?} isOpenedFn\n * @param {?} openFn\n * @param {?} closeFn\n * @param {?=} openDelay\n * @param {?=} closeDelay\n * @return {?}\n */\nfunction listenToTriggers(renderer, nativeElement, triggers, isOpenedFn, openFn, closeFn, openDelay = 0, closeDelay = 0) {\n /** @type {?} */\n const parsedTriggers = parseTriggers(triggers);\n if (parsedTriggers.length === 1 && parsedTriggers[0].isManual()) {\n return () => { };\n }\n /** @type {?} */\n const subscription = observeTriggers(renderer, nativeElement, parsedTriggers, isOpenedFn)\n .pipe(triggerDelay(openDelay, closeDelay, isOpenedFn))\n .subscribe(open => (open ? openFn() : closeFn()));\n return () => subscription.unsubscribe();\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/**\n * A configuration service for the [`NgbPopover`](#/components/popover/api#NgbPopover) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the popovers used in the application.\n */\nclass NgbPopoverConfig {\n constructor() {\n this.autoClose = true;\n this.placement = 'auto';\n this.triggers = 'click';\n this.disablePopover = false;\n this.openDelay = 0;\n this.closeDelay = 0;\n }\n}\nNgbPopoverConfig.ɵfac = function NgbPopoverConfig_Factory(t) { return new (t || NgbPopoverConfig)(); };\nNgbPopoverConfig.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NgbPopoverConfig, factory: NgbPopoverConfig.ɵfac, providedIn: 'root' });\n/** @nocollapse */ NgbPopoverConfig.ngInjectableDef = defineInjectable({ factory: function NgbPopoverConfig_Factory() { return new NgbPopoverConfig(); }, token: NgbPopoverConfig, providedIn: \"root\" });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPopoverConfig, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () { return []; }, null); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/** @type {?} */\nlet nextId$3 = 0;\nclass NgbPopoverWindow {\n /**\n * @return {?}\n */\n isTitleTemplate() { return this.title instanceof TemplateRef; }\n}\nNgbPopoverWindow.ɵfac = function NgbPopoverWindow_Factory(t) { return new (t || NgbPopoverWindow)(); };\nNgbPopoverWindow.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NgbPopoverWindow, selectors: [[\"ngb-popover-window\"]], hostAttrs: [\"role\", \"tooltip\"], hostVars: 3, hostBindings: function NgbPopoverWindow_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵhostProperty(\"id\", ctx.id);\n ɵngcc0.ɵɵclassMap(\"popover\" + (ctx.popoverClass ? \" \" + ctx.popoverClass : \"\"));\n } }, inputs: { title: \"title\", id: \"id\", popoverClass: \"popoverClass\", context: \"context\" }, ngContentSelectors: _c3, decls: 4, vars: 1, consts: [[1, \"arrow\"], [\"class\", \"popover-header\", 4, \"ngIf\"], [1, \"popover-body\"], [1, \"popover-header\"], [\"simpleTitle\", \"\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]], template: function NgbPopoverWindow_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵelement(0, \"div\", 0);\n ɵngcc0.ɵɵtemplate(1, NgbPopoverWindow_h3_1_Template, 4, 2, \"h3\", 1);\n ɵngcc0.ɵɵelementStart(2, \"div\", 2);\n ɵngcc0.ɵɵprojection(3);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.title != null);\n } }, dependencies: [ɵngcc1.NgIf, ɵngcc1.NgTemplateOutlet], styles: [\"ngb-popover-window.bs-popover-bottom .arrow,ngb-popover-window.bs-popover-top .arrow{left:50%;margin-left:-.5rem}ngb-popover-window.bs-popover-bottom-left .arrow,ngb-popover-window.bs-popover-top-left .arrow{left:2em}ngb-popover-window.bs-popover-bottom-right .arrow,ngb-popover-window.bs-popover-top-right .arrow{left:auto;right:2em}ngb-popover-window.bs-popover-left .arrow,ngb-popover-window.bs-popover-right .arrow{top:50%;margin-top:-.5rem}ngb-popover-window.bs-popover-left-top .arrow,ngb-popover-window.bs-popover-right-top .arrow{top:.7em}ngb-popover-window.bs-popover-left-bottom .arrow,ngb-popover-window.bs-popover-right-bottom .arrow{top:auto;bottom:.7em}\"], encapsulation: 2, changeDetection: 0 });\nNgbPopoverWindow.propDecorators = {\n title: [{ type: Input }],\n id: [{ type: Input }],\n popoverClass: [{ type: Input }],\n context: [{ type: Input }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPopoverWindow, [{\n type: Component,\n args: [{ selector: 'ngb-popover-window', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { '[class]': '\"popover\" + (popoverClass ? \" \" + popoverClass : \"\")', 'role': 'tooltip', '[id]': 'id' }, template: `\n
\n

\n {{title}}\n \n

\n
`, styles: [\"ngb-popover-window.bs-popover-bottom .arrow,ngb-popover-window.bs-popover-top .arrow{left:50%;margin-left:-.5rem}ngb-popover-window.bs-popover-bottom-left .arrow,ngb-popover-window.bs-popover-top-left .arrow{left:2em}ngb-popover-window.bs-popover-bottom-right .arrow,ngb-popover-window.bs-popover-top-right .arrow{left:auto;right:2em}ngb-popover-window.bs-popover-left .arrow,ngb-popover-window.bs-popover-right .arrow{top:50%;margin-top:-.5rem}ngb-popover-window.bs-popover-left-top .arrow,ngb-popover-window.bs-popover-right-top .arrow{top:.7em}ngb-popover-window.bs-popover-left-bottom .arrow,ngb-popover-window.bs-popover-right-bottom .arrow{top:auto;bottom:.7em}\"] }]\n }], null, { title: [{\n type: Input\n }], id: [{\n type: Input\n }], popoverClass: [{\n type: Input\n }], context: [{\n type: Input\n }] }); })();\n/**\n * A lightweight and extensible directive for fancy popover creation.\n */\nclass NgbPopover {\n /**\n * @param {?} _elementRef\n * @param {?} _renderer\n * @param {?} injector\n * @param {?} componentFactoryResolver\n * @param {?} viewContainerRef\n * @param {?} config\n * @param {?} _ngZone\n * @param {?} _document\n * @param {?} _changeDetector\n * @param {?} _applicationRef\n */\n constructor(_elementRef, _renderer, injector, componentFactoryResolver, viewContainerRef, config, _ngZone, _document, _changeDetector, _applicationRef) {\n this._elementRef = _elementRef;\n this._renderer = _renderer;\n this._ngZone = _ngZone;\n this._document = _document;\n this._changeDetector = _changeDetector;\n this._applicationRef = _applicationRef;\n /**\n * An event emitted when the popover is shown. Contains no payload.\n */\n this.shown = new EventEmitter();\n /**\n * An event emitted when the popover is hidden. Contains no payload.\n */\n this.hidden = new EventEmitter();\n this._ngbPopoverWindowId = `ngb-popover-${nextId$3++}`;\n this.autoClose = config.autoClose;\n this.placement = config.placement;\n this.triggers = config.triggers;\n this.container = config.container;\n this.disablePopover = config.disablePopover;\n this.popoverClass = config.popoverClass;\n this.openDelay = config.openDelay;\n this.closeDelay = config.closeDelay;\n this._popupService = new PopupService(NgbPopoverWindow, injector, viewContainerRef, _renderer, componentFactoryResolver, _applicationRef);\n this._zoneSubscription = _ngZone.onStable.subscribe(() => {\n if (this._windowRef) {\n positionElements(this._elementRef.nativeElement, this._windowRef.location.nativeElement, this.placement, this.container === 'body', 'bs-popover');\n }\n });\n }\n /**\n * @return {?}\n */\n _isDisabled() {\n if (this.disablePopover) {\n return true;\n }\n if (!this.ngbPopover && !this.popoverTitle) {\n return true;\n }\n return false;\n }\n /**\n * Opens the popover.\n *\n * This is considered to be a \"manual\" triggering.\n * The `context` is an optional value to be injected into the popover template when it is created.\n * @param {?=} context\n * @return {?}\n */\n open(context) {\n if (!this._windowRef && !this._isDisabled()) {\n this._windowRef = this._popupService.open(this.ngbPopover, context);\n this._windowRef.instance.title = this.popoverTitle;\n this._windowRef.instance.context = context;\n this._windowRef.instance.popoverClass = this.popoverClass;\n this._windowRef.instance.id = this._ngbPopoverWindowId;\n this._renderer.setAttribute(this._elementRef.nativeElement, 'aria-describedby', this._ngbPopoverWindowId);\n if (this.container === 'body') {\n this._document.querySelector(this.container).appendChild(this._windowRef.location.nativeElement);\n }\n // We need to detect changes, because we don't know where .open() might be called from.\n // Ex. opening popover from one of lifecycle hooks that run after the CD\n // (say from ngAfterViewInit) will result in 'ExpressionHasChanged' exception\n this._windowRef.changeDetectorRef.detectChanges();\n // We need to mark for check, because popover won't work inside the OnPush component.\n // Ex. when we use expression like `{{ popover.isOpen() : 'opened' : 'closed' }}`\n // inside the template of an OnPush component and we change the popover from\n // open -> closed, the expression in question won't be updated unless we explicitly\n // mark the parent component to be checked.\n this._windowRef.changeDetectorRef.markForCheck();\n ngbAutoClose(this._ngZone, this._document, this.autoClose, () => this.close(), this.hidden, [this._windowRef.location.nativeElement]);\n this.shown.emit();\n }\n }\n /**\n * Closes the popover.\n *\n * This is considered to be a \"manual\" triggering of the popover.\n * @return {?}\n */\n close() {\n if (this._windowRef) {\n this._renderer.removeAttribute(this._elementRef.nativeElement, 'aria-describedby');\n this._popupService.close();\n this._windowRef = null;\n this.hidden.emit();\n this._changeDetector.markForCheck();\n }\n }\n /**\n * Toggles the popover.\n *\n * This is considered to be a \"manual\" triggering of the popover.\n * @return {?}\n */\n toggle() {\n if (this._windowRef) {\n this.close();\n }\n else {\n this.open();\n }\n }\n /**\n * Returns `true`, if the popover is currently shown.\n * @return {?}\n */\n isOpen() { return this._windowRef != null; }\n /**\n * @return {?}\n */\n ngOnInit() {\n this._unregisterListenersFn = listenToTriggers(this._renderer, this._elementRef.nativeElement, this.triggers, this.isOpen.bind(this), this.open.bind(this), this.close.bind(this), +this.openDelay, +this.closeDelay);\n }\n /**\n * @param {?} changes\n * @return {?}\n */\n ngOnChanges(changes) {\n // close popover if title and content become empty, or disablePopover set to true\n if ((changes['ngbPopover'] || changes['popoverTitle'] || changes['disablePopover']) && this._isDisabled()) {\n this.close();\n }\n }\n /**\n * @return {?}\n */\n ngOnDestroy() {\n this.close();\n // This check is needed as it might happen that ngOnDestroy is called before ngOnInit\n // under certain conditions, see: https://github.com/ng-bootstrap/ng-bootstrap/issues/2199\n if (this._unregisterListenersFn) {\n this._unregisterListenersFn();\n }\n this._zoneSubscription.unsubscribe();\n }\n}\nNgbPopover.ɵfac = function NgbPopover_Factory(t) { return new (t || NgbPopover)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Injector), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ComponentFactoryResolver), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ViewContainerRef), ɵngcc0.ɵɵdirectiveInject(NgbPopoverConfig), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(DOCUMENT), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ApplicationRef)); };\nNgbPopover.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbPopover, selectors: [[\"\", \"ngbPopover\", \"\"]], inputs: { autoClose: \"autoClose\", placement: \"placement\", triggers: \"triggers\", container: \"container\", disablePopover: \"disablePopover\", popoverClass: \"popoverClass\", openDelay: \"openDelay\", closeDelay: \"closeDelay\", ngbPopover: \"ngbPopover\", popoverTitle: \"popoverTitle\" }, outputs: { shown: \"shown\", hidden: \"hidden\" }, exportAs: [\"ngbPopover\"], features: [ɵngcc0.ɵɵNgOnChangesFeature] });\n/** @nocollapse */\nNgbPopover.ctorParameters = () => [\n { type: ElementRef },\n { type: Renderer2 },\n { type: Injector },\n { type: ComponentFactoryResolver },\n { type: ViewContainerRef },\n { type: NgbPopoverConfig },\n { type: NgZone },\n { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },\n { type: ChangeDetectorRef },\n { type: ApplicationRef }\n];\nNgbPopover.propDecorators = {\n autoClose: [{ type: Input }],\n ngbPopover: [{ type: Input }],\n popoverTitle: [{ type: Input }],\n placement: [{ type: Input }],\n triggers: [{ type: Input }],\n container: [{ type: Input }],\n disablePopover: [{ type: Input }],\n popoverClass: [{ type: Input }],\n openDelay: [{ type: Input }],\n closeDelay: [{ type: Input }],\n shown: [{ type: Output }],\n hidden: [{ type: Output }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPopover, [{\n type: Directive,\n args: [{ selector: '[ngbPopover]', exportAs: 'ngbPopover' }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.Injector }, { type: ɵngcc0.ComponentFactoryResolver }, { type: ɵngcc0.ViewContainerRef }, { type: NgbPopoverConfig }, { type: ɵngcc0.NgZone }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc0.ApplicationRef }]; }, { shown: [{\n type: Output\n }], hidden: [{\n type: Output\n }], autoClose: [{\n type: Input\n }], placement: [{\n type: Input\n }], triggers: [{\n type: Input\n }], container: [{\n type: Input\n }], disablePopover: [{\n type: Input\n }], popoverClass: [{\n type: Input\n }], openDelay: [{\n type: Input\n }], closeDelay: [{\n type: Input\n }], ngbPopover: [{\n type: Input\n }], popoverTitle: [{\n type: Input\n }] }); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\nclass NgbPopoverModule {\n /**\n * Importing with '.forRoot()' is no longer necessary, you can simply import the module.\n * Will be removed in 4.0.0.\n *\n * @deprecated 3.0.0\n * @return {?}\n */\n static forRoot() { return { ngModule: NgbPopoverModule }; }\n}\nNgbPopoverModule.ɵfac = function NgbPopoverModule_Factory(t) { return new (t || NgbPopoverModule)(); };\nNgbPopoverModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgbPopoverModule });\nNgbPopoverModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [CommonModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbPopoverModule, [{\n type: NgModule,\n args: [{\n declarations: [NgbPopover, NgbPopoverWindow],\n exports: [NgbPopover],\n imports: [CommonModule],\n entryComponents: [NgbPopoverWindow]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbPopoverModule, { declarations: function () { return [NgbPopover, NgbPopoverWindow]; }, imports: function () { return [CommonModule]; }, exports: function () { return [NgbPopover]; } }); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/**\n * A configuration service for the [`NgbProgressbar`](#/components/progressbar/api#NgbProgressbar) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the progress bars used in the application.\n */\nclass NgbProgressbarConfig {\n constructor() {\n this.max = 100;\n this.animated = false;\n this.striped = false;\n this.showValue = false;\n }\n}\nNgbProgressbarConfig.ɵfac = function NgbProgressbarConfig_Factory(t) { return new (t || NgbProgressbarConfig)(); };\nNgbProgressbarConfig.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NgbProgressbarConfig, factory: NgbProgressbarConfig.ɵfac, providedIn: 'root' });\n/** @nocollapse */ NgbProgressbarConfig.ngInjectableDef = defineInjectable({ factory: function NgbProgressbarConfig_Factory() { return new NgbProgressbarConfig(); }, token: NgbProgressbarConfig, providedIn: \"root\" });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbProgressbarConfig, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () { return []; }, null); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/**\n * A directive that provides feedback on the progress of a workflow or an action.\n */\nclass NgbProgressbar {\n /**\n * @param {?} config\n */\n constructor(config) {\n /**\n * The current value for the progress bar.\n *\n * Should be in the `[0, max]` range.\n */\n this.value = 0;\n this.max = config.max;\n this.animated = config.animated;\n this.striped = config.striped;\n this.type = config.type;\n this.showValue = config.showValue;\n this.height = config.height;\n }\n /**\n * @return {?}\n */\n getValue() { return getValueInRange(this.value, this.max); }\n /**\n * @return {?}\n */\n getPercentValue() { return 100 * this.getValue() / this.max; }\n}\nNgbProgressbar.ɵfac = function NgbProgressbar_Factory(t) { return new (t || NgbProgressbar)(ɵngcc0.ɵɵdirectiveInject(NgbProgressbarConfig)); };\nNgbProgressbar.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NgbProgressbar, selectors: [[\"ngb-progressbar\"]], inputs: { value: \"value\", max: \"max\", animated: \"animated\", striped: \"striped\", type: \"type\", showValue: \"showValue\", height: \"height\" }, ngContentSelectors: _c3, decls: 4, vars: 12, consts: function () { let i18n_46; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_progressbar_value$$FESM2015_NG_BOOTSTRAP_JS__47 = goog.getMsg(\"{$interpolation}%\", { \"interpolation\": \"\\uFFFD0\\uFFFD\" }, { original_code: { \"interpolation\": \"{{getPercentValue()}}\" } });\n i18n_46 = MSG_EXTERNAL_ngb_progressbar_value$$FESM2015_NG_BOOTSTRAP_JS__47;\n }\n else {\n i18n_46 = $localize `:@@ngb.progressbar.value␟04d611d19c117c60c9e14d0a04399a027184bc77␟5214781723415385277:${\"\\uFFFD0\\uFFFD\"}:INTERPOLATION:%`;\n } return [[1, \"progress\"], [\"role\", \"progressbar\", \"aria-valuemin\", \"0\"], [4, \"ngIf\"], i18n_46]; }, template: function NgbProgressbar_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵelementStart(0, \"div\", 0)(1, \"div\", 1);\n ɵngcc0.ɵɵtemplate(2, NgbProgressbar_span_2_Template, 2, 1, \"span\", 2);\n ɵngcc0.ɵɵprojection(3);\n ɵngcc0.ɵɵelementEnd()();\n } if (rf & 2) {\n ɵngcc0.ɵɵstyleProp(\"height\", ctx.height);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵclassMapInterpolate3(\"progress-bar\", ctx.type ? \" bg-\" + ctx.type : \"\", \"\", ctx.animated ? \" progress-bar-animated\" : \"\", \"\", ctx.striped ? \" progress-bar-striped\" : \"\", \"\");\n ɵngcc0.ɵɵstyleProp(\"width\", ctx.getPercentValue(), \"%\");\n ɵngcc0.ɵɵattribute(\"aria-valuenow\", ctx.getValue())(\"aria-valuemax\", ctx.max);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.showValue);\n } }, dependencies: [ɵngcc1.NgIf], encapsulation: 2, changeDetection: 0 });\n/** @nocollapse */\nNgbProgressbar.ctorParameters = () => [\n { type: NgbProgressbarConfig }\n];\nNgbProgressbar.propDecorators = {\n max: [{ type: Input }],\n animated: [{ type: Input }],\n striped: [{ type: Input }],\n showValue: [{ type: Input }],\n type: [{ type: Input }],\n value: [{ type: Input }],\n height: [{ type: Input }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbProgressbar, [{\n type: Component,\n args: [{\n selector: 'ngb-progressbar',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n
\n
\n {{getPercentValue()}}%\n
\n
\n `\n }]\n }], function () { return [{ type: NgbProgressbarConfig }]; }, { value: [{\n type: Input\n }], max: [{\n type: Input\n }], animated: [{\n type: Input\n }], striped: [{\n type: Input\n }], type: [{\n type: Input\n }], showValue: [{\n type: Input\n }], height: [{\n type: Input\n }] }); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\nclass NgbProgressbarModule {\n /**\n * Importing with '.forRoot()' is no longer necessary, you can simply import the module.\n * Will be removed in 4.0.0.\n *\n * @deprecated 3.0.0\n * @return {?}\n */\n static forRoot() { return { ngModule: NgbProgressbarModule }; }\n}\nNgbProgressbarModule.ɵfac = function NgbProgressbarModule_Factory(t) { return new (t || NgbProgressbarModule)(); };\nNgbProgressbarModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgbProgressbarModule });\nNgbProgressbarModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [CommonModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbProgressbarModule, [{\n type: NgModule,\n args: [{ declarations: [NgbProgressbar], exports: [NgbProgressbar], imports: [CommonModule] }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbProgressbarModule, { declarations: function () { return [NgbProgressbar]; }, imports: function () { return [CommonModule]; }, exports: function () { return [NgbProgressbar]; } }); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/**\n * A configuration service for the [`NgbRating`](#/components/rating/api#NgbRating) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the ratings used in the application.\n */\nclass NgbRatingConfig {\n constructor() {\n this.max = 10;\n this.readonly = false;\n this.resettable = false;\n }\n}\nNgbRatingConfig.ɵfac = function NgbRatingConfig_Factory(t) { return new (t || NgbRatingConfig)(); };\nNgbRatingConfig.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NgbRatingConfig, factory: NgbRatingConfig.ɵfac, providedIn: 'root' });\n/** @nocollapse */ NgbRatingConfig.ngInjectableDef = defineInjectable({ factory: function NgbRatingConfig_Factory() { return new NgbRatingConfig(); }, token: NgbRatingConfig, providedIn: \"root\" });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbRatingConfig, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () { return []; }, null); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/** @type {?} */\nconst NGB_RATING_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NgbRating),\n multi: true\n};\n/**\n * A directive that helps visualising and interacting with a star rating bar.\n */\nclass NgbRating {\n /**\n * @param {?} config\n * @param {?} _changeDetectorRef\n */\n constructor(config, _changeDetectorRef) {\n this._changeDetectorRef = _changeDetectorRef;\n this.contexts = [];\n this.disabled = false;\n /**\n * An event emitted when the user is hovering over a given rating.\n *\n * Event payload equals to the rating being hovered over.\n */\n this.hover = new EventEmitter();\n /**\n * An event emitted when the user stops hovering over a given rating.\n *\n * Event payload equals to the rating of the last item being hovered over.\n */\n this.leave = new EventEmitter();\n /**\n * An event emitted when the user selects a new rating.\n *\n * Event payload equals to the newly selected rating.\n */\n this.rateChange = new EventEmitter(true);\n this.onChange = (_) => { };\n this.onTouched = () => { };\n this.max = config.max;\n this.readonly = config.readonly;\n }\n /**\n * @return {?}\n */\n ariaValueText() { return `${this.nextRate} out of ${this.max}`; }\n /**\n * @param {?} value\n * @return {?}\n */\n enter(value) {\n if (!this.readonly && !this.disabled) {\n this._updateState(value);\n }\n this.hover.emit(value);\n }\n /**\n * @return {?}\n */\n handleBlur() { this.onTouched(); }\n /**\n * @param {?} value\n * @return {?}\n */\n handleClick(value) { this.update(this.resettable && this.rate === value ? 0 : value); }\n /**\n * @param {?} event\n * @return {?}\n */\n handleKeyDown(event) {\n // tslint:disable-next-line:deprecation\n switch (event.which) {\n case Key.ArrowDown:\n case Key.ArrowLeft:\n this.update(this.rate - 1);\n break;\n case Key.ArrowUp:\n case Key.ArrowRight:\n this.update(this.rate + 1);\n break;\n case Key.Home:\n this.update(0);\n break;\n case Key.End:\n this.update(this.max);\n break;\n default:\n return;\n }\n // note 'return' in default case\n event.preventDefault();\n }\n /**\n * @param {?} changes\n * @return {?}\n */\n ngOnChanges(changes) {\n if (changes['rate']) {\n this.update(this.rate);\n }\n }\n /**\n * @return {?}\n */\n ngOnInit() {\n this.contexts = Array.from({ length: this.max }, (v, k) => ({ fill: 0, index: k }));\n this._updateState(this.rate);\n }\n /**\n * @param {?} fn\n * @return {?}\n */\n registerOnChange(fn) { this.onChange = fn; }\n /**\n * @param {?} fn\n * @return {?}\n */\n registerOnTouched(fn) { this.onTouched = fn; }\n /**\n * @return {?}\n */\n reset() {\n this.leave.emit(this.nextRate);\n this._updateState(this.rate);\n }\n /**\n * @param {?} isDisabled\n * @return {?}\n */\n setDisabledState(isDisabled) { this.disabled = isDisabled; }\n /**\n * @param {?} value\n * @param {?=} internalChange\n * @return {?}\n */\n update(value, internalChange = true) {\n /** @type {?} */\n const newRate = getValueInRange(value, this.max, 0);\n if (!this.readonly && !this.disabled && this.rate !== newRate) {\n this.rate = newRate;\n this.rateChange.emit(this.rate);\n }\n if (internalChange) {\n this.onChange(this.rate);\n this.onTouched();\n }\n this._updateState(this.rate);\n }\n /**\n * @param {?} value\n * @return {?}\n */\n writeValue(value) {\n this.update(value, false);\n this._changeDetectorRef.markForCheck();\n }\n /**\n * @param {?} index\n * @return {?}\n */\n _getFillValue(index) {\n /** @type {?} */\n const diff = this.nextRate - index;\n if (diff >= 1) {\n return 100;\n }\n if (diff < 1 && diff > 0) {\n return parseInt((diff * 100).toFixed(2), 10);\n }\n return 0;\n }\n /**\n * @param {?} nextValue\n * @return {?}\n */\n _updateState(nextValue) {\n this.nextRate = nextValue;\n this.contexts.forEach((context, index) => context.fill = this._getFillValue(index));\n }\n}\nNgbRating.ɵfac = function NgbRating_Factory(t) { return new (t || NgbRating)(ɵngcc0.ɵɵdirectiveInject(NgbRatingConfig), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\nNgbRating.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NgbRating, selectors: [[\"ngb-rating\"]], contentQueries: function NgbRating_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, TemplateRef, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.starTemplateFromContent = _t.first);\n } }, hostAttrs: [\"tabindex\", \"0\", \"role\", \"slider\", \"aria-valuemin\", \"0\", 1, \"d-inline-flex\"], hostVars: 4, hostBindings: function NgbRating_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"blur\", function NgbRating_blur_HostBindingHandler() { return ctx.handleBlur(); })(\"keydown\", function NgbRating_keydown_HostBindingHandler($event) { return ctx.handleKeyDown($event); })(\"mouseleave\", function NgbRating_mouseleave_HostBindingHandler() { return ctx.reset(); });\n } if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"aria-valuemax\", ctx.max)(\"aria-valuenow\", ctx.nextRate)(\"aria-valuetext\", ctx.ariaValueText())(\"aria-disabled\", ctx.readonly ? true : null);\n } }, inputs: { max: \"max\", readonly: \"readonly\", rate: \"rate\", resettable: \"resettable\", starTemplate: \"starTemplate\" }, outputs: { hover: \"hover\", leave: \"leave\", rateChange: \"rateChange\" }, features: [ɵngcc0.ɵɵProvidersFeature([NGB_RATING_VALUE_ACCESSOR]), ɵngcc0.ɵɵNgOnChangesFeature], decls: 3, vars: 1, consts: [[\"t\", \"\"], [\"ngFor\", \"\", 3, \"ngForOf\"], [1, \"sr-only\"], [3, \"mouseenter\", \"click\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]], template: function NgbRating_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, NgbRating_ng_template_0_Template, 1, 1, \"ng-template\", null, 0, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(2, NgbRating_ng_template_2_Template, 4, 5, \"ng-template\", 1);\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.contexts);\n } }, dependencies: [ɵngcc1.NgForOf, ɵngcc1.NgTemplateOutlet], encapsulation: 2, changeDetection: 0 });\n/** @nocollapse */\nNgbRating.ctorParameters = () => [\n { type: NgbRatingConfig },\n { type: ChangeDetectorRef }\n];\nNgbRating.propDecorators = {\n max: [{ type: Input }],\n rate: [{ type: Input }],\n readonly: [{ type: Input }],\n resettable: [{ type: Input }],\n starTemplate: [{ type: Input }],\n starTemplateFromContent: [{ type: ContentChild, args: [TemplateRef,] }],\n hover: [{ type: Output }],\n leave: [{ type: Output }],\n rateChange: [{ type: Output }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbRating, [{\n type: Component,\n args: [{\n selector: 'ngb-rating',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n 'class': 'd-inline-flex',\n 'tabindex': '0',\n 'role': 'slider',\n 'aria-valuemin': '0',\n '[attr.aria-valuemax]': 'max',\n '[attr.aria-valuenow]': 'nextRate',\n '[attr.aria-valuetext]': 'ariaValueText()',\n '[attr.aria-disabled]': 'readonly ? true : null',\n '(blur)': 'handleBlur()',\n '(keydown)': 'handleKeyDown($event)',\n '(mouseleave)': 'reset()'\n },\n template: `\n {{ fill === 100 ? '★' : '☆' }}\n \n ({{ index < nextRate ? '*' : ' ' }})\n \n \n \n \n \n `,\n providers: [NGB_RATING_VALUE_ACCESSOR]\n }]\n }], function () { return [{ type: NgbRatingConfig }, { type: ɵngcc0.ChangeDetectorRef }]; }, { hover: [{\n type: Output\n }], leave: [{\n type: Output\n }], rateChange: [{\n type: Output\n }], max: [{\n type: Input\n }], readonly: [{\n type: Input\n }], rate: [{\n type: Input\n }], resettable: [{\n type: Input\n }], starTemplate: [{\n type: Input\n }], starTemplateFromContent: [{\n type: ContentChild,\n args: [TemplateRef]\n }] }); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\nclass NgbRatingModule {\n /**\n * Importing with '.forRoot()' is no longer necessary, you can simply import the module.\n * Will be removed in 4.0.0.\n *\n * @deprecated 3.0.0\n * @return {?}\n */\n static forRoot() { return { ngModule: NgbRatingModule }; }\n}\nNgbRatingModule.ɵfac = function NgbRatingModule_Factory(t) { return new (t || NgbRatingModule)(); };\nNgbRatingModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgbRatingModule });\nNgbRatingModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [CommonModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbRatingModule, [{\n type: NgModule,\n args: [{ declarations: [NgbRating], exports: [NgbRating], imports: [CommonModule] }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbRatingModule, { declarations: function () { return [NgbRating]; }, imports: function () { return [CommonModule]; }, exports: function () { return [NgbRating]; } }); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/**\n * A configuration service for the [`NgbTabset`](#/components/tabset/api#NgbTabset) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the tabsets used in the application.\n */\nclass NgbTabsetConfig {\n constructor() {\n this.justify = 'start';\n this.orientation = 'horizontal';\n this.type = 'tabs';\n }\n}\nNgbTabsetConfig.ɵfac = function NgbTabsetConfig_Factory(t) { return new (t || NgbTabsetConfig)(); };\nNgbTabsetConfig.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NgbTabsetConfig, factory: NgbTabsetConfig.ɵfac, providedIn: 'root' });\n/** @nocollapse */ NgbTabsetConfig.ngInjectableDef = defineInjectable({ factory: function NgbTabsetConfig_Factory() { return new NgbTabsetConfig(); }, token: NgbTabsetConfig, providedIn: \"root\" });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbTabsetConfig, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () { return []; }, null); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/** @type {?} */\nlet nextId$4 = 0;\n/**\n * A directive to wrap tab titles that need to contain HTML markup or other directives.\n *\n * Alternatively you could use the `NgbTab.title` input for string titles.\n */\nclass NgbTabTitle {\n /**\n * @param {?} templateRef\n */\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nNgbTabTitle.ɵfac = function NgbTabTitle_Factory(t) { return new (t || NgbTabTitle)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nNgbTabTitle.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbTabTitle, selectors: [[\"ng-template\", \"ngbTabTitle\", \"\"]] });\n/** @nocollapse */\nNgbTabTitle.ctorParameters = () => [\n { type: TemplateRef }\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbTabTitle, [{\n type: Directive,\n args: [{ selector: 'ng-template[ngbTabTitle]' }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\n/**\n * A directive to wrap content to be displayed in a tab.\n */\nclass NgbTabContent {\n /**\n * @param {?} templateRef\n */\n constructor(templateRef) {\n this.templateRef = templateRef;\n }\n}\nNgbTabContent.ɵfac = function NgbTabContent_Factory(t) { return new (t || NgbTabContent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nNgbTabContent.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbTabContent, selectors: [[\"ng-template\", \"ngbTabContent\", \"\"]] });\n/** @nocollapse */\nNgbTabContent.ctorParameters = () => [\n { type: TemplateRef }\n];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbTabContent, [{\n type: Directive,\n args: [{ selector: 'ng-template[ngbTabContent]' }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\n/**\n * A directive representing an individual tab.\n */\nclass NgbTab {\n constructor() {\n /**\n * The tab identifier.\n *\n * Must be unique for the entire document for proper accessibility support.\n */\n this.id = `ngb-tab-${nextId$4++}`;\n /**\n * If `true`, the current tab is disabled and can't be toggled.\n */\n this.disabled = false;\n }\n /**\n * @return {?}\n */\n ngAfterContentChecked() {\n // We are using @ContentChildren instead of @ContentChild as in the Angular version being used\n // only @ContentChildren allows us to specify the {descendants: false} option.\n // Without {descendants: false} we are hitting bugs described in:\n // https://github.com/ng-bootstrap/ng-bootstrap/issues/2240\n this.titleTpl = this.titleTpls.first;\n this.contentTpl = this.contentTpls.first;\n }\n}\nNgbTab.ɵfac = function NgbTab_Factory(t) { return new (t || NgbTab)(); };\nNgbTab.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbTab, selectors: [[\"ngb-tab\"]], contentQueries: function NgbTab_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbTabTitle, 4);\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbTabContent, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.titleTpls = _t);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.contentTpls = _t);\n } }, inputs: { id: \"id\", disabled: \"disabled\", title: \"title\" } });\nNgbTab.propDecorators = {\n id: [{ type: Input }],\n title: [{ type: Input }],\n disabled: [{ type: Input }],\n titleTpls: [{ type: ContentChildren, args: [NgbTabTitle, { descendants: false },] }],\n contentTpls: [{ type: ContentChildren, args: [NgbTabContent, { descendants: false },] }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbTab, [{\n type: Directive,\n args: [{ selector: 'ngb-tab' }]\n }], function () { return []; }, { id: [{\n type: Input\n }], disabled: [{\n type: Input\n }], title: [{\n type: Input\n }], titleTpls: [{\n type: ContentChildren,\n args: [NgbTabTitle, { descendants: false }]\n }], contentTpls: [{\n type: ContentChildren,\n args: [NgbTabContent, { descendants: false }]\n }] }); })();\n/**\n * A component that makes it easy to create tabbed interface.\n */\nclass NgbTabset {\n /**\n * @param {?} config\n */\n constructor(config) {\n /**\n * If `true`, non-visible tabs content will be removed from DOM. Otherwise it will just be hidden.\n */\n this.destroyOnHide = true;\n /**\n * A tab change event emitted right before the tab change happens.\n *\n * See [`NgbTabChangeEvent`](#/components/tabset/api#NgbTabChangeEvent) for payload details.\n */\n this.tabChange = new EventEmitter();\n this.type = config.type;\n this.justify = config.justify;\n this.orientation = config.orientation;\n }\n /**\n * The horizontal alignment of the tabs with flexbox utilities.\n * @param {?} className\n * @return {?}\n */\n set justify(className) {\n if (className === 'fill' || className === 'justified') {\n this.justifyClass = `nav-${className}`;\n }\n else {\n this.justifyClass = `justify-content-${className}`;\n }\n }\n /**\n * Selects the tab with the given id and shows its associated content panel.\n *\n * Any other tab that was previously selected becomes unselected and its associated pane is removed from DOM or\n * hidden depending on the `destroyOnHide` value.\n * @param {?} tabId\n * @return {?}\n */\n select(tabId) {\n /** @type {?} */\n let selectedTab = this._getTabById(tabId);\n if (selectedTab && !selectedTab.disabled && this.activeId !== selectedTab.id) {\n /** @type {?} */\n let defaultPrevented = false;\n this.tabChange.emit({ activeId: this.activeId, nextId: selectedTab.id, preventDefault: () => { defaultPrevented = true; } });\n if (!defaultPrevented) {\n this.activeId = selectedTab.id;\n }\n }\n }\n /**\n * @return {?}\n */\n ngAfterContentChecked() {\n // auto-correct activeId that might have been set incorrectly as input\n /** @type {?} */\n let activeTab = this._getTabById(this.activeId);\n this.activeId = activeTab ? activeTab.id : (this.tabs.length ? this.tabs.first.id : null);\n }\n /**\n * @param {?} id\n * @return {?}\n */\n _getTabById(id) {\n /** @type {?} */\n let tabsWithId = this.tabs.filter(tab => tab.id === id);\n return tabsWithId.length ? tabsWithId[0] : null;\n }\n}\nNgbTabset.ɵfac = function NgbTabset_Factory(t) { return new (t || NgbTabset)(ɵngcc0.ɵɵdirectiveInject(NgbTabsetConfig)); };\nNgbTabset.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NgbTabset, selectors: [[\"ngb-tabset\"]], contentQueries: function NgbTabset_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, NgbTab, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.tabs = _t);\n } }, inputs: { destroyOnHide: \"destroyOnHide\", type: \"type\", justify: \"justify\", orientation: \"orientation\", activeId: \"activeId\" }, outputs: { tabChange: \"tabChange\" }, exportAs: [\"ngbTabset\"], decls: 4, vars: 4, consts: [[\"role\", \"tablist\"], [\"class\", \"nav-item\", 4, \"ngFor\", \"ngForOf\"], [1, \"tab-content\"], [\"ngFor\", \"\", 3, \"ngForOf\"], [1, \"nav-item\"], [\"href\", \"\", \"role\", \"tab\", 1, \"nav-link\", 3, \"id\", \"click\"], [3, \"ngTemplateOutlet\"], [\"role\", \"tabpanel\", 3, \"class\", \"id\", 4, \"ngIf\"], [\"role\", \"tabpanel\", 3, \"id\"]], template: function NgbTabset_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"ul\", 0);\n ɵngcc0.ɵɵtemplate(1, NgbTabset_li_1_Template, 4, 11, \"li\", 1);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(2, \"div\", 2);\n ɵngcc0.ɵɵtemplate(3, NgbTabset_ng_template_3_Template, 1, 1, \"ng-template\", 3);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵclassMap(\"nav nav-\" + ctx.type + (ctx.orientation == \"horizontal\" ? \" \" + ctx.justifyClass : \" flex-column\"));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.tabs);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.tabs);\n } }, dependencies: [ɵngcc1.NgForOf, ɵngcc1.NgIf, ɵngcc1.NgTemplateOutlet], encapsulation: 2 });\n/** @nocollapse */\nNgbTabset.ctorParameters = () => [\n { type: NgbTabsetConfig }\n];\nNgbTabset.propDecorators = {\n tabs: [{ type: ContentChildren, args: [NgbTab,] }],\n activeId: [{ type: Input }],\n destroyOnHide: [{ type: Input }],\n justify: [{ type: Input }],\n orientation: [{ type: Input }],\n type: [{ type: Input }],\n tabChange: [{ type: Output }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbTabset, [{\n type: Component,\n args: [{\n selector: 'ngb-tabset',\n exportAs: 'ngbTabset',\n template: `\n \n
\n \n \n \n
\n \n \n `\n }]\n }], function () { return [{ type: NgbTabsetConfig }]; }, { destroyOnHide: [{\n type: Input\n }], tabChange: [{\n type: Output\n }], type: [{\n type: Input\n }], justify: [{\n type: Input\n }], orientation: [{\n type: Input\n }], activeId: [{\n type: Input\n }], tabs: [{\n type: ContentChildren,\n args: [NgbTab]\n }] }); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/** @type {?} */\nconst NGB_TABSET_DIRECTIVES = [NgbTabset, NgbTab, NgbTabContent, NgbTabTitle];\nclass NgbTabsetModule {\n /**\n * Importing with '.forRoot()' is no longer necessary, you can simply import the module.\n * Will be removed in 4.0.0.\n *\n * @deprecated 3.0.0\n * @return {?}\n */\n static forRoot() { return { ngModule: NgbTabsetModule }; }\n}\nNgbTabsetModule.ɵfac = function NgbTabsetModule_Factory(t) { return new (t || NgbTabsetModule)(); };\nNgbTabsetModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgbTabsetModule });\nNgbTabsetModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [CommonModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbTabsetModule, [{\n type: NgModule,\n args: [{ declarations: NGB_TABSET_DIRECTIVES, exports: NGB_TABSET_DIRECTIVES, imports: [CommonModule] }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbTabsetModule, { declarations: function () { return [NgbTabset, NgbTab, NgbTabContent, NgbTabTitle]; }, imports: function () { return [CommonModule]; }, exports: function () { return [NgbTabset, NgbTab, NgbTabContent, NgbTabTitle]; } }); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\nclass NgbTime {\n /**\n * @param {?=} hour\n * @param {?=} minute\n * @param {?=} second\n */\n constructor(hour, minute, second) {\n this.hour = toInteger(hour);\n this.minute = toInteger(minute);\n this.second = toInteger(second);\n }\n /**\n * @param {?=} step\n * @return {?}\n */\n changeHour(step = 1) { this.updateHour((isNaN(this.hour) ? 0 : this.hour) + step); }\n /**\n * @param {?} hour\n * @return {?}\n */\n updateHour(hour) {\n if (isNumber(hour)) {\n this.hour = (hour < 0 ? 24 + hour : hour) % 24;\n }\n else {\n this.hour = NaN;\n }\n }\n /**\n * @param {?=} step\n * @return {?}\n */\n changeMinute(step = 1) { this.updateMinute((isNaN(this.minute) ? 0 : this.minute) + step); }\n /**\n * @param {?} minute\n * @return {?}\n */\n updateMinute(minute) {\n if (isNumber(minute)) {\n this.minute = minute % 60 < 0 ? 60 + minute % 60 : minute % 60;\n this.changeHour(Math.floor(minute / 60));\n }\n else {\n this.minute = NaN;\n }\n }\n /**\n * @param {?=} step\n * @return {?}\n */\n changeSecond(step = 1) { this.updateSecond((isNaN(this.second) ? 0 : this.second) + step); }\n /**\n * @param {?} second\n * @return {?}\n */\n updateSecond(second) {\n if (isNumber(second)) {\n this.second = second < 0 ? 60 + second % 60 : second % 60;\n this.changeMinute(Math.floor(second / 60));\n }\n else {\n this.second = NaN;\n }\n }\n /**\n * @param {?=} checkSecs\n * @return {?}\n */\n isValid(checkSecs = true) {\n return isNumber(this.hour) && isNumber(this.minute) && (checkSecs ? isNumber(this.second) : true);\n }\n /**\n * @return {?}\n */\n toString() { return `${this.hour || 0}:${this.minute || 0}:${this.second || 0}`; }\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/**\n * A configuration service for the [`NgbTimepicker`](#/components/timepicker/api#NgbTimepicker) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the timepickers used in the application.\n */\nclass NgbTimepickerConfig {\n constructor() {\n this.meridian = false;\n this.spinners = true;\n this.seconds = false;\n this.hourStep = 1;\n this.minuteStep = 1;\n this.secondStep = 1;\n this.disabled = false;\n this.readonlyInputs = false;\n this.size = 'medium';\n }\n}\nNgbTimepickerConfig.ɵfac = function NgbTimepickerConfig_Factory(t) { return new (t || NgbTimepickerConfig)(); };\nNgbTimepickerConfig.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NgbTimepickerConfig, factory: NgbTimepickerConfig.ɵfac, providedIn: 'root' });\n/** @nocollapse */ NgbTimepickerConfig.ngInjectableDef = defineInjectable({ factory: function NgbTimepickerConfig_Factory() { return new NgbTimepickerConfig(); }, token: NgbTimepickerConfig, providedIn: \"root\" });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbTimepickerConfig, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () { return []; }, null); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/**\n * @return {?}\n */\nfunction NGB_DATEPICKER_TIME_ADAPTER_FACTORY() {\n return new NgbTimeStructAdapter();\n}\n/**\n * An abstract service that does the conversion between the internal timepicker `NgbTimeStruct` model and\n * any provided user time model `T`, ex. a string, a native date, etc.\n *\n * The adapter is used **only** for conversion when binding timepicker to a form control,\n * ex. `[(ngModel)]=\"userTimeModel\"`. Here `userTimeModel` can be of any type.\n *\n * The default timepicker implementation assumes we use `NgbTimeStruct` as a user model.\n *\n * See the [custom time adapter demo](#/components/timepicker/examples#adapter) for an example.\n *\n * \\@since 2.2.0\n * @abstract\n * @template T\n */\nclass NgbTimeAdapter {\n}\nNgbTimeAdapter.ɵfac = function NgbTimeAdapter_Factory(t) { return new (t || NgbTimeAdapter)(); };\nNgbTimeAdapter.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NgbTimeAdapter, factory: function () { return NGB_DATEPICKER_TIME_ADAPTER_FACTORY(); }, providedIn: 'root' });\n/** @nocollapse */ NgbTimeAdapter.ngInjectableDef = defineInjectable({ factory: NGB_DATEPICKER_TIME_ADAPTER_FACTORY, token: NgbTimeAdapter, providedIn: \"root\" });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbTimeAdapter, [{\n type: Injectable,\n args: [{ providedIn: 'root', useFactory: NGB_DATEPICKER_TIME_ADAPTER_FACTORY }]\n }], null, null); })();\nclass NgbTimeStructAdapter extends NgbTimeAdapter {\n /**\n * Converts a NgbTimeStruct value into NgbTimeStruct value\n * @param {?} time\n * @return {?}\n */\n fromModel(time) {\n return (time && isInteger(time.hour) && isInteger(time.minute)) ?\n { hour: time.hour, minute: time.minute, second: isInteger(time.second) ? time.second : null } :\n null;\n }\n /**\n * Converts a NgbTimeStruct value into NgbTimeStruct value\n * @param {?} time\n * @return {?}\n */\n toModel(time) {\n return (time && isInteger(time.hour) && isInteger(time.minute)) ?\n { hour: time.hour, minute: time.minute, second: isInteger(time.second) ? time.second : null } :\n null;\n }\n}\nNgbTimeStructAdapter.ɵfac = /*@__PURE__*/ function () { let ɵNgbTimeStructAdapter_BaseFactory; return function NgbTimeStructAdapter_Factory(t) { return (ɵNgbTimeStructAdapter_BaseFactory || (ɵNgbTimeStructAdapter_BaseFactory = ɵngcc0.ɵɵgetInheritedFactory(NgbTimeStructAdapter)))(t || NgbTimeStructAdapter); }; }();\nNgbTimeStructAdapter.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NgbTimeStructAdapter, factory: NgbTimeStructAdapter.ɵfac });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbTimeStructAdapter, [{\n type: Injectable\n }], null, null); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/** @type {?} */\nconst NGB_TIMEPICKER_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NgbTimepicker),\n multi: true\n};\n/**\n * A directive that helps with wth picking hours, minutes and seconds.\n */\nclass NgbTimepicker {\n /**\n * @param {?} _config\n * @param {?} _ngbTimeAdapter\n * @param {?} _cd\n */\n constructor(_config, _ngbTimeAdapter, _cd) {\n this._config = _config;\n this._ngbTimeAdapter = _ngbTimeAdapter;\n this._cd = _cd;\n this.onChange = (_) => { };\n this.onTouched = () => { };\n this.meridian = _config.meridian;\n this.spinners = _config.spinners;\n this.seconds = _config.seconds;\n this.hourStep = _config.hourStep;\n this.minuteStep = _config.minuteStep;\n this.secondStep = _config.secondStep;\n this.disabled = _config.disabled;\n this.readonlyInputs = _config.readonlyInputs;\n this.size = _config.size;\n }\n /**\n * The number of hours to add/subtract when clicking hour spinners.\n * @param {?} step\n * @return {?}\n */\n set hourStep(step) {\n this._hourStep = isInteger(step) ? step : this._config.hourStep;\n }\n /**\n * @return {?}\n */\n get hourStep() { return this._hourStep; }\n /**\n * The number of minutes to add/subtract when clicking minute spinners.\n * @param {?} step\n * @return {?}\n */\n set minuteStep(step) {\n this._minuteStep = isInteger(step) ? step : this._config.minuteStep;\n }\n /**\n * @return {?}\n */\n get minuteStep() { return this._minuteStep; }\n /**\n * The number of seconds to add/subtract when clicking second spinners.\n * @param {?} step\n * @return {?}\n */\n set secondStep(step) {\n this._secondStep = isInteger(step) ? step : this._config.secondStep;\n }\n /**\n * @return {?}\n */\n get secondStep() { return this._secondStep; }\n /**\n * @param {?} value\n * @return {?}\n */\n writeValue(value) {\n /** @type {?} */\n const structValue = this._ngbTimeAdapter.fromModel(value);\n this.model = structValue ? new NgbTime(structValue.hour, structValue.minute, structValue.second) : new NgbTime();\n if (!this.seconds && (!structValue || !isNumber(structValue.second))) {\n this.model.second = 0;\n }\n this._cd.markForCheck();\n }\n /**\n * @param {?} fn\n * @return {?}\n */\n registerOnChange(fn) { this.onChange = fn; }\n /**\n * @param {?} fn\n * @return {?}\n */\n registerOnTouched(fn) { this.onTouched = fn; }\n /**\n * @param {?} isDisabled\n * @return {?}\n */\n setDisabledState(isDisabled) { this.disabled = isDisabled; }\n /**\n * @param {?} step\n * @return {?}\n */\n changeHour(step) {\n this.model.changeHour(step);\n this.propagateModelChange();\n }\n /**\n * @param {?} step\n * @return {?}\n */\n changeMinute(step) {\n this.model.changeMinute(step);\n this.propagateModelChange();\n }\n /**\n * @param {?} step\n * @return {?}\n */\n changeSecond(step) {\n this.model.changeSecond(step);\n this.propagateModelChange();\n }\n /**\n * @param {?} newVal\n * @return {?}\n */\n updateHour(newVal) {\n /** @type {?} */\n const isPM = this.model.hour >= 12;\n /** @type {?} */\n const enteredHour = toInteger(newVal);\n if (this.meridian && (isPM && enteredHour < 12 || !isPM && enteredHour === 12)) {\n this.model.updateHour(enteredHour + 12);\n }\n else {\n this.model.updateHour(enteredHour);\n }\n this.propagateModelChange();\n }\n /**\n * @param {?} newVal\n * @return {?}\n */\n updateMinute(newVal) {\n this.model.updateMinute(toInteger(newVal));\n this.propagateModelChange();\n }\n /**\n * @param {?} newVal\n * @return {?}\n */\n updateSecond(newVal) {\n this.model.updateSecond(toInteger(newVal));\n this.propagateModelChange();\n }\n /**\n * @return {?}\n */\n toggleMeridian() {\n if (this.meridian) {\n this.changeHour(12);\n }\n }\n /**\n * @param {?} value\n * @return {?}\n */\n formatHour(value) {\n if (isNumber(value)) {\n if (this.meridian) {\n return padNumber(value % 12 === 0 ? 12 : value % 12);\n }\n else {\n return padNumber(value % 24);\n }\n }\n else {\n return padNumber(NaN);\n }\n }\n /**\n * @param {?} value\n * @return {?}\n */\n formatMinSec(value) { return padNumber(value); }\n /**\n * @return {?}\n */\n get isSmallSize() { return this.size === 'small'; }\n /**\n * @return {?}\n */\n get isLargeSize() { return this.size === 'large'; }\n /**\n * @param {?} changes\n * @return {?}\n */\n ngOnChanges(changes) {\n if (changes['seconds'] && !this.seconds && this.model && !isNumber(this.model.second)) {\n this.model.second = 0;\n this.propagateModelChange(false);\n }\n }\n /**\n * @param {?=} touched\n * @return {?}\n */\n propagateModelChange(touched = true) {\n if (touched) {\n this.onTouched();\n }\n if (this.model.isValid(this.seconds)) {\n this.onChange(this._ngbTimeAdapter.toModel({ hour: this.model.hour, minute: this.model.minute, second: this.model.second }));\n }\n else {\n this.onChange(this._ngbTimeAdapter.toModel(null));\n }\n }\n}\nNgbTimepicker.ɵfac = function NgbTimepicker_Factory(t) { return new (t || NgbTimepicker)(ɵngcc0.ɵɵdirectiveInject(NgbTimepickerConfig), ɵngcc0.ɵɵdirectiveInject(NgbTimeAdapter), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\nNgbTimepicker.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NgbTimepicker, selectors: [[\"ngb-timepicker\"]], inputs: { meridian: \"meridian\", spinners: \"spinners\", seconds: \"seconds\", hourStep: \"hourStep\", minuteStep: \"minuteStep\", secondStep: \"secondStep\", readonlyInputs: \"readonlyInputs\", size: \"size\" }, features: [ɵngcc0.ɵɵProvidersFeature([NGB_TIMEPICKER_VALUE_ACCESSOR]), ɵngcc0.ɵɵNgOnChangesFeature], decls: 16, vars: 25, consts: function () { let i18n_48; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_timepicker_HH$$FESM2015_NG_BOOTSTRAP_JS_49 = goog.getMsg(\"HH\");\n i18n_48 = MSG_EXTERNAL_ngb_timepicker_HH$$FESM2015_NG_BOOTSTRAP_JS_49;\n }\n else {\n i18n_48 = $localize `:@@ngb.timepicker.HH␟ce676ab1d6d98f85c836381cf100a4a91ef95a1f␟4043638465245303811:HH`;\n } let i18n_50; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_timepicker_hours$$FESM2015_NG_BOOTSTRAP_JS_51 = goog.getMsg(\"Hours\");\n i18n_50 = MSG_EXTERNAL_ngb_timepicker_hours$$FESM2015_NG_BOOTSTRAP_JS_51;\n }\n else {\n i18n_50 = $localize `:@@ngb.timepicker.hours␟3bbce5fef7e1151da052a4e529453edb340e3912␟8070396816726827304:Hours`;\n } let i18n_52; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_timepicker_MM$$FESM2015_NG_BOOTSTRAP_JS_53 = goog.getMsg(\"MM\");\n i18n_52 = MSG_EXTERNAL_ngb_timepicker_MM$$FESM2015_NG_BOOTSTRAP_JS_53;\n }\n else {\n i18n_52 = $localize `:@@ngb.timepicker.MM␟72c8edf6a50068a05bde70991e36b1e881f4ca54␟1647282246509919852:MM`;\n } let i18n_54; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_timepicker_minutes$$FESM2015_NG_BOOTSTRAP_JS_55 = goog.getMsg(\"Minutes\");\n i18n_54 = MSG_EXTERNAL_ngb_timepicker_minutes$$FESM2015_NG_BOOTSTRAP_JS_55;\n }\n else {\n i18n_54 = $localize `:@@ngb.timepicker.minutes␟41e62daa962947c0d23ded0981975d1bddf0bf38␟5531237363767747080:Minutes`;\n } let i18n_56; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_timepicker_increment_hours$$FESM2015_NG_BOOTSTRAP_JS__57 = goog.getMsg(\"Increment hours\");\n i18n_56 = MSG_EXTERNAL_ngb_timepicker_increment_hours$$FESM2015_NG_BOOTSTRAP_JS__57;\n }\n else {\n i18n_56 = $localize `:@@ngb.timepicker.increment-hours␟cb74bc1d625a6c1742f0d7d47306cf495780c218␟5939278348542933629:Increment hours`;\n } let i18n_58; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_timepicker_decrement_hours$$FESM2015_NG_BOOTSTRAP_JS__59 = goog.getMsg(\"Decrement hours\");\n i18n_58 = MSG_EXTERNAL_ngb_timepicker_decrement_hours$$FESM2015_NG_BOOTSTRAP_JS__59;\n }\n else {\n i18n_58 = $localize `:@@ngb.timepicker.decrement-hours␟147c7a19429da7d999e247d22e33fee370b1691b␟3651829882940481818:Decrement hours`;\n } let i18n_60; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_timepicker_increment_minutes$$FESM2015_NG_BOOTSTRAP_JS__61 = goog.getMsg(\"Increment minutes\");\n i18n_60 = MSG_EXTERNAL_ngb_timepicker_increment_minutes$$FESM2015_NG_BOOTSTRAP_JS__61;\n }\n else {\n i18n_60 = $localize `:@@ngb.timepicker.increment-minutes␟f5a4a3bc05e053f6732475d0e74875ec01c3a348␟180147720391025024:Increment minutes`;\n } let i18n_62; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_timepicker_decrement_minutes$$FESM2015_NG_BOOTSTRAP_JS__63 = goog.getMsg(\"Decrement minutes\");\n i18n_62 = MSG_EXTERNAL_ngb_timepicker_decrement_minutes$$FESM2015_NG_BOOTSTRAP_JS__63;\n }\n else {\n i18n_62 = $localize `:@@ngb.timepicker.decrement-minutes␟c1a6899e529c096da5b660385d4e77fe1f7ad271␟7447789825403243588:Decrement minutes`;\n } let i18n_64; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_timepicker_SS$$FESM2015_NG_BOOTSTRAP_JS__65 = goog.getMsg(\"SS\");\n i18n_64 = MSG_EXTERNAL_ngb_timepicker_SS$$FESM2015_NG_BOOTSTRAP_JS__65;\n }\n else {\n i18n_64 = $localize `:@@ngb.timepicker.SS␟ebe38d36a40a2383c5fefa9b4608ffbda08bd4a3␟3628127143071124194:SS`;\n } let i18n_66; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_timepicker_seconds$$FESM2015_NG_BOOTSTRAP_JS__67 = goog.getMsg(\"Seconds\");\n i18n_66 = MSG_EXTERNAL_ngb_timepicker_seconds$$FESM2015_NG_BOOTSTRAP_JS__67;\n }\n else {\n i18n_66 = $localize `:@@ngb.timepicker.seconds␟4f2ed9e71a7c981db3e50ae2fedb28aff2ec4e6c␟8874012390997067175:Seconds`;\n } let i18n_68; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_timepicker_increment_seconds$$FESM2015_NG_BOOTSTRAP_JS___69 = goog.getMsg(\"Increment seconds\");\n i18n_68 = MSG_EXTERNAL_ngb_timepicker_increment_seconds$$FESM2015_NG_BOOTSTRAP_JS___69;\n }\n else {\n i18n_68 = $localize `:@@ngb.timepicker.increment-seconds␟912322ecee7d659d04dcf494a70e22e49d334b26␟5364772110539092174:Increment seconds`;\n } let i18n_70; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_timepicker_decrement_seconds$$FESM2015_NG_BOOTSTRAP_JS___71 = goog.getMsg(\"Decrement seconds\");\n i18n_70 = MSG_EXTERNAL_ngb_timepicker_decrement_seconds$$FESM2015_NG_BOOTSTRAP_JS___71;\n }\n else {\n i18n_70 = $localize `:@@ngb.timepicker.decrement-seconds␟5db47ac104294243a70eb9124fbea9d0004ddf69␟753633511487974857:Decrement seconds`;\n } let i18n_72; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_timepicker_PM$$FESM2015_NG_BOOTSTRAP_JS___73 = goog.getMsg(\"PM\");\n i18n_72 = MSG_EXTERNAL_ngb_timepicker_PM$$FESM2015_NG_BOOTSTRAP_JS___73;\n }\n else {\n i18n_72 = $localize `:@@ngb.timepicker.PM␟ea3531b9e785bbfa3a8e3bac5a63256791fe6742␟8786206544894467023:PM`;\n } let i18n_74; if (typeof ngI18nClosureMode !== \"undefined\" && ngI18nClosureMode) {\n /**\n * @suppress {msgDescriptions}\n */\n const MSG_EXTERNAL_ngb_timepicker_AM$$FESM2015_NG_BOOTSTRAP_JS___75 = goog.getMsg(\"AM\");\n i18n_74 = MSG_EXTERNAL_ngb_timepicker_AM$$FESM2015_NG_BOOTSTRAP_JS___75;\n }\n else {\n i18n_74 = $localize `:@@ngb.timepicker.AM␟7a15fe3d37ae85ad0d31e40bb0c366e6a6ce6aa9␟5815402189639789859:AM`;\n } return [[3, \"disabled\"], [1, \"ngb-tp\"], [1, \"ngb-tp-input-container\", \"ngb-tp-hour\"], [\"tabindex\", \"-1\", \"type\", \"button\", \"class\", \"btn btn-link\", 3, \"btn-sm\", \"btn-lg\", \"disabled\", \"click\", 4, \"ngIf\"], [\"type\", \"text\", \"maxlength\", \"2\", \"placeholder\", i18n_48, \"aria-label\", i18n_50, 1, \"ngb-tp-input\", \"form-control\", 3, \"value\", \"readOnly\", \"disabled\", \"change\", \"keydown.ArrowUp\", \"keydown.ArrowDown\"], [1, \"ngb-tp-spacer\"], [1, \"ngb-tp-input-container\", \"ngb-tp-minute\"], [\"type\", \"text\", \"maxlength\", \"2\", \"placeholder\", i18n_52, \"aria-label\", i18n_54, 1, \"ngb-tp-input\", \"form-control\", 3, \"value\", \"readOnly\", \"disabled\", \"change\", \"keydown.ArrowUp\", \"keydown.ArrowDown\"], [\"class\", \"ngb-tp-spacer\", 4, \"ngIf\"], [\"class\", \"ngb-tp-input-container ngb-tp-second\", 4, \"ngIf\"], [\"class\", \"ngb-tp-meridian\", 4, \"ngIf\"], [\"tabindex\", \"-1\", \"type\", \"button\", 1, \"btn\", \"btn-link\", 3, \"disabled\", \"click\"], [1, \"chevron\", \"ngb-tp-chevron\"], [1, \"sr-only\"], i18n_56, [1, \"chevron\", \"ngb-tp-chevron\", \"bottom\"], i18n_58, i18n_60, i18n_62, [1, \"ngb-tp-input-container\", \"ngb-tp-second\"], [\"type\", \"text\", \"maxlength\", \"2\", \"placeholder\", i18n_64, \"aria-label\", i18n_66, 1, \"ngb-tp-input\", \"form-control\", 3, \"value\", \"readOnly\", \"disabled\", \"change\", \"keydown.ArrowUp\", \"keydown.ArrowDown\"], i18n_68, i18n_70, [1, \"ngb-tp-meridian\"], [\"type\", \"button\", 1, \"btn\", \"btn-outline-primary\", 3, \"disabled\", \"click\"], [4, \"ngIf\", \"ngIfElse\"], [\"am\", \"\"], i18n_72, i18n_74]; }, template: function NgbTimepicker_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"fieldset\", 0)(1, \"div\", 1)(2, \"div\", 2);\n ɵngcc0.ɵɵtemplate(3, NgbTimepicker_button_3_Template, 4, 7, \"button\", 3);\n ɵngcc0.ɵɵelementStart(4, \"input\", 4);\n ɵngcc0.ɵɵlistener(\"change\", function NgbTimepicker_Template_input_change_4_listener($event) { return ctx.updateHour($event.target.value); })(\"keydown.ArrowUp\", function NgbTimepicker_Template_input_keydown_ArrowUp_4_listener($event) { ctx.changeHour(ctx.hourStep); return $event.preventDefault(); })(\"keydown.ArrowDown\", function NgbTimepicker_Template_input_keydown_ArrowDown_4_listener($event) { ctx.changeHour(-ctx.hourStep); return $event.preventDefault(); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(5, NgbTimepicker_button_5_Template, 4, 7, \"button\", 3);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(6, \"div\", 5);\n ɵngcc0.ɵɵtext(7, \":\");\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementStart(8, \"div\", 6);\n ɵngcc0.ɵɵtemplate(9, NgbTimepicker_button_9_Template, 4, 7, \"button\", 3);\n ɵngcc0.ɵɵelementStart(10, \"input\", 7);\n ɵngcc0.ɵɵlistener(\"change\", function NgbTimepicker_Template_input_change_10_listener($event) { return ctx.updateMinute($event.target.value); })(\"keydown.ArrowUp\", function NgbTimepicker_Template_input_keydown_ArrowUp_10_listener($event) { ctx.changeMinute(ctx.minuteStep); return $event.preventDefault(); })(\"keydown.ArrowDown\", function NgbTimepicker_Template_input_keydown_ArrowDown_10_listener($event) { ctx.changeMinute(-ctx.minuteStep); return $event.preventDefault(); });\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(11, NgbTimepicker_button_11_Template, 4, 7, \"button\", 3);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(12, NgbTimepicker_div_12_Template, 2, 0, \"div\", 8);\n ɵngcc0.ɵɵtemplate(13, NgbTimepicker_div_13_Template, 4, 9, \"div\", 9);\n ɵngcc0.ɵɵtemplate(14, NgbTimepicker_div_14_Template, 1, 0, \"div\", 8);\n ɵngcc0.ɵɵtemplate(15, NgbTimepicker_div_15_Template, 5, 9, \"div\", 10);\n ɵngcc0.ɵɵelementEnd()();\n } if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"disabled\", ctx.disabled);\n ɵngcc0.ɵɵproperty(\"disabled\", ctx.disabled);\n ɵngcc0.ɵɵadvance(3);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.spinners);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵclassProp(\"form-control-sm\", ctx.isSmallSize)(\"form-control-lg\", ctx.isLargeSize);\n ɵngcc0.ɵɵproperty(\"value\", ctx.formatHour(ctx.model == null ? null : ctx.model.hour))(\"readOnly\", ctx.readonlyInputs)(\"disabled\", ctx.disabled);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.spinners);\n ɵngcc0.ɵɵadvance(4);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.spinners);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵclassProp(\"form-control-sm\", ctx.isSmallSize)(\"form-control-lg\", ctx.isLargeSize);\n ɵngcc0.ɵɵproperty(\"value\", ctx.formatMinSec(ctx.model == null ? null : ctx.model.minute))(\"readOnly\", ctx.readonlyInputs)(\"disabled\", ctx.disabled);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.spinners);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.seconds);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.seconds);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.meridian);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.meridian);\n } }, dependencies: [ɵngcc1.NgIf], styles: [\"ngb-timepicker{font-size:1rem}.ngb-tp{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.ngb-tp-input-container{width:4em}.ngb-tp-chevron::before{border-style:solid;border-width:.29em .29em 0 0;content:'';display:inline-block;height:.69em;left:.05em;position:relative;top:.15em;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);vertical-align:middle;width:.69em}.ngb-tp-chevron.bottom:before{top:-.3em;-webkit-transform:rotate(135deg);transform:rotate(135deg)}.ngb-tp-input{text-align:center}.ngb-tp-hour,.ngb-tp-meridian,.ngb-tp-minute,.ngb-tp-second{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center;-ms-flex-pack:distribute;justify-content:space-around}.ngb-tp-spacer{width:1em;text-align:center}\"], encapsulation: 2 });\n/** @nocollapse */\nNgbTimepicker.ctorParameters = () => [\n { type: NgbTimepickerConfig },\n { type: NgbTimeAdapter },\n { type: ChangeDetectorRef }\n];\nNgbTimepicker.propDecorators = {\n meridian: [{ type: Input }],\n spinners: [{ type: Input }],\n seconds: [{ type: Input }],\n hourStep: [{ type: Input }],\n minuteStep: [{ type: Input }],\n secondStep: [{ type: Input }],\n readonlyInputs: [{ type: Input }],\n size: [{ type: Input }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbTimepicker, [{\n type: Component,\n args: [{ selector: 'ngb-timepicker', encapsulation: ViewEncapsulation.None, template: `\n
\n
\n
\n \n \n \n
\n
:
\n
\n \n \n \n
\n
:
\n
\n \n \n \n
\n
\n
\n \n
\n
\n
\n `, providers: [NGB_TIMEPICKER_VALUE_ACCESSOR], styles: [\"ngb-timepicker{font-size:1rem}.ngb-tp{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.ngb-tp-input-container{width:4em}.ngb-tp-chevron::before{border-style:solid;border-width:.29em .29em 0 0;content:'';display:inline-block;height:.69em;left:.05em;position:relative;top:.15em;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);vertical-align:middle;width:.69em}.ngb-tp-chevron.bottom:before{top:-.3em;-webkit-transform:rotate(135deg);transform:rotate(135deg)}.ngb-tp-input{text-align:center}.ngb-tp-hour,.ngb-tp-meridian,.ngb-tp-minute,.ngb-tp-second{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center;-ms-flex-pack:distribute;justify-content:space-around}.ngb-tp-spacer{width:1em;text-align:center}\"] }]\n }], function () { return [{ type: NgbTimepickerConfig }, { type: NgbTimeAdapter }, { type: ɵngcc0.ChangeDetectorRef }]; }, { meridian: [{\n type: Input\n }], spinners: [{\n type: Input\n }], seconds: [{\n type: Input\n }], hourStep: [{\n type: Input\n }], minuteStep: [{\n type: Input\n }], secondStep: [{\n type: Input\n }], readonlyInputs: [{\n type: Input\n }], size: [{\n type: Input\n }] }); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\nclass NgbTimepickerModule {\n /**\n * Importing with '.forRoot()' is no longer necessary, you can simply import the module.\n * Will be removed in 4.0.0.\n *\n * @deprecated 3.0.0\n * @return {?}\n */\n static forRoot() { return { ngModule: NgbTimepickerModule }; }\n}\nNgbTimepickerModule.ɵfac = function NgbTimepickerModule_Factory(t) { return new (t || NgbTimepickerModule)(); };\nNgbTimepickerModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgbTimepickerModule });\nNgbTimepickerModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [CommonModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbTimepickerModule, [{\n type: NgModule,\n args: [{ declarations: [NgbTimepicker], exports: [NgbTimepicker], imports: [CommonModule] }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbTimepickerModule, { declarations: function () { return [NgbTimepicker]; }, imports: function () { return [CommonModule]; }, exports: function () { return [NgbTimepicker]; } }); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/**\n * A configuration service for the [`NgbTooltip`](#/components/tooltip/api#NgbTooltip) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the tooltips used in the application.\n */\nclass NgbTooltipConfig {\n constructor() {\n this.autoClose = true;\n this.placement = 'auto';\n this.triggers = 'hover focus';\n this.disableTooltip = false;\n this.openDelay = 0;\n this.closeDelay = 0;\n }\n}\nNgbTooltipConfig.ɵfac = function NgbTooltipConfig_Factory(t) { return new (t || NgbTooltipConfig)(); };\nNgbTooltipConfig.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NgbTooltipConfig, factory: NgbTooltipConfig.ɵfac, providedIn: 'root' });\n/** @nocollapse */ NgbTooltipConfig.ngInjectableDef = defineInjectable({ factory: function NgbTooltipConfig_Factory() { return new NgbTooltipConfig(); }, token: NgbTooltipConfig, providedIn: \"root\" });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbTooltipConfig, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () { return []; }, null); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/** @type {?} */\nlet nextId$5 = 0;\nclass NgbTooltipWindow {\n}\nNgbTooltipWindow.ɵfac = function NgbTooltipWindow_Factory(t) { return new (t || NgbTooltipWindow)(); };\nNgbTooltipWindow.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NgbTooltipWindow, selectors: [[\"ngb-tooltip-window\"]], hostAttrs: [\"role\", \"tooltip\"], hostVars: 3, hostBindings: function NgbTooltipWindow_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵhostProperty(\"id\", ctx.id);\n ɵngcc0.ɵɵclassMap(\"tooltip show\" + (ctx.tooltipClass ? \" \" + ctx.tooltipClass : \"\"));\n } }, inputs: { id: \"id\", tooltipClass: \"tooltipClass\" }, ngContentSelectors: _c3, decls: 3, vars: 0, consts: [[1, \"arrow\"], [1, \"tooltip-inner\"]], template: function NgbTooltipWindow_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵelement(0, \"div\", 0);\n ɵngcc0.ɵɵelementStart(1, \"div\", 1);\n ɵngcc0.ɵɵprojection(2);\n ɵngcc0.ɵɵelementEnd();\n } }, styles: [\"ngb-tooltip-window.bs-tooltip-bottom .arrow,ngb-tooltip-window.bs-tooltip-top .arrow{left:calc(50% - .4rem)}ngb-tooltip-window.bs-tooltip-bottom-left .arrow,ngb-tooltip-window.bs-tooltip-top-left .arrow{left:1em}ngb-tooltip-window.bs-tooltip-bottom-right .arrow,ngb-tooltip-window.bs-tooltip-top-right .arrow{left:auto;right:.8rem}ngb-tooltip-window.bs-tooltip-left .arrow,ngb-tooltip-window.bs-tooltip-right .arrow{top:calc(50% - .4rem)}ngb-tooltip-window.bs-tooltip-left-top .arrow,ngb-tooltip-window.bs-tooltip-right-top .arrow{top:.4rem}ngb-tooltip-window.bs-tooltip-left-bottom .arrow,ngb-tooltip-window.bs-tooltip-right-bottom .arrow{top:auto;bottom:.4rem}\"], encapsulation: 2, changeDetection: 0 });\nNgbTooltipWindow.propDecorators = {\n id: [{ type: Input }],\n tooltipClass: [{ type: Input }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbTooltipWindow, [{\n type: Component,\n args: [{ selector: 'ngb-tooltip-window', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { '[class]': '\"tooltip show\" + (tooltipClass ? \" \" + tooltipClass : \"\")', 'role': 'tooltip', '[id]': 'id' }, template: `
`, styles: [\"ngb-tooltip-window.bs-tooltip-bottom .arrow,ngb-tooltip-window.bs-tooltip-top .arrow{left:calc(50% - .4rem)}ngb-tooltip-window.bs-tooltip-bottom-left .arrow,ngb-tooltip-window.bs-tooltip-top-left .arrow{left:1em}ngb-tooltip-window.bs-tooltip-bottom-right .arrow,ngb-tooltip-window.bs-tooltip-top-right .arrow{left:auto;right:.8rem}ngb-tooltip-window.bs-tooltip-left .arrow,ngb-tooltip-window.bs-tooltip-right .arrow{top:calc(50% - .4rem)}ngb-tooltip-window.bs-tooltip-left-top .arrow,ngb-tooltip-window.bs-tooltip-right-top .arrow{top:.4rem}ngb-tooltip-window.bs-tooltip-left-bottom .arrow,ngb-tooltip-window.bs-tooltip-right-bottom .arrow{top:auto;bottom:.4rem}\"] }]\n }], null, { id: [{\n type: Input\n }], tooltipClass: [{\n type: Input\n }] }); })();\n/**\n * A lightweight and extensible directive for fancy tooltip creation.\n */\nclass NgbTooltip {\n /**\n * @param {?} _elementRef\n * @param {?} _renderer\n * @param {?} injector\n * @param {?} componentFactoryResolver\n * @param {?} viewContainerRef\n * @param {?} config\n * @param {?} _ngZone\n * @param {?} _document\n * @param {?} _changeDetector\n * @param {?} _applicationRef\n */\n constructor(_elementRef, _renderer, injector, componentFactoryResolver, viewContainerRef, config, _ngZone, _document, _changeDetector, _applicationRef) {\n this._elementRef = _elementRef;\n this._renderer = _renderer;\n this._ngZone = _ngZone;\n this._document = _document;\n this._changeDetector = _changeDetector;\n this._applicationRef = _applicationRef;\n /**\n * An event emitted when the tooltip is shown. Contains no payload.\n */\n this.shown = new EventEmitter();\n /**\n * An event emitted when the popover is hidden. Contains no payload.\n */\n this.hidden = new EventEmitter();\n this._ngbTooltipWindowId = `ngb-tooltip-${nextId$5++}`;\n this.autoClose = config.autoClose;\n this.placement = config.placement;\n this.triggers = config.triggers;\n this.container = config.container;\n this.disableTooltip = config.disableTooltip;\n this.tooltipClass = config.tooltipClass;\n this.openDelay = config.openDelay;\n this.closeDelay = config.closeDelay;\n this._popupService = new PopupService(NgbTooltipWindow, injector, viewContainerRef, _renderer, componentFactoryResolver, _applicationRef);\n this._zoneSubscription = _ngZone.onStable.subscribe(() => {\n if (this._windowRef) {\n positionElements(this._elementRef.nativeElement, this._windowRef.location.nativeElement, this.placement, this.container === 'body', 'bs-tooltip');\n }\n });\n }\n /**\n * The string content or a `TemplateRef` for the content to be displayed in the tooltip.\n *\n * If the content if falsy, the tooltip won't open.\n * @param {?} value\n * @return {?}\n */\n set ngbTooltip(value) {\n this._ngbTooltip = value;\n if (!value && this._windowRef) {\n this.close();\n }\n }\n /**\n * @return {?}\n */\n get ngbTooltip() { return this._ngbTooltip; }\n /**\n * Opens the tooltip.\n *\n * This is considered to be a \"manual\" triggering.\n * The `context` is an optional value to be injected into the tooltip template when it is created.\n * @param {?=} context\n * @return {?}\n */\n open(context) {\n if (!this._windowRef && this._ngbTooltip && !this.disableTooltip) {\n this._windowRef = this._popupService.open(this._ngbTooltip, context);\n this._windowRef.instance.tooltipClass = this.tooltipClass;\n this._windowRef.instance.id = this._ngbTooltipWindowId;\n this._renderer.setAttribute(this._elementRef.nativeElement, 'aria-describedby', this._ngbTooltipWindowId);\n if (this.container === 'body') {\n this._document.querySelector(this.container).appendChild(this._windowRef.location.nativeElement);\n }\n // We need to detect changes, because we don't know where .open() might be called from.\n // Ex. opening tooltip from one of lifecycle hooks that run after the CD\n // (say from ngAfterViewInit) will result in 'ExpressionHasChanged' exception\n this._windowRef.changeDetectorRef.detectChanges();\n // We need to mark for check, because tooltip won't work inside the OnPush component.\n // Ex. when we use expression like `{{ tooltip.isOpen() : 'opened' : 'closed' }}`\n // inside the template of an OnPush component and we change the tooltip from\n // open -> closed, the expression in question won't be updated unless we explicitly\n // mark the parent component to be checked.\n this._windowRef.changeDetectorRef.markForCheck();\n ngbAutoClose(this._ngZone, this._document, this.autoClose, () => this.close(), this.hidden, [this._windowRef.location.nativeElement]);\n this.shown.emit();\n }\n }\n /**\n * Closes the tooltip.\n *\n * This is considered to be a \"manual\" triggering of the tooltip.\n * @return {?}\n */\n close() {\n if (this._windowRef != null) {\n this._renderer.removeAttribute(this._elementRef.nativeElement, 'aria-describedby');\n this._popupService.close();\n this._windowRef = null;\n this.hidden.emit();\n this._changeDetector.markForCheck();\n }\n }\n /**\n * Toggles the tooltip.\n *\n * This is considered to be a \"manual\" triggering of the tooltip.\n * @return {?}\n */\n toggle() {\n if (this._windowRef) {\n this.close();\n }\n else {\n this.open();\n }\n }\n /**\n * Returns `true`, if the popover is currently shown.\n * @return {?}\n */\n isOpen() { return this._windowRef != null; }\n /**\n * @return {?}\n */\n ngOnInit() {\n this._unregisterListenersFn = listenToTriggers(this._renderer, this._elementRef.nativeElement, this.triggers, this.isOpen.bind(this), this.open.bind(this), this.close.bind(this), +this.openDelay, +this.closeDelay);\n }\n /**\n * @return {?}\n */\n ngOnDestroy() {\n this.close();\n // This check is needed as it might happen that ngOnDestroy is called before ngOnInit\n // under certain conditions, see: https://github.com/ng-bootstrap/ng-bootstrap/issues/2199\n if (this._unregisterListenersFn) {\n this._unregisterListenersFn();\n }\n this._zoneSubscription.unsubscribe();\n }\n}\nNgbTooltip.ɵfac = function NgbTooltip_Factory(t) { return new (t || NgbTooltip)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Injector), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ComponentFactoryResolver), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ViewContainerRef), ɵngcc0.ɵɵdirectiveInject(NgbTooltipConfig), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(DOCUMENT), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ApplicationRef)); };\nNgbTooltip.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbTooltip, selectors: [[\"\", \"ngbTooltip\", \"\"]], inputs: { autoClose: \"autoClose\", placement: \"placement\", triggers: \"triggers\", container: \"container\", disableTooltip: \"disableTooltip\", tooltipClass: \"tooltipClass\", openDelay: \"openDelay\", closeDelay: \"closeDelay\", ngbTooltip: \"ngbTooltip\" }, outputs: { shown: \"shown\", hidden: \"hidden\" }, exportAs: [\"ngbTooltip\"] });\n/** @nocollapse */\nNgbTooltip.ctorParameters = () => [\n { type: ElementRef },\n { type: Renderer2 },\n { type: Injector },\n { type: ComponentFactoryResolver },\n { type: ViewContainerRef },\n { type: NgbTooltipConfig },\n { type: NgZone },\n { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },\n { type: ChangeDetectorRef },\n { type: ApplicationRef }\n];\nNgbTooltip.propDecorators = {\n autoClose: [{ type: Input }],\n placement: [{ type: Input }],\n triggers: [{ type: Input }],\n container: [{ type: Input }],\n disableTooltip: [{ type: Input }],\n tooltipClass: [{ type: Input }],\n openDelay: [{ type: Input }],\n closeDelay: [{ type: Input }],\n shown: [{ type: Output }],\n hidden: [{ type: Output }],\n ngbTooltip: [{ type: Input }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbTooltip, [{\n type: Directive,\n args: [{ selector: '[ngbTooltip]', exportAs: 'ngbTooltip' }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.Injector }, { type: ɵngcc0.ComponentFactoryResolver }, { type: ɵngcc0.ViewContainerRef }, { type: NgbTooltipConfig }, { type: ɵngcc0.NgZone }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc0.ApplicationRef }]; }, { shown: [{\n type: Output\n }], hidden: [{\n type: Output\n }], autoClose: [{\n type: Input\n }], placement: [{\n type: Input\n }], triggers: [{\n type: Input\n }], container: [{\n type: Input\n }], disableTooltip: [{\n type: Input\n }], tooltipClass: [{\n type: Input\n }], openDelay: [{\n type: Input\n }], closeDelay: [{\n type: Input\n }], ngbTooltip: [{\n type: Input\n }] }); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\nclass NgbTooltipModule {\n /**\n * No need in forRoot anymore with tree-shakeable services\n *\n * @deprecated 3.0.0\n * @return {?}\n */\n static forRoot() { return { ngModule: NgbTooltipModule }; }\n}\nNgbTooltipModule.ɵfac = function NgbTooltipModule_Factory(t) { return new (t || NgbTooltipModule)(); };\nNgbTooltipModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgbTooltipModule });\nNgbTooltipModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbTooltipModule, [{\n type: NgModule,\n args: [{ declarations: [NgbTooltip, NgbTooltipWindow], exports: [NgbTooltip], entryComponents: [NgbTooltipWindow] }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbTooltipModule, { declarations: [NgbTooltip, NgbTooltipWindow], exports: [NgbTooltip] }); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/**\n * A component that helps with text highlighting.\n *\n * If splits the `result` text into parts that contain the searched `term` and generates the HTML markup to simplify\n * highlighting:\n *\n * Ex. `result=\"Alaska\"` and `term=\"as\"` will produce `Alaska`.\n */\nclass NgbHighlight {\n constructor() {\n /**\n * The CSS class for `` elements wrapping the `term` inside the `result`.\n */\n this.highlightClass = 'ngb-highlight';\n }\n /**\n * @param {?} changes\n * @return {?}\n */\n ngOnChanges(changes) {\n /** @type {?} */\n const resultStr = toString(this.result);\n if (!resultStr) {\n this.parts = [resultStr];\n return;\n }\n /** @type {?} */\n let resultTerms = Array.isArray(this.term) ? this.term.map(x => toString(x)) : [toString(this.term)];\n resultTerms = resultTerms.filter(x => x);\n if (!resultTerms.length) {\n this.parts = [resultStr];\n return;\n }\n /** @type {?} */\n const regexStr = `(${resultTerms.map(x => regExpEscape(x)).join('|')})`;\n this.parts = resultStr.split(new RegExp(regexStr, 'gmi'));\n }\n}\nNgbHighlight.ɵfac = function NgbHighlight_Factory(t) { return new (t || NgbHighlight)(); };\nNgbHighlight.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NgbHighlight, selectors: [[\"ngb-highlight\"]], inputs: { highlightClass: \"highlightClass\", result: \"result\", term: \"term\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature], decls: 1, vars: 1, consts: [[\"ngFor\", \"\", 3, \"ngForOf\"], [3, \"class\", 4, \"ngIf\", \"ngIfElse\"], [\"even\", \"\"]], template: function NgbHighlight_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, NgbHighlight_ng_template_0_Template, 3, 2, \"ng-template\", 0);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.parts);\n } }, dependencies: [ɵngcc1.NgForOf, ɵngcc1.NgIf], styles: [\".ngb-highlight{font-weight:700}\"], encapsulation: 2, changeDetection: 0 });\nNgbHighlight.propDecorators = {\n highlightClass: [{ type: Input }],\n result: [{ type: Input }],\n term: [{ type: Input }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbHighlight, [{\n type: Component,\n args: [{ selector: 'ngb-highlight', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: `` +\n `{{part}}{{part}}` +\n ``, styles: [\".ngb-highlight{font-weight:700}\"] }]\n }], function () { return []; }, { highlightClass: [{\n type: Input\n }], result: [{\n type: Input\n }], term: [{\n type: Input\n }] }); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\nclass NgbTypeaheadWindow {\n constructor() {\n this.activeIdx = 0;\n /**\n * Flag indicating if the first row should be active initially\n */\n this.focusFirst = true;\n /**\n * A function used to format a given result before display. This function should return a formatted string without any\n * HTML markup\n */\n this.formatter = toString;\n /**\n * Event raised when user selects a particular result row\n */\n this.selectEvent = new EventEmitter();\n this.activeChangeEvent = new EventEmitter();\n }\n /**\n * @return {?}\n */\n hasActive() { return this.activeIdx > -1 && this.activeIdx < this.results.length; }\n /**\n * @return {?}\n */\n getActive() { return this.results[this.activeIdx]; }\n /**\n * @param {?} activeIdx\n * @return {?}\n */\n markActive(activeIdx) {\n this.activeIdx = activeIdx;\n this._activeChanged();\n }\n /**\n * @return {?}\n */\n next() {\n if (this.activeIdx === this.results.length - 1) {\n this.activeIdx = this.focusFirst ? (this.activeIdx + 1) % this.results.length : -1;\n }\n else {\n this.activeIdx++;\n }\n this._activeChanged();\n }\n /**\n * @return {?}\n */\n prev() {\n if (this.activeIdx < 0) {\n this.activeIdx = this.results.length - 1;\n }\n else if (this.activeIdx === 0) {\n this.activeIdx = this.focusFirst ? this.results.length - 1 : -1;\n }\n else {\n this.activeIdx--;\n }\n this._activeChanged();\n }\n /**\n * @return {?}\n */\n resetActive() {\n this.activeIdx = this.focusFirst ? 0 : -1;\n this._activeChanged();\n }\n /**\n * @param {?} item\n * @return {?}\n */\n select(item) { this.selectEvent.emit(item); }\n /**\n * @return {?}\n */\n ngOnInit() { this.resetActive(); }\n /**\n * @return {?}\n */\n _activeChanged() {\n this.activeChangeEvent.emit(this.activeIdx >= 0 ? this.id + '-' + this.activeIdx : undefined);\n }\n}\nNgbTypeaheadWindow.ɵfac = function NgbTypeaheadWindow_Factory(t) { return new (t || NgbTypeaheadWindow)(); };\nNgbTypeaheadWindow.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: NgbTypeaheadWindow, selectors: [[\"ngb-typeahead-window\"]], hostAttrs: [\"role\", \"listbox\", 1, \"dropdown-menu\", \"show\"], hostVars: 1, hostBindings: function NgbTypeaheadWindow_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"mousedown\", function NgbTypeaheadWindow_mousedown_HostBindingHandler($event) { return $event.preventDefault(); });\n } if (rf & 2) {\n ɵngcc0.ɵɵhostProperty(\"id\", ctx.id);\n } }, inputs: { focusFirst: \"focusFirst\", formatter: \"formatter\", id: \"id\", results: \"results\", term: \"term\", resultTemplate: \"resultTemplate\" }, outputs: { selectEvent: \"select\", activeChangeEvent: \"activeChange\" }, exportAs: [\"ngbTypeaheadWindow\"], decls: 3, vars: 1, consts: [[\"rt\", \"\"], [\"ngFor\", \"\", 3, \"ngForOf\"], [3, \"result\", \"term\"], [\"type\", \"button\", \"role\", \"option\", 1, \"dropdown-item\", 3, \"id\", \"mouseenter\", \"click\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"]], template: function NgbTypeaheadWindow_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, NgbTypeaheadWindow_ng_template_0_Template, 1, 2, \"ng-template\", null, 0, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵtemplate(2, NgbTypeaheadWindow_ng_template_2_Template, 2, 9, \"ng-template\", 1);\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.results);\n } }, dependencies: [ɵngcc1.NgForOf, ɵngcc1.NgTemplateOutlet, NgbHighlight], encapsulation: 2 });\nNgbTypeaheadWindow.propDecorators = {\n id: [{ type: Input }],\n focusFirst: [{ type: Input }],\n results: [{ type: Input }],\n term: [{ type: Input }],\n formatter: [{ type: Input }],\n resultTemplate: [{ type: Input }],\n selectEvent: [{ type: Output, args: ['select',] }],\n activeChangeEvent: [{ type: Output, args: ['activeChange',] }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbTypeaheadWindow, [{\n type: Component,\n args: [{\n selector: 'ngb-typeahead-window',\n exportAs: 'ngbTypeaheadWindow',\n host: { '(mousedown)': '$event.preventDefault()', 'class': 'dropdown-menu show', 'role': 'listbox', '[id]': 'id' },\n template: `\n \n \n \n \n \n \n `\n }]\n }], function () { return []; }, { focusFirst: [{\n type: Input\n }], formatter: [{\n type: Input\n }], selectEvent: [{\n type: Output,\n args: ['select']\n }], activeChangeEvent: [{\n type: Output,\n args: ['activeChange']\n }], id: [{\n type: Input\n }], results: [{\n type: Input\n }], term: [{\n type: Input\n }], resultTemplate: [{\n type: Input\n }] }); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/** @type {?} */\nconst ARIA_LIVE_DELAY = new InjectionToken('live announcer delay', { providedIn: 'root', factory: ARIA_LIVE_DELAY_FACTORY });\n/**\n * @return {?}\n */\nfunction ARIA_LIVE_DELAY_FACTORY() {\n return 100;\n}\n/**\n * @param {?} document\n * @param {?=} lazyCreate\n * @return {?}\n */\nfunction getLiveElement(document, lazyCreate = false) {\n /** @type {?} */\n let element = (/** @type {?} */ (document.body.querySelector('#ngb-live')));\n if (element == null && lazyCreate) {\n element = document.createElement('div');\n element.setAttribute('id', 'ngb-live');\n element.setAttribute('aria-live', 'polite');\n element.setAttribute('aria-atomic', 'true');\n element.classList.add('sr-only');\n document.body.appendChild(element);\n }\n return element;\n}\nclass Live {\n /**\n * @param {?} _document\n * @param {?} _delay\n */\n constructor(_document, _delay) {\n this._document = _document;\n this._delay = _delay;\n }\n /**\n * @return {?}\n */\n ngOnDestroy() {\n /** @type {?} */\n const element = getLiveElement(this._document);\n if (element) {\n element.parentElement.removeChild(element);\n }\n }\n /**\n * @param {?} message\n * @return {?}\n */\n say(message) {\n /** @type {?} */\n const element = getLiveElement(this._document, true);\n /** @type {?} */\n const delay$$1 = this._delay;\n element.textContent = '';\n /** @type {?} */\n const setText = () => element.textContent = message;\n if (delay$$1 === null) {\n setText();\n }\n else {\n setTimeout(setText, delay$$1);\n }\n }\n}\nLive.ɵfac = function Live_Factory(t) { return new (t || Live)(ɵngcc0.ɵɵinject(DOCUMENT), ɵngcc0.ɵɵinject(ARIA_LIVE_DELAY)); };\nLive.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: Live, factory: Live.ɵfac, providedIn: 'root' });\n/** @nocollapse */\nLive.ctorParameters = () => [\n { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },\n { type: undefined, decorators: [{ type: Inject, args: [ARIA_LIVE_DELAY,] }] }\n];\n/** @nocollapse */ Live.ngInjectableDef = defineInjectable({ factory: function Live_Factory() { return new Live(inject(DOCUMENT), inject(ARIA_LIVE_DELAY)); }, token: Live, providedIn: \"root\" });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(Live, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: undefined, decorators: [{\n type: Inject,\n args: [ARIA_LIVE_DELAY]\n }] }]; }, null); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/**\n * A configuration service for the [`NgbTypeahead`](#/components/typeahead/api#NgbTypeahead) component.\n *\n * You can inject this service, typically in your root component, and customize the values of its properties in\n * order to provide default values for all the typeaheads used in the application.\n */\nclass NgbTypeaheadConfig {\n constructor() {\n this.editable = true;\n this.focusFirst = true;\n this.showHint = false;\n this.placement = ['bottom-left', 'bottom-right', 'top-left', 'top-right'];\n }\n}\nNgbTypeaheadConfig.ɵfac = function NgbTypeaheadConfig_Factory(t) { return new (t || NgbTypeaheadConfig)(); };\nNgbTypeaheadConfig.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: NgbTypeaheadConfig, factory: NgbTypeaheadConfig.ɵfac, providedIn: 'root' });\n/** @nocollapse */ NgbTypeaheadConfig.ngInjectableDef = defineInjectable({ factory: function NgbTypeaheadConfig_Factory() { return new NgbTypeaheadConfig(); }, token: NgbTypeaheadConfig, providedIn: \"root\" });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbTypeaheadConfig, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () { return []; }, null); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/** @type {?} */\nconst NGB_TYPEAHEAD_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NgbTypeahead),\n multi: true\n};\n/** @type {?} */\nlet nextWindowId = 0;\n/**\n * A directive providing a simple way of creating powerful typeaheads from any text input.\n */\nclass NgbTypeahead {\n /**\n * @param {?} _elementRef\n * @param {?} _viewContainerRef\n * @param {?} _renderer\n * @param {?} _injector\n * @param {?} componentFactoryResolver\n * @param {?} config\n * @param {?} ngZone\n * @param {?} _live\n * @param {?} _document\n * @param {?} _ngZone\n * @param {?} _changeDetector\n * @param {?} _applicationRef\n */\n constructor(_elementRef, _viewContainerRef, _renderer, _injector, componentFactoryResolver, config, ngZone, _live, _document, _ngZone, _changeDetector, _applicationRef) {\n this._elementRef = _elementRef;\n this._viewContainerRef = _viewContainerRef;\n this._renderer = _renderer;\n this._injector = _injector;\n this._live = _live;\n this._document = _document;\n this._ngZone = _ngZone;\n this._changeDetector = _changeDetector;\n this._applicationRef = _applicationRef;\n this._closed$ = new Subject();\n /**\n * The value for the `autocomplete` attribute for the `` element.\n *\n * Defaults to `\"off\"` to disable the native browser autocomplete, but you can override it if necessary.\n *\n * \\@since 2.1.0\n */\n this.autocomplete = 'off';\n /**\n * The preferred placement of the typeahead.\n *\n * Possible values are `\"top\"`, `\"top-left\"`, `\"top-right\"`, `\"bottom\"`, `\"bottom-left\"`,\n * `\"bottom-right\"`, `\"left\"`, `\"left-top\"`, `\"left-bottom\"`, `\"right\"`, `\"right-top\"`,\n * `\"right-bottom\"`\n *\n * Accepts an array of strings or a string with space separated possible values.\n *\n * The default order of preference is `\"bottom-left bottom-right top-left top-right\"`\n *\n * Please see the [positioning overview](#/positioning) for more details.\n */\n this.placement = 'bottom-left';\n /**\n * An event emitted right before an item is selected from the result list.\n *\n * Event payload is of type [`NgbTypeaheadSelectItemEvent`](#/components/typeahead/api#NgbTypeaheadSelectItemEvent).\n */\n this.selectItem = new EventEmitter();\n this.popupId = `ngb-typeahead-${nextWindowId++}`;\n this._onTouched = () => { };\n this._onChange = (_) => { };\n this.container = config.container;\n this.editable = config.editable;\n this.focusFirst = config.focusFirst;\n this.showHint = config.showHint;\n this.placement = config.placement;\n this._valueChanges = fromEvent(_elementRef.nativeElement, 'input')\n .pipe(map($event => ((/** @type {?} */ ($event.target))).value));\n this._resubscribeTypeahead = new BehaviorSubject(null);\n this._popupService = new PopupService(NgbTypeaheadWindow, _injector, _viewContainerRef, _renderer, componentFactoryResolver, _applicationRef);\n this._zoneSubscription = ngZone.onStable.subscribe(() => {\n if (this.isPopupOpen()) {\n positionElements(this._elementRef.nativeElement, this._windowRef.location.nativeElement, this.placement, this.container === 'body');\n }\n });\n }\n /**\n * @return {?}\n */\n ngOnInit() {\n /** @type {?} */\n const inputValues$ = this._valueChanges.pipe(tap(value => {\n this._inputValueBackup = this.showHint ? value : null;\n if (this.editable) {\n this._onChange(value);\n }\n }));\n /** @type {?} */\n const results$ = inputValues$.pipe(this.ngbTypeahead);\n /** @type {?} */\n const processedResults$ = results$.pipe(tap(() => {\n if (!this.editable) {\n this._onChange(undefined);\n }\n }));\n /** @type {?} */\n const userInput$ = this._resubscribeTypeahead.pipe(switchMap(() => processedResults$));\n this._subscription = this._subscribeToUserInput(userInput$);\n }\n /**\n * @return {?}\n */\n ngOnDestroy() {\n this._closePopup();\n this._unsubscribeFromUserInput();\n this._zoneSubscription.unsubscribe();\n }\n /**\n * @param {?} fn\n * @return {?}\n */\n registerOnChange(fn) { this._onChange = fn; }\n /**\n * @param {?} fn\n * @return {?}\n */\n registerOnTouched(fn) { this._onTouched = fn; }\n /**\n * @param {?} value\n * @return {?}\n */\n writeValue(value) {\n this._writeInputValue(this._formatItemForInput(value));\n if (this.showHint) {\n this._inputValueBackup = value;\n }\n }\n /**\n * @param {?} isDisabled\n * @return {?}\n */\n setDisabledState(isDisabled) {\n this._renderer.setProperty(this._elementRef.nativeElement, 'disabled', isDisabled);\n }\n /**\n * Dismisses typeahead popup window\n * @return {?}\n */\n dismissPopup() {\n if (this.isPopupOpen()) {\n this._resubscribeTypeahead.next(null);\n this._closePopup();\n if (this.showHint && this._inputValueBackup !== null) {\n this._writeInputValue(this._inputValueBackup);\n }\n this._changeDetector.markForCheck();\n }\n }\n /**\n * Returns true if the typeahead popup window is displayed\n * @return {?}\n */\n isPopupOpen() { return this._windowRef != null; }\n /**\n * @return {?}\n */\n handleBlur() {\n this._resubscribeTypeahead.next(null);\n this._onTouched();\n }\n /**\n * @param {?} event\n * @return {?}\n */\n handleKeyDown(event) {\n if (!this.isPopupOpen()) {\n return;\n }\n // tslint:disable-next-line:deprecation\n switch (event.which) {\n case Key.ArrowDown:\n event.preventDefault();\n this._windowRef.instance.next();\n this._showHint();\n break;\n case Key.ArrowUp:\n event.preventDefault();\n this._windowRef.instance.prev();\n this._showHint();\n break;\n case Key.Enter:\n case Key.Tab:\n /** @type {?} */\n const result = this._windowRef.instance.getActive();\n if (isDefined(result)) {\n event.preventDefault();\n event.stopPropagation();\n this._selectResult(result);\n }\n this._closePopup();\n break;\n }\n }\n /**\n * @return {?}\n */\n _openPopup() {\n if (!this.isPopupOpen()) {\n this._inputValueBackup = this._elementRef.nativeElement.value;\n this._windowRef = this._popupService.open();\n this._windowRef.instance.id = this.popupId;\n this._windowRef.instance.selectEvent.subscribe((result) => this._selectResultClosePopup(result));\n this._windowRef.instance.activeChangeEvent.subscribe((activeId) => this.activeDescendant = activeId);\n if (this.container === 'body') {\n window.document.querySelector(this.container).appendChild(this._windowRef.location.nativeElement);\n }\n this._changeDetector.markForCheck();\n ngbAutoClose(this._ngZone, this._document, 'outside', () => this.dismissPopup(), this._closed$, [this._elementRef.nativeElement, this._windowRef.location.nativeElement]);\n }\n }\n /**\n * @return {?}\n */\n _closePopup() {\n this._closed$.next();\n this._popupService.close();\n this._windowRef = null;\n this.activeDescendant = undefined;\n }\n /**\n * @param {?} result\n * @return {?}\n */\n _selectResult(result) {\n /** @type {?} */\n let defaultPrevented = false;\n this.selectItem.emit({ item: result, preventDefault: () => { defaultPrevented = true; } });\n this._resubscribeTypeahead.next(null);\n if (!defaultPrevented) {\n this.writeValue(result);\n this._onChange(result);\n }\n }\n /**\n * @param {?} result\n * @return {?}\n */\n _selectResultClosePopup(result) {\n this._selectResult(result);\n this._closePopup();\n }\n /**\n * @return {?}\n */\n _showHint() {\n if (this.showHint && this._windowRef.instance.hasActive() && this._inputValueBackup != null) {\n /** @type {?} */\n const userInputLowerCase = this._inputValueBackup.toLowerCase();\n /** @type {?} */\n const formattedVal = this._formatItemForInput(this._windowRef.instance.getActive());\n if (userInputLowerCase === formattedVal.substr(0, this._inputValueBackup.length).toLowerCase()) {\n this._writeInputValue(this._inputValueBackup + formattedVal.substr(this._inputValueBackup.length));\n this._elementRef.nativeElement['setSelectionRange'].apply(this._elementRef.nativeElement, [this._inputValueBackup.length, formattedVal.length]);\n }\n else {\n this._writeInputValue(formattedVal);\n }\n }\n }\n /**\n * @param {?} item\n * @return {?}\n */\n _formatItemForInput(item) {\n return item != null && this.inputFormatter ? this.inputFormatter(item) : toString(item);\n }\n /**\n * @param {?} value\n * @return {?}\n */\n _writeInputValue(value) {\n this._renderer.setProperty(this._elementRef.nativeElement, 'value', toString(value));\n }\n /**\n * @param {?} userInput$\n * @return {?}\n */\n _subscribeToUserInput(userInput$) {\n return userInput$.subscribe((results) => {\n if (!results || results.length === 0) {\n this._closePopup();\n }\n else {\n this._openPopup();\n this._windowRef.instance.focusFirst = this.focusFirst;\n this._windowRef.instance.results = results;\n this._windowRef.instance.term = this._elementRef.nativeElement.value;\n if (this.resultFormatter) {\n this._windowRef.instance.formatter = this.resultFormatter;\n }\n if (this.resultTemplate) {\n this._windowRef.instance.resultTemplate = this.resultTemplate;\n }\n this._windowRef.instance.resetActive();\n // The observable stream we are subscribing to might have async steps\n // and if a component containing typeahead is using the OnPush strategy\n // the change detection turn wouldn't be invoked automatically.\n this._windowRef.changeDetectorRef.detectChanges();\n this._showHint();\n }\n // live announcer\n /** @type {?} */\n const count = results ? results.length : 0;\n this._live.say(count === 0 ? 'No results available' : `${count} result${count === 1 ? '' : 's'} available`);\n });\n }\n /**\n * @return {?}\n */\n _unsubscribeFromUserInput() {\n if (this._subscription) {\n this._subscription.unsubscribe();\n }\n this._subscription = null;\n }\n}\nNgbTypeahead.ɵfac = function NgbTypeahead_Factory(t) { return new (t || NgbTypeahead)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ViewContainerRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Injector), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ComponentFactoryResolver), ɵngcc0.ɵɵdirectiveInject(NgbTypeaheadConfig), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(Live), ɵngcc0.ɵɵdirectiveInject(DOCUMENT), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ApplicationRef)); };\nNgbTypeahead.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: NgbTypeahead, selectors: [[\"input\", \"ngbTypeahead\", \"\"]], hostAttrs: [\"autocapitalize\", \"off\", \"autocorrect\", \"off\", \"role\", \"combobox\", \"aria-multiline\", \"false\"], hostVars: 7, hostBindings: function NgbTypeahead_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"blur\", function NgbTypeahead_blur_HostBindingHandler() { return ctx.handleBlur(); })(\"keydown\", function NgbTypeahead_keydown_HostBindingHandler($event) { return ctx.handleKeyDown($event); });\n } if (rf & 2) {\n ɵngcc0.ɵɵhostProperty(\"autocomplete\", ctx.autocomplete);\n ɵngcc0.ɵɵattribute(\"aria-autocomplete\", ctx.showHint ? \"both\" : \"list\")(\"aria-activedescendant\", ctx.activeDescendant)(\"aria-owns\", ctx.isPopupOpen() ? ctx.popupId : null)(\"aria-expanded\", ctx.isPopupOpen());\n ɵngcc0.ɵɵclassProp(\"open\", ctx.isPopupOpen());\n } }, inputs: { autocomplete: \"autocomplete\", placement: \"placement\", container: \"container\", editable: \"editable\", focusFirst: \"focusFirst\", showHint: \"showHint\", inputFormatter: \"inputFormatter\", ngbTypeahead: \"ngbTypeahead\", resultFormatter: \"resultFormatter\", resultTemplate: \"resultTemplate\" }, outputs: { selectItem: \"selectItem\" }, exportAs: [\"ngbTypeahead\"], features: [ɵngcc0.ɵɵProvidersFeature([NGB_TYPEAHEAD_VALUE_ACCESSOR])] });\n/** @nocollapse */\nNgbTypeahead.ctorParameters = () => [\n { type: ElementRef },\n { type: ViewContainerRef },\n { type: Renderer2 },\n { type: Injector },\n { type: ComponentFactoryResolver },\n { type: NgbTypeaheadConfig },\n { type: NgZone },\n { type: Live },\n { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },\n { type: NgZone },\n { type: ChangeDetectorRef },\n { type: ApplicationRef }\n];\nNgbTypeahead.propDecorators = {\n autocomplete: [{ type: Input }],\n container: [{ type: Input }],\n editable: [{ type: Input }],\n focusFirst: [{ type: Input }],\n inputFormatter: [{ type: Input }],\n ngbTypeahead: [{ type: Input }],\n resultFormatter: [{ type: Input }],\n resultTemplate: [{ type: Input }],\n showHint: [{ type: Input }],\n placement: [{ type: Input }],\n selectItem: [{ type: Output }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbTypeahead, [{\n type: Directive,\n args: [{\n selector: 'input[ngbTypeahead]',\n exportAs: 'ngbTypeahead',\n host: {\n '(blur)': 'handleBlur()',\n '[class.open]': 'isPopupOpen()',\n '(keydown)': 'handleKeyDown($event)',\n '[autocomplete]': 'autocomplete',\n 'autocapitalize': 'off',\n 'autocorrect': 'off',\n 'role': 'combobox',\n 'aria-multiline': 'false',\n '[attr.aria-autocomplete]': 'showHint ? \"both\" : \"list\"',\n '[attr.aria-activedescendant]': 'activeDescendant',\n '[attr.aria-owns]': 'isPopupOpen() ? popupId : null',\n '[attr.aria-expanded]': 'isPopupOpen()'\n },\n providers: [NGB_TYPEAHEAD_VALUE_ACCESSOR]\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.ViewContainerRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc0.Injector }, { type: ɵngcc0.ComponentFactoryResolver }, { type: NgbTypeaheadConfig }, { type: ɵngcc0.NgZone }, { type: Live }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc0.ApplicationRef }]; }, { autocomplete: [{\n type: Input\n }], placement: [{\n type: Input\n }], selectItem: [{\n type: Output\n }], container: [{\n type: Input\n }], editable: [{\n type: Input\n }], focusFirst: [{\n type: Input\n }], showHint: [{\n type: Input\n }], inputFormatter: [{\n type: Input\n }], ngbTypeahead: [{\n type: Input\n }], resultFormatter: [{\n type: Input\n }], resultTemplate: [{\n type: Input\n }] }); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\nclass NgbTypeaheadModule {\n /**\n * Importing with '.forRoot()' is no longer necessary, you can simply import the module.\n * Will be removed in 4.0.0.\n *\n * @deprecated 3.0.0\n * @return {?}\n */\n static forRoot() { return { ngModule: NgbTypeaheadModule }; }\n}\nNgbTypeaheadModule.ɵfac = function NgbTypeaheadModule_Factory(t) { return new (t || NgbTypeaheadModule)(); };\nNgbTypeaheadModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgbTypeaheadModule });\nNgbTypeaheadModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [CommonModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbTypeaheadModule, [{\n type: NgModule,\n args: [{\n declarations: [NgbTypeahead, NgbHighlight, NgbTypeaheadWindow],\n exports: [NgbTypeahead, NgbHighlight],\n imports: [CommonModule],\n entryComponents: [NgbTypeaheadWindow]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbTypeaheadModule, { declarations: function () { return [NgbTypeahead, NgbHighlight, NgbTypeaheadWindow]; }, imports: function () { return [CommonModule]; }, exports: function () { return [NgbTypeahead, NgbHighlight]; } }); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n/** @type {?} */\nconst NGB_MODULES = [\n NgbAccordionModule, NgbAlertModule, NgbButtonsModule, NgbCarouselModule, NgbCollapseModule, NgbDatepickerModule,\n NgbDropdownModule, NgbModalModule, NgbPaginationModule, NgbPopoverModule, NgbProgressbarModule, NgbRatingModule,\n NgbTabsetModule, NgbTimepickerModule, NgbTooltipModule, NgbTypeaheadModule\n];\nclass NgbModule {\n /**\n * Importing with '.forRoot()' is no longer necessary, you can simply import the module.\n * Will be removed in 4.0.0.\n *\n * @deprecated 3.0.0\n * @return {?}\n */\n static forRoot() { return { ngModule: NgbModule }; }\n}\nNgbModule.ɵfac = function NgbModule_Factory(t) { return new (t || NgbModule)(); };\nNgbModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgbModule });\nNgbModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ imports: [NGB_MODULES, NgbAccordionModule, NgbAlertModule, NgbButtonsModule, NgbCarouselModule, NgbCollapseModule, NgbDatepickerModule, NgbDropdownModule, NgbModalModule, NgbPaginationModule, NgbPopoverModule, NgbProgressbarModule, NgbRatingModule, NgbTabsetModule, NgbTimepickerModule, NgbTooltipModule, NgbTypeaheadModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgbModule, [{\n type: NgModule,\n args: [{ imports: NGB_MODULES, exports: NGB_MODULES }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgbModule, { imports: [NgbAccordionModule, NgbAlertModule, NgbButtonsModule, NgbCarouselModule, NgbCollapseModule, NgbDatepickerModule, NgbDropdownModule, NgbModalModule, NgbPaginationModule, NgbPopoverModule, NgbProgressbarModule, NgbRatingModule, NgbTabsetModule, NgbTimepickerModule, NgbTooltipModule, NgbTypeaheadModule], exports: [NgbAccordionModule, NgbAlertModule, NgbButtonsModule, NgbCarouselModule, NgbCollapseModule, NgbDatepickerModule, NgbDropdownModule, NgbModalModule, NgbPaginationModule, NgbPopoverModule, NgbProgressbarModule, NgbRatingModule, NgbTabsetModule, NgbTimepickerModule, NgbTooltipModule, NgbTypeaheadModule] }); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc\n */\n\nexport { NgbAccordionModule, NgbAccordionConfig, NgbAccordion, NgbPanel, NgbPanelTitle, NgbPanelContent, NgbPanelHeader, NgbPanelToggle, NgbAlertModule, NgbAlertConfig, NgbAlert, NgbButtonsModule, NgbButtonLabel, NgbCheckBox, NgbRadio, NgbRadioGroup, NgbCarouselModule, NgbCarouselConfig, NgbCarousel, NgbSlide, NgbCollapseModule, NgbCollapse, NgbCalendar, NgbCalendarGregorian, NgbCalendarIslamicCivil, NgbCalendarIslamicUmalqura, NgbCalendarHebrew, NgbCalendarPersian, NgbDatepickerModule, NgbDatepickerI18n, NgbDatepickerI18nHebrew, NgbDatepickerConfig, NgbDate, NgbDateParserFormatter, NgbDateAdapter, NgbDateNativeAdapter, NgbDateNativeUTCAdapter, NgbDatepicker, NgbInputDatepicker, NgbDropdownModule, NgbDropdownAnchor, NgbDropdownConfig, NgbDropdownItem, NgbDropdownMenu, NgbDropdownToggle, NgbDropdown, NgbModalModule, NgbModal, NgbModalConfig, NgbActiveModal, NgbModalRef, ModalDismissReasons, NgbPaginationModule, NgbPaginationConfig, NgbPagination, NgbPaginationEllipsis, NgbPaginationFirst, NgbPaginationLast, NgbPaginationNext, NgbPaginationNumber, NgbPaginationPrevious, NgbPopoverModule, NgbPopoverConfig, NgbPopover, NgbProgressbarModule, NgbProgressbarConfig, NgbProgressbar, NgbRatingModule, NgbRatingConfig, NgbRating, NgbTabsetModule, NgbTabsetConfig, NgbTabset, NgbTab, NgbTabContent, NgbTabTitle, NgbTimepickerModule, NgbTimepickerConfig, NgbTimepicker, NgbTimeAdapter, NgbTooltipModule, NgbTooltipConfig, NgbTooltip, NgbHighlight, NgbTypeaheadModule, NgbTypeaheadConfig, NgbTypeahead, NgbModule, NGB_CAROUSEL_DIRECTIVES as ɵa, NGB_DATEPICKER_DATE_ADAPTER_FACTORY as ɵi, NgbDateStructAdapter as ɵj, NgbDatepickerDayView as ɵd, NGB_DATEPICKER_18N_FACTORY as ɵg, NgbDatepickerI18nDefault as ɵh, NgbDatepickerKeyMapService as ɵt, NgbDatepickerMonthView as ɵc, NgbDatepickerNavigation as ɵe, NgbDatepickerNavigationSelect as ɵf, NgbDatepickerService as ɵs, NgbCalendarHijri as ɵbb, NGB_DATEPICKER_CALENDAR_FACTORY as ɵb, NGB_DATEPICKER_PARSER_FORMATTER_FACTORY as ɵk, NgbDateISOParserFormatter as ɵl, NgbNavbar as ɵm, NgbModalBackdrop as ɵu, NgbModalStack as ɵw, NgbModalWindow as ɵv, NgbPopoverWindow as ɵn, NGB_DATEPICKER_TIME_ADAPTER_FACTORY as ɵo, NgbTimeStructAdapter as ɵp, NgbTooltipWindow as ɵq, NgbTypeaheadWindow as ɵr, ARIA_LIVE_DELAY as ɵy, ARIA_LIVE_DELAY_FACTORY as ɵz, Live as ɵba, ContentRef as ɵbc, ScrollBar as ɵx };\n\n","import { Injectable, Inject, Directive, TemplateRef, EventEmitter, ElementRef, NgZone, HostBinding, Output, Input, Renderer2, HostListener, KeyValueDiffers, ContentChildren, Component, ChangeDetectionStrategy, ContentChild, ChangeDetectorRef, ViewChild, ViewEncapsulation, SkipSelf, Optional, ViewContainerRef, NgModule } from '@angular/core';\nimport { DOCUMENT, CommonModule } from '@angular/common';\nimport { Subject, fromEvent, BehaviorSubject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { __decorate, __metadata } from 'tslib';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Gets the width of the scrollbar. Nesc for windows\n * http://stackoverflow.com/a/13382873/888165\n */\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from '@angular/common';\n\nconst _c0 = [\"*\"];\nfunction DataTableBodyComponent_datatable_progress_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"datatable-progress\");\n} }\nfunction DataTableBodyComponent_datatable_scroller_3_datatable_summary_row_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"datatable-summary-row\", 9);\n} if (rf & 2) {\n const ctx_r4 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"rowHeight\", ctx_r4.summaryHeight)(\"offsetX\", ctx_r4.offsetX)(\"innerWidth\", ctx_r4.innerWidth)(\"rows\", ctx_r4.rows)(\"columns\", ctx_r4.columns);\n} }\nfunction DataTableBodyComponent_datatable_scroller_3_datatable_row_wrapper_2_datatable_body_row_1_Template(rf, ctx) { if (rf & 1) {\n const _r14 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"datatable-body-row\", 13);\n ɵngcc0.ɵɵlistener(\"treeAction\", function DataTableBodyComponent_datatable_scroller_3_datatable_row_wrapper_2_datatable_body_row_1_Template_datatable_body_row_treeAction_0_listener() { ɵngcc0.ɵɵrestoreView(_r14); const group_r7 = ɵngcc0.ɵɵnextContext().$implicit; const ctx_r12 = ɵngcc0.ɵɵnextContext(2); return ɵngcc0.ɵɵresetView(ctx_r12.onTreeAction(group_r7)); })(\"activate\", function DataTableBodyComponent_datatable_scroller_3_datatable_row_wrapper_2_datatable_body_row_1_Template_datatable_body_row_activate_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r14); const i_r8 = ɵngcc0.ɵɵnextContext().index; const ctx_r15 = ɵngcc0.ɵɵnextContext(2); const _r0 = ɵngcc0.ɵɵreference(1); return ɵngcc0.ɵɵresetView(_r0.onActivate($event, ctx_r15.indexes.first + i_r8)); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const group_r7 = ɵngcc0.ɵɵnextContext().$implicit;\n const ctx_r9 = ɵngcc0.ɵɵnextContext(2);\n const _r0 = ɵngcc0.ɵɵreference(1);\n ɵngcc0.ɵɵproperty(\"isSelected\", _r0.getRowSelected(group_r7))(\"innerWidth\", ctx_r9.innerWidth)(\"offsetX\", ctx_r9.offsetX)(\"columns\", ctx_r9.columns)(\"rowHeight\", ctx_r9.getRowHeight(group_r7))(\"row\", group_r7)(\"rowIndex\", ctx_r9.getRowIndex(group_r7))(\"expanded\", ctx_r9.getRowExpanded(group_r7))(\"rowClass\", ctx_r9.rowClass)(\"displayCheck\", ctx_r9.displayCheck)(\"treeStatus\", group_r7.treeStatus);\n} }\nfunction DataTableBodyComponent_datatable_scroller_3_datatable_row_wrapper_2_ng_template_2_datatable_body_row_0_Template(rf, ctx) { if (rf & 1) {\n const _r22 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"datatable-body-row\", 15);\n ɵngcc0.ɵɵlistener(\"activate\", function DataTableBodyComponent_datatable_scroller_3_datatable_row_wrapper_2_ng_template_2_datatable_body_row_0_Template_datatable_body_row_activate_0_listener($event) { const restoredCtx = ɵngcc0.ɵɵrestoreView(_r22); const i_r20 = restoredCtx.index; ɵngcc0.ɵɵnextContext(4); const _r0 = ɵngcc0.ɵɵreference(1); return ɵngcc0.ɵɵresetView(_r0.onActivate($event, i_r20)); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const row_r19 = ctx.$implicit;\n const group_r7 = ɵngcc0.ɵɵnextContext(2).$implicit;\n const ctx_r18 = ɵngcc0.ɵɵnextContext(2);\n const _r0 = ɵngcc0.ɵɵreference(1);\n ɵngcc0.ɵɵproperty(\"isSelected\", _r0.getRowSelected(row_r19))(\"innerWidth\", ctx_r18.innerWidth)(\"offsetX\", ctx_r18.offsetX)(\"columns\", ctx_r18.columns)(\"rowHeight\", ctx_r18.getRowHeight(row_r19))(\"row\", row_r19)(\"group\", group_r7.value)(\"rowIndex\", ctx_r18.getRowIndex(row_r19))(\"expanded\", ctx_r18.getRowExpanded(row_r19))(\"rowClass\", ctx_r18.rowClass);\n} }\nfunction DataTableBodyComponent_datatable_scroller_3_datatable_row_wrapper_2_ng_template_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, DataTableBodyComponent_datatable_scroller_3_datatable_row_wrapper_2_ng_template_2_datatable_body_row_0_Template, 1, 10, \"datatable-body-row\", 14);\n} if (rf & 2) {\n const group_r7 = ɵngcc0.ɵɵnextContext().$implicit;\n const ctx_r11 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"ngForOf\", group_r7.value)(\"ngForTrackBy\", ctx_r11.rowTrackingFn);\n} }\nfunction DataTableBodyComponent_datatable_scroller_3_datatable_row_wrapper_2_Template(rf, ctx) { if (rf & 1) {\n const _r26 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"datatable-row-wrapper\", 10);\n ɵngcc0.ɵɵlistener(\"rowContextmenu\", function DataTableBodyComponent_datatable_scroller_3_datatable_row_wrapper_2_Template_datatable_row_wrapper_rowContextmenu_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r26); const ctx_r25 = ɵngcc0.ɵɵnextContext(2); return ɵngcc0.ɵɵresetView(ctx_r25.rowContextmenu.emit($event)); });\n ɵngcc0.ɵɵtemplate(1, DataTableBodyComponent_datatable_scroller_3_datatable_row_wrapper_2_datatable_body_row_1_Template, 1, 11, \"datatable-body-row\", 11);\n ɵngcc0.ɵɵtemplate(2, DataTableBodyComponent_datatable_scroller_3_datatable_row_wrapper_2_ng_template_2_Template, 1, 2, \"ng-template\", null, 12, ɵngcc0.ɵɵtemplateRefExtractor);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const group_r7 = ctx.$implicit;\n const i_r8 = ctx.index;\n const _r10 = ɵngcc0.ɵɵreference(3);\n const ctx_r5 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"groupedRows\", ctx_r5.groupedRows)(\"innerWidth\", ctx_r5.innerWidth)(\"ngStyle\", ctx_r5.getRowsStyles(group_r7))(\"rowDetail\", ctx_r5.rowDetail)(\"groupHeader\", ctx_r5.groupHeader)(\"offsetX\", ctx_r5.offsetX)(\"detailRowHeight\", ctx_r5.getDetailRowHeight(group_r7[i_r8], i_r8))(\"row\", group_r7)(\"expanded\", ctx_r5.getRowExpanded(group_r7))(\"rowIndex\", ctx_r5.getRowIndex(group_r7[i_r8]));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r5.groupedRows)(\"ngIfElse\", _r10);\n} }\nfunction DataTableBodyComponent_datatable_scroller_3_datatable_summary_row_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"datatable-summary-row\", 16);\n} if (rf & 2) {\n const ctx_r6 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"ngStyle\", ctx_r6.getBottomSummaryRowStyles())(\"rowHeight\", ctx_r6.summaryHeight)(\"offsetX\", ctx_r6.offsetX)(\"innerWidth\", ctx_r6.innerWidth)(\"rows\", ctx_r6.rows)(\"columns\", ctx_r6.columns);\n} }\nfunction DataTableBodyComponent_datatable_scroller_3_Template(rf, ctx) { if (rf & 1) {\n const _r28 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"datatable-scroller\", 5);\n ɵngcc0.ɵɵlistener(\"scroll\", function DataTableBodyComponent_datatable_scroller_3_Template_datatable_scroller_scroll_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r28); const ctx_r27 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r27.onBodyScroll($event)); });\n ɵngcc0.ɵɵtemplate(1, DataTableBodyComponent_datatable_scroller_3_datatable_summary_row_1_Template, 1, 5, \"datatable-summary-row\", 6);\n ɵngcc0.ɵɵtemplate(2, DataTableBodyComponent_datatable_scroller_3_datatable_row_wrapper_2_Template, 4, 12, \"datatable-row-wrapper\", 7);\n ɵngcc0.ɵɵtemplate(3, DataTableBodyComponent_datatable_scroller_3_datatable_summary_row_3_Template, 1, 6, \"datatable-summary-row\", 8);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"scrollbarV\", ctx_r2.scrollbarV)(\"scrollbarH\", ctx_r2.scrollbarH)(\"scrollHeight\", ctx_r2.scrollHeight)(\"scrollWidth\", ctx_r2.columnGroupWidths == null ? null : ctx_r2.columnGroupWidths.total);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r2.summaryRow && ctx_r2.summaryPosition === \"top\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx_r2.temp)(\"ngForTrackBy\", ctx_r2.rowTrackingFn);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r2.summaryRow && ctx_r2.summaryPosition === \"bottom\");\n} }\nfunction DataTableBodyComponent_div_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"div\", 17);\n} if (rf & 2) {\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"innerHTML\", ctx_r3.emptyMessage, ɵngcc0.ɵɵsanitizeHtml);\n} }\nfunction DataTableHeaderComponent_div_1_datatable_header_cell_1_Template(rf, ctx) { if (rf & 1) {\n const _r5 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"datatable-header-cell\", 4);\n ɵngcc0.ɵɵlistener(\"resize\", function DataTableHeaderComponent_div_1_datatable_header_cell_1_Template_datatable_header_cell_resize_0_listener($event) { const restoredCtx = ɵngcc0.ɵɵrestoreView(_r5); const column_r3 = restoredCtx.$implicit; const ctx_r4 = ɵngcc0.ɵɵnextContext(2); return ɵngcc0.ɵɵresetView(ctx_r4.onColumnResized($event, column_r3)); })(\"longPressStart\", function DataTableHeaderComponent_div_1_datatable_header_cell_1_Template_datatable_header_cell_longPressStart_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r5); const ctx_r6 = ɵngcc0.ɵɵnextContext(2); return ɵngcc0.ɵɵresetView(ctx_r6.onLongPressStart($event)); })(\"longPressEnd\", function DataTableHeaderComponent_div_1_datatable_header_cell_1_Template_datatable_header_cell_longPressEnd_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r5); const ctx_r7 = ɵngcc0.ɵɵnextContext(2); return ɵngcc0.ɵɵresetView(ctx_r7.onLongPressEnd($event)); })(\"sort\", function DataTableHeaderComponent_div_1_datatable_header_cell_1_Template_datatable_header_cell_sort_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r5); const ctx_r8 = ɵngcc0.ɵɵnextContext(2); return ɵngcc0.ɵɵresetView(ctx_r8.onSort($event)); })(\"select\", function DataTableHeaderComponent_div_1_datatable_header_cell_1_Template_datatable_header_cell_select_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r5); const ctx_r9 = ɵngcc0.ɵɵnextContext(2); return ɵngcc0.ɵɵresetView(ctx_r9.select.emit($event)); })(\"columnContextmenu\", function DataTableHeaderComponent_div_1_datatable_header_cell_1_Template_datatable_header_cell_columnContextmenu_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r5); const ctx_r10 = ɵngcc0.ɵɵnextContext(2); return ɵngcc0.ɵɵresetView(ctx_r10.columnContextmenu.emit($event)); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const column_r3 = ctx.$implicit;\n const ctx_r2 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"resizeEnabled\", column_r3.resizeable)(\"pressModel\", column_r3)(\"pressEnabled\", ctx_r2.reorderable && column_r3.draggable)(\"dragX\", ctx_r2.reorderable && column_r3.draggable && column_r3.dragging)(\"dragY\", false)(\"dragModel\", column_r3)(\"dragEventTarget\", ctx_r2.dragEventTarget)(\"headerHeight\", ctx_r2.headerHeight)(\"isTarget\", column_r3.isTarget)(\"targetMarkerTemplate\", ctx_r2.targetMarkerTemplate)(\"targetMarkerContext\", column_r3.targetMarkerContext)(\"column\", column_r3)(\"sortType\", ctx_r2.sortType)(\"sorts\", ctx_r2.sorts)(\"selectionType\", ctx_r2.selectionType)(\"sortAscendingIcon\", ctx_r2.sortAscendingIcon)(\"sortDescendingIcon\", ctx_r2.sortDescendingIcon)(\"allRowsSelected\", ctx_r2.allRowsSelected);\n} }\nfunction DataTableHeaderComponent_div_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 2);\n ɵngcc0.ɵɵtemplate(1, DataTableHeaderComponent_div_1_datatable_header_cell_1_Template, 1, 18, \"datatable-header-cell\", 3);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const colGroup_r1 = ctx.$implicit;\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵclassMap(\"datatable-row-\" + colGroup_r1.type);\n ɵngcc0.ɵɵproperty(\"ngStyle\", ctx_r0._styleByGroup[colGroup_r1.type]);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", colGroup_r1.columns)(\"ngForTrackBy\", ctx_r0.columnTrackingFn);\n} }\nfunction DatatableComponent_datatable_header_1_Template(rf, ctx) { if (rf & 1) {\n const _r3 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"datatable-header\", 4);\n ɵngcc0.ɵɵlistener(\"sort\", function DatatableComponent_datatable_header_1_Template_datatable_header_sort_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r3); const ctx_r2 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r2.onColumnSort($event)); })(\"resize\", function DatatableComponent_datatable_header_1_Template_datatable_header_resize_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r3); const ctx_r4 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r4.onColumnResize($event)); })(\"reorder\", function DatatableComponent_datatable_header_1_Template_datatable_header_reorder_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r3); const ctx_r5 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r5.onColumnReorder($event)); })(\"select\", function DatatableComponent_datatable_header_1_Template_datatable_header_select_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r3); const ctx_r6 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r6.onHeaderSelect($event)); })(\"columnContextmenu\", function DatatableComponent_datatable_header_1_Template_datatable_header_columnContextmenu_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r3); const ctx_r7 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r7.onColumnContextmenu($event)); });\n ɵngcc0.ɵɵpipe(1, \"async\");\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"sorts\", ctx_r0.sorts)(\"sortType\", ctx_r0.sortType)(\"scrollbarH\", ctx_r0.scrollbarH)(\"innerWidth\", ctx_r0._innerWidth)(\"offsetX\", ɵngcc0.ɵɵpipeBind1(1, 14, ctx_r0._offsetX))(\"dealsWithGroup\", ctx_r0.groupedRows !== undefined)(\"columns\", ctx_r0._internalColumns)(\"headerHeight\", ctx_r0.headerHeight)(\"reorderable\", ctx_r0.reorderable)(\"targetMarkerTemplate\", ctx_r0.targetMarkerTemplate)(\"sortAscendingIcon\", ctx_r0.cssClasses.sortAscending)(\"sortDescendingIcon\", ctx_r0.cssClasses.sortDescending)(\"allRowsSelected\", ctx_r0.allRowsSelected)(\"selectionType\", ctx_r0.selectionType);\n} }\nfunction DatatableComponent_datatable_footer_4_Template(rf, ctx) { if (rf & 1) {\n const _r9 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"datatable-footer\", 5);\n ɵngcc0.ɵɵlistener(\"page\", function DatatableComponent_datatable_footer_4_Template_datatable_footer_page_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r9); const ctx_r8 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r8.onFooterPage($event)); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"rowCount\", ctx_r1.rowCount)(\"pageSize\", ctx_r1.pageSize)(\"offset\", ctx_r1.offset)(\"footerHeight\", ctx_r1.footerHeight)(\"footerTemplate\", ctx_r1.footer)(\"totalMessage\", ctx_r1.messages.totalMessage)(\"pagerLeftArrowIcon\", ctx_r1.cssClasses.pagerLeftArrow)(\"pagerRightArrowIcon\", ctx_r1.cssClasses.pagerRightArrow)(\"pagerPreviousIcon\", ctx_r1.cssClasses.pagerPrevious)(\"selectedCount\", ctx_r1.selected.length)(\"selectedMessage\", !!ctx_r1.selectionType && ctx_r1.messages.selectedMessage)(\"pagerNextIcon\", ctx_r1.cssClasses.pagerNext);\n} }\nfunction DataTableHeaderCellComponent_1_ng_template_0_Template(rf, ctx) { }\nfunction DataTableHeaderCellComponent_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, DataTableHeaderCellComponent_1_ng_template_0_Template, 0, 0, \"ng-template\", 5);\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.targetMarkerTemplate)(\"ngTemplateOutletContext\", ctx_r0.targetMarkerContext);\n} }\nfunction DataTableHeaderCellComponent_label_2_Template(rf, ctx) { if (rf & 1) {\n const _r6 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"label\", 6)(1, \"input\", 7);\n ɵngcc0.ɵɵlistener(\"change\", function DataTableHeaderCellComponent_label_2_Template_input_change_1_listener() { ɵngcc0.ɵɵrestoreView(_r6); const ctx_r5 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r5.select.emit(!ctx_r5.allRowsSelected)); });\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"checked\", ctx_r1.allRowsSelected);\n} }\nfunction DataTableHeaderCellComponent_span_3_Template(rf, ctx) { if (rf & 1) {\n const _r8 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"span\", 8)(1, \"span\", 9);\n ɵngcc0.ɵɵlistener(\"click\", function DataTableHeaderCellComponent_span_3_Template_span_click_1_listener() { ɵngcc0.ɵɵrestoreView(_r8); const ctx_r7 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r7.onSort()); });\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"innerHTML\", ctx_r2.name, ɵngcc0.ɵɵsanitizeHtml);\n} }\nfunction DataTableHeaderCellComponent_4_ng_template_0_Template(rf, ctx) { }\nfunction DataTableHeaderCellComponent_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, DataTableHeaderCellComponent_4_ng_template_0_Template, 0, 0, \"ng-template\", 5);\n} if (rf & 2) {\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r3.column.headerTemplate)(\"ngTemplateOutletContext\", ctx_r3.cellContext);\n} }\nfunction DataTableFooterComponent_1_ng_template_0_Template(rf, ctx) { }\nconst _c1 = function (a0, a1, a2, a3, a4) { return { rowCount: a0, pageSize: a1, selectedCount: a2, curPage: a3, offset: a4 }; };\nfunction DataTableFooterComponent_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, DataTableFooterComponent_1_ng_template_0_Template, 0, 0, \"ng-template\", 4);\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r0.footerTemplate.template)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction5(2, _c1, ctx_r0.rowCount, ctx_r0.pageSize, ctx_r0.selectedCount, ctx_r0.curPage, ctx_r0.offset));\n} }\nfunction DataTableFooterComponent_div_2_span_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"span\");\n ɵngcc0.ɵɵtext(1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r4 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate2(\" \", ctx_r4.selectedCount == null ? null : ctx_r4.selectedCount.toLocaleString(), \" \", ctx_r4.selectedMessage, \" / \");\n} }\nfunction DataTableFooterComponent_div_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 5);\n ɵngcc0.ɵɵtemplate(1, DataTableFooterComponent_div_2_span_1_Template, 2, 2, \"span\", 1);\n ɵngcc0.ɵɵtext(2);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r1.selectedMessage);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵtextInterpolate2(\" \", ctx_r1.rowCount == null ? null : ctx_r1.rowCount.toLocaleString(), \" \", ctx_r1.totalMessage, \" \");\n} }\nfunction DataTableFooterComponent_datatable_pager_3_Template(rf, ctx) { if (rf & 1) {\n const _r6 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"datatable-pager\", 6);\n ɵngcc0.ɵɵlistener(\"change\", function DataTableFooterComponent_datatable_pager_3_Template_datatable_pager_change_0_listener($event) { ɵngcc0.ɵɵrestoreView(_r6); const ctx_r5 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r5.page.emit($event)); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"pagerLeftArrowIcon\", ctx_r2.pagerLeftArrowIcon)(\"pagerRightArrowIcon\", ctx_r2.pagerRightArrowIcon)(\"pagerPreviousIcon\", ctx_r2.pagerPreviousIcon)(\"pagerNextIcon\", ctx_r2.pagerNextIcon)(\"page\", ctx_r2.curPage)(\"size\", ctx_r2.pageSize)(\"count\", ctx_r2.rowCount)(\"hidden\", !ctx_r2.isVisible);\n} }\nconst _c2 = function (a0) { return { \"selected-count\": a0 }; };\nfunction DataTablePagerComponent_li_7_Template(rf, ctx) { if (rf & 1) {\n const _r3 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"li\", 6)(1, \"a\", 7);\n ɵngcc0.ɵɵlistener(\"click\", function DataTablePagerComponent_li_7_Template_a_click_1_listener() { const restoredCtx = ɵngcc0.ɵɵrestoreView(_r3); const pg_r1 = restoredCtx.$implicit; const ctx_r2 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r2.selectPage(pg_r1.number)); });\n ɵngcc0.ɵɵtext(2);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const pg_r1 = ctx.$implicit;\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵclassProp(\"active\", pg_r1.number === ctx_r0.page);\n ɵngcc0.ɵɵattribute(\"aria-label\", \"page \" + pg_r1.number);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵtextInterpolate1(\" \", pg_r1.text, \" \");\n} }\nfunction DataTableBodyRowComponent_div_0_datatable_body_cell_1_Template(rf, ctx) { if (rf & 1) {\n const _r7 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"datatable-body-cell\", 3);\n ɵngcc0.ɵɵlistener(\"activate\", function DataTableBodyRowComponent_div_0_datatable_body_cell_1_Template_datatable_body_cell_activate_0_listener($event) { const restoredCtx = ɵngcc0.ɵɵrestoreView(_r7); const ii_r5 = restoredCtx.index; const ctx_r6 = ɵngcc0.ɵɵnextContext(2); return ɵngcc0.ɵɵresetView(ctx_r6.onActivate($event, ii_r5)); })(\"treeAction\", function DataTableBodyRowComponent_div_0_datatable_body_cell_1_Template_datatable_body_cell_treeAction_0_listener() { ɵngcc0.ɵɵrestoreView(_r7); const ctx_r8 = ɵngcc0.ɵɵnextContext(2); return ɵngcc0.ɵɵresetView(ctx_r8.onTreeAction()); });\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const column_r4 = ctx.$implicit;\n const ctx_r3 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"row\", ctx_r3.row)(\"group\", ctx_r3.group)(\"expanded\", ctx_r3.expanded)(\"isSelected\", ctx_r3.isSelected)(\"rowIndex\", ctx_r3.rowIndex)(\"column\", column_r4)(\"rowHeight\", ctx_r3.rowHeight)(\"displayCheck\", ctx_r3.displayCheck)(\"treeStatus\", ctx_r3.treeStatus);\n} }\nfunction DataTableBodyRowComponent_div_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 1);\n ɵngcc0.ɵɵtemplate(1, DataTableBodyRowComponent_div_0_datatable_body_cell_1_Template, 1, 9, \"datatable-body-cell\", 2);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const colGroup_r1 = ctx.$implicit;\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵclassMapInterpolate1(\"datatable-row-\", colGroup_r1.type, \" datatable-row-group\");\n ɵngcc0.ɵɵproperty(\"ngStyle\", ctx_r0._groupStyles[colGroup_r1.type]);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", colGroup_r1.columns)(\"ngForTrackBy\", ctx_r0.columnTrackingFn);\n} }\nfunction DataTableRowWrapperComponent_div_0_1_ng_template_0_Template(rf, ctx) { }\nfunction DataTableRowWrapperComponent_div_0_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, DataTableRowWrapperComponent_div_0_1_ng_template_0_Template, 0, 0, \"ng-template\", 4);\n} if (rf & 2) {\n const ctx_r3 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r3.groupHeader.template)(\"ngTemplateOutletContext\", ctx_r3.groupContext);\n} }\nfunction DataTableRowWrapperComponent_div_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 3);\n ɵngcc0.ɵɵtemplate(1, DataTableRowWrapperComponent_div_0_1_Template, 1, 2, null, 1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngStyle\", ctx_r0.getGroupHeaderStyle());\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r0.groupHeader && ctx_r0.groupHeader.template);\n} }\nfunction DataTableRowWrapperComponent_ng_content_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojection(0, 0, [\"*ngIf\", \"(groupHeader && groupHeader.template && expanded) || (!groupHeader || !groupHeader.template)\"]);\n} }\nfunction DataTableRowWrapperComponent_div_2_1_ng_template_0_Template(rf, ctx) { }\nfunction DataTableRowWrapperComponent_div_2_1_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, DataTableRowWrapperComponent_div_2_1_ng_template_0_Template, 0, 0, \"ng-template\", 4);\n} if (rf & 2) {\n const ctx_r5 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r5.rowDetail.template)(\"ngTemplateOutletContext\", ctx_r5.rowContext);\n} }\nfunction DataTableRowWrapperComponent_div_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 5);\n ɵngcc0.ɵɵtemplate(1, DataTableRowWrapperComponent_div_2_1_Template, 1, 2, null, 1);\n ɵngcc0.ɵɵelementEnd();\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵstyleProp(\"height\", ctx_r2.detailRowHeight, \"px\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r2.rowDetail && ctx_r2.rowDetail.template);\n} }\nconst _c3 = [\"cellTemplate\"];\nfunction DataTableBodyCellComponent_label_1_Template(rf, ctx) { if (rf & 1) {\n const _r5 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"label\", 4)(1, \"input\", 5);\n ɵngcc0.ɵɵlistener(\"click\", function DataTableBodyCellComponent_label_1_Template_input_click_1_listener($event) { ɵngcc0.ɵɵrestoreView(_r5); const ctx_r4 = ɵngcc0.ɵɵnextContext(); return ɵngcc0.ɵɵresetView(ctx_r4.onCheckboxChange($event)); });\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"checked\", ctx_r0.isSelected);\n} }\nfunction DataTableBodyCellComponent_ng_container_2_button_1_i_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"i\", 11);\n} }\nfunction DataTableBodyCellComponent_ng_container_2_button_1_i_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"i\", 12);\n} }\nfunction DataTableBodyCellComponent_ng_container_2_button_1_i_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"i\", 13);\n} }\nfunction DataTableBodyCellComponent_ng_container_2_button_1_Template(rf, ctx) { if (rf & 1) {\n const _r12 = ɵngcc0.ɵɵgetCurrentView();\n ɵngcc0.ɵɵelementStart(0, \"button\", 7);\n ɵngcc0.ɵɵlistener(\"click\", function DataTableBodyCellComponent_ng_container_2_button_1_Template_button_click_0_listener() { ɵngcc0.ɵɵrestoreView(_r12); const ctx_r11 = ɵngcc0.ɵɵnextContext(2); return ɵngcc0.ɵɵresetView(ctx_r11.onTreeAction()); });\n ɵngcc0.ɵɵelementStart(1, \"span\");\n ɵngcc0.ɵɵtemplate(2, DataTableBodyCellComponent_ng_container_2_button_1_i_2_Template, 1, 0, \"i\", 8);\n ɵngcc0.ɵɵtemplate(3, DataTableBodyCellComponent_ng_container_2_button_1_i_3_Template, 1, 0, \"i\", 9);\n ɵngcc0.ɵɵtemplate(4, DataTableBodyCellComponent_ng_container_2_button_1_i_4_Template, 1, 0, \"i\", 10);\n ɵngcc0.ɵɵelementEnd()();\n} if (rf & 2) {\n const ctx_r6 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"disabled\", ctx_r6.treeStatus === \"disabled\");\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r6.treeStatus === \"loading\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r6.treeStatus === \"collapsed\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r6.treeStatus === \"expanded\" || ctx_r6.treeStatus === \"disabled\");\n} }\nfunction DataTableBodyCellComponent_ng_container_2_2_ng_template_0_Template(rf, ctx) { }\nconst _c4 = function (a0) { return { cellContext: a0 }; };\nfunction DataTableBodyCellComponent_ng_container_2_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, DataTableBodyCellComponent_ng_container_2_2_ng_template_0_Template, 0, 0, \"ng-template\", 14);\n} if (rf & 2) {\n const ctx_r7 = ɵngcc0.ɵɵnextContext(2);\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r7.column.treeToggleTemplate)(\"ngTemplateOutletContext\", ɵngcc0.ɵɵpureFunction1(2, _c4, ctx_r7.cellContext));\n} }\nfunction DataTableBodyCellComponent_ng_container_2_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementContainerStart(0);\n ɵngcc0.ɵɵtemplate(1, DataTableBodyCellComponent_ng_container_2_button_1_Template, 5, 4, \"button\", 6);\n ɵngcc0.ɵɵtemplate(2, DataTableBodyCellComponent_ng_container_2_2_Template, 1, 4, null, 2);\n ɵngcc0.ɵɵelementContainerEnd();\n} if (rf & 2) {\n const ctx_r1 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx_r1.column.treeToggleTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx_r1.column.treeToggleTemplate);\n} }\nfunction DataTableBodyCellComponent_span_3_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"span\", 15);\n} if (rf & 2) {\n const ctx_r2 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"title\", ctx_r2.sanitizedValue)(\"innerHTML\", ctx_r2.value, ɵngcc0.ɵɵsanitizeHtml);\n} }\nfunction DataTableBodyCellComponent_4_ng_template_0_Template(rf, ctx) { }\nfunction DataTableBodyCellComponent_4_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, DataTableBodyCellComponent_4_ng_template_0_Template, 0, 0, \"ng-template\", 14, 16, ɵngcc0.ɵɵtemplateRefExtractor);\n} if (rf & 2) {\n const ctx_r3 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"ngTemplateOutlet\", ctx_r3.column.cellTemplate)(\"ngTemplateOutletContext\", ctx_r3.cellContext);\n} }\nfunction DataTableSummaryRowComponent_datatable_body_row_0_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelement(0, \"datatable-body-row\", 1);\n} if (rf & 2) {\n const ctx_r0 = ɵngcc0.ɵɵnextContext();\n ɵngcc0.ɵɵproperty(\"innerWidth\", ctx_r0.innerWidth)(\"offsetX\", ctx_r0.offsetX)(\"columns\", ctx_r0._internalColumns)(\"rowHeight\", ctx_r0.rowHeight)(\"row\", ctx_r0.summaryRow)(\"rowIndex\", -1);\n} }\nclass ScrollbarHelper {\n /**\n * @param {?} document\n */\n constructor(document) {\n this.document = document;\n this.width = this.getWidth();\n }\n /**\n * @return {?}\n */\n getWidth() {\n /** @type {?} */\n const outer = this.document.createElement('div');\n outer.style.visibility = 'hidden';\n outer.style.width = '100px';\n outer.style.msOverflowStyle = 'scrollbar';\n this.document.body.appendChild(outer);\n /** @type {?} */\n const widthNoScroll = outer.offsetWidth;\n outer.style.overflow = 'scroll';\n /** @type {?} */\n const inner = this.document.createElement('div');\n inner.style.width = '100%';\n outer.appendChild(inner);\n /** @type {?} */\n const widthWithScroll = inner.offsetWidth;\n outer.parentNode.removeChild(outer);\n return widthNoScroll - widthWithScroll;\n }\n}\nScrollbarHelper.ɵfac = function ScrollbarHelper_Factory(t) { return new (t || ScrollbarHelper)(ɵngcc0.ɵɵinject(DOCUMENT)); };\nScrollbarHelper.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: ScrollbarHelper, factory: ScrollbarHelper.ɵfac });\n/** @nocollapse */\nScrollbarHelper.ctorParameters = () => [\n { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }\n];\nif (false) {\n /** @type {?} */\n ScrollbarHelper.prototype.width;\n /**\n * @type {?}\n * @private\n */\n ScrollbarHelper.prototype.document;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Gets the width of the scrollbar. Nesc for windows\n * http://stackoverflow.com/a/13382873/888165\n */\nclass DimensionsHelper {\n /**\n * @param {?} element\n * @return {?}\n */\n getDimensions(element) {\n return element.getBoundingClientRect();\n }\n}\nDimensionsHelper.ɵfac = function DimensionsHelper_Factory(t) { return new (t || DimensionsHelper)(); };\nDimensionsHelper.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: DimensionsHelper, factory: DimensionsHelper.ɵfac });\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * service to make DatatableComponent aware of changes to\n * input bindings of DataTableColumnDirective\n */\nclass ColumnChangesService {\n constructor() {\n this.columnInputChanges = new Subject();\n }\n /**\n * @return {?}\n */\n get columnInputChanges$() {\n return this.columnInputChanges.asObservable();\n }\n /**\n * @return {?}\n */\n onInputChange() {\n this.columnInputChanges.next();\n }\n}\nColumnChangesService.ɵfac = function ColumnChangesService_Factory(t) { return new (t || ColumnChangesService)(); };\nColumnChangesService.ɵprov = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjectable({ token: ColumnChangesService, factory: ColumnChangesService.ɵfac });\nif (false) {\n /**\n * @type {?}\n * @private\n */\n ColumnChangesService.prototype.columnInputChanges;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nclass DataTableFooterTemplateDirective {\n /**\n * @param {?} template\n */\n constructor(template) {\n this.template = template;\n }\n}\nDataTableFooterTemplateDirective.ɵfac = function DataTableFooterTemplateDirective_Factory(t) { return new (t || DataTableFooterTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nDataTableFooterTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: DataTableFooterTemplateDirective, selectors: [[\"\", \"ngx-datatable-footer-template\", \"\"]] });\n/** @nocollapse */\nDataTableFooterTemplateDirective.ctorParameters = () => [\n { type: TemplateRef }\n];\nif (false) {\n /** @type {?} */\n DataTableFooterTemplateDirective.prototype.template;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Visibility Observer Directive\n *\n * Usage:\n *\n * \t\t\n * \t\t\n *\n */\nclass VisibilityDirective {\n /**\n * @param {?} element\n * @param {?} zone\n */\n constructor(element, zone) {\n this.element = element;\n this.zone = zone;\n this.isVisible = false;\n this.visible = new EventEmitter();\n }\n /**\n * @return {?}\n */\n ngOnInit() {\n this.runCheck();\n }\n /**\n * @return {?}\n */\n ngOnDestroy() {\n clearTimeout(this.timeout);\n }\n /**\n * @return {?}\n */\n onVisibilityChange() {\n // trigger zone recalc for columns\n this.zone.run((/**\n * @return {?}\n */\n () => {\n this.isVisible = true;\n this.visible.emit(true);\n }));\n }\n /**\n * @return {?}\n */\n runCheck() {\n /** @type {?} */\n const check = (/**\n * @return {?}\n */\n () => {\n // https://davidwalsh.name/offsetheight-visibility\n const { offsetHeight, offsetWidth } = this.element.nativeElement;\n if (offsetHeight && offsetWidth) {\n clearTimeout(this.timeout);\n this.onVisibilityChange();\n }\n else {\n clearTimeout(this.timeout);\n this.zone.runOutsideAngular((/**\n * @return {?}\n */\n () => {\n this.timeout = setTimeout((/**\n * @return {?}\n */\n () => check()), 50);\n }));\n }\n });\n this.timeout = setTimeout((/**\n * @return {?}\n */\n () => check()));\n }\n}\nVisibilityDirective.ɵfac = function VisibilityDirective_Factory(t) { return new (t || VisibilityDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone)); };\nVisibilityDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: VisibilityDirective, selectors: [[\"\", \"visibilityObserver\", \"\"]], hostVars: 2, hostBindings: function VisibilityDirective_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"visible\", ctx.isVisible);\n } }, outputs: { visible: \"visible\" } });\n/** @nocollapse */\nVisibilityDirective.ctorParameters = () => [\n { type: ElementRef },\n { type: NgZone }\n];\nVisibilityDirective.propDecorators = {\n isVisible: [{ type: HostBinding, args: ['class.visible',] }],\n visible: [{ type: Output }]\n};\nif (false) {\n /** @type {?} */\n VisibilityDirective.prototype.isVisible;\n /** @type {?} */\n VisibilityDirective.prototype.visible;\n /** @type {?} */\n VisibilityDirective.prototype.timeout;\n /**\n * @type {?}\n * @private\n */\n VisibilityDirective.prototype.element;\n /**\n * @type {?}\n * @private\n */\n VisibilityDirective.prototype.zone;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Draggable Directive for Angular2\n *\n * Inspiration:\n * https://github.com/AngularClass/angular2-examples/blob/master/rx-draggable/directives/draggable.ts\n * http://stackoverflow.com/questions/35662530/how-to-implement-drag-and-drop-in-angular2\n *\n */\nclass DraggableDirective {\n /**\n * @param {?} element\n */\n constructor(element) {\n this.dragX = true;\n this.dragY = true;\n this.dragStart = new EventEmitter();\n this.dragging = new EventEmitter();\n this.dragEnd = new EventEmitter();\n this.isDragging = false;\n this.element = element.nativeElement;\n }\n /**\n * @param {?} changes\n * @return {?}\n */\n ngOnChanges(changes) {\n if (changes['dragEventTarget'] && changes['dragEventTarget'].currentValue && this.dragModel.dragging) {\n this.onMousedown(changes['dragEventTarget'].currentValue);\n }\n }\n /**\n * @return {?}\n */\n ngOnDestroy() {\n this._destroySubscription();\n }\n /**\n * @param {?} event\n * @return {?}\n */\n onMouseup(event) {\n if (!this.isDragging)\n return;\n this.isDragging = false;\n this.element.classList.remove('dragging');\n if (this.subscription) {\n this._destroySubscription();\n this.dragEnd.emit({\n event,\n element: this.element,\n model: this.dragModel\n });\n }\n }\n /**\n * @param {?} event\n * @return {?}\n */\n onMousedown(event) {\n // we only want to drag the inner header text\n /** @type {?} */\n const isDragElm = ((/** @type {?} */ (event.target))).classList.contains('draggable');\n if (isDragElm && (this.dragX || this.dragY)) {\n event.preventDefault();\n this.isDragging = true;\n /** @type {?} */\n const mouseDownPos = { x: event.clientX, y: event.clientY };\n /** @type {?} */\n const mouseup = fromEvent(document, 'mouseup');\n this.subscription = mouseup.subscribe((/**\n * @param {?} ev\n * @return {?}\n */\n (ev) => this.onMouseup(ev)));\n /** @type {?} */\n const mouseMoveSub = fromEvent(document, 'mousemove')\n .pipe(takeUntil(mouseup))\n .subscribe((/**\n * @param {?} ev\n * @return {?}\n */\n (ev) => this.move(ev, mouseDownPos)));\n this.subscription.add(mouseMoveSub);\n this.dragStart.emit({\n event,\n element: this.element,\n model: this.dragModel\n });\n }\n }\n /**\n * @param {?} event\n * @param {?} mouseDownPos\n * @return {?}\n */\n move(event, mouseDownPos) {\n if (!this.isDragging)\n return;\n /** @type {?} */\n const x = event.clientX - mouseDownPos.x;\n /** @type {?} */\n const y = event.clientY - mouseDownPos.y;\n if (this.dragX)\n this.element.style.left = `${x}px`;\n if (this.dragY)\n this.element.style.top = `${y}px`;\n this.element.classList.add('dragging');\n this.dragging.emit({\n event,\n element: this.element,\n model: this.dragModel\n });\n }\n /**\n * @private\n * @return {?}\n */\n _destroySubscription() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n this.subscription = undefined;\n }\n }\n}\nDraggableDirective.ɵfac = function DraggableDirective_Factory(t) { return new (t || DraggableDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef)); };\nDraggableDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: DraggableDirective, selectors: [[\"\", \"draggable\", \"\"]], inputs: { dragX: \"dragX\", dragY: \"dragY\", dragEventTarget: \"dragEventTarget\", dragModel: \"dragModel\" }, outputs: { dragStart: \"dragStart\", dragging: \"dragging\", dragEnd: \"dragEnd\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature] });\n/** @nocollapse */\nDraggableDirective.ctorParameters = () => [\n { type: ElementRef }\n];\nDraggableDirective.propDecorators = {\n dragEventTarget: [{ type: Input }],\n dragModel: [{ type: Input }],\n dragX: [{ type: Input }],\n dragY: [{ type: Input }],\n dragStart: [{ type: Output }],\n dragging: [{ type: Output }],\n dragEnd: [{ type: Output }]\n};\nif (false) {\n /** @type {?} */\n DraggableDirective.prototype.dragEventTarget;\n /** @type {?} */\n DraggableDirective.prototype.dragModel;\n /** @type {?} */\n DraggableDirective.prototype.dragX;\n /** @type {?} */\n DraggableDirective.prototype.dragY;\n /** @type {?} */\n DraggableDirective.prototype.dragStart;\n /** @type {?} */\n DraggableDirective.prototype.dragging;\n /** @type {?} */\n DraggableDirective.prototype.dragEnd;\n /** @type {?} */\n DraggableDirective.prototype.element;\n /** @type {?} */\n DraggableDirective.prototype.isDragging;\n /** @type {?} */\n DraggableDirective.prototype.subscription;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/* tslint:disable */\n/** @type {?} */\nconst MouseEvent = (/** @type {?} */ ((((/** @type {?} */ ((typeof window !== 'undefined' && window)))) || ((/** @type {?} */ (global))))\n .MouseEvent));\n/** @type {?} */\nconst KeyboardEvent = (/** @type {?} */ ((((/** @type {?} */ ((typeof window !== 'undefined' && window)))) || ((/** @type {?} */ (global))))\n .KeyboardEvent));\n/** @type {?} */\nconst Event = (/** @type {?} */ ((((/** @type {?} */ ((typeof window !== 'undefined' && window)))) || ((/** @type {?} */ (global)))).Event));\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nclass ResizeableDirective {\n /**\n * @param {?} element\n * @param {?} renderer\n */\n constructor(element, renderer) {\n this.renderer = renderer;\n this.resizeEnabled = true;\n this.resize = new EventEmitter();\n this.resizing = false;\n this.element = element.nativeElement;\n }\n /**\n * @return {?}\n */\n ngAfterViewInit() {\n /** @type {?} */\n const renderer2 = this.renderer;\n /** @type {?} */\n const node = renderer2.createElement('span');\n if (this.resizeEnabled) {\n renderer2.addClass(node, 'resize-handle');\n }\n else {\n renderer2.addClass(node, 'resize-handle--not-resizable');\n }\n renderer2.appendChild(this.element, node);\n }\n /**\n * @return {?}\n */\n ngOnDestroy() {\n this._destroySubscription();\n }\n /**\n * @return {?}\n */\n onMouseup() {\n this.resizing = false;\n if (this.subscription && !this.subscription.closed) {\n this._destroySubscription();\n this.resize.emit(this.element.clientWidth);\n }\n }\n /**\n * @param {?} event\n * @return {?}\n */\n onMousedown(event) {\n /** @type {?} */\n const isHandle = ((/** @type {?} */ (event.target))).classList.contains('resize-handle');\n /** @type {?} */\n const initialWidth = this.element.clientWidth;\n /** @type {?} */\n const mouseDownScreenX = event.screenX;\n if (isHandle) {\n event.stopPropagation();\n this.resizing = true;\n /** @type {?} */\n const mouseup = fromEvent(document, 'mouseup');\n this.subscription = mouseup.subscribe((/**\n * @param {?} ev\n * @return {?}\n */\n (ev) => this.onMouseup()));\n /** @type {?} */\n const mouseMoveSub = fromEvent(document, 'mousemove')\n .pipe(takeUntil(mouseup))\n .subscribe((/**\n * @param {?} e\n * @return {?}\n */\n (e) => this.move(e, initialWidth, mouseDownScreenX)));\n this.subscription.add(mouseMoveSub);\n }\n }\n /**\n * @param {?} event\n * @param {?} initialWidth\n * @param {?} mouseDownScreenX\n * @return {?}\n */\n move(event, initialWidth, mouseDownScreenX) {\n /** @type {?} */\n const movementX = event.screenX - mouseDownScreenX;\n /** @type {?} */\n const newWidth = initialWidth + movementX;\n /** @type {?} */\n const overMinWidth = !this.minWidth || newWidth >= this.minWidth;\n /** @type {?} */\n const underMaxWidth = !this.maxWidth || newWidth <= this.maxWidth;\n if (overMinWidth && underMaxWidth) {\n this.element.style.width = `${newWidth}px`;\n }\n }\n /**\n * @private\n * @return {?}\n */\n _destroySubscription() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n this.subscription = undefined;\n }\n }\n}\nResizeableDirective.ɵfac = function ResizeableDirective_Factory(t) { return new (t || ResizeableDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2)); };\nResizeableDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: ResizeableDirective, selectors: [[\"\", \"resizeable\", \"\"]], hostVars: 2, hostBindings: function ResizeableDirective_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"mousedown\", function ResizeableDirective_mousedown_HostBindingHandler($event) { return ctx.onMousedown($event); });\n } if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"resizeable\", ctx.resizeEnabled);\n } }, inputs: { resizeEnabled: \"resizeEnabled\", minWidth: \"minWidth\", maxWidth: \"maxWidth\" }, outputs: { resize: \"resize\" } });\n/** @nocollapse */\nResizeableDirective.ctorParameters = () => [\n { type: ElementRef },\n { type: Renderer2 }\n];\nResizeableDirective.propDecorators = {\n resizeEnabled: [{ type: Input }],\n minWidth: [{ type: Input }],\n maxWidth: [{ type: Input }],\n resize: [{ type: Output }],\n onMousedown: [{ type: HostListener, args: ['mousedown', ['$event'],] }]\n};\nif (false) {\n /** @type {?} */\n ResizeableDirective.prototype.resizeEnabled;\n /** @type {?} */\n ResizeableDirective.prototype.minWidth;\n /** @type {?} */\n ResizeableDirective.prototype.maxWidth;\n /** @type {?} */\n ResizeableDirective.prototype.resize;\n /** @type {?} */\n ResizeableDirective.prototype.element;\n /** @type {?} */\n ResizeableDirective.prototype.subscription;\n /** @type {?} */\n ResizeableDirective.prototype.resizing;\n /**\n * @type {?}\n * @private\n */\n ResizeableDirective.prototype.renderer;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nclass OrderableDirective {\n /**\n * @param {?} differs\n * @param {?} document\n */\n constructor(differs, document) {\n this.document = document;\n this.reorder = new EventEmitter();\n this.targetChanged = new EventEmitter();\n this.differ = differs.find({}).create();\n }\n /**\n * @return {?}\n */\n ngAfterContentInit() {\n // HACK: Investigate Better Way\n this.updateSubscriptions();\n this.draggables.changes.subscribe(this.updateSubscriptions.bind(this));\n }\n /**\n * @return {?}\n */\n ngOnDestroy() {\n this.draggables.forEach((/**\n * @param {?} d\n * @return {?}\n */\n d => {\n d.dragStart.unsubscribe();\n d.dragging.unsubscribe();\n d.dragEnd.unsubscribe();\n }));\n }\n /**\n * @return {?}\n */\n updateSubscriptions() {\n /** @type {?} */\n const diffs = this.differ.diff(this.createMapDiffs());\n if (diffs) {\n /** @type {?} */\n const subscribe = (/**\n * @param {?} __0\n * @return {?}\n */\n ({ currentValue, previousValue }) => {\n unsubscribe({ previousValue });\n if (currentValue) {\n currentValue.dragStart.subscribe(this.onDragStart.bind(this));\n currentValue.dragging.subscribe(this.onDragging.bind(this));\n currentValue.dragEnd.subscribe(this.onDragEnd.bind(this));\n }\n });\n /** @type {?} */\n const unsubscribe = (/**\n * @param {?} __0\n * @return {?}\n */\n ({ previousValue }) => {\n if (previousValue) {\n previousValue.dragStart.unsubscribe();\n previousValue.dragging.unsubscribe();\n previousValue.dragEnd.unsubscribe();\n }\n });\n diffs.forEachAddedItem(subscribe);\n // diffs.forEachChangedItem(subscribe.bind(this));\n diffs.forEachRemovedItem(unsubscribe);\n }\n }\n /**\n * @return {?}\n */\n onDragStart() {\n this.positions = {};\n /** @type {?} */\n let i = 0;\n for (const dragger of this.draggables.toArray()) {\n /** @type {?} */\n const elm = dragger.element;\n /** @type {?} */\n const left = parseInt(elm.offsetLeft.toString(), 0);\n this.positions[dragger.dragModel.prop] = {\n left,\n right: left + parseInt(elm.offsetWidth.toString(), 0),\n index: i++,\n element: elm\n };\n }\n }\n /**\n * @param {?} __0\n * @return {?}\n */\n onDragging({ element, model, event }) {\n /** @type {?} */\n const prevPos = this.positions[model.prop];\n /** @type {?} */\n const target = this.isTarget(model, event);\n if (target) {\n if (this.lastDraggingIndex !== target.i) {\n this.targetChanged.emit({\n prevIndex: this.lastDraggingIndex,\n newIndex: target.i,\n initialIndex: prevPos.index\n });\n this.lastDraggingIndex = target.i;\n }\n }\n else if (this.lastDraggingIndex !== prevPos.index) {\n this.targetChanged.emit({\n prevIndex: this.lastDraggingIndex,\n initialIndex: prevPos.index\n });\n this.lastDraggingIndex = prevPos.index;\n }\n }\n /**\n * @param {?} __0\n * @return {?}\n */\n onDragEnd({ element, model, event }) {\n /** @type {?} */\n const prevPos = this.positions[model.prop];\n /** @type {?} */\n const target = this.isTarget(model, event);\n if (target) {\n this.reorder.emit({\n prevIndex: prevPos.index,\n newIndex: target.i,\n model\n });\n }\n this.lastDraggingIndex = undefined;\n element.style.left = 'auto';\n }\n /**\n * @param {?} model\n * @param {?} event\n * @return {?}\n */\n isTarget(model, event) {\n /** @type {?} */\n let i = 0;\n /** @type {?} */\n const x = event.x || event.clientX;\n /** @type {?} */\n const y = event.y || event.clientY;\n /** @type {?} */\n const targets = this.document.elementsFromPoint(x, y);\n for (const prop in this.positions) {\n // current column position which throws event.\n /** @type {?} */\n const pos = this.positions[prop];\n // since we drag the inner span, we need to find it in the elements at the cursor\n if (model.prop !== prop && targets.find((/**\n * @param {?} el\n * @return {?}\n */\n (el) => el === pos.element))) {\n return {\n pos,\n i\n };\n }\n i++;\n }\n }\n /**\n * @private\n * @return {?}\n */\n createMapDiffs() {\n return this.draggables.toArray().reduce((/**\n * @param {?} acc\n * @param {?} curr\n * @return {?}\n */\n (acc, curr) => {\n acc[curr.dragModel.$$id] = curr;\n return acc;\n }), {});\n }\n}\nOrderableDirective.ɵfac = function OrderableDirective_Factory(t) { return new (t || OrderableDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.KeyValueDiffers), ɵngcc0.ɵɵdirectiveInject(DOCUMENT)); };\nOrderableDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: OrderableDirective, selectors: [[\"\", \"orderable\", \"\"]], contentQueries: function OrderableDirective_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, DraggableDirective, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.draggables = _t);\n } }, outputs: { reorder: \"reorder\", targetChanged: \"targetChanged\" } });\n/** @nocollapse */\nOrderableDirective.ctorParameters = () => [\n { type: KeyValueDiffers },\n { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }\n];\nOrderableDirective.propDecorators = {\n reorder: [{ type: Output }],\n targetChanged: [{ type: Output }],\n draggables: [{ type: ContentChildren, args: [DraggableDirective, { descendants: true },] }]\n};\nif (false) {\n /** @type {?} */\n OrderableDirective.prototype.reorder;\n /** @type {?} */\n OrderableDirective.prototype.targetChanged;\n /** @type {?} */\n OrderableDirective.prototype.draggables;\n /** @type {?} */\n OrderableDirective.prototype.positions;\n /** @type {?} */\n OrderableDirective.prototype.differ;\n /** @type {?} */\n OrderableDirective.prototype.lastDraggingIndex;\n /**\n * @type {?}\n * @private\n */\n OrderableDirective.prototype.document;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nclass LongPressDirective {\n constructor() {\n this.pressEnabled = true;\n this.duration = 500;\n this.longPressStart = new EventEmitter();\n this.longPressing = new EventEmitter();\n this.longPressEnd = new EventEmitter();\n this.mouseX = 0;\n this.mouseY = 0;\n }\n /**\n * @return {?}\n */\n get press() {\n return this.pressing;\n }\n /**\n * @return {?}\n */\n get isLongPress() {\n return this.isLongPressing;\n }\n /**\n * @param {?} event\n * @return {?}\n */\n onMouseDown(event) {\n // don't do right/middle clicks\n if (event.which !== 1 || !this.pressEnabled)\n return;\n // don't start drag if its on resize handle\n /** @type {?} */\n const target = (/** @type {?} */ (event.target));\n if (target.classList.contains('resize-handle'))\n return;\n this.mouseX = event.clientX;\n this.mouseY = event.clientY;\n this.pressing = true;\n this.isLongPressing = false;\n /** @type {?} */\n const mouseup = fromEvent(document, 'mouseup');\n this.subscription = mouseup.subscribe((/**\n * @param {?} ev\n * @return {?}\n */\n (ev) => this.onMouseup()));\n this.timeout = setTimeout((/**\n * @return {?}\n */\n () => {\n this.isLongPressing = true;\n this.longPressStart.emit({\n event,\n model: this.pressModel\n });\n this.subscription.add(fromEvent(document, 'mousemove')\n .pipe(takeUntil(mouseup))\n .subscribe((/**\n * @param {?} mouseEvent\n * @return {?}\n */\n (mouseEvent) => this.onMouseMove(mouseEvent))));\n this.loop(event);\n }), this.duration);\n this.loop(event);\n }\n /**\n * @param {?} event\n * @return {?}\n */\n onMouseMove(event) {\n if (this.pressing && !this.isLongPressing) {\n /** @type {?} */\n const xThres = Math.abs(event.clientX - this.mouseX) > 10;\n /** @type {?} */\n const yThres = Math.abs(event.clientY - this.mouseY) > 10;\n if (xThres || yThres) {\n this.endPress();\n }\n }\n }\n /**\n * @param {?} event\n * @return {?}\n */\n loop(event) {\n if (this.isLongPressing) {\n this.timeout = setTimeout((/**\n * @return {?}\n */\n () => {\n this.longPressing.emit({\n event,\n model: this.pressModel\n });\n this.loop(event);\n }), 50);\n }\n }\n /**\n * @return {?}\n */\n endPress() {\n clearTimeout(this.timeout);\n this.isLongPressing = false;\n this.pressing = false;\n this._destroySubscription();\n this.longPressEnd.emit({\n model: this.pressModel\n });\n }\n /**\n * @return {?}\n */\n onMouseup() {\n this.endPress();\n }\n /**\n * @return {?}\n */\n ngOnDestroy() {\n this._destroySubscription();\n }\n /**\n * @private\n * @return {?}\n */\n _destroySubscription() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n this.subscription = undefined;\n }\n }\n}\nLongPressDirective.ɵfac = function LongPressDirective_Factory(t) { return new (t || LongPressDirective)(); };\nLongPressDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: LongPressDirective, selectors: [[\"\", \"long-press\", \"\"]], hostVars: 4, hostBindings: function LongPressDirective_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"mousedown\", function LongPressDirective_mousedown_HostBindingHandler($event) { return ctx.onMouseDown($event); });\n } if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"press\", ctx.press)(\"longpress\", ctx.isLongPress);\n } }, inputs: { pressEnabled: \"pressEnabled\", duration: \"duration\", pressModel: \"pressModel\" }, outputs: { longPressStart: \"longPressStart\", longPressing: \"longPressing\", longPressEnd: \"longPressEnd\" } });\nLongPressDirective.propDecorators = {\n pressEnabled: [{ type: Input }],\n pressModel: [{ type: Input }],\n duration: [{ type: Input }],\n longPressStart: [{ type: Output }],\n longPressing: [{ type: Output }],\n longPressEnd: [{ type: Output }],\n press: [{ type: HostBinding, args: ['class.press',] }],\n isLongPress: [{ type: HostBinding, args: ['class.longpress',] }],\n onMouseDown: [{ type: HostListener, args: ['mousedown', ['$event'],] }]\n};\nif (false) {\n /** @type {?} */\n LongPressDirective.prototype.pressEnabled;\n /** @type {?} */\n LongPressDirective.prototype.pressModel;\n /** @type {?} */\n LongPressDirective.prototype.duration;\n /** @type {?} */\n LongPressDirective.prototype.longPressStart;\n /** @type {?} */\n LongPressDirective.prototype.longPressing;\n /** @type {?} */\n LongPressDirective.prototype.longPressEnd;\n /** @type {?} */\n LongPressDirective.prototype.pressing;\n /** @type {?} */\n LongPressDirective.prototype.isLongPressing;\n /** @type {?} */\n LongPressDirective.prototype.timeout;\n /** @type {?} */\n LongPressDirective.prototype.mouseX;\n /** @type {?} */\n LongPressDirective.prototype.mouseY;\n /** @type {?} */\n LongPressDirective.prototype.subscription;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nclass ScrollerComponent {\n /**\n * @param {?} ngZone\n * @param {?} element\n * @param {?} renderer\n */\n constructor(ngZone, element, renderer) {\n this.ngZone = ngZone;\n this.renderer = renderer;\n this.scrollbarV = false;\n this.scrollbarH = false;\n this.scroll = new EventEmitter();\n this.scrollYPos = 0;\n this.scrollXPos = 0;\n this.prevScrollYPos = 0;\n this.prevScrollXPos = 0;\n this._scrollEventListener = null;\n this.element = element.nativeElement;\n }\n /**\n * @return {?}\n */\n ngOnInit() {\n // manual bind so we don't always listen\n if (this.scrollbarV || this.scrollbarH) {\n /** @type {?} */\n const renderer = this.renderer;\n this.parentElement = renderer.parentNode(renderer.parentNode(this.element));\n this._scrollEventListener = this.onScrolled.bind(this);\n this.parentElement.addEventListener('scroll', this._scrollEventListener);\n }\n }\n /**\n * @return {?}\n */\n ngOnDestroy() {\n if (this._scrollEventListener) {\n this.parentElement.removeEventListener('scroll', this._scrollEventListener);\n this._scrollEventListener = null;\n }\n }\n /**\n * @param {?} offsetY\n * @return {?}\n */\n setOffset(offsetY) {\n if (this.parentElement) {\n this.parentElement.scrollTop = offsetY;\n }\n }\n /**\n * @param {?} event\n * @return {?}\n */\n onScrolled(event) {\n /** @type {?} */\n const dom = (/** @type {?} */ (event.currentTarget));\n requestAnimationFrame((/**\n * @return {?}\n */\n () => {\n this.scrollYPos = dom.scrollTop;\n this.scrollXPos = dom.scrollLeft;\n this.updateOffset();\n }));\n }\n /**\n * @return {?}\n */\n updateOffset() {\n /** @type {?} */\n let direction;\n if (this.scrollYPos < this.prevScrollYPos) {\n direction = 'down';\n }\n else if (this.scrollYPos > this.prevScrollYPos) {\n direction = 'up';\n }\n this.scroll.emit({\n direction,\n scrollYPos: this.scrollYPos,\n scrollXPos: this.scrollXPos\n });\n this.prevScrollYPos = this.scrollYPos;\n this.prevScrollXPos = this.scrollXPos;\n }\n}\nScrollerComponent.ɵfac = function ScrollerComponent_Factory(t) { return new (t || ScrollerComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.NgZone), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2)); };\nScrollerComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ScrollerComponent, selectors: [[\"datatable-scroller\"]], hostAttrs: [1, \"datatable-scroll\"], hostVars: 4, hostBindings: function ScrollerComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵstyleProp(\"height\", ctx.scrollHeight, \"px\")(\"width\", ctx.scrollWidth, \"px\");\n } }, inputs: { scrollbarV: \"scrollbarV\", scrollbarH: \"scrollbarH\", scrollHeight: \"scrollHeight\", scrollWidth: \"scrollWidth\" }, outputs: { scroll: \"scroll\" }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function ScrollerComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵprojection(0);\n } }, encapsulation: 2, changeDetection: 0 });\n/** @nocollapse */\nScrollerComponent.ctorParameters = () => [\n { type: NgZone },\n { type: ElementRef },\n { type: Renderer2 }\n];\nScrollerComponent.propDecorators = {\n scrollbarV: [{ type: Input }],\n scrollbarH: [{ type: Input }],\n scrollHeight: [{ type: HostBinding, args: ['style.height.px',] }, { type: Input }],\n scrollWidth: [{ type: HostBinding, args: ['style.width.px',] }, { type: Input }],\n scroll: [{ type: Output }]\n};\nif (false) {\n /** @type {?} */\n ScrollerComponent.prototype.scrollbarV;\n /** @type {?} */\n ScrollerComponent.prototype.scrollbarH;\n /** @type {?} */\n ScrollerComponent.prototype.scrollHeight;\n /** @type {?} */\n ScrollerComponent.prototype.scrollWidth;\n /** @type {?} */\n ScrollerComponent.prototype.scroll;\n /** @type {?} */\n ScrollerComponent.prototype.scrollYPos;\n /** @type {?} */\n ScrollerComponent.prototype.scrollXPos;\n /** @type {?} */\n ScrollerComponent.prototype.prevScrollYPos;\n /** @type {?} */\n ScrollerComponent.prototype.prevScrollXPos;\n /** @type {?} */\n ScrollerComponent.prototype.element;\n /** @type {?} */\n ScrollerComponent.prototype.parentElement;\n /** @type {?} */\n ScrollerComponent.prototype.onScrollListener;\n /**\n * @type {?}\n * @private\n */\n ScrollerComponent.prototype._scrollEventListener;\n /**\n * @type {?}\n * @private\n */\n ScrollerComponent.prototype.ngZone;\n /**\n * @type {?}\n * @private\n */\n ScrollerComponent.prototype.renderer;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nclass DatatableGroupHeaderTemplateDirective {\n /**\n * @param {?} template\n */\n constructor(template) {\n this.template = template;\n }\n}\nDatatableGroupHeaderTemplateDirective.ɵfac = function DatatableGroupHeaderTemplateDirective_Factory(t) { return new (t || DatatableGroupHeaderTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nDatatableGroupHeaderTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: DatatableGroupHeaderTemplateDirective, selectors: [[\"\", \"ngx-datatable-group-header-template\", \"\"]] });\n/** @nocollapse */\nDatatableGroupHeaderTemplateDirective.ctorParameters = () => [\n { type: TemplateRef }\n];\nif (false) {\n /** @type {?} */\n DatatableGroupHeaderTemplateDirective.prototype.template;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nclass DatatableGroupHeaderDirective {\n constructor() {\n /**\n * Row height is required when virtual scroll is enabled.\n */\n this.rowHeight = 0;\n /**\n * Track toggling of group visibility\n */\n this.toggle = new EventEmitter();\n }\n /**\n * @return {?}\n */\n get template() {\n return this._templateInput || this._templateQuery;\n }\n /**\n * Toggle the expansion of a group\n * @param {?} group\n * @return {?}\n */\n toggleExpandGroup(group) {\n this.toggle.emit({\n type: 'group',\n value: group\n });\n }\n /**\n * Expand all groups\n * @return {?}\n */\n expandAllGroups() {\n this.toggle.emit({\n type: 'all',\n value: true\n });\n }\n /**\n * Collapse all groups\n * @return {?}\n */\n collapseAllGroups() {\n this.toggle.emit({\n type: 'all',\n value: false\n });\n }\n}\nDatatableGroupHeaderDirective.ɵfac = function DatatableGroupHeaderDirective_Factory(t) { return new (t || DatatableGroupHeaderDirective)(); };\nDatatableGroupHeaderDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: DatatableGroupHeaderDirective, selectors: [[\"ngx-datatable-group-header\"]], contentQueries: function DatatableGroupHeaderDirective_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, DatatableGroupHeaderTemplateDirective, 7, TemplateRef);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._templateQuery = _t.first);\n } }, inputs: { rowHeight: \"rowHeight\", _templateInput: [\"template\", \"_templateInput\"] }, outputs: { toggle: \"toggle\" } });\nDatatableGroupHeaderDirective.propDecorators = {\n rowHeight: [{ type: Input }],\n _templateInput: [{ type: Input, args: ['template',] }],\n _templateQuery: [{ type: ContentChild, args: [DatatableGroupHeaderTemplateDirective, { read: TemplateRef, static: true },] }],\n toggle: [{ type: Output }]\n};\nif (false) {\n /**\n * Row height is required when virtual scroll is enabled.\n * @type {?}\n */\n DatatableGroupHeaderDirective.prototype.rowHeight;\n /** @type {?} */\n DatatableGroupHeaderDirective.prototype._templateInput;\n /** @type {?} */\n DatatableGroupHeaderDirective.prototype._templateQuery;\n /**\n * Track toggling of group visibility\n * @type {?}\n */\n DatatableGroupHeaderDirective.prototype.toggle;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Always returns the empty string ''\n * @return {?}\n */\nfunction emptyStringGetter() {\n return '';\n}\n/**\n * Returns the appropriate getter function for this kind of prop.\n * If prop == null, returns the emptyStringGetter.\n * @param {?} prop\n * @return {?}\n */\nfunction getterForProp(prop) {\n if (prop == null) {\n return emptyStringGetter;\n }\n if (typeof prop === 'number') {\n return numericIndexGetter;\n }\n else {\n // deep or simple\n if (prop.indexOf('.') !== -1) {\n return deepValueGetter;\n }\n else {\n return shallowValueGetter;\n }\n }\n}\n/**\n * Returns the value at this numeric index.\n * @param {?} row array of values\n * @param {?} index numeric index\n * @return {?} any or '' if invalid index\n */\nfunction numericIndexGetter(row, index) {\n if (row == null) {\n return '';\n }\n // mimic behavior of deepValueGetter\n if (!row || index == null) {\n return row;\n }\n /** @type {?} */\n const value = row[index];\n if (value == null) {\n return '';\n }\n return value;\n}\n/**\n * Returns the value of a field.\n * (more efficient than deepValueGetter)\n * @param {?} obj object containing the field\n * @param {?} fieldName field name string\n * @return {?}\n */\nfunction shallowValueGetter(obj, fieldName) {\n if (obj == null) {\n return '';\n }\n if (!obj || !fieldName) {\n return obj;\n }\n /** @type {?} */\n const value = obj[fieldName];\n if (value == null) {\n return '';\n }\n return value;\n}\n/**\n * Returns a deep object given a string. zoo['animal.type']\n * @param {?} obj\n * @param {?} path\n * @return {?}\n */\nfunction deepValueGetter(obj, path) {\n if (obj == null) {\n return '';\n }\n if (!obj || !path) {\n return obj;\n }\n // check if path matches a root-level field\n // { \"a.b.c\": 123 }\n /** @type {?} */\n let current = obj[path];\n if (current !== undefined) {\n return current;\n }\n current = obj;\n /** @type {?} */\n const split = path.split('.');\n if (split.length) {\n for (let i = 0; i < split.length; i++) {\n current = current[split[i]];\n // if found undefined, return empty string\n if (current === undefined || current === null) {\n return '';\n }\n }\n }\n return current;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @param {?} prop\n * @return {?}\n */\nfunction optionalGetterForProp(prop) {\n return prop && ((/**\n * @param {?} row\n * @return {?}\n */\n row => getterForProp(prop)(row, prop)));\n}\n/**\n * This functions rearrange items by their parents\n * Also sets the level value to each of the items\n *\n * Note: Expecting each item has a property called parentId\n * Note: This algorithm will fail if a list has two or more items with same ID\n * NOTE: This algorithm will fail if there is a deadlock of relationship\n *\n * For example,\n *\n * Input\n *\n * id -> parent\n * 1 -> 0\n * 2 -> 0\n * 3 -> 1\n * 4 -> 1\n * 5 -> 2\n * 7 -> 8\n * 6 -> 3\n *\n *\n * Output\n * id -> level\n * 1 -> 0\n * --3 -> 1\n * ----6 -> 2\n * --4 -> 1\n * 2 -> 0\n * --5 -> 1\n * 7 -> 8\n *\n *\n * @param {?} rows\n *\n * @param {?=} from\n * @param {?=} to\n * @return {?}\n */\nfunction groupRowsByParents(rows, from, to) {\n if (from && to) {\n /** @type {?} */\n const nodeById = {};\n /** @type {?} */\n const l = rows.length;\n /** @type {?} */\n let node = null;\n nodeById[0] = new TreeNode(); // that's the root node\n // that's the root node\n /** @type {?} */\n const uniqIDs = rows.reduce((/**\n * @param {?} arr\n * @param {?} item\n * @return {?}\n */\n (arr, item) => {\n /** @type {?} */\n const toValue = to(item);\n if (arr.indexOf(toValue) === -1) {\n arr.push(toValue);\n }\n return arr;\n }), []);\n for (let i = 0; i < l; i++) {\n // make TreeNode objects for each item\n nodeById[to(rows[i])] = new TreeNode(rows[i]);\n }\n for (let i = 0; i < l; i++) {\n // link all TreeNode objects\n node = nodeById[to(rows[i])];\n /** @type {?} */\n let parent = 0;\n /** @type {?} */\n const fromValue = from(node.row);\n if (!!fromValue && uniqIDs.indexOf(fromValue) > -1) {\n parent = fromValue;\n }\n node.parent = nodeById[parent];\n node.row['level'] = node.parent.row['level'] + 1;\n node.parent.children.push(node);\n }\n /** @type {?} */\n let resolvedRows = [];\n nodeById[0].flatten((/**\n * @return {?}\n */\n function () {\n resolvedRows = [...resolvedRows, this.row];\n }), true);\n return resolvedRows;\n }\n else {\n return rows;\n }\n}\nclass TreeNode {\n /**\n * @param {?=} row\n */\n constructor(row = null) {\n if (!row) {\n row = {\n level: -1,\n treeStatus: 'expanded'\n };\n }\n this.row = row;\n this.parent = null;\n this.children = [];\n }\n /**\n * @param {?} f\n * @param {?} recursive\n * @return {?}\n */\n flatten(f, recursive) {\n if (this.row['treeStatus'] === 'expanded') {\n for (let i = 0, l = this.children.length; i < l; i++) {\n /** @type {?} */\n const child = this.children[i];\n f.apply(child, Array.prototype.slice.call(arguments, 2));\n if (recursive)\n child.flatten.apply(child, arguments);\n }\n }\n }\n}\nif (false) {\n /** @type {?} */\n TreeNode.prototype.row;\n /** @type {?} */\n TreeNode.prototype.parent;\n /** @type {?} */\n TreeNode.prototype.children;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Converts strings from something to camel case\n * http://stackoverflow.com/questions/10425287/convert-dash-separated-string-to-camelcase\n * @param {?} str\n * @return {?}\n */\nfunction camelCase(str) {\n // Replace special characters with a space\n str = str.replace(/[^a-zA-Z0-9 ]/g, ' ');\n // put a space before an uppercase letter\n str = str.replace(/([a-z](?=[A-Z]))/g, '$1 ');\n // Lower case first character and some other stuff\n str = str\n .replace(/([^a-zA-Z0-9 ])|^[0-9]+/g, '')\n .trim()\n .toLowerCase();\n // uppercase characters preceded by a space or number\n str = str.replace(/([ 0-9]+)([a-zA-Z])/g, (/**\n * @param {?} a\n * @param {?} b\n * @param {?} c\n * @return {?}\n */\n function (a, b, c) {\n return b.trim() + c.toUpperCase();\n }));\n return str;\n}\n/**\n * Converts strings from camel case to words\n * http://stackoverflow.com/questions/7225407/convert-camelcasetext-to-camel-case-text\n * @param {?} str\n * @return {?}\n */\nfunction deCamelCase(str) {\n return str.replace(/([A-Z])/g, (/**\n * @param {?} match\n * @return {?}\n */\n match => ` ${match}`)).replace(/^./, (/**\n * @param {?} match\n * @return {?}\n */\n match => match.toUpperCase()));\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Creates a unique object id.\n * http://stackoverflow.com/questions/6248666/how-to-generate-short-uid-like-ax4j9z-in-js\n * @return {?}\n */\nfunction id() {\n return ('0000' + ((Math.random() * Math.pow(36, 4)) << 0).toString(36)).slice(-4);\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Sets the column defaults\n * @param {?} columns\n * @return {?}\n */\nfunction setColumnDefaults(columns) {\n if (!columns)\n return;\n // Only one column should hold the tree view\n // Thus if multiple columns are provided with\n // isTreeColumn as true we take only the first one\n /** @type {?} */\n let treeColumnFound = false;\n for (const column of columns) {\n if (!column.$$id) {\n column.$$id = id();\n }\n // prop can be numeric; zero is valid not a missing prop\n // translate name => prop\n if (isNullOrUndefined(column.prop) && column.name) {\n column.prop = camelCase(column.name);\n }\n if (!column.$$valueGetter) {\n column.$$valueGetter = getterForProp(column.prop);\n }\n // format props if no name passed\n if (!isNullOrUndefined(column.prop) && isNullOrUndefined(column.name)) {\n column.name = deCamelCase(String(column.prop));\n }\n if (isNullOrUndefined(column.prop) && isNullOrUndefined(column.name)) {\n column.name = ''; // Fixes IE and Edge displaying `null`\n }\n if (!column.hasOwnProperty('resizeable')) {\n column.resizeable = true;\n }\n if (!column.hasOwnProperty('sortable')) {\n column.sortable = true;\n }\n if (!column.hasOwnProperty('draggable')) {\n column.draggable = true;\n }\n if (!column.hasOwnProperty('canAutoResize')) {\n column.canAutoResize = true;\n }\n if (!column.hasOwnProperty('width')) {\n column.width = 150;\n }\n if (!column.hasOwnProperty('isTreeColumn')) {\n column.isTreeColumn = false;\n }\n else {\n if (column.isTreeColumn && !treeColumnFound) {\n // If the first column with isTreeColumn is true found\n // we mark that treeCoulmn is found\n treeColumnFound = true;\n }\n else {\n // After that isTreeColumn property for any other column\n // will be set as false\n column.isTreeColumn = false;\n }\n }\n }\n}\n/**\n * @template T\n * @param {?} value\n * @return {?}\n */\nfunction isNullOrUndefined(value) {\n return value === null || value === undefined;\n}\n/**\n * Translates templates definitions to objects\n * @param {?} templates\n * @return {?}\n */\nfunction translateTemplates(templates) {\n /** @type {?} */\n const result = [];\n for (const temp of templates) {\n /** @type {?} */\n const col = {};\n /** @type {?} */\n const props = Object.getOwnPropertyNames(temp);\n for (const prop of props) {\n col[prop] = temp[prop];\n }\n if (temp.headerTemplate) {\n col.headerTemplate = temp.headerTemplate;\n }\n if (temp.cellTemplate) {\n col.cellTemplate = temp.cellTemplate;\n }\n if (temp.summaryFunc) {\n col.summaryFunc = temp.summaryFunc;\n }\n if (temp.summaryTemplate) {\n col.summaryTemplate = temp.summaryTemplate;\n }\n result.push(col);\n }\n return result;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @enum {string} */\nconst ColumnMode = {\n standard: 'standard',\n flex: 'flex',\n force: 'force',\n};\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @enum {string} */\nconst SelectionType = {\n single: 'single',\n multi: 'multi',\n multiClick: 'multiClick',\n cell: 'cell',\n checkbox: 'checkbox',\n};\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @enum {string} */\nconst SortType = {\n single: 'single',\n multi: 'multi',\n};\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @enum {string} */\nconst ContextmenuType = {\n header: 'header',\n body: 'body',\n};\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nclass DataTableColumnHeaderDirective {\n /**\n * @param {?} template\n */\n constructor(template) {\n this.template = template;\n }\n}\nDataTableColumnHeaderDirective.ɵfac = function DataTableColumnHeaderDirective_Factory(t) { return new (t || DataTableColumnHeaderDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nDataTableColumnHeaderDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: DataTableColumnHeaderDirective, selectors: [[\"\", \"ngx-datatable-header-template\", \"\"]] });\n/** @nocollapse */\nDataTableColumnHeaderDirective.ctorParameters = () => [\n { type: TemplateRef }\n];\nif (false) {\n /** @type {?} */\n DataTableColumnHeaderDirective.prototype.template;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nclass DataTableColumnCellDirective {\n /**\n * @param {?} template\n */\n constructor(template) {\n this.template = template;\n }\n}\nDataTableColumnCellDirective.ɵfac = function DataTableColumnCellDirective_Factory(t) { return new (t || DataTableColumnCellDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nDataTableColumnCellDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: DataTableColumnCellDirective, selectors: [[\"\", \"ngx-datatable-cell-template\", \"\"]] });\n/** @nocollapse */\nDataTableColumnCellDirective.ctorParameters = () => [\n { type: TemplateRef }\n];\nif (false) {\n /** @type {?} */\n DataTableColumnCellDirective.prototype.template;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nclass DataTableColumnCellTreeToggle {\n /**\n * @param {?} template\n */\n constructor(template) {\n this.template = template;\n }\n}\nDataTableColumnCellTreeToggle.ɵfac = function DataTableColumnCellTreeToggle_Factory(t) { return new (t || DataTableColumnCellTreeToggle)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nDataTableColumnCellTreeToggle.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: DataTableColumnCellTreeToggle, selectors: [[\"\", \"ngx-datatable-tree-toggle\", \"\"]] });\n/** @nocollapse */\nDataTableColumnCellTreeToggle.ctorParameters = () => [\n { type: TemplateRef }\n];\nif (false) {\n /** @type {?} */\n DataTableColumnCellTreeToggle.prototype.template;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nclass DataTableColumnDirective {\n /**\n * @param {?} columnChangesService\n */\n constructor(columnChangesService) {\n this.columnChangesService = columnChangesService;\n this.isFirstChange = true;\n }\n /**\n * @return {?}\n */\n get cellTemplate() {\n return this._cellTemplateInput || this._cellTemplateQuery;\n }\n /**\n * @return {?}\n */\n get headerTemplate() {\n return this._headerTemplateInput || this._headerTemplateQuery;\n }\n /**\n * @return {?}\n */\n get treeToggleTemplate() {\n return this._treeToggleTemplateInput || this._treeToggleTemplateQuery;\n }\n /**\n * @return {?}\n */\n ngOnChanges() {\n if (this.isFirstChange) {\n this.isFirstChange = false;\n }\n else {\n this.columnChangesService.onInputChange();\n }\n }\n}\nDataTableColumnDirective.ɵfac = function DataTableColumnDirective_Factory(t) { return new (t || DataTableColumnDirective)(ɵngcc0.ɵɵdirectiveInject(ColumnChangesService)); };\nDataTableColumnDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: DataTableColumnDirective, selectors: [[\"ngx-datatable-column\"]], contentQueries: function DataTableColumnDirective_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, DataTableColumnCellDirective, 7, TemplateRef);\n ɵngcc0.ɵɵcontentQuery(dirIndex, DataTableColumnHeaderDirective, 7, TemplateRef);\n ɵngcc0.ɵɵcontentQuery(dirIndex, DataTableColumnCellTreeToggle, 7, TemplateRef);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._cellTemplateQuery = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._headerTemplateQuery = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._treeToggleTemplateQuery = _t.first);\n } }, inputs: { name: \"name\", prop: \"prop\", frozenLeft: \"frozenLeft\", frozenRight: \"frozenRight\", flexGrow: \"flexGrow\", resizeable: \"resizeable\", comparator: \"comparator\", pipe: \"pipe\", sortable: \"sortable\", draggable: \"draggable\", canAutoResize: \"canAutoResize\", minWidth: \"minWidth\", width: \"width\", maxWidth: \"maxWidth\", checkboxable: \"checkboxable\", headerCheckboxable: \"headerCheckboxable\", headerClass: \"headerClass\", cellClass: \"cellClass\", isTreeColumn: \"isTreeColumn\", treeLevelIndent: \"treeLevelIndent\", summaryFunc: \"summaryFunc\", summaryTemplate: \"summaryTemplate\", _cellTemplateInput: [\"cellTemplate\", \"_cellTemplateInput\"], _headerTemplateInput: [\"headerTemplate\", \"_headerTemplateInput\"], _treeToggleTemplateInput: [\"treeToggleTemplate\", \"_treeToggleTemplateInput\"] }, features: [ɵngcc0.ɵɵNgOnChangesFeature] });\n/** @nocollapse */\nDataTableColumnDirective.ctorParameters = () => [\n { type: ColumnChangesService }\n];\nDataTableColumnDirective.propDecorators = {\n name: [{ type: Input }],\n prop: [{ type: Input }],\n frozenLeft: [{ type: Input }],\n frozenRight: [{ type: Input }],\n flexGrow: [{ type: Input }],\n resizeable: [{ type: Input }],\n comparator: [{ type: Input }],\n pipe: [{ type: Input }],\n sortable: [{ type: Input }],\n draggable: [{ type: Input }],\n canAutoResize: [{ type: Input }],\n minWidth: [{ type: Input }],\n width: [{ type: Input }],\n maxWidth: [{ type: Input }],\n checkboxable: [{ type: Input }],\n headerCheckboxable: [{ type: Input }],\n headerClass: [{ type: Input }],\n cellClass: [{ type: Input }],\n isTreeColumn: [{ type: Input }],\n treeLevelIndent: [{ type: Input }],\n summaryFunc: [{ type: Input }],\n summaryTemplate: [{ type: Input }],\n _cellTemplateInput: [{ type: Input, args: ['cellTemplate',] }],\n _cellTemplateQuery: [{ type: ContentChild, args: [DataTableColumnCellDirective, { read: TemplateRef, static: true },] }],\n _headerTemplateInput: [{ type: Input, args: ['headerTemplate',] }],\n _headerTemplateQuery: [{ type: ContentChild, args: [DataTableColumnHeaderDirective, { read: TemplateRef, static: true },] }],\n _treeToggleTemplateInput: [{ type: Input, args: ['treeToggleTemplate',] }],\n _treeToggleTemplateQuery: [{ type: ContentChild, args: [DataTableColumnCellTreeToggle, { read: TemplateRef, static: true },] }]\n};\nif (false) {\n /** @type {?} */\n DataTableColumnDirective.prototype.name;\n /** @type {?} */\n DataTableColumnDirective.prototype.prop;\n /** @type {?} */\n DataTableColumnDirective.prototype.frozenLeft;\n /** @type {?} */\n DataTableColumnDirective.prototype.frozenRight;\n /** @type {?} */\n DataTableColumnDirective.prototype.flexGrow;\n /** @type {?} */\n DataTableColumnDirective.prototype.resizeable;\n /** @type {?} */\n DataTableColumnDirective.prototype.comparator;\n /** @type {?} */\n DataTableColumnDirective.prototype.pipe;\n /** @type {?} */\n DataTableColumnDirective.prototype.sortable;\n /** @type {?} */\n DataTableColumnDirective.prototype.draggable;\n /** @type {?} */\n DataTableColumnDirective.prototype.canAutoResize;\n /** @type {?} */\n DataTableColumnDirective.prototype.minWidth;\n /** @type {?} */\n DataTableColumnDirective.prototype.width;\n /** @type {?} */\n DataTableColumnDirective.prototype.maxWidth;\n /** @type {?} */\n DataTableColumnDirective.prototype.checkboxable;\n /** @type {?} */\n DataTableColumnDirective.prototype.headerCheckboxable;\n /** @type {?} */\n DataTableColumnDirective.prototype.headerClass;\n /** @type {?} */\n DataTableColumnDirective.prototype.cellClass;\n /** @type {?} */\n DataTableColumnDirective.prototype.isTreeColumn;\n /** @type {?} */\n DataTableColumnDirective.prototype.treeLevelIndent;\n /** @type {?} */\n DataTableColumnDirective.prototype.summaryFunc;\n /** @type {?} */\n DataTableColumnDirective.prototype.summaryTemplate;\n /** @type {?} */\n DataTableColumnDirective.prototype._cellTemplateInput;\n /** @type {?} */\n DataTableColumnDirective.prototype._cellTemplateQuery;\n /** @type {?} */\n DataTableColumnDirective.prototype._headerTemplateInput;\n /** @type {?} */\n DataTableColumnDirective.prototype._headerTemplateQuery;\n /** @type {?} */\n DataTableColumnDirective.prototype._treeToggleTemplateInput;\n /** @type {?} */\n DataTableColumnDirective.prototype._treeToggleTemplateQuery;\n /**\n * @type {?}\n * @private\n */\n DataTableColumnDirective.prototype.isFirstChange;\n /**\n * @type {?}\n * @private\n */\n DataTableColumnDirective.prototype.columnChangesService;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nclass DatatableRowDetailTemplateDirective {\n /**\n * @param {?} template\n */\n constructor(template) {\n this.template = template;\n }\n}\nDatatableRowDetailTemplateDirective.ɵfac = function DatatableRowDetailTemplateDirective_Factory(t) { return new (t || DatatableRowDetailTemplateDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.TemplateRef)); };\nDatatableRowDetailTemplateDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: DatatableRowDetailTemplateDirective, selectors: [[\"\", \"ngx-datatable-row-detail-template\", \"\"]] });\n/** @nocollapse */\nDatatableRowDetailTemplateDirective.ctorParameters = () => [\n { type: TemplateRef }\n];\nif (false) {\n /** @type {?} */\n DatatableRowDetailTemplateDirective.prototype.template;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nclass DatatableRowDetailDirective {\n constructor() {\n /**\n * The detail row height is required especially\n * when virtual scroll is enabled.\n */\n this.rowHeight = 0;\n /**\n * Row detail row visbility was toggled.\n */\n this.toggle = new EventEmitter();\n }\n /**\n * @return {?}\n */\n get template() {\n return this._templateInput || this._templateQuery;\n }\n /**\n * Toggle the expansion of the row\n * @param {?} row\n * @return {?}\n */\n toggleExpandRow(row) {\n this.toggle.emit({\n type: 'row',\n value: row\n });\n }\n /**\n * API method to expand all the rows.\n * @return {?}\n */\n expandAllRows() {\n this.toggle.emit({\n type: 'all',\n value: true\n });\n }\n /**\n * API method to collapse all the rows.\n * @return {?}\n */\n collapseAllRows() {\n this.toggle.emit({\n type: 'all',\n value: false\n });\n }\n}\nDatatableRowDetailDirective.ɵfac = function DatatableRowDetailDirective_Factory(t) { return new (t || DatatableRowDetailDirective)(); };\nDatatableRowDetailDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: DatatableRowDetailDirective, selectors: [[\"ngx-datatable-row-detail\"]], contentQueries: function DatatableRowDetailDirective_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, DatatableRowDetailTemplateDirective, 7, TemplateRef);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._templateQuery = _t.first);\n } }, inputs: { rowHeight: \"rowHeight\", _templateInput: [\"template\", \"_templateInput\"] }, outputs: { toggle: \"toggle\" } });\nDatatableRowDetailDirective.propDecorators = {\n rowHeight: [{ type: Input }],\n _templateInput: [{ type: Input, args: ['template',] }],\n _templateQuery: [{ type: ContentChild, args: [DatatableRowDetailTemplateDirective, { read: TemplateRef, static: true },] }],\n toggle: [{ type: Output }]\n};\nif (false) {\n /**\n * The detail row height is required especially\n * when virtual scroll is enabled.\n * @type {?}\n */\n DatatableRowDetailDirective.prototype.rowHeight;\n /** @type {?} */\n DatatableRowDetailDirective.prototype._templateInput;\n /** @type {?} */\n DatatableRowDetailDirective.prototype._templateQuery;\n /**\n * Row detail row visbility was toggled.\n * @type {?}\n */\n DatatableRowDetailDirective.prototype.toggle;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nclass DatatableFooterDirective {\n /**\n * @return {?}\n */\n get template() {\n return this._templateInput || this._templateQuery;\n }\n}\nDatatableFooterDirective.ɵfac = function DatatableFooterDirective_Factory(t) { return new (t || DatatableFooterDirective)(); };\nDatatableFooterDirective.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: DatatableFooterDirective, selectors: [[\"ngx-datatable-footer\"]], contentQueries: function DatatableFooterDirective_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, DataTableFooterTemplateDirective, 5, TemplateRef);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._templateQuery = _t.first);\n } }, inputs: { footerHeight: \"footerHeight\", totalMessage: \"totalMessage\", selectedMessage: \"selectedMessage\", pagerLeftArrowIcon: \"pagerLeftArrowIcon\", pagerRightArrowIcon: \"pagerRightArrowIcon\", pagerPreviousIcon: \"pagerPreviousIcon\", pagerNextIcon: \"pagerNextIcon\", _templateInput: [\"template\", \"_templateInput\"] } });\nDatatableFooterDirective.propDecorators = {\n footerHeight: [{ type: Input }],\n totalMessage: [{ type: Input }],\n selectedMessage: [{ type: Input }],\n pagerLeftArrowIcon: [{ type: Input }],\n pagerRightArrowIcon: [{ type: Input }],\n pagerPreviousIcon: [{ type: Input }],\n pagerNextIcon: [{ type: Input }],\n _templateInput: [{ type: Input, args: ['template',] }],\n _templateQuery: [{ type: ContentChild, args: [DataTableFooterTemplateDirective, { read: TemplateRef, static: false },] }]\n};\nif (false) {\n /** @type {?} */\n DatatableFooterDirective.prototype.footerHeight;\n /** @type {?} */\n DatatableFooterDirective.prototype.totalMessage;\n /** @type {?} */\n DatatableFooterDirective.prototype.selectedMessage;\n /** @type {?} */\n DatatableFooterDirective.prototype.pagerLeftArrowIcon;\n /** @type {?} */\n DatatableFooterDirective.prototype.pagerRightArrowIcon;\n /** @type {?} */\n DatatableFooterDirective.prototype.pagerPreviousIcon;\n /** @type {?} */\n DatatableFooterDirective.prototype.pagerNextIcon;\n /** @type {?} */\n DatatableFooterDirective.prototype._templateInput;\n /** @type {?} */\n DatatableFooterDirective.prototype._templateQuery;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Returns the columns by pin.\n * @param {?} cols\n * @return {?}\n */\nfunction columnsByPin(cols) {\n /** @type {?} */\n const ret = {\n left: [],\n center: [],\n right: []\n };\n if (cols) {\n for (const col of cols) {\n if (col.frozenLeft) {\n ret.left.push(col);\n }\n else if (col.frozenRight) {\n ret.right.push(col);\n }\n else {\n ret.center.push(col);\n }\n }\n }\n return ret;\n}\n/**\n * Returns the widths of all group sets of a column\n * @param {?} groups\n * @param {?} all\n * @return {?}\n */\nfunction columnGroupWidths(groups, all) {\n return {\n left: columnTotalWidth(groups.left),\n center: columnTotalWidth(groups.center),\n right: columnTotalWidth(groups.right),\n total: Math.floor(columnTotalWidth(all))\n };\n}\n/**\n * Calculates the total width of all columns and their groups\n * @param {?} columns\n * @param {?=} prop\n * @return {?}\n */\nfunction columnTotalWidth(columns, prop) {\n /** @type {?} */\n let totalWidth = 0;\n if (columns) {\n for (const c of columns) {\n /** @type {?} */\n const has = prop && c[prop];\n /** @type {?} */\n const width = has ? c[prop] : c.width;\n totalWidth = totalWidth + parseFloat(width);\n }\n }\n return totalWidth;\n}\n/**\n * Calculates the total width of all columns and their groups\n * @param {?} columns\n * @param {?=} prop\n * @return {?}\n */\nfunction columnsTotalWidth(columns, prop) {\n /** @type {?} */\n let totalWidth = 0;\n for (const column of columns) {\n /** @type {?} */\n const has = prop && column[prop];\n totalWidth = totalWidth + (has ? column[prop] : column.width);\n }\n return totalWidth;\n}\n/**\n * @param {?} val\n * @return {?}\n */\nfunction columnsByPinArr(val) {\n /** @type {?} */\n const colsByPinArr = [];\n /** @type {?} */\n const colsByPin = columnsByPin(val);\n colsByPinArr.push({ type: 'left', columns: colsByPin['left'] });\n colsByPinArr.push({ type: 'center', columns: colsByPin['center'] });\n colsByPinArr.push({ type: 'right', columns: colsByPin['right'] });\n return colsByPinArr;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * This object contains the cache of the various row heights that are present inside\n * the data table. Its based on Fenwick tree data structure that helps with\n * querying sums that have time complexity of log n.\n *\n * Fenwick Tree Credits: http://petr-mitrichev.blogspot.com/2013/05/fenwick-tree-range-updates.html\n * https://github.com/mikolalysenko/fenwick-tree\n *\n */\nclass RowHeightCache {\n constructor() {\n /**\n * Tree Array stores the cumulative information of the row heights to perform efficient\n * range queries and updates. Currently the tree is initialized to the base row\n * height instead of the detail row height.\n */\n this.treeArray = [];\n }\n /**\n * Clear the Tree array.\n * @return {?}\n */\n clearCache() {\n this.treeArray = [];\n }\n /**\n * Initialize the Fenwick tree with row Heights.\n *\n * @param {?} details\n * @return {?}\n */\n initCache(details) {\n const { rows, rowHeight, detailRowHeight, externalVirtual, rowCount, rowIndexes, rowExpansions } = details;\n /** @type {?} */\n const isFn = typeof rowHeight === 'function';\n /** @type {?} */\n const isDetailFn = typeof detailRowHeight === 'function';\n if (!isFn && isNaN(rowHeight)) {\n throw new Error(`Row Height cache initialization failed. Please ensure that 'rowHeight' is a\n valid number or function value: (${rowHeight}) when 'scrollbarV' is enabled.`);\n }\n // Add this additional guard in case detailRowHeight is set to 'auto' as it wont work.\n if (!isDetailFn && isNaN(detailRowHeight)) {\n throw new Error(`Row Height cache initialization failed. Please ensure that 'detailRowHeight' is a\n valid number or function value: (${detailRowHeight}) when 'scrollbarV' is enabled.`);\n }\n /** @type {?} */\n const n = externalVirtual ? rowCount : rows.length;\n this.treeArray = new Array(n);\n for (let i = 0; i < n; ++i) {\n this.treeArray[i] = 0;\n }\n for (let i = 0; i < n; ++i) {\n /** @type {?} */\n const row = rows[i];\n /** @type {?} */\n let currentRowHeight = rowHeight;\n if (isFn) {\n currentRowHeight = rowHeight(row);\n }\n // Add the detail row height to the already expanded rows.\n // This is useful for the table that goes through a filter or sort.\n /** @type {?} */\n const expanded = rowExpansions.get(row);\n if (row && expanded === 1) {\n if (isDetailFn) {\n /** @type {?} */\n const index = rowIndexes.get(row);\n currentRowHeight += detailRowHeight(row, index);\n }\n else {\n currentRowHeight += detailRowHeight;\n }\n }\n this.update(i, currentRowHeight);\n }\n }\n /**\n * Given the ScrollY position i.e. sum, provide the rowIndex\n * that is present in the current view port. Below handles edge cases.\n * @param {?} scrollY\n * @return {?}\n */\n getRowIndex(scrollY) {\n if (scrollY === 0)\n return 0;\n return this.calcRowIndex(scrollY);\n }\n /**\n * When a row is expanded or rowHeight is changed, update the height. This can\n * be utilized in future when Angular Data table supports dynamic row heights.\n * @param {?} atRowIndex\n * @param {?} byRowHeight\n * @return {?}\n */\n update(atRowIndex, byRowHeight) {\n if (!this.treeArray.length) {\n throw new Error(`Update at index ${atRowIndex} with value ${byRowHeight} failed:\n Row Height cache not initialized.`);\n }\n /** @type {?} */\n const n = this.treeArray.length;\n atRowIndex |= 0;\n while (atRowIndex < n) {\n this.treeArray[atRowIndex] += byRowHeight;\n atRowIndex |= atRowIndex + 1;\n }\n }\n /**\n * Range Sum query from 1 to the rowIndex\n * @param {?} atIndex\n * @return {?}\n */\n query(atIndex) {\n if (!this.treeArray.length) {\n throw new Error(`query at index ${atIndex} failed: Fenwick tree array not initialized.`);\n }\n /** @type {?} */\n let sum = 0;\n atIndex |= 0;\n while (atIndex >= 0) {\n sum += this.treeArray[atIndex];\n atIndex = (atIndex & (atIndex + 1)) - 1;\n }\n return sum;\n }\n /**\n * Find the total height between 2 row indexes\n * @param {?} atIndexA\n * @param {?} atIndexB\n * @return {?}\n */\n queryBetween(atIndexA, atIndexB) {\n return this.query(atIndexB) - this.query(atIndexA - 1);\n }\n /**\n * Given the ScrollY position i.e. sum, provide the rowIndex\n * that is present in the current view port.\n * @private\n * @param {?} sum\n * @return {?}\n */\n calcRowIndex(sum) {\n if (!this.treeArray.length)\n return 0;\n /** @type {?} */\n let pos = -1;\n /** @type {?} */\n const dataLength = this.treeArray.length;\n // Get the highest bit for the block size.\n /** @type {?} */\n const highestBit = Math.pow(2, dataLength.toString(2).length - 1);\n for (let blockSize = highestBit; blockSize !== 0; blockSize >>= 1) {\n /** @type {?} */\n const nextPos = pos + blockSize;\n if (nextPos < dataLength && sum >= this.treeArray[nextPos]) {\n sum -= this.treeArray[nextPos];\n pos = nextPos;\n }\n }\n return pos + 1;\n }\n}\nif (false) {\n /**\n * Tree Array stores the cumulative information of the row heights to perform efficient\n * range queries and updates. Currently the tree is initialized to the base row\n * height instead of the detail row height.\n * @type {?}\n * @private\n */\n RowHeightCache.prototype.treeArray;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @type {?} */\nconst cache = {};\n/** @type {?} */\nconst testStyle = typeof document !== 'undefined' ? document.createElement('div').style : undefined;\n// Get Prefix\n// http://davidwalsh.name/vendor-prefix\nconst ɵ0 = /**\n * @return {?}\n */\nfunction () {\n /** @type {?} */\n const styles = typeof window !== 'undefined' ? window.getComputedStyle(document.documentElement, '') : undefined;\n /** @type {?} */\n const match = typeof styles !== 'undefined'\n ? Array.prototype.slice\n .call(styles)\n .join('')\n .match(/-(moz|webkit|ms)-/)\n : null;\n /** @type {?} */\n const pre = match !== null ? match[1] : undefined;\n // tslint:disable-next-line: tsr-detect-non-literal-regexp\n /** @type {?} */\n const dom = typeof pre !== 'undefined' ? 'WebKit|Moz|MS|O'.match(new RegExp('(' + pre + ')', 'i'))[1] : undefined;\n return dom\n ? {\n dom,\n lowercase: pre,\n css: `-${pre}-`,\n js: pre[0].toUpperCase() + pre.substr(1)\n }\n : undefined;\n};\n/** @type {?} */\nconst prefix = ((ɵ0))();\n/**\n * @param {?} property\n * @return {?}\n */\nfunction getVendorPrefixedName(property) {\n /** @type {?} */\n const name = camelCase(property);\n if (!cache[name]) {\n if (prefix !== undefined && testStyle[prefix.css + property] !== undefined) {\n cache[name] = prefix.css + property;\n }\n else if (testStyle[property] !== undefined) {\n cache[name] = property;\n }\n }\n return cache[name];\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n// browser detection and prefixing tools\n/** @type {?} */\nconst transform = typeof window !== 'undefined' ? getVendorPrefixedName('transform') : undefined;\n/** @type {?} */\nconst backfaceVisibility = typeof window !== 'undefined' ? getVendorPrefixedName('backfaceVisibility') : undefined;\n/** @type {?} */\nconst hasCSSTransforms = typeof window !== 'undefined' ? !!getVendorPrefixedName('transform') : undefined;\n/** @type {?} */\nconst hasCSS3DTransforms = typeof window !== 'undefined' ? !!getVendorPrefixedName('perspective') : undefined;\n/** @type {?} */\nconst ua = typeof window !== 'undefined' ? window.navigator.userAgent : 'Chrome';\n/** @type {?} */\nconst isSafari = /Safari\\//.test(ua) && !/Chrome\\//.test(ua);\n/**\n * @param {?} styles\n * @param {?} x\n * @param {?} y\n * @return {?}\n */\nfunction translateXY(styles, x, y) {\n if (typeof transform !== 'undefined' && hasCSSTransforms) {\n if (!isSafari && hasCSS3DTransforms) {\n styles[transform] = `translate3d(${x}px, ${y}px, 0)`;\n styles[backfaceVisibility] = 'hidden';\n }\n else {\n styles[camelCase(transform)] = `translate(${x}px, ${y}px)`;\n }\n }\n else {\n styles.top = `${y}px`;\n styles.left = `${x}px`;\n }\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nclass DataTableBodyComponent {\n /**\n * Creates an instance of DataTableBodyComponent.\n * @param {?} cd\n */\n constructor(cd) {\n this.cd = cd;\n this.selected = [];\n this.scroll = new EventEmitter();\n this.page = new EventEmitter();\n this.activate = new EventEmitter();\n this.select = new EventEmitter();\n this.detailToggle = new EventEmitter();\n this.rowContextmenu = new EventEmitter(false);\n this.treeAction = new EventEmitter();\n this.rowHeightsCache = new RowHeightCache();\n this.temp = [];\n this.offsetY = 0;\n this.indexes = {};\n this.rowIndexes = new Map();\n this.rowExpansions = new Map();\n /**\n * Get the height of the detail row.\n */\n this.getDetailRowHeight = (/**\n * @param {?=} row\n * @param {?=} index\n * @return {?}\n */\n (row, index) => {\n if (!this.rowDetail) {\n return 0;\n }\n /** @type {?} */\n const rowHeight = this.rowDetail.rowHeight;\n return typeof rowHeight === 'function' ? rowHeight(row, index) : ((/** @type {?} */ (rowHeight)));\n });\n // declare fn here so we can get access to the `this` property\n this.rowTrackingFn = (/**\n * @param {?} index\n * @param {?} row\n * @return {?}\n */\n (index, row) => {\n /** @type {?} */\n const idx = this.getRowIndex(row);\n if (this.trackByProp) {\n return row[this.trackByProp];\n }\n else {\n return idx;\n }\n });\n }\n /**\n * @param {?} val\n * @return {?}\n */\n set pageSize(val) {\n this._pageSize = val;\n this.recalcLayout();\n }\n /**\n * @return {?}\n */\n get pageSize() {\n return this._pageSize;\n }\n /**\n * @param {?} val\n * @return {?}\n */\n set rows(val) {\n this._rows = val;\n this.rowExpansions.clear();\n this.recalcLayout();\n }\n /**\n * @return {?}\n */\n get rows() {\n return this._rows;\n }\n /**\n * @param {?} val\n * @return {?}\n */\n set columns(val) {\n this._columns = val;\n /** @type {?} */\n const colsByPin = columnsByPin(val);\n this.columnGroupWidths = columnGroupWidths(colsByPin, val);\n }\n /**\n * @return {?}\n */\n get columns() {\n return this._columns;\n }\n /**\n * @param {?} val\n * @return {?}\n */\n set offset(val) {\n this._offset = val;\n this.recalcLayout();\n }\n /**\n * @return {?}\n */\n get offset() {\n return this._offset;\n }\n /**\n * @param {?} val\n * @return {?}\n */\n set rowCount(val) {\n this._rowCount = val;\n this.recalcLayout();\n }\n /**\n * @return {?}\n */\n get rowCount() {\n return this._rowCount;\n }\n /**\n * @return {?}\n */\n get bodyWidth() {\n if (this.scrollbarH) {\n return this.innerWidth + 'px';\n }\n else {\n return '100%';\n }\n }\n /**\n * @param {?} val\n * @return {?}\n */\n set bodyHeight(val) {\n if (this.scrollbarV) {\n this._bodyHeight = val + 'px';\n }\n else {\n this._bodyHeight = 'auto';\n }\n this.recalcLayout();\n }\n /**\n * @return {?}\n */\n get bodyHeight() {\n return this._bodyHeight;\n }\n /**\n * Returns if selection is enabled.\n * @return {?}\n */\n get selectEnabled() {\n return !!this.selectionType;\n }\n /**\n * Property that would calculate the height of scroll bar\n * based on the row heights cache for virtual scroll and virtualization. Other scenarios\n * calculate scroll height automatically (as height will be undefined).\n * @return {?}\n */\n get scrollHeight() {\n if (this.scrollbarV && this.virtualization && this.rowCount) {\n return this.rowHeightsCache.query(this.rowCount - 1);\n }\n // avoid TS7030: Not all code paths return a value.\n return undefined;\n }\n /**\n * Called after the constructor, initializing input properties\n * @return {?}\n */\n ngOnInit() {\n if (this.rowDetail) {\n this.listener = this.rowDetail.toggle.subscribe((/**\n * @param {?} __0\n * @return {?}\n */\n ({ type, value }) => {\n if (type === 'row') {\n this.toggleRowExpansion(value);\n }\n if (type === 'all') {\n this.toggleAllRows(value);\n }\n // Refresh rows after toggle\n // Fixes #883\n this.updateIndexes();\n this.updateRows();\n this.cd.markForCheck();\n }));\n }\n if (this.groupHeader) {\n this.listener = this.groupHeader.toggle.subscribe((/**\n * @param {?} __0\n * @return {?}\n */\n ({ type, value }) => {\n if (type === 'group') {\n this.toggleRowExpansion(value);\n }\n if (type === 'all') {\n this.toggleAllRows(value);\n }\n // Refresh rows after toggle\n // Fixes #883\n this.updateIndexes();\n this.updateRows();\n this.cd.markForCheck();\n }));\n }\n }\n /**\n * Called once, before the instance is destroyed.\n * @return {?}\n */\n ngOnDestroy() {\n if (this.rowDetail || this.groupHeader) {\n this.listener.unsubscribe();\n }\n }\n /**\n * Updates the Y offset given a new offset.\n * @param {?=} offset\n * @return {?}\n */\n updateOffsetY(offset) {\n // scroller is missing on empty table\n if (!this.scroller) {\n return;\n }\n if (this.scrollbarV && this.virtualization && offset) {\n // First get the row Index that we need to move to.\n /** @type {?} */\n const rowIndex = this.pageSize * offset;\n offset = this.rowHeightsCache.query(rowIndex - 1);\n }\n else if (this.scrollbarV && !this.virtualization) {\n offset = 0;\n }\n this.scroller.setOffset(offset || 0);\n }\n /**\n * Body was scrolled, this is mainly useful for\n * when a user is server-side pagination via virtual scroll.\n * @param {?} event\n * @return {?}\n */\n onBodyScroll(event) {\n /** @type {?} */\n const scrollYPos = event.scrollYPos;\n /** @type {?} */\n const scrollXPos = event.scrollXPos;\n // if scroll change, trigger update\n // this is mainly used for header cell positions\n if (this.offsetY !== scrollYPos || this.offsetX !== scrollXPos) {\n this.scroll.emit({\n offsetY: scrollYPos,\n offsetX: scrollXPos\n });\n }\n this.offsetY = scrollYPos;\n this.offsetX = scrollXPos;\n this.updateIndexes();\n this.updatePage(event.direction);\n this.updateRows();\n }\n /**\n * Updates the page given a direction.\n * @param {?} direction\n * @return {?}\n */\n updatePage(direction) {\n /** @type {?} */\n let offset = this.indexes.first / this.pageSize;\n if (direction === 'up') {\n offset = Math.ceil(offset);\n }\n else if (direction === 'down') {\n offset = Math.floor(offset);\n }\n if (direction !== undefined && !isNaN(offset)) {\n this.page.emit({ offset });\n }\n }\n /**\n * Updates the rows in the view port\n * @return {?}\n */\n updateRows() {\n const { first, last } = this.indexes;\n /** @type {?} */\n let rowIndex = first;\n /** @type {?} */\n let idx = 0;\n /** @type {?} */\n const temp = [];\n this.rowIndexes.clear();\n // if grouprowsby has been specified treat row paging\n // parameters as group paging parameters ie if limit 10 has been\n // specified treat it as 10 groups rather than 10 rows\n if (this.groupedRows) {\n /** @type {?} */\n let maxRowsPerGroup = 3;\n // if there is only one group set the maximum number of\n // rows per group the same as the total number of rows\n if (this.groupedRows.length === 1) {\n maxRowsPerGroup = this.groupedRows[0].value.length;\n }\n while (rowIndex < last && rowIndex < this.groupedRows.length) {\n // Add the groups into this page\n /** @type {?} */\n const group = this.groupedRows[rowIndex];\n temp[idx] = group;\n idx++;\n // Group index in this context\n rowIndex++;\n }\n }\n else {\n while (rowIndex < last && rowIndex < this.rowCount) {\n /** @type {?} */\n const row = this.rows[rowIndex];\n if (row) {\n this.rowIndexes.set(row, rowIndex);\n temp[idx] = row;\n }\n idx++;\n rowIndex++;\n }\n }\n this.temp = temp;\n }\n /**\n * Get the row height\n * @param {?} row\n * @return {?}\n */\n getRowHeight(row) {\n // if its a function return it\n if (typeof this.rowHeight === 'function') {\n return this.rowHeight(row);\n }\n return (/** @type {?} */ (this.rowHeight));\n }\n /**\n * @param {?} group the group with all rows\n * @return {?}\n */\n getGroupHeight(group) {\n /** @type {?} */\n let rowHeight = 0;\n if (group.value) {\n for (let index = 0; index < group.value.length; index++) {\n rowHeight += this.getRowAndDetailHeight(group.value[index]);\n }\n }\n return rowHeight;\n }\n /**\n * Calculate row height based on the expanded state of the row.\n * @param {?} row\n * @return {?}\n */\n getRowAndDetailHeight(row) {\n /** @type {?} */\n let rowHeight = this.getRowHeight(row);\n /** @type {?} */\n const expanded = this.rowExpansions.get(row);\n // Adding detail row height if its expanded.\n if (expanded === 1) {\n rowHeight += this.getDetailRowHeight(row);\n }\n return rowHeight;\n }\n /**\n * Calculates the styles for the row so that the rows can be moved in 2D space\n * during virtual scroll inside the DOM. In the below case the Y position is\n * manipulated. As an example, if the height of row 0 is 30 px and row 1 is\n * 100 px then following styles are generated:\n *\n * transform: translate3d(0px, 0px, 0px); -> row0\n * transform: translate3d(0px, 30px, 0px); -> row1\n * transform: translate3d(0px, 130px, 0px); -> row2\n *\n * Row heights have to be calculated based on the row heights cache as we wont\n * be able to determine which row is of what height before hand. In the above\n * case the positionY of the translate3d for row2 would be the sum of all the\n * heights of the rows before it (i.e. row0 and row1).\n *\n * \\@memberOf DataTableBodyComponent\n * @param {?} rows the row that needs to be placed in the 2D space.\n * @return {?} the CSS3 style to be applied\n *\n */\n getRowsStyles(rows) {\n /** @type {?} */\n const styles = {};\n // only add styles for the group if there is a group\n if (this.groupedRows) {\n styles.width = this.columnGroupWidths.total;\n }\n if (this.scrollbarV && this.virtualization) {\n /** @type {?} */\n let idx = 0;\n if (this.groupedRows) {\n // Get the latest row rowindex in a group\n /** @type {?} */\n const row = rows[rows.length - 1];\n idx = row ? this.getRowIndex(row) : 0;\n }\n else {\n idx = this.getRowIndex(rows);\n }\n // const pos = idx * rowHeight;\n // The position of this row would be the sum of all row heights\n // until the previous row position.\n /** @type {?} */\n const pos = this.rowHeightsCache.query(idx - 1);\n translateXY(styles, 0, pos);\n }\n return styles;\n }\n /**\n * Calculate bottom summary row offset for scrollbar mode.\n * For more information about cache and offset calculation\n * see description for `getRowsStyles` method\n *\n * \\@memberOf DataTableBodyComponent\n * @return {?} the CSS3 style to be applied\n *\n */\n getBottomSummaryRowStyles() {\n if (!this.scrollbarV || !this.rows || !this.rows.length) {\n return null;\n }\n /** @type {?} */\n const styles = { position: 'absolute' };\n /** @type {?} */\n const pos = this.rowHeightsCache.query(this.rows.length - 1);\n translateXY(styles, 0, pos);\n return styles;\n }\n /**\n * Hides the loading indicator\n * @return {?}\n */\n hideIndicator() {\n setTimeout((/**\n * @return {?}\n */\n () => (this.loadingIndicator = false)), 500);\n }\n /**\n * Updates the index of the rows in the viewport\n * @return {?}\n */\n updateIndexes() {\n /** @type {?} */\n let first = 0;\n /** @type {?} */\n let last = 0;\n if (this.scrollbarV) {\n if (this.virtualization) {\n // Calculation of the first and last indexes will be based on where the\n // scrollY position would be at. The last index would be the one\n // that shows up inside the view port the last.\n /** @type {?} */\n const height = parseInt(this.bodyHeight, 0);\n first = this.rowHeightsCache.getRowIndex(this.offsetY);\n last = this.rowHeightsCache.getRowIndex(height + this.offsetY) + 1;\n }\n else {\n // If virtual rows are not needed\n // We render all in one go\n first = 0;\n last = this.rowCount;\n }\n }\n else {\n // The server is handling paging and will pass an array that begins with the\n // element at a specified offset. first should always be 0 with external paging.\n if (!this.externalPaging) {\n first = Math.max(this.offset * this.pageSize, 0);\n }\n last = Math.min(first + this.pageSize, this.rowCount);\n }\n this.indexes = { first, last };\n }\n /**\n * Refreshes the full Row Height cache. Should be used\n * when the entire row array state has changed.\n * @return {?}\n */\n refreshRowHeightCache() {\n if (!this.scrollbarV || (this.scrollbarV && !this.virtualization)) {\n return;\n }\n // clear the previous row height cache if already present.\n // this is useful during sorts, filters where the state of the\n // rows array is changed.\n this.rowHeightsCache.clearCache();\n // Initialize the tree only if there are rows inside the tree.\n if (this.rows && this.rows.length) {\n this.rowHeightsCache.initCache({\n rows: this.rows,\n rowHeight: this.rowHeight,\n detailRowHeight: this.getDetailRowHeight,\n externalVirtual: this.scrollbarV && this.externalPaging,\n rowCount: this.rowCount,\n rowIndexes: this.rowIndexes,\n rowExpansions: this.rowExpansions\n });\n }\n }\n /**\n * Gets the index for the view port\n * @return {?}\n */\n getAdjustedViewPortIndex() {\n // Capture the row index of the first row that is visible on the viewport.\n // If the scroll bar is just below the row which is highlighted then make that as the\n // first index.\n /** @type {?} */\n const viewPortFirstRowIndex = this.indexes.first;\n if (this.scrollbarV && this.virtualization) {\n /** @type {?} */\n const offsetScroll = this.rowHeightsCache.query(viewPortFirstRowIndex - 1);\n return offsetScroll <= this.offsetY ? viewPortFirstRowIndex - 1 : viewPortFirstRowIndex;\n }\n return viewPortFirstRowIndex;\n }\n /**\n * Toggle the Expansion of the row i.e. if the row is expanded then it will\n * collapse and vice versa. Note that the expanded status is stored as\n * a part of the row object itself as we have to preserve the expanded row\n * status in case of sorting and filtering of the row set.\n * @param {?} row\n * @return {?}\n */\n toggleRowExpansion(row) {\n // Capture the row index of the first row that is visible on the viewport.\n /** @type {?} */\n const viewPortFirstRowIndex = this.getAdjustedViewPortIndex();\n /** @type {?} */\n let expanded = this.rowExpansions.get(row);\n // If the detailRowHeight is auto --> only in case of non-virtualized scroll\n if (this.scrollbarV && this.virtualization) {\n /** @type {?} */\n const detailRowHeight = this.getDetailRowHeight(row) * (expanded ? -1 : 1);\n // const idx = this.rowIndexes.get(row) || 0;\n /** @type {?} */\n const idx = this.getRowIndex(row);\n this.rowHeightsCache.update(idx, detailRowHeight);\n }\n // Update the toggled row and update thive nevere heights in the cache.\n expanded = expanded ^= 1;\n this.rowExpansions.set(row, expanded);\n this.detailToggle.emit({\n rows: [row],\n currentIndex: viewPortFirstRowIndex\n });\n }\n /**\n * Expand/Collapse all the rows no matter what their state is.\n * @param {?} expanded\n * @return {?}\n */\n toggleAllRows(expanded) {\n // clear prev expansions\n this.rowExpansions.clear();\n /** @type {?} */\n const rowExpanded = expanded ? 1 : 0;\n // Capture the row index of the first row that is visible on the viewport.\n /** @type {?} */\n const viewPortFirstRowIndex = this.getAdjustedViewPortIndex();\n for (const row of this.rows) {\n this.rowExpansions.set(row, rowExpanded);\n }\n if (this.scrollbarV) {\n // Refresh the full row heights cache since every row was affected.\n this.recalcLayout();\n }\n // Emit all rows that have been expanded.\n this.detailToggle.emit({\n rows: this.rows,\n currentIndex: viewPortFirstRowIndex\n });\n }\n /**\n * Recalculates the table\n * @return {?}\n */\n recalcLayout() {\n this.refreshRowHeightCache();\n this.updateIndexes();\n this.updateRows();\n }\n /**\n * Tracks the column\n * @param {?} index\n * @param {?} column\n * @return {?}\n */\n columnTrackingFn(index, column) {\n return column.$$id;\n }\n /**\n * Gets the row pinning group styles\n * @param {?} group\n * @return {?}\n */\n stylesByGroup(group) {\n /** @type {?} */\n const widths = this.columnGroupWidths;\n /** @type {?} */\n const offsetX = this.offsetX;\n /** @type {?} */\n const styles = {\n width: `${widths[group]}px`\n };\n if (group === 'left') {\n translateXY(styles, offsetX, 0);\n }\n else if (group === 'right') {\n /** @type {?} */\n const bodyWidth = parseInt(this.innerWidth + '', 0);\n /** @type {?} */\n const totalDiff = widths.total - bodyWidth;\n /** @type {?} */\n const offsetDiff = totalDiff - offsetX;\n /** @type {?} */\n const offset = offsetDiff * -1;\n translateXY(styles, offset, 0);\n }\n return styles;\n }\n /**\n * Returns if the row was expanded and set default row expansion when row expansion is empty\n * @param {?} row\n * @return {?}\n */\n getRowExpanded(row) {\n if (this.rowExpansions.size === 0 && this.groupExpansionDefault) {\n for (const group of this.groupedRows) {\n this.rowExpansions.set(group, 1);\n }\n }\n /** @type {?} */\n const expanded = this.rowExpansions.get(row);\n return expanded === 1;\n }\n /**\n * Gets the row index given a row\n * @param {?} row\n * @return {?}\n */\n getRowIndex(row) {\n return this.rowIndexes.get(row) || 0;\n }\n /**\n * @param {?} row\n * @return {?}\n */\n onTreeAction(row) {\n this.treeAction.emit({ row });\n }\n}\nDataTableBodyComponent.ɵfac = function DataTableBodyComponent_Factory(t) { return new (t || DataTableBodyComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\nDataTableBodyComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: DataTableBodyComponent, selectors: [[\"datatable-body\"]], viewQuery: function DataTableBodyComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(ScrollerComponent, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.scroller = _t.first);\n } }, hostAttrs: [1, \"datatable-body\"], hostVars: 4, hostBindings: function DataTableBodyComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵstyleProp(\"width\", ctx.bodyWidth)(\"height\", ctx.bodyHeight);\n } }, inputs: { selected: \"selected\", pageSize: \"pageSize\", rows: \"rows\", columns: \"columns\", offset: \"offset\", rowCount: \"rowCount\", bodyHeight: \"bodyHeight\", offsetX: \"offsetX\", loadingIndicator: \"loadingIndicator\", scrollbarV: \"scrollbarV\", scrollbarH: \"scrollbarH\", externalPaging: \"externalPaging\", rowHeight: \"rowHeight\", emptyMessage: \"emptyMessage\", selectionType: \"selectionType\", rowIdentity: \"rowIdentity\", rowDetail: \"rowDetail\", groupHeader: \"groupHeader\", selectCheck: \"selectCheck\", displayCheck: \"displayCheck\", trackByProp: \"trackByProp\", rowClass: \"rowClass\", groupedRows: \"groupedRows\", groupExpansionDefault: \"groupExpansionDefault\", innerWidth: \"innerWidth\", groupRowsBy: \"groupRowsBy\", virtualization: \"virtualization\", summaryRow: \"summaryRow\", summaryPosition: \"summaryPosition\", summaryHeight: \"summaryHeight\" }, outputs: { scroll: \"scroll\", page: \"page\", activate: \"activate\", select: \"select\", detailToggle: \"detailToggle\", rowContextmenu: \"rowContextmenu\", treeAction: \"treeAction\" }, decls: 5, vars: 9, consts: [[3, \"selected\", \"rows\", \"selectCheck\", \"selectEnabled\", \"selectionType\", \"rowIdentity\", \"select\", \"activate\"], [\"selector\", \"\"], [4, \"ngIf\"], [3, \"scrollbarV\", \"scrollbarH\", \"scrollHeight\", \"scrollWidth\", \"scroll\", 4, \"ngIf\"], [\"class\", \"empty-row\", 3, \"innerHTML\", 4, \"ngIf\"], [3, \"scrollbarV\", \"scrollbarH\", \"scrollHeight\", \"scrollWidth\", \"scroll\"], [3, \"rowHeight\", \"offsetX\", \"innerWidth\", \"rows\", \"columns\", 4, \"ngIf\"], [3, \"groupedRows\", \"innerWidth\", \"ngStyle\", \"rowDetail\", \"groupHeader\", \"offsetX\", \"detailRowHeight\", \"row\", \"expanded\", \"rowIndex\", \"rowContextmenu\", 4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [3, \"ngStyle\", \"rowHeight\", \"offsetX\", \"innerWidth\", \"rows\", \"columns\", 4, \"ngIf\"], [3, \"rowHeight\", \"offsetX\", \"innerWidth\", \"rows\", \"columns\"], [3, \"groupedRows\", \"innerWidth\", \"ngStyle\", \"rowDetail\", \"groupHeader\", \"offsetX\", \"detailRowHeight\", \"row\", \"expanded\", \"rowIndex\", \"rowContextmenu\"], [\"tabindex\", \"-1\", 3, \"isSelected\", \"innerWidth\", \"offsetX\", \"columns\", \"rowHeight\", \"row\", \"rowIndex\", \"expanded\", \"rowClass\", \"displayCheck\", \"treeStatus\", \"treeAction\", \"activate\", 4, \"ngIf\", \"ngIfElse\"], [\"groupedRowsTemplate\", \"\"], [\"tabindex\", \"-1\", 3, \"isSelected\", \"innerWidth\", \"offsetX\", \"columns\", \"rowHeight\", \"row\", \"rowIndex\", \"expanded\", \"rowClass\", \"displayCheck\", \"treeStatus\", \"treeAction\", \"activate\"], [\"tabindex\", \"-1\", 3, \"isSelected\", \"innerWidth\", \"offsetX\", \"columns\", \"rowHeight\", \"row\", \"group\", \"rowIndex\", \"expanded\", \"rowClass\", \"activate\", 4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [\"tabindex\", \"-1\", 3, \"isSelected\", \"innerWidth\", \"offsetX\", \"columns\", \"rowHeight\", \"row\", \"group\", \"rowIndex\", \"expanded\", \"rowClass\", \"activate\"], [3, \"ngStyle\", \"rowHeight\", \"offsetX\", \"innerWidth\", \"rows\", \"columns\"], [1, \"empty-row\", 3, \"innerHTML\"]], template: function DataTableBodyComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"datatable-selection\", 0, 1);\n ɵngcc0.ɵɵlistener(\"select\", function DataTableBodyComponent_Template_datatable_selection_select_0_listener($event) { return ctx.select.emit($event); })(\"activate\", function DataTableBodyComponent_Template_datatable_selection_activate_0_listener($event) { return ctx.activate.emit($event); });\n ɵngcc0.ɵɵtemplate(2, DataTableBodyComponent_datatable_progress_2_Template, 1, 0, \"datatable-progress\", 2);\n ɵngcc0.ɵɵtemplate(3, DataTableBodyComponent_datatable_scroller_3_Template, 4, 8, \"datatable-scroller\", 3);\n ɵngcc0.ɵɵtemplate(4, DataTableBodyComponent_div_4_Template, 1, 1, \"div\", 4);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"selected\", ctx.selected)(\"rows\", ctx.rows)(\"selectCheck\", ctx.selectCheck)(\"selectEnabled\", ctx.selectEnabled)(\"selectionType\", ctx.selectionType)(\"rowIdentity\", ctx.rowIdentity);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.loadingIndicator);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.rows == null ? null : ctx.rows.length);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !(ctx.rows == null ? null : ctx.rows.length) && !ctx.loadingIndicator);\n } }, dependencies: function () { return [ɵngcc1.NgForOf, ɵngcc1.NgIf, ɵngcc1.NgStyle, ScrollerComponent, ProgressBarComponent, DataTableBodyRowComponent, DataTableRowWrapperComponent, DataTableSelectionComponent, DataTableSummaryRowComponent]; }, encapsulation: 2, changeDetection: 0 });\n/** @nocollapse */\nDataTableBodyComponent.ctorParameters = () => [\n { type: ChangeDetectorRef }\n];\nDataTableBodyComponent.propDecorators = {\n scrollbarV: [{ type: Input }],\n scrollbarH: [{ type: Input }],\n loadingIndicator: [{ type: Input }],\n externalPaging: [{ type: Input }],\n rowHeight: [{ type: Input }],\n offsetX: [{ type: Input }],\n emptyMessage: [{ type: Input }],\n selectionType: [{ type: Input }],\n selected: [{ type: Input }],\n rowIdentity: [{ type: Input }],\n rowDetail: [{ type: Input }],\n groupHeader: [{ type: Input }],\n selectCheck: [{ type: Input }],\n displayCheck: [{ type: Input }],\n trackByProp: [{ type: Input }],\n rowClass: [{ type: Input }],\n groupedRows: [{ type: Input }],\n groupExpansionDefault: [{ type: Input }],\n innerWidth: [{ type: Input }],\n groupRowsBy: [{ type: Input }],\n virtualization: [{ type: Input }],\n summaryRow: [{ type: Input }],\n summaryPosition: [{ type: Input }],\n summaryHeight: [{ type: Input }],\n pageSize: [{ type: Input }],\n rows: [{ type: Input }],\n columns: [{ type: Input }],\n offset: [{ type: Input }],\n rowCount: [{ type: Input }],\n bodyWidth: [{ type: HostBinding, args: ['style.width',] }],\n bodyHeight: [{ type: Input }, { type: HostBinding, args: ['style.height',] }],\n scroll: [{ type: Output }],\n page: [{ type: Output }],\n activate: [{ type: Output }],\n select: [{ type: Output }],\n detailToggle: [{ type: Output }],\n rowContextmenu: [{ type: Output }],\n treeAction: [{ type: Output }],\n scroller: [{ type: ViewChild, args: [ScrollerComponent, { static: false },] }]\n};\nif (false) {\n /** @type {?} */\n DataTableBodyComponent.prototype.scrollbarV;\n /** @type {?} */\n DataTableBodyComponent.prototype.scrollbarH;\n /** @type {?} */\n DataTableBodyComponent.prototype.loadingIndicator;\n /** @type {?} */\n DataTableBodyComponent.prototype.externalPaging;\n /** @type {?} */\n DataTableBodyComponent.prototype.rowHeight;\n /** @type {?} */\n DataTableBodyComponent.prototype.offsetX;\n /** @type {?} */\n DataTableBodyComponent.prototype.emptyMessage;\n /** @type {?} */\n DataTableBodyComponent.prototype.selectionType;\n /** @type {?} */\n DataTableBodyComponent.prototype.selected;\n /** @type {?} */\n DataTableBodyComponent.prototype.rowIdentity;\n /** @type {?} */\n DataTableBodyComponent.prototype.rowDetail;\n /** @type {?} */\n DataTableBodyComponent.prototype.groupHeader;\n /** @type {?} */\n DataTableBodyComponent.prototype.selectCheck;\n /** @type {?} */\n DataTableBodyComponent.prototype.displayCheck;\n /** @type {?} */\n DataTableBodyComponent.prototype.trackByProp;\n /** @type {?} */\n DataTableBodyComponent.prototype.rowClass;\n /** @type {?} */\n DataTableBodyComponent.prototype.groupedRows;\n /** @type {?} */\n DataTableBodyComponent.prototype.groupExpansionDefault;\n /** @type {?} */\n DataTableBodyComponent.prototype.innerWidth;\n /** @type {?} */\n DataTableBodyComponent.prototype.groupRowsBy;\n /** @type {?} */\n DataTableBodyComponent.prototype.virtualization;\n /** @type {?} */\n DataTableBodyComponent.prototype.summaryRow;\n /** @type {?} */\n DataTableBodyComponent.prototype.summaryPosition;\n /** @type {?} */\n DataTableBodyComponent.prototype.summaryHeight;\n /** @type {?} */\n DataTableBodyComponent.prototype.scroll;\n /** @type {?} */\n DataTableBodyComponent.prototype.page;\n /** @type {?} */\n DataTableBodyComponent.prototype.activate;\n /** @type {?} */\n DataTableBodyComponent.prototype.select;\n /** @type {?} */\n DataTableBodyComponent.prototype.detailToggle;\n /** @type {?} */\n DataTableBodyComponent.prototype.rowContextmenu;\n /** @type {?} */\n DataTableBodyComponent.prototype.treeAction;\n /** @type {?} */\n DataTableBodyComponent.prototype.scroller;\n /** @type {?} */\n DataTableBodyComponent.prototype.rowHeightsCache;\n /** @type {?} */\n DataTableBodyComponent.prototype.temp;\n /** @type {?} */\n DataTableBodyComponent.prototype.offsetY;\n /** @type {?} */\n DataTableBodyComponent.prototype.indexes;\n /** @type {?} */\n DataTableBodyComponent.prototype.columnGroupWidths;\n /** @type {?} */\n DataTableBodyComponent.prototype.columnGroupWidthsWithoutGroup;\n /** @type {?} */\n DataTableBodyComponent.prototype.rowTrackingFn;\n /** @type {?} */\n DataTableBodyComponent.prototype.listener;\n /** @type {?} */\n DataTableBodyComponent.prototype.rowIndexes;\n /** @type {?} */\n DataTableBodyComponent.prototype.rowExpansions;\n /** @type {?} */\n DataTableBodyComponent.prototype._rows;\n /** @type {?} */\n DataTableBodyComponent.prototype._bodyHeight;\n /** @type {?} */\n DataTableBodyComponent.prototype._columns;\n /** @type {?} */\n DataTableBodyComponent.prototype._rowCount;\n /** @type {?} */\n DataTableBodyComponent.prototype._offset;\n /** @type {?} */\n DataTableBodyComponent.prototype._pageSize;\n /**\n * Get the height of the detail row.\n * @type {?}\n */\n DataTableBodyComponent.prototype.getDetailRowHeight;\n /**\n * @type {?}\n * @private\n */\n DataTableBodyComponent.prototype.cd;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nclass DataTableHeaderComponent {\n /**\n * @param {?} cd\n */\n constructor(cd) {\n this.cd = cd;\n this.sort = new EventEmitter();\n this.reorder = new EventEmitter();\n this.resize = new EventEmitter();\n this.select = new EventEmitter();\n this.columnContextmenu = new EventEmitter(false);\n this._columnGroupWidths = {\n total: 100\n };\n this._styleByGroup = {\n left: {},\n center: {},\n right: {}\n };\n }\n /**\n * @param {?} val\n * @return {?}\n */\n set innerWidth(val) {\n this._innerWidth = val;\n setTimeout((/**\n * @return {?}\n */\n () => {\n if (this._columns) {\n /** @type {?} */\n const colByPin = columnsByPin(this._columns);\n this._columnGroupWidths = columnGroupWidths(colByPin, this._columns);\n this.setStylesByGroup();\n }\n }));\n }\n /**\n * @return {?}\n */\n get innerWidth() {\n return this._innerWidth;\n }\n /**\n * @param {?} val\n * @return {?}\n */\n set headerHeight(val) {\n if (val !== 'auto') {\n this._headerHeight = `${val}px`;\n }\n else {\n this._headerHeight = val;\n }\n }\n /**\n * @return {?}\n */\n get headerHeight() {\n return this._headerHeight;\n }\n /**\n * @param {?} val\n * @return {?}\n */\n set columns(val) {\n this._columns = val;\n /** @type {?} */\n const colsByPin = columnsByPin(val);\n this._columnsByPin = columnsByPinArr(val);\n setTimeout((/**\n * @return {?}\n */\n () => {\n this._columnGroupWidths = columnGroupWidths(colsByPin, val);\n this.setStylesByGroup();\n }));\n }\n /**\n * @return {?}\n */\n get columns() {\n return this._columns;\n }\n /**\n * @param {?} val\n * @return {?}\n */\n set offsetX(val) {\n this._offsetX = val;\n this.setStylesByGroup();\n }\n /**\n * @return {?}\n */\n get offsetX() {\n return this._offsetX;\n }\n /**\n * @param {?} __0\n * @return {?}\n */\n onLongPressStart({ event, model }) {\n model.dragging = true;\n this.dragEventTarget = event;\n }\n /**\n * @param {?} __0\n * @return {?}\n */\n onLongPressEnd({ event, model }) {\n this.dragEventTarget = event;\n // delay resetting so sort can be\n // prevented if we were dragging\n setTimeout((/**\n * @return {?}\n */\n () => {\n // datatable component creates copies from columns on reorder\n // set dragging to false on new objects\n /** @type {?} */\n const column = this._columns.find((/**\n * @param {?} c\n * @return {?}\n */\n c => c.$$id === model.$$id));\n if (column) {\n column.dragging = false;\n }\n }), 5);\n }\n /**\n * @return {?}\n */\n get headerWidth() {\n if (this.scrollbarH) {\n return this.innerWidth + 'px';\n }\n return '100%';\n }\n /**\n * @param {?} index\n * @param {?} colGroup\n * @return {?}\n */\n trackByGroups(index, colGroup) {\n return colGroup.type;\n }\n /**\n * @param {?} index\n * @param {?} column\n * @return {?}\n */\n columnTrackingFn(index, column) {\n return column.$$id;\n }\n /**\n * @param {?} width\n * @param {?} column\n * @return {?}\n */\n onColumnResized(width, column) {\n if (width <= column.minWidth) {\n width = column.minWidth;\n }\n else if (width >= column.maxWidth) {\n width = column.maxWidth;\n }\n this.resize.emit({\n column,\n prevValue: column.width,\n newValue: width\n });\n }\n /**\n * @param {?} __0\n * @return {?}\n */\n onColumnReordered({ prevIndex, newIndex, model }) {\n /** @type {?} */\n const column = this.getColumn(newIndex);\n column.isTarget = false;\n column.targetMarkerContext = undefined;\n this.reorder.emit({\n column: model,\n prevValue: prevIndex,\n newValue: newIndex\n });\n }\n /**\n * @param {?} __0\n * @return {?}\n */\n onTargetChanged({ prevIndex, newIndex, initialIndex }) {\n if (prevIndex || prevIndex === 0) {\n /** @type {?} */\n const oldColumn = this.getColumn(prevIndex);\n oldColumn.isTarget = false;\n oldColumn.targetMarkerContext = undefined;\n }\n if (newIndex || newIndex === 0) {\n /** @type {?} */\n const newColumn = this.getColumn(newIndex);\n newColumn.isTarget = true;\n if (initialIndex !== newIndex) {\n newColumn.targetMarkerContext = {\n class: 'targetMarker '.concat(initialIndex > newIndex ? 'dragFromRight' : 'dragFromLeft')\n };\n }\n }\n }\n /**\n * @param {?} index\n * @return {?}\n */\n getColumn(index) {\n /** @type {?} */\n const leftColumnCount = this._columnsByPin[0].columns.length;\n if (index < leftColumnCount) {\n return this._columnsByPin[0].columns[index];\n }\n /** @type {?} */\n const centerColumnCount = this._columnsByPin[1].columns.length;\n if (index < leftColumnCount + centerColumnCount) {\n return this._columnsByPin[1].columns[index - leftColumnCount];\n }\n return this._columnsByPin[2].columns[index - leftColumnCount - centerColumnCount];\n }\n /**\n * @param {?} __0\n * @return {?}\n */\n onSort({ column, prevValue, newValue }) {\n // if we are dragging don't sort!\n if (column.dragging) {\n return;\n }\n /** @type {?} */\n const sorts = this.calcNewSorts(column, prevValue, newValue);\n this.sort.emit({\n sorts,\n column,\n prevValue,\n newValue\n });\n }\n /**\n * @param {?} column\n * @param {?} prevValue\n * @param {?} newValue\n * @return {?}\n */\n calcNewSorts(column, prevValue, newValue) {\n /** @type {?} */\n let idx = 0;\n if (!this.sorts) {\n this.sorts = [];\n }\n /** @type {?} */\n const sorts = this.sorts.map((/**\n * @param {?} s\n * @param {?} i\n * @return {?}\n */\n (s, i) => {\n s = Object.assign({}, s);\n if (s.prop === column.prop) {\n idx = i;\n }\n return s;\n }));\n if (newValue === undefined) {\n sorts.splice(idx, 1);\n }\n else if (prevValue) {\n sorts[idx].dir = newValue;\n }\n else {\n if (this.sortType === SortType.single) {\n sorts.splice(0, this.sorts.length);\n }\n sorts.push({ dir: newValue, prop: column.prop });\n }\n return sorts;\n }\n /**\n * @return {?}\n */\n setStylesByGroup() {\n this._styleByGroup.left = this.calcStylesByGroup('left');\n this._styleByGroup.center = this.calcStylesByGroup('center');\n this._styleByGroup.right = this.calcStylesByGroup('right');\n this.cd.detectChanges();\n }\n /**\n * @param {?} group\n * @return {?}\n */\n calcStylesByGroup(group) {\n /** @type {?} */\n const widths = this._columnGroupWidths;\n /** @type {?} */\n const offsetX = this.offsetX;\n /** @type {?} */\n const styles = {\n width: `${widths[group]}px`\n };\n if (group === 'center') {\n translateXY(styles, offsetX * -1, 0);\n }\n else if (group === 'right') {\n /** @type {?} */\n const totalDiff = widths.total - this.innerWidth;\n /** @type {?} */\n const offset = totalDiff * -1;\n translateXY(styles, offset, 0);\n }\n return styles;\n }\n}\nDataTableHeaderComponent.ɵfac = function DataTableHeaderComponent_Factory(t) { return new (t || DataTableHeaderComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\nDataTableHeaderComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: DataTableHeaderComponent, selectors: [[\"datatable-header\"]], hostAttrs: [1, \"datatable-header\"], hostVars: 4, hostBindings: function DataTableHeaderComponent_HostBindings(rf, ctx) { if (rf & 2) {\n ɵngcc0.ɵɵstyleProp(\"height\", ctx.headerHeight)(\"width\", ctx.headerWidth);\n } }, inputs: { innerWidth: \"innerWidth\", headerHeight: \"headerHeight\", columns: \"columns\", offsetX: \"offsetX\", sorts: \"sorts\", sortAscendingIcon: \"sortAscendingIcon\", sortDescendingIcon: \"sortDescendingIcon\", scrollbarH: \"scrollbarH\", dealsWithGroup: \"dealsWithGroup\", targetMarkerTemplate: \"targetMarkerTemplate\", sortType: \"sortType\", allRowsSelected: \"allRowsSelected\", selectionType: \"selectionType\", reorderable: \"reorderable\" }, outputs: { sort: \"sort\", reorder: \"reorder\", resize: \"resize\", select: \"select\", columnContextmenu: \"columnContextmenu\" }, decls: 2, vars: 4, consts: [[\"orderable\", \"\", 1, \"datatable-header-inner\", 3, \"reorder\", \"targetChanged\"], [3, \"class\", \"ngStyle\", 4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [3, \"ngStyle\"], [\"resizeable\", \"\", \"long-press\", \"\", \"draggable\", \"\", 3, \"resizeEnabled\", \"pressModel\", \"pressEnabled\", \"dragX\", \"dragY\", \"dragModel\", \"dragEventTarget\", \"headerHeight\", \"isTarget\", \"targetMarkerTemplate\", \"targetMarkerContext\", \"column\", \"sortType\", \"sorts\", \"selectionType\", \"sortAscendingIcon\", \"sortDescendingIcon\", \"allRowsSelected\", \"resize\", \"longPressStart\", \"longPressEnd\", \"sort\", \"select\", \"columnContextmenu\", 4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [\"resizeable\", \"\", \"long-press\", \"\", \"draggable\", \"\", 3, \"resizeEnabled\", \"pressModel\", \"pressEnabled\", \"dragX\", \"dragY\", \"dragModel\", \"dragEventTarget\", \"headerHeight\", \"isTarget\", \"targetMarkerTemplate\", \"targetMarkerContext\", \"column\", \"sortType\", \"sorts\", \"selectionType\", \"sortAscendingIcon\", \"sortDescendingIcon\", \"allRowsSelected\", \"resize\", \"longPressStart\", \"longPressEnd\", \"sort\", \"select\", \"columnContextmenu\"]], template: function DataTableHeaderComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 0);\n ɵngcc0.ɵɵlistener(\"reorder\", function DataTableHeaderComponent_Template_div_reorder_0_listener($event) { return ctx.onColumnReordered($event); })(\"targetChanged\", function DataTableHeaderComponent_Template_div_targetChanged_0_listener($event) { return ctx.onTargetChanged($event); });\n ɵngcc0.ɵɵtemplate(1, DataTableHeaderComponent_div_1_Template, 2, 5, \"div\", 1);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵstyleProp(\"width\", ctx._columnGroupWidths.total, \"px\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx._columnsByPin)(\"ngForTrackBy\", ctx.trackByGroups);\n } }, dependencies: function () { return [ɵngcc1.NgForOf, ɵngcc1.NgStyle, DraggableDirective, ResizeableDirective, OrderableDirective, LongPressDirective, DataTableHeaderCellComponent]; }, encapsulation: 2, changeDetection: 0 });\n/** @nocollapse */\nDataTableHeaderComponent.ctorParameters = () => [\n { type: ChangeDetectorRef }\n];\nDataTableHeaderComponent.propDecorators = {\n sortAscendingIcon: [{ type: Input }],\n sortDescendingIcon: [{ type: Input }],\n scrollbarH: [{ type: Input }],\n dealsWithGroup: [{ type: Input }],\n targetMarkerTemplate: [{ type: Input }],\n innerWidth: [{ type: Input }],\n sorts: [{ type: Input }],\n sortType: [{ type: Input }],\n allRowsSelected: [{ type: Input }],\n selectionType: [{ type: Input }],\n reorderable: [{ type: Input }],\n headerHeight: [{ type: HostBinding, args: ['style.height',] }, { type: Input }],\n columns: [{ type: Input }],\n offsetX: [{ type: Input }],\n sort: [{ type: Output }],\n reorder: [{ type: Output }],\n resize: [{ type: Output }],\n select: [{ type: Output }],\n columnContextmenu: [{ type: Output }],\n headerWidth: [{ type: HostBinding, args: ['style.width',] }]\n};\nif (false) {\n /** @type {?} */\n DataTableHeaderComponent.prototype.sortAscendingIcon;\n /** @type {?} */\n DataTableHeaderComponent.prototype.sortDescendingIcon;\n /** @type {?} */\n DataTableHeaderComponent.prototype.scrollbarH;\n /** @type {?} */\n DataTableHeaderComponent.prototype.dealsWithGroup;\n /** @type {?} */\n DataTableHeaderComponent.prototype.targetMarkerTemplate;\n /** @type {?} */\n DataTableHeaderComponent.prototype.targetMarkerContext;\n /** @type {?} */\n DataTableHeaderComponent.prototype.sorts;\n /** @type {?} */\n DataTableHeaderComponent.prototype.sortType;\n /** @type {?} */\n DataTableHeaderComponent.prototype.allRowsSelected;\n /** @type {?} */\n DataTableHeaderComponent.prototype.selectionType;\n /** @type {?} */\n DataTableHeaderComponent.prototype.reorderable;\n /** @type {?} */\n DataTableHeaderComponent.prototype.dragEventTarget;\n /** @type {?} */\n DataTableHeaderComponent.prototype.sort;\n /** @type {?} */\n DataTableHeaderComponent.prototype.reorder;\n /** @type {?} */\n DataTableHeaderComponent.prototype.resize;\n /** @type {?} */\n DataTableHeaderComponent.prototype.select;\n /** @type {?} */\n DataTableHeaderComponent.prototype.columnContextmenu;\n /** @type {?} */\n DataTableHeaderComponent.prototype._columnsByPin;\n /** @type {?} */\n DataTableHeaderComponent.prototype._columnGroupWidths;\n /** @type {?} */\n DataTableHeaderComponent.prototype._innerWidth;\n /** @type {?} */\n DataTableHeaderComponent.prototype._offsetX;\n /** @type {?} */\n DataTableHeaderComponent.prototype._columns;\n /** @type {?} */\n DataTableHeaderComponent.prototype._headerHeight;\n /** @type {?} */\n DataTableHeaderComponent.prototype._styleByGroup;\n /**\n * @type {?}\n * @private\n */\n DataTableHeaderComponent.prototype.cd;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Throttle a function\n * @param {?} func\n * @param {?} wait\n * @param {?=} options\n * @return {?}\n */\nfunction throttle(func, wait, options) {\n options = options || {};\n /** @type {?} */\n let context;\n /** @type {?} */\n let args;\n /** @type {?} */\n let result;\n /** @type {?} */\n let timeout = null;\n /** @type {?} */\n let previous = 0;\n /**\n * @return {?}\n */\n function later() {\n previous = options.leading === false ? 0 : +new Date();\n timeout = null;\n result = func.apply(context, args);\n }\n return (/**\n * @this {?}\n * @return {?}\n */\n function () {\n /** @type {?} */\n const now = +new Date();\n if (!previous && options.leading === false) {\n previous = now;\n }\n /** @type {?} */\n const remaining = wait - (now - previous);\n context = this;\n args = arguments;\n if (remaining <= 0) {\n clearTimeout(timeout);\n timeout = null;\n previous = now;\n result = func.apply(context, args);\n }\n else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n return result;\n });\n}\n/**\n * Throttle decorator\n *\n * class MyClass {\n * throttleable(10)\n * myFn() { ... }\n * }\n * @param {?} duration\n * @param {?=} options\n * @return {?}\n */\nfunction throttleable(duration, options) {\n return (/**\n * @param {?} target\n * @param {?} key\n * @param {?} descriptor\n * @return {?}\n */\n function innerDecorator(target, key, descriptor) {\n return {\n configurable: true,\n enumerable: descriptor.enumerable,\n get: (/**\n * @return {?}\n */\n function getter() {\n Object.defineProperty(this, key, {\n configurable: true,\n enumerable: descriptor.enumerable,\n value: throttle(descriptor.value, duration, options)\n });\n return this[key];\n })\n };\n });\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Calculates the Total Flex Grow\n * @param {?} columns\n * @return {?}\n */\nfunction getTotalFlexGrow(columns) {\n /** @type {?} */\n let totalFlexGrow = 0;\n for (const c of columns) {\n totalFlexGrow += c.flexGrow || 0;\n }\n return totalFlexGrow;\n}\n/**\n * Adjusts the column widths.\n * Inspired by: https://github.com/facebook/fixed-data-table/blob/master/src/FixedDataTableWidthHelper.js\n * @param {?} allColumns\n * @param {?} expectedWidth\n * @return {?}\n */\nfunction adjustColumnWidths(allColumns, expectedWidth) {\n /** @type {?} */\n const columnsWidth = columnsTotalWidth(allColumns);\n /** @type {?} */\n const totalFlexGrow = getTotalFlexGrow(allColumns);\n /** @type {?} */\n const colsByGroup = columnsByPin(allColumns);\n if (columnsWidth !== expectedWidth) {\n scaleColumns(colsByGroup, expectedWidth, totalFlexGrow);\n }\n}\n/**\n * Resizes columns based on the flexGrow property, while respecting manually set widths\n * @param {?} colsByGroup\n * @param {?} maxWidth\n * @param {?} totalFlexGrow\n * @return {?}\n */\nfunction scaleColumns(colsByGroup, maxWidth, totalFlexGrow) {\n // calculate total width and flexgrow points for coulumns that can be resized\n for (const attr in colsByGroup) {\n for (const column of colsByGroup[attr]) {\n if (!column.canAutoResize) {\n maxWidth -= column.width;\n totalFlexGrow -= column.flexGrow ? column.flexGrow : 0;\n }\n else {\n column.width = 0;\n }\n }\n }\n /** @type {?} */\n const hasMinWidth = {};\n /** @type {?} */\n let remainingWidth = maxWidth;\n // resize columns until no width is left to be distributed\n do {\n /** @type {?} */\n const widthPerFlexPoint = remainingWidth / totalFlexGrow;\n remainingWidth = 0;\n for (const attr in colsByGroup) {\n for (const column of colsByGroup[attr]) {\n // if the column can be resize and it hasn't reached its minimum width yet\n if (column.canAutoResize && !hasMinWidth[column.prop]) {\n /** @type {?} */\n const newWidth = column.width + column.flexGrow * widthPerFlexPoint;\n if (column.minWidth !== undefined && newWidth < column.minWidth) {\n remainingWidth += newWidth - column.minWidth;\n column.width = column.minWidth;\n hasMinWidth[column.prop] = true;\n }\n else {\n column.width = newWidth;\n }\n }\n }\n }\n } while (remainingWidth !== 0);\n}\n/**\n * Forces the width of the columns to\n * distribute equally but overflowing when necessary\n *\n * Rules:\n *\n * - If combined withs are less than the total width of the grid,\n * proportion the widths given the min / max / normal widths to fill the width.\n *\n * - If the combined widths, exceed the total width of the grid,\n * use the standard widths.\n *\n * - If a column is resized, it should always use that width\n *\n * - The proportional widths should never fall below min size if specified.\n *\n * - If the grid starts off small but then becomes greater than the size ( + / - )\n * the width should use the original width; not the newly proportioned widths.\n * @param {?} allColumns\n * @param {?} expectedWidth\n * @param {?} startIdx\n * @param {?} allowBleed\n * @param {?=} defaultColWidth\n * @return {?}\n */\nfunction forceFillColumnWidths(allColumns, expectedWidth, startIdx, allowBleed, defaultColWidth = 300) {\n /** @type {?} */\n const columnsToResize = allColumns.slice(startIdx + 1, allColumns.length).filter((/**\n * @param {?} c\n * @return {?}\n */\n c => {\n return c.canAutoResize !== false;\n }));\n for (const column of columnsToResize) {\n if (!column.$$oldWidth) {\n column.$$oldWidth = column.width;\n }\n }\n /** @type {?} */\n let additionWidthPerColumn = 0;\n /** @type {?} */\n let exceedsWindow = false;\n /** @type {?} */\n let contentWidth = getContentWidth(allColumns, defaultColWidth);\n /** @type {?} */\n let remainingWidth = expectedWidth - contentWidth;\n /** @type {?} */\n const columnsProcessed = [];\n /** @type {?} */\n const remainingWidthLimit = 1;\n // This loop takes care of the\n do {\n additionWidthPerColumn = remainingWidth / columnsToResize.length;\n exceedsWindow = contentWidth >= expectedWidth;\n for (const column of columnsToResize) {\n if (exceedsWindow && allowBleed) {\n column.width = column.$$oldWidth || column.width || defaultColWidth;\n }\n else {\n /** @type {?} */\n const newSize = (column.width || defaultColWidth) + additionWidthPerColumn;\n if (column.minWidth && newSize < column.minWidth) {\n column.width = column.minWidth;\n columnsProcessed.push(column);\n }\n else if (column.maxWidth && newSize > column.maxWidth) {\n column.width = column.maxWidth;\n columnsProcessed.push(column);\n }\n else {\n column.width = newSize;\n }\n }\n column.width = Math.max(0, column.width);\n }\n contentWidth = getContentWidth(allColumns);\n remainingWidth = expectedWidth - contentWidth;\n removeProcessedColumns(columnsToResize, columnsProcessed);\n } while (remainingWidth > remainingWidthLimit && columnsToResize.length !== 0);\n}\n/**\n * Remove the processed columns from the current active columns.\n * @param {?} columnsToResize\n * @param {?} columnsProcessed\n * @return {?}\n */\nfunction removeProcessedColumns(columnsToResize, columnsProcessed) {\n for (const column of columnsProcessed) {\n /** @type {?} */\n const index = columnsToResize.indexOf(column);\n columnsToResize.splice(index, 1);\n }\n}\n/**\n * Gets the width of the columns\n * @param {?} allColumns\n * @param {?=} defaultColWidth\n * @return {?}\n */\nfunction getContentWidth(allColumns, defaultColWidth = 300) {\n /** @type {?} */\n let contentWidth = 0;\n for (const column of allColumns) {\n contentWidth += column.width || defaultColWidth;\n }\n return contentWidth;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @enum {string} */\nconst SortDirection = {\n asc: 'asc',\n desc: 'desc',\n};\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Gets the next sort direction\n * @param {?} sortType\n * @param {?} current\n * @return {?}\n */\nfunction nextSortDir(sortType, current) {\n if (sortType === SortType.single) {\n if (current === SortDirection.asc) {\n return SortDirection.desc;\n }\n else {\n return SortDirection.asc;\n }\n }\n else {\n if (!current) {\n return SortDirection.asc;\n }\n else if (current === SortDirection.asc) {\n return SortDirection.desc;\n }\n else if (current === SortDirection.desc) {\n return undefined;\n }\n // avoid TS7030: Not all code paths return a value.\n return undefined;\n }\n}\n/**\n * Adapted from fueld-ui on 6/216\n * https://github.com/FuelInteractive/fuel-ui/tree/master/src/pipes/OrderBy\n * @param {?} a\n * @param {?} b\n * @return {?}\n */\nfunction orderByComparator(a, b) {\n if (a === null || typeof a === 'undefined')\n a = 0;\n if (b === null || typeof b === 'undefined')\n b = 0;\n if (a instanceof Date && b instanceof Date) {\n if (a < b)\n return -1;\n if (a > b)\n return 1;\n }\n else if (isNaN(parseFloat(a)) || !isFinite(a) || (isNaN(parseFloat(b)) || !isFinite(b))) {\n // Convert to string in case of a=0 or b=0\n a = String(a);\n b = String(b);\n // Isn't a number so lowercase the string to properly compare\n if (a.toLowerCase() < b.toLowerCase())\n return -1;\n if (a.toLowerCase() > b.toLowerCase())\n return 1;\n }\n else {\n // Parse strings as numbers to compare properly\n if (parseFloat(a) < parseFloat(b))\n return -1;\n if (parseFloat(a) > parseFloat(b))\n return 1;\n }\n // equal each other\n return 0;\n}\n/**\n * creates a shallow copy of the `rows` input and returns the sorted copy. this function\n * does not sort the `rows` argument in place\n * @param {?} rows\n * @param {?} columns\n * @param {?} dirs\n * @return {?}\n */\nfunction sortRows(rows, columns, dirs) {\n if (!rows)\n return [];\n if (!dirs || !dirs.length || !columns)\n return [...rows];\n /**\n * record the row ordering of results from prior sort operations (if applicable)\n * this is necessary to guarantee stable sorting behavior\n * @type {?}\n */\n const rowToIndexMap = new Map();\n rows.forEach((/**\n * @param {?} row\n * @param {?} index\n * @return {?}\n */\n (row, index) => rowToIndexMap.set(row, index)));\n /** @type {?} */\n const temp = [...rows];\n /** @type {?} */\n const cols = columns.reduce((/**\n * @param {?} obj\n * @param {?} col\n * @return {?}\n */\n (obj, col) => {\n if (col.comparator && typeof col.comparator === 'function') {\n obj[col.prop] = col.comparator;\n }\n return obj;\n }), {});\n // cache valueGetter and compareFn so that they\n // do not need to be looked-up in the sort function body\n /** @type {?} */\n const cachedDirs = dirs.map((/**\n * @param {?} dir\n * @return {?}\n */\n dir => {\n /** @type {?} */\n const prop = dir.prop;\n return {\n prop,\n dir: dir.dir,\n valueGetter: getterForProp(prop),\n compareFn: cols[prop] || orderByComparator\n };\n }));\n return temp.sort((/**\n * @param {?} rowA\n * @param {?} rowB\n * @return {?}\n */\n function (rowA, rowB) {\n for (const cachedDir of cachedDirs) {\n // Get property and valuegetters for column to be sorted\n const { prop, valueGetter } = cachedDir;\n // Get A and B cell values from rows based on properties of the columns\n /** @type {?} */\n const propA = valueGetter(rowA, prop);\n /** @type {?} */\n const propB = valueGetter(rowB, prop);\n // Compare function gets five parameters:\n // Two cell values to be compared as propA and propB\n // Two rows corresponding to the cells as rowA and rowB\n // Direction of the sort for this column as SortDirection\n // Compare can be a standard JS comparison function (a,b) => -1|0|1\n // as additional parameters are silently ignored. The whole row and sort\n // direction enable more complex sort logic.\n /** @type {?} */\n const comparison = cachedDir.dir !== SortDirection.desc\n ? cachedDir.compareFn(propA, propB, rowA, rowB, cachedDir.dir)\n : -cachedDir.compareFn(propA, propB, rowA, rowB, cachedDir.dir);\n // Don't return 0 yet in case of needing to sort by next property\n if (comparison !== 0)\n return comparison;\n }\n if (!(rowToIndexMap.has(rowA) && rowToIndexMap.has(rowB)))\n return 0;\n /**\n * all else being equal, preserve original order of the rows (stable sort)\n */\n return rowToIndexMap.get(rowA) < rowToIndexMap.get(rowB) ? -1 : 1;\n }));\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nclass DatatableComponent {\n /**\n * @param {?} scrollbarHelper\n * @param {?} dimensionsHelper\n * @param {?} cd\n * @param {?} element\n * @param {?} differs\n * @param {?} columnChangesService\n * @param {?} configuration\n */\n constructor(scrollbarHelper, dimensionsHelper, cd, element, differs, columnChangesService, configuration) {\n this.scrollbarHelper = scrollbarHelper;\n this.dimensionsHelper = dimensionsHelper;\n this.cd = cd;\n this.columnChangesService = columnChangesService;\n this.configuration = configuration;\n /**\n * List of row objects that should be\n * represented as selected in the grid.\n * Default value: `[]`\n */\n this.selected = [];\n /**\n * Enable vertical scrollbars\n */\n this.scrollbarV = false;\n /**\n * Enable horz scrollbars\n */\n this.scrollbarH = false;\n /**\n * The row height; which is necessary\n * to calculate the height for the lazy rendering.\n */\n this.rowHeight = 30;\n /**\n * Type of column width distribution formula.\n * Example: flex, force, standard\n */\n this.columnMode = ColumnMode.standard;\n /**\n * The minimum header height in pixels.\n * Pass a falsey for no header\n */\n this.headerHeight = 30;\n /**\n * The minimum footer height in pixels.\n * Pass falsey for no footer\n */\n this.footerHeight = 0;\n /**\n * If the table should use external paging\n * otherwise its assumed that all data is preloaded.\n */\n this.externalPaging = false;\n /**\n * If the table should use external sorting or\n * the built-in basic sorting.\n */\n this.externalSorting = false;\n /**\n * Show the linear loading bar.\n * Default value: `false`\n */\n this.loadingIndicator = false;\n /**\n * Enable/Disable ability to re-order columns\n * by dragging them.\n */\n this.reorderable = true;\n /**\n * Swap columns on re-order columns or\n * move them.\n */\n this.swapColumns = true;\n /**\n * The type of sorting\n */\n this.sortType = SortType.single;\n /**\n * Array of sorted columns by property and type.\n * Default value: `[]`\n */\n this.sorts = [];\n /**\n * Css class overrides\n */\n this.cssClasses = {\n sortAscending: 'datatable-icon-up',\n sortDescending: 'datatable-icon-down',\n pagerLeftArrow: 'datatable-icon-left',\n pagerRightArrow: 'datatable-icon-right',\n pagerPrevious: 'datatable-icon-prev',\n pagerNext: 'datatable-icon-skip'\n };\n /**\n * Message overrides for localization\n *\n * emptyMessage [default] = 'No data to display'\n * totalMessage [default] = 'total'\n * selectedMessage [default] = 'selected'\n */\n this.messages = {\n // Message to show when array is presented\n // but contains no values\n emptyMessage: 'No data to display',\n // Footer total message\n totalMessage: 'total',\n // Footer selected message\n selectedMessage: 'selected'\n };\n /**\n * A boolean you can use to set the detault behaviour of rows and groups\n * whether they will start expanded or not. If ommited the default is NOT expanded.\n *\n */\n this.groupExpansionDefault = false;\n /**\n * Property to which you can use for determining select all\n * rows on current page or not.\n *\n * \\@memberOf DatatableComponent\n */\n this.selectAllRowsOnPage = false;\n /**\n * A flag for row virtualization on / off\n */\n this.virtualization = true;\n /**\n * A flag for switching summary row on / off\n */\n this.summaryRow = false;\n /**\n * A height of summary row\n */\n this.summaryHeight = 30;\n /**\n * A property holds a summary row position: top/bottom\n */\n this.summaryPosition = 'top';\n /**\n * Body was scrolled typically in a `scrollbarV:true` scenario.\n */\n this.scroll = new EventEmitter();\n /**\n * A cell or row was focused via keyboard or mouse click.\n */\n this.activate = new EventEmitter();\n /**\n * A cell or row was selected.\n */\n this.select = new EventEmitter();\n /**\n * Column sort was invoked.\n */\n this.sort = new EventEmitter();\n /**\n * The table was paged either triggered by the pager or the body scroll.\n */\n this.page = new EventEmitter();\n /**\n * Columns were re-ordered.\n */\n this.reorder = new EventEmitter();\n /**\n * Column was resized.\n */\n this.resize = new EventEmitter();\n /**\n * The context menu was invoked on the table.\n * type indicates whether the header or the body was clicked.\n * content contains either the column or the row that was clicked.\n */\n this.tableContextmenu = new EventEmitter(false);\n /**\n * A row was expanded ot collapsed for tree\n */\n this.treeAction = new EventEmitter();\n this.rowCount = 0;\n this._offsetX = new BehaviorSubject(0);\n this._count = 0;\n this._offset = 0;\n this._subscriptions = [];\n /**\n * This will be used when displaying or selecting rows.\n * when tracking/comparing them, we'll use the value of this fn,\n *\n * (`fn(x) === fn(y)` instead of `x === y`)\n */\n this.rowIdentity = (/**\n * @param {?} x\n * @return {?}\n */\n (x) => x);\n // get ref to elm for measuring\n this.element = element.nativeElement;\n this.rowDiffer = differs.find({}).create();\n // apply global settings from Module.forRoot\n if (this.configuration && this.configuration.messages) {\n this.messages = Object.assign({}, this.configuration.messages);\n }\n }\n /**\n * Rows that are displayed in the table.\n * @param {?} val\n * @return {?}\n */\n set rows(val) {\n this._rows = val;\n if (val) {\n this._internalRows = [...val];\n }\n // auto sort on new updates\n if (!this.externalSorting) {\n this.sortInternalRows();\n }\n // auto group by parent on new update\n this._internalRows = groupRowsByParents(this._internalRows, optionalGetterForProp(this.treeFromRelation), optionalGetterForProp(this.treeToRelation));\n // recalculate sizes/etc\n this.recalculate();\n if (this._rows && this._groupRowsBy) {\n // If a column has been specified in _groupRowsBy created a new array with the data grouped by that row\n this.groupedRows = this.groupArrayBy(this._rows, this._groupRowsBy);\n }\n this.cd.markForCheck();\n }\n /**\n * Gets the rows.\n * @return {?}\n */\n get rows() {\n return this._rows;\n }\n /**\n * This attribute allows the user to set the name of the column to group the data with\n * @param {?} val\n * @return {?}\n */\n set groupRowsBy(val) {\n if (val) {\n this._groupRowsBy = val;\n if (this._rows && this._groupRowsBy) {\n // cretes a new array with the data grouped\n this.groupedRows = this.groupArrayBy(this._rows, this._groupRowsBy);\n }\n }\n }\n /**\n * @return {?}\n */\n get groupRowsBy() {\n return this._groupRowsBy;\n }\n /**\n * Columns to be displayed.\n * @param {?} val\n * @return {?}\n */\n set columns(val) {\n if (val) {\n this._internalColumns = [...val];\n setColumnDefaults(this._internalColumns);\n this.recalculateColumns();\n }\n this._columns = val;\n }\n /**\n * Get the columns.\n * @return {?}\n */\n get columns() {\n return this._columns;\n }\n /**\n * The page size to be shown.\n * Default value: `undefined`\n * @param {?} val\n * @return {?}\n */\n set limit(val) {\n this._limit = val;\n // recalculate sizes/etc\n this.recalculate();\n }\n /**\n * Gets the limit.\n * @return {?}\n */\n get limit() {\n return this._limit;\n }\n /**\n * The total count of all rows.\n * Default value: `0`\n * @param {?} val\n * @return {?}\n */\n set count(val) {\n this._count = val;\n // recalculate sizes/etc\n this.recalculate();\n }\n /**\n * Gets the count.\n * @return {?}\n */\n get count() {\n return this._count;\n }\n /**\n * The current offset ( page - 1 ) shown.\n * Default value: `0`\n * @param {?} val\n * @return {?}\n */\n set offset(val) {\n this._offset = val;\n }\n /**\n * @return {?}\n */\n get offset() {\n return Math.max(Math.min(this._offset, Math.ceil(this.rowCount / this.pageSize) - 1), 0);\n }\n /**\n * CSS class applied if the header height if fixed height.\n * @return {?}\n */\n get isFixedHeader() {\n /** @type {?} */\n const headerHeight = this.headerHeight;\n return typeof headerHeight === 'string' ? (/** @type {?} */ (headerHeight)) !== 'auto' : true;\n }\n /**\n * CSS class applied to the root element if\n * the row heights are fixed heights.\n * @return {?}\n */\n get isFixedRow() {\n return this.rowHeight !== 'auto';\n }\n /**\n * CSS class applied to root element if\n * vertical scrolling is enabled.\n * @return {?}\n */\n get isVertScroll() {\n return this.scrollbarV;\n }\n /**\n * CSS class applied to root element if\n * virtualization is enabled.\n * @return {?}\n */\n get isVirtualized() {\n return this.virtualization;\n }\n /**\n * CSS class applied to the root element\n * if the horziontal scrolling is enabled.\n * @return {?}\n */\n get isHorScroll() {\n return this.scrollbarH;\n }\n /**\n * CSS class applied to root element is selectable.\n * @return {?}\n */\n get isSelectable() {\n return this.selectionType !== undefined;\n }\n /**\n * CSS class applied to root is checkbox selection.\n * @return {?}\n */\n get isCheckboxSelection() {\n return this.selectionType === SelectionType.checkbox;\n }\n /**\n * CSS class applied to root if cell selection.\n * @return {?}\n */\n get isCellSelection() {\n return this.selectionType === SelectionType.cell;\n }\n /**\n * CSS class applied to root if single select.\n * @return {?}\n */\n get isSingleSelection() {\n return this.selectionType === SelectionType.single;\n }\n /**\n * CSS class added to root element if mulit select\n * @return {?}\n */\n get isMultiSelection() {\n return this.selectionType === SelectionType.multi;\n }\n /**\n * CSS class added to root element if mulit click select\n * @return {?}\n */\n get isMultiClickSelection() {\n return this.selectionType === SelectionType.multiClick;\n }\n /**\n * Column templates gathered from `ContentChildren`\n * if described in your markup.\n * @param {?} val\n * @return {?}\n */\n set columnTemplates(val) {\n this._columnTemplates = val;\n this.translateColumns(val);\n }\n /**\n * Returns the column templates.\n * @return {?}\n */\n get columnTemplates() {\n return this._columnTemplates;\n }\n /**\n * Returns if all rows are selected.\n * @return {?}\n */\n get allRowsSelected() {\n /** @type {?} */\n let allRowsSelected = this.rows && this.selected && this.selected.length === this.rows.length;\n if (this.selectAllRowsOnPage) {\n /** @type {?} */\n const indexes = this.bodyComponent.indexes;\n /** @type {?} */\n const rowsOnPage = indexes.last - indexes.first;\n allRowsSelected = this.selected.length === rowsOnPage;\n }\n return this.selected && this.rows && this.rows.length !== 0 && allRowsSelected;\n }\n /**\n * Lifecycle hook that is called after data-bound\n * properties of a directive are initialized.\n * @return {?}\n */\n ngOnInit() {\n // need to call this immediatly to size\n // if the table is hidden the visibility\n // listener will invoke this itself upon show\n this.recalculate();\n }\n /**\n * Lifecycle hook that is called after a component's\n * view has been fully initialized.\n * @return {?}\n */\n ngAfterViewInit() {\n if (!this.externalSorting) {\n this.sortInternalRows();\n }\n // this has to be done to prevent the change detection\n // tree from freaking out because we are readjusting\n if (typeof requestAnimationFrame === 'undefined') {\n return;\n }\n requestAnimationFrame((/**\n * @return {?}\n */\n () => {\n this.recalculate();\n // emit page for virtual server-side kickoff\n if (this.externalPaging && this.scrollbarV) {\n this.page.emit({\n count: this.count,\n pageSize: this.pageSize,\n limit: this.limit,\n offset: 0\n });\n }\n }));\n }\n /**\n * Lifecycle hook that is called after a component's\n * content has been fully initialized.\n * @return {?}\n */\n ngAfterContentInit() {\n this.columnTemplates.changes.subscribe((/**\n * @param {?} v\n * @return {?}\n */\n v => this.translateColumns(v)));\n this.listenForColumnInputChanges();\n }\n /**\n * Translates the templates to the column objects\n * @param {?} val\n * @return {?}\n */\n translateColumns(val) {\n if (val) {\n /** @type {?} */\n const arr = val.toArray();\n if (arr.length) {\n this._internalColumns = translateTemplates(arr);\n setColumnDefaults(this._internalColumns);\n this.recalculateColumns();\n this.sortInternalRows();\n this.cd.markForCheck();\n }\n }\n }\n /**\n * Creates a map with the data grouped by the user choice of grouping index\n *\n * @param {?} originalArray the original array passed via parameter\n * @param {?} groupBy\n * @return {?}\n */\n groupArrayBy(originalArray, groupBy) {\n // create a map to hold groups with their corresponding results\n /** @type {?} */\n const map = new Map();\n /** @type {?} */\n let i = 0;\n originalArray.forEach((/**\n * @param {?} item\n * @return {?}\n */\n (item) => {\n /** @type {?} */\n const key = item[groupBy];\n if (!map.has(key)) {\n map.set(key, [item]);\n }\n else {\n map.get(key).push(item);\n }\n i++;\n }));\n /** @type {?} */\n const addGroup = (/**\n * @param {?} key\n * @param {?} value\n * @return {?}\n */\n (key, value) => {\n return { key, value };\n });\n // convert map back to a simple array of objects\n return Array.from(map, (/**\n * @param {?} x\n * @return {?}\n */\n x => addGroup(x[0], x[1])));\n }\n /*\n * Lifecycle hook that is called when Angular dirty checks a directive.\n */\n /**\n * @return {?}\n */\n ngDoCheck() {\n if (this.rowDiffer.diff(this.rows)) {\n if (!this.externalSorting) {\n this.sortInternalRows();\n }\n else {\n this._internalRows = [...this.rows];\n }\n // auto group by parent on new update\n this._internalRows = groupRowsByParents(this._internalRows, optionalGetterForProp(this.treeFromRelation), optionalGetterForProp(this.treeToRelation));\n this.recalculatePages();\n this.cd.markForCheck();\n }\n }\n /**\n * Recalc's the sizes of the grid.\n *\n * Updated automatically on changes to:\n *\n * - Columns\n * - Rows\n * - Paging related\n *\n * Also can be manually invoked or upon window resize.\n * @return {?}\n */\n recalculate() {\n this.recalculateDims();\n this.recalculateColumns();\n }\n /**\n * Window resize handler to update sizes.\n * @return {?}\n */\n onWindowResize() {\n this.recalculate();\n }\n /**\n * Recalulcates the column widths based on column width\n * distribution mode and scrollbar offsets.\n * @param {?=} columns\n * @param {?=} forceIdx\n * @param {?=} allowBleed\n * @return {?}\n */\n recalculateColumns(columns = this._internalColumns, forceIdx = -1, allowBleed = this.scrollbarH) {\n if (!columns)\n return undefined;\n /** @type {?} */\n let width = this._innerWidth;\n if (this.scrollbarV) {\n width = width - this.scrollbarHelper.width;\n }\n if (this.columnMode === ColumnMode.force) {\n forceFillColumnWidths(columns, width, forceIdx, allowBleed);\n }\n else if (this.columnMode === ColumnMode.flex) {\n adjustColumnWidths(columns, width);\n }\n return columns;\n }\n /**\n * Recalculates the dimensions of the table size.\n * Internally calls the page size and row count calcs too.\n *\n * @return {?}\n */\n recalculateDims() {\n /** @type {?} */\n const dims = this.dimensionsHelper.getDimensions(this.element);\n this._innerWidth = Math.floor(dims.width);\n if (this.scrollbarV) {\n /** @type {?} */\n let height = dims.height;\n if (this.headerHeight)\n height = height - this.headerHeight;\n if (this.footerHeight)\n height = height - this.footerHeight;\n this.bodyHeight = height;\n }\n this.recalculatePages();\n }\n /**\n * Recalculates the pages after a update.\n * @return {?}\n */\n recalculatePages() {\n this.pageSize = this.calcPageSize();\n this.rowCount = this.calcRowCount();\n }\n /**\n * Body triggered a page event.\n * @param {?} __0\n * @return {?}\n */\n onBodyPage({ offset }) {\n // Avoid pagination caming from body events like scroll when the table\n // has no virtualization and the external paging is enable.\n // This means, let's the developer handle pagination by my him(her) self\n if (this.externalPaging && !this.virtualization) {\n return;\n }\n this.offset = offset;\n this.page.emit({\n count: this.count,\n pageSize: this.pageSize,\n limit: this.limit,\n offset: this.offset\n });\n }\n /**\n * The body triggered a scroll event.\n * @param {?} event\n * @return {?}\n */\n onBodyScroll(event) {\n this._offsetX.next(event.offsetX);\n this.scroll.emit(event);\n this.cd.detectChanges();\n }\n /**\n * The footer triggered a page event.\n * @param {?} event\n * @return {?}\n */\n onFooterPage(event) {\n this.offset = event.page - 1;\n this.bodyComponent.updateOffsetY(this.offset);\n this.page.emit({\n count: this.count,\n pageSize: this.pageSize,\n limit: this.limit,\n offset: this.offset\n });\n if (this.selectAllRowsOnPage) {\n this.selected = [];\n this.select.emit({\n selected: this.selected\n });\n }\n }\n /**\n * Recalculates the sizes of the page\n * @param {?=} val\n * @return {?}\n */\n calcPageSize(val = this.rows) {\n // Keep the page size constant even if the row has been expanded.\n // This is because an expanded row is still considered to be a child of\n // the original row. Hence calculation would use rowHeight only.\n if (this.scrollbarV && this.virtualization) {\n /** @type {?} */\n const size = Math.ceil(this.bodyHeight / ((/** @type {?} */ (this.rowHeight))));\n return Math.max(size, 0);\n }\n // if limit is passed, we are paging\n if (this.limit !== undefined) {\n return this.limit;\n }\n // otherwise use row length\n if (val) {\n return val.length;\n }\n // other empty :(\n return 0;\n }\n /**\n * Calculates the row count.\n * @param {?=} val\n * @return {?}\n */\n calcRowCount(val = this.rows) {\n if (!this.externalPaging) {\n if (!val)\n return 0;\n if (this.groupedRows) {\n return this.groupedRows.length;\n }\n else if (this.treeFromRelation != null && this.treeToRelation != null) {\n return this._internalRows.length;\n }\n else {\n return val.length;\n }\n }\n return this.count;\n }\n /**\n * The header triggered a contextmenu event.\n * @param {?} __0\n * @return {?}\n */\n onColumnContextmenu({ event, column }) {\n this.tableContextmenu.emit({ event, type: ContextmenuType.header, content: column });\n }\n /**\n * The body triggered a contextmenu event.\n * @param {?} __0\n * @return {?}\n */\n onRowContextmenu({ event, row }) {\n this.tableContextmenu.emit({ event, type: ContextmenuType.body, content: row });\n }\n /**\n * The header triggered a column resize event.\n * @param {?} __0\n * @return {?}\n */\n onColumnResize({ column, newValue }) {\n /* Safari/iOS 10.2 workaround */\n if (column === undefined) {\n return;\n }\n /** @type {?} */\n let idx;\n /** @type {?} */\n const cols = this._internalColumns.map((/**\n * @param {?} c\n * @param {?} i\n * @return {?}\n */\n (c, i) => {\n c = Object.assign({}, c);\n if (c.$$id === column.$$id) {\n idx = i;\n c.width = newValue;\n // set this so we can force the column\n // width distribution to be to this value\n c.$$oldWidth = newValue;\n }\n return c;\n }));\n this.recalculateColumns(cols, idx);\n this._internalColumns = cols;\n this.resize.emit({\n column,\n newValue\n });\n }\n /**\n * The header triggered a column re-order event.\n * @param {?} __0\n * @return {?}\n */\n onColumnReorder({ column, newValue, prevValue }) {\n /** @type {?} */\n const cols = this._internalColumns.map((/**\n * @param {?} c\n * @return {?}\n */\n c => {\n return Object.assign({}, c);\n }));\n if (this.swapColumns) {\n /** @type {?} */\n const prevCol = cols[newValue];\n cols[newValue] = column;\n cols[prevValue] = prevCol;\n }\n else {\n if (newValue > prevValue) {\n /** @type {?} */\n const movedCol = cols[prevValue];\n for (let i = prevValue; i < newValue; i++) {\n cols[i] = cols[i + 1];\n }\n cols[newValue] = movedCol;\n }\n else {\n /** @type {?} */\n const movedCol = cols[prevValue];\n for (let i = prevValue; i > newValue; i--) {\n cols[i] = cols[i - 1];\n }\n cols[newValue] = movedCol;\n }\n }\n this._internalColumns = cols;\n this.reorder.emit({\n column,\n newValue,\n prevValue\n });\n }\n /**\n * The header triggered a column sort event.\n * @param {?} event\n * @return {?}\n */\n onColumnSort(event) {\n // clean selected rows\n if (this.selectAllRowsOnPage) {\n this.selected = [];\n this.select.emit({\n selected: this.selected\n });\n }\n this.sorts = event.sorts;\n // this could be optimized better since it will resort\n // the rows again on the 'push' detection...\n if (this.externalSorting === false) {\n // don't use normal setter so we don't resort\n this.sortInternalRows();\n }\n // auto group by parent on new update\n this._internalRows = groupRowsByParents(this._internalRows, optionalGetterForProp(this.treeFromRelation), optionalGetterForProp(this.treeToRelation));\n // Always go to first page when sorting to see the newly sorted data\n this.offset = 0;\n this.bodyComponent.updateOffsetY(this.offset);\n this.sort.emit(event);\n }\n /**\n * Toggle all row selection\n * @param {?} event\n * @return {?}\n */\n onHeaderSelect(event) {\n if (this.selectAllRowsOnPage) {\n // before we splice, chk if we currently have all selected\n /** @type {?} */\n const first = this.bodyComponent.indexes.first;\n /** @type {?} */\n const last = this.bodyComponent.indexes.last;\n /** @type {?} */\n const allSelected = this.selected.length === last - first;\n // remove all existing either way\n this.selected = [];\n // do the opposite here\n if (!allSelected) {\n this.selected.push(...this._internalRows.slice(first, last));\n }\n }\n else {\n // before we splice, chk if we currently have all selected\n /** @type {?} */\n const allSelected = this.selected.length === this.rows.length;\n // remove all existing either way\n this.selected = [];\n // do the opposite here\n if (!allSelected) {\n this.selected.push(...this.rows);\n }\n }\n this.select.emit({\n selected: this.selected\n });\n }\n /**\n * A row was selected from body\n * @param {?} event\n * @return {?}\n */\n onBodySelect(event) {\n this.select.emit(event);\n }\n /**\n * A row was expanded or collapsed for tree\n * @param {?} event\n * @return {?}\n */\n onTreeAction(event) {\n /** @type {?} */\n const row = event.row;\n // TODO: For duplicated items this will not work\n /** @type {?} */\n const rowIndex = this._rows.findIndex((/**\n * @param {?} r\n * @return {?}\n */\n r => r[this.treeToRelation] === event.row[this.treeToRelation]));\n this.treeAction.emit({ row, rowIndex });\n }\n /**\n * @return {?}\n */\n ngOnDestroy() {\n this._subscriptions.forEach((/**\n * @param {?} subscription\n * @return {?}\n */\n subscription => subscription.unsubscribe()));\n }\n /**\n * listen for changes to input bindings of all DataTableColumnDirective and\n * trigger the columnTemplates.changes observable to emit\n * @private\n * @return {?}\n */\n listenForColumnInputChanges() {\n this._subscriptions.push(this.columnChangesService.columnInputChanges$.subscribe((/**\n * @return {?}\n */\n () => {\n if (this.columnTemplates) {\n this.columnTemplates.notifyOnChanges();\n }\n })));\n }\n /**\n * @private\n * @return {?}\n */\n sortInternalRows() {\n this._internalRows = sortRows(this._internalRows, this._internalColumns, this.sorts);\n }\n}\nDatatableComponent.ɵfac = function DatatableComponent_Factory(t) { return new (t || DatatableComponent)(ɵngcc0.ɵɵdirectiveInject(ScrollbarHelper, 4), ɵngcc0.ɵɵdirectiveInject(DimensionsHelper, 4), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.KeyValueDiffers), ɵngcc0.ɵɵdirectiveInject(ColumnChangesService), ɵngcc0.ɵɵdirectiveInject('configuration', 8)); };\nDatatableComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: DatatableComponent, selectors: [[\"ngx-datatable\"]], contentQueries: function DatatableComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {\n ɵngcc0.ɵɵcontentQuery(dirIndex, DatatableRowDetailDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, DatatableGroupHeaderDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, DatatableFooterDirective, 5);\n ɵngcc0.ɵɵcontentQuery(dirIndex, DataTableColumnDirective, 4);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.rowDetail = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.groupHeader = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.footer = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.columnTemplates = _t);\n } }, viewQuery: function DatatableComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(DataTableBodyComponent, 5);\n ɵngcc0.ɵɵviewQuery(DataTableHeaderComponent, 5);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.bodyComponent = _t.first);\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.headerComponent = _t.first);\n } }, hostAttrs: [1, \"ngx-datatable\"], hostVars: 22, hostBindings: function DatatableComponent_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"resize\", function DatatableComponent_resize_HostBindingHandler() { return ctx.onWindowResize(); }, false, ɵngcc0.ɵɵresolveWindow);\n } if (rf & 2) {\n ɵngcc0.ɵɵclassProp(\"fixed-header\", ctx.isFixedHeader)(\"fixed-row\", ctx.isFixedRow)(\"scroll-vertical\", ctx.isVertScroll)(\"virtualized\", ctx.isVirtualized)(\"scroll-horz\", ctx.isHorScroll)(\"selectable\", ctx.isSelectable)(\"checkbox-selection\", ctx.isCheckboxSelection)(\"cell-selection\", ctx.isCellSelection)(\"single-selection\", ctx.isSingleSelection)(\"multi-selection\", ctx.isMultiSelection)(\"multi-click-selection\", ctx.isMultiClickSelection);\n } }, inputs: { selected: \"selected\", scrollbarV: \"scrollbarV\", scrollbarH: \"scrollbarH\", rowHeight: \"rowHeight\", columnMode: \"columnMode\", headerHeight: \"headerHeight\", footerHeight: \"footerHeight\", externalPaging: \"externalPaging\", externalSorting: \"externalSorting\", loadingIndicator: \"loadingIndicator\", reorderable: \"reorderable\", swapColumns: \"swapColumns\", sortType: \"sortType\", sorts: \"sorts\", cssClasses: \"cssClasses\", messages: \"messages\", groupExpansionDefault: \"groupExpansionDefault\", selectAllRowsOnPage: \"selectAllRowsOnPage\", virtualization: \"virtualization\", summaryRow: \"summaryRow\", summaryHeight: \"summaryHeight\", summaryPosition: \"summaryPosition\", rowIdentity: \"rowIdentity\", rows: \"rows\", groupedRows: \"groupedRows\", groupRowsBy: \"groupRowsBy\", columns: \"columns\", limit: \"limit\", count: \"count\", offset: \"offset\", targetMarkerTemplate: \"targetMarkerTemplate\", selectionType: \"selectionType\", rowClass: \"rowClass\", selectCheck: \"selectCheck\", displayCheck: \"displayCheck\", trackByProp: \"trackByProp\", treeFromRelation: \"treeFromRelation\", treeToRelation: \"treeToRelation\" }, outputs: { scroll: \"scroll\", activate: \"activate\", select: \"select\", sort: \"sort\", page: \"page\", reorder: \"reorder\", resize: \"resize\", tableContextmenu: \"tableContextmenu\", treeAction: \"treeAction\" }, decls: 5, vars: 34, consts: [[\"visibilityObserver\", \"\", 3, \"visible\"], [3, \"sorts\", \"sortType\", \"scrollbarH\", \"innerWidth\", \"offsetX\", \"dealsWithGroup\", \"columns\", \"headerHeight\", \"reorderable\", \"targetMarkerTemplate\", \"sortAscendingIcon\", \"sortDescendingIcon\", \"allRowsSelected\", \"selectionType\", \"sort\", \"resize\", \"reorder\", \"select\", \"columnContextmenu\", 4, \"ngIf\"], [3, \"groupRowsBy\", \"groupedRows\", \"rows\", \"groupExpansionDefault\", \"scrollbarV\", \"scrollbarH\", \"virtualization\", \"loadingIndicator\", \"externalPaging\", \"rowHeight\", \"rowCount\", \"offset\", \"trackByProp\", \"columns\", \"pageSize\", \"offsetX\", \"rowDetail\", \"groupHeader\", \"selected\", \"innerWidth\", \"bodyHeight\", \"selectionType\", \"emptyMessage\", \"rowIdentity\", \"rowClass\", \"selectCheck\", \"displayCheck\", \"summaryRow\", \"summaryHeight\", \"summaryPosition\", \"page\", \"activate\", \"rowContextmenu\", \"select\", \"scroll\", \"treeAction\"], [3, \"rowCount\", \"pageSize\", \"offset\", \"footerHeight\", \"footerTemplate\", \"totalMessage\", \"pagerLeftArrowIcon\", \"pagerRightArrowIcon\", \"pagerPreviousIcon\", \"selectedCount\", \"selectedMessage\", \"pagerNextIcon\", \"page\", 4, \"ngIf\"], [3, \"sorts\", \"sortType\", \"scrollbarH\", \"innerWidth\", \"offsetX\", \"dealsWithGroup\", \"columns\", \"headerHeight\", \"reorderable\", \"targetMarkerTemplate\", \"sortAscendingIcon\", \"sortDescendingIcon\", \"allRowsSelected\", \"selectionType\", \"sort\", \"resize\", \"reorder\", \"select\", \"columnContextmenu\"], [3, \"rowCount\", \"pageSize\", \"offset\", \"footerHeight\", \"footerTemplate\", \"totalMessage\", \"pagerLeftArrowIcon\", \"pagerRightArrowIcon\", \"pagerPreviousIcon\", \"selectedCount\", \"selectedMessage\", \"pagerNextIcon\", \"page\"]], template: function DatatableComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 0);\n ɵngcc0.ɵɵlistener(\"visible\", function DatatableComponent_Template_div_visible_0_listener() { return ctx.recalculate(); });\n ɵngcc0.ɵɵtemplate(1, DatatableComponent_datatable_header_1_Template, 2, 16, \"datatable-header\", 1);\n ɵngcc0.ɵɵelementStart(2, \"datatable-body\", 2);\n ɵngcc0.ɵɵlistener(\"page\", function DatatableComponent_Template_datatable_body_page_2_listener($event) { return ctx.onBodyPage($event); })(\"activate\", function DatatableComponent_Template_datatable_body_activate_2_listener($event) { return ctx.activate.emit($event); })(\"rowContextmenu\", function DatatableComponent_Template_datatable_body_rowContextmenu_2_listener($event) { return ctx.onRowContextmenu($event); })(\"select\", function DatatableComponent_Template_datatable_body_select_2_listener($event) { return ctx.onBodySelect($event); })(\"scroll\", function DatatableComponent_Template_datatable_body_scroll_2_listener($event) { return ctx.onBodyScroll($event); })(\"treeAction\", function DatatableComponent_Template_datatable_body_treeAction_2_listener($event) { return ctx.onTreeAction($event); });\n ɵngcc0.ɵɵpipe(3, \"async\");\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵtemplate(4, DatatableComponent_datatable_footer_4_Template, 1, 12, \"datatable-footer\", 3);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.headerHeight);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"groupRowsBy\", ctx.groupRowsBy)(\"groupedRows\", ctx.groupedRows)(\"rows\", ctx._internalRows)(\"groupExpansionDefault\", ctx.groupExpansionDefault)(\"scrollbarV\", ctx.scrollbarV)(\"scrollbarH\", ctx.scrollbarH)(\"virtualization\", ctx.virtualization)(\"loadingIndicator\", ctx.loadingIndicator)(\"externalPaging\", ctx.externalPaging)(\"rowHeight\", ctx.rowHeight)(\"rowCount\", ctx.rowCount)(\"offset\", ctx.offset)(\"trackByProp\", ctx.trackByProp)(\"columns\", ctx._internalColumns)(\"pageSize\", ctx.pageSize)(\"offsetX\", ɵngcc0.ɵɵpipeBind1(3, 32, ctx._offsetX))(\"rowDetail\", ctx.rowDetail)(\"groupHeader\", ctx.groupHeader)(\"selected\", ctx.selected)(\"innerWidth\", ctx._innerWidth)(\"bodyHeight\", ctx.bodyHeight)(\"selectionType\", ctx.selectionType)(\"emptyMessage\", ctx.messages.emptyMessage)(\"rowIdentity\", ctx.rowIdentity)(\"rowClass\", ctx.rowClass)(\"selectCheck\", ctx.selectCheck)(\"displayCheck\", ctx.displayCheck)(\"summaryRow\", ctx.summaryRow)(\"summaryHeight\", ctx.summaryHeight)(\"summaryPosition\", ctx.summaryPosition);\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.footerHeight);\n } }, dependencies: function () { return [ɵngcc1.NgIf, VisibilityDirective, DataTableHeaderComponent, DataTableBodyComponent, DataTableFooterComponent, ɵngcc1.AsyncPipe]; }, styles: [\".ngx-datatable{display:block;overflow:hidden;justify-content:center;position:relative;-webkit-transform:translate3d(0,0,0)}.ngx-datatable [hidden]{display:none!important}.ngx-datatable *,.ngx-datatable :after,.ngx-datatable :before{box-sizing:border-box}.ngx-datatable.scroll-vertical .datatable-body{overflow-y:auto}.ngx-datatable.scroll-vertical.virtualized .datatable-body .datatable-row-wrapper{position:absolute}.ngx-datatable.scroll-horz .datatable-body{overflow-x:auto;-webkit-overflow-scrolling:touch}.ngx-datatable.fixed-header .datatable-header .datatable-header-inner{white-space:nowrap}.ngx-datatable.fixed-header .datatable-header .datatable-header-inner .datatable-header-cell{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ngx-datatable.fixed-row .datatable-scroll,.ngx-datatable.fixed-row .datatable-scroll .datatable-body-row{white-space:nowrap}.ngx-datatable.fixed-row .datatable-scroll .datatable-body-row .datatable-body-cell,.ngx-datatable.fixed-row .datatable-scroll .datatable-body-row .datatable-body-group-cell{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ngx-datatable .datatable-body-row,.ngx-datatable .datatable-header-inner,.ngx-datatable .datatable-row-center{display:flex;flex-direction:row;-o-flex-flow:row;flex-flow:row}.ngx-datatable .datatable-body-cell,.ngx-datatable .datatable-header-cell{overflow-x:hidden;vertical-align:top;display:inline-block;line-height:1.625}.ngx-datatable .datatable-body-cell:focus,.ngx-datatable .datatable-header-cell:focus{outline:0}.ngx-datatable .datatable-row-left,.ngx-datatable .datatable-row-right{z-index:9}.ngx-datatable .datatable-row-center,.ngx-datatable .datatable-row-group,.ngx-datatable .datatable-row-left,.ngx-datatable .datatable-row-right{position:relative}.ngx-datatable .datatable-header{display:block;overflow:hidden}.ngx-datatable .datatable-header .datatable-header-inner{align-items:stretch;-webkit-align-items:stretch}.ngx-datatable .datatable-header .datatable-header-cell{position:relative;display:inline-block}.ngx-datatable .datatable-header .datatable-header-cell.sortable .datatable-header-cell-wrapper{cursor:pointer}.ngx-datatable .datatable-header .datatable-header-cell.longpress .datatable-header-cell-wrapper{cursor:move}.ngx-datatable .datatable-header .datatable-header-cell .sort-btn{line-height:100%;vertical-align:middle;display:inline-block;cursor:pointer}.ngx-datatable .datatable-header .datatable-header-cell .resize-handle,.ngx-datatable .datatable-header .datatable-header-cell .resize-handle--not-resizable{display:inline-block;position:absolute;right:0;top:0;bottom:0;width:5px;padding:0 4px;visibility:hidden}.ngx-datatable .datatable-header .datatable-header-cell .resize-handle{cursor:ew-resize}.ngx-datatable .datatable-header .datatable-header-cell.resizeable:hover .resize-handle,.ngx-datatable .datatable-header .datatable-header-cell:hover .resize-handle--not-resizable{visibility:visible}.ngx-datatable .datatable-header .datatable-header-cell .targetMarker{position:absolute;top:0;bottom:0}.ngx-datatable .datatable-header .datatable-header-cell .targetMarker.dragFromLeft{right:0}.ngx-datatable .datatable-header .datatable-header-cell .targetMarker.dragFromRight{left:0}.ngx-datatable .datatable-header .datatable-header-cell .datatable-header-cell-template-wrap{height:inherit}.ngx-datatable .datatable-body{position:relative;z-index:10;display:block}.ngx-datatable .datatable-body .datatable-scroll{display:inline-block}.ngx-datatable .datatable-body .datatable-row-detail{overflow-y:hidden}.ngx-datatable .datatable-body .datatable-row-wrapper{display:flex;flex-direction:column}.ngx-datatable .datatable-body .datatable-body-row{outline:0}.ngx-datatable .datatable-body .datatable-body-row>div{display:flex}.ngx-datatable .datatable-footer{display:block;width:100%;overflow:auto}.ngx-datatable .datatable-footer .datatable-footer-inner{display:flex;align-items:center;width:100%}.ngx-datatable .datatable-footer .selected-count .page-count{flex:1 1 40%}.ngx-datatable .datatable-footer .selected-count .datatable-pager{flex:1 1 60%}.ngx-datatable .datatable-footer .page-count{flex:1 1 20%}.ngx-datatable .datatable-footer .datatable-pager{flex:1 1 80%;text-align:right}.ngx-datatable .datatable-footer .datatable-pager .pager,.ngx-datatable .datatable-footer .datatable-pager .pager li{padding:0;margin:0;display:inline-block;list-style:none}.ngx-datatable .datatable-footer .datatable-pager .pager li,.ngx-datatable .datatable-footer .datatable-pager .pager li a{outline:0}.ngx-datatable .datatable-footer .datatable-pager .pager li a{cursor:pointer;display:inline-block}.ngx-datatable .datatable-footer .datatable-pager .pager li.disabled a{cursor:not-allowed}\"], encapsulation: 2, changeDetection: 0 });\n/** @nocollapse */\nDatatableComponent.ctorParameters = () => [\n { type: ScrollbarHelper, decorators: [{ type: SkipSelf }] },\n { type: DimensionsHelper, decorators: [{ type: SkipSelf }] },\n { type: ChangeDetectorRef },\n { type: ElementRef },\n { type: KeyValueDiffers },\n { type: ColumnChangesService },\n { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: ['configuration',] }] }\n];\nDatatableComponent.propDecorators = {\n targetMarkerTemplate: [{ type: Input }],\n rows: [{ type: Input }],\n groupRowsBy: [{ type: Input }],\n groupedRows: [{ type: Input }],\n columns: [{ type: Input }],\n selected: [{ type: Input }],\n scrollbarV: [{ type: Input }],\n scrollbarH: [{ type: Input }],\n rowHeight: [{ type: Input }],\n columnMode: [{ type: Input }],\n headerHeight: [{ type: Input }],\n footerHeight: [{ type: Input }],\n externalPaging: [{ type: Input }],\n externalSorting: [{ type: Input }],\n limit: [{ type: Input }],\n count: [{ type: Input }],\n offset: [{ type: Input }],\n loadingIndicator: [{ type: Input }],\n selectionType: [{ type: Input }],\n reorderable: [{ type: Input }],\n swapColumns: [{ type: Input }],\n sortType: [{ type: Input }],\n sorts: [{ type: Input }],\n cssClasses: [{ type: Input }],\n messages: [{ type: Input }],\n rowClass: [{ type: Input }],\n selectCheck: [{ type: Input }],\n displayCheck: [{ type: Input }],\n groupExpansionDefault: [{ type: Input }],\n trackByProp: [{ type: Input }],\n selectAllRowsOnPage: [{ type: Input }],\n virtualization: [{ type: Input }],\n treeFromRelation: [{ type: Input }],\n treeToRelation: [{ type: Input }],\n summaryRow: [{ type: Input }],\n summaryHeight: [{ type: Input }],\n summaryPosition: [{ type: Input }],\n scroll: [{ type: Output }],\n activate: [{ type: Output }],\n select: [{ type: Output }],\n sort: [{ type: Output }],\n page: [{ type: Output }],\n reorder: [{ type: Output }],\n resize: [{ type: Output }],\n tableContextmenu: [{ type: Output }],\n treeAction: [{ type: Output }],\n isFixedHeader: [{ type: HostBinding, args: ['class.fixed-header',] }],\n isFixedRow: [{ type: HostBinding, args: ['class.fixed-row',] }],\n isVertScroll: [{ type: HostBinding, args: ['class.scroll-vertical',] }],\n isVirtualized: [{ type: HostBinding, args: ['class.virtualized',] }],\n isHorScroll: [{ type: HostBinding, args: ['class.scroll-horz',] }],\n isSelectable: [{ type: HostBinding, args: ['class.selectable',] }],\n isCheckboxSelection: [{ type: HostBinding, args: ['class.checkbox-selection',] }],\n isCellSelection: [{ type: HostBinding, args: ['class.cell-selection',] }],\n isSingleSelection: [{ type: HostBinding, args: ['class.single-selection',] }],\n isMultiSelection: [{ type: HostBinding, args: ['class.multi-selection',] }],\n isMultiClickSelection: [{ type: HostBinding, args: ['class.multi-click-selection',] }],\n columnTemplates: [{ type: ContentChildren, args: [DataTableColumnDirective,] }],\n rowDetail: [{ type: ContentChild, args: [DatatableRowDetailDirective, { static: false },] }],\n groupHeader: [{ type: ContentChild, args: [DatatableGroupHeaderDirective, { static: false },] }],\n footer: [{ type: ContentChild, args: [DatatableFooterDirective, { static: false },] }],\n bodyComponent: [{ type: ViewChild, args: [DataTableBodyComponent, { static: false },] }],\n headerComponent: [{ type: ViewChild, args: [DataTableHeaderComponent, { static: false },] }],\n rowIdentity: [{ type: Input }],\n onWindowResize: [{ type: HostListener, args: ['window:resize',] }]\n};\n__decorate([\n throttleable(5),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], DatatableComponent.prototype, \"onWindowResize\", null);\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ScrollbarHelper, [{\n type: Injectable\n }], function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DimensionsHelper, [{\n type: Injectable\n }], null, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ColumnChangesService, [{\n type: Injectable\n }], function () { return []; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DataTableFooterTemplateDirective, [{\n type: Directive,\n args: [{ selector: '[ngx-datatable-footer-template]' }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(VisibilityDirective, [{\n type: Directive,\n args: [{ selector: '[visibilityObserver]' }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.NgZone }]; }, { isVisible: [{\n type: HostBinding,\n args: ['class.visible']\n }], visible: [{\n type: Output\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DraggableDirective, [{\n type: Directive,\n args: [{ selector: '[draggable]' }]\n }], function () { return [{ type: ɵngcc0.ElementRef }]; }, { dragX: [{\n type: Input\n }], dragY: [{\n type: Input\n }], dragStart: [{\n type: Output\n }], dragging: [{\n type: Output\n }], dragEnd: [{\n type: Output\n }], dragEventTarget: [{\n type: Input\n }], dragModel: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ResizeableDirective, [{\n type: Directive,\n args: [{\n selector: '[resizeable]',\n host: {\n '[class.resizeable]': 'resizeEnabled'\n }\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }]; }, { resizeEnabled: [{\n type: Input\n }], resize: [{\n type: Output\n }], \n /**\n * @param {?} event\n * @return {?}\n */\n onMousedown: [{\n type: HostListener,\n args: ['mousedown', ['$event']]\n }], minWidth: [{\n type: Input\n }], maxWidth: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(OrderableDirective, [{\n type: Directive,\n args: [{ selector: '[orderable]' }]\n }], function () { return [{ type: ɵngcc0.KeyValueDiffers }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; }, { reorder: [{\n type: Output\n }], targetChanged: [{\n type: Output\n }], draggables: [{\n type: ContentChildren,\n args: [DraggableDirective, { descendants: true }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(LongPressDirective, [{\n type: Directive,\n args: [{ selector: '[long-press]' }]\n }], function () { return []; }, { pressEnabled: [{\n type: Input\n }], duration: [{\n type: Input\n }], longPressStart: [{\n type: Output\n }], longPressing: [{\n type: Output\n }], longPressEnd: [{\n type: Output\n }], press: [{\n type: HostBinding,\n args: ['class.press']\n }], isLongPress: [{\n type: HostBinding,\n args: ['class.longpress']\n }], \n /**\n * @param {?} event\n * @return {?}\n */\n onMouseDown: [{\n type: HostListener,\n args: ['mousedown', ['$event']]\n }], pressModel: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ScrollerComponent, [{\n type: Component,\n args: [{\n selector: 'datatable-scroller',\n template: `\n \n `,\n host: {\n class: 'datatable-scroll'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], function () { return [{ type: ɵngcc0.NgZone }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }]; }, { scrollbarV: [{\n type: Input\n }], scrollbarH: [{\n type: Input\n }], scroll: [{\n type: Output\n }], scrollHeight: [{\n type: HostBinding,\n args: ['style.height.px']\n }, {\n type: Input\n }], scrollWidth: [{\n type: HostBinding,\n args: ['style.width.px']\n }, {\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DatatableGroupHeaderTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[ngx-datatable-group-header-template]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DatatableGroupHeaderDirective, [{\n type: Directive,\n args: [{ selector: 'ngx-datatable-group-header' }]\n }], function () { return []; }, { rowHeight: [{\n type: Input\n }], toggle: [{\n type: Output\n }], _templateInput: [{\n type: Input,\n args: ['template']\n }], _templateQuery: [{\n type: ContentChild,\n args: [DatatableGroupHeaderTemplateDirective, { read: TemplateRef, static: true }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DataTableColumnHeaderDirective, [{\n type: Directive,\n args: [{ selector: '[ngx-datatable-header-template]' }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DataTableColumnCellDirective, [{\n type: Directive,\n args: [{ selector: '[ngx-datatable-cell-template]' }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DataTableColumnCellTreeToggle, [{\n type: Directive,\n args: [{ selector: '[ngx-datatable-tree-toggle]' }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DataTableColumnDirective, [{\n type: Directive,\n args: [{ selector: 'ngx-datatable-column' }]\n }], function () { return [{ type: ColumnChangesService }]; }, { name: [{\n type: Input\n }], prop: [{\n type: Input\n }], frozenLeft: [{\n type: Input\n }], frozenRight: [{\n type: Input\n }], flexGrow: [{\n type: Input\n }], resizeable: [{\n type: Input\n }], comparator: [{\n type: Input\n }], pipe: [{\n type: Input\n }], sortable: [{\n type: Input\n }], draggable: [{\n type: Input\n }], canAutoResize: [{\n type: Input\n }], minWidth: [{\n type: Input\n }], width: [{\n type: Input\n }], maxWidth: [{\n type: Input\n }], checkboxable: [{\n type: Input\n }], headerCheckboxable: [{\n type: Input\n }], headerClass: [{\n type: Input\n }], cellClass: [{\n type: Input\n }], isTreeColumn: [{\n type: Input\n }], treeLevelIndent: [{\n type: Input\n }], summaryFunc: [{\n type: Input\n }], summaryTemplate: [{\n type: Input\n }], _cellTemplateInput: [{\n type: Input,\n args: ['cellTemplate']\n }], _cellTemplateQuery: [{\n type: ContentChild,\n args: [DataTableColumnCellDirective, { read: TemplateRef, static: true }]\n }], _headerTemplateInput: [{\n type: Input,\n args: ['headerTemplate']\n }], _headerTemplateQuery: [{\n type: ContentChild,\n args: [DataTableColumnHeaderDirective, { read: TemplateRef, static: true }]\n }], _treeToggleTemplateInput: [{\n type: Input,\n args: ['treeToggleTemplate']\n }], _treeToggleTemplateQuery: [{\n type: ContentChild,\n args: [DataTableColumnCellTreeToggle, { read: TemplateRef, static: true }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DatatableRowDetailTemplateDirective, [{\n type: Directive,\n args: [{\n selector: '[ngx-datatable-row-detail-template]'\n }]\n }], function () { return [{ type: ɵngcc0.TemplateRef }]; }, null); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DatatableRowDetailDirective, [{\n type: Directive,\n args: [{ selector: 'ngx-datatable-row-detail' }]\n }], function () { return []; }, { rowHeight: [{\n type: Input\n }], toggle: [{\n type: Output\n }], _templateInput: [{\n type: Input,\n args: ['template']\n }], _templateQuery: [{\n type: ContentChild,\n args: [DatatableRowDetailTemplateDirective, { read: TemplateRef, static: true }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DatatableFooterDirective, [{\n type: Directive,\n args: [{ selector: 'ngx-datatable-footer' }]\n }], null, { footerHeight: [{\n type: Input\n }], totalMessage: [{\n type: Input\n }], selectedMessage: [{\n type: Input\n }], pagerLeftArrowIcon: [{\n type: Input\n }], pagerRightArrowIcon: [{\n type: Input\n }], pagerPreviousIcon: [{\n type: Input\n }], pagerNextIcon: [{\n type: Input\n }], _templateInput: [{\n type: Input,\n args: ['template']\n }], _templateQuery: [{\n type: ContentChild,\n args: [DataTableFooterTemplateDirective, { read: TemplateRef, static: false }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DataTableBodyComponent, [{\n type: Component,\n args: [{\n selector: 'datatable-body',\n template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'datatable-body'\n }\n }]\n }], function () { return [{ type: ɵngcc0.ChangeDetectorRef }]; }, { selected: [{\n type: Input\n }], scroll: [{\n type: Output\n }], page: [{\n type: Output\n }], activate: [{\n type: Output\n }], select: [{\n type: Output\n }], detailToggle: [{\n type: Output\n }], rowContextmenu: [{\n type: Output\n }], treeAction: [{\n type: Output\n }], pageSize: [{\n type: Input\n }], rows: [{\n type: Input\n }], columns: [{\n type: Input\n }], offset: [{\n type: Input\n }], rowCount: [{\n type: Input\n }], bodyWidth: [{\n type: HostBinding,\n args: ['style.width']\n }], bodyHeight: [{\n type: Input\n }, {\n type: HostBinding,\n args: ['style.height']\n }], offsetX: [{\n type: Input\n }], loadingIndicator: [{\n type: Input\n }], scrollbarV: [{\n type: Input\n }], scrollbarH: [{\n type: Input\n }], externalPaging: [{\n type: Input\n }], rowHeight: [{\n type: Input\n }], emptyMessage: [{\n type: Input\n }], selectionType: [{\n type: Input\n }], rowIdentity: [{\n type: Input\n }], rowDetail: [{\n type: Input\n }], groupHeader: [{\n type: Input\n }], selectCheck: [{\n type: Input\n }], displayCheck: [{\n type: Input\n }], trackByProp: [{\n type: Input\n }], rowClass: [{\n type: Input\n }], groupedRows: [{\n type: Input\n }], groupExpansionDefault: [{\n type: Input\n }], innerWidth: [{\n type: Input\n }], groupRowsBy: [{\n type: Input\n }], virtualization: [{\n type: Input\n }], summaryRow: [{\n type: Input\n }], summaryPosition: [{\n type: Input\n }], summaryHeight: [{\n type: Input\n }], scroller: [{\n type: ViewChild,\n args: [ScrollerComponent, { static: false }]\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DataTableHeaderComponent, [{\n type: Component,\n args: [{\n selector: 'datatable-header',\n template: `\n \n \n \n \n \n \n `,\n host: {\n class: 'datatable-header'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], function () { return [{ type: ɵngcc0.ChangeDetectorRef }]; }, { sort: [{\n type: Output\n }], reorder: [{\n type: Output\n }], resize: [{\n type: Output\n }], select: [{\n type: Output\n }], columnContextmenu: [{\n type: Output\n }], innerWidth: [{\n type: Input\n }], headerHeight: [{\n type: HostBinding,\n args: ['style.height']\n }, {\n type: Input\n }], columns: [{\n type: Input\n }], offsetX: [{\n type: Input\n }], headerWidth: [{\n type: HostBinding,\n args: ['style.width']\n }], sorts: [{\n type: Input\n }], sortAscendingIcon: [{\n type: Input\n }], sortDescendingIcon: [{\n type: Input\n }], scrollbarH: [{\n type: Input\n }], dealsWithGroup: [{\n type: Input\n }], targetMarkerTemplate: [{\n type: Input\n }], sortType: [{\n type: Input\n }], allRowsSelected: [{\n type: Input\n }], selectionType: [{\n type: Input\n }], reorderable: [{\n type: Input\n }] }); })();\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DatatableComponent, [{\n type: Component,\n args: [{ selector: 'ngx-datatable', template: \"
\\n \\n \\n \\n \\n \\n \\n
\\n\", changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {\n class: 'ngx-datatable'\n }, styles: [\".ngx-datatable{display:block;overflow:hidden;justify-content:center;position:relative;-webkit-transform:translate3d(0,0,0)}.ngx-datatable [hidden]{display:none!important}.ngx-datatable *,.ngx-datatable :after,.ngx-datatable :before{box-sizing:border-box}.ngx-datatable.scroll-vertical .datatable-body{overflow-y:auto}.ngx-datatable.scroll-vertical.virtualized .datatable-body .datatable-row-wrapper{position:absolute}.ngx-datatable.scroll-horz .datatable-body{overflow-x:auto;-webkit-overflow-scrolling:touch}.ngx-datatable.fixed-header .datatable-header .datatable-header-inner{white-space:nowrap}.ngx-datatable.fixed-header .datatable-header .datatable-header-inner .datatable-header-cell{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ngx-datatable.fixed-row .datatable-scroll,.ngx-datatable.fixed-row .datatable-scroll .datatable-body-row{white-space:nowrap}.ngx-datatable.fixed-row .datatable-scroll .datatable-body-row .datatable-body-cell,.ngx-datatable.fixed-row .datatable-scroll .datatable-body-row .datatable-body-group-cell{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ngx-datatable .datatable-body-row,.ngx-datatable .datatable-header-inner,.ngx-datatable .datatable-row-center{display:flex;flex-direction:row;-o-flex-flow:row;flex-flow:row}.ngx-datatable .datatable-body-cell,.ngx-datatable .datatable-header-cell{overflow-x:hidden;vertical-align:top;display:inline-block;line-height:1.625}.ngx-datatable .datatable-body-cell:focus,.ngx-datatable .datatable-header-cell:focus{outline:0}.ngx-datatable .datatable-row-left,.ngx-datatable .datatable-row-right{z-index:9}.ngx-datatable .datatable-row-center,.ngx-datatable .datatable-row-group,.ngx-datatable .datatable-row-left,.ngx-datatable .datatable-row-right{position:relative}.ngx-datatable .datatable-header{display:block;overflow:hidden}.ngx-datatable .datatable-header .datatable-header-inner{align-items:stretch;-webkit-align-items:stretch}.ngx-datatable .datatable-header .datatable-header-cell{position:relative;display:inline-block}.ngx-datatable .datatable-header .datatable-header-cell.sortable .datatable-header-cell-wrapper{cursor:pointer}.ngx-datatable .datatable-header .datatable-header-cell.longpress .datatable-header-cell-wrapper{cursor:move}.ngx-datatable .datatable-header .datatable-header-cell .sort-btn{line-height:100%;vertical-align:middle;display:inline-block;cursor:pointer}.ngx-datatable .datatable-header .datatable-header-cell .resize-handle,.ngx-datatable .datatable-header .datatable-header-cell .resize-handle--not-resizable{display:inline-block;position:absolute;right:0;top:0;bottom:0;width:5px;padding:0 4px;visibility:hidden}.ngx-datatable .datatable-header .datatable-header-cell .resize-handle{cursor:ew-resize}.ngx-datatable .datatable-header .datatable-header-cell.resizeable:hover .resize-handle,.ngx-datatable .datatable-header .datatable-header-cell:hover .resize-handle--not-resizable{visibility:visible}.ngx-datatable .datatable-header .datatable-header-cell .targetMarker{position:absolute;top:0;bottom:0}.ngx-datatable .datatable-header .datatable-header-cell .targetMarker.dragFromLeft{right:0}.ngx-datatable .datatable-header .datatable-header-cell .targetMarker.dragFromRight{left:0}.ngx-datatable .datatable-header .datatable-header-cell .datatable-header-cell-template-wrap{height:inherit}.ngx-datatable .datatable-body{position:relative;z-index:10;display:block}.ngx-datatable .datatable-body .datatable-scroll{display:inline-block}.ngx-datatable .datatable-body .datatable-row-detail{overflow-y:hidden}.ngx-datatable .datatable-body .datatable-row-wrapper{display:flex;flex-direction:column}.ngx-datatable .datatable-body .datatable-body-row{outline:0}.ngx-datatable .datatable-body .datatable-body-row>div{display:flex}.ngx-datatable .datatable-footer{display:block;width:100%;overflow:auto}.ngx-datatable .datatable-footer .datatable-footer-inner{display:flex;align-items:center;width:100%}.ngx-datatable .datatable-footer .selected-count .page-count{flex:1 1 40%}.ngx-datatable .datatable-footer .selected-count .datatable-pager{flex:1 1 60%}.ngx-datatable .datatable-footer .page-count{flex:1 1 20%}.ngx-datatable .datatable-footer .datatable-pager{flex:1 1 80%;text-align:right}.ngx-datatable .datatable-footer .datatable-pager .pager,.ngx-datatable .datatable-footer .datatable-pager .pager li{padding:0;margin:0;display:inline-block;list-style:none}.ngx-datatable .datatable-footer .datatable-pager .pager li,.ngx-datatable .datatable-footer .datatable-pager .pager li a{outline:0}.ngx-datatable .datatable-footer .datatable-pager .pager li a{cursor:pointer;display:inline-block}.ngx-datatable .datatable-footer .datatable-pager .pager li.disabled a{cursor:not-allowed}\"] }]\n }], function () { return [{ type: ScrollbarHelper, decorators: [{\n type: SkipSelf\n }] }, { type: DimensionsHelper, decorators: [{\n type: SkipSelf\n }] }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.KeyValueDiffers }, { type: ColumnChangesService }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: ['configuration']\n }] }]; }, { selected: [{\n type: Input\n }], scrollbarV: [{\n type: Input\n }], scrollbarH: [{\n type: Input\n }], rowHeight: [{\n type: Input\n }], columnMode: [{\n type: Input\n }], headerHeight: [{\n type: Input\n }], footerHeight: [{\n type: Input\n }], externalPaging: [{\n type: Input\n }], externalSorting: [{\n type: Input\n }], loadingIndicator: [{\n type: Input\n }], reorderable: [{\n type: Input\n }], swapColumns: [{\n type: Input\n }], sortType: [{\n type: Input\n }], sorts: [{\n type: Input\n }], cssClasses: [{\n type: Input\n }], messages: [{\n type: Input\n }], groupExpansionDefault: [{\n type: Input\n }], selectAllRowsOnPage: [{\n type: Input\n }], virtualization: [{\n type: Input\n }], summaryRow: [{\n type: Input\n }], summaryHeight: [{\n type: Input\n }], summaryPosition: [{\n type: Input\n }], scroll: [{\n type: Output\n }], activate: [{\n type: Output\n }], select: [{\n type: Output\n }], sort: [{\n type: Output\n }], page: [{\n type: Output\n }], reorder: [{\n type: Output\n }], resize: [{\n type: Output\n }], tableContextmenu: [{\n type: Output\n }], treeAction: [{\n type: Output\n }], rowIdentity: [{\n type: Input\n }], rows: [{\n type: Input\n }], groupedRows: [{\n type: Input\n }], groupRowsBy: [{\n type: Input\n }], columns: [{\n type: Input\n }], limit: [{\n type: Input\n }], count: [{\n type: Input\n }], offset: [{\n type: Input\n }], isFixedHeader: [{\n type: HostBinding,\n args: ['class.fixed-header']\n }], isFixedRow: [{\n type: HostBinding,\n args: ['class.fixed-row']\n }], isVertScroll: [{\n type: HostBinding,\n args: ['class.scroll-vertical']\n }], isVirtualized: [{\n type: HostBinding,\n args: ['class.virtualized']\n }], isHorScroll: [{\n type: HostBinding,\n args: ['class.scroll-horz']\n }], isSelectable: [{\n type: HostBinding,\n args: ['class.selectable']\n }], isCheckboxSelection: [{\n type: HostBinding,\n args: ['class.checkbox-selection']\n }], isCellSelection: [{\n type: HostBinding,\n args: ['class.cell-selection']\n }], isSingleSelection: [{\n type: HostBinding,\n args: ['class.single-selection']\n }], isMultiSelection: [{\n type: HostBinding,\n args: ['class.multi-selection']\n }], isMultiClickSelection: [{\n type: HostBinding,\n args: ['class.multi-click-selection']\n }], columnTemplates: [{\n type: ContentChildren,\n args: [DataTableColumnDirective]\n }], \n /**\n * Window resize handler to update sizes.\n * @return {?}\n */\n onWindowResize: [{\n type: HostListener,\n args: ['window:resize']\n }], targetMarkerTemplate: [{\n type: Input\n }], selectionType: [{\n type: Input\n }], rowClass: [{\n type: Input\n }], selectCheck: [{\n type: Input\n }], displayCheck: [{\n type: Input\n }], trackByProp: [{\n type: Input\n }], treeFromRelation: [{\n type: Input\n }], treeToRelation: [{\n type: Input\n }], rowDetail: [{\n type: ContentChild,\n args: [DatatableRowDetailDirective, { static: false }]\n }], groupHeader: [{\n type: ContentChild,\n args: [DatatableGroupHeaderDirective, { static: false }]\n }], footer: [{\n type: ContentChild,\n args: [DatatableFooterDirective, { static: false }]\n }], bodyComponent: [{\n type: ViewChild,\n args: [DataTableBodyComponent, { static: false }]\n }], headerComponent: [{\n type: ViewChild,\n args: [DataTableHeaderComponent, { static: false }]\n }] }); })();\nif (false) {\n /**\n * Template for the target marker of drag target columns.\n * @type {?}\n */\n DatatableComponent.prototype.targetMarkerTemplate;\n /**\n * This attribute allows the user to set a grouped array in the following format:\n * [\n * {groupid=1} [\n * {id=1 name=\"test1\"},\n * {id=2 name=\"test2\"},\n * {id=3 name=\"test3\"}\n * ]},\n * {groupid=2>[\n * {id=4 name=\"test4\"},\n * {id=5 name=\"test5\"},\n * {id=6 name=\"test6\"}\n * ]}\n * ]\n * @type {?}\n */\n DatatableComponent.prototype.groupedRows;\n /**\n * List of row objects that should be\n * represented as selected in the grid.\n * Default value: `[]`\n * @type {?}\n */\n DatatableComponent.prototype.selected;\n /**\n * Enable vertical scrollbars\n * @type {?}\n */\n DatatableComponent.prototype.scrollbarV;\n /**\n * Enable horz scrollbars\n * @type {?}\n */\n DatatableComponent.prototype.scrollbarH;\n /**\n * The row height; which is necessary\n * to calculate the height for the lazy rendering.\n * @type {?}\n */\n DatatableComponent.prototype.rowHeight;\n /**\n * Type of column width distribution formula.\n * Example: flex, force, standard\n * @type {?}\n */\n DatatableComponent.prototype.columnMode;\n /**\n * The minimum header height in pixels.\n * Pass a falsey for no header\n * @type {?}\n */\n DatatableComponent.prototype.headerHeight;\n /**\n * The minimum footer height in pixels.\n * Pass falsey for no footer\n * @type {?}\n */\n DatatableComponent.prototype.footerHeight;\n /**\n * If the table should use external paging\n * otherwise its assumed that all data is preloaded.\n * @type {?}\n */\n DatatableComponent.prototype.externalPaging;\n /**\n * If the table should use external sorting or\n * the built-in basic sorting.\n * @type {?}\n */\n DatatableComponent.prototype.externalSorting;\n /**\n * Show the linear loading bar.\n * Default value: `false`\n * @type {?}\n */\n DatatableComponent.prototype.loadingIndicator;\n /**\n * Type of row selection. Options are:\n *\n * - `single`\n * - `multi`\n * - `checkbox`\n * - `multiClick`\n * - `cell`\n *\n * For no selection pass a `falsey`.\n * Default value: `undefined`\n * @type {?}\n */\n DatatableComponent.prototype.selectionType;\n /**\n * Enable/Disable ability to re-order columns\n * by dragging them.\n * @type {?}\n */\n DatatableComponent.prototype.reorderable;\n /**\n * Swap columns on re-order columns or\n * move them.\n * @type {?}\n */\n DatatableComponent.prototype.swapColumns;\n /**\n * The type of sorting\n * @type {?}\n */\n DatatableComponent.prototype.sortType;\n /**\n * Array of sorted columns by property and type.\n * Default value: `[]`\n * @type {?}\n */\n DatatableComponent.prototype.sorts;\n /**\n * Css class overrides\n * @type {?}\n */\n DatatableComponent.prototype.cssClasses;\n /**\n * Message overrides for localization\n *\n * emptyMessage [default] = 'No data to display'\n * totalMessage [default] = 'total'\n * selectedMessage [default] = 'selected'\n * @type {?}\n */\n DatatableComponent.prototype.messages;\n /**\n * Row specific classes.\n * Similar implementation to ngClass.\n *\n * [rowClass]=\"'first second'\"\n * [rowClass]=\"{ 'first': true, 'second': true, 'third': false }\"\n * @type {?}\n */\n DatatableComponent.prototype.rowClass;\n /**\n * A boolean/function you can use to check whether you want\n * to select a particular row based on a criteria. Example:\n *\n * (selection) => {\n * return selection !== 'Ethel Price';\n * }\n * @type {?}\n */\n DatatableComponent.prototype.selectCheck;\n /**\n * A function you can use to check whether you want\n * to show the checkbox for a particular row based on a criteria. Example:\n *\n * (row, column, value) => {\n * return row.name !== 'Ethel Price';\n * }\n * @type {?}\n */\n DatatableComponent.prototype.displayCheck;\n /**\n * A boolean you can use to set the detault behaviour of rows and groups\n * whether they will start expanded or not. If ommited the default is NOT expanded.\n *\n * @type {?}\n */\n DatatableComponent.prototype.groupExpansionDefault;\n /**\n * Property to which you can use for custom tracking of rows.\n * Example: 'name'\n * @type {?}\n */\n DatatableComponent.prototype.trackByProp;\n /**\n * Property to which you can use for determining select all\n * rows on current page or not.\n *\n * \\@memberOf DatatableComponent\n * @type {?}\n */\n DatatableComponent.prototype.selectAllRowsOnPage;\n /**\n * A flag for row virtualization on / off\n * @type {?}\n */\n DatatableComponent.prototype.virtualization;\n /**\n * Tree from relation\n * @type {?}\n */\n DatatableComponent.prototype.treeFromRelation;\n /**\n * Tree to relation\n * @type {?}\n */\n DatatableComponent.prototype.treeToRelation;\n /**\n * A flag for switching summary row on / off\n * @type {?}\n */\n DatatableComponent.prototype.summaryRow;\n /**\n * A height of summary row\n * @type {?}\n */\n DatatableComponent.prototype.summaryHeight;\n /**\n * A property holds a summary row position: top/bottom\n * @type {?}\n */\n DatatableComponent.prototype.summaryPosition;\n /**\n * Body was scrolled typically in a `scrollbarV:true` scenario.\n * @type {?}\n */\n DatatableComponent.prototype.scroll;\n /**\n * A cell or row was focused via keyboard or mouse click.\n * @type {?}\n */\n DatatableComponent.prototype.activate;\n /**\n * A cell or row was selected.\n * @type {?}\n */\n DatatableComponent.prototype.select;\n /**\n * Column sort was invoked.\n * @type {?}\n */\n DatatableComponent.prototype.sort;\n /**\n * The table was paged either triggered by the pager or the body scroll.\n * @type {?}\n */\n DatatableComponent.prototype.page;\n /**\n * Columns were re-ordered.\n * @type {?}\n */\n DatatableComponent.prototype.reorder;\n /**\n * Column was resized.\n * @type {?}\n */\n DatatableComponent.prototype.resize;\n /**\n * The context menu was invoked on the table.\n * type indicates whether the header or the body was clicked.\n * content contains either the column or the row that was clicked.\n * @type {?}\n */\n DatatableComponent.prototype.tableContextmenu;\n /**\n * A row was expanded ot collapsed for tree\n * @type {?}\n */\n DatatableComponent.prototype.treeAction;\n /**\n * Row Detail templates gathered from the ContentChild\n * @type {?}\n */\n DatatableComponent.prototype.rowDetail;\n /**\n * Group Header templates gathered from the ContentChild\n * @type {?}\n */\n DatatableComponent.prototype.groupHeader;\n /**\n * Footer template gathered from the ContentChild\n * @type {?}\n */\n DatatableComponent.prototype.footer;\n /**\n * Reference to the body component for manually\n * invoking functions on the body.\n * @type {?}\n */\n DatatableComponent.prototype.bodyComponent;\n /**\n * Reference to the header component for manually\n * invoking functions on the header.\n *\n * \\@memberOf DatatableComponent\n * @type {?}\n */\n DatatableComponent.prototype.headerComponent;\n /** @type {?} */\n DatatableComponent.prototype.element;\n /** @type {?} */\n DatatableComponent.prototype._innerWidth;\n /** @type {?} */\n DatatableComponent.prototype.pageSize;\n /** @type {?} */\n DatatableComponent.prototype.bodyHeight;\n /** @type {?} */\n DatatableComponent.prototype.rowCount;\n /** @type {?} */\n DatatableComponent.prototype.rowDiffer;\n /** @type {?} */\n DatatableComponent.prototype._offsetX;\n /** @type {?} */\n DatatableComponent.prototype._limit;\n /** @type {?} */\n DatatableComponent.prototype._count;\n /** @type {?} */\n DatatableComponent.prototype._offset;\n /** @type {?} */\n DatatableComponent.prototype._rows;\n /** @type {?} */\n DatatableComponent.prototype._groupRowsBy;\n /** @type {?} */\n DatatableComponent.prototype._internalRows;\n /** @type {?} */\n DatatableComponent.prototype._internalColumns;\n /** @type {?} */\n DatatableComponent.prototype._columns;\n /** @type {?} */\n DatatableComponent.prototype._columnTemplates;\n /** @type {?} */\n DatatableComponent.prototype._subscriptions;\n /**\n * This will be used when displaying or selecting rows.\n * when tracking/comparing them, we'll use the value of this fn,\n *\n * (`fn(x) === fn(y)` instead of `x === y`)\n * @type {?}\n */\n DatatableComponent.prototype.rowIdentity;\n /**\n * @type {?}\n * @private\n */\n DatatableComponent.prototype.scrollbarHelper;\n /**\n * @type {?}\n * @private\n */\n DatatableComponent.prototype.dimensionsHelper;\n /**\n * @type {?}\n * @private\n */\n DatatableComponent.prototype.cd;\n /**\n * @type {?}\n * @private\n */\n DatatableComponent.prototype.columnChangesService;\n /**\n * @type {?}\n * @private\n */\n DatatableComponent.prototype.configuration;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nclass DataTableHeaderCellComponent {\n /**\n * @param {?} cd\n */\n constructor(cd) {\n this.cd = cd;\n this.sort = new EventEmitter();\n this.select = new EventEmitter();\n this.columnContextmenu = new EventEmitter(false);\n this.sortFn = this.onSort.bind(this);\n this.selectFn = this.select.emit.bind(this.select);\n this.cellContext = {\n column: this.column,\n sortDir: this.sortDir,\n sortFn: this.sortFn,\n allRowsSelected: this.allRowsSelected,\n selectFn: this.selectFn\n };\n }\n /**\n * @param {?} value\n * @return {?}\n */\n set allRowsSelected(value) {\n this._allRowsSelected = value;\n this.cellContext.allRowsSelected = value;\n }\n /**\n * @return {?}\n */\n get allRowsSelected() {\n return this._allRowsSelected;\n }\n /**\n * @param {?} column\n * @return {?}\n */\n set column(column) {\n this._column = column;\n this.cellContext.column = column;\n this.cd.markForCheck();\n }\n /**\n * @return {?}\n */\n get column() {\n return this._column;\n }\n /**\n * @param {?} val\n * @return {?}\n */\n set sorts(val) {\n this._sorts = val;\n this.sortDir = this.calcSortDir(val);\n this.cellContext.sortDir = this.sortDir;\n this.sortClass = this.calcSortClass(this.sortDir);\n this.cd.markForCheck();\n }\n /**\n * @return {?}\n */\n get sorts() {\n return this._sorts;\n }\n /**\n * @return {?}\n */\n get columnCssClasses() {\n /** @type {?} */\n let cls = 'datatable-header-cell';\n if (this.column.sortable)\n cls += ' sortable';\n if (this.column.resizeable)\n cls += ' resizeable';\n if (this.column.headerClass) {\n if (typeof this.column.headerClass === 'string') {\n cls += ' ' + this.column.headerClass;\n }\n else if (typeof this.column.headerClass === 'function') {\n /** @type {?} */\n const res = this.column.headerClass({\n column: this.column\n });\n if (typeof res === 'string') {\n cls += res;\n }\n else if (typeof res === 'object') {\n /** @type {?} */\n const keys = Object.keys(res);\n for (const k of keys) {\n if (res[k] === true)\n cls += ` ${k}`;\n }\n }\n }\n }\n /** @type {?} */\n const sortDir = this.sortDir;\n if (sortDir) {\n cls += ` sort-active sort-${sortDir}`;\n }\n return cls;\n }\n /**\n * @return {?}\n */\n get name() {\n // guaranteed to have a value by setColumnDefaults() in column-helper.ts\n return this.column.headerTemplate === undefined ? this.column.name : undefined;\n }\n /**\n * @return {?}\n */\n get minWidth() {\n return this.column.minWidth;\n }\n /**\n * @return {?}\n */\n get maxWidth() {\n return this.column.maxWidth;\n }\n /**\n * @return {?}\n */\n get width() {\n return this.column.width;\n }\n /**\n * @return {?}\n */\n get isCheckboxable() {\n return this.column.checkboxable && this.column.headerCheckboxable && this.selectionType === SelectionType.checkbox;\n }\n /**\n * @param {?} $event\n * @return {?}\n */\n onContextmenu($event) {\n this.columnContextmenu.emit({ event: $event, column: this.column });\n }\n /**\n * @param {?} sorts\n * @return {?}\n */\n calcSortDir(sorts) {\n if (sorts && this.column) {\n /** @type {?} */\n const sort = sorts.find((/**\n * @param {?} s\n * @return {?}\n */\n (s) => {\n return s.prop === this.column.prop;\n }));\n if (sort)\n return sort.dir;\n }\n }\n /**\n * @return {?}\n */\n onSort() {\n if (!this.column.sortable)\n return;\n /** @type {?} */\n const newValue = nextSortDir(this.sortType, this.sortDir);\n this.sort.emit({\n column: this.column,\n prevValue: this.sortDir,\n newValue\n });\n }\n /**\n * @param {?} sortDir\n * @return {?}\n */\n calcSortClass(sortDir) {\n if (sortDir === SortDirection.asc) {\n return `sort-btn sort-asc ${this.sortAscendingIcon}`;\n }\n else if (sortDir === SortDirection.desc) {\n return `sort-btn sort-desc ${this.sortDescendingIcon}`;\n }\n else {\n return `sort-btn`;\n }\n }\n}\nDataTableHeaderCellComponent.ɵfac = function DataTableHeaderCellComponent_Factory(t) { return new (t || DataTableHeaderCellComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\nDataTableHeaderCellComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: DataTableHeaderCellComponent, selectors: [[\"datatable-header-cell\"]], hostAttrs: [1, \"datatable-header-cell\"], hostVars: 11, hostBindings: function DataTableHeaderCellComponent_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"contextmenu\", function DataTableHeaderCellComponent_contextmenu_HostBindingHandler($event) { return ctx.onContextmenu($event); });\n } if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"title\", ctx.name);\n ɵngcc0.ɵɵclassMap(ctx.columnCssClasses);\n ɵngcc0.ɵɵstyleProp(\"min-width\", ctx.minWidth, \"px\")(\"max-width\", ctx.maxWidth, \"px\")(\"width\", ctx.width, \"px\")(\"height\", ctx.headerHeight, \"px\");\n } }, inputs: { allRowsSelected: \"allRowsSelected\", column: \"column\", sorts: \"sorts\", sortType: \"sortType\", sortAscendingIcon: \"sortAscendingIcon\", sortDescendingIcon: \"sortDescendingIcon\", isTarget: \"isTarget\", targetMarkerTemplate: \"targetMarkerTemplate\", targetMarkerContext: \"targetMarkerContext\", selectionType: \"selectionType\", headerHeight: \"headerHeight\" }, outputs: { sort: \"sort\", select: \"select\", columnContextmenu: \"columnContextmenu\" }, decls: 6, vars: 6, consts: [[1, \"datatable-header-cell-template-wrap\"], [4, \"ngIf\"], [\"class\", \"datatable-checkbox\", 4, \"ngIf\"], [\"class\", \"datatable-header-cell-wrapper\", 4, \"ngIf\"], [3, \"click\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [1, \"datatable-checkbox\"], [\"type\", \"checkbox\", 3, \"checked\", \"change\"], [1, \"datatable-header-cell-wrapper\"], [1, \"datatable-header-cell-label\", \"draggable\", 3, \"innerHTML\", \"click\"]], template: function DataTableHeaderCellComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 0);\n ɵngcc0.ɵɵtemplate(1, DataTableHeaderCellComponent_1_Template, 1, 2, null, 1);\n ɵngcc0.ɵɵtemplate(2, DataTableHeaderCellComponent_label_2_Template, 2, 1, \"label\", 2);\n ɵngcc0.ɵɵtemplate(3, DataTableHeaderCellComponent_span_3_Template, 2, 1, \"span\", 3);\n ɵngcc0.ɵɵtemplate(4, DataTableHeaderCellComponent_4_Template, 1, 2, null, 1);\n ɵngcc0.ɵɵelementStart(5, \"span\", 4);\n ɵngcc0.ɵɵlistener(\"click\", function DataTableHeaderCellComponent_Template_span_click_5_listener() { return ctx.onSort(); });\n ɵngcc0.ɵɵelementEnd()();\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.isTarget);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.isCheckboxable);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.column.headerTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.column.headerTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵclassMap(ctx.sortClass);\n } }, dependencies: [ɵngcc1.NgIf, ɵngcc1.NgTemplateOutlet], encapsulation: 2, changeDetection: 0 });\n/** @nocollapse */\nDataTableHeaderCellComponent.ctorParameters = () => [\n { type: ChangeDetectorRef }\n];\nDataTableHeaderCellComponent.propDecorators = {\n sortType: [{ type: Input }],\n sortAscendingIcon: [{ type: Input }],\n sortDescendingIcon: [{ type: Input }],\n isTarget: [{ type: Input }],\n targetMarkerTemplate: [{ type: Input }],\n targetMarkerContext: [{ type: Input }],\n allRowsSelected: [{ type: Input }],\n selectionType: [{ type: Input }],\n column: [{ type: Input }],\n headerHeight: [{ type: HostBinding, args: ['style.height.px',] }, { type: Input }],\n sorts: [{ type: Input }],\n sort: [{ type: Output }],\n select: [{ type: Output }],\n columnContextmenu: [{ type: Output }],\n columnCssClasses: [{ type: HostBinding, args: ['class',] }],\n name: [{ type: HostBinding, args: ['attr.title',] }],\n minWidth: [{ type: HostBinding, args: ['style.minWidth.px',] }],\n maxWidth: [{ type: HostBinding, args: ['style.maxWidth.px',] }],\n width: [{ type: HostBinding, args: ['style.width.px',] }],\n onContextmenu: [{ type: HostListener, args: ['contextmenu', ['$event'],] }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DataTableHeaderCellComponent, [{\n type: Component,\n args: [{\n selector: 'datatable-header-cell',\n template: `\n
\n \n \n \n \n \n \n \n \n \n
\n `,\n host: {\n class: 'datatable-header-cell'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], function () { return [{ type: ɵngcc0.ChangeDetectorRef }]; }, { sort: [{\n type: Output\n }], select: [{\n type: Output\n }], columnContextmenu: [{\n type: Output\n }], allRowsSelected: [{\n type: Input\n }], column: [{\n type: Input\n }], sorts: [{\n type: Input\n }], columnCssClasses: [{\n type: HostBinding,\n args: ['class']\n }], name: [{\n type: HostBinding,\n args: ['attr.title']\n }], minWidth: [{\n type: HostBinding,\n args: ['style.minWidth.px']\n }], maxWidth: [{\n type: HostBinding,\n args: ['style.maxWidth.px']\n }], width: [{\n type: HostBinding,\n args: ['style.width.px']\n }], \n /**\n * @param {?} $event\n * @return {?}\n */\n onContextmenu: [{\n type: HostListener,\n args: ['contextmenu', ['$event']]\n }], sortType: [{\n type: Input\n }], sortAscendingIcon: [{\n type: Input\n }], sortDescendingIcon: [{\n type: Input\n }], isTarget: [{\n type: Input\n }], targetMarkerTemplate: [{\n type: Input\n }], targetMarkerContext: [{\n type: Input\n }], selectionType: [{\n type: Input\n }], headerHeight: [{\n type: HostBinding,\n args: ['style.height.px']\n }, {\n type: Input\n }] }); })();\nif (false) {\n /** @type {?} */\n DataTableHeaderCellComponent.prototype.sortType;\n /** @type {?} */\n DataTableHeaderCellComponent.prototype.sortAscendingIcon;\n /** @type {?} */\n DataTableHeaderCellComponent.prototype.sortDescendingIcon;\n /** @type {?} */\n DataTableHeaderCellComponent.prototype.isTarget;\n /** @type {?} */\n DataTableHeaderCellComponent.prototype.targetMarkerTemplate;\n /** @type {?} */\n DataTableHeaderCellComponent.prototype.targetMarkerContext;\n /** @type {?} */\n DataTableHeaderCellComponent.prototype._allRowsSelected;\n /** @type {?} */\n DataTableHeaderCellComponent.prototype.selectionType;\n /** @type {?} */\n DataTableHeaderCellComponent.prototype.headerHeight;\n /** @type {?} */\n DataTableHeaderCellComponent.prototype.sort;\n /** @type {?} */\n DataTableHeaderCellComponent.prototype.select;\n /** @type {?} */\n DataTableHeaderCellComponent.prototype.columnContextmenu;\n /** @type {?} */\n DataTableHeaderCellComponent.prototype.sortFn;\n /** @type {?} */\n DataTableHeaderCellComponent.prototype.sortClass;\n /** @type {?} */\n DataTableHeaderCellComponent.prototype.sortDir;\n /** @type {?} */\n DataTableHeaderCellComponent.prototype.selectFn;\n /** @type {?} */\n DataTableHeaderCellComponent.prototype.cellContext;\n /**\n * @type {?}\n * @private\n */\n DataTableHeaderCellComponent.prototype._column;\n /**\n * @type {?}\n * @private\n */\n DataTableHeaderCellComponent.prototype._sorts;\n /**\n * @type {?}\n * @private\n */\n DataTableHeaderCellComponent.prototype.cd;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nclass DataTableFooterComponent {\n constructor() {\n this.selectedCount = 0;\n this.page = new EventEmitter();\n }\n /**\n * @return {?}\n */\n get isVisible() {\n return this.rowCount / this.pageSize > 1;\n }\n /**\n * @return {?}\n */\n get curPage() {\n return this.offset + 1;\n }\n}\nDataTableFooterComponent.ɵfac = function DataTableFooterComponent_Factory(t) { return new (t || DataTableFooterComponent)(); };\nDataTableFooterComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: DataTableFooterComponent, selectors: [[\"datatable-footer\"]], hostAttrs: [1, \"datatable-footer\"], inputs: { selectedCount: \"selectedCount\", footerHeight: \"footerHeight\", rowCount: \"rowCount\", pageSize: \"pageSize\", offset: \"offset\", pagerLeftArrowIcon: \"pagerLeftArrowIcon\", pagerRightArrowIcon: \"pagerRightArrowIcon\", pagerPreviousIcon: \"pagerPreviousIcon\", pagerNextIcon: \"pagerNextIcon\", totalMessage: \"totalMessage\", footerTemplate: \"footerTemplate\", selectedMessage: \"selectedMessage\" }, outputs: { page: \"page\" }, decls: 4, vars: 8, consts: [[1, \"datatable-footer-inner\", 3, \"ngClass\"], [4, \"ngIf\"], [\"class\", \"page-count\", 4, \"ngIf\"], [3, \"pagerLeftArrowIcon\", \"pagerRightArrowIcon\", \"pagerPreviousIcon\", \"pagerNextIcon\", \"page\", \"size\", \"count\", \"hidden\", \"change\", 4, \"ngIf\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [1, \"page-count\"], [3, \"pagerLeftArrowIcon\", \"pagerRightArrowIcon\", \"pagerPreviousIcon\", \"pagerNextIcon\", \"page\", \"size\", \"count\", \"hidden\", \"change\"]], template: function DataTableFooterComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 0);\n ɵngcc0.ɵɵtemplate(1, DataTableFooterComponent_1_Template, 1, 8, null, 1);\n ɵngcc0.ɵɵtemplate(2, DataTableFooterComponent_div_2_Template, 3, 3, \"div\", 2);\n ɵngcc0.ɵɵtemplate(3, DataTableFooterComponent_datatable_pager_3_Template, 1, 8, \"datatable-pager\", 3);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵstyleProp(\"height\", ctx.footerHeight, \"px\");\n ɵngcc0.ɵɵproperty(\"ngClass\", ɵngcc0.ɵɵpureFunction1(6, _c2, ctx.selectedMessage));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.footerTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.footerTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.footerTemplate);\n } }, dependencies: function () { return [ɵngcc1.NgClass, ɵngcc1.NgIf, ɵngcc1.NgTemplateOutlet, DataTablePagerComponent]; }, encapsulation: 2, changeDetection: 0 });\nDataTableFooterComponent.propDecorators = {\n footerHeight: [{ type: Input }],\n rowCount: [{ type: Input }],\n pageSize: [{ type: Input }],\n offset: [{ type: Input }],\n pagerLeftArrowIcon: [{ type: Input }],\n pagerRightArrowIcon: [{ type: Input }],\n pagerPreviousIcon: [{ type: Input }],\n pagerNextIcon: [{ type: Input }],\n totalMessage: [{ type: Input }],\n footerTemplate: [{ type: Input }],\n selectedCount: [{ type: Input }],\n selectedMessage: [{ type: Input }],\n page: [{ type: Output }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DataTableFooterComponent, [{\n type: Component,\n args: [{\n selector: 'datatable-footer',\n template: `\n \n \n \n
\n {{ selectedCount?.toLocaleString() }} {{ selectedMessage }} / \n {{ rowCount?.toLocaleString() }} {{ totalMessage }}\n
\n \n \n \n `,\n host: {\n class: 'datatable-footer'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], function () { return []; }, { selectedCount: [{\n type: Input\n }], page: [{\n type: Output\n }], footerHeight: [{\n type: Input\n }], rowCount: [{\n type: Input\n }], pageSize: [{\n type: Input\n }], offset: [{\n type: Input\n }], pagerLeftArrowIcon: [{\n type: Input\n }], pagerRightArrowIcon: [{\n type: Input\n }], pagerPreviousIcon: [{\n type: Input\n }], pagerNextIcon: [{\n type: Input\n }], totalMessage: [{\n type: Input\n }], footerTemplate: [{\n type: Input\n }], selectedMessage: [{\n type: Input\n }] }); })();\nif (false) {\n /** @type {?} */\n DataTableFooterComponent.prototype.footerHeight;\n /** @type {?} */\n DataTableFooterComponent.prototype.rowCount;\n /** @type {?} */\n DataTableFooterComponent.prototype.pageSize;\n /** @type {?} */\n DataTableFooterComponent.prototype.offset;\n /** @type {?} */\n DataTableFooterComponent.prototype.pagerLeftArrowIcon;\n /** @type {?} */\n DataTableFooterComponent.prototype.pagerRightArrowIcon;\n /** @type {?} */\n DataTableFooterComponent.prototype.pagerPreviousIcon;\n /** @type {?} */\n DataTableFooterComponent.prototype.pagerNextIcon;\n /** @type {?} */\n DataTableFooterComponent.prototype.totalMessage;\n /** @type {?} */\n DataTableFooterComponent.prototype.footerTemplate;\n /** @type {?} */\n DataTableFooterComponent.prototype.selectedCount;\n /** @type {?} */\n DataTableFooterComponent.prototype.selectedMessage;\n /** @type {?} */\n DataTableFooterComponent.prototype.page;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nclass DataTablePagerComponent {\n constructor() {\n this.change = new EventEmitter();\n this._count = 0;\n this._page = 1;\n this._size = 0;\n }\n /**\n * @param {?} val\n * @return {?}\n */\n set size(val) {\n this._size = val;\n this.pages = this.calcPages();\n }\n /**\n * @return {?}\n */\n get size() {\n return this._size;\n }\n /**\n * @param {?} val\n * @return {?}\n */\n set count(val) {\n this._count = val;\n this.pages = this.calcPages();\n }\n /**\n * @return {?}\n */\n get count() {\n return this._count;\n }\n /**\n * @param {?} val\n * @return {?}\n */\n set page(val) {\n this._page = val;\n this.pages = this.calcPages();\n }\n /**\n * @return {?}\n */\n get page() {\n return this._page;\n }\n /**\n * @return {?}\n */\n get totalPages() {\n /** @type {?} */\n const count = this.size < 1 ? 1 : Math.ceil(this.count / this.size);\n return Math.max(count || 0, 1);\n }\n /**\n * @return {?}\n */\n canPrevious() {\n return this.page > 1;\n }\n /**\n * @return {?}\n */\n canNext() {\n return this.page < this.totalPages;\n }\n /**\n * @return {?}\n */\n prevPage() {\n this.selectPage(this.page - 1);\n }\n /**\n * @return {?}\n */\n nextPage() {\n this.selectPage(this.page + 1);\n }\n /**\n * @param {?} page\n * @return {?}\n */\n selectPage(page) {\n if (page > 0 && page <= this.totalPages && page !== this.page) {\n this.page = page;\n this.change.emit({\n page\n });\n }\n }\n /**\n * @param {?=} page\n * @return {?}\n */\n calcPages(page) {\n /** @type {?} */\n const pages = [];\n /** @type {?} */\n let startPage = 1;\n /** @type {?} */\n let endPage = this.totalPages;\n /** @type {?} */\n const maxSize = 5;\n /** @type {?} */\n const isMaxSized = maxSize < this.totalPages;\n page = page || this.page;\n if (isMaxSized) {\n startPage = page - Math.floor(maxSize / 2);\n endPage = page + Math.floor(maxSize / 2);\n if (startPage < 1) {\n startPage = 1;\n endPage = Math.min(startPage + maxSize - 1, this.totalPages);\n }\n else if (endPage > this.totalPages) {\n startPage = Math.max(this.totalPages - maxSize + 1, 1);\n endPage = this.totalPages;\n }\n }\n for (let num = startPage; num <= endPage; num++) {\n pages.push({\n number: num,\n text: (/** @type {?} */ (((/** @type {?} */ (num)))))\n });\n }\n return pages;\n }\n}\nDataTablePagerComponent.ɵfac = function DataTablePagerComponent_Factory(t) { return new (t || DataTablePagerComponent)(); };\nDataTablePagerComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: DataTablePagerComponent, selectors: [[\"datatable-pager\"]], hostAttrs: [1, \"datatable-pager\"], inputs: { size: \"size\", count: \"count\", page: \"page\", pagerLeftArrowIcon: \"pagerLeftArrowIcon\", pagerRightArrowIcon: \"pagerRightArrowIcon\", pagerPreviousIcon: \"pagerPreviousIcon\", pagerNextIcon: \"pagerNextIcon\" }, outputs: { change: \"change\" }, decls: 14, vars: 21, consts: [[1, \"pager\"], [\"role\", \"button\", \"aria-label\", \"go to first page\", \"href\", \"javascript:void(0)\", 3, \"click\"], [\"role\", \"button\", \"aria-label\", \"go to previous page\", \"href\", \"javascript:void(0)\", 3, \"click\"], [\"role\", \"button\", \"class\", \"pages\", 3, \"active\", 4, \"ngFor\", \"ngForOf\"], [\"role\", \"button\", \"aria-label\", \"go to next page\", \"href\", \"javascript:void(0)\", 3, \"click\"], [\"role\", \"button\", \"aria-label\", \"go to last page\", \"href\", \"javascript:void(0)\", 3, \"click\"], [\"role\", \"button\", 1, \"pages\"], [\"href\", \"javascript:void(0)\", 3, \"click\"]], template: function DataTablePagerComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"ul\", 0)(1, \"li\")(2, \"a\", 1);\n ɵngcc0.ɵɵlistener(\"click\", function DataTablePagerComponent_Template_a_click_2_listener() { return ctx.selectPage(1); });\n ɵngcc0.ɵɵelement(3, \"i\");\n ɵngcc0.ɵɵelementEnd()();\n ɵngcc0.ɵɵelementStart(4, \"li\")(5, \"a\", 2);\n ɵngcc0.ɵɵlistener(\"click\", function DataTablePagerComponent_Template_a_click_5_listener() { return ctx.prevPage(); });\n ɵngcc0.ɵɵelement(6, \"i\");\n ɵngcc0.ɵɵelementEnd()();\n ɵngcc0.ɵɵtemplate(7, DataTablePagerComponent_li_7_Template, 3, 4, \"li\", 3);\n ɵngcc0.ɵɵelementStart(8, \"li\")(9, \"a\", 4);\n ɵngcc0.ɵɵlistener(\"click\", function DataTablePagerComponent_Template_a_click_9_listener() { return ctx.nextPage(); });\n ɵngcc0.ɵɵelement(10, \"i\");\n ɵngcc0.ɵɵelementEnd()();\n ɵngcc0.ɵɵelementStart(11, \"li\")(12, \"a\", 5);\n ɵngcc0.ɵɵlistener(\"click\", function DataTablePagerComponent_Template_a_click_12_listener() { return ctx.selectPage(ctx.totalPages); });\n ɵngcc0.ɵɵelement(13, \"i\");\n ɵngcc0.ɵɵelementEnd()()();\n } if (rf & 2) {\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵclassProp(\"disabled\", !ctx.canPrevious());\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵclassMap(ctx.pagerPreviousIcon);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵclassProp(\"disabled\", !ctx.canPrevious());\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵclassMap(ctx.pagerLeftArrowIcon);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx.pages);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵclassProp(\"disabled\", !ctx.canNext());\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵclassMap(ctx.pagerRightArrowIcon);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵclassProp(\"disabled\", !ctx.canNext());\n ɵngcc0.ɵɵadvance(2);\n ɵngcc0.ɵɵclassMap(ctx.pagerNextIcon);\n } }, dependencies: [ɵngcc1.NgForOf], encapsulation: 2, changeDetection: 0 });\nDataTablePagerComponent.propDecorators = {\n pagerLeftArrowIcon: [{ type: Input }],\n pagerRightArrowIcon: [{ type: Input }],\n pagerPreviousIcon: [{ type: Input }],\n pagerNextIcon: [{ type: Input }],\n size: [{ type: Input }],\n count: [{ type: Input }],\n page: [{ type: Input }],\n change: [{ type: Output }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DataTablePagerComponent, [{\n type: Component,\n args: [{\n selector: 'datatable-pager',\n template: `\n \n `,\n host: {\n class: 'datatable-pager'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], function () { return []; }, { change: [{\n type: Output\n }], size: [{\n type: Input\n }], count: [{\n type: Input\n }], page: [{\n type: Input\n }], pagerLeftArrowIcon: [{\n type: Input\n }], pagerRightArrowIcon: [{\n type: Input\n }], pagerPreviousIcon: [{\n type: Input\n }], pagerNextIcon: [{\n type: Input\n }] }); })();\nif (false) {\n /** @type {?} */\n DataTablePagerComponent.prototype.pagerLeftArrowIcon;\n /** @type {?} */\n DataTablePagerComponent.prototype.pagerRightArrowIcon;\n /** @type {?} */\n DataTablePagerComponent.prototype.pagerPreviousIcon;\n /** @type {?} */\n DataTablePagerComponent.prototype.pagerNextIcon;\n /** @type {?} */\n DataTablePagerComponent.prototype.change;\n /** @type {?} */\n DataTablePagerComponent.prototype._count;\n /** @type {?} */\n DataTablePagerComponent.prototype._page;\n /** @type {?} */\n DataTablePagerComponent.prototype._size;\n /** @type {?} */\n DataTablePagerComponent.prototype.pages;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nclass ProgressBarComponent {\n}\nProgressBarComponent.ɵfac = function ProgressBarComponent_Factory(t) { return new (t || ProgressBarComponent)(); };\nProgressBarComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ProgressBarComponent, selectors: [[\"datatable-progress\"]], decls: 3, vars: 0, consts: [[\"role\", \"progressbar\", 1, \"progress-linear\"], [1, \"container\"], [1, \"bar\"]], template: function ProgressBarComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 0)(1, \"div\", 1);\n ɵngcc0.ɵɵelement(2, \"div\", 2);\n ɵngcc0.ɵɵelementEnd()();\n } }, encapsulation: 2, changeDetection: 0 });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ProgressBarComponent, [{\n type: Component,\n args: [{\n selector: 'datatable-progress',\n template: `\n
\n
\n
\n
\n
\n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], null, null); })();\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @enum {number} */\nconst Keys = {\n up: 38,\n down: 40,\n return: 13,\n escape: 27,\n left: 37,\n right: 39,\n};\nKeys[Keys.up] = 'up';\nKeys[Keys.down] = 'down';\nKeys[Keys.return] = 'return';\nKeys[Keys.escape] = 'escape';\nKeys[Keys.left] = 'left';\nKeys[Keys.right] = 'right';\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nclass DataTableBodyRowComponent {\n /**\n * @param {?} differs\n * @param {?} scrollbarHelper\n * @param {?} cd\n * @param {?} element\n */\n constructor(differs, scrollbarHelper, cd, element) {\n this.differs = differs;\n this.scrollbarHelper = scrollbarHelper;\n this.cd = cd;\n this.treeStatus = 'collapsed';\n this.activate = new EventEmitter();\n this.treeAction = new EventEmitter();\n this._groupStyles = {\n left: {},\n center: {},\n right: {}\n };\n this._element = element.nativeElement;\n this._rowDiffer = differs.find({}).create();\n }\n /**\n * @param {?} val\n * @return {?}\n */\n set columns(val) {\n this._columns = val;\n this.recalculateColumns(val);\n this.buildStylesByGroup();\n }\n /**\n * @return {?}\n */\n get columns() {\n return this._columns;\n }\n /**\n * @param {?} val\n * @return {?}\n */\n set innerWidth(val) {\n if (this._columns) {\n /** @type {?} */\n const colByPin = columnsByPin(this._columns);\n this._columnGroupWidths = columnGroupWidths(colByPin, this._columns);\n }\n this._innerWidth = val;\n this.recalculateColumns();\n this.buildStylesByGroup();\n }\n /**\n * @return {?}\n */\n get innerWidth() {\n return this._innerWidth;\n }\n /**\n * @param {?} val\n * @return {?}\n */\n set offsetX(val) {\n this._offsetX = val;\n this.buildStylesByGroup();\n }\n /**\n * @return {?}\n */\n get offsetX() {\n return this._offsetX;\n }\n /**\n * @return {?}\n */\n get cssClass() {\n /** @type {?} */\n let cls = 'datatable-body-row';\n if (this.isSelected) {\n cls += ' active';\n }\n if (this.rowIndex % 2 !== 0) {\n cls += ' datatable-row-odd';\n }\n if (this.rowIndex % 2 === 0) {\n cls += ' datatable-row-even';\n }\n if (this.rowClass) {\n /** @type {?} */\n const res = this.rowClass(this.row);\n if (typeof res === 'string') {\n cls += ` ${res}`;\n }\n else if (typeof res === 'object') {\n /** @type {?} */\n const keys = Object.keys(res);\n for (const k of keys) {\n if (res[k] === true) {\n cls += ` ${k}`;\n }\n }\n }\n }\n return cls;\n }\n /**\n * @return {?}\n */\n get columnsTotalWidths() {\n return this._columnGroupWidths.total;\n }\n /**\n * @return {?}\n */\n ngDoCheck() {\n if (this._rowDiffer.diff(this.row)) {\n this.cd.markForCheck();\n }\n }\n /**\n * @param {?} index\n * @param {?} colGroup\n * @return {?}\n */\n trackByGroups(index, colGroup) {\n return colGroup.type;\n }\n /**\n * @param {?} index\n * @param {?} column\n * @return {?}\n */\n columnTrackingFn(index, column) {\n return column.$$id;\n }\n /**\n * @return {?}\n */\n buildStylesByGroup() {\n this._groupStyles.left = this.calcStylesByGroup('left');\n this._groupStyles.center = this.calcStylesByGroup('center');\n this._groupStyles.right = this.calcStylesByGroup('right');\n this.cd.markForCheck();\n }\n /**\n * @param {?} group\n * @return {?}\n */\n calcStylesByGroup(group) {\n /** @type {?} */\n const widths = this._columnGroupWidths;\n /** @type {?} */\n const offsetX = this.offsetX;\n /** @type {?} */\n const styles = {\n width: `${widths[group]}px`\n };\n if (group === 'left') {\n translateXY(styles, offsetX, 0);\n }\n else if (group === 'right') {\n /** @type {?} */\n const bodyWidth = parseInt(this.innerWidth + '', 0);\n /** @type {?} */\n const totalDiff = widths.total - bodyWidth;\n /** @type {?} */\n const offsetDiff = totalDiff - offsetX;\n /** @type {?} */\n const offset = (offsetDiff + this.scrollbarHelper.width) * -1;\n translateXY(styles, offset, 0);\n }\n return styles;\n }\n /**\n * @param {?} event\n * @param {?} index\n * @return {?}\n */\n onActivate(event, index) {\n event.cellIndex = index;\n event.rowElement = this._element;\n this.activate.emit(event);\n }\n /**\n * @param {?} event\n * @return {?}\n */\n onKeyDown(event) {\n /** @type {?} */\n const keyCode = event.keyCode;\n /** @type {?} */\n const isTargetRow = event.target === this._element;\n /** @type {?} */\n const isAction = keyCode === Keys.return ||\n keyCode === Keys.down ||\n keyCode === Keys.up ||\n keyCode === Keys.left ||\n keyCode === Keys.right;\n if (isAction && isTargetRow) {\n event.preventDefault();\n event.stopPropagation();\n this.activate.emit({\n type: 'keydown',\n event,\n row: this.row,\n rowElement: this._element\n });\n }\n }\n /**\n * @param {?} event\n * @return {?}\n */\n onMouseenter(event) {\n this.activate.emit({\n type: 'mouseenter',\n event,\n row: this.row,\n rowElement: this._element\n });\n }\n /**\n * @param {?=} val\n * @return {?}\n */\n recalculateColumns(val = this.columns) {\n this._columns = val;\n /** @type {?} */\n const colsByPin = columnsByPin(this._columns);\n this._columnsByPin = columnsByPinArr(this._columns);\n this._columnGroupWidths = columnGroupWidths(colsByPin, this._columns);\n }\n /**\n * @return {?}\n */\n onTreeAction() {\n this.treeAction.emit();\n }\n}\nDataTableBodyRowComponent.ɵfac = function DataTableBodyRowComponent_Factory(t) { return new (t || DataTableBodyRowComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.KeyValueDiffers), ɵngcc0.ɵɵdirectiveInject(ScrollbarHelper, 4), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef)); };\nDataTableBodyRowComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: DataTableBodyRowComponent, selectors: [[\"datatable-body-row\"]], hostVars: 6, hostBindings: function DataTableBodyRowComponent_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"keydown\", function DataTableBodyRowComponent_keydown_HostBindingHandler($event) { return ctx.onKeyDown($event); })(\"mouseenter\", function DataTableBodyRowComponent_mouseenter_HostBindingHandler($event) { return ctx.onMouseenter($event); });\n } if (rf & 2) {\n ɵngcc0.ɵɵclassMap(ctx.cssClass);\n ɵngcc0.ɵɵstyleProp(\"width\", ctx.columnsTotalWidths, \"px\")(\"height\", ctx.rowHeight, \"px\");\n } }, inputs: { treeStatus: \"treeStatus\", columns: \"columns\", innerWidth: \"innerWidth\", offsetX: \"offsetX\", expanded: \"expanded\", rowClass: \"rowClass\", row: \"row\", group: \"group\", isSelected: \"isSelected\", rowIndex: \"rowIndex\", displayCheck: \"displayCheck\", rowHeight: \"rowHeight\" }, outputs: { activate: \"activate\", treeAction: \"treeAction\" }, decls: 1, vars: 2, consts: [[3, \"class\", \"ngStyle\", 4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [3, \"ngStyle\"], [\"tabindex\", \"-1\", 3, \"row\", \"group\", \"expanded\", \"isSelected\", \"rowIndex\", \"column\", \"rowHeight\", \"displayCheck\", \"treeStatus\", \"activate\", \"treeAction\", 4, \"ngFor\", \"ngForOf\", \"ngForTrackBy\"], [\"tabindex\", \"-1\", 3, \"row\", \"group\", \"expanded\", \"isSelected\", \"rowIndex\", \"column\", \"rowHeight\", \"displayCheck\", \"treeStatus\", \"activate\", \"treeAction\"]], template: function DataTableBodyRowComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, DataTableBodyRowComponent_div_0_Template, 2, 6, \"div\", 0);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngForOf\", ctx._columnsByPin)(\"ngForTrackBy\", ctx.trackByGroups);\n } }, dependencies: function () { return [ɵngcc1.NgForOf, ɵngcc1.NgStyle, DataTableBodyCellComponent]; }, encapsulation: 2, changeDetection: 0 });\n/** @nocollapse */\nDataTableBodyRowComponent.ctorParameters = () => [\n { type: KeyValueDiffers },\n { type: ScrollbarHelper, decorators: [{ type: SkipSelf }] },\n { type: ChangeDetectorRef },\n { type: ElementRef }\n];\nDataTableBodyRowComponent.propDecorators = {\n columns: [{ type: Input }],\n innerWidth: [{ type: Input }],\n expanded: [{ type: Input }],\n rowClass: [{ type: Input }],\n row: [{ type: Input }],\n group: [{ type: Input }],\n isSelected: [{ type: Input }],\n rowIndex: [{ type: Input }],\n displayCheck: [{ type: Input }],\n treeStatus: [{ type: Input }],\n offsetX: [{ type: Input }],\n cssClass: [{ type: HostBinding, args: ['class',] }],\n rowHeight: [{ type: HostBinding, args: ['style.height.px',] }, { type: Input }],\n columnsTotalWidths: [{ type: HostBinding, args: ['style.width.px',] }],\n activate: [{ type: Output }],\n treeAction: [{ type: Output }],\n onKeyDown: [{ type: HostListener, args: ['keydown', ['$event'],] }],\n onMouseenter: [{ type: HostListener, args: ['mouseenter', ['$event'],] }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DataTableBodyRowComponent, [{\n type: Component,\n args: [{\n selector: 'datatable-body-row',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n \n \n \n \n `\n }]\n }], function () { return [{ type: ɵngcc0.KeyValueDiffers }, { type: ScrollbarHelper, decorators: [{\n type: SkipSelf\n }] }, { type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc0.ElementRef }]; }, { treeStatus: [{\n type: Input\n }], activate: [{\n type: Output\n }], treeAction: [{\n type: Output\n }], columns: [{\n type: Input\n }], innerWidth: [{\n type: Input\n }], offsetX: [{\n type: Input\n }], cssClass: [{\n type: HostBinding,\n args: ['class']\n }], columnsTotalWidths: [{\n type: HostBinding,\n args: ['style.width.px']\n }], \n /**\n * @param {?} event\n * @return {?}\n */\n onKeyDown: [{\n type: HostListener,\n args: ['keydown', ['$event']]\n }], \n /**\n * @param {?} event\n * @return {?}\n */\n onMouseenter: [{\n type: HostListener,\n args: ['mouseenter', ['$event']]\n }], expanded: [{\n type: Input\n }], rowClass: [{\n type: Input\n }], row: [{\n type: Input\n }], group: [{\n type: Input\n }], isSelected: [{\n type: Input\n }], rowIndex: [{\n type: Input\n }], displayCheck: [{\n type: Input\n }], rowHeight: [{\n type: HostBinding,\n args: ['style.height.px']\n }, {\n type: Input\n }] }); })();\nif (false) {\n /** @type {?} */\n DataTableBodyRowComponent.prototype.expanded;\n /** @type {?} */\n DataTableBodyRowComponent.prototype.rowClass;\n /** @type {?} */\n DataTableBodyRowComponent.prototype.row;\n /** @type {?} */\n DataTableBodyRowComponent.prototype.group;\n /** @type {?} */\n DataTableBodyRowComponent.prototype.isSelected;\n /** @type {?} */\n DataTableBodyRowComponent.prototype.rowIndex;\n /** @type {?} */\n DataTableBodyRowComponent.prototype.displayCheck;\n /** @type {?} */\n DataTableBodyRowComponent.prototype.treeStatus;\n /** @type {?} */\n DataTableBodyRowComponent.prototype.rowHeight;\n /** @type {?} */\n DataTableBodyRowComponent.prototype.activate;\n /** @type {?} */\n DataTableBodyRowComponent.prototype.treeAction;\n /** @type {?} */\n DataTableBodyRowComponent.prototype._element;\n /** @type {?} */\n DataTableBodyRowComponent.prototype._columnGroupWidths;\n /** @type {?} */\n DataTableBodyRowComponent.prototype._columnsByPin;\n /** @type {?} */\n DataTableBodyRowComponent.prototype._offsetX;\n /** @type {?} */\n DataTableBodyRowComponent.prototype._columns;\n /** @type {?} */\n DataTableBodyRowComponent.prototype._innerWidth;\n /** @type {?} */\n DataTableBodyRowComponent.prototype._groupStyles;\n /**\n * @type {?}\n * @private\n */\n DataTableBodyRowComponent.prototype._rowDiffer;\n /**\n * @type {?}\n * @private\n */\n DataTableBodyRowComponent.prototype.differs;\n /**\n * @type {?}\n * @private\n */\n DataTableBodyRowComponent.prototype.scrollbarHelper;\n /**\n * @type {?}\n * @private\n */\n DataTableBodyRowComponent.prototype.cd;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nclass DataTableRowWrapperComponent {\n /**\n * @param {?} cd\n * @param {?} differs\n */\n constructor(cd, differs) {\n this.cd = cd;\n this.differs = differs;\n this.rowContextmenu = new EventEmitter(false);\n this.groupContext = {\n group: this.row,\n expanded: this.expanded,\n rowIndex: this.rowIndex\n };\n this.rowContext = {\n row: this.row,\n expanded: this.expanded,\n rowIndex: this.rowIndex\n };\n this._expanded = false;\n this.rowDiffer = differs.find({}).create();\n }\n /**\n * @param {?} val\n * @return {?}\n */\n set rowIndex(val) {\n this._rowIndex = val;\n this.rowContext.rowIndex = val;\n this.groupContext.rowIndex = val;\n this.cd.markForCheck();\n }\n /**\n * @return {?}\n */\n get rowIndex() {\n return this._rowIndex;\n }\n /**\n * @param {?} val\n * @return {?}\n */\n set expanded(val) {\n this._expanded = val;\n this.groupContext.expanded = val;\n this.rowContext.expanded = val;\n this.cd.markForCheck();\n }\n /**\n * @return {?}\n */\n get expanded() {\n return this._expanded;\n }\n /**\n * @return {?}\n */\n ngDoCheck() {\n if (this.rowDiffer.diff(this.row)) {\n this.rowContext.row = this.row;\n this.groupContext.group = this.row;\n this.cd.markForCheck();\n }\n }\n /**\n * @param {?} $event\n * @return {?}\n */\n onContextmenu($event) {\n this.rowContextmenu.emit({ event: $event, row: this.row });\n }\n /**\n * @return {?}\n */\n getGroupHeaderStyle() {\n /** @type {?} */\n const styles = {};\n styles['transform'] = 'translate3d(' + this.offsetX + 'px, 0px, 0px)';\n styles['backface-visibility'] = 'hidden';\n styles['width'] = this.innerWidth;\n return styles;\n }\n}\nDataTableRowWrapperComponent.ɵfac = function DataTableRowWrapperComponent_Factory(t) { return new (t || DataTableRowWrapperComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.KeyValueDiffers)); };\nDataTableRowWrapperComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: DataTableRowWrapperComponent, selectors: [[\"datatable-row-wrapper\"]], hostAttrs: [1, \"datatable-row-wrapper\"], hostBindings: function DataTableRowWrapperComponent_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"contextmenu\", function DataTableRowWrapperComponent_contextmenu_HostBindingHandler($event) { return ctx.onContextmenu($event); });\n } }, inputs: { rowIndex: \"rowIndex\", expanded: \"expanded\", innerWidth: \"innerWidth\", rowDetail: \"rowDetail\", groupHeader: \"groupHeader\", offsetX: \"offsetX\", detailRowHeight: \"detailRowHeight\", row: \"row\", groupedRows: \"groupedRows\" }, outputs: { rowContextmenu: \"rowContextmenu\" }, ngContentSelectors: _c0, decls: 3, vars: 3, consts: [[\"class\", \"datatable-group-header\", 3, \"ngStyle\", 4, \"ngIf\"], [4, \"ngIf\"], [\"class\", \"datatable-row-detail\", 3, \"height\", 4, \"ngIf\"], [1, \"datatable-group-header\", 3, \"ngStyle\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [1, \"datatable-row-detail\"]], template: function DataTableRowWrapperComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵtemplate(0, DataTableRowWrapperComponent_div_0_Template, 2, 2, \"div\", 0);\n ɵngcc0.ɵɵtemplate(1, DataTableRowWrapperComponent_ng_content_1_Template, 1, 0, \"ng-content\", 1);\n ɵngcc0.ɵɵtemplate(2, DataTableRowWrapperComponent_div_2_Template, 2, 3, \"div\", 2);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.groupHeader && ctx.groupHeader.template);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.groupHeader && ctx.groupHeader.template && ctx.expanded || (!ctx.groupHeader || !ctx.groupHeader.template));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.rowDetail && ctx.rowDetail.template && ctx.expanded);\n } }, dependencies: [ɵngcc1.NgIf, ɵngcc1.NgTemplateOutlet, ɵngcc1.NgStyle], encapsulation: 2, changeDetection: 0 });\n/** @nocollapse */\nDataTableRowWrapperComponent.ctorParameters = () => [\n { type: ChangeDetectorRef },\n { type: KeyValueDiffers }\n];\nDataTableRowWrapperComponent.propDecorators = {\n innerWidth: [{ type: Input }],\n rowDetail: [{ type: Input }],\n groupHeader: [{ type: Input }],\n offsetX: [{ type: Input }],\n detailRowHeight: [{ type: Input }],\n row: [{ type: Input }],\n groupedRows: [{ type: Input }],\n rowContextmenu: [{ type: Output }],\n rowIndex: [{ type: Input }],\n expanded: [{ type: Input }],\n onContextmenu: [{ type: HostListener, args: ['contextmenu', ['$event'],] }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DataTableRowWrapperComponent, [{\n type: Component,\n args: [{\n selector: 'datatable-row-wrapper',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n
\n \n \n
\n \n \n \n \n \n \n `,\n host: {\n class: 'datatable-row-wrapper'\n }\n }]\n }], function () { return [{ type: ɵngcc0.ChangeDetectorRef }, { type: ɵngcc0.KeyValueDiffers }]; }, { rowContextmenu: [{\n type: Output\n }], rowIndex: [{\n type: Input\n }], expanded: [{\n type: Input\n }], \n /**\n * @param {?} $event\n * @return {?}\n */\n onContextmenu: [{\n type: HostListener,\n args: ['contextmenu', ['$event']]\n }], innerWidth: [{\n type: Input\n }], rowDetail: [{\n type: Input\n }], groupHeader: [{\n type: Input\n }], offsetX: [{\n type: Input\n }], detailRowHeight: [{\n type: Input\n }], row: [{\n type: Input\n }], groupedRows: [{\n type: Input\n }] }); })();\nif (false) {\n /** @type {?} */\n DataTableRowWrapperComponent.prototype.innerWidth;\n /** @type {?} */\n DataTableRowWrapperComponent.prototype.rowDetail;\n /** @type {?} */\n DataTableRowWrapperComponent.prototype.groupHeader;\n /** @type {?} */\n DataTableRowWrapperComponent.prototype.offsetX;\n /** @type {?} */\n DataTableRowWrapperComponent.prototype.detailRowHeight;\n /** @type {?} */\n DataTableRowWrapperComponent.prototype.row;\n /** @type {?} */\n DataTableRowWrapperComponent.prototype.groupedRows;\n /** @type {?} */\n DataTableRowWrapperComponent.prototype.rowContextmenu;\n /** @type {?} */\n DataTableRowWrapperComponent.prototype.groupContext;\n /** @type {?} */\n DataTableRowWrapperComponent.prototype.rowContext;\n /**\n * @type {?}\n * @private\n */\n DataTableRowWrapperComponent.prototype.rowDiffer;\n /**\n * @type {?}\n * @private\n */\n DataTableRowWrapperComponent.prototype._expanded;\n /**\n * @type {?}\n * @private\n */\n DataTableRowWrapperComponent.prototype._rowIndex;\n /**\n * @type {?}\n * @private\n */\n DataTableRowWrapperComponent.prototype.cd;\n /**\n * @type {?}\n * @private\n */\n DataTableRowWrapperComponent.prototype.differs;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nclass DataTableBodyCellComponent {\n /**\n * @param {?} element\n * @param {?} cd\n */\n constructor(element, cd) {\n this.cd = cd;\n this.activate = new EventEmitter();\n this.treeAction = new EventEmitter();\n this.isFocused = false;\n this.onCheckboxChangeFn = this.onCheckboxChange.bind(this);\n this.activateFn = this.activate.emit.bind(this.activate);\n this.cellContext = {\n onCheckboxChangeFn: this.onCheckboxChangeFn,\n activateFn: this.activateFn,\n row: this.row,\n group: this.group,\n value: this.value,\n column: this.column,\n rowHeight: this.rowHeight,\n isSelected: this.isSelected,\n rowIndex: this.rowIndex,\n treeStatus: this.treeStatus,\n onTreeAction: this.onTreeAction.bind(this)\n };\n this._element = element.nativeElement;\n }\n /**\n * @param {?} group\n * @return {?}\n */\n set group(group) {\n this._group = group;\n this.cellContext.group = group;\n this.checkValueUpdates();\n this.cd.markForCheck();\n }\n /**\n * @return {?}\n */\n get group() {\n return this._group;\n }\n /**\n * @param {?} val\n * @return {?}\n */\n set rowHeight(val) {\n this._rowHeight = val;\n this.cellContext.rowHeight = val;\n this.checkValueUpdates();\n this.cd.markForCheck();\n }\n /**\n * @return {?}\n */\n get rowHeight() {\n return this._rowHeight;\n }\n /**\n * @param {?} val\n * @return {?}\n */\n set isSelected(val) {\n this._isSelected = val;\n this.cellContext.isSelected = val;\n this.cd.markForCheck();\n }\n /**\n * @return {?}\n */\n get isSelected() {\n return this._isSelected;\n }\n /**\n * @param {?} val\n * @return {?}\n */\n set expanded(val) {\n this._expanded = val;\n this.cellContext.expanded = val;\n this.cd.markForCheck();\n }\n /**\n * @return {?}\n */\n get expanded() {\n return this._expanded;\n }\n /**\n * @param {?} val\n * @return {?}\n */\n set rowIndex(val) {\n this._rowIndex = val;\n this.cellContext.rowIndex = val;\n this.checkValueUpdates();\n this.cd.markForCheck();\n }\n /**\n * @return {?}\n */\n get rowIndex() {\n return this._rowIndex;\n }\n /**\n * @param {?} column\n * @return {?}\n */\n set column(column) {\n this._column = column;\n this.cellContext.column = column;\n this.checkValueUpdates();\n this.cd.markForCheck();\n }\n /**\n * @return {?}\n */\n get column() {\n return this._column;\n }\n /**\n * @param {?} row\n * @return {?}\n */\n set row(row) {\n this._row = row;\n this.cellContext.row = row;\n this.checkValueUpdates();\n this.cd.markForCheck();\n }\n /**\n * @return {?}\n */\n get row() {\n return this._row;\n }\n /**\n * @param {?} val\n * @return {?}\n */\n set sorts(val) {\n this._sorts = val;\n this.calcSortDir = this.calcSortDir(val);\n }\n /**\n * @return {?}\n */\n get sorts() {\n return this._sorts;\n }\n /**\n * @param {?} status\n * @return {?}\n */\n set treeStatus(status) {\n if (status !== 'collapsed' && status !== 'expanded' && status !== 'loading' && status !== 'disabled') {\n this._treeStatus = 'collapsed';\n }\n else {\n this._treeStatus = status;\n }\n this.cellContext.treeStatus = this._treeStatus;\n this.checkValueUpdates();\n this.cd.markForCheck();\n }\n /**\n * @return {?}\n */\n get treeStatus() {\n return this._treeStatus;\n }\n /**\n * @return {?}\n */\n get columnCssClasses() {\n /** @type {?} */\n let cls = 'datatable-body-cell';\n if (this.column.cellClass) {\n if (typeof this.column.cellClass === 'string') {\n cls += ' ' + this.column.cellClass;\n }\n else if (typeof this.column.cellClass === 'function') {\n /** @type {?} */\n const res = this.column.cellClass({\n row: this.row,\n group: this.group,\n column: this.column,\n value: this.value,\n rowHeight: this.rowHeight\n });\n if (typeof res === 'string') {\n cls += res;\n }\n else if (typeof res === 'object') {\n /** @type {?} */\n const keys = Object.keys(res);\n for (const k of keys) {\n if (res[k] === true) {\n cls += ` ${k}`;\n }\n }\n }\n }\n }\n if (!this.sortDir) {\n cls += ' sort-active';\n }\n if (this.isFocused) {\n cls += ' active';\n }\n if (this.sortDir === SortDirection.asc) {\n cls += ' sort-asc';\n }\n if (this.sortDir === SortDirection.desc) {\n cls += ' sort-desc';\n }\n return cls;\n }\n /**\n * @return {?}\n */\n get width() {\n return this.column.width;\n }\n /**\n * @return {?}\n */\n get minWidth() {\n return this.column.minWidth;\n }\n /**\n * @return {?}\n */\n get maxWidth() {\n return this.column.maxWidth;\n }\n /**\n * @return {?}\n */\n get height() {\n /** @type {?} */\n const height = this.rowHeight;\n if (isNaN(height)) {\n return height;\n }\n return height + 'px';\n }\n /**\n * @return {?}\n */\n ngDoCheck() {\n this.checkValueUpdates();\n }\n /**\n * @return {?}\n */\n ngOnDestroy() {\n if (this.cellTemplate) {\n this.cellTemplate.clear();\n }\n }\n /**\n * @return {?}\n */\n checkValueUpdates() {\n /** @type {?} */\n let value = '';\n if (!this.row || !this.column) {\n value = '';\n }\n else {\n /** @type {?} */\n const val = this.column.$$valueGetter(this.row, this.column.prop);\n /** @type {?} */\n const userPipe = this.column.pipe;\n if (userPipe) {\n value = userPipe.transform(val);\n }\n else if (value !== undefined) {\n value = val;\n }\n }\n if (this.value !== value) {\n this.value = value;\n this.cellContext.value = value;\n this.sanitizedValue = value !== null && value !== undefined ? this.stripHtml(value) : value;\n this.cd.markForCheck();\n }\n }\n /**\n * @return {?}\n */\n onFocus() {\n this.isFocused = true;\n }\n /**\n * @return {?}\n */\n onBlur() {\n this.isFocused = false;\n }\n /**\n * @param {?} event\n * @return {?}\n */\n onClick(event) {\n this.activate.emit({\n type: 'click',\n event,\n row: this.row,\n group: this.group,\n rowHeight: this.rowHeight,\n column: this.column,\n value: this.value,\n cellElement: this._element\n });\n }\n /**\n * @param {?} event\n * @return {?}\n */\n onDblClick(event) {\n this.activate.emit({\n type: 'dblclick',\n event,\n row: this.row,\n group: this.group,\n rowHeight: this.rowHeight,\n column: this.column,\n value: this.value,\n cellElement: this._element\n });\n }\n /**\n * @param {?} event\n * @return {?}\n */\n onKeyDown(event) {\n /** @type {?} */\n const keyCode = event.keyCode;\n /** @type {?} */\n const isTargetCell = event.target === this._element;\n /** @type {?} */\n const isAction = keyCode === Keys.return ||\n keyCode === Keys.down ||\n keyCode === Keys.up ||\n keyCode === Keys.left ||\n keyCode === Keys.right;\n if (isAction && isTargetCell) {\n event.preventDefault();\n event.stopPropagation();\n this.activate.emit({\n type: 'keydown',\n event,\n row: this.row,\n group: this.group,\n rowHeight: this.rowHeight,\n column: this.column,\n value: this.value,\n cellElement: this._element\n });\n }\n }\n /**\n * @param {?} event\n * @return {?}\n */\n onCheckboxChange(event) {\n this.activate.emit({\n type: 'checkbox',\n event,\n row: this.row,\n group: this.group,\n rowHeight: this.rowHeight,\n column: this.column,\n value: this.value,\n cellElement: this._element,\n treeStatus: 'collapsed'\n });\n }\n /**\n * @param {?} sorts\n * @return {?}\n */\n calcSortDir(sorts) {\n if (!sorts) {\n return;\n }\n /** @type {?} */\n const sort = sorts.find((/**\n * @param {?} s\n * @return {?}\n */\n (s) => {\n return s.prop === this.column.prop;\n }));\n if (sort) {\n return sort.dir;\n }\n }\n /**\n * @param {?} html\n * @return {?}\n */\n stripHtml(html) {\n if (!html.replace) {\n return html;\n }\n return html.replace(/<\\/?[^>]+(>|$)/g, '');\n }\n /**\n * @return {?}\n */\n onTreeAction() {\n this.treeAction.emit(this.row);\n }\n /**\n * @param {?} column\n * @param {?} row\n * @return {?}\n */\n calcLeftMargin(column, row) {\n /** @type {?} */\n const levelIndent = column.treeLevelIndent != null ? column.treeLevelIndent : 50;\n return column.isTreeColumn ? row.level * levelIndent : 0;\n }\n}\nDataTableBodyCellComponent.ɵfac = function DataTableBodyCellComponent_Factory(t) { return new (t || DataTableBodyCellComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ChangeDetectorRef)); };\nDataTableBodyCellComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: DataTableBodyCellComponent, selectors: [[\"datatable-body-cell\"]], viewQuery: function DataTableBodyCellComponent_Query(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵviewQuery(_c3, 7, ViewContainerRef);\n } if (rf & 2) {\n let _t;\n ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx.cellTemplate = _t.first);\n } }, hostVars: 10, hostBindings: function DataTableBodyCellComponent_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"focus\", function DataTableBodyCellComponent_focus_HostBindingHandler() { return ctx.onFocus(); })(\"blur\", function DataTableBodyCellComponent_blur_HostBindingHandler() { return ctx.onBlur(); })(\"click\", function DataTableBodyCellComponent_click_HostBindingHandler($event) { return ctx.onClick($event); })(\"dblclick\", function DataTableBodyCellComponent_dblclick_HostBindingHandler($event) { return ctx.onDblClick($event); })(\"keydown\", function DataTableBodyCellComponent_keydown_HostBindingHandler($event) { return ctx.onKeyDown($event); });\n } if (rf & 2) {\n ɵngcc0.ɵɵclassMap(ctx.columnCssClasses);\n ɵngcc0.ɵɵstyleProp(\"width\", ctx.width, \"px\")(\"min-width\", ctx.minWidth, \"px\")(\"max-width\", ctx.maxWidth, \"px\")(\"height\", ctx.height);\n } }, inputs: { group: \"group\", rowHeight: \"rowHeight\", isSelected: \"isSelected\", expanded: \"expanded\", rowIndex: \"rowIndex\", column: \"column\", row: \"row\", sorts: \"sorts\", treeStatus: \"treeStatus\", displayCheck: \"displayCheck\" }, outputs: { activate: \"activate\", treeAction: \"treeAction\" }, decls: 5, vars: 6, consts: [[1, \"datatable-body-cell-label\"], [\"class\", \"datatable-checkbox\", 4, \"ngIf\"], [4, \"ngIf\"], [3, \"title\", \"innerHTML\", 4, \"ngIf\"], [1, \"datatable-checkbox\"], [\"type\", \"checkbox\", 3, \"checked\", \"click\"], [\"class\", \"datatable-tree-button\", 3, \"disabled\", \"click\", 4, \"ngIf\"], [1, \"datatable-tree-button\", 3, \"disabled\", \"click\"], [\"class\", \"icon datatable-icon-collapse\", 4, \"ngIf\"], [\"class\", \"icon datatable-icon-up\", 4, \"ngIf\"], [\"class\", \"icon datatable-icon-down\", 4, \"ngIf\"], [1, \"icon\", \"datatable-icon-collapse\"], [1, \"icon\", \"datatable-icon-up\"], [1, \"icon\", \"datatable-icon-down\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [3, \"title\", \"innerHTML\"], [\"cellTemplate\", \"\"]], template: function DataTableBodyCellComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"div\", 0);\n ɵngcc0.ɵɵtemplate(1, DataTableBodyCellComponent_label_1_Template, 2, 1, \"label\", 1);\n ɵngcc0.ɵɵtemplate(2, DataTableBodyCellComponent_ng_container_2_Template, 3, 2, \"ng-container\", 2);\n ɵngcc0.ɵɵtemplate(3, DataTableBodyCellComponent_span_3_Template, 1, 2, \"span\", 3);\n ɵngcc0.ɵɵtemplate(4, DataTableBodyCellComponent_4_Template, 2, 2, null, 2);\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵstyleProp(\"margin-left\", ctx.calcLeftMargin(ctx.column, ctx.row), \"px\");\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.column.checkboxable && (!ctx.displayCheck || ctx.displayCheck(ctx.row, ctx.column, ctx.value)));\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.column.isTreeColumn);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", !ctx.column.cellTemplate);\n ɵngcc0.ɵɵadvance(1);\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.column.cellTemplate);\n } }, dependencies: [ɵngcc1.NgIf, ɵngcc1.NgTemplateOutlet], encapsulation: 2, changeDetection: 0 });\n/** @nocollapse */\nDataTableBodyCellComponent.ctorParameters = () => [\n { type: ElementRef },\n { type: ChangeDetectorRef }\n];\nDataTableBodyCellComponent.propDecorators = {\n displayCheck: [{ type: Input }],\n group: [{ type: Input }],\n rowHeight: [{ type: Input }],\n isSelected: [{ type: Input }],\n expanded: [{ type: Input }],\n rowIndex: [{ type: Input }],\n column: [{ type: Input }],\n row: [{ type: Input }],\n sorts: [{ type: Input }],\n treeStatus: [{ type: Input }],\n activate: [{ type: Output }],\n treeAction: [{ type: Output }],\n cellTemplate: [{ type: ViewChild, args: ['cellTemplate', { read: ViewContainerRef, static: true },] }],\n columnCssClasses: [{ type: HostBinding, args: ['class',] }],\n width: [{ type: HostBinding, args: ['style.width.px',] }],\n minWidth: [{ type: HostBinding, args: ['style.minWidth.px',] }],\n maxWidth: [{ type: HostBinding, args: ['style.maxWidth.px',] }],\n height: [{ type: HostBinding, args: ['style.height',] }],\n onFocus: [{ type: HostListener, args: ['focus',] }],\n onBlur: [{ type: HostListener, args: ['blur',] }],\n onClick: [{ type: HostListener, args: ['click', ['$event'],] }],\n onDblClick: [{ type: HostListener, args: ['dblclick', ['$event'],] }],\n onKeyDown: [{ type: HostListener, args: ['keydown', ['$event'],] }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DataTableBodyCellComponent, [{\n type: Component,\n args: [{\n selector: 'datatable-body-cell',\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n
\n `\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.ChangeDetectorRef }]; }, { activate: [{\n type: Output\n }], treeAction: [{\n type: Output\n }], group: [{\n type: Input\n }], rowHeight: [{\n type: Input\n }], isSelected: [{\n type: Input\n }], expanded: [{\n type: Input\n }], rowIndex: [{\n type: Input\n }], column: [{\n type: Input\n }], row: [{\n type: Input\n }], sorts: [{\n type: Input\n }], treeStatus: [{\n type: Input\n }], columnCssClasses: [{\n type: HostBinding,\n args: ['class']\n }], width: [{\n type: HostBinding,\n args: ['style.width.px']\n }], minWidth: [{\n type: HostBinding,\n args: ['style.minWidth.px']\n }], maxWidth: [{\n type: HostBinding,\n args: ['style.maxWidth.px']\n }], height: [{\n type: HostBinding,\n args: ['style.height']\n }], \n /**\n * @return {?}\n */\n onFocus: [{\n type: HostListener,\n args: ['focus']\n }], \n /**\n * @return {?}\n */\n onBlur: [{\n type: HostListener,\n args: ['blur']\n }], \n /**\n * @param {?} event\n * @return {?}\n */\n onClick: [{\n type: HostListener,\n args: ['click', ['$event']]\n }], \n /**\n * @param {?} event\n * @return {?}\n */\n onDblClick: [{\n type: HostListener,\n args: ['dblclick', ['$event']]\n }], \n /**\n * @param {?} event\n * @return {?}\n */\n onKeyDown: [{\n type: HostListener,\n args: ['keydown', ['$event']]\n }], displayCheck: [{\n type: Input\n }], cellTemplate: [{\n type: ViewChild,\n args: ['cellTemplate', { read: ViewContainerRef, static: true }]\n }] }); })();\nif (false) {\n /** @type {?} */\n DataTableBodyCellComponent.prototype.displayCheck;\n /** @type {?} */\n DataTableBodyCellComponent.prototype.activate;\n /** @type {?} */\n DataTableBodyCellComponent.prototype.treeAction;\n /** @type {?} */\n DataTableBodyCellComponent.prototype.cellTemplate;\n /** @type {?} */\n DataTableBodyCellComponent.prototype.sanitizedValue;\n /** @type {?} */\n DataTableBodyCellComponent.prototype.value;\n /** @type {?} */\n DataTableBodyCellComponent.prototype.sortDir;\n /** @type {?} */\n DataTableBodyCellComponent.prototype.isFocused;\n /** @type {?} */\n DataTableBodyCellComponent.prototype.onCheckboxChangeFn;\n /** @type {?} */\n DataTableBodyCellComponent.prototype.activateFn;\n /** @type {?} */\n DataTableBodyCellComponent.prototype.cellContext;\n /**\n * @type {?}\n * @private\n */\n DataTableBodyCellComponent.prototype._isSelected;\n /**\n * @type {?}\n * @private\n */\n DataTableBodyCellComponent.prototype._sorts;\n /**\n * @type {?}\n * @private\n */\n DataTableBodyCellComponent.prototype._column;\n /**\n * @type {?}\n * @private\n */\n DataTableBodyCellComponent.prototype._row;\n /**\n * @type {?}\n * @private\n */\n DataTableBodyCellComponent.prototype._group;\n /**\n * @type {?}\n * @private\n */\n DataTableBodyCellComponent.prototype._rowHeight;\n /**\n * @type {?}\n * @private\n */\n DataTableBodyCellComponent.prototype._rowIndex;\n /**\n * @type {?}\n * @private\n */\n DataTableBodyCellComponent.prototype._expanded;\n /**\n * @type {?}\n * @private\n */\n DataTableBodyCellComponent.prototype._element;\n /**\n * @type {?}\n * @private\n */\n DataTableBodyCellComponent.prototype._treeStatus;\n /**\n * @type {?}\n * @private\n */\n DataTableBodyCellComponent.prototype.cd;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @param {?} selected\n * @param {?} row\n * @param {?} comparefn\n * @return {?}\n */\nfunction selectRows(selected, row, comparefn) {\n /** @type {?} */\n const selectedIndex = comparefn(row, selected);\n if (selectedIndex > -1) {\n selected.splice(selectedIndex, 1);\n }\n else {\n selected.push(row);\n }\n return selected;\n}\n/**\n * @param {?} selected\n * @param {?} rows\n * @param {?} index\n * @param {?} prevIndex\n * @param {?} comparefn\n * @return {?}\n */\nfunction selectRowsBetween(selected, rows, index, prevIndex, comparefn) {\n /** @type {?} */\n const reverse = index < prevIndex;\n for (let i = 0; i < rows.length; i++) {\n /** @type {?} */\n const row = rows[i];\n /** @type {?} */\n const greater = i >= prevIndex && i <= index;\n /** @type {?} */\n const lesser = i <= prevIndex && i >= index;\n /** @type {?} */\n let range = { start: 0, end: 0 };\n if (reverse) {\n range = {\n start: index,\n end: prevIndex\n };\n }\n else {\n range = {\n start: prevIndex,\n end: index + 1\n };\n }\n if ((reverse && lesser) || (!reverse && greater)) {\n // if in the positive range to be added to `selected`, and\n // not already in the selected array, add it\n if (i >= range.start && i <= range.end) {\n selected.push(row);\n }\n }\n }\n return selected;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @record\n */\nfunction Model() { }\nif (false) {\n /** @type {?} */\n Model.prototype.type;\n /** @type {?} */\n Model.prototype.event;\n /** @type {?} */\n Model.prototype.row;\n /** @type {?} */\n Model.prototype.rowElement;\n /** @type {?} */\n Model.prototype.cellElement;\n /** @type {?} */\n Model.prototype.cellIndex;\n}\nclass DataTableSelectionComponent {\n constructor() {\n this.activate = new EventEmitter();\n this.select = new EventEmitter();\n }\n /**\n * @param {?} event\n * @param {?} index\n * @param {?} row\n * @return {?}\n */\n selectRow(event, index, row) {\n if (!this.selectEnabled)\n return;\n /** @type {?} */\n const chkbox = this.selectionType === SelectionType.checkbox;\n /** @type {?} */\n const multi = this.selectionType === SelectionType.multi;\n /** @type {?} */\n const multiClick = this.selectionType === SelectionType.multiClick;\n /** @type {?} */\n let selected = [];\n if (multi || chkbox || multiClick) {\n if (event.shiftKey) {\n selected = selectRowsBetween([], this.rows, index, this.prevIndex, this.getRowSelectedIdx.bind(this));\n }\n else if (event.ctrlKey || event.metaKey || multiClick || chkbox) {\n selected = selectRows([...this.selected], row, this.getRowSelectedIdx.bind(this));\n }\n else {\n selected = selectRows([], row, this.getRowSelectedIdx.bind(this));\n }\n }\n else {\n selected = selectRows([], row, this.getRowSelectedIdx.bind(this));\n }\n if (typeof this.selectCheck === 'function') {\n selected = selected.filter(this.selectCheck.bind(this));\n }\n this.selected.splice(0, this.selected.length);\n this.selected.push(...selected);\n this.prevIndex = index;\n this.select.emit({\n selected\n });\n }\n /**\n * @param {?} model\n * @param {?} index\n * @return {?}\n */\n onActivate(model, index) {\n const { type, event, row } = model;\n /** @type {?} */\n const chkbox = this.selectionType === SelectionType.checkbox;\n /** @type {?} */\n const select = (!chkbox && (type === 'click' || type === 'dblclick')) || (chkbox && type === 'checkbox');\n if (select) {\n this.selectRow(event, index, row);\n }\n else if (type === 'keydown') {\n if (((/** @type {?} */ (event))).keyCode === Keys.return) {\n this.selectRow(event, index, row);\n }\n else {\n this.onKeyboardFocus(model);\n }\n }\n this.activate.emit(model);\n }\n /**\n * @param {?} model\n * @return {?}\n */\n onKeyboardFocus(model) {\n const { keyCode } = (/** @type {?} */ (model.event));\n /** @type {?} */\n const shouldFocus = keyCode === Keys.up || keyCode === Keys.down || keyCode === Keys.right || keyCode === Keys.left;\n if (shouldFocus) {\n /** @type {?} */\n const isCellSelection = this.selectionType === SelectionType.cell;\n if (!model.cellElement || !isCellSelection) {\n this.focusRow(model.rowElement, keyCode);\n }\n else if (isCellSelection) {\n this.focusCell(model.cellElement, model.rowElement, keyCode, model.cellIndex);\n }\n }\n }\n /**\n * @param {?} rowElement\n * @param {?} keyCode\n * @return {?}\n */\n focusRow(rowElement, keyCode) {\n /** @type {?} */\n const nextRowElement = this.getPrevNextRow(rowElement, keyCode);\n if (nextRowElement)\n nextRowElement.focus();\n }\n /**\n * @param {?} rowElement\n * @param {?} keyCode\n * @return {?}\n */\n getPrevNextRow(rowElement, keyCode) {\n /** @type {?} */\n const parentElement = rowElement.parentElement;\n if (parentElement) {\n /** @type {?} */\n let focusElement;\n if (keyCode === Keys.up) {\n focusElement = parentElement.previousElementSibling;\n }\n else if (keyCode === Keys.down) {\n focusElement = parentElement.nextElementSibling;\n }\n if (focusElement && focusElement.children.length) {\n return focusElement.children[0];\n }\n }\n }\n /**\n * @param {?} cellElement\n * @param {?} rowElement\n * @param {?} keyCode\n * @param {?} cellIndex\n * @return {?}\n */\n focusCell(cellElement, rowElement, keyCode, cellIndex) {\n /** @type {?} */\n let nextCellElement;\n if (keyCode === Keys.left) {\n nextCellElement = cellElement.previousElementSibling;\n }\n else if (keyCode === Keys.right) {\n nextCellElement = cellElement.nextElementSibling;\n }\n else if (keyCode === Keys.up || keyCode === Keys.down) {\n /** @type {?} */\n const nextRowElement = this.getPrevNextRow(rowElement, keyCode);\n if (nextRowElement) {\n /** @type {?} */\n const children = nextRowElement.getElementsByClassName('datatable-body-cell');\n if (children.length)\n nextCellElement = children[cellIndex];\n }\n }\n if (nextCellElement)\n nextCellElement.focus();\n }\n /**\n * @param {?} row\n * @return {?}\n */\n getRowSelected(row) {\n return this.getRowSelectedIdx(row, this.selected) > -1;\n }\n /**\n * @param {?} row\n * @param {?} selected\n * @return {?}\n */\n getRowSelectedIdx(row, selected) {\n if (!selected || !selected.length)\n return -1;\n /** @type {?} */\n const rowId = this.rowIdentity(row);\n return selected.findIndex((/**\n * @param {?} r\n * @return {?}\n */\n r => {\n /** @type {?} */\n const id = this.rowIdentity(r);\n return id === rowId;\n }));\n }\n}\nDataTableSelectionComponent.ɵfac = function DataTableSelectionComponent_Factory(t) { return new (t || DataTableSelectionComponent)(); };\nDataTableSelectionComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: DataTableSelectionComponent, selectors: [[\"datatable-selection\"]], inputs: { rows: \"rows\", selected: \"selected\", selectEnabled: \"selectEnabled\", selectionType: \"selectionType\", rowIdentity: \"rowIdentity\", selectCheck: \"selectCheck\" }, outputs: { activate: \"activate\", select: \"select\" }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function DataTableSelectionComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵprojection(0);\n } }, encapsulation: 2, changeDetection: 0 });\nDataTableSelectionComponent.propDecorators = {\n rows: [{ type: Input }],\n selected: [{ type: Input }],\n selectEnabled: [{ type: Input }],\n selectionType: [{ type: Input }],\n rowIdentity: [{ type: Input }],\n selectCheck: [{ type: Input }],\n activate: [{ type: Output }],\n select: [{ type: Output }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DataTableSelectionComponent, [{\n type: Component,\n args: [{\n selector: 'datatable-selection',\n template: `\n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], function () { return []; }, { activate: [{\n type: Output\n }], select: [{\n type: Output\n }], rows: [{\n type: Input\n }], selected: [{\n type: Input\n }], selectEnabled: [{\n type: Input\n }], selectionType: [{\n type: Input\n }], rowIdentity: [{\n type: Input\n }], selectCheck: [{\n type: Input\n }] }); })();\nif (false) {\n /** @type {?} */\n DataTableSelectionComponent.prototype.rows;\n /** @type {?} */\n DataTableSelectionComponent.prototype.selected;\n /** @type {?} */\n DataTableSelectionComponent.prototype.selectEnabled;\n /** @type {?} */\n DataTableSelectionComponent.prototype.selectionType;\n /** @type {?} */\n DataTableSelectionComponent.prototype.rowIdentity;\n /** @type {?} */\n DataTableSelectionComponent.prototype.selectCheck;\n /** @type {?} */\n DataTableSelectionComponent.prototype.activate;\n /** @type {?} */\n DataTableSelectionComponent.prototype.select;\n /** @type {?} */\n DataTableSelectionComponent.prototype.prevIndex;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @record\n */\nfunction ISummaryColumn() { }\nif (false) {\n /** @type {?|undefined} */\n ISummaryColumn.prototype.summaryFunc;\n /** @type {?|undefined} */\n ISummaryColumn.prototype.summaryTemplate;\n /** @type {?} */\n ISummaryColumn.prototype.prop;\n /** @type {?|undefined} */\n ISummaryColumn.prototype.pipe;\n}\n/**\n * @param {?} cells\n * @return {?}\n */\nfunction defaultSumFunc(cells) {\n /** @type {?} */\n const cellsWithValues = cells.filter((/**\n * @param {?} cell\n * @return {?}\n */\n cell => !!cell));\n if (!cellsWithValues.length) {\n return null;\n }\n if (cellsWithValues.some((/**\n * @param {?} cell\n * @return {?}\n */\n cell => typeof cell !== 'number'))) {\n return null;\n }\n return cellsWithValues.reduce((/**\n * @param {?} res\n * @param {?} cell\n * @return {?}\n */\n (res, cell) => res + cell));\n}\n/**\n * @param {?} cells\n * @return {?}\n */\nfunction noopSumFunc(cells) {\n return null;\n}\nclass DataTableSummaryRowComponent {\n constructor() {\n this.summaryRow = {};\n }\n /**\n * @return {?}\n */\n ngOnChanges() {\n if (!this.columns || !this.rows) {\n return;\n }\n this.updateInternalColumns();\n this.updateValues();\n }\n /**\n * @private\n * @return {?}\n */\n updateInternalColumns() {\n this._internalColumns = this.columns.map((/**\n * @param {?} col\n * @return {?}\n */\n col => (Object.assign({}, col, { cellTemplate: col.summaryTemplate }))));\n }\n /**\n * @private\n * @return {?}\n */\n updateValues() {\n this.summaryRow = {};\n this.columns\n .filter((/**\n * @param {?} col\n * @return {?}\n */\n col => !col.summaryTemplate))\n .forEach((/**\n * @param {?} col\n * @return {?}\n */\n col => {\n /** @type {?} */\n const cellsFromSingleColumn = this.rows.map((/**\n * @param {?} row\n * @return {?}\n */\n row => row[col.prop]));\n /** @type {?} */\n const sumFunc = this.getSummaryFunction(col);\n this.summaryRow[col.prop] = col.pipe\n ? col.pipe.transform(sumFunc(cellsFromSingleColumn))\n : sumFunc(cellsFromSingleColumn);\n }));\n }\n /**\n * @private\n * @param {?} column\n * @return {?}\n */\n getSummaryFunction(column) {\n if (column.summaryFunc === undefined) {\n return defaultSumFunc;\n }\n else if (column.summaryFunc === null) {\n return noopSumFunc;\n }\n else {\n return column.summaryFunc;\n }\n }\n}\nDataTableSummaryRowComponent.ɵfac = function DataTableSummaryRowComponent_Factory(t) { return new (t || DataTableSummaryRowComponent)(); };\nDataTableSummaryRowComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: DataTableSummaryRowComponent, selectors: [[\"datatable-summary-row\"]], hostAttrs: [1, \"datatable-summary-row\"], inputs: { rows: \"rows\", columns: \"columns\", rowHeight: \"rowHeight\", offsetX: \"offsetX\", innerWidth: \"innerWidth\" }, features: [ɵngcc0.ɵɵNgOnChangesFeature], decls: 1, vars: 1, consts: [[\"tabindex\", \"-1\", 3, \"innerWidth\", \"offsetX\", \"columns\", \"rowHeight\", \"row\", \"rowIndex\", 4, \"ngIf\"], [\"tabindex\", \"-1\", 3, \"innerWidth\", \"offsetX\", \"columns\", \"rowHeight\", \"row\", \"rowIndex\"]], template: function DataTableSummaryRowComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵtemplate(0, DataTableSummaryRowComponent_datatable_body_row_0_Template, 1, 6, \"datatable-body-row\", 0);\n } if (rf & 2) {\n ɵngcc0.ɵɵproperty(\"ngIf\", ctx.summaryRow && ctx._internalColumns);\n } }, dependencies: [ɵngcc1.NgIf, DataTableBodyRowComponent], encapsulation: 2 });\nDataTableSummaryRowComponent.propDecorators = {\n rows: [{ type: Input }],\n columns: [{ type: Input }],\n rowHeight: [{ type: Input }],\n offsetX: [{ type: Input }],\n innerWidth: [{ type: Input }]\n};\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(DataTableSummaryRowComponent, [{\n type: Component,\n args: [{\n selector: 'datatable-summary-row',\n template: `\n \n \n `,\n host: {\n class: 'datatable-summary-row'\n }\n }]\n }], function () { return []; }, { rows: [{\n type: Input\n }], columns: [{\n type: Input\n }], rowHeight: [{\n type: Input\n }], offsetX: [{\n type: Input\n }], innerWidth: [{\n type: Input\n }] }); })();\nif (false) {\n /** @type {?} */\n DataTableSummaryRowComponent.prototype.rows;\n /** @type {?} */\n DataTableSummaryRowComponent.prototype.columns;\n /** @type {?} */\n DataTableSummaryRowComponent.prototype.rowHeight;\n /** @type {?} */\n DataTableSummaryRowComponent.prototype.offsetX;\n /** @type {?} */\n DataTableSummaryRowComponent.prototype.innerWidth;\n /** @type {?} */\n DataTableSummaryRowComponent.prototype._internalColumns;\n /** @type {?} */\n DataTableSummaryRowComponent.prototype.summaryRow;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nclass NgxDatatableModule {\n /**\n * Configure global configuration via INgxDatatableConfig\n * @param {?} configuration\n * @return {?}\n */\n static forRoot(configuration) {\n return {\n ngModule: NgxDatatableModule,\n providers: [{ provide: 'configuration', useValue: configuration }]\n };\n }\n}\nNgxDatatableModule.ɵfac = function NgxDatatableModule_Factory(t) { return new (t || NgxDatatableModule)(); };\nNgxDatatableModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: NgxDatatableModule });\nNgxDatatableModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({ providers: [ScrollbarHelper, DimensionsHelper, ColumnChangesService], imports: [CommonModule] });\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(NgxDatatableModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n providers: [ScrollbarHelper, DimensionsHelper, ColumnChangesService],\n declarations: [\n DataTableFooterTemplateDirective,\n VisibilityDirective,\n DraggableDirective,\n ResizeableDirective,\n OrderableDirective,\n LongPressDirective,\n ScrollerComponent,\n DatatableComponent,\n DataTableColumnDirective,\n DataTableHeaderComponent,\n DataTableHeaderCellComponent,\n DataTableBodyComponent,\n DataTableFooterComponent,\n DataTablePagerComponent,\n ProgressBarComponent,\n DataTableBodyRowComponent,\n DataTableRowWrapperComponent,\n DatatableRowDetailDirective,\n DatatableGroupHeaderDirective,\n DatatableRowDetailTemplateDirective,\n DataTableBodyCellComponent,\n DataTableSelectionComponent,\n DataTableColumnHeaderDirective,\n DataTableColumnCellDirective,\n DataTableColumnCellTreeToggle,\n DatatableFooterDirective,\n DatatableGroupHeaderTemplateDirective,\n DataTableSummaryRowComponent\n ],\n exports: [\n DatatableComponent,\n DatatableRowDetailDirective,\n DatatableGroupHeaderDirective,\n DatatableRowDetailTemplateDirective,\n DataTableColumnDirective,\n DataTableColumnHeaderDirective,\n DataTableColumnCellDirective,\n DataTableColumnCellTreeToggle,\n DataTableFooterTemplateDirective,\n DatatableFooterDirective,\n DataTablePagerComponent,\n DatatableGroupHeaderTemplateDirective\n ]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(NgxDatatableModule, { declarations: function () { return [DataTableFooterTemplateDirective, VisibilityDirective, DraggableDirective, ResizeableDirective, OrderableDirective, LongPressDirective, ScrollerComponent, DatatableComponent, DataTableColumnDirective, DataTableHeaderComponent, DataTableHeaderCellComponent, DataTableBodyComponent, DataTableFooterComponent, DataTablePagerComponent, ProgressBarComponent, DataTableBodyRowComponent, DataTableRowWrapperComponent, DatatableRowDetailDirective, DatatableGroupHeaderDirective, DatatableRowDetailTemplateDirective, DataTableBodyCellComponent, DataTableSelectionComponent, DataTableColumnHeaderDirective, DataTableColumnCellDirective, DataTableColumnCellTreeToggle, DatatableFooterDirective, DatatableGroupHeaderTemplateDirective, DataTableSummaryRowComponent]; }, imports: function () { return [CommonModule]; }, exports: function () { return [DatatableComponent, DatatableRowDetailDirective, DatatableGroupHeaderDirective, DatatableRowDetailTemplateDirective, DataTableColumnDirective, DataTableColumnHeaderDirective, DataTableColumnCellDirective, DataTableColumnCellTreeToggle, DataTableFooterTemplateDirective, DatatableFooterDirective, DataTablePagerComponent, DatatableGroupHeaderTemplateDirective]; } }); })();\n/**\n * Interface definition for INgxDatatableConfig global configuration\n * @record\n */\nfunction INgxDatatableConfig() { }\nif (false) {\n /** @type {?} */\n INgxDatatableConfig.prototype.messages;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/** @enum {string} */\nconst ClickType = {\n single: 'single',\n double: 'double',\n};\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * Column Type\n * @record\n */\nfunction TableColumn() { }\nif (false) {\n /**\n * Internal unique id\n *\n * \\@memberOf TableColumn\n * @type {?|undefined}\n */\n TableColumn.prototype.$$id;\n /**\n * Internal for column width distributions\n *\n * \\@memberOf TableColumn\n * @type {?|undefined}\n */\n TableColumn.prototype.$$oldWidth;\n /**\n * Internal for setColumnDefaults\n *\n * \\@memberOf TableColumn\n * @type {?|undefined}\n */\n TableColumn.prototype.$$valueGetter;\n /**\n * Determines if column is checkbox\n *\n * \\@memberOf TableColumn\n * @type {?|undefined}\n */\n TableColumn.prototype.checkboxable;\n /**\n * Determines if the column is frozen to the left\n *\n * \\@memberOf TableColumn\n * @type {?|undefined}\n */\n TableColumn.prototype.frozenLeft;\n /**\n * Determines if the column is frozen to the right\n *\n * \\@memberOf TableColumn\n * @type {?|undefined}\n */\n TableColumn.prototype.frozenRight;\n /**\n * The grow factor relative to other columns. Same as the flex-grow\n * API from http =//www.w3.org/TR/css3-flexbox/. Basically;\n * take any available extra width and distribute it proportionally\n * according to all columns' flexGrow values.\n *\n * \\@memberOf TableColumn\n * @type {?|undefined}\n */\n TableColumn.prototype.flexGrow;\n /**\n * Min width of the column\n *\n * \\@memberOf TableColumn\n * @type {?|undefined}\n */\n TableColumn.prototype.minWidth;\n /**\n * Max width of the column\n *\n * \\@memberOf TableColumn\n * @type {?|undefined}\n */\n TableColumn.prototype.maxWidth;\n /**\n * The default width of the column, in pixels\n *\n * \\@memberOf TableColumn\n * @type {?|undefined}\n */\n TableColumn.prototype.width;\n /**\n * Can the column be resized\n *\n * \\@memberOf TableColumn\n * @type {?|undefined}\n */\n TableColumn.prototype.resizeable;\n /**\n * Custom sort comparator\n *\n * \\@memberOf TableColumn\n * @type {?|undefined}\n */\n TableColumn.prototype.comparator;\n /**\n * Custom pipe transforms\n *\n * \\@memberOf TableColumn\n * @type {?|undefined}\n */\n TableColumn.prototype.pipe;\n /**\n * Can the column be sorted\n *\n * \\@memberOf TableColumn\n * @type {?|undefined}\n */\n TableColumn.prototype.sortable;\n /**\n * Can the column be re-arranged by dragging\n *\n * \\@memberOf TableColumn\n * @type {?|undefined}\n */\n TableColumn.prototype.draggable;\n /**\n * Whether the column can automatically resize to fill space in the table.\n *\n * \\@memberOf TableColumn\n * @type {?|undefined}\n */\n TableColumn.prototype.canAutoResize;\n /**\n * Column name or label\n *\n * \\@memberOf TableColumn\n * @type {?|undefined}\n */\n TableColumn.prototype.name;\n /**\n * Property to bind to the row. Example:\n *\n * `someField` or `some.field.nested`, 0 (numeric)\n *\n * If left blank, will use the name as camel case conversion\n *\n * \\@memberOf TableColumn\n * @type {?|undefined}\n */\n TableColumn.prototype.prop;\n /**\n * Cell template ref\n *\n * \\@memberOf TableColumn\n * @type {?|undefined}\n */\n TableColumn.prototype.cellTemplate;\n /**\n * Header template ref\n *\n * \\@memberOf TableColumn\n * @type {?|undefined}\n */\n TableColumn.prototype.headerTemplate;\n /**\n * Tree toggle template ref\n *\n * \\@memberOf TableColumn\n * @type {?|undefined}\n */\n TableColumn.prototype.treeToggleTemplate;\n /**\n * CSS Classes for the cell\n *\n *\n * \\@memberOf TableColumn\n * @type {?|undefined}\n */\n TableColumn.prototype.cellClass;\n /**\n * CSS classes for the header\n *\n *\n * \\@memberOf TableColumn\n * @type {?|undefined}\n */\n TableColumn.prototype.headerClass;\n /**\n * Header checkbox enabled\n *\n * \\@memberOf TableColumn\n * @type {?|undefined}\n */\n TableColumn.prototype.headerCheckboxable;\n /**\n * Is tree displayed on this column\n *\n * \\@memberOf TableColumn\n * @type {?|undefined}\n */\n TableColumn.prototype.isTreeColumn;\n /**\n * Width of the tree level indent\n *\n * \\@memberOf TableColumn\n * @type {?|undefined}\n */\n TableColumn.prototype.treeLevelIndent;\n /**\n * Summary function\n *\n * \\@memberOf TableColumn\n * @type {?|undefined}\n */\n TableColumn.prototype.summaryFunc;\n /**\n * Summary cell template ref\n *\n * \\@memberOf TableColumn\n * @type {?|undefined}\n */\n TableColumn.prototype.summaryTemplate;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n/**\n * @record\n */\nfunction SortPropDir() { }\nif (false) {\n /** @type {?} */\n SortPropDir.prototype.dir;\n /** @type {?} */\n SortPropDir.prototype.prop;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\nif (typeof document !== 'undefined' && !document.elementsFromPoint) {\n document.elementsFromPoint = elementsFromPoint;\n}\n/*tslint:disable*/\n/**\n * Polyfill for `elementsFromPoint`\n *\n * https://developer.mozilla.org/en-US/docs/Web/API/Document/elementsFromPoint\n * https://gist.github.com/iddan/54d5d9e58311b0495a91bf06de661380\n * https://gist.github.com/oslego/7265412\n * @param {?} x\n * @param {?} y\n * @return {?}\n */\nfunction elementsFromPoint(x, y) {\n /** @type {?} */\n const elements = [];\n /** @type {?} */\n const previousPointerEvents = [];\n /** @type {?} */\n let current;\n // TODO: window.getComputedStyle should be used with inferred type (Element)\n /** @type {?} */\n let i;\n /** @type {?} */\n let d;\n //if (document === undefined) return elements;\n // get all elements via elementFromPoint, and remove them from hit-testing in order\n while ((current = document.elementFromPoint(x, y)) && elements.indexOf(current) === -1 && current != null) {\n // push the element and its current style\n elements.push(current);\n previousPointerEvents.push({\n value: current.style.getPropertyValue('pointer-events'),\n priority: current.style.getPropertyPriority('pointer-events')\n });\n // add \"pointer-events: none\", to get to the underlying element\n current.style.setProperty('pointer-events', 'none', 'important');\n }\n // restore the previous pointer-events values\n for (i = previousPointerEvents.length; (d = previousPointerEvents[--i]);) {\n elements[i].style.setProperty('pointer-events', d.value ? d.value : '', d.priority);\n }\n // return our results\n return elements;\n}\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\n/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc\n */\n\nexport { ClickType, ColumnChangesService, ColumnMode, ContextmenuType, DataTableBodyCellComponent, DataTableBodyComponent, DataTableBodyRowComponent, DataTableColumnCellDirective, DataTableColumnCellTreeToggle, DataTableColumnDirective, DataTableColumnHeaderDirective, DataTableFooterComponent, DataTableFooterTemplateDirective, DataTableHeaderCellComponent, DataTableHeaderComponent, DataTablePagerComponent, DataTableRowWrapperComponent, DataTableSelectionComponent, DataTableSummaryRowComponent, DatatableComponent, DatatableFooterDirective, DatatableGroupHeaderDirective, DatatableGroupHeaderTemplateDirective, DatatableRowDetailDirective, DatatableRowDetailTemplateDirective, DimensionsHelper, DraggableDirective, Keys, LongPressDirective, NgxDatatableModule, OrderableDirective, ProgressBarComponent, ResizeableDirective, RowHeightCache, ScrollbarHelper, ScrollerComponent, SelectionType, SortDirection, SortType, VisibilityDirective, adjustColumnWidths, camelCase, columnGroupWidths, columnTotalWidth, columnsByPin, columnsByPinArr, columnsTotalWidth, deCamelCase, deepValueGetter, elementsFromPoint, emptyStringGetter, forceFillColumnWidths, getTotalFlexGrow, getVendorPrefixedName, getterForProp, groupRowsByParents, id, isNullOrUndefined, nextSortDir, numericIndexGetter, optionalGetterForProp, orderByComparator, selectRows, selectRowsBetween, setColumnDefaults, shallowValueGetter, sortRows, throttle, throttleable, translateTemplates, translateXY };\n\n","import { __awaiter } from 'tslib';\nimport * as i0 from '@angular/core';\nimport { EventEmitter, Directive, Output, LOCALE_ID, Injectable, Inject, Optional, ElementRef, Component, Input, NgModule } from '@angular/core';\n\nclass GoogleChartsDataTable {\n constructor(opt) {\n this.opt = opt;\n this.dataTableChanged = new EventEmitter();\n if (opt) {\n this._setDataTable(opt.dataTable, opt.firstRowIsData);\n }\n }\n send() {\n if (this.query === undefined) {\n return;\n }\n this.query.send((queryResponse) => {\n this.setDataTable(queryResponse.getDataTable());\n if (this.opt.queryCallback) {\n this.opt.queryCallback(queryResponse);\n }\n });\n }\n init(opt) {\n if (opt) {\n this.opt = opt;\n }\n if (this.tid !== undefined) {\n // doesn't work, see https://github.com/google/google-visualization-issues/issues/2381\n // this.query.abort();\n window.clearInterval(this.tid);\n this.tid = undefined;\n }\n if (this.opt.dataSourceUrl) {\n this.query = new google.visualization.Query(this.opt.dataSourceUrl);\n if (this.opt.query) {\n this.query.setQuery(this.opt.query);\n }\n if (this.opt.timeout !== undefined) {\n this.query.setTimeout(this.opt.timeout);\n }\n if (this.opt.refreshInterval) {\n // this.query.setRefreshInterval(this.opt.refreshInterval);\n this.tid = window.setInterval(() => {\n this.send();\n }, this.opt.refreshInterval * 1000);\n }\n this.send();\n }\n else {\n this.setDataTable(this.opt.dataTable);\n }\n }\n /**\n * @returns Underlying google.visualization.DataTable\n */\n getDataTable() {\n return this.dataTable;\n }\n setDataTable(dt, firstRowIsData) {\n if (firstRowIsData === undefined) {\n firstRowIsData = this.opt.firstRowIsData;\n }\n this._setDataTable(dt, firstRowIsData);\n this.dataTableChanged.emit(this.dataTable);\n }\n _setDataTable(dt, firstRowIsData) {\n if (Array.isArray(dt)) {\n dt = google.visualization.arrayToDataTable(dt, firstRowIsData);\n }\n this.dataTable = dt;\n this.reformat();\n }\n /**\n * Applies formatters to data columns, if defined\n */\n reformat() {\n const dt = this.dataTable;\n if (dt === undefined) {\n return;\n }\n if (this.opt.formatters === undefined) {\n return;\n }\n for (const formatterConfig of this.opt.formatters) {\n let formatter;\n if (formatterConfig.type === 'PatternFormat') {\n const fmtOptions = formatterConfig.options;\n formatter = new google.visualization.PatternFormat(fmtOptions.pattern);\n formatter.format(dt, formatterConfig.columns, fmtOptions.dstColumnIndex);\n continue;\n }\n const formatterConstructor = google.visualization[formatterConfig.type];\n const formatterOptions = formatterConfig.options;\n formatter = new formatterConstructor(formatterOptions);\n if (formatterConfig.type === 'ColorFormat' && formatterOptions) {\n const fmtOptions = formatterOptions;\n if (fmtOptions.ranges) {\n for (const range of fmtOptions.ranges) {\n if (typeof (range.fromBgColor) !== 'undefined'\n && typeof (range.toBgColor) !== 'undefined') {\n formatter.addGradientRange(range.from, range.to, range.color, range.fromBgColor, range.toBgColor);\n }\n else {\n formatter.addRange(range.from, range.to, range.color, range.bgcolor);\n }\n }\n }\n }\n for (const col of formatterConfig.columns) {\n formatter.format(dt, col);\n }\n }\n }\n}\nGoogleChartsDataTable.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.14\", ngImport: i0, type: GoogleChartsDataTable, deps: \"invalid\", target: i0.ɵɵFactoryTarget.Directive });\nGoogleChartsDataTable.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"12.2.14\", type: GoogleChartsDataTable, outputs: { dataTableChanged: \"dataTableChanged\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.14\", ngImport: i0, type: GoogleChartsDataTable, decorators: [{\n type: Directive\n }], ctorParameters: function () { return [{ type: undefined }]; }, propDecorators: { dataTableChanged: [{\n type: Output\n }] } });\n\nclass ChartHTMLTooltip {\n constructor(el) {\n this.el = el;\n }\n setPosition(x, y) {\n this.el.nativeElement.style.left = x + ChartHTMLTooltip.PIXELS;\n this.el.nativeElement.style.top = y + ChartHTMLTooltip.PIXELS;\n }\n getDOMElement() {\n return this.el;\n }\n}\nChartHTMLTooltip.PIXELS = 'px';\n\nclass GoogleChartsLoaderService {\n constructor(localeId, googleChartsSettings) {\n this.googleChartsSettings = googleChartsSettings;\n this.loadedPackages = [];\n this.loaded = false;\n const defaultSettings = {\n googleChartsVersion: '50',\n language: localeId,\n };\n this.googleChartsSettings = Object.assign(Object.assign({}, defaultSettings), this.googleChartsSettings);\n this.googleScriptLoadingNotifier = new EventEmitter();\n this.googleChartLoadingNotifier = new EventEmitter();\n this.googleScriptIsLoading = false;\n this.googleChartIsLoading = false;\n this.loadGoogleChartsScriptPromise = new Promise((resolve, reject) => {\n if (typeof google !== 'undefined' && google.charts) {\n resolve();\n }\n else if (!this.googleScriptIsLoading) {\n this.googleScriptIsLoading = true;\n const script = document.createElement('script');\n script.type = 'text/javascript';\n script.src = 'https://www.gstatic.com/charts/loader.js';\n script.async = true;\n script.defer = true;\n script.onload = () => {\n this.googleScriptIsLoading = false;\n this.googleScriptLoadingNotifier.emit(true);\n resolve();\n };\n script.onerror = () => {\n this.googleScriptIsLoading = false;\n this.googleScriptLoadingNotifier.emit(false);\n reject();\n };\n document.getElementsByTagName('head')[0].appendChild(script);\n }\n else {\n this.googleScriptLoadingNotifier.subscribe((loaded) => {\n if (loaded) {\n resolve();\n }\n else {\n reject();\n }\n });\n }\n });\n }\n load(settings) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.loadGoogleChartsScriptPromise;\n yield new Promise((resolve) => {\n if (this.googleChartIsLoading) {\n this.googleChartLoadingNotifier.subscribe(() => {\n this.doLoad(resolve, settings);\n });\n return;\n }\n this.doLoad(resolve, settings);\n });\n });\n }\n doLoad(resolve, settings) {\n settings = Object.assign(Object.assign({}, this.googleChartsSettings), settings);\n if (!settings.packages && this.loaded) {\n resolve();\n return;\n }\n if (settings.packages) {\n let pkgs = settings.packages.filter(p => this.loadedPackages.indexOf(p) < 0);\n if (pkgs.length == 0 && this.loaded) {\n resolve();\n return;\n }\n settings.packages = pkgs;\n }\n const _settings = settings;\n _settings.callback = () => {\n this.googleChartIsLoading = false;\n if (_settings.packages !== undefined) {\n this.loadedPackages = this.loadedPackages.concat(_settings.packages);\n }\n this.loaded = true;\n this.googleChartLoadingNotifier.emit();\n resolve();\n };\n this.googleChartIsLoading = true;\n google.charts.load(settings.googleChartsVersion, _settings);\n }\n}\nGoogleChartsLoaderService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.14\", ngImport: i0, type: GoogleChartsLoaderService, deps: [{ token: LOCALE_ID }, { token: 'googleChartsSettings', optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\nGoogleChartsLoaderService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"12.2.14\", ngImport: i0, type: GoogleChartsLoaderService, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.14\", ngImport: i0, type: GoogleChartsLoaderService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }, { type: undefined, decorators: [{\n type: Inject,\n args: ['googleChartsSettings']\n }, {\n type: Optional\n }] }]; } });\n\nvar GoogleChartType;\n(function (GoogleChartType) {\n GoogleChartType[\"AnnotationChart\"] = \"AnnotationChart\";\n GoogleChartType[\"AreaChart\"] = \"AreaChart\";\n GoogleChartType[\"BarChart\"] = \"BarChart\";\n GoogleChartType[\"BubbleChart\"] = \"BubbleChart\";\n GoogleChartType[\"Calendar\"] = \"Calendar\";\n GoogleChartType[\"CandlestickChart\"] = \"CandlestickChart\";\n GoogleChartType[\"ColumnChart\"] = \"ColumnChart\";\n GoogleChartType[\"ComboChart\"] = \"ComboChart\";\n GoogleChartType[\"Gantt\"] = \"Gantt\";\n GoogleChartType[\"Gauge\"] = \"Gauge\";\n GoogleChartType[\"GeoChart\"] = \"GeoChart\";\n GoogleChartType[\"Histogram\"] = \"Histogram\";\n GoogleChartType[\"LineChart\"] = \"LineChart\";\n GoogleChartType[\"Map\"] = \"Map\";\n GoogleChartType[\"OrgChart\"] = \"OrgChart\";\n GoogleChartType[\"PieChart\"] = \"PieChart\";\n GoogleChartType[\"Sankey\"] = \"Sankey\";\n GoogleChartType[\"ScatterChart\"] = \"ScatterChart\";\n GoogleChartType[\"SteppedAreaChart\"] = \"SteppedAreaChart\";\n GoogleChartType[\"Table\"] = \"Table\";\n GoogleChartType[\"Timeline\"] = \"Timeline\";\n GoogleChartType[\"TreeMap\"] = \"TreeMap\";\n GoogleChartType[\"VegaChart\"] = \"VegaChart\";\n GoogleChartType[\"WordTree\"] = \"WordTree\";\n})(GoogleChartType || (GoogleChartType = {}));\nclass GoogleChartComponent {\n constructor(el, loaderService) {\n this.el = el;\n this.loaderService = loaderService;\n this.selectListener = () => {\n const event = {\n message: 'select',\n row: null,\n column: null,\n selectedRowValues: [],\n selectedRowFormattedValues: [],\n columnLabel: ''\n };\n const s = this.wrapper.visualization.getSelection();\n const gs = s[s.length - 1];\n if (!gs) {\n event.message = 'deselect';\n return event;\n }\n const selection = gs;\n if (gs.row != null) {\n event.row = selection.row;\n const selectedRowValues = [];\n const selectedRowFormattedValues = [];\n const dataTable = this.wrapper.getDataTable();\n const numberOfColumns = dataTable.getNumberOfColumns();\n for (let i = 0; i < numberOfColumns; i++) {\n selectedRowValues.push(dataTable.getValue(selection.row, i));\n selectedRowFormattedValues.push(dataTable.getFormattedValue(selection.row, i));\n }\n event.selectedRowValues = selectedRowValues;\n event.selectedRowFormattedValues = selectedRowFormattedValues;\n }\n if (selection.column != null) {\n event.column = selection.column;\n event.columnLabel = this.getColumnLabelAtPosition(selection);\n }\n if (gs.name) {\n event.columnLabel = gs.name;\n }\n return event;\n };\n this.chartSelect = new EventEmitter();\n this.chartSelectOneTime = new EventEmitter();\n this.chartReady = new EventEmitter();\n this.chartReadyOneTime = new EventEmitter();\n this.chartError = new EventEmitter();\n this.chartErrorOneTime = new EventEmitter();\n this.mouseOver = new EventEmitter();\n this.mouseOverOneTime = new EventEmitter();\n this.mouseOut = new EventEmitter();\n this.mouseOutOneTime = new EventEmitter();\n this.regionClick = new EventEmitter();\n this.regionClickOneTime = new EventEmitter();\n }\n ngOnInit() {\n this.HTMLel = this.el.nativeElement.querySelector('div');\n if (Object.isExtensible(this.data)) {\n this.data.component = this;\n }\n this.options = this.data.options;\n this.init().then(() => {\n this.draw();\n });\n }\n init() {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.loaderService.load();\n this.recreateWrapper();\n });\n }\n recreateWrapper() {\n if (this.wrapper === undefined || this.wrapper.getChartType() !== this.data.chartType) {\n this.dataTable = new GoogleChartsDataTable(this.data);\n this.dataTable.dataTableChanged.subscribe((dt) => {\n this._draw();\n });\n // see dataTable in https://developers.google.com/chart/interactive/docs/reference#google.visualization.drawchart\n let temp = this.data;\n if (this.data.firstRowIsData) {\n temp = Object.assign(temp, this.data);\n temp.dataTable = this.dataTable.getDataTable();\n }\n this.wrapper = new google.visualization.ChartWrapper(temp);\n this.registerChartWrapperEvents();\n /* Calling draw even without data is the only way to pass the HTMl element\n when using the chart in a dashboard. Don't do this in all other cases:\n it breaks formatters with remote data source, hence the conditional. */\n if (temp.dataTable === undefined && temp.dataSourceUrl === undefined) {\n try {\n this.wrapper.draw(this.HTMLel);\n }\n catch (err) { }\n }\n }\n }\n _draw() {\n return __awaiter(this, void 0, void 0, function* () {\n const dt = this.dataTable.getDataTable();\n if (dt === undefined) {\n return;\n }\n this.convertOptions();\n this.recreateWrapper();\n this.wrapper.setOptions(this.options);\n this.wrapper.setDataTable(dt);\n this.wrapper.draw(this.HTMLel);\n });\n }\n getDataTable() {\n return this.dataTable;\n }\n draw(value) {\n if (value === undefined) {\n value = this.data;\n }\n this.options = value.options;\n this.dataTable.init(value);\n }\n getSelectorBySeriesType(seriesType) {\n const selectors = {\n bars: 'bar#%s#%r',\n haxis: 'hAxis#0#label',\n line: 'point#%s#%r',\n legend: 'legendentry#%s',\n area: 'point#%s#%r'\n };\n const selector = selectors[seriesType];\n return selector;\n }\n /**\n * Given a column number, counts how many\n * columns have rol==\"data\". Those are mapped\n * one-to-one to the series array. When rol is not defined\n * a column of type number means a series column.\n * @param column to inspect\n */\n getSeriesByColumn(column) {\n let series = 0;\n const dataTable = this.wrapper.getDataTable();\n for (let i = column - 1; i >= 0; i--) {\n const role = dataTable.getColumnRole(i);\n const type = dataTable.getColumnType(i);\n if (role === 'data' || type === 'number') {\n series++;\n }\n }\n return series;\n }\n getBoundingBoxForItem(item) {\n let boundingBox = { top: 0, left: 0, width: 0, height: 0 };\n if (this.cli) {\n const column = item.column;\n const series = this.getSeriesByColumn(column);\n const row = item.row;\n let seriesType = this.options.seriesType;\n if (this.options.series && this.options.series[series] && this.options.series[series].type) {\n seriesType = this.options.series[series].type;\n }\n if (seriesType) {\n let selector = this.getSelectorBySeriesType(seriesType);\n if (selector) {\n selector = selector.replace('%s', series + '').replace('%c', column + '').replace('%r', row + '');\n const box = this.cli.getBoundingBox(selector);\n if (box) {\n boundingBox = box;\n }\n }\n }\n }\n return boundingBox;\n }\n getValueAtPosition(position) {\n if (position.row == null) {\n return null;\n }\n const dataTable = this.wrapper.getDataTable();\n const value = dataTable.getValue(position.row, position.column);\n return value;\n }\n getColumnTypeAtPosition(position) {\n const dataTable = this.wrapper.getDataTable();\n const type = dataTable.getColumnType(position.column) || '';\n return type;\n }\n getColumnLabelAtPosition(position) {\n const dataTable = this.wrapper.getDataTable();\n const type = dataTable.getColumnLabel(position.column) || '';\n return type;\n }\n getHTMLTooltip() {\n const tooltipER = new ElementRef(this.el.nativeElement.querySelector('.google-visualization-tooltip'));\n return new ChartHTMLTooltip(tooltipER);\n }\n parseMouseEvent(item) {\n const chartType = this.wrapper.getChartType();\n let eventColumn = item.column;\n if (eventColumn == null) {\n switch (chartType) {\n case 'Timeline':\n eventColumn = this.wrapper.getDataTable().getNumberOfColumns() === 3 ? 0 : 1;\n break;\n default:\n eventColumn = 0;\n }\n }\n const eventRow = item.row;\n const myItem = {\n row: eventRow,\n column: eventColumn\n };\n const event = {\n position: item,\n boundingBox: this.getBoundingBoxForItem(myItem),\n value: this.getValueAtPosition(myItem),\n columnType: this.getColumnTypeAtPosition(myItem),\n columnLabel: this.getColumnLabelAtPosition(myItem)\n };\n return event;\n }\n registerChartEvents() {\n const chart = this.wrapper.getChart();\n this.cli = chart.getChartLayoutInterface ? chart.getChartLayoutInterface() : null;\n if (this.mouseOver.observers.length > 0) {\n google.visualization.events.addListener(chart, 'onmouseover', (item) => {\n const event = this.parseMouseEvent(item);\n event.tooltip = this.getHTMLTooltip();\n this.mouseOver.emit(event);\n });\n }\n if (this.mouseOverOneTime.observers.length > 0) {\n google.visualization.events.addOneTimeListener(chart, 'onmouseover', (item) => {\n const event = this.parseMouseEvent(item);\n event.tooltip = this.getHTMLTooltip();\n this.mouseOverOneTime.emit(event);\n });\n }\n if (this.mouseOut.observers.length > 0) {\n google.visualization.events.addListener(chart, 'onmouseout', (item) => {\n const event = this.parseMouseEvent(item);\n this.mouseOut.emit(event);\n });\n }\n if (this.mouseOutOneTime.observers.length > 0) {\n google.visualization.events.addOneTimeListener(chart, 'onmouseout', (item) => {\n const event = this.parseMouseEvent(item);\n this.mouseOutOneTime.emit(event);\n });\n }\n if (this.data.chartType === 'GeoChart') {\n if (this.regionClick.observers.length > 0) {\n google.visualization.events.addListener(chart, 'regionClick', (item) => {\n this.regionClick.emit(item);\n });\n }\n if (this.regionClickOneTime.observers.length > 0) {\n google.visualization.events.addOneTimeListener(chart, 'regionClick', (item) => {\n this.regionClick.emit(item);\n });\n }\n }\n }\n registerChartWrapperEvents() {\n google.visualization.events.addListener(this.wrapper, 'ready', () => {\n this.chartReady.emit({ message: 'Chart ready' });\n });\n google.visualization.events.addOneTimeListener(this.wrapper, 'ready', () => {\n this.chartReadyOneTime.emit({ message: 'Chart ready (one time)' });\n this.registerChartEvents();\n });\n google.visualization.events.addListener(this.wrapper, 'error', (error) => {\n this.chartError.emit(error);\n });\n google.visualization.events.addOneTimeListener(this.wrapper, 'error', (error) => {\n this.chartErrorOneTime.emit(error);\n });\n this.addListener(this.wrapper, 'select', this.selectListener, this.chartSelect);\n this.addOneTimeListener(this.wrapper, 'select', this.selectListener, this.chartSelectOneTime);\n }\n addListener(source, eventType, listenerFn, evEmitter) {\n google.visualization.events.addListener(source, eventType, () => {\n evEmitter.emit(listenerFn());\n });\n }\n addOneTimeListener(source, eventType, listenerFn, evEmitter) {\n google.visualization.events.addOneTimeListener(source, eventType, () => {\n evEmitter.emit(listenerFn());\n });\n }\n convertOptions() {\n try {\n this.options = google.charts[this.data.chartType].convertOptions(this.options);\n }\n catch (error) {\n return;\n }\n }\n}\nGoogleChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.14\", ngImport: i0, type: GoogleChartComponent, deps: [{ token: i0.ElementRef }, { token: GoogleChartsLoaderService }], target: i0.ɵɵFactoryTarget.Component });\nGoogleChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.14\", type: GoogleChartComponent, selector: \"google-chart\", inputs: { data: \"data\" }, outputs: { chartReady: \"chartReady\", chartReadyOneTime: \"chartReadyOneTime\", chartError: \"chartError\", chartErrorOneTime: \"chartErrorOneTime\", chartSelect: \"chartSelect\", chartSelectOneTime: \"chartSelectOneTime\", mouseOver: \"mouseOver\", mouseOverOneTime: \"mouseOverOneTime\", mouseOut: \"mouseOut\", mouseOutOneTime: \"mouseOutOneTime\", regionClick: \"regionClick\", regionClickOneTime: \"regionClickOneTime\" }, ngImport: i0, template: '
', isInline: true });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.14\", ngImport: i0, type: GoogleChartComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'google-chart',\n template: '
',\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: GoogleChartsLoaderService }]; }, propDecorators: { data: [{\n type: Input\n }], chartReady: [{\n type: Output\n }], chartReadyOneTime: [{\n type: Output\n }], chartError: [{\n type: Output\n }], chartErrorOneTime: [{\n type: Output\n }], chartSelect: [{\n type: Output\n }], chartSelectOneTime: [{\n type: Output\n }], mouseOver: [{\n type: Output\n }], mouseOverOneTime: [{\n type: Output\n }], mouseOut: [{\n type: Output\n }], mouseOutOneTime: [{\n type: Output\n }], regionClick: [{\n type: Output\n }], regionClickOneTime: [{\n type: Output\n }] } });\n\nclass GoogleChartsDashboardComponent {\n constructor(el, loaderService) {\n this.el = el;\n this.loaderService = loaderService;\n this.el = el;\n this.loaderService = loaderService;\n }\n ngOnInit() {\n this.data.component = this;\n this.init().then(() => {\n if (!this.dataTable) {\n this.dataTable = new GoogleChartsDataTable(this.data);\n this.dataTable.dataTableChanged.subscribe((dt) => {\n this._draw();\n });\n }\n this.draw();\n });\n }\n init() {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.loaderService.load({ packages: ['controls'] });\n this.dashboard = new google.visualization.Dashboard(this.el.nativeElement.querySelector('div'));\n for (const b of this.data.bind) {\n let controls = b[0];\n let charts = b[1];\n if (!(controls instanceof Array)) {\n controls = [controls];\n }\n if (!(charts instanceof Array)) {\n charts = [charts];\n }\n for (const c of controls) {\n yield c.component.ensureInit();\n }\n for (const c of charts) {\n if (!c.component) {\n continue;\n }\n yield c.component.init();\n const data = c.component.data;\n if (data.dataTable !== undefined || data.dataSourceUrl !== undefined) {\n throw Error('dataTable and dataSourceUrl cannot be specified when ' +\n 'chart is drawn in a Dashboard');\n }\n }\n this.dashboard.bind(controls.map(x => x.component.wrapper), charts.map(x => x.component.wrapper));\n }\n });\n }\n draw(value) {\n this.dataTable.init(value);\n }\n _draw() {\n this.dashboard.draw(this.dataTable.getDataTable());\n }\n}\nGoogleChartsDashboardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.14\", ngImport: i0, type: GoogleChartsDashboardComponent, deps: [{ token: i0.ElementRef }, { token: GoogleChartsLoaderService }], target: i0.ɵɵFactoryTarget.Component });\nGoogleChartsDashboardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.14\", type: GoogleChartsDashboardComponent, selector: \"google-charts-dashboard\", inputs: { data: \"data\" }, ngImport: i0, template: '
', isInline: true });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.14\", ngImport: i0, type: GoogleChartsDashboardComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'google-charts-dashboard',\n template: '
',\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: GoogleChartsLoaderService }]; }, propDecorators: { data: [{\n type: Input\n }] } });\n\nclass GoogleChartsControlComponent {\n constructor(el, loaderService) {\n this.el = el;\n this.loaderService = loaderService;\n this.el = el;\n this.loaderService = loaderService;\n }\n ngOnInit() {\n this.data.component = this;\n }\n ensureInit() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this.wrapper) {\n return;\n }\n yield this.loaderService.load({ packages: ['controls'] });\n let opt;\n opt = Object.create(this.data);\n opt.containerId = this.el.nativeElement.querySelector('div');\n this.wrapper = new google.visualization.ControlWrapper(opt);\n });\n }\n}\nGoogleChartsControlComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.14\", ngImport: i0, type: GoogleChartsControlComponent, deps: [{ token: i0.ElementRef }, { token: GoogleChartsLoaderService }], target: i0.ɵɵFactoryTarget.Component });\nGoogleChartsControlComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.14\", type: GoogleChartsControlComponent, selector: \"google-charts-control\", inputs: { data: \"data\" }, ngImport: i0, template: '
', isInline: true });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.14\", ngImport: i0, type: GoogleChartsControlComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'google-charts-control',\n template: '
',\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: GoogleChartsLoaderService }]; }, propDecorators: { data: [{\n type: Input\n }] } });\n\nclass Ng2GoogleChartsModule {\n}\nNg2GoogleChartsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.14\", ngImport: i0, type: Ng2GoogleChartsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nNg2GoogleChartsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"12.2.14\", ngImport: i0, type: Ng2GoogleChartsModule, declarations: [GoogleChartComponent,\n GoogleChartsDashboardComponent,\n GoogleChartsControlComponent], exports: [GoogleChartComponent,\n GoogleChartsDashboardComponent,\n GoogleChartsControlComponent] });\nNg2GoogleChartsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"12.2.14\", ngImport: i0, type: Ng2GoogleChartsModule, providers: [\n GoogleChartsLoaderService\n ] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.14\", ngImport: i0, type: Ng2GoogleChartsModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [\n GoogleChartComponent,\n GoogleChartsDashboardComponent,\n GoogleChartsControlComponent,\n ],\n providers: [\n GoogleChartsLoaderService\n ],\n exports: [\n GoogleChartComponent,\n GoogleChartsDashboardComponent,\n GoogleChartsControlComponent,\n ]\n }]\n }] });\n\nfunction isComponent(chart) {\n return chart.wrapper !== undefined;\n}\nclass GoogleChartEditor {\n constructor(loaderService) {\n this.loaderService = loaderService;\n }\n createEditor() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this.chartEditor !== undefined) {\n return;\n }\n yield this.loaderService.load({ packages: ['charteditor'] });\n this.chartEditor = new google.visualization.ChartEditor();\n google.visualization.events.addListener(this.chartEditor, 'ok', () => {\n const wrapper = this.chartEditor.getChartWrapper();\n this.comp.wrapper = wrapper;\n this.comp.data.chartType = wrapper.getChartType();\n if (this.comp.data.options !== undefined || Object.isExtensible(this.comp.data)) {\n this.comp.data.options = wrapper.getOptions();\n }\n this.comp.wrapper.draw();\n });\n });\n }\n openDialog(chart, options) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.createEditor();\n return new Promise((resolve, reject) => {\n this.comp = isComponent(chart) ? chart : chart.component;\n google.visualization.events.addListener(this.chartEditor, 'ok', () => {\n resolve(this.comp.wrapper);\n });\n google.visualization.events.addListener(this.chartEditor, 'cancel', () => {\n reject();\n });\n this.chartEditor.openDialog(this.comp.wrapper, options);\n });\n });\n }\n}\nGoogleChartEditor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.14\", ngImport: i0, type: GoogleChartEditor, deps: [{ token: GoogleChartsLoaderService }], target: i0.ɵɵFactoryTarget.Injectable });\nGoogleChartEditor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"12.2.14\", ngImport: i0, type: GoogleChartEditor, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.14\", ngImport: i0, type: GoogleChartEditor, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], ctorParameters: function () { return [{ type: GoogleChartsLoaderService }]; } });\n\n/*\n * Public API Surface of ng2-google-charts\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ChartHTMLTooltip, GoogleChartComponent, GoogleChartEditor, GoogleChartType, GoogleChartsControlComponent, GoogleChartsDashboardComponent, GoogleChartsLoaderService, Ng2GoogleChartsModule };\n","import { Subject } from './Subject';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nexport class BehaviorSubject extends Subject {\n constructor(_value) {\n super();\n this._value = _value;\n }\n get value() {\n return this.getValue();\n }\n _subscribe(subscriber) {\n const subscription = super._subscribe(subscriber);\n if (subscription && !subscription.closed) {\n subscriber.next(this._value);\n }\n return subscription;\n }\n getValue() {\n if (this.hasError) {\n throw this.thrownError;\n }\n else if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else {\n return this._value;\n }\n }\n next(value) {\n super.next(this._value = value);\n }\n}\n","import { Subscriber } from './Subscriber';\nexport class InnerSubscriber extends Subscriber {\n constructor(parent, outerValue, outerIndex) {\n super();\n this.parent = parent;\n this.outerValue = outerValue;\n this.outerIndex = outerIndex;\n this.index = 0;\n }\n _next(value) {\n this.parent.notifyNext(this.outerValue, value, this.outerIndex, this.index++, this);\n }\n _error(error) {\n this.parent.notifyError(error, this);\n this.unsubscribe();\n }\n _complete() {\n this.parent.notifyComplete(this);\n this.unsubscribe();\n }\n}\n","import { empty } from './observable/empty';\nimport { of } from './observable/of';\nimport { throwError } from './observable/throwError';\nexport var NotificationKind;\n(function (NotificationKind) {\n NotificationKind[\"NEXT\"] = \"N\";\n NotificationKind[\"ERROR\"] = \"E\";\n NotificationKind[\"COMPLETE\"] = \"C\";\n})(NotificationKind || (NotificationKind = {}));\nexport class Notification {\n constructor(kind, value, error) {\n this.kind = kind;\n this.value = value;\n this.error = error;\n this.hasValue = kind === 'N';\n }\n observe(observer) {\n switch (this.kind) {\n case 'N':\n return observer.next && observer.next(this.value);\n case 'E':\n return observer.error && observer.error(this.error);\n case 'C':\n return observer.complete && observer.complete();\n }\n }\n do(next, error, complete) {\n const kind = this.kind;\n switch (kind) {\n case 'N':\n return next && next(this.value);\n case 'E':\n return error && error(this.error);\n case 'C':\n return complete && complete();\n }\n }\n accept(nextOrObserver, error, complete) {\n if (nextOrObserver && typeof nextOrObserver.next === 'function') {\n return this.observe(nextOrObserver);\n }\n else {\n return this.do(nextOrObserver, error, complete);\n }\n }\n toObservable() {\n const kind = this.kind;\n switch (kind) {\n case 'N':\n return of(this.value);\n case 'E':\n return throwError(this.error);\n case 'C':\n return empty();\n }\n throw new Error('unexpected notification kind value');\n }\n static createNext(value) {\n if (typeof value !== 'undefined') {\n return new Notification('N', value);\n }\n return Notification.undefinedValueNotification;\n }\n static createError(err) {\n return new Notification('E', undefined, err);\n }\n static createComplete() {\n return Notification.completeNotification;\n }\n}\nNotification.completeNotification = new Notification('C');\nNotification.undefinedValueNotification = new Notification('N', undefined);\n","import { canReportError } from './util/canReportError';\nimport { toSubscriber } from './util/toSubscriber';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nexport class Observable {\n constructor(subscribe) {\n this._isScalar = false;\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n lift(operator) {\n const observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n }\n subscribe(observerOrNext, error, complete) {\n const { operator } = this;\n const sink = toSubscriber(observerOrNext, error, complete);\n if (operator) {\n sink.add(operator.call(sink, this.source));\n }\n else {\n sink.add(this.source || (config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ?\n this._subscribe(sink) :\n this._trySubscribe(sink));\n }\n if (config.useDeprecatedSynchronousErrorHandling) {\n if (sink.syncErrorThrowable) {\n sink.syncErrorThrowable = false;\n if (sink.syncErrorThrown) {\n throw sink.syncErrorValue;\n }\n }\n }\n return sink;\n }\n _trySubscribe(sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n sink.syncErrorThrown = true;\n sink.syncErrorValue = err;\n }\n if (canReportError(sink)) {\n sink.error(err);\n }\n else {\n console.warn(err);\n }\n }\n }\n forEach(next, promiseCtor) {\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor((resolve, reject) => {\n let subscription;\n subscription = this.subscribe((value) => {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n if (subscription) {\n subscription.unsubscribe();\n }\n }\n }, reject, resolve);\n });\n }\n _subscribe(subscriber) {\n const { source } = this;\n return source && source.subscribe(subscriber);\n }\n [Symbol_observable]() {\n return this;\n }\n pipe(...operations) {\n if (operations.length === 0) {\n return this;\n }\n return pipeFromArray(operations)(this);\n }\n toPromise(promiseCtor) {\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor((resolve, reject) => {\n let value;\n this.subscribe((x) => value = x, (err) => reject(err), () => resolve(value));\n });\n }\n}\nObservable.create = (subscribe) => {\n return new Observable(subscribe);\n};\nfunction getPromiseCtor(promiseCtor) {\n if (!promiseCtor) {\n promiseCtor = config.Promise || Promise;\n }\n if (!promiseCtor) {\n throw new Error('no Promise impl found');\n }\n return promiseCtor;\n}\n","import { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nexport const empty = {\n closed: true,\n next(value) { },\n error(err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n },\n complete() { }\n};\n","import { Subscriber } from './Subscriber';\nexport class OuterSubscriber extends Subscriber {\n notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n }\n notifyError(error, innerSub) {\n this.destination.error(error);\n }\n notifyComplete(innerSub) {\n this.destination.complete();\n }\n}\n","import { Subject } from './Subject';\nimport { queue } from './scheduler/queue';\nimport { Subscription } from './Subscription';\nimport { ObserveOnSubscriber } from './operators/observeOn';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\nexport class ReplaySubject extends Subject {\n constructor(bufferSize = Number.POSITIVE_INFINITY, windowTime = Number.POSITIVE_INFINITY, scheduler) {\n super();\n this.scheduler = scheduler;\n this._events = [];\n this._infiniteTimeWindow = false;\n this._bufferSize = bufferSize < 1 ? 1 : bufferSize;\n this._windowTime = windowTime < 1 ? 1 : windowTime;\n if (windowTime === Number.POSITIVE_INFINITY) {\n this._infiniteTimeWindow = true;\n this.next = this.nextInfiniteTimeWindow;\n }\n else {\n this.next = this.nextTimeWindow;\n }\n }\n nextInfiniteTimeWindow(value) {\n const _events = this._events;\n _events.push(value);\n if (_events.length > this._bufferSize) {\n _events.shift();\n }\n super.next(value);\n }\n nextTimeWindow(value) {\n this._events.push(new ReplayEvent(this._getNow(), value));\n this._trimBufferThenGetEvents();\n super.next(value);\n }\n _subscribe(subscriber) {\n const _infiniteTimeWindow = this._infiniteTimeWindow;\n const _events = _infiniteTimeWindow ? this._events : this._trimBufferThenGetEvents();\n const scheduler = this.scheduler;\n const len = _events.length;\n let subscription;\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else if (this.isStopped || this.hasError) {\n subscription = Subscription.EMPTY;\n }\n else {\n this.observers.push(subscriber);\n subscription = new SubjectSubscription(this, subscriber);\n }\n if (scheduler) {\n subscriber.add(subscriber = new ObserveOnSubscriber(subscriber, scheduler));\n }\n if (_infiniteTimeWindow) {\n for (let i = 0; i < len && !subscriber.closed; i++) {\n subscriber.next(_events[i]);\n }\n }\n else {\n for (let i = 0; i < len && !subscriber.closed; i++) {\n subscriber.next(_events[i].value);\n }\n }\n if (this.hasError) {\n subscriber.error(this.thrownError);\n }\n else if (this.isStopped) {\n subscriber.complete();\n }\n return subscription;\n }\n _getNow() {\n return (this.scheduler || queue).now();\n }\n _trimBufferThenGetEvents() {\n const now = this._getNow();\n const _bufferSize = this._bufferSize;\n const _windowTime = this._windowTime;\n const _events = this._events;\n const eventsCount = _events.length;\n let spliceCount = 0;\n while (spliceCount < eventsCount) {\n if ((now - _events[spliceCount].time) < _windowTime) {\n break;\n }\n spliceCount++;\n }\n if (eventsCount > _bufferSize) {\n spliceCount = Math.max(spliceCount, eventsCount - _bufferSize);\n }\n if (spliceCount > 0) {\n _events.splice(0, spliceCount);\n }\n return _events;\n }\n}\nclass ReplayEvent {\n constructor(time, value) {\n this.time = time;\n this.value = value;\n }\n}\n","export class Scheduler {\n constructor(SchedulerAction, now = Scheduler.now) {\n this.SchedulerAction = SchedulerAction;\n this.now = now;\n }\n schedule(work, delay = 0, state) {\n return new this.SchedulerAction(this, work).schedule(state, delay);\n }\n}\nScheduler.now = () => Date.now();\n","import { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nexport class SubjectSubscriber extends Subscriber {\n constructor(destination) {\n super(destination);\n this.destination = destination;\n }\n}\nexport class Subject extends Observable {\n constructor() {\n super();\n this.observers = [];\n this.closed = false;\n this.isStopped = false;\n this.hasError = false;\n this.thrownError = null;\n }\n [rxSubscriberSymbol]() {\n return new SubjectSubscriber(this);\n }\n lift(operator) {\n const subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n }\n next(value) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n if (!this.isStopped) {\n const { observers } = this;\n const len = observers.length;\n const copy = observers.slice();\n for (let i = 0; i < len; i++) {\n copy[i].next(value);\n }\n }\n }\n error(err) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.hasError = true;\n this.thrownError = err;\n this.isStopped = true;\n const { observers } = this;\n const len = observers.length;\n const copy = observers.slice();\n for (let i = 0; i < len; i++) {\n copy[i].error(err);\n }\n this.observers.length = 0;\n }\n complete() {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.isStopped = true;\n const { observers } = this;\n const len = observers.length;\n const copy = observers.slice();\n for (let i = 0; i < len; i++) {\n copy[i].complete();\n }\n this.observers.length = 0;\n }\n unsubscribe() {\n this.isStopped = true;\n this.closed = true;\n this.observers = null;\n }\n _trySubscribe(subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else {\n return super._trySubscribe(subscriber);\n }\n }\n _subscribe(subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else if (this.hasError) {\n subscriber.error(this.thrownError);\n return Subscription.EMPTY;\n }\n else if (this.isStopped) {\n subscriber.complete();\n return Subscription.EMPTY;\n }\n else {\n this.observers.push(subscriber);\n return new SubjectSubscription(this, subscriber);\n }\n }\n asObservable() {\n const observable = new Observable();\n observable.source = this;\n return observable;\n }\n}\nSubject.create = (destination, source) => {\n return new AnonymousSubject(destination, source);\n};\nexport class AnonymousSubject extends Subject {\n constructor(destination, source) {\n super();\n this.destination = destination;\n this.source = source;\n }\n next(value) {\n const { destination } = this;\n if (destination && destination.next) {\n destination.next(value);\n }\n }\n error(err) {\n const { destination } = this;\n if (destination && destination.error) {\n this.destination.error(err);\n }\n }\n complete() {\n const { destination } = this;\n if (destination && destination.complete) {\n this.destination.complete();\n }\n }\n _subscribe(subscriber) {\n const { source } = this;\n if (source) {\n return this.source.subscribe(subscriber);\n }\n else {\n return Subscription.EMPTY;\n }\n }\n}\n","import { Subscription } from './Subscription';\nexport class SubjectSubscription extends Subscription {\n constructor(subject, subscriber) {\n super();\n this.subject = subject;\n this.subscriber = subscriber;\n this.closed = false;\n }\n unsubscribe() {\n if (this.closed) {\n return;\n }\n this.closed = true;\n const subject = this.subject;\n const observers = subject.observers;\n this.subject = null;\n if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {\n return;\n }\n const subscriberIndex = observers.indexOf(this.subscriber);\n if (subscriberIndex !== -1) {\n observers.splice(subscriberIndex, 1);\n }\n }\n}\n","import { isFunction } from './util/isFunction';\nimport { empty as emptyObserver } from './Observer';\nimport { Subscription } from './Subscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nimport { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nexport class Subscriber extends Subscription {\n constructor(destinationOrNext, error, complete) {\n super();\n this.syncErrorValue = null;\n this.syncErrorThrown = false;\n this.syncErrorThrowable = false;\n this.isStopped = false;\n switch (arguments.length) {\n case 0:\n this.destination = emptyObserver;\n break;\n case 1:\n if (!destinationOrNext) {\n this.destination = emptyObserver;\n break;\n }\n if (typeof destinationOrNext === 'object') {\n if (destinationOrNext instanceof Subscriber) {\n this.syncErrorThrowable = destinationOrNext.syncErrorThrowable;\n this.destination = destinationOrNext;\n destinationOrNext.add(this);\n }\n else {\n this.syncErrorThrowable = true;\n this.destination = new SafeSubscriber(this, destinationOrNext);\n }\n break;\n }\n default:\n this.syncErrorThrowable = true;\n this.destination = new SafeSubscriber(this, destinationOrNext, error, complete);\n break;\n }\n }\n [rxSubscriberSymbol]() { return this; }\n static create(next, error, complete) {\n const subscriber = new Subscriber(next, error, complete);\n subscriber.syncErrorThrowable = false;\n return subscriber;\n }\n next(value) {\n if (!this.isStopped) {\n this._next(value);\n }\n }\n error(err) {\n if (!this.isStopped) {\n this.isStopped = true;\n this._error(err);\n }\n }\n complete() {\n if (!this.isStopped) {\n this.isStopped = true;\n this._complete();\n }\n }\n unsubscribe() {\n if (this.closed) {\n return;\n }\n this.isStopped = true;\n super.unsubscribe();\n }\n _next(value) {\n this.destination.next(value);\n }\n _error(err) {\n this.destination.error(err);\n this.unsubscribe();\n }\n _complete() {\n this.destination.complete();\n this.unsubscribe();\n }\n _unsubscribeAndRecycle() {\n const { _parentOrParents } = this;\n this._parentOrParents = null;\n this.unsubscribe();\n this.closed = false;\n this.isStopped = false;\n this._parentOrParents = _parentOrParents;\n return this;\n }\n}\nexport class SafeSubscriber extends Subscriber {\n constructor(_parentSubscriber, observerOrNext, error, complete) {\n super();\n this._parentSubscriber = _parentSubscriber;\n let next;\n let context = this;\n if (isFunction(observerOrNext)) {\n next = observerOrNext;\n }\n else if (observerOrNext) {\n next = observerOrNext.next;\n error = observerOrNext.error;\n complete = observerOrNext.complete;\n if (observerOrNext !== emptyObserver) {\n context = Object.create(observerOrNext);\n if (isFunction(context.unsubscribe)) {\n this.add(context.unsubscribe.bind(context));\n }\n context.unsubscribe = this.unsubscribe.bind(this);\n }\n }\n this._context = context;\n this._next = next;\n this._error = error;\n this._complete = complete;\n }\n next(value) {\n if (!this.isStopped && this._next) {\n const { _parentSubscriber } = this;\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._next, value);\n }\n else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {\n this.unsubscribe();\n }\n }\n }\n error(err) {\n if (!this.isStopped) {\n const { _parentSubscriber } = this;\n const { useDeprecatedSynchronousErrorHandling } = config;\n if (this._error) {\n if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._error, err);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, this._error, err);\n this.unsubscribe();\n }\n }\n else if (!_parentSubscriber.syncErrorThrowable) {\n this.unsubscribe();\n if (useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n hostReportError(err);\n }\n else {\n if (useDeprecatedSynchronousErrorHandling) {\n _parentSubscriber.syncErrorValue = err;\n _parentSubscriber.syncErrorThrown = true;\n }\n else {\n hostReportError(err);\n }\n this.unsubscribe();\n }\n }\n }\n complete() {\n if (!this.isStopped) {\n const { _parentSubscriber } = this;\n if (this._complete) {\n const wrappedComplete = () => this._complete.call(this._context);\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(wrappedComplete);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, wrappedComplete);\n this.unsubscribe();\n }\n }\n else {\n this.unsubscribe();\n }\n }\n }\n __tryOrUnsub(fn, value) {\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n this.unsubscribe();\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n }\n }\n __tryOrSetError(parent, fn, value) {\n if (!config.useDeprecatedSynchronousErrorHandling) {\n throw new Error('bad call');\n }\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n parent.syncErrorValue = err;\n parent.syncErrorThrown = true;\n return true;\n }\n else {\n hostReportError(err);\n return true;\n }\n }\n return false;\n }\n _unsubscribe() {\n const { _parentSubscriber } = this;\n this._context = null;\n this._parentSubscriber = null;\n _parentSubscriber.unsubscribe();\n }\n}\n","import { isArray } from './util/isArray';\nimport { isObject } from './util/isObject';\nimport { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nexport class Subscription {\n constructor(unsubscribe) {\n this.closed = false;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (unsubscribe) {\n this._unsubscribe = unsubscribe;\n }\n }\n unsubscribe() {\n let errors;\n if (this.closed) {\n return;\n }\n let { _parentOrParents, _unsubscribe, _subscriptions } = this;\n this.closed = true;\n this._parentOrParents = null;\n this._subscriptions = null;\n if (_parentOrParents instanceof Subscription) {\n _parentOrParents.remove(this);\n }\n else if (_parentOrParents !== null) {\n for (let index = 0; index < _parentOrParents.length; ++index) {\n const parent = _parentOrParents[index];\n parent.remove(this);\n }\n }\n if (isFunction(_unsubscribe)) {\n try {\n _unsubscribe.call(this);\n }\n catch (e) {\n errors = e instanceof UnsubscriptionError ? flattenUnsubscriptionErrors(e.errors) : [e];\n }\n }\n if (isArray(_subscriptions)) {\n let index = -1;\n let len = _subscriptions.length;\n while (++index < len) {\n const sub = _subscriptions[index];\n if (isObject(sub)) {\n try {\n sub.unsubscribe();\n }\n catch (e) {\n errors = errors || [];\n if (e instanceof UnsubscriptionError) {\n errors = errors.concat(flattenUnsubscriptionErrors(e.errors));\n }\n else {\n errors.push(e);\n }\n }\n }\n }\n }\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n add(teardown) {\n let subscription = teardown;\n if (!teardown) {\n return Subscription.EMPTY;\n }\n switch (typeof teardown) {\n case 'function':\n subscription = new Subscription(teardown);\n case 'object':\n if (subscription === this || subscription.closed || typeof subscription.unsubscribe !== 'function') {\n return subscription;\n }\n else if (this.closed) {\n subscription.unsubscribe();\n return subscription;\n }\n else if (!(subscription instanceof Subscription)) {\n const tmp = subscription;\n subscription = new Subscription();\n subscription._subscriptions = [tmp];\n }\n break;\n default: {\n throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');\n }\n }\n let { _parentOrParents } = subscription;\n if (_parentOrParents === null) {\n subscription._parentOrParents = this;\n }\n else if (_parentOrParents instanceof Subscription) {\n if (_parentOrParents === this) {\n return subscription;\n }\n subscription._parentOrParents = [_parentOrParents, this];\n }\n else if (_parentOrParents.indexOf(this) === -1) {\n _parentOrParents.push(this);\n }\n else {\n return subscription;\n }\n const subscriptions = this._subscriptions;\n if (subscriptions === null) {\n this._subscriptions = [subscription];\n }\n else {\n subscriptions.push(subscription);\n }\n return subscription;\n }\n remove(subscription) {\n const subscriptions = this._subscriptions;\n if (subscriptions) {\n const subscriptionIndex = subscriptions.indexOf(subscription);\n if (subscriptionIndex !== -1) {\n subscriptions.splice(subscriptionIndex, 1);\n }\n }\n }\n}\nSubscription.EMPTY = (function (empty) {\n empty.closed = true;\n return empty;\n}(new Subscription()));\nfunction flattenUnsubscriptionErrors(errors) {\n return errors.reduce((errs, err) => errs.concat((err instanceof UnsubscriptionError) ? err.errors : err), []);\n}\n","let _enable_super_gross_mode_that_will_cause_bad_things = false;\nexport const config = {\n Promise: undefined,\n set useDeprecatedSynchronousErrorHandling(value) {\n if (value) {\n const error = new Error();\n console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n' + error.stack);\n }\n else if (_enable_super_gross_mode_that_will_cause_bad_things) {\n console.log('RxJS: Back to a better error behavior. Thank you. <3');\n }\n _enable_super_gross_mode_that_will_cause_bad_things = value;\n },\n get useDeprecatedSynchronousErrorHandling() {\n return _enable_super_gross_mode_that_will_cause_bad_things;\n },\n};\n","import { SubjectSubscriber } from '../Subject';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { refCount as higherOrderRefCount } from '../operators/refCount';\nexport class ConnectableObservable extends Observable {\n constructor(source, subjectFactory) {\n super();\n this.source = source;\n this.subjectFactory = subjectFactory;\n this._refCount = 0;\n this._isComplete = false;\n }\n _subscribe(subscriber) {\n return this.getSubject().subscribe(subscriber);\n }\n getSubject() {\n const subject = this._subject;\n if (!subject || subject.isStopped) {\n this._subject = this.subjectFactory();\n }\n return this._subject;\n }\n connect() {\n let connection = this._connection;\n if (!connection) {\n this._isComplete = false;\n connection = this._connection = new Subscription();\n connection.add(this.source\n .subscribe(new ConnectableSubscriber(this.getSubject(), this)));\n if (connection.closed) {\n this._connection = null;\n connection = Subscription.EMPTY;\n }\n }\n return connection;\n }\n refCount() {\n return higherOrderRefCount()(this);\n }\n}\nexport const connectableObservableDescriptor = (() => {\n const connectableProto = ConnectableObservable.prototype;\n return {\n operator: { value: null },\n _refCount: { value: 0, writable: true },\n _subject: { value: null, writable: true },\n _connection: { value: null, writable: true },\n _subscribe: { value: connectableProto._subscribe },\n _isComplete: { value: connectableProto._isComplete, writable: true },\n getSubject: { value: connectableProto.getSubject },\n connect: { value: connectableProto.connect },\n refCount: { value: connectableProto.refCount }\n };\n})();\nclass ConnectableSubscriber extends SubjectSubscriber {\n constructor(destination, connectable) {\n super(destination);\n this.connectable = connectable;\n }\n _error(err) {\n this._unsubscribe();\n super._error(err);\n }\n _complete() {\n this.connectable._isComplete = true;\n this._unsubscribe();\n super._complete();\n }\n _unsubscribe() {\n const connectable = this.connectable;\n if (connectable) {\n this.connectable = null;\n const connection = connectable._connection;\n connectable._refCount = 0;\n connectable._subject = null;\n connectable._connection = null;\n if (connection) {\n connection.unsubscribe();\n }\n }\n }\n}\nclass RefCountOperator {\n constructor(connectable) {\n this.connectable = connectable;\n }\n call(subscriber, source) {\n const { connectable } = this;\n connectable._refCount++;\n const refCounter = new RefCountSubscriber(subscriber, connectable);\n const subscription = source.subscribe(refCounter);\n if (!refCounter.closed) {\n refCounter.connection = connectable.connect();\n }\n return subscription;\n }\n}\nclass RefCountSubscriber extends Subscriber {\n constructor(destination, connectable) {\n super(destination);\n this.connectable = connectable;\n }\n _unsubscribe() {\n const { connectable } = this;\n if (!connectable) {\n this.connection = null;\n return;\n }\n this.connectable = null;\n const refCount = connectable._refCount;\n if (refCount <= 0) {\n this.connection = null;\n return;\n }\n connectable._refCount = refCount - 1;\n if (refCount > 1) {\n this.connection = null;\n return;\n }\n const { connection } = this;\n const sharedConnection = connectable._connection;\n this.connection = null;\n if (sharedConnection && (!connection || sharedConnection === connection)) {\n sharedConnection.unsubscribe();\n }\n }\n}\n","import { isScheduler } from '../util/isScheduler';\nimport { isArray } from '../util/isArray';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { fromArray } from './fromArray';\nconst NONE = {};\nexport function combineLatest(...observables) {\n let resultSelector = null;\n let scheduler = null;\n if (isScheduler(observables[observables.length - 1])) {\n scheduler = observables.pop();\n }\n if (typeof observables[observables.length - 1] === 'function') {\n resultSelector = observables.pop();\n }\n if (observables.length === 1 && isArray(observables[0])) {\n observables = observables[0];\n }\n return fromArray(observables, scheduler).lift(new CombineLatestOperator(resultSelector));\n}\nexport class CombineLatestOperator {\n constructor(resultSelector) {\n this.resultSelector = resultSelector;\n }\n call(subscriber, source) {\n return source.subscribe(new CombineLatestSubscriber(subscriber, this.resultSelector));\n }\n}\nexport class CombineLatestSubscriber extends OuterSubscriber {\n constructor(destination, resultSelector) {\n super(destination);\n this.resultSelector = resultSelector;\n this.active = 0;\n this.values = [];\n this.observables = [];\n }\n _next(observable) {\n this.values.push(NONE);\n this.observables.push(observable);\n }\n _complete() {\n const observables = this.observables;\n const len = observables.length;\n if (len === 0) {\n this.destination.complete();\n }\n else {\n this.active = len;\n this.toRespond = len;\n for (let i = 0; i < len; i++) {\n const observable = observables[i];\n this.add(subscribeToResult(this, observable, observable, i));\n }\n }\n }\n notifyComplete(unused) {\n if ((this.active -= 1) === 0) {\n this.destination.complete();\n }\n }\n notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n const values = this.values;\n const oldVal = values[outerIndex];\n const toRespond = !this.toRespond\n ? 0\n : oldVal === NONE ? --this.toRespond : this.toRespond;\n values[outerIndex] = innerValue;\n if (toRespond === 0) {\n if (this.resultSelector) {\n this._tryResultSelector(values);\n }\n else {\n this.destination.next(values.slice());\n }\n }\n }\n _tryResultSelector(values) {\n let result;\n try {\n result = this.resultSelector.apply(this, values);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n }\n}\n","import { of } from './of';\nimport { concatAll } from '../operators/concatAll';\nexport function concat(...observables) {\n return concatAll()(of(...observables));\n}\n","import { Observable } from '../Observable';\nimport { from } from './from';\nimport { empty } from './empty';\nexport function defer(observableFactory) {\n return new Observable(subscriber => {\n let input;\n try {\n input = observableFactory();\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n const source = input ? from(input) : empty();\n return source.subscribe(subscriber);\n });\n}\n","import { Observable } from '../Observable';\nexport const EMPTY = new Observable(subscriber => subscriber.complete());\nexport function empty(scheduler) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\nfunction emptyScheduled(scheduler) {\n return new Observable(subscriber => scheduler.schedule(() => subscriber.complete()));\n}\n","import { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { map } from '../operators/map';\nimport { isObject } from '../util/isObject';\nimport { from } from './from';\nexport function forkJoin(...sources) {\n if (sources.length === 1) {\n const first = sources[0];\n if (isArray(first)) {\n return forkJoinInternal(first, null);\n }\n if (isObject(first) && Object.getPrototypeOf(first) === Object.prototype) {\n const keys = Object.keys(first);\n return forkJoinInternal(keys.map(key => first[key]), keys);\n }\n }\n if (typeof sources[sources.length - 1] === 'function') {\n const resultSelector = sources.pop();\n sources = (sources.length === 1 && isArray(sources[0])) ? sources[0] : sources;\n return forkJoinInternal(sources, null).pipe(map((args) => resultSelector(...args)));\n }\n return forkJoinInternal(sources, null);\n}\nfunction forkJoinInternal(sources, keys) {\n return new Observable(subscriber => {\n const len = sources.length;\n if (len === 0) {\n subscriber.complete();\n return;\n }\n const values = new Array(len);\n let completed = 0;\n let emitted = 0;\n for (let i = 0; i < len; i++) {\n const source = from(sources[i]);\n let hasValue = false;\n subscriber.add(source.subscribe({\n next: value => {\n if (!hasValue) {\n hasValue = true;\n emitted++;\n }\n values[i] = value;\n },\n error: err => subscriber.error(err),\n complete: () => {\n completed++;\n if (completed === len || !hasValue) {\n if (emitted === len) {\n subscriber.next(keys ?\n keys.reduce((result, key, i) => (result[key] = values[i], result), {}) :\n values);\n }\n subscriber.complete();\n }\n }\n }));\n }\n });\n}\n","import { Observable } from '../Observable';\nimport { subscribeTo } from '../util/subscribeTo';\nimport { scheduled } from '../scheduled/scheduled';\nexport function from(input, scheduler) {\n if (!scheduler) {\n if (input instanceof Observable) {\n return input;\n }\n return new Observable(subscribeTo(input));\n }\n else {\n return scheduled(input, scheduler);\n }\n}\n","import { Observable } from '../Observable';\nimport { subscribeToArray } from '../util/subscribeToArray';\nimport { scheduleArray } from '../scheduled/scheduleArray';\nexport function fromArray(input, scheduler) {\n if (!scheduler) {\n return new Observable(subscribeToArray(input));\n }\n else {\n return scheduleArray(input, scheduler);\n }\n}\n","import { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { isFunction } from '../util/isFunction';\nimport { map } from '../operators/map';\nconst toString = (() => Object.prototype.toString)();\nexport function fromEvent(target, eventName, options, resultSelector) {\n if (isFunction(options)) {\n resultSelector = options;\n options = undefined;\n }\n if (resultSelector) {\n return fromEvent(target, eventName, options).pipe(map(args => isArray(args) ? resultSelector(...args) : resultSelector(args)));\n }\n return new Observable(subscriber => {\n function handler(e) {\n if (arguments.length > 1) {\n subscriber.next(Array.prototype.slice.call(arguments));\n }\n else {\n subscriber.next(e);\n }\n }\n setupSubscription(target, eventName, handler, subscriber, options);\n });\n}\nfunction setupSubscription(sourceObj, eventName, handler, subscriber, options) {\n let unsubscribe;\n if (isEventTarget(sourceObj)) {\n const source = sourceObj;\n sourceObj.addEventListener(eventName, handler, options);\n unsubscribe = () => source.removeEventListener(eventName, handler, options);\n }\n else if (isJQueryStyleEventEmitter(sourceObj)) {\n const source = sourceObj;\n sourceObj.on(eventName, handler);\n unsubscribe = () => source.off(eventName, handler);\n }\n else if (isNodeStyleEventEmitter(sourceObj)) {\n const source = sourceObj;\n sourceObj.addListener(eventName, handler);\n unsubscribe = () => source.removeListener(eventName, handler);\n }\n else if (sourceObj && sourceObj.length) {\n for (let i = 0, len = sourceObj.length; i < len; i++) {\n setupSubscription(sourceObj[i], eventName, handler, subscriber, options);\n }\n }\n else {\n throw new TypeError('Invalid event target');\n }\n subscriber.add(unsubscribe);\n}\nfunction isNodeStyleEventEmitter(sourceObj) {\n return sourceObj && typeof sourceObj.addListener === 'function' && typeof sourceObj.removeListener === 'function';\n}\nfunction isJQueryStyleEventEmitter(sourceObj) {\n return sourceObj && typeof sourceObj.on === 'function' && typeof sourceObj.off === 'function';\n}\nfunction isEventTarget(sourceObj) {\n return sourceObj && typeof sourceObj.addEventListener === 'function' && typeof sourceObj.removeEventListener === 'function';\n}\n","import { Observable } from '../Observable';\nimport { isScheduler } from '../util/isScheduler';\nimport { mergeAll } from '../operators/mergeAll';\nimport { fromArray } from './fromArray';\nexport function merge(...observables) {\n let concurrent = Number.POSITIVE_INFINITY;\n let scheduler = null;\n let last = observables[observables.length - 1];\n if (isScheduler(last)) {\n scheduler = observables.pop();\n if (observables.length > 1 && typeof observables[observables.length - 1] === 'number') {\n concurrent = observables.pop();\n }\n }\n else if (typeof last === 'number') {\n concurrent = observables.pop();\n }\n if (scheduler === null && observables.length === 1 && observables[0] instanceof Observable) {\n return observables[0];\n }\n return mergeAll(concurrent)(fromArray(observables, scheduler));\n}\n","import { isScheduler } from '../util/isScheduler';\nimport { fromArray } from './fromArray';\nimport { scheduleArray } from '../scheduled/scheduleArray';\nexport function of(...args) {\n let scheduler = args[args.length - 1];\n if (isScheduler(scheduler)) {\n args.pop();\n return scheduleArray(args, scheduler);\n }\n else {\n return fromArray(args);\n }\n}\n","import { isArray } from '../util/isArray';\nimport { fromArray } from './fromArray';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function race(...observables) {\n if (observables.length === 1) {\n if (isArray(observables[0])) {\n observables = observables[0];\n }\n else {\n return observables[0];\n }\n }\n return fromArray(observables, undefined).lift(new RaceOperator());\n}\nexport class RaceOperator {\n call(subscriber, source) {\n return source.subscribe(new RaceSubscriber(subscriber));\n }\n}\nexport class RaceSubscriber extends OuterSubscriber {\n constructor(destination) {\n super(destination);\n this.hasFirst = false;\n this.observables = [];\n this.subscriptions = [];\n }\n _next(observable) {\n this.observables.push(observable);\n }\n _complete() {\n const observables = this.observables;\n const len = observables.length;\n if (len === 0) {\n this.destination.complete();\n }\n else {\n for (let i = 0; i < len && !this.hasFirst; i++) {\n let observable = observables[i];\n let subscription = subscribeToResult(this, observable, observable, i);\n if (this.subscriptions) {\n this.subscriptions.push(subscription);\n }\n this.add(subscription);\n }\n this.observables = null;\n }\n }\n notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n if (!this.hasFirst) {\n this.hasFirst = true;\n for (let i = 0; i < this.subscriptions.length; i++) {\n if (i !== outerIndex) {\n let subscription = this.subscriptions[i];\n subscription.unsubscribe();\n this.remove(subscription);\n }\n }\n this.subscriptions = null;\n }\n this.destination.next(innerValue);\n }\n}\n","import { Observable } from '../Observable';\nexport function throwError(error, scheduler) {\n if (!scheduler) {\n return new Observable(subscriber => subscriber.error(error));\n }\n else {\n return new Observable(subscriber => scheduler.schedule(dispatch, 0, { error, subscriber }));\n }\n}\nfunction dispatch({ error, subscriber }) {\n subscriber.error(error);\n}\n","import { Observable } from '../Observable';\nimport { async } from '../scheduler/async';\nimport { isNumeric } from '../util/isNumeric';\nimport { isScheduler } from '../util/isScheduler';\nexport function timer(dueTime = 0, periodOrScheduler, scheduler) {\n let period = -1;\n if (isNumeric(periodOrScheduler)) {\n period = Number(periodOrScheduler) < 1 && 1 || Number(periodOrScheduler);\n }\n else if (isScheduler(periodOrScheduler)) {\n scheduler = periodOrScheduler;\n }\n if (!isScheduler(scheduler)) {\n scheduler = async;\n }\n return new Observable(subscriber => {\n const due = isNumeric(dueTime)\n ? dueTime\n : (+dueTime - scheduler.now());\n return scheduler.schedule(dispatch, due, {\n index: 0, period, subscriber\n });\n });\n}\nfunction dispatch(state) {\n const { index, period, subscriber } = state;\n subscriber.next(index);\n if (subscriber.closed) {\n return;\n }\n else if (period === -1) {\n return subscriber.complete();\n }\n state.index = index + 1;\n this.schedule(state, period);\n}\n","import { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function audit(durationSelector) {\n return function auditOperatorFunction(source) {\n return source.lift(new AuditOperator(durationSelector));\n };\n}\nclass AuditOperator {\n constructor(durationSelector) {\n this.durationSelector = durationSelector;\n }\n call(subscriber, source) {\n return source.subscribe(new AuditSubscriber(subscriber, this.durationSelector));\n }\n}\nclass AuditSubscriber extends OuterSubscriber {\n constructor(destination, durationSelector) {\n super(destination);\n this.durationSelector = durationSelector;\n this.hasValue = false;\n }\n _next(value) {\n this.value = value;\n this.hasValue = true;\n if (!this.throttled) {\n let duration;\n try {\n const { durationSelector } = this;\n duration = durationSelector(value);\n }\n catch (err) {\n return this.destination.error(err);\n }\n const innerSubscription = subscribeToResult(this, duration);\n if (!innerSubscription || innerSubscription.closed) {\n this.clearThrottle();\n }\n else {\n this.add(this.throttled = innerSubscription);\n }\n }\n }\n clearThrottle() {\n const { value, hasValue, throttled } = this;\n if (throttled) {\n this.remove(throttled);\n this.throttled = null;\n throttled.unsubscribe();\n }\n if (hasValue) {\n this.value = null;\n this.hasValue = false;\n this.destination.next(value);\n }\n }\n notifyNext(outerValue, innerValue, outerIndex, innerIndex) {\n this.clearThrottle();\n }\n notifyComplete() {\n this.clearThrottle();\n }\n}\n","import { async } from '../scheduler/async';\nimport { audit } from './audit';\nimport { timer } from '../observable/timer';\nexport function auditTime(duration, scheduler = async) {\n return audit(() => timer(duration, scheduler));\n}\n","import { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function catchError(selector) {\n return function catchErrorOperatorFunction(source) {\n const operator = new CatchOperator(selector);\n const caught = source.lift(operator);\n return (operator.caught = caught);\n };\n}\nclass CatchOperator {\n constructor(selector) {\n this.selector = selector;\n }\n call(subscriber, source) {\n return source.subscribe(new CatchSubscriber(subscriber, this.selector, this.caught));\n }\n}\nclass CatchSubscriber extends OuterSubscriber {\n constructor(destination, selector, caught) {\n super(destination);\n this.selector = selector;\n this.caught = caught;\n }\n error(err) {\n if (!this.isStopped) {\n let result;\n try {\n result = this.selector(err, this.caught);\n }\n catch (err2) {\n super.error(err2);\n return;\n }\n this._unsubscribeAndRecycle();\n const innerSubscriber = new InnerSubscriber(this, undefined, undefined);\n this.add(innerSubscriber);\n const innerSubscription = subscribeToResult(this, result, undefined, undefined, innerSubscriber);\n if (innerSubscription !== innerSubscriber) {\n this.add(innerSubscription);\n }\n }\n }\n}\n","import { mergeAll } from './mergeAll';\nexport function concatAll() {\n return mergeAll(1);\n}\n","import { mergeMap } from './mergeMap';\nexport function concatMap(project, resultSelector) {\n return mergeMap(project, resultSelector, 1);\n}\n","import { Subscriber } from '../Subscriber';\nimport { async } from '../scheduler/async';\nexport function debounceTime(dueTime, scheduler = async) {\n return (source) => source.lift(new DebounceTimeOperator(dueTime, scheduler));\n}\nclass DebounceTimeOperator {\n constructor(dueTime, scheduler) {\n this.dueTime = dueTime;\n this.scheduler = scheduler;\n }\n call(subscriber, source) {\n return source.subscribe(new DebounceTimeSubscriber(subscriber, this.dueTime, this.scheduler));\n }\n}\nclass DebounceTimeSubscriber extends Subscriber {\n constructor(destination, dueTime, scheduler) {\n super(destination);\n this.dueTime = dueTime;\n this.scheduler = scheduler;\n this.debouncedSubscription = null;\n this.lastValue = null;\n this.hasValue = false;\n }\n _next(value) {\n this.clearDebounce();\n this.lastValue = value;\n this.hasValue = true;\n this.add(this.debouncedSubscription = this.scheduler.schedule(dispatchNext, this.dueTime, this));\n }\n _complete() {\n this.debouncedNext();\n this.destination.complete();\n }\n debouncedNext() {\n this.clearDebounce();\n if (this.hasValue) {\n const { lastValue } = this;\n this.lastValue = null;\n this.hasValue = false;\n this.destination.next(lastValue);\n }\n }\n clearDebounce() {\n const debouncedSubscription = this.debouncedSubscription;\n if (debouncedSubscription !== null) {\n this.remove(debouncedSubscription);\n debouncedSubscription.unsubscribe();\n this.debouncedSubscription = null;\n }\n }\n}\nfunction dispatchNext(subscriber) {\n subscriber.debouncedNext();\n}\n","import { Subscriber } from '../Subscriber';\nexport function defaultIfEmpty(defaultValue = null) {\n return (source) => source.lift(new DefaultIfEmptyOperator(defaultValue));\n}\nclass DefaultIfEmptyOperator {\n constructor(defaultValue) {\n this.defaultValue = defaultValue;\n }\n call(subscriber, source) {\n return source.subscribe(new DefaultIfEmptySubscriber(subscriber, this.defaultValue));\n }\n}\nclass DefaultIfEmptySubscriber extends Subscriber {\n constructor(destination, defaultValue) {\n super(destination);\n this.defaultValue = defaultValue;\n this.isEmpty = true;\n }\n _next(value) {\n this.isEmpty = false;\n this.destination.next(value);\n }\n _complete() {\n if (this.isEmpty) {\n this.destination.next(this.defaultValue);\n }\n this.destination.complete();\n }\n}\n","import { async } from '../scheduler/async';\nimport { isDate } from '../util/isDate';\nimport { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nexport function delay(delay, scheduler = async) {\n const absoluteDelay = isDate(delay);\n const delayFor = absoluteDelay ? (+delay - scheduler.now()) : Math.abs(delay);\n return (source) => source.lift(new DelayOperator(delayFor, scheduler));\n}\nclass DelayOperator {\n constructor(delay, scheduler) {\n this.delay = delay;\n this.scheduler = scheduler;\n }\n call(subscriber, source) {\n return source.subscribe(new DelaySubscriber(subscriber, this.delay, this.scheduler));\n }\n}\nclass DelaySubscriber extends Subscriber {\n constructor(destination, delay, scheduler) {\n super(destination);\n this.delay = delay;\n this.scheduler = scheduler;\n this.queue = [];\n this.active = false;\n this.errored = false;\n }\n static dispatch(state) {\n const source = state.source;\n const queue = source.queue;\n const scheduler = state.scheduler;\n const destination = state.destination;\n while (queue.length > 0 && (queue[0].time - scheduler.now()) <= 0) {\n queue.shift().notification.observe(destination);\n }\n if (queue.length > 0) {\n const delay = Math.max(0, queue[0].time - scheduler.now());\n this.schedule(state, delay);\n }\n else {\n this.unsubscribe();\n source.active = false;\n }\n }\n _schedule(scheduler) {\n this.active = true;\n const destination = this.destination;\n destination.add(scheduler.schedule(DelaySubscriber.dispatch, this.delay, {\n source: this, destination: this.destination, scheduler: scheduler\n }));\n }\n scheduleNotification(notification) {\n if (this.errored === true) {\n return;\n }\n const scheduler = this.scheduler;\n const message = new DelayMessage(scheduler.now() + this.delay, notification);\n this.queue.push(message);\n if (this.active === false) {\n this._schedule(scheduler);\n }\n }\n _next(value) {\n this.scheduleNotification(Notification.createNext(value));\n }\n _error(err) {\n this.errored = true;\n this.queue = [];\n this.destination.error(err);\n this.unsubscribe();\n }\n _complete() {\n this.scheduleNotification(Notification.createComplete());\n this.unsubscribe();\n }\n}\nclass DelayMessage {\n constructor(time, notification) {\n this.time = time;\n this.notification = notification;\n }\n}\n","import { Subscriber } from '../Subscriber';\nexport function filter(predicate, thisArg) {\n return function filterOperatorFunction(source) {\n return source.lift(new FilterOperator(predicate, thisArg));\n };\n}\nclass FilterOperator {\n constructor(predicate, thisArg) {\n this.predicate = predicate;\n this.thisArg = thisArg;\n }\n call(subscriber, source) {\n return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg));\n }\n}\nclass FilterSubscriber extends Subscriber {\n constructor(destination, predicate, thisArg) {\n super(destination);\n this.predicate = predicate;\n this.thisArg = thisArg;\n this.count = 0;\n }\n _next(value) {\n let result;\n try {\n result = this.predicate.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n if (result) {\n this.destination.next(value);\n }\n }\n}\n","import { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nexport function finalize(callback) {\n return (source) => source.lift(new FinallyOperator(callback));\n}\nclass FinallyOperator {\n constructor(callback) {\n this.callback = callback;\n }\n call(subscriber, source) {\n return source.subscribe(new FinallySubscriber(subscriber, this.callback));\n }\n}\nclass FinallySubscriber extends Subscriber {\n constructor(destination, callback) {\n super(destination);\n this.add(new Subscription(callback));\n }\n}\n","import { EmptyError } from '../util/EmptyError';\nimport { filter } from './filter';\nimport { take } from './take';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { identity } from '../util/identity';\nexport function first(predicate, defaultValue) {\n const hasDefaultValue = arguments.length >= 2;\n return (source) => source.pipe(predicate ? filter((v, i) => predicate(v, i, source)) : identity, take(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(() => new EmptyError()));\n}\n","import { EmptyError } from '../util/EmptyError';\nimport { filter } from './filter';\nimport { takeLast } from './takeLast';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { identity } from '../util/identity';\nexport function last(predicate, defaultValue) {\n const hasDefaultValue = arguments.length >= 2;\n return (source) => source.pipe(predicate ? filter((v, i) => predicate(v, i, source)) : identity, takeLast(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(() => new EmptyError()));\n}\n","import { Subscriber } from '../Subscriber';\nexport function map(project, thisArg) {\n return function mapOperation(source) {\n if (typeof project !== 'function') {\n throw new TypeError('argument is not a function. Are you looking for `mapTo()`?');\n }\n return source.lift(new MapOperator(project, thisArg));\n };\n}\nexport class MapOperator {\n constructor(project, thisArg) {\n this.project = project;\n this.thisArg = thisArg;\n }\n call(subscriber, source) {\n return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg));\n }\n}\nclass MapSubscriber extends Subscriber {\n constructor(destination, project, thisArg) {\n super(destination);\n this.project = project;\n this.count = 0;\n this.thisArg = thisArg || this;\n }\n _next(value) {\n let result;\n try {\n result = this.project.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n }\n}\n","import { Subscriber } from '../Subscriber';\nexport function mapTo(value) {\n return (source) => source.lift(new MapToOperator(value));\n}\nclass MapToOperator {\n constructor(value) {\n this.value = value;\n }\n call(subscriber, source) {\n return source.subscribe(new MapToSubscriber(subscriber, this.value));\n }\n}\nclass MapToSubscriber extends Subscriber {\n constructor(destination, value) {\n super(destination);\n this.value = value;\n }\n _next(x) {\n this.destination.next(this.value);\n }\n}\n","import { mergeMap } from './mergeMap';\nimport { identity } from '../util/identity';\nexport function mergeAll(concurrent = Number.POSITIVE_INFINITY) {\n return mergeMap(identity, concurrent);\n}\n","import { subscribeToResult } from '../util/subscribeToResult';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { map } from './map';\nimport { from } from '../observable/from';\nexport function mergeMap(project, resultSelector, concurrent = Number.POSITIVE_INFINITY) {\n if (typeof resultSelector === 'function') {\n return (source) => source.pipe(mergeMap((a, i) => from(project(a, i)).pipe(map((b, ii) => resultSelector(a, b, i, ii))), concurrent));\n }\n else if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return (source) => source.lift(new MergeMapOperator(project, concurrent));\n}\nexport class MergeMapOperator {\n constructor(project, concurrent = Number.POSITIVE_INFINITY) {\n this.project = project;\n this.concurrent = concurrent;\n }\n call(observer, source) {\n return source.subscribe(new MergeMapSubscriber(observer, this.project, this.concurrent));\n }\n}\nexport class MergeMapSubscriber extends OuterSubscriber {\n constructor(destination, project, concurrent = Number.POSITIVE_INFINITY) {\n super(destination);\n this.project = project;\n this.concurrent = concurrent;\n this.hasCompleted = false;\n this.buffer = [];\n this.active = 0;\n this.index = 0;\n }\n _next(value) {\n if (this.active < this.concurrent) {\n this._tryNext(value);\n }\n else {\n this.buffer.push(value);\n }\n }\n _tryNext(value) {\n let result;\n const index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.active++;\n this._innerSub(result, value, index);\n }\n _innerSub(ish, value, index) {\n const innerSubscriber = new InnerSubscriber(this, value, index);\n const destination = this.destination;\n destination.add(innerSubscriber);\n const innerSubscription = subscribeToResult(this, ish, undefined, undefined, innerSubscriber);\n if (innerSubscription !== innerSubscriber) {\n destination.add(innerSubscription);\n }\n }\n _complete() {\n this.hasCompleted = true;\n if (this.active === 0 && this.buffer.length === 0) {\n this.destination.complete();\n }\n this.unsubscribe();\n }\n notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n }\n notifyComplete(innerSub) {\n const buffer = this.buffer;\n this.remove(innerSub);\n this.active--;\n if (buffer.length > 0) {\n this._next(buffer.shift());\n }\n else if (this.active === 0 && this.hasCompleted) {\n this.destination.complete();\n }\n }\n}\n","import { connectableObservableDescriptor } from '../observable/ConnectableObservable';\nexport function multicast(subjectOrSubjectFactory, selector) {\n return function multicastOperatorFunction(source) {\n let subjectFactory;\n if (typeof subjectOrSubjectFactory === 'function') {\n subjectFactory = subjectOrSubjectFactory;\n }\n else {\n subjectFactory = function subjectFactory() {\n return subjectOrSubjectFactory;\n };\n }\n if (typeof selector === 'function') {\n return source.lift(new MulticastOperator(subjectFactory, selector));\n }\n const connectable = Object.create(source, connectableObservableDescriptor);\n connectable.source = source;\n connectable.subjectFactory = subjectFactory;\n return connectable;\n };\n}\nexport class MulticastOperator {\n constructor(subjectFactory, selector) {\n this.subjectFactory = subjectFactory;\n this.selector = selector;\n }\n call(subscriber, source) {\n const { selector } = this;\n const subject = this.subjectFactory();\n const subscription = selector(subject).subscribe(subscriber);\n subscription.add(source.subscribe(subject));\n return subscription;\n }\n}\n","import { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nexport function observeOn(scheduler, delay = 0) {\n return function observeOnOperatorFunction(source) {\n return source.lift(new ObserveOnOperator(scheduler, delay));\n };\n}\nexport class ObserveOnOperator {\n constructor(scheduler, delay = 0) {\n this.scheduler = scheduler;\n this.delay = delay;\n }\n call(subscriber, source) {\n return source.subscribe(new ObserveOnSubscriber(subscriber, this.scheduler, this.delay));\n }\n}\nexport class ObserveOnSubscriber extends Subscriber {\n constructor(destination, scheduler, delay = 0) {\n super(destination);\n this.scheduler = scheduler;\n this.delay = delay;\n }\n static dispatch(arg) {\n const { notification, destination } = arg;\n notification.observe(destination);\n this.unsubscribe();\n }\n scheduleMessage(notification) {\n const destination = this.destination;\n destination.add(this.scheduler.schedule(ObserveOnSubscriber.dispatch, this.delay, new ObserveOnMessage(notification, this.destination)));\n }\n _next(value) {\n this.scheduleMessage(Notification.createNext(value));\n }\n _error(err) {\n this.scheduleMessage(Notification.createError(err));\n this.unsubscribe();\n }\n _complete() {\n this.scheduleMessage(Notification.createComplete());\n this.unsubscribe();\n }\n}\nexport class ObserveOnMessage {\n constructor(notification, destination) {\n this.notification = notification;\n this.destination = destination;\n }\n}\n","import { Subscriber } from '../Subscriber';\nexport function refCount() {\n return function refCountOperatorFunction(source) {\n return source.lift(new RefCountOperator(source));\n };\n}\nclass RefCountOperator {\n constructor(connectable) {\n this.connectable = connectable;\n }\n call(subscriber, source) {\n const { connectable } = this;\n connectable._refCount++;\n const refCounter = new RefCountSubscriber(subscriber, connectable);\n const subscription = source.subscribe(refCounter);\n if (!refCounter.closed) {\n refCounter.connection = connectable.connect();\n }\n return subscription;\n }\n}\nclass RefCountSubscriber extends Subscriber {\n constructor(destination, connectable) {\n super(destination);\n this.connectable = connectable;\n }\n _unsubscribe() {\n const { connectable } = this;\n if (!connectable) {\n this.connection = null;\n return;\n }\n this.connectable = null;\n const refCount = connectable._refCount;\n if (refCount <= 0) {\n this.connection = null;\n return;\n }\n connectable._refCount = refCount - 1;\n if (refCount > 1) {\n this.connection = null;\n return;\n }\n const { connection } = this;\n const sharedConnection = connectable._connection;\n this.connection = null;\n if (sharedConnection && (!connection || sharedConnection === connection)) {\n sharedConnection.unsubscribe();\n }\n }\n}\n","import { Subscriber } from '../Subscriber';\nexport function scan(accumulator, seed) {\n let hasSeed = false;\n if (arguments.length >= 2) {\n hasSeed = true;\n }\n return function scanOperatorFunction(source) {\n return source.lift(new ScanOperator(accumulator, seed, hasSeed));\n };\n}\nclass ScanOperator {\n constructor(accumulator, seed, hasSeed = false) {\n this.accumulator = accumulator;\n this.seed = seed;\n this.hasSeed = hasSeed;\n }\n call(subscriber, source) {\n return source.subscribe(new ScanSubscriber(subscriber, this.accumulator, this.seed, this.hasSeed));\n }\n}\nclass ScanSubscriber extends Subscriber {\n constructor(destination, accumulator, _seed, hasSeed) {\n super(destination);\n this.accumulator = accumulator;\n this._seed = _seed;\n this.hasSeed = hasSeed;\n this.index = 0;\n }\n get seed() {\n return this._seed;\n }\n set seed(value) {\n this.hasSeed = true;\n this._seed = value;\n }\n _next(value) {\n if (!this.hasSeed) {\n this.seed = value;\n this.destination.next(value);\n }\n else {\n return this._tryNext(value);\n }\n }\n _tryNext(value) {\n const index = this.index++;\n let result;\n try {\n result = this.accumulator(this.seed, value, index);\n }\n catch (err) {\n this.destination.error(err);\n }\n this.seed = result;\n this.destination.next(result);\n }\n}\n","import { multicast } from './multicast';\nimport { refCount } from './refCount';\nimport { Subject } from '../Subject';\nfunction shareSubjectFactory() {\n return new Subject();\n}\nexport function share() {\n return (source) => refCount()(multicast(shareSubjectFactory)(source));\n}\n","import { ReplaySubject } from '../ReplaySubject';\nexport function shareReplay(configOrBufferSize, windowTime, scheduler) {\n let config;\n if (configOrBufferSize && typeof configOrBufferSize === 'object') {\n config = configOrBufferSize;\n }\n else {\n config = {\n bufferSize: configOrBufferSize,\n windowTime,\n refCount: false,\n scheduler\n };\n }\n return (source) => source.lift(shareReplayOperator(config));\n}\nfunction shareReplayOperator({ bufferSize = Number.POSITIVE_INFINITY, windowTime = Number.POSITIVE_INFINITY, refCount: useRefCount, scheduler }) {\n let subject;\n let refCount = 0;\n let subscription;\n let hasError = false;\n let isComplete = false;\n return function shareReplayOperation(source) {\n refCount++;\n if (!subject || hasError) {\n hasError = false;\n subject = new ReplaySubject(bufferSize, windowTime, scheduler);\n subscription = source.subscribe({\n next(value) { subject.next(value); },\n error(err) {\n hasError = true;\n subject.error(err);\n },\n complete() {\n isComplete = true;\n subscription = undefined;\n subject.complete();\n },\n });\n }\n const innerSub = subject.subscribe(this);\n this.add(() => {\n refCount--;\n innerSub.unsubscribe();\n if (subscription && !isComplete && useRefCount && refCount === 0) {\n subscription.unsubscribe();\n subscription = undefined;\n subject = undefined;\n }\n });\n };\n}\n","import { concat } from '../observable/concat';\nimport { isScheduler } from '../util/isScheduler';\nexport function startWith(...array) {\n const scheduler = array[array.length - 1];\n if (isScheduler(scheduler)) {\n array.pop();\n return (source) => concat(array, source, scheduler);\n }\n else {\n return (source) => concat(array, source);\n }\n}\n","import { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { map } from './map';\nimport { from } from '../observable/from';\nexport function switchMap(project, resultSelector) {\n if (typeof resultSelector === 'function') {\n return (source) => source.pipe(switchMap((a, i) => from(project(a, i)).pipe(map((b, ii) => resultSelector(a, b, i, ii)))));\n }\n return (source) => source.lift(new SwitchMapOperator(project));\n}\nclass SwitchMapOperator {\n constructor(project) {\n this.project = project;\n }\n call(subscriber, source) {\n return source.subscribe(new SwitchMapSubscriber(subscriber, this.project));\n }\n}\nclass SwitchMapSubscriber extends OuterSubscriber {\n constructor(destination, project) {\n super(destination);\n this.project = project;\n this.index = 0;\n }\n _next(value) {\n let result;\n const index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (error) {\n this.destination.error(error);\n return;\n }\n this._innerSub(result, value, index);\n }\n _innerSub(result, value, index) {\n const innerSubscription = this.innerSubscription;\n if (innerSubscription) {\n innerSubscription.unsubscribe();\n }\n const innerSubscriber = new InnerSubscriber(this, value, index);\n const destination = this.destination;\n destination.add(innerSubscriber);\n this.innerSubscription = subscribeToResult(this, result, undefined, undefined, innerSubscriber);\n if (this.innerSubscription !== innerSubscriber) {\n destination.add(this.innerSubscription);\n }\n }\n _complete() {\n const { innerSubscription } = this;\n if (!innerSubscription || innerSubscription.closed) {\n super._complete();\n }\n this.unsubscribe();\n }\n _unsubscribe() {\n this.innerSubscription = null;\n }\n notifyComplete(innerSub) {\n const destination = this.destination;\n destination.remove(innerSub);\n this.innerSubscription = null;\n if (this.isStopped) {\n super._complete();\n }\n }\n notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n }\n}\n","import { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { empty } from '../observable/empty';\nexport function take(count) {\n return (source) => {\n if (count === 0) {\n return empty();\n }\n else {\n return source.lift(new TakeOperator(count));\n }\n };\n}\nclass TakeOperator {\n constructor(total) {\n this.total = total;\n if (this.total < 0) {\n throw new ArgumentOutOfRangeError;\n }\n }\n call(subscriber, source) {\n return source.subscribe(new TakeSubscriber(subscriber, this.total));\n }\n}\nclass TakeSubscriber extends Subscriber {\n constructor(destination, total) {\n super(destination);\n this.total = total;\n this.count = 0;\n }\n _next(value) {\n const total = this.total;\n const count = ++this.count;\n if (count <= total) {\n this.destination.next(value);\n if (count === total) {\n this.destination.complete();\n this.unsubscribe();\n }\n }\n }\n}\n","import { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { empty } from '../observable/empty';\nexport function takeLast(count) {\n return function takeLastOperatorFunction(source) {\n if (count === 0) {\n return empty();\n }\n else {\n return source.lift(new TakeLastOperator(count));\n }\n };\n}\nclass TakeLastOperator {\n constructor(total) {\n this.total = total;\n if (this.total < 0) {\n throw new ArgumentOutOfRangeError;\n }\n }\n call(subscriber, source) {\n return source.subscribe(new TakeLastSubscriber(subscriber, this.total));\n }\n}\nclass TakeLastSubscriber extends Subscriber {\n constructor(destination, total) {\n super(destination);\n this.total = total;\n this.ring = new Array();\n this.count = 0;\n }\n _next(value) {\n const ring = this.ring;\n const total = this.total;\n const count = this.count++;\n if (ring.length < total) {\n ring.push(value);\n }\n else {\n const index = count % total;\n ring[index] = value;\n }\n }\n _complete() {\n const destination = this.destination;\n let count = this.count;\n if (count > 0) {\n const total = this.count >= this.total ? this.total : this.count;\n const ring = this.ring;\n for (let i = 0; i < total; i++) {\n const idx = (count++) % total;\n destination.next(ring[idx]);\n }\n }\n destination.complete();\n }\n}\n","import { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function takeUntil(notifier) {\n return (source) => source.lift(new TakeUntilOperator(notifier));\n}\nclass TakeUntilOperator {\n constructor(notifier) {\n this.notifier = notifier;\n }\n call(subscriber, source) {\n const takeUntilSubscriber = new TakeUntilSubscriber(subscriber);\n const notifierSubscription = subscribeToResult(takeUntilSubscriber, this.notifier);\n if (notifierSubscription && !takeUntilSubscriber.seenValue) {\n takeUntilSubscriber.add(notifierSubscription);\n return source.subscribe(takeUntilSubscriber);\n }\n return takeUntilSubscriber;\n }\n}\nclass TakeUntilSubscriber extends OuterSubscriber {\n constructor(destination) {\n super(destination);\n this.seenValue = false;\n }\n notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.seenValue = true;\n this.complete();\n }\n notifyComplete() {\n }\n}\n","import { Subscriber } from '../Subscriber';\nexport function takeWhile(predicate, inclusive = false) {\n return (source) => source.lift(new TakeWhileOperator(predicate, inclusive));\n}\nclass TakeWhileOperator {\n constructor(predicate, inclusive) {\n this.predicate = predicate;\n this.inclusive = inclusive;\n }\n call(subscriber, source) {\n return source.subscribe(new TakeWhileSubscriber(subscriber, this.predicate, this.inclusive));\n }\n}\nclass TakeWhileSubscriber extends Subscriber {\n constructor(destination, predicate, inclusive) {\n super(destination);\n this.predicate = predicate;\n this.inclusive = inclusive;\n this.index = 0;\n }\n _next(value) {\n const destination = this.destination;\n let result;\n try {\n result = this.predicate(value, this.index++);\n }\n catch (err) {\n destination.error(err);\n return;\n }\n this.nextOrComplete(value, result);\n }\n nextOrComplete(value, predicateResult) {\n const destination = this.destination;\n if (Boolean(predicateResult)) {\n destination.next(value);\n }\n else {\n if (this.inclusive) {\n destination.next(value);\n }\n destination.complete();\n }\n }\n}\n","import { Subscriber } from '../Subscriber';\nimport { noop } from '../util/noop';\nimport { isFunction } from '../util/isFunction';\nexport function tap(nextOrObserver, error, complete) {\n return function tapOperatorFunction(source) {\n return source.lift(new DoOperator(nextOrObserver, error, complete));\n };\n}\nclass DoOperator {\n constructor(nextOrObserver, error, complete) {\n this.nextOrObserver = nextOrObserver;\n this.error = error;\n this.complete = complete;\n }\n call(subscriber, source) {\n return source.subscribe(new TapSubscriber(subscriber, this.nextOrObserver, this.error, this.complete));\n }\n}\nclass TapSubscriber extends Subscriber {\n constructor(destination, observerOrNext, error, complete) {\n super(destination);\n this._tapNext = noop;\n this._tapError = noop;\n this._tapComplete = noop;\n this._tapError = error || noop;\n this._tapComplete = complete || noop;\n if (isFunction(observerOrNext)) {\n this._context = this;\n this._tapNext = observerOrNext;\n }\n else if (observerOrNext) {\n this._context = observerOrNext;\n this._tapNext = observerOrNext.next || noop;\n this._tapError = observerOrNext.error || noop;\n this._tapComplete = observerOrNext.complete || noop;\n }\n }\n _next(value) {\n try {\n this._tapNext.call(this._context, value);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(value);\n }\n _error(err) {\n try {\n this._tapError.call(this._context, err);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.error(err);\n }\n _complete() {\n try {\n this._tapComplete.call(this._context);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n return this.destination.complete();\n }\n}\n","import { EmptyError } from '../util/EmptyError';\nimport { Subscriber } from '../Subscriber';\nexport function throwIfEmpty(errorFactory = defaultErrorFactory) {\n return (source) => {\n return source.lift(new ThrowIfEmptyOperator(errorFactory));\n };\n}\nclass ThrowIfEmptyOperator {\n constructor(errorFactory) {\n this.errorFactory = errorFactory;\n }\n call(subscriber, source) {\n return source.subscribe(new ThrowIfEmptySubscriber(subscriber, this.errorFactory));\n }\n}\nclass ThrowIfEmptySubscriber extends Subscriber {\n constructor(destination, errorFactory) {\n super(destination);\n this.errorFactory = errorFactory;\n this.hasValue = false;\n }\n _next(value) {\n this.hasValue = true;\n this.destination.next(value);\n }\n _complete() {\n if (!this.hasValue) {\n let err;\n try {\n err = this.errorFactory();\n }\n catch (e) {\n err = e;\n }\n this.destination.error(err);\n }\n else {\n return this.destination.complete();\n }\n }\n}\nfunction defaultErrorFactory() {\n return new EmptyError();\n}\n","import { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function withLatestFrom(...args) {\n return (source) => {\n let project;\n if (typeof args[args.length - 1] === 'function') {\n project = args.pop();\n }\n const observables = args;\n return source.lift(new WithLatestFromOperator(observables, project));\n };\n}\nclass WithLatestFromOperator {\n constructor(observables, project) {\n this.observables = observables;\n this.project = project;\n }\n call(subscriber, source) {\n return source.subscribe(new WithLatestFromSubscriber(subscriber, this.observables, this.project));\n }\n}\nclass WithLatestFromSubscriber extends OuterSubscriber {\n constructor(destination, observables, project) {\n super(destination);\n this.observables = observables;\n this.project = project;\n this.toRespond = [];\n const len = observables.length;\n this.values = new Array(len);\n for (let i = 0; i < len; i++) {\n this.toRespond.push(i);\n }\n for (let i = 0; i < len; i++) {\n let observable = observables[i];\n this.add(subscribeToResult(this, observable, observable, i));\n }\n }\n notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.values[outerIndex] = innerValue;\n const toRespond = this.toRespond;\n if (toRespond.length > 0) {\n const found = toRespond.indexOf(outerIndex);\n if (found !== -1) {\n toRespond.splice(found, 1);\n }\n }\n }\n notifyComplete() {\n }\n _next(value) {\n if (this.toRespond.length === 0) {\n const args = [value, ...this.values];\n if (this.project) {\n this._tryProject(args);\n }\n else {\n this.destination.next(args);\n }\n }\n }\n _tryProject(args) {\n let result;\n try {\n result = this.project.apply(this, args);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n }\n}\n","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function scheduleArray(input, scheduler) {\n return new Observable(subscriber => {\n const sub = new Subscription();\n let i = 0;\n sub.add(scheduler.schedule(function () {\n if (i === input.length) {\n subscriber.complete();\n return;\n }\n subscriber.next(input[i++]);\n if (!subscriber.closed) {\n sub.add(this.schedule());\n }\n }));\n return sub;\n });\n}\n","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nexport function scheduleIterable(input, scheduler) {\n if (!input) {\n throw new Error('Iterable cannot be null');\n }\n return new Observable(subscriber => {\n const sub = new Subscription();\n let iterator;\n sub.add(() => {\n if (iterator && typeof iterator.return === 'function') {\n iterator.return();\n }\n });\n sub.add(scheduler.schedule(() => {\n iterator = input[Symbol_iterator]();\n sub.add(scheduler.schedule(function () {\n if (subscriber.closed) {\n return;\n }\n let value;\n let done;\n try {\n const result = iterator.next();\n value = result.value;\n done = result.done;\n }\n catch (err) {\n subscriber.error(err);\n return;\n }\n if (done) {\n subscriber.complete();\n }\n else {\n subscriber.next(value);\n this.schedule();\n }\n }));\n }));\n return sub;\n });\n}\n","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport function scheduleObservable(input, scheduler) {\n return new Observable(subscriber => {\n const sub = new Subscription();\n sub.add(scheduler.schedule(() => {\n const observable = input[Symbol_observable]();\n sub.add(observable.subscribe({\n next(value) { sub.add(scheduler.schedule(() => subscriber.next(value))); },\n error(err) { sub.add(scheduler.schedule(() => subscriber.error(err))); },\n complete() { sub.add(scheduler.schedule(() => subscriber.complete())); },\n }));\n }));\n return sub;\n });\n}\n","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function schedulePromise(input, scheduler) {\n return new Observable(subscriber => {\n const sub = new Subscription();\n sub.add(scheduler.schedule(() => input.then(value => {\n sub.add(scheduler.schedule(() => {\n subscriber.next(value);\n sub.add(scheduler.schedule(() => subscriber.complete()));\n }));\n }, err => {\n sub.add(scheduler.schedule(() => subscriber.error(err)));\n })));\n return sub;\n });\n}\n","import { scheduleObservable } from './scheduleObservable';\nimport { schedulePromise } from './schedulePromise';\nimport { scheduleArray } from './scheduleArray';\nimport { scheduleIterable } from './scheduleIterable';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isPromise } from '../util/isPromise';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isIterable } from '../util/isIterable';\nexport function scheduled(input, scheduler) {\n if (input != null) {\n if (isInteropObservable(input)) {\n return scheduleObservable(input, scheduler);\n }\n else if (isPromise(input)) {\n return schedulePromise(input, scheduler);\n }\n else if (isArrayLike(input)) {\n return scheduleArray(input, scheduler);\n }\n else if (isIterable(input) || typeof input === 'string') {\n return scheduleIterable(input, scheduler);\n }\n }\n throw new TypeError((input !== null && typeof input || input) + ' is not observable');\n}\n","import { Subscription } from '../Subscription';\nexport class Action extends Subscription {\n constructor(scheduler, work) {\n super();\n }\n schedule(state, delay = 0) {\n return this;\n }\n}\n","import { AsyncAction } from './AsyncAction';\nexport class AnimationFrameAction extends AsyncAction {\n constructor(scheduler, work) {\n super(scheduler, work);\n this.scheduler = scheduler;\n this.work = work;\n }\n requestAsyncId(scheduler, id, delay = 0) {\n if (delay !== null && delay > 0) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n scheduler.actions.push(this);\n return scheduler.scheduled || (scheduler.scheduled = requestAnimationFrame(() => scheduler.flush(null)));\n }\n recycleAsyncId(scheduler, id, delay = 0) {\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return super.recycleAsyncId(scheduler, id, delay);\n }\n if (scheduler.actions.length === 0) {\n cancelAnimationFrame(id);\n scheduler.scheduled = undefined;\n }\n return undefined;\n }\n}\n","import { AsyncScheduler } from './AsyncScheduler';\nexport class AnimationFrameScheduler extends AsyncScheduler {\n flush(action) {\n this.active = true;\n this.scheduled = undefined;\n const { actions } = this;\n let error;\n let index = -1;\n let count = actions.length;\n action = action || actions.shift();\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (++index < count && (action = actions.shift()));\n this.active = false;\n if (error) {\n while (++index < count && (action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n","import { Immediate } from '../util/Immediate';\nimport { AsyncAction } from './AsyncAction';\nexport class AsapAction extends AsyncAction {\n constructor(scheduler, work) {\n super(scheduler, work);\n this.scheduler = scheduler;\n this.work = work;\n }\n requestAsyncId(scheduler, id, delay = 0) {\n if (delay !== null && delay > 0) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n scheduler.actions.push(this);\n return scheduler.scheduled || (scheduler.scheduled = Immediate.setImmediate(scheduler.flush.bind(scheduler, null)));\n }\n recycleAsyncId(scheduler, id, delay = 0) {\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return super.recycleAsyncId(scheduler, id, delay);\n }\n if (scheduler.actions.length === 0) {\n Immediate.clearImmediate(id);\n scheduler.scheduled = undefined;\n }\n return undefined;\n }\n}\n","import { AsyncScheduler } from './AsyncScheduler';\nexport class AsapScheduler extends AsyncScheduler {\n flush(action) {\n this.active = true;\n this.scheduled = undefined;\n const { actions } = this;\n let error;\n let index = -1;\n let count = actions.length;\n action = action || actions.shift();\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (++index < count && (action = actions.shift()));\n this.active = false;\n if (error) {\n while (++index < count && (action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n","import { Action } from './Action';\nexport class AsyncAction extends Action {\n constructor(scheduler, work) {\n super(scheduler, work);\n this.scheduler = scheduler;\n this.work = work;\n this.pending = false;\n }\n schedule(state, delay = 0) {\n if (this.closed) {\n return this;\n }\n this.state = state;\n const id = this.id;\n const scheduler = this.scheduler;\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n this.pending = true;\n this.delay = delay;\n this.id = this.id || this.requestAsyncId(scheduler, this.id, delay);\n return this;\n }\n requestAsyncId(scheduler, id, delay = 0) {\n return setInterval(scheduler.flush.bind(scheduler, this), delay);\n }\n recycleAsyncId(scheduler, id, delay = 0) {\n if (delay !== null && this.delay === delay && this.pending === false) {\n return id;\n }\n clearInterval(id);\n return undefined;\n }\n execute(state, delay) {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n this.pending = false;\n const error = this._execute(state, delay);\n if (error) {\n return error;\n }\n else if (this.pending === false && this.id != null) {\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n }\n _execute(state, delay) {\n let errored = false;\n let errorValue = undefined;\n try {\n this.work(state);\n }\n catch (e) {\n errored = true;\n errorValue = !!e && e || new Error(e);\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n }\n _unsubscribe() {\n const id = this.id;\n const scheduler = this.scheduler;\n const actions = scheduler.actions;\n const index = actions.indexOf(this);\n this.work = null;\n this.state = null;\n this.pending = false;\n this.scheduler = null;\n if (index !== -1) {\n actions.splice(index, 1);\n }\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n this.delay = null;\n }\n}\n","import { Scheduler } from '../Scheduler';\nexport class AsyncScheduler extends Scheduler {\n constructor(SchedulerAction, now = Scheduler.now) {\n super(SchedulerAction, () => {\n if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) {\n return AsyncScheduler.delegate.now();\n }\n else {\n return now();\n }\n });\n this.actions = [];\n this.active = false;\n this.scheduled = undefined;\n }\n schedule(work, delay = 0, state) {\n if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) {\n return AsyncScheduler.delegate.schedule(work, delay, state);\n }\n else {\n return super.schedule(work, delay, state);\n }\n }\n flush(action) {\n const { actions } = this;\n if (this.active) {\n actions.push(action);\n return;\n }\n let error;\n this.active = true;\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (action = actions.shift());\n this.active = false;\n if (error) {\n while (action = actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n","import { AsyncAction } from './AsyncAction';\nexport class QueueAction extends AsyncAction {\n constructor(scheduler, work) {\n super(scheduler, work);\n this.scheduler = scheduler;\n this.work = work;\n }\n schedule(state, delay = 0) {\n if (delay > 0) {\n return super.schedule(state, delay);\n }\n this.delay = delay;\n this.state = state;\n this.scheduler.flush(this);\n return this;\n }\n execute(state, delay) {\n return (delay > 0 || this.closed) ?\n super.execute(state, delay) :\n this._execute(state, delay);\n }\n requestAsyncId(scheduler, id, delay = 0) {\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n return scheduler.flush(this);\n }\n}\n","import { AsyncScheduler } from './AsyncScheduler';\nexport class QueueScheduler extends AsyncScheduler {\n}\n","import { AnimationFrameAction } from './AnimationFrameAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\nexport const animationFrame = new AnimationFrameScheduler(AnimationFrameAction);\n","import { AsapAction } from './AsapAction';\nimport { AsapScheduler } from './AsapScheduler';\nexport const asap = new AsapScheduler(AsapAction);\n","import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\nexport const async = new AsyncScheduler(AsyncAction);\n","import { QueueAction } from './QueueAction';\nimport { QueueScheduler } from './QueueScheduler';\nexport const queue = new QueueScheduler(QueueAction);\n","export function getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nexport const iterator = getSymbolIterator();\nexport const $$iterator = iterator;\n","export const observable = (() => typeof Symbol === 'function' && Symbol.observable || '@@observable')();\n","export const rxSubscriber = (() => typeof Symbol === 'function'\n ? Symbol('rxSubscriber')\n : '@@rxSubscriber_' + Math.random())();\nexport const $$rxSubscriber = rxSubscriber;\n","const ArgumentOutOfRangeErrorImpl = (() => {\n function ArgumentOutOfRangeErrorImpl() {\n Error.call(this);\n this.message = 'argument out of range';\n this.name = 'ArgumentOutOfRangeError';\n return this;\n }\n ArgumentOutOfRangeErrorImpl.prototype = Object.create(Error.prototype);\n return ArgumentOutOfRangeErrorImpl;\n})();\nexport const ArgumentOutOfRangeError = ArgumentOutOfRangeErrorImpl;\n","const EmptyErrorImpl = (() => {\n function EmptyErrorImpl() {\n Error.call(this);\n this.message = 'no elements in sequence';\n this.name = 'EmptyError';\n return this;\n }\n EmptyErrorImpl.prototype = Object.create(Error.prototype);\n return EmptyErrorImpl;\n})();\nexport const EmptyError = EmptyErrorImpl;\n","let nextHandle = 1;\nconst RESOLVED = (() => Promise.resolve())();\nconst activeHandles = {};\nfunction findAndClearHandle(handle) {\n if (handle in activeHandles) {\n delete activeHandles[handle];\n return true;\n }\n return false;\n}\nexport const Immediate = {\n setImmediate(cb) {\n const handle = nextHandle++;\n activeHandles[handle] = true;\n RESOLVED.then(() => findAndClearHandle(handle) && cb());\n return handle;\n },\n clearImmediate(handle) {\n findAndClearHandle(handle);\n },\n};\nexport const TestTools = {\n pending() {\n return Object.keys(activeHandles).length;\n }\n};\n","const ObjectUnsubscribedErrorImpl = (() => {\n function ObjectUnsubscribedErrorImpl() {\n Error.call(this);\n this.message = 'object unsubscribed';\n this.name = 'ObjectUnsubscribedError';\n return this;\n }\n ObjectUnsubscribedErrorImpl.prototype = Object.create(Error.prototype);\n return ObjectUnsubscribedErrorImpl;\n})();\nexport const ObjectUnsubscribedError = ObjectUnsubscribedErrorImpl;\n","const UnsubscriptionErrorImpl = (() => {\n function UnsubscriptionErrorImpl(errors) {\n Error.call(this);\n this.message = errors ?\n `${errors.length} errors occurred during unsubscription:\n${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\\n ')}` : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n return this;\n }\n UnsubscriptionErrorImpl.prototype = Object.create(Error.prototype);\n return UnsubscriptionErrorImpl;\n})();\nexport const UnsubscriptionError = UnsubscriptionErrorImpl;\n","import { Subscriber } from '../Subscriber';\nexport function canReportError(observer) {\n while (observer) {\n const { closed, destination, isStopped } = observer;\n if (closed || isStopped) {\n return false;\n }\n else if (destination && destination instanceof Subscriber) {\n observer = destination;\n }\n else {\n observer = null;\n }\n }\n return true;\n}\n","export function hostReportError(err) {\n setTimeout(() => { throw err; }, 0);\n}\n","export function identity(x) {\n return x;\n}\n","export const isArray = (() => Array.isArray || ((x) => x && typeof x.length === 'number'))();\n","export const isArrayLike = ((x) => x && typeof x.length === 'number' && typeof x !== 'function');\n","export function isDate(value) {\n return value instanceof Date && !isNaN(+value);\n}\n","export function isFunction(x) {\n return typeof x === 'function';\n}\n","import { observable as Symbol_observable } from '../symbol/observable';\nexport function isInteropObservable(input) {\n return input && typeof input[Symbol_observable] === 'function';\n}\n","import { iterator as Symbol_iterator } from '../symbol/iterator';\nexport function isIterable(input) {\n return input && typeof input[Symbol_iterator] === 'function';\n}\n","import { isArray } from './isArray';\nexport function isNumeric(val) {\n return !isArray(val) && (val - parseFloat(val) + 1) >= 0;\n}\n","export function isObject(x) {\n return x !== null && typeof x === 'object';\n}\n","import { Observable } from '../Observable';\nexport function isObservable(obj) {\n return !!obj && (obj instanceof Observable || (typeof obj.lift === 'function' && typeof obj.subscribe === 'function'));\n}\n","export function isPromise(value) {\n return !!value && typeof value.subscribe !== 'function' && typeof value.then === 'function';\n}\n","export function isScheduler(value) {\n return value && typeof value.schedule === 'function';\n}\n","export function noop() { }\n","import { identity } from './identity';\nexport function pipe(...fns) {\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (fns.length === 0) {\n return identity;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce((prev, fn) => fn(prev), input);\n };\n}\n","import { subscribeToArray } from './subscribeToArray';\nimport { subscribeToPromise } from './subscribeToPromise';\nimport { subscribeToIterable } from './subscribeToIterable';\nimport { subscribeToObservable } from './subscribeToObservable';\nimport { isArrayLike } from './isArrayLike';\nimport { isPromise } from './isPromise';\nimport { isObject } from './isObject';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport const subscribeTo = (result) => {\n if (!!result && typeof result[Symbol_observable] === 'function') {\n return subscribeToObservable(result);\n }\n else if (isArrayLike(result)) {\n return subscribeToArray(result);\n }\n else if (isPromise(result)) {\n return subscribeToPromise(result);\n }\n else if (!!result && typeof result[Symbol_iterator] === 'function') {\n return subscribeToIterable(result);\n }\n else {\n const value = isObject(result) ? 'an invalid object' : `'${result}'`;\n const msg = `You provided ${value} where a stream was expected.`\n + ' You can provide an Observable, Promise, Array, or Iterable.';\n throw new TypeError(msg);\n }\n};\n","export const subscribeToArray = (array) => (subscriber) => {\n for (let i = 0, len = array.length; i < len && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n subscriber.complete();\n};\n","import { iterator as Symbol_iterator } from '../symbol/iterator';\nexport const subscribeToIterable = (iterable) => (subscriber) => {\n const iterator = iterable[Symbol_iterator]();\n do {\n const item = iterator.next();\n if (item.done) {\n subscriber.complete();\n break;\n }\n subscriber.next(item.value);\n if (subscriber.closed) {\n break;\n }\n } while (true);\n if (typeof iterator.return === 'function') {\n subscriber.add(() => {\n if (iterator.return) {\n iterator.return();\n }\n });\n }\n return subscriber;\n};\n","import { observable as Symbol_observable } from '../symbol/observable';\nexport const subscribeToObservable = (obj) => (subscriber) => {\n const obs = obj[Symbol_observable]();\n if (typeof obs.subscribe !== 'function') {\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n }\n else {\n return obs.subscribe(subscriber);\n }\n};\n","import { hostReportError } from './hostReportError';\nexport const subscribeToPromise = (promise) => (subscriber) => {\n promise.then((value) => {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, (err) => subscriber.error(err))\n .then(null, hostReportError);\n return subscriber;\n};\n","import { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeTo } from './subscribeTo';\nimport { Observable } from '../Observable';\nexport function subscribeToResult(outerSubscriber, result, outerValue, outerIndex, innerSubscriber = new InnerSubscriber(outerSubscriber, outerValue, outerIndex)) {\n if (innerSubscriber.closed) {\n return undefined;\n }\n if (result instanceof Observable) {\n return result.subscribe(innerSubscriber);\n }\n return subscribeTo(result)(innerSubscriber);\n}\n","import { Subscriber } from '../Subscriber';\nimport { rxSubscriber as rxSubscriberSymbol } from '../symbol/rxSubscriber';\nimport { empty as emptyObserver } from '../Observer';\nexport function toSubscriber(nextOrObserver, error, complete) {\n if (nextOrObserver) {\n if (nextOrObserver instanceof Subscriber) {\n return nextOrObserver;\n }\n if (nextOrObserver[rxSubscriberSymbol]) {\n return nextOrObserver[rxSubscriberSymbol]();\n }\n }\n if (!nextOrObserver && !error && !complete) {\n return new Subscriber(emptyObserver);\n }\n return new Subscriber(nextOrObserver, error, complete);\n}\n","/*!\n* sweetalert2 v11.4.24\n* Released under the MIT License.\n*/\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, global.Sweetalert2 = factory());\n}(this, function () { 'use strict';\n\n const consolePrefix = 'SweetAlert2:';\n /**\n * Filter the unique values into a new array\n * @param arr\n */\n\n const uniqueArray = arr => {\n const result = [];\n\n for (let i = 0; i < arr.length; i++) {\n if (result.indexOf(arr[i]) === -1) {\n result.push(arr[i]);\n }\n }\n\n return result;\n };\n /**\n * Capitalize the first letter of a string\n * @param {string} str\n * @returns {string}\n */\n\n const capitalizeFirstLetter = str => str.charAt(0).toUpperCase() + str.slice(1);\n /**\n * Standardize console warnings\n * @param {string | array} message\n */\n\n const warn = message => {\n console.warn(\"\".concat(consolePrefix, \" \").concat(typeof message === 'object' ? message.join(' ') : message));\n };\n /**\n * Standardize console errors\n * @param {string} message\n */\n\n const error = message => {\n console.error(\"\".concat(consolePrefix, \" \").concat(message));\n };\n /**\n * Private global state for `warnOnce`\n * @type {Array}\n * @private\n */\n\n const previousWarnOnceMessages = [];\n /**\n * Show a console warning, but only if it hasn't already been shown\n * @param {string} message\n */\n\n const warnOnce = message => {\n if (!previousWarnOnceMessages.includes(message)) {\n previousWarnOnceMessages.push(message);\n warn(message);\n }\n };\n /**\n * Show a one-time console warning about deprecated params/methods\n */\n\n const warnAboutDeprecation = (deprecatedParam, useInstead) => {\n warnOnce(\"\\\"\".concat(deprecatedParam, \"\\\" is deprecated and will be removed in the next major release. Please use \\\"\").concat(useInstead, \"\\\" instead.\"));\n };\n /**\n * If `arg` is a function, call it (with no arguments or context) and return the result.\n * Otherwise, just pass the value through\n * @param arg\n */\n\n const callIfFunction = arg => typeof arg === 'function' ? arg() : arg;\n const hasToPromiseFn = arg => arg && typeof arg.toPromise === 'function';\n const asPromise = arg => hasToPromiseFn(arg) ? arg.toPromise() : Promise.resolve(arg);\n const isPromise = arg => arg && Promise.resolve(arg) === arg;\n const getRandomElement = arr => arr[Math.floor(Math.random() * arr.length)];\n\n const defaultParams = {\n title: '',\n titleText: '',\n text: '',\n html: '',\n footer: '',\n icon: undefined,\n iconColor: undefined,\n iconHtml: undefined,\n template: undefined,\n toast: false,\n showClass: {\n popup: 'swal2-show',\n backdrop: 'swal2-backdrop-show',\n icon: 'swal2-icon-show'\n },\n hideClass: {\n popup: 'swal2-hide',\n backdrop: 'swal2-backdrop-hide',\n icon: 'swal2-icon-hide'\n },\n customClass: {},\n target: 'body',\n color: undefined,\n backdrop: true,\n heightAuto: true,\n allowOutsideClick: true,\n allowEscapeKey: true,\n allowEnterKey: true,\n stopKeydownPropagation: true,\n keydownListenerCapture: false,\n showConfirmButton: true,\n showDenyButton: false,\n showCancelButton: false,\n preConfirm: undefined,\n preDeny: undefined,\n confirmButtonText: 'OK',\n confirmButtonAriaLabel: '',\n confirmButtonColor: undefined,\n denyButtonText: 'No',\n denyButtonAriaLabel: '',\n denyButtonColor: undefined,\n cancelButtonText: 'Cancel',\n cancelButtonAriaLabel: '',\n cancelButtonColor: undefined,\n buttonsStyling: true,\n reverseButtons: false,\n focusConfirm: true,\n focusDeny: false,\n focusCancel: false,\n returnFocus: true,\n showCloseButton: false,\n closeButtonHtml: '×',\n closeButtonAriaLabel: 'Close this dialog',\n loaderHtml: '',\n showLoaderOnConfirm: false,\n showLoaderOnDeny: false,\n imageUrl: undefined,\n imageWidth: undefined,\n imageHeight: undefined,\n imageAlt: '',\n timer: undefined,\n timerProgressBar: false,\n width: undefined,\n padding: undefined,\n background: undefined,\n input: undefined,\n inputPlaceholder: '',\n inputLabel: '',\n inputValue: '',\n inputOptions: {},\n inputAutoTrim: true,\n inputAttributes: {},\n inputValidator: undefined,\n returnInputValueOnDeny: false,\n validationMessage: undefined,\n grow: false,\n position: 'center',\n progressSteps: [],\n currentProgressStep: undefined,\n progressStepsDistance: undefined,\n willOpen: undefined,\n didOpen: undefined,\n didRender: undefined,\n willClose: undefined,\n didClose: undefined,\n didDestroy: undefined,\n scrollbarPadding: true\n };\n const updatableParams = ['allowEscapeKey', 'allowOutsideClick', 'background', 'buttonsStyling', 'cancelButtonAriaLabel', 'cancelButtonColor', 'cancelButtonText', 'closeButtonAriaLabel', 'closeButtonHtml', 'color', 'confirmButtonAriaLabel', 'confirmButtonColor', 'confirmButtonText', 'currentProgressStep', 'customClass', 'denyButtonAriaLabel', 'denyButtonColor', 'denyButtonText', 'didClose', 'didDestroy', 'footer', 'hideClass', 'html', 'icon', 'iconColor', 'iconHtml', 'imageAlt', 'imageHeight', 'imageUrl', 'imageWidth', 'preConfirm', 'preDeny', 'progressSteps', 'returnFocus', 'reverseButtons', 'showCancelButton', 'showCloseButton', 'showConfirmButton', 'showDenyButton', 'text', 'title', 'titleText', 'willClose'];\n const deprecatedParams = {};\n const toastIncompatibleParams = ['allowOutsideClick', 'allowEnterKey', 'backdrop', 'focusConfirm', 'focusDeny', 'focusCancel', 'returnFocus', 'heightAuto', 'keydownListenerCapture'];\n /**\n * Is valid parameter\n * @param {string} paramName\n */\n\n const isValidParameter = paramName => {\n return Object.prototype.hasOwnProperty.call(defaultParams, paramName);\n };\n /**\n * Is valid parameter for Swal.update() method\n * @param {string} paramName\n */\n\n const isUpdatableParameter = paramName => {\n return updatableParams.indexOf(paramName) !== -1;\n };\n /**\n * Is deprecated parameter\n * @param {string} paramName\n */\n\n const isDeprecatedParameter = paramName => {\n return deprecatedParams[paramName];\n };\n\n const checkIfParamIsValid = param => {\n if (!isValidParameter(param)) {\n warn(\"Unknown parameter \\\"\".concat(param, \"\\\"\"));\n }\n };\n\n const checkIfToastParamIsValid = param => {\n if (toastIncompatibleParams.includes(param)) {\n warn(\"The parameter \\\"\".concat(param, \"\\\" is incompatible with toasts\"));\n }\n };\n\n const checkIfParamIsDeprecated = param => {\n if (isDeprecatedParameter(param)) {\n warnAboutDeprecation(param, isDeprecatedParameter(param));\n }\n };\n /**\n * Show relevant warnings for given params\n *\n * @param params\n */\n\n\n const showWarningsForParams = params => {\n if (!params.backdrop && params.allowOutsideClick) {\n warn('\"allowOutsideClick\" parameter requires `backdrop` parameter to be set to `true`');\n }\n\n for (const param in params) {\n checkIfParamIsValid(param);\n\n if (params.toast) {\n checkIfToastParamIsValid(param);\n }\n\n checkIfParamIsDeprecated(param);\n }\n };\n\n const swalPrefix = 'swal2-';\n /**\n * @param {string[]} items\n * @returns {object}\n */\n\n const prefix = items => {\n const result = {};\n\n for (const i in items) {\n result[items[i]] = swalPrefix + items[i];\n }\n\n return result;\n };\n const swalClasses = prefix(['container', 'shown', 'height-auto', 'iosfix', 'popup', 'modal', 'no-backdrop', 'no-transition', 'toast', 'toast-shown', 'show', 'hide', 'close', 'title', 'html-container', 'actions', 'confirm', 'deny', 'cancel', 'default-outline', 'footer', 'icon', 'icon-content', 'image', 'input', 'file', 'range', 'select', 'radio', 'checkbox', 'label', 'textarea', 'inputerror', 'input-label', 'validation-message', 'progress-steps', 'active-progress-step', 'progress-step', 'progress-step-line', 'loader', 'loading', 'styled', 'top', 'top-start', 'top-end', 'top-left', 'top-right', 'center', 'center-start', 'center-end', 'center-left', 'center-right', 'bottom', 'bottom-start', 'bottom-end', 'bottom-left', 'bottom-right', 'grow-row', 'grow-column', 'grow-fullscreen', 'rtl', 'timer-progress-bar', 'timer-progress-bar-container', 'scrollbar-measure', 'icon-success', 'icon-warning', 'icon-info', 'icon-question', 'icon-error', 'no-war']);\n const iconTypes = prefix(['success', 'warning', 'info', 'question', 'error']);\n\n /**\n * Gets the popup container which contains the backdrop and the popup itself.\n *\n * @returns {HTMLElement | null}\n */\n\n const getContainer = () => document.body.querySelector(\".\".concat(swalClasses.container));\n /**\n * @param {string} selectorString\n * @returns {HTMLElement | null}\n */\n\n const elementBySelector = selectorString => {\n const container = getContainer();\n return container ? container.querySelector(selectorString) : null;\n };\n /**\n * @param {string} className\n * @returns {HTMLElement | null}\n */\n\n const elementByClass = className => {\n return elementBySelector(\".\".concat(className));\n };\n /**\n * @returns {HTMLElement | null}\n */\n\n\n const getPopup = () => elementByClass(swalClasses.popup);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getIcon = () => elementByClass(swalClasses.icon);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getTitle = () => elementByClass(swalClasses.title);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getHtmlContainer = () => elementByClass(swalClasses['html-container']);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getImage = () => elementByClass(swalClasses.image);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getProgressSteps = () => elementByClass(swalClasses['progress-steps']);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getValidationMessage = () => elementByClass(swalClasses['validation-message']);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getConfirmButton = () => elementBySelector(\".\".concat(swalClasses.actions, \" .\").concat(swalClasses.confirm));\n /**\n * @returns {HTMLElement | null}\n */\n\n const getDenyButton = () => elementBySelector(\".\".concat(swalClasses.actions, \" .\").concat(swalClasses.deny));\n /**\n * @returns {HTMLElement | null}\n */\n\n const getInputLabel = () => elementByClass(swalClasses['input-label']);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getLoader = () => elementBySelector(\".\".concat(swalClasses.loader));\n /**\n * @returns {HTMLElement | null}\n */\n\n const getCancelButton = () => elementBySelector(\".\".concat(swalClasses.actions, \" .\").concat(swalClasses.cancel));\n /**\n * @returns {HTMLElement | null}\n */\n\n const getActions = () => elementByClass(swalClasses.actions);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getFooter = () => elementByClass(swalClasses.footer);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getTimerProgressBar = () => elementByClass(swalClasses['timer-progress-bar']);\n /**\n * @returns {HTMLElement | null}\n */\n\n const getCloseButton = () => elementByClass(swalClasses.close); // https://github.com/jkup/focusable/blob/master/index.js\n\n const focusable = \"\\n a[href],\\n area[href],\\n input:not([disabled]),\\n select:not([disabled]),\\n textarea:not([disabled]),\\n button:not([disabled]),\\n iframe,\\n object,\\n embed,\\n [tabindex=\\\"0\\\"],\\n [contenteditable],\\n audio[controls],\\n video[controls],\\n summary\\n\";\n /**\n * @returns {HTMLElement[]}\n */\n\n const getFocusableElements = () => {\n const focusableElementsWithTabindex = Array.from(getPopup().querySelectorAll('[tabindex]:not([tabindex=\"-1\"]):not([tabindex=\"0\"])')) // sort according to tabindex\n .sort((a, b) => {\n const tabindexA = parseInt(a.getAttribute('tabindex'));\n const tabindexB = parseInt(b.getAttribute('tabindex'));\n\n if (tabindexA > tabindexB) {\n return 1;\n } else if (tabindexA < tabindexB) {\n return -1;\n }\n\n return 0;\n });\n const otherFocusableElements = Array.from(getPopup().querySelectorAll(focusable)).filter(el => el.getAttribute('tabindex') !== '-1');\n return uniqueArray(focusableElementsWithTabindex.concat(otherFocusableElements)).filter(el => isVisible(el));\n };\n /**\n * @returns {boolean}\n */\n\n const isModal = () => {\n return hasClass(document.body, swalClasses.shown) && !hasClass(document.body, swalClasses['toast-shown']) && !hasClass(document.body, swalClasses['no-backdrop']);\n };\n /**\n * @returns {boolean}\n */\n\n const isToast = () => {\n return getPopup() && hasClass(getPopup(), swalClasses.toast);\n };\n /**\n * @returns {boolean}\n */\n\n const isLoading = () => {\n return getPopup().hasAttribute('data-loading');\n };\n\n const states = {\n previousBodyPadding: null\n };\n /**\n * Securely set innerHTML of an element\n * https://github.com/sweetalert2/sweetalert2/issues/1926\n *\n * @param {HTMLElement} elem\n * @param {string} html\n */\n\n const setInnerHtml = (elem, html) => {\n elem.textContent = '';\n\n if (html) {\n const parser = new DOMParser();\n const parsed = parser.parseFromString(html, \"text/html\");\n Array.from(parsed.querySelector('head').childNodes).forEach(child => {\n elem.appendChild(child);\n });\n Array.from(parsed.querySelector('body').childNodes).forEach(child => {\n elem.appendChild(child);\n });\n }\n };\n /**\n * @param {HTMLElement} elem\n * @param {string} className\n * @returns {boolean}\n */\n\n const hasClass = (elem, className) => {\n if (!className) {\n return false;\n }\n\n const classList = className.split(/\\s+/);\n\n for (let i = 0; i < classList.length; i++) {\n if (!elem.classList.contains(classList[i])) {\n return false;\n }\n }\n\n return true;\n };\n /**\n * @param {HTMLElement} elem\n * @param {SweetAlertOptions} params\n */\n\n const removeCustomClasses = (elem, params) => {\n Array.from(elem.classList).forEach(className => {\n if (!Object.values(swalClasses).includes(className) && !Object.values(iconTypes).includes(className) && !Object.values(params.showClass).includes(className)) {\n elem.classList.remove(className);\n }\n });\n };\n /**\n * @param {HTMLElement} elem\n * @param {SweetAlertOptions} params\n * @param {string} className\n */\n\n\n const applyCustomClass = (elem, params, className) => {\n removeCustomClasses(elem, params);\n\n if (params.customClass && params.customClass[className]) {\n if (typeof params.customClass[className] !== 'string' && !params.customClass[className].forEach) {\n return warn(\"Invalid type of customClass.\".concat(className, \"! Expected string or iterable object, got \\\"\").concat(typeof params.customClass[className], \"\\\"\"));\n }\n\n addClass(elem, params.customClass[className]);\n }\n };\n /**\n * @param {HTMLElement} popup\n * @param {import('./renderers/renderInput').InputClass} inputClass\n * @returns {HTMLInputElement | null}\n */\n\n const getInput = (popup, inputClass) => {\n if (!inputClass) {\n return null;\n }\n\n switch (inputClass) {\n case 'select':\n case 'textarea':\n case 'file':\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses[inputClass]));\n\n case 'checkbox':\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.checkbox, \" input\"));\n\n case 'radio':\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.radio, \" input:checked\")) || popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.radio, \" input:first-child\"));\n\n case 'range':\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.range, \" input\"));\n\n default:\n return popup.querySelector(\".\".concat(swalClasses.popup, \" > .\").concat(swalClasses.input));\n }\n };\n /**\n * @param {HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement} input\n */\n\n const focusInput = input => {\n input.focus(); // place cursor at end of text in text input\n\n if (input.type !== 'file') {\n // http://stackoverflow.com/a/2345915\n const val = input.value;\n input.value = '';\n input.value = val;\n }\n };\n /**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[] | readonly string[]} classList\n * @param {boolean} condition\n */\n\n const toggleClass = (target, classList, condition) => {\n if (!target || !classList) {\n return;\n }\n\n if (typeof classList === 'string') {\n classList = classList.split(/\\s+/).filter(Boolean);\n }\n\n classList.forEach(className => {\n if (Array.isArray(target)) {\n target.forEach(elem => {\n condition ? elem.classList.add(className) : elem.classList.remove(className);\n });\n } else {\n condition ? target.classList.add(className) : target.classList.remove(className);\n }\n });\n };\n /**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[] | readonly string[]} classList\n */\n\n const addClass = (target, classList) => {\n toggleClass(target, classList, true);\n };\n /**\n * @param {HTMLElement | HTMLElement[] | null} target\n * @param {string | string[] | readonly string[]} classList\n */\n\n const removeClass = (target, classList) => {\n toggleClass(target, classList, false);\n };\n /**\n * Get direct child of an element by class name\n *\n * @param {HTMLElement} elem\n * @param {string} className\n * @returns {HTMLElement | null}\n */\n\n const getDirectChildByClass = (elem, className) => {\n const children = Array.from(elem.children);\n\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n\n if (child instanceof HTMLElement && hasClass(child, className)) {\n return child;\n }\n }\n };\n /**\n * @param {HTMLElement} elem\n * @param {string} property\n * @param {*} value\n */\n\n const applyNumericalStyle = (elem, property, value) => {\n if (value === \"\".concat(parseInt(value))) {\n value = parseInt(value);\n }\n\n if (value || parseInt(value) === 0) {\n elem.style[property] = typeof value === 'number' ? \"\".concat(value, \"px\") : value;\n } else {\n elem.style.removeProperty(property);\n }\n };\n /**\n * @param {HTMLElement} elem\n * @param {string} display\n */\n\n const show = function (elem) {\n let display = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'flex';\n elem.style.display = display;\n };\n /**\n * @param {HTMLElement} elem\n */\n\n const hide = elem => {\n elem.style.display = 'none';\n };\n /**\n * @param {HTMLElement} parent\n * @param {string} selector\n * @param {string} property\n * @param {string} value\n */\n\n const setStyle = (parent, selector, property, value) => {\n /** @type {HTMLElement} */\n const el = parent.querySelector(selector);\n\n if (el) {\n el.style[property] = value;\n }\n };\n /**\n * @param {HTMLElement} elem\n * @param {any} condition\n * @param {string} display\n */\n\n const toggle = function (elem, condition) {\n let display = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'flex';\n condition ? show(elem, display) : hide(elem);\n };\n /**\n * borrowed from jquery $(elem).is(':visible') implementation\n *\n * @param {HTMLElement} elem\n * @returns {boolean}\n */\n\n const isVisible = elem => !!(elem && (elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length));\n /**\n * @returns {boolean}\n */\n\n const allButtonsAreHidden = () => !isVisible(getConfirmButton()) && !isVisible(getDenyButton()) && !isVisible(getCancelButton());\n /**\n * @returns {boolean}\n */\n\n const isScrollable = elem => !!(elem.scrollHeight > elem.clientHeight);\n /**\n * borrowed from https://stackoverflow.com/a/46352119\n *\n * @param {HTMLElement} elem\n * @returns {boolean}\n */\n\n const hasCssAnimation = elem => {\n const style = window.getComputedStyle(elem);\n const animDuration = parseFloat(style.getPropertyValue('animation-duration') || '0');\n const transDuration = parseFloat(style.getPropertyValue('transition-duration') || '0');\n return animDuration > 0 || transDuration > 0;\n };\n /**\n * @param {number} timer\n * @param {boolean} reset\n */\n\n const animateTimerProgressBar = function (timer) {\n let reset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n const timerProgressBar = getTimerProgressBar();\n\n if (isVisible(timerProgressBar)) {\n if (reset) {\n timerProgressBar.style.transition = 'none';\n timerProgressBar.style.width = '100%';\n }\n\n setTimeout(() => {\n timerProgressBar.style.transition = \"width \".concat(timer / 1000, \"s linear\");\n timerProgressBar.style.width = '0%';\n }, 10);\n }\n };\n const stopTimerProgressBar = () => {\n const timerProgressBar = getTimerProgressBar();\n const timerProgressBarWidth = parseInt(window.getComputedStyle(timerProgressBar).width);\n timerProgressBar.style.removeProperty('transition');\n timerProgressBar.style.width = '100%';\n const timerProgressBarFullWidth = parseInt(window.getComputedStyle(timerProgressBar).width);\n const timerProgressBarPercent = timerProgressBarWidth / timerProgressBarFullWidth * 100;\n timerProgressBar.style.removeProperty('transition');\n timerProgressBar.style.width = \"\".concat(timerProgressBarPercent, \"%\");\n };\n\n /**\n * Detect Node env\n *\n * @returns {boolean}\n */\n const isNodeEnv = () => typeof window === 'undefined' || typeof document === 'undefined';\n\n const RESTORE_FOCUS_TIMEOUT = 100;\n\n /** @type {GlobalState} */\n\n const globalState = {};\n\n const focusPreviousActiveElement = () => {\n if (globalState.previousActiveElement instanceof HTMLElement) {\n globalState.previousActiveElement.focus();\n globalState.previousActiveElement = null;\n } else if (document.body) {\n document.body.focus();\n }\n };\n /**\n * Restore previous active (focused) element\n *\n * @param {boolean} returnFocus\n * @returns {Promise}\n */\n\n\n const restoreActiveElement = returnFocus => {\n return new Promise(resolve => {\n if (!returnFocus) {\n return resolve();\n }\n\n const x = window.scrollX;\n const y = window.scrollY;\n globalState.restoreFocusTimeout = setTimeout(() => {\n focusPreviousActiveElement();\n resolve();\n }, RESTORE_FOCUS_TIMEOUT); // issues/900\n\n window.scrollTo(x, y);\n });\n };\n\n const sweetHTML = \"\\n
\\n \\n
    \\n
    \\n \\n

    \\n
    \\n \\n \\n
    \\n \\n \\n
    \\n \\n
    \\n \\n \\n
    \\n
    \\n
    \\n \\n \\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n\").replace(/(^|\\n)\\s*/g, '');\n /**\n * @returns {boolean}\n */\n\n const resetOldContainer = () => {\n const oldContainer = getContainer();\n\n if (!oldContainer) {\n return false;\n }\n\n oldContainer.remove();\n removeClass([document.documentElement, document.body], [swalClasses['no-backdrop'], swalClasses['toast-shown'], swalClasses['has-column']]);\n return true;\n };\n\n const resetValidationMessage = () => {\n globalState.currentInstance.resetValidationMessage();\n };\n\n const addInputChangeListeners = () => {\n const popup = getPopup();\n const input = getDirectChildByClass(popup, swalClasses.input);\n const file = getDirectChildByClass(popup, swalClasses.file);\n /** @type {HTMLInputElement} */\n\n const range = popup.querySelector(\".\".concat(swalClasses.range, \" input\"));\n /** @type {HTMLOutputElement} */\n\n const rangeOutput = popup.querySelector(\".\".concat(swalClasses.range, \" output\"));\n const select = getDirectChildByClass(popup, swalClasses.select);\n /** @type {HTMLInputElement} */\n\n const checkbox = popup.querySelector(\".\".concat(swalClasses.checkbox, \" input\"));\n const textarea = getDirectChildByClass(popup, swalClasses.textarea);\n input.oninput = resetValidationMessage;\n file.onchange = resetValidationMessage;\n select.onchange = resetValidationMessage;\n checkbox.onchange = resetValidationMessage;\n textarea.oninput = resetValidationMessage;\n\n range.oninput = () => {\n resetValidationMessage();\n rangeOutput.value = range.value;\n };\n\n range.onchange = () => {\n resetValidationMessage();\n rangeOutput.value = range.value;\n };\n };\n /**\n * @param {string | HTMLElement} target\n * @returns {HTMLElement}\n */\n\n\n const getTarget = target => typeof target === 'string' ? document.querySelector(target) : target;\n /**\n * @param {SweetAlertOptions} params\n */\n\n\n const setupAccessibility = params => {\n const popup = getPopup();\n popup.setAttribute('role', params.toast ? 'alert' : 'dialog');\n popup.setAttribute('aria-live', params.toast ? 'polite' : 'assertive');\n\n if (!params.toast) {\n popup.setAttribute('aria-modal', 'true');\n }\n };\n /**\n * @param {HTMLElement} targetElement\n */\n\n\n const setupRTL = targetElement => {\n if (window.getComputedStyle(targetElement).direction === 'rtl') {\n addClass(getContainer(), swalClasses.rtl);\n }\n };\n /**\n * Add modal + backdrop + no-war message for Russians to DOM\n *\n * @param {SweetAlertOptions} params\n */\n\n\n const init = params => {\n // Clean up the old popup container if it exists\n const oldContainerExisted = resetOldContainer();\n /* istanbul ignore if */\n\n if (isNodeEnv()) {\n error('SweetAlert2 requires document to initialize');\n return;\n }\n\n const container = document.createElement('div');\n container.className = swalClasses.container;\n\n if (oldContainerExisted) {\n addClass(container, swalClasses['no-transition']);\n }\n\n setInnerHtml(container, sweetHTML);\n const targetElement = getTarget(params.target);\n targetElement.appendChild(container);\n setupAccessibility(params);\n setupRTL(targetElement);\n addInputChangeListeners();\n };\n\n /**\n * @param {HTMLElement | object | string} param\n * @param {HTMLElement} target\n */\n\n const parseHtmlToContainer = (param, target) => {\n // DOM element\n if (param instanceof HTMLElement) {\n target.appendChild(param);\n } // Object\n else if (typeof param === 'object') {\n handleObject(param, target);\n } // Plain string\n else if (param) {\n setInnerHtml(target, param);\n }\n };\n /**\n * @param {object} param\n * @param {HTMLElement} target\n */\n\n const handleObject = (param, target) => {\n // JQuery element(s)\n if (param.jquery) {\n handleJqueryElem(target, param);\n } // For other objects use their string representation\n else {\n setInnerHtml(target, param.toString());\n }\n };\n /**\n * @param {HTMLElement} target\n * @param {HTMLElement} elem\n */\n\n\n const handleJqueryElem = (target, elem) => {\n target.textContent = '';\n\n if (0 in elem) {\n for (let i = 0; (i in elem); i++) {\n target.appendChild(elem[i].cloneNode(true));\n }\n } else {\n target.appendChild(elem.cloneNode(true));\n }\n };\n\n /**\n * @returns {'webkitAnimationEnd' | 'animationend' | false}\n */\n\n const animationEndEvent = (() => {\n // Prevent run in Node env\n\n /* istanbul ignore if */\n if (isNodeEnv()) {\n return false;\n }\n\n const testEl = document.createElement('div');\n const transEndEventNames = {\n WebkitAnimation: 'webkitAnimationEnd',\n // Chrome, Safari and Opera\n animation: 'animationend' // Standard syntax\n\n };\n\n for (const i in transEndEventNames) {\n if (Object.prototype.hasOwnProperty.call(transEndEventNames, i) && typeof testEl.style[i] !== 'undefined') {\n return transEndEventNames[i];\n }\n }\n\n return false;\n })();\n\n /**\n * Measure scrollbar width for padding body during modal show/hide\n * https://github.com/twbs/bootstrap/blob/master/js/src/modal.js\n *\n * @returns {number}\n */\n\n const measureScrollbar = () => {\n const scrollDiv = document.createElement('div');\n scrollDiv.className = swalClasses['scrollbar-measure'];\n document.body.appendChild(scrollDiv);\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return scrollbarWidth;\n };\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderActions = (instance, params) => {\n const actions = getActions();\n const loader = getLoader(); // Actions (buttons) wrapper\n\n if (!params.showConfirmButton && !params.showDenyButton && !params.showCancelButton) {\n hide(actions);\n } else {\n show(actions);\n } // Custom class\n\n\n applyCustomClass(actions, params, 'actions'); // Render all the buttons\n\n renderButtons(actions, loader, params); // Loader\n\n setInnerHtml(loader, params.loaderHtml);\n applyCustomClass(loader, params, 'loader');\n };\n /**\n * @param {HTMLElement} actions\n * @param {HTMLElement} loader\n * @param {SweetAlertOptions} params\n */\n\n function renderButtons(actions, loader, params) {\n const confirmButton = getConfirmButton();\n const denyButton = getDenyButton();\n const cancelButton = getCancelButton(); // Render buttons\n\n renderButton(confirmButton, 'confirm', params);\n renderButton(denyButton, 'deny', params);\n renderButton(cancelButton, 'cancel', params);\n handleButtonsStyling(confirmButton, denyButton, cancelButton, params);\n\n if (params.reverseButtons) {\n if (params.toast) {\n actions.insertBefore(cancelButton, confirmButton);\n actions.insertBefore(denyButton, confirmButton);\n } else {\n actions.insertBefore(cancelButton, loader);\n actions.insertBefore(denyButton, loader);\n actions.insertBefore(confirmButton, loader);\n }\n }\n }\n /**\n * @param {HTMLElement} confirmButton\n * @param {HTMLElement} denyButton\n * @param {HTMLElement} cancelButton\n * @param {SweetAlertOptions} params\n */\n\n\n function handleButtonsStyling(confirmButton, denyButton, cancelButton, params) {\n if (!params.buttonsStyling) {\n return removeClass([confirmButton, denyButton, cancelButton], swalClasses.styled);\n }\n\n addClass([confirmButton, denyButton, cancelButton], swalClasses.styled); // Buttons background colors\n\n if (params.confirmButtonColor) {\n confirmButton.style.backgroundColor = params.confirmButtonColor;\n addClass(confirmButton, swalClasses['default-outline']);\n }\n\n if (params.denyButtonColor) {\n denyButton.style.backgroundColor = params.denyButtonColor;\n addClass(denyButton, swalClasses['default-outline']);\n }\n\n if (params.cancelButtonColor) {\n cancelButton.style.backgroundColor = params.cancelButtonColor;\n addClass(cancelButton, swalClasses['default-outline']);\n }\n }\n /**\n * @param {HTMLElement} button\n * @param {'confirm' | 'deny' | 'cancel'} buttonType\n * @param {SweetAlertOptions} params\n */\n\n\n function renderButton(button, buttonType, params) {\n toggle(button, params[\"show\".concat(capitalizeFirstLetter(buttonType), \"Button\")], 'inline-block');\n setInnerHtml(button, params[\"\".concat(buttonType, \"ButtonText\")]); // Set caption text\n\n button.setAttribute('aria-label', params[\"\".concat(buttonType, \"ButtonAriaLabel\")]); // ARIA label\n // Add buttons custom classes\n\n button.className = swalClasses[buttonType];\n applyCustomClass(button, params, \"\".concat(buttonType, \"Button\"));\n addClass(button, params[\"\".concat(buttonType, \"ButtonClass\")]);\n }\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderContainer = (instance, params) => {\n const container = getContainer();\n\n if (!container) {\n return;\n }\n\n handleBackdropParam(container, params.backdrop);\n handlePositionParam(container, params.position);\n handleGrowParam(container, params.grow); // Custom class\n\n applyCustomClass(container, params, 'container');\n };\n /**\n * @param {HTMLElement} container\n * @param {SweetAlertOptions['backdrop']} backdrop\n */\n\n function handleBackdropParam(container, backdrop) {\n if (typeof backdrop === 'string') {\n container.style.background = backdrop;\n } else if (!backdrop) {\n addClass([document.documentElement, document.body], swalClasses['no-backdrop']);\n }\n }\n /**\n * @param {HTMLElement} container\n * @param {SweetAlertOptions['position']} position\n */\n\n\n function handlePositionParam(container, position) {\n if (position in swalClasses) {\n addClass(container, swalClasses[position]);\n } else {\n warn('The \"position\" parameter is not valid, defaulting to \"center\"');\n addClass(container, swalClasses.center);\n }\n }\n /**\n * @param {HTMLElement} container\n * @param {SweetAlertOptions['grow']} grow\n */\n\n\n function handleGrowParam(container, grow) {\n if (grow && typeof grow === 'string') {\n const growClass = \"grow-\".concat(grow);\n\n if (growClass in swalClasses) {\n addClass(container, swalClasses[growClass]);\n }\n }\n }\n\n /**\n * This module contains `WeakMap`s for each effectively-\"private property\" that a `Swal` has.\n * For example, to set the private property \"foo\" of `this` to \"bar\", you can `privateProps.foo.set(this, 'bar')`\n * This is the approach that Babel will probably take to implement private methods/fields\n * https://github.com/tc39/proposal-private-methods\n * https://github.com/babel/babel/pull/7555\n * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*\n * then we can use that language feature.\n */\n var privateProps = {\n awaitingPromise: new WeakMap(),\n promise: new WeakMap(),\n innerParams: new WeakMap(),\n domCache: new WeakMap()\n };\n\n /// \n /** @type {InputClass[]} */\n\n const inputClasses = ['input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea'];\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderInput = (instance, params) => {\n const popup = getPopup();\n const innerParams = privateProps.innerParams.get(instance);\n const rerender = !innerParams || params.input !== innerParams.input;\n inputClasses.forEach(inputClass => {\n const inputContainer = getDirectChildByClass(popup, swalClasses[inputClass]); // set attributes\n\n setAttributes(inputClass, params.inputAttributes); // set class\n\n inputContainer.className = swalClasses[inputClass];\n\n if (rerender) {\n hide(inputContainer);\n }\n });\n\n if (params.input) {\n if (rerender) {\n showInput(params);\n } // set custom class\n\n\n setCustomClass(params);\n }\n };\n /**\n * @param {SweetAlertOptions} params\n */\n\n const showInput = params => {\n if (!renderInputType[params.input]) {\n return error(\"Unexpected type of input! Expected \\\"text\\\", \\\"email\\\", \\\"password\\\", \\\"number\\\", \\\"tel\\\", \\\"select\\\", \\\"radio\\\", \\\"checkbox\\\", \\\"textarea\\\", \\\"file\\\" or \\\"url\\\", got \\\"\".concat(params.input, \"\\\"\"));\n }\n\n const inputContainer = getInputContainer(params.input);\n const input = renderInputType[params.input](inputContainer, params);\n show(inputContainer); // input autofocus\n\n setTimeout(() => {\n focusInput(input);\n });\n };\n /**\n * @param {HTMLInputElement} input\n */\n\n\n const removeAttributes = input => {\n for (let i = 0; i < input.attributes.length; i++) {\n const attrName = input.attributes[i].name;\n\n if (!['type', 'value', 'style'].includes(attrName)) {\n input.removeAttribute(attrName);\n }\n }\n };\n /**\n * @param {InputClass} inputClass\n * @param {SweetAlertOptions['inputAttributes']} inputAttributes\n */\n\n\n const setAttributes = (inputClass, inputAttributes) => {\n const input = getInput(getPopup(), inputClass);\n\n if (!input) {\n return;\n }\n\n removeAttributes(input);\n\n for (const attr in inputAttributes) {\n input.setAttribute(attr, inputAttributes[attr]);\n }\n };\n /**\n * @param {SweetAlertOptions} params\n */\n\n\n const setCustomClass = params => {\n const inputContainer = getInputContainer(params.input);\n\n if (typeof params.customClass === 'object') {\n addClass(inputContainer, params.customClass.input);\n }\n };\n /**\n * @param {HTMLInputElement | HTMLTextAreaElement} input\n * @param {SweetAlertOptions} params\n */\n\n\n const setInputPlaceholder = (input, params) => {\n if (!input.placeholder || params.inputPlaceholder) {\n input.placeholder = params.inputPlaceholder;\n }\n };\n /**\n * @param {Input} input\n * @param {Input} prependTo\n * @param {SweetAlertOptions} params\n */\n\n\n const setInputLabel = (input, prependTo, params) => {\n if (params.inputLabel) {\n input.id = swalClasses.input;\n const label = document.createElement('label');\n const labelClass = swalClasses['input-label'];\n label.setAttribute('for', input.id);\n label.className = labelClass;\n\n if (typeof params.customClass === 'object') {\n addClass(label, params.customClass.inputLabel);\n }\n\n label.innerText = params.inputLabel;\n prependTo.insertAdjacentElement('beforebegin', label);\n }\n };\n /**\n * @param {SweetAlertOptions['input']} inputType\n * @returns {HTMLElement}\n */\n\n\n const getInputContainer = inputType => {\n return getDirectChildByClass(getPopup(), swalClasses[inputType] || swalClasses.input);\n };\n /**\n * @param {HTMLInputElement | HTMLOutputElement | HTMLTextAreaElement} input\n * @param {SweetAlertOptions['inputValue']} inputValue\n */\n\n\n const checkAndSetInputValue = (input, inputValue) => {\n if (['string', 'number'].includes(typeof inputValue)) {\n input.value = \"\".concat(inputValue);\n } else if (!isPromise(inputValue)) {\n warn(\"Unexpected type of inputValue! Expected \\\"string\\\", \\\"number\\\" or \\\"Promise\\\", got \\\"\".concat(typeof inputValue, \"\\\"\"));\n }\n };\n /** @type Record Input> */\n\n\n const renderInputType = {};\n /**\n * @param {HTMLInputElement} input\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\n\n renderInputType.text = renderInputType.email = renderInputType.password = renderInputType.number = renderInputType.tel = renderInputType.url = (input, params) => {\n checkAndSetInputValue(input, params.inputValue);\n setInputLabel(input, input, params);\n setInputPlaceholder(input, params);\n input.type = params.input;\n return input;\n };\n /**\n * @param {HTMLInputElement} input\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\n\n\n renderInputType.file = (input, params) => {\n setInputLabel(input, input, params);\n setInputPlaceholder(input, params);\n return input;\n };\n /**\n * @param {HTMLInputElement} range\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\n\n\n renderInputType.range = (range, params) => {\n const rangeInput = range.querySelector('input');\n const rangeOutput = range.querySelector('output');\n checkAndSetInputValue(rangeInput, params.inputValue);\n rangeInput.type = params.input;\n checkAndSetInputValue(rangeOutput, params.inputValue);\n setInputLabel(rangeInput, range, params);\n return range;\n };\n /**\n * @param {HTMLSelectElement} select\n * @param {SweetAlertOptions} params\n * @returns {HTMLSelectElement}\n */\n\n\n renderInputType.select = (select, params) => {\n select.textContent = '';\n\n if (params.inputPlaceholder) {\n const placeholder = document.createElement('option');\n setInnerHtml(placeholder, params.inputPlaceholder);\n placeholder.value = '';\n placeholder.disabled = true;\n placeholder.selected = true;\n select.appendChild(placeholder);\n }\n\n setInputLabel(select, select, params);\n return select;\n };\n /**\n * @param {HTMLInputElement} radio\n * @returns {HTMLInputElement}\n */\n\n\n renderInputType.radio = radio => {\n radio.textContent = '';\n return radio;\n };\n /**\n * @param {HTMLLabelElement} checkboxContainer\n * @param {SweetAlertOptions} params\n * @returns {HTMLInputElement}\n */\n\n\n renderInputType.checkbox = (checkboxContainer, params) => {\n const checkbox = getInput(getPopup(), 'checkbox');\n checkbox.value = '1';\n checkbox.id = swalClasses.checkbox;\n checkbox.checked = Boolean(params.inputValue);\n const label = checkboxContainer.querySelector('span');\n setInnerHtml(label, params.inputPlaceholder);\n return checkbox;\n };\n /**\n * @param {HTMLTextAreaElement} textarea\n * @param {SweetAlertOptions} params\n * @returns {HTMLTextAreaElement}\n */\n\n\n renderInputType.textarea = (textarea, params) => {\n checkAndSetInputValue(textarea, params.inputValue);\n setInputPlaceholder(textarea, params);\n setInputLabel(textarea, textarea, params);\n /**\n * @param {HTMLElement} el\n * @returns {number}\n */\n\n const getMargin = el => parseInt(window.getComputedStyle(el).marginLeft) + parseInt(window.getComputedStyle(el).marginRight); // https://github.com/sweetalert2/sweetalert2/issues/2291\n\n\n setTimeout(() => {\n // https://github.com/sweetalert2/sweetalert2/issues/1699\n if ('MutationObserver' in window) {\n const initialPopupWidth = parseInt(window.getComputedStyle(getPopup()).width);\n\n const textareaResizeHandler = () => {\n const textareaWidth = textarea.offsetWidth + getMargin(textarea);\n\n if (textareaWidth > initialPopupWidth) {\n getPopup().style.width = \"\".concat(textareaWidth, \"px\");\n } else {\n getPopup().style.width = null;\n }\n };\n\n new MutationObserver(textareaResizeHandler).observe(textarea, {\n attributes: true,\n attributeFilter: ['style']\n });\n }\n });\n return textarea;\n };\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderContent = (instance, params) => {\n const htmlContainer = getHtmlContainer();\n applyCustomClass(htmlContainer, params, 'htmlContainer'); // Content as HTML\n\n if (params.html) {\n parseHtmlToContainer(params.html, htmlContainer);\n show(htmlContainer, 'block');\n } // Content as plain text\n else if (params.text) {\n htmlContainer.textContent = params.text;\n show(htmlContainer, 'block');\n } // No content\n else {\n hide(htmlContainer);\n }\n\n renderInput(instance, params);\n };\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderFooter = (instance, params) => {\n const footer = getFooter();\n toggle(footer, params.footer);\n\n if (params.footer) {\n parseHtmlToContainer(params.footer, footer);\n } // Custom class\n\n\n applyCustomClass(footer, params, 'footer');\n };\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderCloseButton = (instance, params) => {\n const closeButton = getCloseButton();\n setInnerHtml(closeButton, params.closeButtonHtml); // Custom class\n\n applyCustomClass(closeButton, params, 'closeButton');\n toggle(closeButton, params.showCloseButton);\n closeButton.setAttribute('aria-label', params.closeButtonAriaLabel);\n };\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderIcon = (instance, params) => {\n const innerParams = privateProps.innerParams.get(instance);\n const icon = getIcon(); // if the given icon already rendered, apply the styling without re-rendering the icon\n\n if (innerParams && params.icon === innerParams.icon) {\n // Custom or default content\n setContent(icon, params);\n applyStyles(icon, params);\n return;\n }\n\n if (!params.icon && !params.iconHtml) {\n hide(icon);\n return;\n }\n\n if (params.icon && Object.keys(iconTypes).indexOf(params.icon) === -1) {\n error(\"Unknown icon! Expected \\\"success\\\", \\\"error\\\", \\\"warning\\\", \\\"info\\\" or \\\"question\\\", got \\\"\".concat(params.icon, \"\\\"\"));\n hide(icon);\n return;\n }\n\n show(icon); // Custom or default content\n\n setContent(icon, params);\n applyStyles(icon, params); // Animate icon\n\n addClass(icon, params.showClass.icon);\n };\n /**\n * @param {HTMLElement} icon\n * @param {SweetAlertOptions} params\n */\n\n const applyStyles = (icon, params) => {\n for (const iconType in iconTypes) {\n if (params.icon !== iconType) {\n removeClass(icon, iconTypes[iconType]);\n }\n }\n\n addClass(icon, iconTypes[params.icon]); // Icon color\n\n setColor(icon, params); // Success icon background color\n\n adjustSuccessIconBackgroundColor(); // Custom class\n\n applyCustomClass(icon, params, 'icon');\n }; // Adjust success icon background color to match the popup background color\n\n\n const adjustSuccessIconBackgroundColor = () => {\n const popup = getPopup();\n const popupBackgroundColor = window.getComputedStyle(popup).getPropertyValue('background-color');\n /** @type {NodeListOf} */\n\n const successIconParts = popup.querySelectorAll('[class^=swal2-success-circular-line], .swal2-success-fix');\n\n for (let i = 0; i < successIconParts.length; i++) {\n successIconParts[i].style.backgroundColor = popupBackgroundColor;\n }\n };\n\n const successIconHtml = \"\\n
    \\n \\n
    \\n
    \\n\";\n const errorIconHtml = \"\\n \\n \\n \\n \\n\";\n /**\n * @param {HTMLElement} icon\n * @param {SweetAlertOptions} params\n */\n\n const setContent = (icon, params) => {\n let oldContent = icon.innerHTML;\n let newContent;\n\n if (params.iconHtml) {\n newContent = iconContent(params.iconHtml);\n } else if (params.icon === 'success') {\n newContent = successIconHtml;\n oldContent = oldContent.replace(/ style=\".*?\"/g, ''); // undo adjustSuccessIconBackgroundColor()\n } else if (params.icon === 'error') {\n newContent = errorIconHtml;\n } else {\n const defaultIconHtml = {\n question: '?',\n warning: '!',\n info: 'i'\n };\n newContent = iconContent(defaultIconHtml[params.icon]);\n }\n\n if (oldContent.trim() !== newContent.trim()) {\n setInnerHtml(icon, newContent);\n }\n };\n /**\n * @param {HTMLElement} icon\n * @param {SweetAlertOptions} params\n */\n\n\n const setColor = (icon, params) => {\n if (!params.iconColor) {\n return;\n }\n\n icon.style.color = params.iconColor;\n icon.style.borderColor = params.iconColor;\n\n for (const sel of ['.swal2-success-line-tip', '.swal2-success-line-long', '.swal2-x-mark-line-left', '.swal2-x-mark-line-right']) {\n setStyle(icon, sel, 'backgroundColor', params.iconColor);\n }\n\n setStyle(icon, '.swal2-success-ring', 'borderColor', params.iconColor);\n };\n /**\n * @param {string} content\n * @returns {string}\n */\n\n\n const iconContent = content => \"
    \").concat(content, \"
    \");\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderImage = (instance, params) => {\n const image = getImage();\n\n if (!params.imageUrl) {\n return hide(image);\n }\n\n show(image, ''); // Src, alt\n\n image.setAttribute('src', params.imageUrl);\n image.setAttribute('alt', params.imageAlt); // Width, height\n\n applyNumericalStyle(image, 'width', params.imageWidth);\n applyNumericalStyle(image, 'height', params.imageHeight); // Class\n\n image.className = swalClasses.image;\n applyCustomClass(image, params, 'image');\n };\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderProgressSteps = (instance, params) => {\n const progressStepsContainer = getProgressSteps();\n\n if (!params.progressSteps || params.progressSteps.length === 0) {\n return hide(progressStepsContainer);\n }\n\n show(progressStepsContainer);\n progressStepsContainer.textContent = '';\n\n if (params.currentProgressStep >= params.progressSteps.length) {\n warn('Invalid currentProgressStep parameter, it should be less than progressSteps.length ' + '(currentProgressStep like JS arrays starts from 0)');\n }\n\n params.progressSteps.forEach((step, index) => {\n const stepEl = createStepElement(step);\n progressStepsContainer.appendChild(stepEl);\n\n if (index === params.currentProgressStep) {\n addClass(stepEl, swalClasses['active-progress-step']);\n }\n\n if (index !== params.progressSteps.length - 1) {\n const lineEl = createLineElement(params);\n progressStepsContainer.appendChild(lineEl);\n }\n });\n };\n /**\n * @param {string} step\n * @returns {HTMLLIElement}\n */\n\n const createStepElement = step => {\n const stepEl = document.createElement('li');\n addClass(stepEl, swalClasses['progress-step']);\n setInnerHtml(stepEl, step);\n return stepEl;\n };\n /**\n * @param {SweetAlertOptions} params\n * @returns {HTMLLIElement}\n */\n\n\n const createLineElement = params => {\n const lineEl = document.createElement('li');\n addClass(lineEl, swalClasses['progress-step-line']);\n\n if (params.progressStepsDistance) {\n applyNumericalStyle(lineEl, 'width', params.progressStepsDistance);\n }\n\n return lineEl;\n };\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderTitle = (instance, params) => {\n const title = getTitle();\n toggle(title, params.title || params.titleText, 'block');\n\n if (params.title) {\n parseHtmlToContainer(params.title, title);\n }\n\n if (params.titleText) {\n title.innerText = params.titleText;\n } // Custom class\n\n\n applyCustomClass(title, params, 'title');\n };\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const renderPopup = (instance, params) => {\n const container = getContainer();\n const popup = getPopup(); // Width\n // https://github.com/sweetalert2/sweetalert2/issues/2170\n\n if (params.toast) {\n applyNumericalStyle(container, 'width', params.width);\n popup.style.width = '100%';\n popup.insertBefore(getLoader(), getIcon());\n } else {\n applyNumericalStyle(popup, 'width', params.width);\n } // Padding\n\n\n applyNumericalStyle(popup, 'padding', params.padding); // Color\n\n if (params.color) {\n popup.style.color = params.color;\n } // Background\n\n\n if (params.background) {\n popup.style.background = params.background;\n }\n\n hide(getValidationMessage()); // Classes\n\n addClasses(popup, params);\n };\n /**\n * @param {HTMLElement} popup\n * @param {SweetAlertOptions} params\n */\n\n const addClasses = (popup, params) => {\n // Default Class + showClass when updating Swal.update({})\n popup.className = \"\".concat(swalClasses.popup, \" \").concat(isVisible(popup) ? params.showClass.popup : '');\n\n if (params.toast) {\n addClass([document.documentElement, document.body], swalClasses['toast-shown']);\n addClass(popup, swalClasses.toast);\n } else {\n addClass(popup, swalClasses.modal);\n } // Custom class\n\n\n applyCustomClass(popup, params, 'popup');\n\n if (typeof params.customClass === 'string') {\n addClass(popup, params.customClass);\n } // Icon class (#1842)\n\n\n if (params.icon) {\n addClass(popup, swalClasses[\"icon-\".concat(params.icon)]);\n }\n };\n\n /**\n * @param {SweetAlert2} instance\n * @param {SweetAlertOptions} params\n */\n\n const render = (instance, params) => {\n renderPopup(instance, params);\n renderContainer(instance, params);\n renderProgressSteps(instance, params);\n renderIcon(instance, params);\n renderImage(instance, params);\n renderTitle(instance, params);\n renderCloseButton(instance, params);\n renderContent(instance, params);\n renderActions(instance, params);\n renderFooter(instance, params);\n\n if (typeof params.didRender === 'function') {\n params.didRender(getPopup());\n }\n };\n\n const DismissReason = Object.freeze({\n cancel: 'cancel',\n backdrop: 'backdrop',\n close: 'close',\n esc: 'esc',\n timer: 'timer'\n });\n\n // Adding aria-hidden=\"true\" to elements outside of the active modal dialog ensures that\n // elements not within the active modal dialog will not be surfaced if a user opens a screen\n // reader’s list of elements (headings, form controls, landmarks, etc.) in the document.\n\n const setAriaHidden = () => {\n const bodyChildren = Array.from(document.body.children);\n bodyChildren.forEach(el => {\n if (el === getContainer() || el.contains(getContainer())) {\n return;\n }\n\n if (el.hasAttribute('aria-hidden')) {\n el.setAttribute('data-previous-aria-hidden', el.getAttribute('aria-hidden'));\n }\n\n el.setAttribute('aria-hidden', 'true');\n });\n };\n const unsetAriaHidden = () => {\n const bodyChildren = Array.from(document.body.children);\n bodyChildren.forEach(el => {\n if (el.hasAttribute('data-previous-aria-hidden')) {\n el.setAttribute('aria-hidden', el.getAttribute('data-previous-aria-hidden'));\n el.removeAttribute('data-previous-aria-hidden');\n } else {\n el.removeAttribute('aria-hidden');\n }\n });\n };\n\n const swalStringParams = ['swal-title', 'swal-html', 'swal-footer'];\n const getTemplateParams = params => {\n const template = typeof params.template === 'string' ? document.querySelector(params.template) : params.template;\n\n if (!template) {\n return {};\n }\n /** @type {DocumentFragment} */\n\n\n const templateContent = template.content;\n showWarningsForElements(templateContent);\n const result = Object.assign(getSwalParams(templateContent), getSwalButtons(templateContent), getSwalImage(templateContent), getSwalIcon(templateContent), getSwalInput(templateContent), getSwalStringParams(templateContent, swalStringParams));\n return result;\n };\n /**\n * @param {DocumentFragment} templateContent\n */\n\n const getSwalParams = templateContent => {\n const result = {};\n /** @type {HTMLElement[]} */\n\n const swalParams = Array.from(templateContent.querySelectorAll('swal-param'));\n swalParams.forEach(param => {\n showWarningsForAttributes(param, ['name', 'value']);\n const paramName = param.getAttribute('name');\n const value = param.getAttribute('value');\n\n if (typeof defaultParams[paramName] === 'boolean' && value === 'false') {\n result[paramName] = false;\n }\n\n if (typeof defaultParams[paramName] === 'object') {\n result[paramName] = JSON.parse(value);\n }\n });\n return result;\n };\n /**\n * @param {DocumentFragment} templateContent\n */\n\n\n const getSwalButtons = templateContent => {\n const result = {};\n /** @type {HTMLElement[]} */\n\n const swalButtons = Array.from(templateContent.querySelectorAll('swal-button'));\n swalButtons.forEach(button => {\n showWarningsForAttributes(button, ['type', 'color', 'aria-label']);\n const type = button.getAttribute('type');\n result[\"\".concat(type, \"ButtonText\")] = button.innerHTML;\n result[\"show\".concat(capitalizeFirstLetter(type), \"Button\")] = true;\n\n if (button.hasAttribute('color')) {\n result[\"\".concat(type, \"ButtonColor\")] = button.getAttribute('color');\n }\n\n if (button.hasAttribute('aria-label')) {\n result[\"\".concat(type, \"ButtonAriaLabel\")] = button.getAttribute('aria-label');\n }\n });\n return result;\n };\n /**\n * @param {DocumentFragment} templateContent\n */\n\n\n const getSwalImage = templateContent => {\n const result = {};\n /** @type {HTMLElement} */\n\n const image = templateContent.querySelector('swal-image');\n\n if (image) {\n showWarningsForAttributes(image, ['src', 'width', 'height', 'alt']);\n\n if (image.hasAttribute('src')) {\n result.imageUrl = image.getAttribute('src');\n }\n\n if (image.hasAttribute('width')) {\n result.imageWidth = image.getAttribute('width');\n }\n\n if (image.hasAttribute('height')) {\n result.imageHeight = image.getAttribute('height');\n }\n\n if (image.hasAttribute('alt')) {\n result.imageAlt = image.getAttribute('alt');\n }\n }\n\n return result;\n };\n /**\n * @param {DocumentFragment} templateContent\n */\n\n\n const getSwalIcon = templateContent => {\n const result = {};\n /** @type {HTMLElement} */\n\n const icon = templateContent.querySelector('swal-icon');\n\n if (icon) {\n showWarningsForAttributes(icon, ['type', 'color']);\n\n if (icon.hasAttribute('type')) {\n result.icon = icon.getAttribute('type');\n }\n\n if (icon.hasAttribute('color')) {\n result.iconColor = icon.getAttribute('color');\n }\n\n result.iconHtml = icon.innerHTML;\n }\n\n return result;\n };\n /**\n * @param {DocumentFragment} templateContent\n */\n\n\n const getSwalInput = templateContent => {\n const result = {};\n /** @type {HTMLElement} */\n\n const input = templateContent.querySelector('swal-input');\n\n if (input) {\n showWarningsForAttributes(input, ['type', 'label', 'placeholder', 'value']);\n result.input = input.getAttribute('type') || 'text';\n\n if (input.hasAttribute('label')) {\n result.inputLabel = input.getAttribute('label');\n }\n\n if (input.hasAttribute('placeholder')) {\n result.inputPlaceholder = input.getAttribute('placeholder');\n }\n\n if (input.hasAttribute('value')) {\n result.inputValue = input.getAttribute('value');\n }\n }\n /** @type {HTMLElement[]} */\n\n\n const inputOptions = Array.from(templateContent.querySelectorAll('swal-input-option'));\n\n if (inputOptions.length) {\n result.inputOptions = {};\n inputOptions.forEach(option => {\n showWarningsForAttributes(option, ['value']);\n const optionValue = option.getAttribute('value');\n const optionName = option.innerHTML;\n result.inputOptions[optionValue] = optionName;\n });\n }\n\n return result;\n };\n /**\n * @param {DocumentFragment} templateContent\n * @param {string[]} paramNames\n */\n\n\n const getSwalStringParams = (templateContent, paramNames) => {\n const result = {};\n\n for (const i in paramNames) {\n const paramName = paramNames[i];\n /** @type {HTMLElement} */\n\n const tag = templateContent.querySelector(paramName);\n\n if (tag) {\n showWarningsForAttributes(tag, []);\n result[paramName.replace(/^swal-/, '')] = tag.innerHTML.trim();\n }\n }\n\n return result;\n };\n /**\n * @param {DocumentFragment} templateContent\n */\n\n\n const showWarningsForElements = templateContent => {\n const allowedElements = swalStringParams.concat(['swal-param', 'swal-button', 'swal-image', 'swal-icon', 'swal-input', 'swal-input-option']);\n Array.from(templateContent.children).forEach(el => {\n const tagName = el.tagName.toLowerCase();\n\n if (allowedElements.indexOf(tagName) === -1) {\n warn(\"Unrecognized element <\".concat(tagName, \">\"));\n }\n });\n };\n /**\n * @param {HTMLElement} el\n * @param {string[]} allowedAttributes\n */\n\n\n const showWarningsForAttributes = (el, allowedAttributes) => {\n Array.from(el.attributes).forEach(attribute => {\n if (allowedAttributes.indexOf(attribute.name) === -1) {\n warn([\"Unrecognized attribute \\\"\".concat(attribute.name, \"\\\" on <\").concat(el.tagName.toLowerCase(), \">.\"), \"\".concat(allowedAttributes.length ? \"Allowed attributes are: \".concat(allowedAttributes.join(', ')) : 'To set the value, use HTML within the element.')]);\n }\n });\n };\n\n var defaultInputValidators = {\n /**\n * @param {string} string\n * @param {string} validationMessage\n * @returns {Promise}\n */\n email: (string, validationMessage) => {\n return /^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z0-9-]{2,24}$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid email address');\n },\n\n /**\n * @param {string} string\n * @param {string} validationMessage\n * @returns {Promise}\n */\n url: (string, validationMessage) => {\n // taken from https://stackoverflow.com/a/3809435 with a small change from #1306 and #2013\n return /^https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-z]{2,63}\\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid URL');\n }\n };\n\n /**\n * @param {SweetAlertOptions} params\n */\n\n function setDefaultInputValidators(params) {\n // Use default `inputValidator` for supported input types if not provided\n if (!params.inputValidator) {\n Object.keys(defaultInputValidators).forEach(key => {\n if (params.input === key) {\n params.inputValidator = defaultInputValidators[key];\n }\n });\n }\n }\n /**\n * @param {SweetAlertOptions} params\n */\n\n\n function validateCustomTargetElement(params) {\n // Determine if the custom target element is valid\n if (!params.target || typeof params.target === 'string' && !document.querySelector(params.target) || typeof params.target !== 'string' && !params.target.appendChild) {\n warn('Target parameter is not valid, defaulting to \"body\"');\n params.target = 'body';\n }\n }\n /**\n * Set type, text and actions on popup\n *\n * @param {SweetAlertOptions} params\n */\n\n\n function setParameters(params) {\n setDefaultInputValidators(params); // showLoaderOnConfirm && preConfirm\n\n if (params.showLoaderOnConfirm && !params.preConfirm) {\n warn('showLoaderOnConfirm is set to true, but preConfirm is not defined.\\n' + 'showLoaderOnConfirm should be used together with preConfirm, see usage example:\\n' + 'https://sweetalert2.github.io/#ajax-request');\n }\n\n validateCustomTargetElement(params); // Replace newlines with
    in title\n\n if (typeof params.title === 'string') {\n params.title = params.title.split('\\n').join('
    ');\n }\n\n init(params);\n }\n\n class Timer {\n constructor(callback, delay) {\n this.callback = callback;\n this.remaining = delay;\n this.running = false;\n this.start();\n }\n\n start() {\n if (!this.running) {\n this.running = true;\n this.started = new Date();\n this.id = setTimeout(this.callback, this.remaining);\n }\n\n return this.remaining;\n }\n\n stop() {\n if (this.running) {\n this.running = false;\n clearTimeout(this.id);\n this.remaining -= new Date().getTime() - this.started.getTime();\n }\n\n return this.remaining;\n }\n\n increase(n) {\n const running = this.running;\n\n if (running) {\n this.stop();\n }\n\n this.remaining += n;\n\n if (running) {\n this.start();\n }\n\n return this.remaining;\n }\n\n getTimerLeft() {\n if (this.running) {\n this.stop();\n this.start();\n }\n\n return this.remaining;\n }\n\n isRunning() {\n return this.running;\n }\n\n }\n\n const fixScrollbar = () => {\n // for queues, do not do this more than once\n if (states.previousBodyPadding !== null) {\n return;\n } // if the body has overflow\n\n\n if (document.body.scrollHeight > window.innerHeight) {\n // add padding so the content doesn't shift after removal of scrollbar\n states.previousBodyPadding = parseInt(window.getComputedStyle(document.body).getPropertyValue('padding-right'));\n document.body.style.paddingRight = \"\".concat(states.previousBodyPadding + measureScrollbar(), \"px\");\n }\n };\n const undoScrollbar = () => {\n if (states.previousBodyPadding !== null) {\n document.body.style.paddingRight = \"\".concat(states.previousBodyPadding, \"px\");\n states.previousBodyPadding = null;\n }\n };\n\n /* istanbul ignore file */\n\n const iOSfix = () => {\n const iOS = // @ts-ignore\n /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream || navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1;\n\n if (iOS && !hasClass(document.body, swalClasses.iosfix)) {\n const offset = document.body.scrollTop;\n document.body.style.top = \"\".concat(offset * -1, \"px\");\n addClass(document.body, swalClasses.iosfix);\n lockBodyScroll();\n addBottomPaddingForTallPopups();\n }\n };\n /**\n * https://github.com/sweetalert2/sweetalert2/issues/1948\n */\n\n const addBottomPaddingForTallPopups = () => {\n const ua = navigator.userAgent;\n const iOS = !!ua.match(/iPad/i) || !!ua.match(/iPhone/i);\n const webkit = !!ua.match(/WebKit/i);\n const iOSSafari = iOS && webkit && !ua.match(/CriOS/i);\n\n if (iOSSafari) {\n const bottomPanelHeight = 44;\n\n if (getPopup().scrollHeight > window.innerHeight - bottomPanelHeight) {\n getContainer().style.paddingBottom = \"\".concat(bottomPanelHeight, \"px\");\n }\n }\n };\n /**\n * https://github.com/sweetalert2/sweetalert2/issues/1246\n */\n\n\n const lockBodyScroll = () => {\n const container = getContainer();\n let preventTouchMove;\n\n container.ontouchstart = e => {\n preventTouchMove = shouldPreventTouchMove(e);\n };\n\n container.ontouchmove = e => {\n if (preventTouchMove) {\n e.preventDefault();\n e.stopPropagation();\n }\n };\n };\n\n const shouldPreventTouchMove = event => {\n const target = event.target;\n const container = getContainer();\n\n if (isStylus(event) || isZoom(event)) {\n return false;\n }\n\n if (target === container) {\n return true;\n }\n\n if (!isScrollable(container) && target.tagName !== 'INPUT' && // #1603\n target.tagName !== 'TEXTAREA' && // #2266\n !(isScrollable(getHtmlContainer()) && // #1944\n getHtmlContainer().contains(target))) {\n return true;\n }\n\n return false;\n };\n /**\n * https://github.com/sweetalert2/sweetalert2/issues/1786\n *\n * @param {*} event\n * @returns {boolean}\n */\n\n\n const isStylus = event => {\n return event.touches && event.touches.length && event.touches[0].touchType === 'stylus';\n };\n /**\n * https://github.com/sweetalert2/sweetalert2/issues/1891\n *\n * @param {TouchEvent} event\n * @returns {boolean}\n */\n\n\n const isZoom = event => {\n return event.touches && event.touches.length > 1;\n };\n\n const undoIOSfix = () => {\n if (hasClass(document.body, swalClasses.iosfix)) {\n const offset = parseInt(document.body.style.top, 10);\n removeClass(document.body, swalClasses.iosfix);\n document.body.style.top = '';\n document.body.scrollTop = offset * -1;\n }\n };\n\n const SHOW_CLASS_TIMEOUT = 10;\n /**\n * Open popup, add necessary classes and styles, fix scrollbar\n *\n * @param params\n */\n\n const openPopup = params => {\n const container = getContainer();\n const popup = getPopup();\n\n if (typeof params.willOpen === 'function') {\n params.willOpen(popup);\n }\n\n const bodyStyles = window.getComputedStyle(document.body);\n const initialBodyOverflow = bodyStyles.overflowY;\n addClasses$1(container, popup, params); // scrolling is 'hidden' until animation is done, after that 'auto'\n\n setTimeout(() => {\n setScrollingVisibility(container, popup);\n }, SHOW_CLASS_TIMEOUT);\n\n if (isModal()) {\n fixScrollContainer(container, params.scrollbarPadding, initialBodyOverflow);\n setAriaHidden();\n }\n\n if (!isToast() && !globalState.previousActiveElement) {\n globalState.previousActiveElement = document.activeElement;\n }\n\n if (typeof params.didOpen === 'function') {\n setTimeout(() => params.didOpen(popup));\n }\n\n removeClass(container, swalClasses['no-transition']);\n };\n\n const swalOpenAnimationFinished = event => {\n const popup = getPopup();\n\n if (event.target !== popup) {\n return;\n }\n\n const container = getContainer();\n popup.removeEventListener(animationEndEvent, swalOpenAnimationFinished);\n container.style.overflowY = 'auto';\n };\n\n const setScrollingVisibility = (container, popup) => {\n if (animationEndEvent && hasCssAnimation(popup)) {\n container.style.overflowY = 'hidden';\n popup.addEventListener(animationEndEvent, swalOpenAnimationFinished);\n } else {\n container.style.overflowY = 'auto';\n }\n };\n\n const fixScrollContainer = (container, scrollbarPadding, initialBodyOverflow) => {\n iOSfix();\n\n if (scrollbarPadding && initialBodyOverflow !== 'hidden') {\n fixScrollbar();\n } // sweetalert2/issues/1247\n\n\n setTimeout(() => {\n container.scrollTop = 0;\n });\n };\n\n const addClasses$1 = (container, popup, params) => {\n addClass(container, params.showClass.backdrop); // this workaround with opacity is needed for https://github.com/sweetalert2/sweetalert2/issues/2059\n\n popup.style.setProperty('opacity', '0', 'important');\n show(popup, 'grid');\n setTimeout(() => {\n // Animate popup right after showing it\n addClass(popup, params.showClass.popup); // and remove the opacity workaround\n\n popup.style.removeProperty('opacity');\n }, SHOW_CLASS_TIMEOUT); // 10ms in order to fix #2062\n\n addClass([document.documentElement, document.body], swalClasses.shown);\n\n if (params.heightAuto && params.backdrop && !params.toast) {\n addClass([document.documentElement, document.body], swalClasses['height-auto']);\n }\n };\n\n /**\n * Shows loader (spinner), this is useful with AJAX requests.\n * By default the loader be shown instead of the \"Confirm\" button.\n */\n\n const showLoading = buttonToReplace => {\n let popup = getPopup();\n\n if (!popup) {\n new Swal(); // eslint-disable-line no-new\n }\n\n popup = getPopup();\n const loader = getLoader();\n\n if (isToast()) {\n hide(getIcon());\n } else {\n replaceButton(popup, buttonToReplace);\n }\n\n show(loader);\n popup.setAttribute('data-loading', 'true');\n popup.setAttribute('aria-busy', 'true');\n popup.focus();\n };\n\n const replaceButton = (popup, buttonToReplace) => {\n const actions = getActions();\n const loader = getLoader();\n\n if (!buttonToReplace && isVisible(getConfirmButton())) {\n buttonToReplace = getConfirmButton();\n }\n\n show(actions);\n\n if (buttonToReplace) {\n hide(buttonToReplace);\n loader.setAttribute('data-button-to-replace', buttonToReplace.className);\n }\n\n loader.parentNode.insertBefore(loader, buttonToReplace);\n addClass([popup, actions], swalClasses.loading);\n };\n\n const handleInputOptionsAndValue = (instance, params) => {\n if (params.input === 'select' || params.input === 'radio') {\n handleInputOptions(instance, params);\n } else if (['text', 'email', 'number', 'tel', 'textarea'].includes(params.input) && (hasToPromiseFn(params.inputValue) || isPromise(params.inputValue))) {\n showLoading(getConfirmButton());\n handleInputValue(instance, params);\n }\n };\n const getInputValue = (instance, innerParams) => {\n const input = instance.getInput();\n\n if (!input) {\n return null;\n }\n\n switch (innerParams.input) {\n case 'checkbox':\n return getCheckboxValue(input);\n\n case 'radio':\n return getRadioValue(input);\n\n case 'file':\n return getFileValue(input);\n\n default:\n return innerParams.inputAutoTrim ? input.value.trim() : input.value;\n }\n };\n\n const getCheckboxValue = input => input.checked ? 1 : 0;\n\n const getRadioValue = input => input.checked ? input.value : null;\n\n const getFileValue = input => input.files.length ? input.getAttribute('multiple') !== null ? input.files : input.files[0] : null;\n\n const handleInputOptions = (instance, params) => {\n const popup = getPopup();\n\n const processInputOptions = inputOptions => populateInputOptions[params.input](popup, formatInputOptions(inputOptions), params);\n\n if (hasToPromiseFn(params.inputOptions) || isPromise(params.inputOptions)) {\n showLoading(getConfirmButton());\n asPromise(params.inputOptions).then(inputOptions => {\n instance.hideLoading();\n processInputOptions(inputOptions);\n });\n } else if (typeof params.inputOptions === 'object') {\n processInputOptions(params.inputOptions);\n } else {\n error(\"Unexpected type of inputOptions! Expected object, Map or Promise, got \".concat(typeof params.inputOptions));\n }\n };\n\n const handleInputValue = (instance, params) => {\n const input = instance.getInput();\n hide(input);\n asPromise(params.inputValue).then(inputValue => {\n input.value = params.input === 'number' ? parseFloat(inputValue) || 0 : \"\".concat(inputValue);\n show(input);\n input.focus();\n instance.hideLoading();\n }).catch(err => {\n error(\"Error in inputValue promise: \".concat(err));\n input.value = '';\n show(input);\n input.focus();\n instance.hideLoading();\n });\n };\n\n const populateInputOptions = {\n select: (popup, inputOptions, params) => {\n const select = getDirectChildByClass(popup, swalClasses.select);\n\n const renderOption = (parent, optionLabel, optionValue) => {\n const option = document.createElement('option');\n option.value = optionValue;\n setInnerHtml(option, optionLabel);\n option.selected = isSelected(optionValue, params.inputValue);\n parent.appendChild(option);\n };\n\n inputOptions.forEach(inputOption => {\n const optionValue = inputOption[0];\n const optionLabel = inputOption[1]; // spec:\n // https://www.w3.org/TR/html401/interact/forms.html#h-17.6\n // \"...all OPTGROUP elements must be specified directly within a SELECT element (i.e., groups may not be nested)...\"\n // check whether this is a \n\n if (Array.isArray(optionLabel)) {\n // if it is an array, then it is an \n const optgroup = document.createElement('optgroup');\n optgroup.label = optionValue;\n optgroup.disabled = false; // not configurable for now\n\n select.appendChild(optgroup);\n optionLabel.forEach(o => renderOption(optgroup, o[1], o[0]));\n } else {\n // case of \n valueFormatted = formatInputOptions(valueFormatted);\n }\n\n result.push([key, valueFormatted]);\n });\n } else {\n Object.keys(inputOptions).forEach(key => {\n let valueFormatted = inputOptions[key];\n\n if (typeof valueFormatted === 'object') {\n // case of \n valueFormatted = formatInputOptions(valueFormatted);\n }\n\n result.push([key, valueFormatted]);\n });\n }\n\n return result;\n };\n\n const isSelected = (optionValue, inputValue) => {\n return inputValue && inputValue.toString() === optionValue.toString();\n };\n\n /**\n * Hides loader and shows back the button which was hidden by .showLoading()\n */\n\n function hideLoading() {\n // do nothing if popup is closed\n const innerParams = privateProps.innerParams.get(this);\n\n if (!innerParams) {\n return;\n }\n\n const domCache = privateProps.domCache.get(this);\n hide(domCache.loader);\n\n if (isToast()) {\n if (innerParams.icon) {\n show(getIcon());\n }\n } else {\n showRelatedButton(domCache);\n }\n\n removeClass([domCache.popup, domCache.actions], swalClasses.loading);\n domCache.popup.removeAttribute('aria-busy');\n domCache.popup.removeAttribute('data-loading');\n domCache.confirmButton.disabled = false;\n domCache.denyButton.disabled = false;\n domCache.cancelButton.disabled = false;\n }\n\n const showRelatedButton = domCache => {\n const buttonToReplace = domCache.popup.getElementsByClassName(domCache.loader.getAttribute('data-button-to-replace'));\n\n if (buttonToReplace.length) {\n show(buttonToReplace[0], 'inline-block');\n } else if (allButtonsAreHidden()) {\n hide(domCache.actions);\n }\n };\n\n /**\n * Gets the input DOM node, this method works with input parameter.\n * @returns {HTMLElement | null}\n */\n\n function getInput$1(instance) {\n const innerParams = privateProps.innerParams.get(instance || this);\n const domCache = privateProps.domCache.get(instance || this);\n\n if (!domCache) {\n return null;\n }\n\n return getInput(domCache.popup, innerParams.input);\n }\n\n /**\n * This module contains `WeakMap`s for each effectively-\"private property\" that a `Swal` has.\n * For example, to set the private property \"foo\" of `this` to \"bar\", you can `privateProps.foo.set(this, 'bar')`\n * This is the approach that Babel will probably take to implement private methods/fields\n * https://github.com/tc39/proposal-private-methods\n * https://github.com/babel/babel/pull/7555\n * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module*\n * then we can use that language feature.\n */\n var privateMethods = {\n swalPromiseResolve: new WeakMap(),\n swalPromiseReject: new WeakMap()\n };\n\n /*\n * Global function to determine if SweetAlert2 popup is shown\n */\n\n const isVisible$1 = () => {\n return isVisible(getPopup());\n };\n /*\n * Global function to click 'Confirm' button\n */\n\n const clickConfirm = () => getConfirmButton() && getConfirmButton().click();\n /*\n * Global function to click 'Deny' button\n */\n\n const clickDeny = () => getDenyButton() && getDenyButton().click();\n /*\n * Global function to click 'Cancel' button\n */\n\n const clickCancel = () => getCancelButton() && getCancelButton().click();\n\n /**\n * @param {GlobalState} globalState\n */\n\n const removeKeydownHandler = globalState => {\n if (globalState.keydownTarget && globalState.keydownHandlerAdded) {\n globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, {\n capture: globalState.keydownListenerCapture\n });\n globalState.keydownHandlerAdded = false;\n }\n };\n /**\n * @param {SweetAlert2} instance\n * @param {GlobalState} globalState\n * @param {SweetAlertOptions} innerParams\n * @param {*} dismissWith\n */\n\n const addKeydownHandler = (instance, globalState, innerParams, dismissWith) => {\n removeKeydownHandler(globalState);\n\n if (!innerParams.toast) {\n globalState.keydownHandler = e => keydownHandler(instance, e, dismissWith);\n\n globalState.keydownTarget = innerParams.keydownListenerCapture ? window : getPopup();\n globalState.keydownListenerCapture = innerParams.keydownListenerCapture;\n globalState.keydownTarget.addEventListener('keydown', globalState.keydownHandler, {\n capture: globalState.keydownListenerCapture\n });\n globalState.keydownHandlerAdded = true;\n }\n };\n /**\n * @param {SweetAlertOptions} innerParams\n * @param {number} index\n * @param {number} increment\n */\n\n const setFocus = (innerParams, index, increment) => {\n const focusableElements = getFocusableElements(); // search for visible elements and select the next possible match\n\n if (focusableElements.length) {\n index = index + increment; // rollover to first item\n\n if (index === focusableElements.length) {\n index = 0; // go to last item\n } else if (index === -1) {\n index = focusableElements.length - 1;\n }\n\n return focusableElements[index].focus();\n } // no visible focusable elements, focus the popup\n\n\n getPopup().focus();\n };\n const arrowKeysNextButton = ['ArrowRight', 'ArrowDown'];\n const arrowKeysPreviousButton = ['ArrowLeft', 'ArrowUp'];\n /**\n * @param {SweetAlert2} instance\n * @param {KeyboardEvent} e\n * @param {function} dismissWith\n */\n\n const keydownHandler = (instance, e, dismissWith) => {\n const innerParams = privateProps.innerParams.get(instance);\n\n if (!innerParams) {\n return; // This instance has already been destroyed\n } // Ignore keydown during IME composition\n // https://developer.mozilla.org/en-US/docs/Web/API/Document/keydown_event#ignoring_keydown_during_ime_composition\n // https://github.com/sweetalert2/sweetalert2/issues/720\n // https://github.com/sweetalert2/sweetalert2/issues/2406\n\n\n if (e.isComposing || e.keyCode === 229) {\n return;\n }\n\n if (innerParams.stopKeydownPropagation) {\n e.stopPropagation();\n } // ENTER\n\n\n if (e.key === 'Enter') {\n handleEnter(instance, e, innerParams);\n } // TAB\n else if (e.key === 'Tab') {\n handleTab(e, innerParams);\n } // ARROWS - switch focus between buttons\n else if ([...arrowKeysNextButton, ...arrowKeysPreviousButton].includes(e.key)) {\n handleArrows(e.key);\n } // ESC\n else if (e.key === 'Escape') {\n handleEsc(e, innerParams, dismissWith);\n }\n };\n /**\n * @param {SweetAlert2} instance\n * @param {KeyboardEvent} e\n * @param {SweetAlertOptions} innerParams\n */\n\n\n const handleEnter = (instance, e, innerParams) => {\n // https://github.com/sweetalert2/sweetalert2/issues/2386\n if (!callIfFunction(innerParams.allowEnterKey)) {\n return;\n }\n\n if (e.target && instance.getInput() && e.target instanceof HTMLElement && e.target.outerHTML === instance.getInput().outerHTML) {\n if (['textarea', 'file'].includes(innerParams.input)) {\n return; // do not submit\n }\n\n clickConfirm();\n e.preventDefault();\n }\n };\n /**\n * @param {KeyboardEvent} e\n * @param {SweetAlertOptions} innerParams\n */\n\n\n const handleTab = (e, innerParams) => {\n const targetElement = e.target;\n const focusableElements = getFocusableElements();\n let btnIndex = -1;\n\n for (let i = 0; i < focusableElements.length; i++) {\n if (targetElement === focusableElements[i]) {\n btnIndex = i;\n break;\n }\n } // Cycle to the next button\n\n\n if (!e.shiftKey) {\n setFocus(innerParams, btnIndex, 1);\n } // Cycle to the prev button\n else {\n setFocus(innerParams, btnIndex, -1);\n }\n\n e.stopPropagation();\n e.preventDefault();\n };\n /**\n * @param {string} key\n */\n\n\n const handleArrows = key => {\n const confirmButton = getConfirmButton();\n const denyButton = getDenyButton();\n const cancelButton = getCancelButton();\n\n if (document.activeElement instanceof HTMLElement && ![confirmButton, denyButton, cancelButton].includes(document.activeElement)) {\n return;\n }\n\n const sibling = arrowKeysNextButton.includes(key) ? 'nextElementSibling' : 'previousElementSibling';\n let buttonToFocus = document.activeElement;\n\n for (let i = 0; i < getActions().children.length; i++) {\n buttonToFocus = buttonToFocus[sibling];\n\n if (!buttonToFocus) {\n return;\n }\n\n if (buttonToFocus instanceof HTMLButtonElement && isVisible(buttonToFocus)) {\n break;\n }\n }\n\n if (buttonToFocus instanceof HTMLButtonElement) {\n buttonToFocus.focus();\n }\n };\n /**\n * @param {KeyboardEvent} e\n * @param {SweetAlertOptions} innerParams\n * @param {function} dismissWith\n */\n\n\n const handleEsc = (e, innerParams, dismissWith) => {\n if (callIfFunction(innerParams.allowEscapeKey)) {\n e.preventDefault();\n dismissWith(DismissReason.esc);\n }\n };\n\n /*\n * Instance method to close sweetAlert\n */\n\n function removePopupAndResetState(instance, container, returnFocus, didClose) {\n if (isToast()) {\n triggerDidCloseAndDispose(instance, didClose);\n } else {\n restoreActiveElement(returnFocus).then(() => triggerDidCloseAndDispose(instance, didClose));\n removeKeydownHandler(globalState);\n }\n\n const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent); // workaround for #2088\n // for some reason removing the container in Safari will scroll the document to bottom\n\n if (isSafari) {\n container.setAttribute('style', 'display:none !important');\n container.removeAttribute('class');\n container.innerHTML = '';\n } else {\n container.remove();\n }\n\n if (isModal()) {\n undoScrollbar();\n undoIOSfix();\n unsetAriaHidden();\n }\n\n removeBodyClasses();\n }\n\n function removeBodyClasses() {\n removeClass([document.documentElement, document.body], [swalClasses.shown, swalClasses['height-auto'], swalClasses['no-backdrop'], swalClasses['toast-shown']]);\n }\n\n function close(resolveValue) {\n resolveValue = prepareResolveValue(resolveValue);\n const swalPromiseResolve = privateMethods.swalPromiseResolve.get(this);\n const didClose = triggerClosePopup(this);\n\n if (this.isAwaitingPromise()) {\n // A swal awaiting for a promise (after a click on Confirm or Deny) cannot be dismissed anymore #2335\n if (!resolveValue.isDismissed) {\n handleAwaitingPromise(this);\n swalPromiseResolve(resolveValue);\n }\n } else if (didClose) {\n // Resolve Swal promise\n swalPromiseResolve(resolveValue);\n }\n }\n function isAwaitingPromise() {\n return !!privateProps.awaitingPromise.get(this);\n }\n\n const triggerClosePopup = instance => {\n const popup = getPopup();\n\n if (!popup) {\n return false;\n }\n\n const innerParams = privateProps.innerParams.get(instance);\n\n if (!innerParams || hasClass(popup, innerParams.hideClass.popup)) {\n return false;\n }\n\n removeClass(popup, innerParams.showClass.popup);\n addClass(popup, innerParams.hideClass.popup);\n const backdrop = getContainer();\n removeClass(backdrop, innerParams.showClass.backdrop);\n addClass(backdrop, innerParams.hideClass.backdrop);\n handlePopupAnimation(instance, popup, innerParams);\n return true;\n };\n\n function rejectPromise(error) {\n const rejectPromise = privateMethods.swalPromiseReject.get(this);\n handleAwaitingPromise(this);\n\n if (rejectPromise) {\n // Reject Swal promise\n rejectPromise(error);\n }\n }\n const handleAwaitingPromise = instance => {\n if (instance.isAwaitingPromise()) {\n privateProps.awaitingPromise.delete(instance); // The instance might have been previously partly destroyed, we must resume the destroy process in this case #2335\n\n if (!privateProps.innerParams.get(instance)) {\n instance._destroy();\n }\n }\n };\n\n const prepareResolveValue = resolveValue => {\n // When user calls Swal.close()\n if (typeof resolveValue === 'undefined') {\n return {\n isConfirmed: false,\n isDenied: false,\n isDismissed: true\n };\n }\n\n return Object.assign({\n isConfirmed: false,\n isDenied: false,\n isDismissed: false\n }, resolveValue);\n };\n\n const handlePopupAnimation = (instance, popup, innerParams) => {\n const container = getContainer(); // If animation is supported, animate\n\n const animationIsSupported = animationEndEvent && hasCssAnimation(popup);\n\n if (typeof innerParams.willClose === 'function') {\n innerParams.willClose(popup);\n }\n\n if (animationIsSupported) {\n animatePopup(instance, popup, container, innerParams.returnFocus, innerParams.didClose);\n } else {\n // Otherwise, remove immediately\n removePopupAndResetState(instance, container, innerParams.returnFocus, innerParams.didClose);\n }\n };\n\n const animatePopup = (instance, popup, container, returnFocus, didClose) => {\n globalState.swalCloseEventFinishedCallback = removePopupAndResetState.bind(null, instance, container, returnFocus, didClose);\n popup.addEventListener(animationEndEvent, function (e) {\n if (e.target === popup) {\n globalState.swalCloseEventFinishedCallback();\n delete globalState.swalCloseEventFinishedCallback;\n }\n });\n };\n\n const triggerDidCloseAndDispose = (instance, didClose) => {\n setTimeout(() => {\n if (typeof didClose === 'function') {\n didClose.bind(instance.params)();\n }\n\n instance._destroy();\n });\n };\n\n function setButtonsDisabled(instance, buttons, disabled) {\n const domCache = privateProps.domCache.get(instance);\n buttons.forEach(button => {\n domCache[button].disabled = disabled;\n });\n }\n\n function setInputDisabled(input, disabled) {\n if (!input) {\n return false;\n }\n\n if (input.type === 'radio') {\n const radiosContainer = input.parentNode.parentNode;\n const radios = radiosContainer.querySelectorAll('input');\n\n for (let i = 0; i < radios.length; i++) {\n radios[i].disabled = disabled;\n }\n } else {\n input.disabled = disabled;\n }\n }\n\n function enableButtons() {\n setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], false);\n }\n function disableButtons() {\n setButtonsDisabled(this, ['confirmButton', 'denyButton', 'cancelButton'], true);\n }\n function enableInput() {\n return setInputDisabled(this.getInput(), false);\n }\n function disableInput() {\n return setInputDisabled(this.getInput(), true);\n }\n\n function showValidationMessage(error) {\n const domCache = privateProps.domCache.get(this);\n const params = privateProps.innerParams.get(this);\n setInnerHtml(domCache.validationMessage, error);\n domCache.validationMessage.className = swalClasses['validation-message'];\n\n if (params.customClass && params.customClass.validationMessage) {\n addClass(domCache.validationMessage, params.customClass.validationMessage);\n }\n\n show(domCache.validationMessage);\n const input = this.getInput();\n\n if (input) {\n input.setAttribute('aria-invalid', true);\n input.setAttribute('aria-describedby', swalClasses['validation-message']);\n focusInput(input);\n addClass(input, swalClasses.inputerror);\n }\n } // Hide block with validation message\n\n function resetValidationMessage$1() {\n const domCache = privateProps.domCache.get(this);\n\n if (domCache.validationMessage) {\n hide(domCache.validationMessage);\n }\n\n const input = this.getInput();\n\n if (input) {\n input.removeAttribute('aria-invalid');\n input.removeAttribute('aria-describedby');\n removeClass(input, swalClasses.inputerror);\n }\n }\n\n function getProgressSteps$1() {\n const domCache = privateProps.domCache.get(this);\n return domCache.progressSteps;\n }\n\n /**\n * Updates popup parameters.\n */\n\n function update(params) {\n const popup = getPopup();\n const innerParams = privateProps.innerParams.get(this);\n\n if (!popup || hasClass(popup, innerParams.hideClass.popup)) {\n return warn(\"You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup.\");\n }\n\n const validUpdatableParams = filterValidParams(params);\n const updatedParams = Object.assign({}, innerParams, validUpdatableParams);\n render(this, updatedParams);\n privateProps.innerParams.set(this, updatedParams);\n Object.defineProperties(this, {\n params: {\n value: Object.assign({}, this.params, params),\n writable: false,\n enumerable: true\n }\n });\n }\n\n const filterValidParams = params => {\n const validUpdatableParams = {};\n Object.keys(params).forEach(param => {\n if (isUpdatableParameter(param)) {\n validUpdatableParams[param] = params[param];\n } else {\n warn(\"Invalid parameter to update: \".concat(param));\n }\n });\n return validUpdatableParams;\n };\n\n function _destroy() {\n const domCache = privateProps.domCache.get(this);\n const innerParams = privateProps.innerParams.get(this);\n\n if (!innerParams) {\n disposeWeakMaps(this); // The WeakMaps might have been partly destroyed, we must recall it to dispose any remaining WeakMaps #2335\n\n return; // This instance has already been destroyed\n } // Check if there is another Swal closing\n\n\n if (domCache.popup && globalState.swalCloseEventFinishedCallback) {\n globalState.swalCloseEventFinishedCallback();\n delete globalState.swalCloseEventFinishedCallback;\n }\n\n if (typeof innerParams.didDestroy === 'function') {\n innerParams.didDestroy();\n }\n\n disposeSwal(this);\n }\n /**\n * @param {SweetAlert2} instance\n */\n\n const disposeSwal = instance => {\n disposeWeakMaps(instance); // Unset this.params so GC will dispose it (#1569)\n // @ts-ignore\n\n delete instance.params; // Unset globalState props so GC will dispose globalState (#1569)\n\n delete globalState.keydownHandler;\n delete globalState.keydownTarget; // Unset currentInstance\n\n delete globalState.currentInstance;\n };\n /**\n * @param {SweetAlert2} instance\n */\n\n\n const disposeWeakMaps = instance => {\n // If the current instance is awaiting a promise result, we keep the privateMethods to call them once the promise result is retrieved #2335\n // @ts-ignore\n if (instance.isAwaitingPromise()) {\n unsetWeakMaps(privateProps, instance);\n privateProps.awaitingPromise.set(instance, true);\n } else {\n unsetWeakMaps(privateMethods, instance);\n unsetWeakMaps(privateProps, instance);\n }\n };\n /**\n * @param {object} obj\n * @param {SweetAlert2} instance\n */\n\n\n const unsetWeakMaps = (obj, instance) => {\n for (const i in obj) {\n obj[i].delete(instance);\n }\n };\n\n\n\n var instanceMethods = /*#__PURE__*/Object.freeze({\n hideLoading: hideLoading,\n disableLoading: hideLoading,\n getInput: getInput$1,\n close: close,\n isAwaitingPromise: isAwaitingPromise,\n rejectPromise: rejectPromise,\n handleAwaitingPromise: handleAwaitingPromise,\n closePopup: close,\n closeModal: close,\n closeToast: close,\n enableButtons: enableButtons,\n disableButtons: disableButtons,\n enableInput: enableInput,\n disableInput: disableInput,\n showValidationMessage: showValidationMessage,\n resetValidationMessage: resetValidationMessage$1,\n getProgressSteps: getProgressSteps$1,\n update: update,\n _destroy: _destroy\n });\n\n /**\n * @param {SweetAlert2} instance\n */\n\n const handleConfirmButtonClick = instance => {\n const innerParams = privateProps.innerParams.get(instance);\n instance.disableButtons();\n\n if (innerParams.input) {\n handleConfirmOrDenyWithInput(instance, 'confirm');\n } else {\n confirm(instance, true);\n }\n };\n /**\n * @param {SweetAlert2} instance\n */\n\n const handleDenyButtonClick = instance => {\n const innerParams = privateProps.innerParams.get(instance);\n instance.disableButtons();\n\n if (innerParams.returnInputValueOnDeny) {\n handleConfirmOrDenyWithInput(instance, 'deny');\n } else {\n deny(instance, false);\n }\n };\n /**\n * @param {SweetAlert2} instance\n * @param {Function} dismissWith\n */\n\n const handleCancelButtonClick = (instance, dismissWith) => {\n instance.disableButtons();\n dismissWith(DismissReason.cancel);\n };\n /**\n * @param {SweetAlert2} instance\n * @param {'confirm' | 'deny'} type\n */\n\n const handleConfirmOrDenyWithInput = (instance, type) => {\n const innerParams = privateProps.innerParams.get(instance);\n\n if (!innerParams.input) {\n error(\"The \\\"input\\\" parameter is needed to be set when using returnInputValueOn\".concat(capitalizeFirstLetter(type)));\n return;\n }\n\n const inputValue = getInputValue(instance, innerParams);\n\n if (innerParams.inputValidator) {\n handleInputValidator(instance, inputValue, type);\n } else if (!instance.getInput().checkValidity()) {\n instance.enableButtons();\n instance.showValidationMessage(innerParams.validationMessage);\n } else if (type === 'deny') {\n deny(instance, inputValue);\n } else {\n confirm(instance, inputValue);\n }\n };\n /**\n * @param {SweetAlert2} instance\n * @param {string} inputValue\n * @param {'confirm' | 'deny'} type\n */\n\n\n const handleInputValidator = (instance, inputValue, type) => {\n const innerParams = privateProps.innerParams.get(instance);\n instance.disableInput();\n const validationPromise = Promise.resolve().then(() => asPromise(innerParams.inputValidator(inputValue, innerParams.validationMessage)));\n validationPromise.then(validationMessage => {\n instance.enableButtons();\n instance.enableInput();\n\n if (validationMessage) {\n instance.showValidationMessage(validationMessage);\n } else if (type === 'deny') {\n deny(instance, inputValue);\n } else {\n confirm(instance, inputValue);\n }\n });\n };\n /**\n * @param {SweetAlert2} instance\n * @param {any} value\n */\n\n\n const deny = (instance, value) => {\n const innerParams = privateProps.innerParams.get(instance || undefined);\n\n if (innerParams.showLoaderOnDeny) {\n showLoading(getDenyButton());\n }\n\n if (innerParams.preDeny) {\n privateProps.awaitingPromise.set(instance || undefined, true); // Flagging the instance as awaiting a promise so it's own promise's reject/resolve methods doesn't get destroyed until the result from this preDeny's promise is received\n\n const preDenyPromise = Promise.resolve().then(() => asPromise(innerParams.preDeny(value, innerParams.validationMessage)));\n preDenyPromise.then(preDenyValue => {\n if (preDenyValue === false) {\n instance.hideLoading();\n handleAwaitingPromise(instance);\n } else {\n instance.close({\n isDenied: true,\n value: typeof preDenyValue === 'undefined' ? value : preDenyValue\n });\n }\n }).catch(error$$1 => rejectWith(instance || undefined, error$$1));\n } else {\n instance.close({\n isDenied: true,\n value\n });\n }\n };\n /**\n * @param {SweetAlert2} instance\n * @param {any} value\n */\n\n\n const succeedWith = (instance, value) => {\n instance.close({\n isConfirmed: true,\n value\n });\n };\n /**\n *\n * @param {SweetAlert2} instance\n * @param {string} error\n */\n\n\n const rejectWith = (instance, error$$1) => {\n // @ts-ignore\n instance.rejectPromise(error$$1);\n };\n /**\n *\n * @param {SweetAlert2} instance\n * @param {any} value\n */\n\n\n const confirm = (instance, value) => {\n const innerParams = privateProps.innerParams.get(instance || undefined);\n\n if (innerParams.showLoaderOnConfirm) {\n showLoading();\n }\n\n if (innerParams.preConfirm) {\n instance.resetValidationMessage();\n privateProps.awaitingPromise.set(instance || undefined, true); // Flagging the instance as awaiting a promise so it's own promise's reject/resolve methods doesn't get destroyed until the result from this preConfirm's promise is received\n\n const preConfirmPromise = Promise.resolve().then(() => asPromise(innerParams.preConfirm(value, innerParams.validationMessage)));\n preConfirmPromise.then(preConfirmValue => {\n if (isVisible(getValidationMessage()) || preConfirmValue === false) {\n instance.hideLoading();\n handleAwaitingPromise(instance);\n } else {\n succeedWith(instance, typeof preConfirmValue === 'undefined' ? value : preConfirmValue);\n }\n }).catch(error$$1 => rejectWith(instance || undefined, error$$1));\n } else {\n succeedWith(instance, value);\n }\n };\n\n const handlePopupClick = (instance, domCache, dismissWith) => {\n const innerParams = privateProps.innerParams.get(instance);\n\n if (innerParams.toast) {\n handleToastClick(instance, domCache, dismissWith);\n } else {\n // Ignore click events that had mousedown on the popup but mouseup on the container\n // This can happen when the user drags a slider\n handleModalMousedown(domCache); // Ignore click events that had mousedown on the container but mouseup on the popup\n\n handleContainerMousedown(domCache);\n handleModalClick(instance, domCache, dismissWith);\n }\n };\n\n const handleToastClick = (instance, domCache, dismissWith) => {\n // Closing toast by internal click\n domCache.popup.onclick = () => {\n const innerParams = privateProps.innerParams.get(instance);\n\n if (innerParams && (isAnyButtonShown(innerParams) || innerParams.timer || innerParams.input)) {\n return;\n }\n\n dismissWith(DismissReason.close);\n };\n };\n /**\n * @param {*} innerParams\n * @returns {boolean}\n */\n\n\n const isAnyButtonShown = innerParams => {\n return innerParams.showConfirmButton || innerParams.showDenyButton || innerParams.showCancelButton || innerParams.showCloseButton;\n };\n\n let ignoreOutsideClick = false;\n\n const handleModalMousedown = domCache => {\n domCache.popup.onmousedown = () => {\n domCache.container.onmouseup = function (e) {\n domCache.container.onmouseup = undefined; // We only check if the mouseup target is the container because usually it doesn't\n // have any other direct children aside of the popup\n\n if (e.target === domCache.container) {\n ignoreOutsideClick = true;\n }\n };\n };\n };\n\n const handleContainerMousedown = domCache => {\n domCache.container.onmousedown = () => {\n domCache.popup.onmouseup = function (e) {\n domCache.popup.onmouseup = undefined; // We also need to check if the mouseup target is a child of the popup\n\n if (e.target === domCache.popup || domCache.popup.contains(e.target)) {\n ignoreOutsideClick = true;\n }\n };\n };\n };\n\n const handleModalClick = (instance, domCache, dismissWith) => {\n domCache.container.onclick = e => {\n const innerParams = privateProps.innerParams.get(instance);\n\n if (ignoreOutsideClick) {\n ignoreOutsideClick = false;\n return;\n }\n\n if (e.target === domCache.container && callIfFunction(innerParams.allowOutsideClick)) {\n dismissWith(DismissReason.backdrop);\n }\n };\n };\n\n const isJqueryElement = elem => typeof elem === 'object' && elem.jquery;\n\n const isElement = elem => elem instanceof Element || isJqueryElement(elem);\n\n const argsToParams = args => {\n const params = {};\n\n if (typeof args[0] === 'object' && !isElement(args[0])) {\n Object.assign(params, args[0]);\n } else {\n ['title', 'html', 'icon'].forEach((name, index) => {\n const arg = args[index];\n\n if (typeof arg === 'string' || isElement(arg)) {\n params[name] = arg;\n } else if (arg !== undefined) {\n error(\"Unexpected type of \".concat(name, \"! Expected \\\"string\\\" or \\\"Element\\\", got \").concat(typeof arg));\n }\n });\n }\n\n return params;\n };\n\n function fire() {\n const Swal = this; // eslint-disable-line @typescript-eslint/no-this-alias\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return new Swal(...args);\n }\n\n /**\n * Returns an extended version of `Swal` containing `params` as defaults.\n * Useful for reusing Swal configuration.\n *\n * For example:\n *\n * Before:\n * const textPromptOptions = { input: 'text', showCancelButton: true }\n * const {value: firstName} = await Swal.fire({ ...textPromptOptions, title: 'What is your first name?' })\n * const {value: lastName} = await Swal.fire({ ...textPromptOptions, title: 'What is your last name?' })\n *\n * After:\n * const TextPrompt = Swal.mixin({ input: 'text', showCancelButton: true })\n * const {value: firstName} = await TextPrompt('What is your first name?')\n * const {value: lastName} = await TextPrompt('What is your last name?')\n *\n * @param mixinParams\n */\n function mixin(mixinParams) {\n class MixinSwal extends this {\n _main(params, priorityMixinParams) {\n return super._main(params, Object.assign({}, mixinParams, priorityMixinParams));\n }\n\n }\n\n return MixinSwal;\n }\n\n /**\n * If `timer` parameter is set, returns number of milliseconds of timer remained.\n * Otherwise, returns undefined.\n */\n\n const getTimerLeft = () => {\n return globalState.timeout && globalState.timeout.getTimerLeft();\n };\n /**\n * Stop timer. Returns number of milliseconds of timer remained.\n * If `timer` parameter isn't set, returns undefined.\n */\n\n const stopTimer = () => {\n if (globalState.timeout) {\n stopTimerProgressBar();\n return globalState.timeout.stop();\n }\n };\n /**\n * Resume timer. Returns number of milliseconds of timer remained.\n * If `timer` parameter isn't set, returns undefined.\n */\n\n const resumeTimer = () => {\n if (globalState.timeout) {\n const remaining = globalState.timeout.start();\n animateTimerProgressBar(remaining);\n return remaining;\n }\n };\n /**\n * Resume timer. Returns number of milliseconds of timer remained.\n * If `timer` parameter isn't set, returns undefined.\n */\n\n const toggleTimer = () => {\n const timer = globalState.timeout;\n return timer && (timer.running ? stopTimer() : resumeTimer());\n };\n /**\n * Increase timer. Returns number of milliseconds of an updated timer.\n * If `timer` parameter isn't set, returns undefined.\n */\n\n const increaseTimer = n => {\n if (globalState.timeout) {\n const remaining = globalState.timeout.increase(n);\n animateTimerProgressBar(remaining, true);\n return remaining;\n }\n };\n /**\n * Check if timer is running. Returns true if timer is running\n * or false if timer is paused or stopped.\n * If `timer` parameter isn't set, returns undefined\n */\n\n const isTimerRunning = () => {\n return globalState.timeout && globalState.timeout.isRunning();\n };\n\n let bodyClickListenerAdded = false;\n const clickHandlers = {};\n function bindClickHandler() {\n let attr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'data-swal-template';\n clickHandlers[attr] = this;\n\n if (!bodyClickListenerAdded) {\n document.body.addEventListener('click', bodyClickListener);\n bodyClickListenerAdded = true;\n }\n }\n\n const bodyClickListener = event => {\n for (let el = event.target; el && el !== document; el = el.parentNode) {\n for (const attr in clickHandlers) {\n const template = el.getAttribute(attr);\n\n if (template) {\n clickHandlers[attr].fire({\n template\n });\n return;\n }\n }\n }\n };\n\n\n\n var staticMethods = /*#__PURE__*/Object.freeze({\n isValidParameter: isValidParameter,\n isUpdatableParameter: isUpdatableParameter,\n isDeprecatedParameter: isDeprecatedParameter,\n argsToParams: argsToParams,\n isVisible: isVisible$1,\n clickConfirm: clickConfirm,\n clickDeny: clickDeny,\n clickCancel: clickCancel,\n getContainer: getContainer,\n getPopup: getPopup,\n getTitle: getTitle,\n getHtmlContainer: getHtmlContainer,\n getImage: getImage,\n getIcon: getIcon,\n getInputLabel: getInputLabel,\n getCloseButton: getCloseButton,\n getActions: getActions,\n getConfirmButton: getConfirmButton,\n getDenyButton: getDenyButton,\n getCancelButton: getCancelButton,\n getLoader: getLoader,\n getFooter: getFooter,\n getTimerProgressBar: getTimerProgressBar,\n getFocusableElements: getFocusableElements,\n getValidationMessage: getValidationMessage,\n isLoading: isLoading,\n fire: fire,\n mixin: mixin,\n showLoading: showLoading,\n enableLoading: showLoading,\n getTimerLeft: getTimerLeft,\n stopTimer: stopTimer,\n resumeTimer: resumeTimer,\n toggleTimer: toggleTimer,\n increaseTimer: increaseTimer,\n isTimerRunning: isTimerRunning,\n bindClickHandler: bindClickHandler\n });\n\n let currentInstance;\n\n class SweetAlert {\n constructor() {\n // Prevent run in Node env\n if (typeof window === 'undefined') {\n return;\n }\n\n currentInstance = this; // @ts-ignore\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n const outerParams = Object.freeze(this.constructor.argsToParams(args));\n Object.defineProperties(this, {\n params: {\n value: outerParams,\n writable: false,\n enumerable: true,\n configurable: true\n }\n }); // @ts-ignore\n\n const promise = currentInstance._main(currentInstance.params);\n\n privateProps.promise.set(this, promise);\n }\n\n _main(userParams) {\n let mixinParams = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n showWarningsForParams(Object.assign({}, mixinParams, userParams));\n\n if (globalState.currentInstance) {\n // @ts-ignore\n globalState.currentInstance._destroy();\n\n if (isModal()) {\n unsetAriaHidden();\n }\n }\n\n globalState.currentInstance = currentInstance;\n const innerParams = prepareParams(userParams, mixinParams);\n setParameters(innerParams);\n Object.freeze(innerParams); // clear the previous timer\n\n if (globalState.timeout) {\n globalState.timeout.stop();\n delete globalState.timeout;\n } // clear the restore focus timeout\n\n\n clearTimeout(globalState.restoreFocusTimeout);\n const domCache = populateDomCache(currentInstance);\n render(currentInstance, innerParams);\n privateProps.innerParams.set(currentInstance, innerParams);\n return swalPromise(currentInstance, domCache, innerParams);\n } // `catch` cannot be the name of a module export, so we define our thenable methods here instead\n\n\n then(onFulfilled) {\n const promise = privateProps.promise.get(this);\n return promise.then(onFulfilled);\n }\n\n finally(onFinally) {\n const promise = privateProps.promise.get(this);\n return promise.finally(onFinally);\n }\n\n }\n\n const swalPromise = (instance, domCache, innerParams) => {\n return new Promise((resolve, reject) => {\n // functions to handle all closings/dismissals\n const dismissWith = dismiss => {\n instance.closePopup({\n isDismissed: true,\n dismiss\n });\n };\n\n privateMethods.swalPromiseResolve.set(instance, resolve);\n privateMethods.swalPromiseReject.set(instance, reject);\n\n domCache.confirmButton.onclick = () => handleConfirmButtonClick(instance);\n\n domCache.denyButton.onclick = () => handleDenyButtonClick(instance);\n\n domCache.cancelButton.onclick = () => handleCancelButtonClick(instance, dismissWith);\n\n domCache.closeButton.onclick = () => dismissWith(DismissReason.close);\n\n handlePopupClick(instance, domCache, dismissWith);\n addKeydownHandler(instance, globalState, innerParams, dismissWith);\n handleInputOptionsAndValue(instance, innerParams);\n openPopup(innerParams);\n setupTimer(globalState, innerParams, dismissWith);\n initFocus(domCache, innerParams); // Scroll container to top on open (#1247, #1946)\n\n setTimeout(() => {\n domCache.container.scrollTop = 0;\n });\n });\n };\n\n const prepareParams = (userParams, mixinParams) => {\n const templateParams = getTemplateParams(userParams);\n const params = Object.assign({}, defaultParams, mixinParams, templateParams, userParams); // precedence is described in #2131\n\n params.showClass = Object.assign({}, defaultParams.showClass, params.showClass);\n params.hideClass = Object.assign({}, defaultParams.hideClass, params.hideClass);\n return params;\n };\n /**\n * @param {SweetAlert2} instance\n * @returns {DomCache}\n */\n\n\n const populateDomCache = instance => {\n const domCache = {\n popup: getPopup(),\n container: getContainer(),\n actions: getActions(),\n confirmButton: getConfirmButton(),\n denyButton: getDenyButton(),\n cancelButton: getCancelButton(),\n loader: getLoader(),\n closeButton: getCloseButton(),\n validationMessage: getValidationMessage(),\n progressSteps: getProgressSteps()\n };\n privateProps.domCache.set(instance, domCache);\n return domCache;\n };\n /**\n * @param {GlobalState} globalState\n * @param {SweetAlertOptions} innerParams\n * @param {function} dismissWith\n */\n\n\n const setupTimer = (globalState$$1, innerParams, dismissWith) => {\n const timerProgressBar = getTimerProgressBar();\n hide(timerProgressBar);\n\n if (innerParams.timer) {\n globalState$$1.timeout = new Timer(() => {\n dismissWith('timer');\n delete globalState$$1.timeout;\n }, innerParams.timer);\n\n if (innerParams.timerProgressBar) {\n show(timerProgressBar);\n applyCustomClass(timerProgressBar, innerParams, 'timerProgressBar');\n setTimeout(() => {\n if (globalState$$1.timeout && globalState$$1.timeout.running) {\n // timer can be already stopped or unset at this point\n animateTimerProgressBar(innerParams.timer);\n }\n });\n }\n }\n };\n /**\n * @param {DomCache} domCache\n * @param {SweetAlertOptions} innerParams\n */\n\n\n const initFocus = (domCache, innerParams) => {\n if (innerParams.toast) {\n return;\n }\n\n if (!callIfFunction(innerParams.allowEnterKey)) {\n return blurActiveElement();\n }\n\n if (!focusButton(domCache, innerParams)) {\n setFocus(innerParams, -1, 1);\n }\n };\n /**\n * @param {DomCache} domCache\n * @param {SweetAlertOptions} innerParams\n * @returns {boolean}\n */\n\n\n const focusButton = (domCache, innerParams) => {\n if (innerParams.focusDeny && isVisible(domCache.denyButton)) {\n domCache.denyButton.focus();\n return true;\n }\n\n if (innerParams.focusCancel && isVisible(domCache.cancelButton)) {\n domCache.cancelButton.focus();\n return true;\n }\n\n if (innerParams.focusConfirm && isVisible(domCache.confirmButton)) {\n domCache.confirmButton.focus();\n return true;\n }\n\n return false;\n };\n\n const blurActiveElement = () => {\n if (document.activeElement instanceof HTMLElement && typeof document.activeElement.blur === 'function') {\n document.activeElement.blur();\n }\n }; // This anti-war message will only be shown to Russian users visiting Russian sites\n\n\n if (typeof window !== 'undefined' && /^ru\\b/.test(navigator.language) && location.host.match(/\\.(ru|su|xn--p1ai)$/)) {\n if (Math.random() < 0.1) {\n const noWar = document.createElement('div');\n noWar.className = 'leave-russia-now-and-apply-your-skills-to-the-world';\n const video = getRandomElement([{\n text: \"\\u0412 \\u043D\\u0438\\u0436\\u0435\\u043F\\u0440\\u0438\\u0432\\u0435\\u0434\\u0451\\u043D\\u043D\\u043E\\u043C \\u0432\\u0438\\u0434\\u0435\\u043E \\u043E\\u0431\\u044A\\u044F\\u0441\\u043D\\u044F\\u0435\\u0442\\u0441\\u044F \\u043A\\u0430\\u043A \\u043A\\u0430\\u0436\\u0434\\u044B\\u0439 \\u0438\\u0437 \\u043D\\u0430\\u0441 \\u043C\\u043E\\u0436\\u0435\\u0442 \\u043F\\u043E\\u043C\\u043E\\u0447\\u044C \\u0432 \\u0442\\u043E\\u043C,\\n \\u0447\\u0442\\u043E\\u0431\\u044B \\u044D\\u0442\\u0430 \\u0431\\u0435\\u0441\\u0441\\u043C\\u044B\\u0441\\u043B\\u0435\\u043D\\u043D\\u0430\\u044F \\u0438 \\u0431\\u0435\\u0441\\u0447\\u0435\\u043B\\u043E\\u0432\\u0435\\u0447\\u043D\\u0430\\u044F \\u0432\\u043E\\u0439\\u043D\\u0430 \\u043E\\u0441\\u0442\\u0430\\u043D\\u043E\\u0432\\u0438\\u043B\\u0430\\u0441\\u044C:\",\n id: '4CfDhaRkw7I'\n }, {\n text: 'Эмпатия - главное человеческое чувство. Способность сопереживать. Способность поставить себя на место другого.',\n id: 's-GLAIY4DXA'\n }]);\n setInnerHtml(noWar, \"\\n
    \\n \\u0415\\u0441\\u043B\\u0438 \\u043C\\u044B \\u043D\\u0435 \\u043E\\u0441\\u0442\\u0430\\u043D\\u043E\\u0432\\u0438\\u043C \\u0432\\u043E\\u0439\\u043D\\u0443, \\u043E\\u043D\\u0430 \\u043F\\u0440\\u0438\\u0434\\u0435\\u0442 \\u0432 \\u0434\\u043E\\u043C \\u043A\\u0430\\u0436\\u0434\\u043E\\u0433\\u043E \\u0438\\u0437 \\u043D\\u0430\\u0441 \\u0438 \\u0435\\u0451 \\u043F\\u043E\\u0441\\u043B\\u0435\\u0434\\u0441\\u0442\\u0432\\u0438\\u044F \\u0431\\u0443\\u0434\\u0443\\u0442 \\u0443\\u0436\\u0430\\u0441\\u0430\\u044E\\u0449\\u0438\\u043C\\u0438.\\n
    \\n
    \\n \\u041F\\u0443\\u0442\\u0438\\u043D\\u0441\\u043A\\u0438\\u0439 \\u0440\\u0435\\u0436\\u0438\\u043C \\u0437\\u0430 20 \\u0441 \\u043B\\u0438\\u0448\\u043D\\u0438\\u043C \\u043B\\u0435\\u0442 \\u0441\\u0432\\u043E\\u0435\\u0433\\u043E \\u0441\\u0443\\u0449\\u0435\\u0441\\u0442\\u0432\\u043E\\u0432\\u0430\\u043D\\u0438\\u044F \\u0432\\u0434\\u043E\\u043B\\u0431\\u0438\\u043B \\u043D\\u0430\\u043C, \\u0447\\u0442\\u043E \\u043C\\u044B \\u0431\\u0435\\u0441\\u0441\\u0438\\u043B\\u044C\\u043D\\u044B \\u0438 \\u043E\\u0434\\u0438\\u043D \\u0447\\u0435\\u043B\\u043E\\u0432\\u0435\\u043A \\u043D\\u0435 \\u043C\\u043E\\u0436\\u0435\\u0442 \\u043D\\u0438\\u0447\\u0435\\u0433\\u043E \\u0441\\u0434\\u0435\\u043B\\u0430\\u0442\\u044C. \\u042D\\u0442\\u043E \\u043D\\u0435 \\u0442\\u0430\\u043A!\\n
    \\n
    \\n \".concat(video.text, \"\\n
    \\n \\n
    \\n \\u041D\\u0435\\u0442 \\u0432\\u043E\\u0439\\u043D\\u0435!\\n
    \\n \"));\n const closeButton = document.createElement('button');\n closeButton.innerHTML = '×';\n\n closeButton.onclick = () => noWar.remove();\n\n noWar.appendChild(closeButton);\n window.addEventListener('load', () => {\n setTimeout(() => {\n document.body.appendChild(noWar);\n }, 1000);\n });\n }\n } // Assign instance methods from src/instanceMethods/*.js to prototype\n\n\n Object.assign(SweetAlert.prototype, instanceMethods); // Assign static methods from src/staticMethods/*.js to constructor\n\n Object.assign(SweetAlert, staticMethods); // Proxy to instance methods to constructor, for now, for backwards compatibility\n\n Object.keys(instanceMethods).forEach(key => {\n SweetAlert[key] = function () {\n if (currentInstance) {\n return currentInstance[key](...arguments);\n }\n };\n });\n SweetAlert.DismissReason = DismissReason;\n SweetAlert.version = '11.4.24';\n\n const Swal = SweetAlert; // @ts-ignore\n\n Swal.default = Swal;\n\n return Swal;\n\n}));\nif (typeof this !== 'undefined' && this.Sweetalert2){ this.swal = this.sweetAlert = this.Swal = this.SweetAlert = this.Sweetalert2}\n\n\"undefined\"!=typeof document&&function(e,t){var n=e.createElement(\"style\");if(e.getElementsByTagName(\"head\")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(e){n.innerText=t}}(document,\".swal2-popup.swal2-toast{box-sizing:border-box;grid-column:1/4!important;grid-row:1/4!important;grid-template-columns:1fr 99fr 1fr;padding:1em;overflow-y:hidden;background:#fff;box-shadow:0 0 1px hsla(0deg,0%,0%,.075),0 1px 2px hsla(0deg,0%,0%,.075),1px 2px 4px hsla(0deg,0%,0%,.075),1px 3px 8px hsla(0deg,0%,0%,.075),2px 4px 16px hsla(0deg,0%,0%,.075);pointer-events:all}.swal2-popup.swal2-toast>*{grid-column:2}.swal2-popup.swal2-toast .swal2-title{margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-loading{justify-content:center}.swal2-popup.swal2-toast .swal2-input{height:2em;margin:.5em;font-size:1em}.swal2-popup.swal2-toast .swal2-validation-message{font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{grid-column:3/3;grid-row:1/99;align-self:center;width:.8em;height:.8em;margin:0;font-size:2em}.swal2-popup.swal2-toast .swal2-html-container{margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-html-container:empty{padding:0}.swal2-popup.swal2-toast .swal2-loader{grid-column:1;grid-row:1/99;align-self:center;width:2em;height:2em;margin:.25em}.swal2-popup.swal2-toast .swal2-icon{grid-column:1;grid-row:1/99;align-self:center;width:2em;min-width:2em;height:2em;margin:0 .5em 0 0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:700}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{justify-content:flex-start;height:auto;margin:0;margin-top:.5em;padding:0 .5em}.swal2-popup.swal2-toast .swal2-styled{margin:.25em .5em;padding:.4em .6em;font-size:1em}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;transform:rotate(45deg);border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.8em;left:-.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-toast-animate-success-line-tip .75s;animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-toast-animate-success-line-long .75s;animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{-webkit-animation:swal2-toast-show .5s;animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{-webkit-animation:swal2-toast-hide .1s forwards;animation:swal2-toast-hide .1s forwards}.swal2-container{display:grid;position:fixed;z-index:1060;top:0;right:0;bottom:0;left:0;box-sizing:border-box;grid-template-areas:\\\"top-start top top-end\\\" \\\"center-start center center-end\\\" \\\"bottom-start bottom-center bottom-end\\\";grid-template-rows:minmax(-webkit-min-content,auto) minmax(-webkit-min-content,auto) minmax(-webkit-min-content,auto);grid-template-rows:minmax(min-content,auto) minmax(min-content,auto) minmax(min-content,auto);height:100%;padding:.625em;overflow-x:hidden;transition:background-color .1s;-webkit-overflow-scrolling:touch}.swal2-container.swal2-backdrop-show,.swal2-container.swal2-noanimation{background:rgba(0,0,0,.4)}.swal2-container.swal2-backdrop-hide{background:0 0!important}.swal2-container.swal2-bottom-start,.swal2-container.swal2-center-start,.swal2-container.swal2-top-start{grid-template-columns:minmax(0,1fr) auto auto}.swal2-container.swal2-bottom,.swal2-container.swal2-center,.swal2-container.swal2-top{grid-template-columns:auto minmax(0,1fr) auto}.swal2-container.swal2-bottom-end,.swal2-container.swal2-center-end,.swal2-container.swal2-top-end{grid-template-columns:auto auto minmax(0,1fr)}.swal2-container.swal2-top-start>.swal2-popup{align-self:start}.swal2-container.swal2-top>.swal2-popup{grid-column:2;align-self:start;justify-self:center}.swal2-container.swal2-top-end>.swal2-popup,.swal2-container.swal2-top-right>.swal2-popup{grid-column:3;align-self:start;justify-self:end}.swal2-container.swal2-center-left>.swal2-popup,.swal2-container.swal2-center-start>.swal2-popup{grid-row:2;align-self:center}.swal2-container.swal2-center>.swal2-popup{grid-column:2;grid-row:2;align-self:center;justify-self:center}.swal2-container.swal2-center-end>.swal2-popup,.swal2-container.swal2-center-right>.swal2-popup{grid-column:3;grid-row:2;align-self:center;justify-self:end}.swal2-container.swal2-bottom-left>.swal2-popup,.swal2-container.swal2-bottom-start>.swal2-popup{grid-column:1;grid-row:3;align-self:end}.swal2-container.swal2-bottom>.swal2-popup{grid-column:2;grid-row:3;justify-self:center;align-self:end}.swal2-container.swal2-bottom-end>.swal2-popup,.swal2-container.swal2-bottom-right>.swal2-popup{grid-column:3;grid-row:3;align-self:end;justify-self:end}.swal2-container.swal2-grow-fullscreen>.swal2-popup,.swal2-container.swal2-grow-row>.swal2-popup{grid-column:1/4;width:100%}.swal2-container.swal2-grow-column>.swal2-popup,.swal2-container.swal2-grow-fullscreen>.swal2-popup{grid-row:1/4;align-self:stretch}.swal2-container.swal2-no-transition{transition:none!important}.swal2-popup{display:none;position:relative;box-sizing:border-box;grid-template-columns:minmax(0,100%);width:32em;max-width:100%;padding:0 0 1.25em;border:none;border-radius:5px;background:#fff;color:#545454;font-family:inherit;font-size:1rem}.swal2-popup:focus{outline:0}.swal2-popup.swal2-loading{overflow-y:hidden}.swal2-title{position:relative;max-width:100%;margin:0;padding:.8em 1em 0;color:inherit;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}.swal2-actions{display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:auto;margin:1.25em auto 0;padding:0}.swal2-actions:not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}.swal2-actions:not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0,0,0,.1),rgba(0,0,0,.1))}.swal2-actions:not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0,0,0,.2),rgba(0,0,0,.2))}.swal2-loader{display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;-webkit-animation:swal2-rotate-loading 1.5s linear 0s infinite normal;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 transparent #2778c4 transparent}.swal2-styled{margin:.3125em;padding:.625em 1.1em;transition:box-shadow .1s;box-shadow:0 0 0 3px transparent;font-weight:500}.swal2-styled:not([disabled]){cursor:pointer}.swal2-styled.swal2-confirm{border:0;border-radius:.25em;background:initial;background-color:#7066e0;color:#fff;font-size:1em}.swal2-styled.swal2-confirm:focus{box-shadow:0 0 0 3px rgba(112,102,224,.5)}.swal2-styled.swal2-deny{border:0;border-radius:.25em;background:initial;background-color:#dc3741;color:#fff;font-size:1em}.swal2-styled.swal2-deny:focus{box-shadow:0 0 0 3px rgba(220,55,65,.5)}.swal2-styled.swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#6e7881;color:#fff;font-size:1em}.swal2-styled.swal2-cancel:focus{box-shadow:0 0 0 3px rgba(110,120,129,.5)}.swal2-styled.swal2-default-outline:focus{box-shadow:0 0 0 3px rgba(100,150,200,.5)}.swal2-styled:focus{outline:0}.swal2-styled::-moz-focus-inner{border:0}.swal2-footer{justify-content:center;margin:1em 0 0;padding:1em 1em 0;border-top:1px solid #eee;color:inherit;font-size:1em}.swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;grid-column:auto!important;overflow:hidden;border-bottom-right-radius:5px;border-bottom-left-radius:5px}.swal2-timer-progress-bar{width:100%;height:.25em;background:rgba(0,0,0,.2)}.swal2-image{max-width:100%;margin:2em auto 1em}.swal2-close{z-index:2;align-items:center;justify-content:center;width:1.2em;height:1.2em;margin-top:0;margin-right:0;margin-bottom:-1.2em;padding:0;overflow:hidden;transition:color .1s,box-shadow .1s;border:none;border-radius:5px;background:0 0;color:#ccc;font-family:serif;font-family:monospace;font-size:2.5em;cursor:pointer;justify-self:end}.swal2-close:hover{transform:none;background:0 0;color:#f27474}.swal2-close:focus{outline:0;box-shadow:inset 0 0 0 3px rgba(100,150,200,.5)}.swal2-close::-moz-focus-inner{border:0}.swal2-html-container{z-index:1;justify-content:center;margin:1em 1.6em .3em;padding:0;overflow:auto;color:inherit;font-size:1.125em;font-weight:400;line-height:normal;text-align:center;word-wrap:break-word;word-break:break-word}.swal2-checkbox,.swal2-file,.swal2-input,.swal2-radio,.swal2-select,.swal2-textarea{margin:1em 2em 3px}.swal2-file,.swal2-input,.swal2-textarea{box-sizing:border-box;width:auto;transition:border-color .1s,box-shadow .1s;border:1px solid #d9d9d9;border-radius:.1875em;background:0 0;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px transparent;color:inherit;font-size:1.125em}.swal2-file.swal2-inputerror,.swal2-input.swal2-inputerror,.swal2-textarea.swal2-inputerror{border-color:#f27474!important;box-shadow:0 0 2px #f27474!important}.swal2-file:focus,.swal2-input:focus,.swal2-textarea:focus{border:1px solid #b4dbed;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(100,150,200,.5)}.swal2-file::-moz-placeholder,.swal2-input::-moz-placeholder,.swal2-textarea::-moz-placeholder{color:#ccc}.swal2-file:-ms-input-placeholder,.swal2-input:-ms-input-placeholder,.swal2-textarea:-ms-input-placeholder{color:#ccc}.swal2-file::placeholder,.swal2-input::placeholder,.swal2-textarea::placeholder{color:#ccc}.swal2-range{margin:1em 2em 3px;background:#fff}.swal2-range input{width:80%}.swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}.swal2-range input,.swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}.swal2-input{height:2.625em;padding:0 .75em}.swal2-file{width:75%;margin-right:auto;margin-left:auto;background:0 0;font-size:1.125em}.swal2-textarea{height:6.75em;padding:.75em}.swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:0 0;color:inherit;font-size:1.125em}.swal2-checkbox,.swal2-radio{align-items:center;justify-content:center;background:#fff;color:inherit}.swal2-checkbox label,.swal2-radio label{margin:0 .6em;font-size:1.125em}.swal2-checkbox input,.swal2-radio input{flex-shrink:0;margin:0 .4em}.swal2-input-label{display:flex;justify-content:center;margin:1em auto 0}.swal2-validation-message{align-items:center;justify-content:center;margin:1em 0 0;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}.swal2-validation-message::before{content:\\\"!\\\";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}.swal2-icon{position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:2.5em auto .6em;border:.25em solid transparent;border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}.swal2-icon.swal2-error{border-color:#f27474;color:#f27474}.swal2-icon.swal2-error .swal2-x-mark{position:relative;flex-grow:1}.swal2-icon.swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}.swal2-icon.swal2-error.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark{-webkit-animation:swal2-animate-error-x-mark .5s;animation:swal2-animate-error-x-mark .5s}.swal2-icon.swal2-warning{border-color:#facea8;color:#f8bb86}.swal2-icon.swal2-warning.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-warning.swal2-icon-show .swal2-icon-content{-webkit-animation:swal2-animate-i-mark .5s;animation:swal2-animate-i-mark .5s}.swal2-icon.swal2-info{border-color:#9de0f6;color:#3fc3ee}.swal2-icon.swal2-info.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-info.swal2-icon-show .swal2-icon-content{-webkit-animation:swal2-animate-i-mark .8s;animation:swal2-animate-i-mark .8s}.swal2-icon.swal2-question{border-color:#c9dae1;color:#87adbd}.swal2-icon.swal2-question.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-question.swal2-icon-show .swal2-icon-content{-webkit-animation:swal2-animate-question-mark .8s;animation:swal2-animate-question-mark .8s}.swal2-icon.swal2-success{border-color:#a5dc86;color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}.swal2-icon.swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-.25em;left:-.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}.swal2-icon.swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}.swal2-icon.swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}.swal2-icon.swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-animate-success-line-tip .75s;animation:swal2-animate-success-line-tip .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-animate-success-line-long .75s;animation:swal2-animate-success-line-long .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right{-webkit-animation:swal2-rotate-success-circular-line 4.25s ease-in;animation:swal2-rotate-success-circular-line 4.25s ease-in}.swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:1.25em auto;padding:0;background:0 0;font-weight:600}.swal2-progress-steps li{display:inline-block;position:relative}.swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}.swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}[class^=swal2]{-webkit-tap-highlight-color:transparent}.swal2-show{-webkit-animation:swal2-show .3s;animation:swal2-show .3s}.swal2-hide{-webkit-animation:swal2-hide .15s forwards;animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{margin-right:initial;margin-left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}.leave-russia-now-and-apply-your-skills-to-the-world{display:flex;position:fixed;z-index:1939;top:0;right:0;bottom:0;left:0;flex-direction:column;align-items:center;justify-content:center;padding:25px 0 20px;background:#20232a;color:#fff;text-align:center}.leave-russia-now-and-apply-your-skills-to-the-world div{max-width:560px;margin:10px;line-height:146%}.leave-russia-now-and-apply-your-skills-to-the-world iframe{max-width:100%;max-height:55.5555555556vmin;margin:16px auto}.leave-russia-now-and-apply-your-skills-to-the-world strong{border-bottom:2px dashed #fff}.leave-russia-now-and-apply-your-skills-to-the-world button{display:flex;position:fixed;z-index:1940;top:0;right:0;align-items:center;justify-content:center;width:48px;height:48px;margin-right:10px;margin-bottom:-10px;border:none;background:0 0;color:#aaa;font-size:48px;font-weight:700;cursor:pointer}.leave-russia-now-and-apply-your-skills-to-the-world button:hover{color:#fff}@-webkit-keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@-webkit-keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@-webkit-keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@-webkit-keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@-webkit-keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@-webkit-keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@-webkit-keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@-webkit-keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@-webkit-keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@-webkit-keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@-webkit-keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@-webkit-keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@-webkit-keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@-webkit-keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto!important}body.swal2-no-backdrop .swal2-container{background-color:transparent!important;pointer-events:none}body.swal2-no-backdrop .swal2-container .swal2-popup{pointer-events:all}body.swal2-no-backdrop .swal2-container .swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll!important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static!important}}body.swal2-toast-shown .swal2-container{box-sizing:border-box;width:360px;max-width:100%;background-color:transparent;pointer-events:none}body.swal2-toast-shown .swal2-container.swal2-top{top:0;right:auto;bottom:auto;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{top:0;right:0;bottom:auto;left:auto}body.swal2-toast-shown .swal2-container.swal2-top-left,body.swal2-toast-shown .swal2-container.swal2-top-start{top:0;right:auto;bottom:auto;left:0}body.swal2-toast-shown .swal2-container.swal2-center-left,body.swal2-toast-shown .swal2-container.swal2-center-start{top:50%;right:auto;bottom:auto;left:0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{top:50%;right:auto;bottom:auto;left:50%;transform:translate(-50%,-50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{top:50%;right:0;bottom:auto;left:auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-left,body.swal2-toast-shown .swal2-container.swal2-bottom-start{top:auto;right:auto;bottom:0;left:0}body.swal2-toast-shown .swal2-container.swal2-bottom{top:auto;right:auto;bottom:0;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{top:auto;right:0;bottom:0;left:auto}\");","import { ɵɵdefineInjectable, Injectable, Component, NgModule } from '@angular/core';\n\nimport * as ɵngcc0 from '@angular/core';\nclass ZoftiniumFrontendService {\r\n constructor() { }\r\n}\nZoftiniumFrontendService.ɵfac = function ZoftiniumFrontendService_Factory(t) { return new (t || ZoftiniumFrontendService)(); };\r\nZoftiniumFrontendService.ɵprov = ɵɵdefineInjectable({ factory: function ZoftiniumFrontendService_Factory() { return new ZoftiniumFrontendService(); }, token: ZoftiniumFrontendService, providedIn: \"root\" });\r\nZoftiniumFrontendService.ctorParameters = () => [];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ZoftiniumFrontendService, [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }], function () { return []; }, null); })();\n\nclass ZoftiniumFrontendComponent {\r\n constructor() { }\r\n ngOnInit() {\r\n }\r\n}\nZoftiniumFrontendComponent.ɵfac = function ZoftiniumFrontendComponent_Factory(t) { return new (t || ZoftiniumFrontendComponent)(); };\nZoftiniumFrontendComponent.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: ZoftiniumFrontendComponent, selectors: [[\"lib-ZoftiniumFrontend\"]], decls: 2, vars: 0, template: function ZoftiniumFrontendComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵelementStart(0, \"p\");\n ɵngcc0.ɵɵtext(1, \" zoftinium-frontend works! \");\n ɵngcc0.ɵɵelementEnd();\n } }, encapsulation: 2 });\r\nZoftiniumFrontendComponent.ctorParameters = () => [];\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ZoftiniumFrontendComponent, [{\n type: Component,\n args: [{\n selector: 'lib-ZoftiniumFrontend',\n template: `\r\n

    \r\n zoftinium-frontend works!\r\n

    \r\n `\n }]\n }], function () { return []; }, null); })();\n\nclass ZoftiniumFrontendModule {\r\n}\nZoftiniumFrontendModule.ɵfac = function ZoftiniumFrontendModule_Factory(t) { return new (t || ZoftiniumFrontendModule)(); };\nZoftiniumFrontendModule.ɵmod = /*@__PURE__*/ ɵngcc0.ɵɵdefineNgModule({ type: ZoftiniumFrontendModule });\nZoftiniumFrontendModule.ɵinj = /*@__PURE__*/ ɵngcc0.ɵɵdefineInjector({});\n(function () { (typeof ngDevMode === \"undefined\" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(ZoftiniumFrontendModule, [{\n type: NgModule,\n args: [{\n declarations: [ZoftiniumFrontendComponent],\n imports: [],\n exports: [ZoftiniumFrontendComponent]\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(ZoftiniumFrontendModule, { declarations: [ZoftiniumFrontendComponent], exports: [ZoftiniumFrontendComponent] }); })();\n\nclass ActionResponse {\r\n constructor() {\r\n this.Message = \"\";\r\n this.Success = true;\r\n this.messages = [];\r\n }\r\n AddMessage(message) {\r\n this.messages.push(message);\r\n }\r\n GetMessages(separator) {\r\n return this.messages.join(separator);\r\n }\r\n}\n\nclass Chart {\r\n}\r\nclass CharDataset {\r\n}\r\nvar GraphicTypes;\r\n(function (GraphicTypes) {\r\n GraphicTypes[GraphicTypes[\"bar\"] = 0] = \"bar\";\r\n GraphicTypes[GraphicTypes[\"horizontalBar\"] = 1] = \"horizontalBar\";\r\n GraphicTypes[GraphicTypes[\"pie\"] = 2] = \"pie\";\r\n GraphicTypes[GraphicTypes[\"stackedbar\"] = 3] = \"stackedbar\";\r\n GraphicTypes[GraphicTypes[\"line\"] = 4] = \"line\";\r\n GraphicTypes[GraphicTypes[\"card\"] = 5] = \"card\";\r\n})(GraphicTypes || (GraphicTypes = {}));\n\nclass ClientObject {\r\n}\n\nclass Indicator {\r\n}\n\nclass KeyValuePair {\r\n}\n\nclass ServiceObject {\r\n constructor(Service, Module, Action) {\r\n this.Service = Service;\r\n this.Module = Module;\r\n this.Action = Action;\r\n this.Service = Service;\r\n this.Module = Module;\r\n this.Action = Action;\r\n }\r\n}\n\nclass User {\r\n constructor() {\r\n this.Profile = new Profile();\r\n this.MustChangePassword = false;\r\n }\r\n}\r\nclass Profile {\r\n constructor() {\r\n this.Permissions = [];\r\n }\r\n}\n\n/*\r\n * Public API Surface of zoftinium-frontend\r\n */\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { ActionResponse, CharDataset, Chart, ClientObject, GraphicTypes, Indicator, KeyValuePair, Profile, ServiceObject, User, ZoftiniumFrontendComponent, ZoftiniumFrontendModule, ZoftiniumFrontendService };\n\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n","/**\n * @license Angular v14.3.0\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\n/**\n * An injectable service that produces an animation sequence programmatically within an\n * Angular component or directive.\n * Provided by the `BrowserAnimationsModule` or `NoopAnimationsModule`.\n *\n * @usageNotes\n *\n * To use this service, add it to your component or directive as a dependency.\n * The service is instantiated along with your component.\n *\n * Apps do not typically need to create their own animation players, but if you\n * do need to, follow these steps:\n *\n * 1. Use the [AnimationBuilder.build](api/animations/AnimationBuilder#build)() method\n * to create a programmatic animation. The method returns an `AnimationFactory` instance.\n *\n * 2. Use the factory object to create an `AnimationPlayer` and attach it to a DOM element.\n *\n * 3. Use the player object to control the animation programmatically.\n *\n * For example:\n *\n * ```ts\n * // import the service from BrowserAnimationsModule\n * import {AnimationBuilder} from '@angular/animations';\n * // require the service as a dependency\n * class MyCmp {\n * constructor(private _builder: AnimationBuilder) {}\n *\n * makeAnimation(element: any) {\n * // first define a reusable animation\n * const myAnimation = this._builder.build([\n * style({ width: 0 }),\n * animate(1000, style({ width: '100px' }))\n * ]);\n *\n * // use the returned factory object to create a player\n * const player = myAnimation.create(element);\n *\n * player.play();\n * }\n * }\n * ```\n *\n * @publicApi\n */\nclass AnimationBuilder {\n}\n/**\n * A factory object returned from the\n * [AnimationBuilder.build](api/animations/AnimationBuilder#build)()\n * method.\n *\n * @publicApi\n */\nclass AnimationFactory {\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 * Specifies automatic styling.\n *\n * @publicApi\n */\nconst AUTO_STYLE = '*';\n/**\n * Creates a named animation trigger, containing a list of [`state()`](api/animations/state)\n * and `transition()` entries to be evaluated when the expression\n * bound to the trigger changes.\n *\n * @param name An identifying string.\n * @param definitions An animation definition object, containing an array of\n * [`state()`](api/animations/state) and `transition()` declarations.\n *\n * @return An object that encapsulates the trigger data.\n *\n * @usageNotes\n * Define an animation trigger in the `animations` section of `@Component` metadata.\n * In the template, reference the trigger by name and bind it to a trigger expression that\n * evaluates to a defined animation state, using the following format:\n *\n * `[@triggerName]=\"expression\"`\n *\n * Animation trigger bindings convert all values to strings, and then match the\n * previous and current values against any linked transitions.\n * Booleans can be specified as `1` or `true` and `0` or `false`.\n *\n * ### Usage Example\n *\n * The following example creates an animation trigger reference based on the provided\n * name value.\n * The provided animation value is expected to be an array consisting of state and\n * transition declarations.\n *\n * ```typescript\n * @Component({\n * selector: \"my-component\",\n * templateUrl: \"my-component-tpl.html\",\n * animations: [\n * trigger(\"myAnimationTrigger\", [\n * state(...),\n * state(...),\n * transition(...),\n * transition(...)\n * ])\n * ]\n * })\n * class MyComponent {\n * myStatusExp = \"something\";\n * }\n * ```\n *\n * The template associated with this component makes use of the defined trigger\n * by binding to an element within its template code.\n *\n * ```html\n * \n *
    ...
    \n * ```\n *\n * ### Using an inline function\n * The `transition` animation method also supports reading an inline function which can decide\n * if its associated animation should be run.\n *\n * ```typescript\n * // this method is run each time the `myAnimationTrigger` trigger value changes.\n * function myInlineMatcherFn(fromState: string, toState: string, element: any, params: {[key:\n string]: any}): boolean {\n * // notice that `element` and `params` are also available here\n * return toState == 'yes-please-animate';\n * }\n *\n * @Component({\n * selector: 'my-component',\n * templateUrl: 'my-component-tpl.html',\n * animations: [\n * trigger('myAnimationTrigger', [\n * transition(myInlineMatcherFn, [\n * // the animation sequence code\n * ]),\n * ])\n * ]\n * })\n * class MyComponent {\n * myStatusExp = \"yes-please-animate\";\n * }\n * ```\n *\n * ### Disabling Animations\n * When true, the special animation control binding `@.disabled` binding prevents\n * all animations from rendering.\n * Place the `@.disabled` binding on an element to disable\n * animations on the element itself, as well as any inner animation triggers\n * within the element.\n *\n * The following example shows how to use this feature:\n *\n * ```typescript\n * @Component({\n * selector: 'my-component',\n * template: `\n *
    \n *
    \n *
    \n * `,\n * animations: [\n * trigger(\"childAnimation\", [\n * // ...\n * ])\n * ]\n * })\n * class MyComponent {\n * isDisabled = true;\n * exp = '...';\n * }\n * ```\n *\n * When `@.disabled` is true, it prevents the `@childAnimation` trigger from animating,\n * along with any inner animations.\n *\n * ### Disable animations application-wide\n * When an area of the template is set to have animations disabled,\n * **all** inner components have their animations disabled as well.\n * This means that you can disable all animations for an app\n * by placing a host binding set on `@.disabled` on the topmost Angular component.\n *\n * ```typescript\n * import {Component, HostBinding} from '@angular/core';\n *\n * @Component({\n * selector: 'app-component',\n * templateUrl: 'app.component.html',\n * })\n * class AppComponent {\n * @HostBinding('@.disabled')\n * public animationsDisabled = true;\n * }\n * ```\n *\n * ### Overriding disablement of inner animations\n * Despite inner animations being disabled, a parent animation can `query()`\n * for inner elements located in disabled areas of the template and still animate\n * them if needed. This is also the case for when a sub animation is\n * queried by a parent and then later animated using `animateChild()`.\n *\n * ### Detecting when an animation is disabled\n * If a region of the DOM (or the entire application) has its animations disabled, the animation\n * trigger callbacks still fire, but for zero seconds. When the callback fires, it provides\n * an instance of an `AnimationEvent`. If animations are disabled,\n * the `.disabled` flag on the event is true.\n *\n * @publicApi\n */\nfunction trigger(name, definitions) {\n return { type: 7 /* AnimationMetadataType.Trigger */, name, definitions, options: {} };\n}\n/**\n * Defines an animation step that combines styling information with timing information.\n *\n * @param timings Sets `AnimateTimings` for the parent animation.\n * A string in the format \"duration [delay] [easing]\".\n * - Duration and delay are expressed as a number and optional time unit,\n * such as \"1s\" or \"10ms\" for one second and 10 milliseconds, respectively.\n * The default unit is milliseconds.\n * - The easing value controls how the animation accelerates and decelerates\n * during its runtime. Value is one of `ease`, `ease-in`, `ease-out`,\n * `ease-in-out`, or a `cubic-bezier()` function call.\n * If not supplied, no easing is applied.\n *\n * For example, the string \"1s 100ms ease-out\" specifies a duration of\n * 1000 milliseconds, and delay of 100 ms, and the \"ease-out\" easing style,\n * which decelerates near the end of the duration.\n * @param styles Sets AnimationStyles for the parent animation.\n * A function call to either `style()` or `keyframes()`\n * that returns a collection of CSS style entries to be applied to the parent animation.\n * When null, uses the styles from the destination state.\n * This is useful when describing an animation step that will complete an animation;\n * see \"Animating to the final state\" in `transitions()`.\n * @returns An object that encapsulates the animation step.\n *\n * @usageNotes\n * Call within an animation `sequence()`, `{@link animations/group group()}`, or\n * `transition()` call to specify an animation step\n * that applies given style data to the parent animation for a given amount of time.\n *\n * ### Syntax Examples\n * **Timing examples**\n *\n * The following examples show various `timings` specifications.\n * - `animate(500)` : Duration is 500 milliseconds.\n * - `animate(\"1s\")` : Duration is 1000 milliseconds.\n * - `animate(\"100ms 0.5s\")` : Duration is 100 milliseconds, delay is 500 milliseconds.\n * - `animate(\"5s ease-in\")` : Duration is 5000 milliseconds, easing in.\n * - `animate(\"5s 10ms cubic-bezier(.17,.67,.88,.1)\")` : Duration is 5000 milliseconds, delay is 10\n * milliseconds, easing according to a bezier curve.\n *\n * **Style examples**\n *\n * The following example calls `style()` to set a single CSS style.\n * ```typescript\n * animate(500, style({ background: \"red\" }))\n * ```\n * The following example calls `keyframes()` to set a CSS style\n * to different values for successive keyframes.\n * ```typescript\n * animate(500, keyframes(\n * [\n * style({ background: \"blue\" }),\n * style({ background: \"red\" })\n * ])\n * ```\n *\n * @publicApi\n */\nfunction animate(timings, styles = null) {\n return { type: 4 /* AnimationMetadataType.Animate */, styles, timings };\n}\n/**\n * @description Defines a list of animation steps to be run in parallel.\n *\n * @param steps An array of animation step objects.\n * - When steps are defined by `style()` or `animate()`\n * function calls, each call within the group is executed instantly.\n * - To specify offset styles to be applied at a later time, define steps with\n * `keyframes()`, or use `animate()` calls with a delay value.\n * For example:\n *\n * ```typescript\n * group([\n * animate(\"1s\", style({ background: \"black\" })),\n * animate(\"2s\", style({ color: \"white\" }))\n * ])\n * ```\n *\n * @param options An options object containing a delay and\n * developer-defined parameters that provide styling defaults and\n * can be overridden on invocation.\n *\n * @return An object that encapsulates the group data.\n *\n * @usageNotes\n * Grouped animations are useful when a series of styles must be\n * animated at different starting times and closed off at different ending times.\n *\n * When called within a `sequence()` or a\n * `transition()` call, does not continue to the next\n * instruction until all of the inner animation steps have completed.\n *\n * @publicApi\n */\nfunction group(steps, options = null) {\n return { type: 3 /* AnimationMetadataType.Group */, steps, options };\n}\n/**\n * Defines a list of animation steps to be run sequentially, one by one.\n *\n * @param steps An array of animation step objects.\n * - Steps defined by `style()` calls apply the styling data immediately.\n * - Steps defined by `animate()` calls apply the styling data over time\n * as specified by the timing data.\n *\n * ```typescript\n * sequence([\n * style({ opacity: 0 }),\n * animate(\"1s\", style({ opacity: 1 }))\n * ])\n * ```\n *\n * @param options An options object containing a delay and\n * developer-defined parameters that provide styling defaults and\n * can be overridden on invocation.\n *\n * @return An object that encapsulates the sequence data.\n *\n * @usageNotes\n * When you pass an array of steps to a\n * `transition()` call, the steps run sequentially by default.\n * Compare this to the `{@link animations/group group()}` call, which runs animation steps in\n *parallel.\n *\n * When a sequence is used within a `{@link animations/group group()}` or a `transition()` call,\n * execution continues to the next instruction only after each of the inner animation\n * steps have completed.\n *\n * @publicApi\n **/\nfunction sequence(steps, options = null) {\n return { type: 2 /* AnimationMetadataType.Sequence */, steps, options };\n}\n/**\n * Declares a key/value object containing CSS properties/styles that\n * can then be used for an animation [`state`](api/animations/state), within an animation\n *`sequence`, or as styling data for calls to `animate()` and `keyframes()`.\n *\n * @param tokens A set of CSS styles or HTML styles associated with an animation state.\n * The value can be any of the following:\n * - A key-value style pair associating a CSS property with a value.\n * - An array of key-value style pairs.\n * - An asterisk (*), to use auto-styling, where styles are derived from the element\n * being animated and applied to the animation when it starts.\n *\n * Auto-styling can be used to define a state that depends on layout or other\n * environmental factors.\n *\n * @return An object that encapsulates the style data.\n *\n * @usageNotes\n * The following examples create animation styles that collect a set of\n * CSS property values:\n *\n * ```typescript\n * // string values for CSS properties\n * style({ background: \"red\", color: \"blue\" })\n *\n * // numerical pixel values\n * style({ width: 100, height: 0 })\n * ```\n *\n * The following example uses auto-styling to allow an element to animate from\n * a height of 0 up to its full height:\n *\n * ```\n * style({ height: 0 }),\n * animate(\"1s\", style({ height: \"*\" }))\n * ```\n *\n * @publicApi\n **/\nfunction style(tokens) {\n return { type: 6 /* AnimationMetadataType.Style */, styles: tokens, offset: null };\n}\n/**\n * Declares an animation state within a trigger attached to an element.\n *\n * @param name One or more names for the defined state in a comma-separated string.\n * The following reserved state names can be supplied to define a style for specific use\n * cases:\n *\n * - `void` You can associate styles with this name to be used when\n * the element is detached from the application. For example, when an `ngIf` evaluates\n * to false, the state of the associated element is void.\n * - `*` (asterisk) Indicates the default state. You can associate styles with this name\n * to be used as the fallback when the state that is being animated is not declared\n * within the trigger.\n *\n * @param styles A set of CSS styles associated with this state, created using the\n * `style()` function.\n * This set of styles persists on the element once the state has been reached.\n * @param options Parameters that can be passed to the state when it is invoked.\n * 0 or more key-value pairs.\n * @return An object that encapsulates the new state data.\n *\n * @usageNotes\n * Use the `trigger()` function to register states to an animation trigger.\n * Use the `transition()` function to animate between states.\n * When a state is active within a component, its associated styles persist on the element,\n * even when the animation ends.\n *\n * @publicApi\n **/\nfunction state(name, styles, options) {\n return { type: 0 /* AnimationMetadataType.State */, name, styles, options };\n}\n/**\n * Defines a set of animation styles, associating each style with an optional `offset` value.\n *\n * @param steps A set of animation styles with optional offset data.\n * The optional `offset` value for a style specifies a percentage of the total animation\n * time at which that style is applied.\n * @returns An object that encapsulates the keyframes data.\n *\n * @usageNotes\n * Use with the `animate()` call. Instead of applying animations\n * from the current state\n * to the destination state, keyframes describe how each style entry is applied and at what point\n * within the animation arc.\n * Compare [CSS Keyframe Animations](https://www.w3schools.com/css/css3_animations.asp).\n *\n * ### Usage\n *\n * In the following example, the offset values describe\n * when each `backgroundColor` value is applied. The color is red at the start, and changes to\n * blue when 20% of the total time has elapsed.\n *\n * ```typescript\n * // the provided offset values\n * animate(\"5s\", keyframes([\n * style({ backgroundColor: \"red\", offset: 0 }),\n * style({ backgroundColor: \"blue\", offset: 0.2 }),\n * style({ backgroundColor: \"orange\", offset: 0.3 }),\n * style({ backgroundColor: \"black\", offset: 1 })\n * ]))\n * ```\n *\n * If there are no `offset` values specified in the style entries, the offsets\n * are calculated automatically.\n *\n * ```typescript\n * animate(\"5s\", keyframes([\n * style({ backgroundColor: \"red\" }) // offset = 0\n * style({ backgroundColor: \"blue\" }) // offset = 0.33\n * style({ backgroundColor: \"orange\" }) // offset = 0.66\n * style({ backgroundColor: \"black\" }) // offset = 1\n * ]))\n *```\n\n * @publicApi\n */\nfunction keyframes(steps) {\n return { type: 5 /* AnimationMetadataType.Keyframes */, steps };\n}\n/**\n * Declares an animation transition which is played when a certain specified condition is met.\n *\n * @param stateChangeExpr A string with a specific format or a function that specifies when the\n * animation transition should occur (see [State Change Expression](#state-change-expression)).\n *\n * @param steps One or more animation objects that represent the animation's instructions.\n *\n * @param options An options object that can be used to specify a delay for the animation or provide\n * custom parameters for it.\n *\n * @returns An object that encapsulates the transition data.\n *\n * @usageNotes\n *\n * ### State Change Expression\n *\n * The State Change Expression instructs Angular when to run the transition's animations, it can\n *either be\n * - a string with a specific syntax\n * - or a function that compares the previous and current state (value of the expression bound to\n * the element's trigger) and returns `true` if the transition should occur or `false` otherwise\n *\n * The string format can be:\n * - `fromState => toState`, which indicates that the transition's animations should occur then the\n * expression bound to the trigger's element goes from `fromState` to `toState`\n *\n * _Example:_\n * ```typescript\n * transition('open => closed', animate('.5s ease-out', style({ height: 0 }) ))\n * ```\n *\n * - `fromState <=> toState`, which indicates that the transition's animations should occur then\n * the expression bound to the trigger's element goes from `fromState` to `toState` or vice versa\n *\n * _Example:_\n * ```typescript\n * transition('enabled <=> disabled', animate('1s cubic-bezier(0.8,0.3,0,1)'))\n * ```\n *\n * - `:enter`/`:leave`, which indicates that the transition's animations should occur when the\n * element enters or exists the DOM\n *\n * _Example:_\n * ```typescript\n * transition(':enter', [\n * style({ opacity: 0 }),\n * animate('500ms', style({ opacity: 1 }))\n * ])\n * ```\n *\n * - `:increment`/`:decrement`, which indicates that the transition's animations should occur when\n * the numerical expression bound to the trigger's element has increased in value or decreased\n *\n * _Example:_\n * ```typescript\n * transition(':increment', query('@counter', animateChild()))\n * ```\n *\n * - a sequence of any of the above divided by commas, which indicates that transition's animations\n * should occur whenever one of the state change expressions matches\n *\n * _Example:_\n * ```typescript\n * transition(':increment, * => enabled, :enter', animate('1s ease', keyframes([\n * style({ transform: 'scale(1)', offset: 0}),\n * style({ transform: 'scale(1.1)', offset: 0.7}),\n * style({ transform: 'scale(1)', offset: 1})\n * ]))),\n * ```\n *\n * Also note that in such context:\n * - `void` can be used to indicate the absence of the element\n * - asterisks can be used as wildcards that match any state\n * - (as a consequence of the above, `void => *` is equivalent to `:enter` and `* => void` is\n * equivalent to `:leave`)\n * - `true` and `false` also match expression values of `1` and `0` respectively (but do not match\n * _truthy_ and _falsy_ values)\n *\n *
    \n *\n * Be careful about entering end leaving elements as their transitions present a common\n * pitfall for developers.\n *\n * Note that when an element with a trigger enters the DOM its `:enter` transition always\n * gets executed, but its `:leave` transition will not be executed if the element is removed\n * alongside its parent (as it will be removed \"without warning\" before its transition has\n * a chance to be executed, the only way that such transition can occur is if the element\n * is exiting the DOM on its own).\n *\n *\n *
    \n *\n * ### Animating to a Final State\n *\n * If the final step in a transition is a call to `animate()` that uses a timing value\n * with no `style` data, that step is automatically considered the final animation arc,\n * for the element to reach the final state, in such case Angular automatically adds or removes\n * CSS styles to ensure that the element is in the correct final state.\n *\n *\n * ### Usage Examples\n *\n * - Transition animations applied based on\n * the trigger's expression value\n *\n * ```HTML\n *
    \n * ...\n *
    \n * ```\n *\n * ```typescript\n * trigger(\"myAnimationTrigger\", [\n * ..., // states\n * transition(\"on => off, open => closed\", animate(500)),\n * transition(\"* <=> error\", query('.indicator', animateChild()))\n * ])\n * ```\n *\n * - Transition animations applied based on custom logic dependent\n * on the trigger's expression value and provided parameters\n *\n * ```HTML\n *
    \n * ...\n *
    \n * ```\n *\n * ```typescript\n * trigger(\"myAnimationTrigger\", [\n * ..., // states\n * transition(\n * (fromState, toState, _element, params) =>\n * ['firststep', 'laststep'].includes(fromState.toLowerCase())\n * && toState === params?.['target'],\n * animate('1s')\n * )\n * ])\n * ```\n *\n * @publicApi\n **/\nfunction transition(stateChangeExpr, steps, options = null) {\n return { type: 1 /* AnimationMetadataType.Transition */, expr: stateChangeExpr, animation: steps, options };\n}\n/**\n * Produces a reusable animation that can be invoked in another animation or sequence,\n * by calling the `useAnimation()` function.\n *\n * @param steps One or more animation objects, as returned by the `animate()`\n * or `sequence()` function, that form a transformation from one state to another.\n * A sequence is used by default when you pass an array.\n * @param options An options object that can contain a delay value for the start of the\n * animation, and additional developer-defined parameters.\n * Provided values for additional parameters are used as defaults,\n * and override values can be passed to the caller on invocation.\n * @returns An object that encapsulates the animation data.\n *\n * @usageNotes\n * The following example defines a reusable animation, providing some default parameter\n * values.\n *\n * ```typescript\n * var fadeAnimation = animation([\n * style({ opacity: '{{ start }}' }),\n * animate('{{ time }}',\n * style({ opacity: '{{ end }}'}))\n * ],\n * { params: { time: '1000ms', start: 0, end: 1 }});\n * ```\n *\n * The following invokes the defined animation with a call to `useAnimation()`,\n * passing in override parameter values.\n *\n * ```js\n * useAnimation(fadeAnimation, {\n * params: {\n * time: '2s',\n * start: 1,\n * end: 0\n * }\n * })\n * ```\n *\n * If any of the passed-in parameter values are missing from this call,\n * the default values are used. If one or more parameter values are missing before a step is\n * animated, `useAnimation()` throws an error.\n *\n * @publicApi\n */\nfunction animation(steps, options = null) {\n return { type: 8 /* AnimationMetadataType.Reference */, animation: steps, options };\n}\n/**\n * Executes a queried inner animation element within an animation sequence.\n *\n * @param options An options object that can contain a delay value for the start of the\n * animation, and additional override values for developer-defined parameters.\n * @return An object that encapsulates the child animation data.\n *\n * @usageNotes\n * Each time an animation is triggered in Angular, the parent animation\n * has priority and any child animations are blocked. In order\n * for a child animation to run, the parent animation must query each of the elements\n * containing child animations, and run them using this function.\n *\n * Note that this feature is designed to be used with `query()` and it will only work\n * with animations that are assigned using the Angular animation library. CSS keyframes\n * and transitions are not handled by this API.\n *\n * @publicApi\n */\nfunction animateChild(options = null) {\n return { type: 9 /* AnimationMetadataType.AnimateChild */, options };\n}\n/**\n * Starts a reusable animation that is created using the `animation()` function.\n *\n * @param animation The reusable animation to start.\n * @param options An options object that can contain a delay value for the start of\n * the animation, and additional override values for developer-defined parameters.\n * @return An object that contains the animation parameters.\n *\n * @publicApi\n */\nfunction useAnimation(animation, options = null) {\n return { type: 10 /* AnimationMetadataType.AnimateRef */, animation, options };\n}\n/**\n * Finds one or more inner elements within the current element that is\n * being animated within a sequence. Use with `animate()`.\n *\n * @param selector The element to query, or a set of elements that contain Angular-specific\n * characteristics, specified with one or more of the following tokens.\n * - `query(\":enter\")` or `query(\":leave\")` : Query for newly inserted/removed elements (not\n * all elements can be queried via these tokens, see\n * [Entering and Leaving Elements](#entering-and-leaving-elements))\n * - `query(\":animating\")` : Query all currently animating elements.\n * - `query(\"@triggerName\")` : Query elements that contain an animation trigger.\n * - `query(\"@*\")` : Query all elements that contain an animation triggers.\n * - `query(\":self\")` : Include the current element into the animation sequence.\n *\n * @param animation One or more animation steps to apply to the queried element or elements.\n * An array is treated as an animation sequence.\n * @param options An options object. Use the 'limit' field to limit the total number of\n * items to collect.\n * @return An object that encapsulates the query data.\n *\n * @usageNotes\n *\n * ### Multiple Tokens\n *\n * Tokens can be merged into a combined query selector string. For example:\n *\n * ```typescript\n * query(':self, .record:enter, .record:leave, @subTrigger', [...])\n * ```\n *\n * The `query()` function collects multiple elements and works internally by using\n * `element.querySelectorAll`. Use the `limit` field of an options object to limit\n * the total number of items to be collected. For example:\n *\n * ```js\n * query('div', [\n * animate(...),\n * animate(...)\n * ], { limit: 1 })\n * ```\n *\n * By default, throws an error when zero items are found. Set the\n * `optional` flag to ignore this error. For example:\n *\n * ```js\n * query('.some-element-that-may-not-be-there', [\n * animate(...),\n * animate(...)\n * ], { optional: true })\n * ```\n *\n * ### Entering and Leaving Elements\n *\n * Not all elements can be queried via the `:enter` and `:leave` tokens, the only ones\n * that can are those that Angular assumes can enter/leave based on their own logic\n * (if their insertion/removal is simply a consequence of that of their parent they\n * should be queried via a different token in their parent's `:enter`/`:leave` transitions).\n *\n * The only elements Angular assumes can enter/leave based on their own logic (thus the only\n * ones that can be queried via the `:enter` and `:leave` tokens) are:\n * - Those inserted dynamically (via `ViewContainerRef`)\n * - Those that have a structural directive (which, under the hood, are a subset of the above ones)\n *\n *
    \n *\n * Note that elements will be successfully queried via `:enter`/`:leave` even if their\n * insertion/removal is not done manually via `ViewContainerRef`or caused by their structural\n * directive (e.g. they enter/exit alongside their parent).\n *\n *
    \n *\n *
    \n *\n * There is an exception to what previously mentioned, besides elements entering/leaving based on\n * their own logic, elements with an animation trigger can always be queried via `:leave` when\n * their parent is also leaving.\n *\n *
    \n *\n * ### Usage Example\n *\n * The following example queries for inner elements and animates them\n * individually using `animate()`.\n *\n * ```typescript\n * @Component({\n * selector: 'inner',\n * template: `\n *
    \n *

    Title

    \n *
    \n * Blah blah blah\n *
    \n *
    \n * `,\n * animations: [\n * trigger('queryAnimation', [\n * transition('* => goAnimate', [\n * // hide the inner elements\n * query('h1', style({ opacity: 0 })),\n * query('.content', style({ opacity: 0 })),\n *\n * // animate the inner elements in, one by one\n * query('h1', animate(1000, style({ opacity: 1 }))),\n * query('.content', animate(1000, style({ opacity: 1 }))),\n * ])\n * ])\n * ]\n * })\n * class Cmp {\n * exp = '';\n *\n * goAnimate() {\n * this.exp = 'goAnimate';\n * }\n * }\n * ```\n *\n * @publicApi\n */\nfunction query(selector, animation, options = null) {\n return { type: 11 /* AnimationMetadataType.Query */, selector, animation, options };\n}\n/**\n * Use within an animation `query()` call to issue a timing gap after\n * each queried item is animated.\n *\n * @param timings A delay value.\n * @param animation One ore more animation steps.\n * @returns An object that encapsulates the stagger data.\n *\n * @usageNotes\n * In the following example, a container element wraps a list of items stamped out\n * by an `ngFor`. The container element contains an animation trigger that will later be set\n * to query for each of the inner items.\n *\n * Each time items are added, the opacity fade-in animation runs,\n * and each removed item is faded out.\n * When either of these animations occur, the stagger effect is\n * applied after each item's animation is started.\n *\n * ```html\n * \n * \n *
    \n *
    \n *
    \n * {{ item }}\n *
    \n *
    \n * ```\n *\n * Here is the component code:\n *\n * ```typescript\n * import {trigger, transition, style, animate, query, stagger} from '@angular/animations';\n * @Component({\n * templateUrl: 'list.component.html',\n * animations: [\n * trigger('listAnimation', [\n * ...\n * ])\n * ]\n * })\n * class ListComponent {\n * items = [];\n *\n * showItems() {\n * this.items = [0,1,2,3,4];\n * }\n *\n * hideItems() {\n * this.items = [];\n * }\n *\n * toggle() {\n * this.items.length ? this.hideItems() : this.showItems();\n * }\n * }\n * ```\n *\n * Here is the animation trigger code:\n *\n * ```typescript\n * trigger('listAnimation', [\n * transition('* => *', [ // each time the binding value changes\n * query(':leave', [\n * stagger(100, [\n * animate('0.5s', style({ opacity: 0 }))\n * ])\n * ]),\n * query(':enter', [\n * style({ opacity: 0 }),\n * stagger(100, [\n * animate('0.5s', style({ opacity: 1 }))\n * ])\n * ])\n * ])\n * ])\n * ```\n *\n * @publicApi\n */\nfunction stagger(timings, animation) {\n return { type: 12 /* AnimationMetadataType.Stagger */, timings, animation };\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 scheduleMicroTask(cb) {\n Promise.resolve().then(cb);\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 * An empty programmatic controller for reusable animations.\n * Used internally when animations are disabled, to avoid\n * checking for the null case when an animation player is expected.\n *\n * @see `animate()`\n * @see `AnimationPlayer`\n * @see `GroupPlayer`\n *\n * @publicApi\n */\nclass NoopAnimationPlayer {\n constructor(duration = 0, delay = 0) {\n this._onDoneFns = [];\n this._onStartFns = [];\n this._onDestroyFns = [];\n this._originalOnDoneFns = [];\n this._originalOnStartFns = [];\n this._started = false;\n this._destroyed = false;\n this._finished = false;\n this._position = 0;\n this.parentPlayer = null;\n this.totalTime = duration + delay;\n }\n _onFinish() {\n if (!this._finished) {\n this._finished = true;\n this._onDoneFns.forEach(fn => fn());\n this._onDoneFns = [];\n }\n }\n onStart(fn) {\n this._originalOnStartFns.push(fn);\n this._onStartFns.push(fn);\n }\n onDone(fn) {\n this._originalOnDoneFns.push(fn);\n this._onDoneFns.push(fn);\n }\n onDestroy(fn) {\n this._onDestroyFns.push(fn);\n }\n hasStarted() {\n return this._started;\n }\n init() { }\n play() {\n if (!this.hasStarted()) {\n this._onStart();\n this.triggerMicrotask();\n }\n this._started = true;\n }\n /** @internal */\n triggerMicrotask() {\n scheduleMicroTask(() => this._onFinish());\n }\n _onStart() {\n this._onStartFns.forEach(fn => fn());\n this._onStartFns = [];\n }\n pause() { }\n restart() { }\n finish() {\n this._onFinish();\n }\n destroy() {\n if (!this._destroyed) {\n this._destroyed = true;\n if (!this.hasStarted()) {\n this._onStart();\n }\n this.finish();\n this._onDestroyFns.forEach(fn => fn());\n this._onDestroyFns = [];\n }\n }\n reset() {\n this._started = false;\n this._finished = false;\n this._onStartFns = this._originalOnStartFns;\n this._onDoneFns = this._originalOnDoneFns;\n }\n setPosition(position) {\n this._position = this.totalTime ? position * this.totalTime : 1;\n }\n getPosition() {\n return this.totalTime ? this._position / this.totalTime : 1;\n }\n /** @internal */\n triggerCallback(phaseName) {\n const methods = phaseName == 'start' ? this._onStartFns : this._onDoneFns;\n methods.forEach(fn => fn());\n methods.length = 0;\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 * A programmatic controller for a group of reusable animations.\n * Used internally to control animations.\n *\n * @see `AnimationPlayer`\n * @see `{@link animations/group group()}`\n *\n */\nclass AnimationGroupPlayer {\n constructor(_players) {\n this._onDoneFns = [];\n this._onStartFns = [];\n this._finished = false;\n this._started = false;\n this._destroyed = false;\n this._onDestroyFns = [];\n this.parentPlayer = null;\n this.totalTime = 0;\n this.players = _players;\n let doneCount = 0;\n let destroyCount = 0;\n let startCount = 0;\n const total = this.players.length;\n if (total == 0) {\n scheduleMicroTask(() => this._onFinish());\n }\n else {\n this.players.forEach(player => {\n player.onDone(() => {\n if (++doneCount == total) {\n this._onFinish();\n }\n });\n player.onDestroy(() => {\n if (++destroyCount == total) {\n this._onDestroy();\n }\n });\n player.onStart(() => {\n if (++startCount == total) {\n this._onStart();\n }\n });\n });\n }\n this.totalTime = this.players.reduce((time, player) => Math.max(time, player.totalTime), 0);\n }\n _onFinish() {\n if (!this._finished) {\n this._finished = true;\n this._onDoneFns.forEach(fn => fn());\n this._onDoneFns = [];\n }\n }\n init() {\n this.players.forEach(player => player.init());\n }\n onStart(fn) {\n this._onStartFns.push(fn);\n }\n _onStart() {\n if (!this.hasStarted()) {\n this._started = true;\n this._onStartFns.forEach(fn => fn());\n this._onStartFns = [];\n }\n }\n onDone(fn) {\n this._onDoneFns.push(fn);\n }\n onDestroy(fn) {\n this._onDestroyFns.push(fn);\n }\n hasStarted() {\n return this._started;\n }\n play() {\n if (!this.parentPlayer) {\n this.init();\n }\n this._onStart();\n this.players.forEach(player => player.play());\n }\n pause() {\n this.players.forEach(player => player.pause());\n }\n restart() {\n this.players.forEach(player => player.restart());\n }\n finish() {\n this._onFinish();\n this.players.forEach(player => player.finish());\n }\n destroy() {\n this._onDestroy();\n }\n _onDestroy() {\n if (!this._destroyed) {\n this._destroyed = true;\n this._onFinish();\n this.players.forEach(player => player.destroy());\n this._onDestroyFns.forEach(fn => fn());\n this._onDestroyFns = [];\n }\n }\n reset() {\n this.players.forEach(player => player.reset());\n this._destroyed = false;\n this._finished = false;\n this._started = false;\n }\n setPosition(p) {\n const timeAtPosition = p * this.totalTime;\n this.players.forEach(player => {\n const position = player.totalTime ? Math.min(1, timeAtPosition / player.totalTime) : 1;\n player.setPosition(position);\n });\n }\n getPosition() {\n const longestPlayer = this.players.reduce((longestSoFar, player) => {\n const newPlayerIsLongest = longestSoFar === null || player.totalTime > longestSoFar.totalTime;\n return newPlayerIsLongest ? player : longestSoFar;\n }, null);\n return longestPlayer != null ? longestPlayer.getPosition() : 0;\n }\n beforeDestroy() {\n this.players.forEach(player => {\n if (player.beforeDestroy) {\n player.beforeDestroy();\n }\n });\n }\n /** @internal */\n triggerCallback(phaseName) {\n const methods = phaseName == 'start' ? this._onStartFns : this._onDoneFns;\n methods.forEach(fn => fn());\n methods.length = 0;\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 ɵPRE_STYLE = '!';\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 * @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 * @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 * Generated bundle index. Do not edit.\n */\n\nexport { AUTO_STYLE, AnimationBuilder, AnimationFactory, NoopAnimationPlayer, animate, animateChild, animation, group, keyframes, query, sequence, stagger, state, style, transition, trigger, useAnimation, AnimationGroupPlayer as ɵAnimationGroupPlayer, ɵPRE_STYLE };\n","/**\n * @license Angular v14.3.0\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { ɵAnimationGroupPlayer, NoopAnimationPlayer, AUTO_STYLE, ɵPRE_STYLE, sequence, style } from '@angular/animations';\nimport * as i0 from '@angular/core';\nimport { ɵRuntimeError, Injectable } from '@angular/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 */\nconst LINE_START = '\\n - ';\nfunction invalidTimingValue(exp) {\n return new ɵRuntimeError(3000 /* RuntimeErrorCode.INVALID_TIMING_VALUE */, ngDevMode && `The provided timing value \"${exp}\" is invalid.`);\n}\nfunction negativeStepValue() {\n return new ɵRuntimeError(3100 /* RuntimeErrorCode.NEGATIVE_STEP_VALUE */, ngDevMode && 'Duration values below 0 are not allowed for this animation step.');\n}\nfunction negativeDelayValue() {\n return new ɵRuntimeError(3101 /* RuntimeErrorCode.NEGATIVE_DELAY_VALUE */, ngDevMode && 'Delay values below 0 are not allowed for this animation step.');\n}\nfunction invalidStyleParams(varName) {\n return new ɵRuntimeError(3001 /* RuntimeErrorCode.INVALID_STYLE_PARAMS */, ngDevMode &&\n `Unable to resolve the local animation param ${varName} in the given list of values`);\n}\nfunction invalidParamValue(varName) {\n return new ɵRuntimeError(3003 /* RuntimeErrorCode.INVALID_PARAM_VALUE */, ngDevMode && `Please provide a value for the animation param ${varName}`);\n}\nfunction invalidNodeType(nodeType) {\n return new ɵRuntimeError(3004 /* RuntimeErrorCode.INVALID_NODE_TYPE */, ngDevMode && `Unable to resolve animation metadata node #${nodeType}`);\n}\nfunction invalidCssUnitValue(userProvidedProperty, value) {\n return new ɵRuntimeError(3005 /* RuntimeErrorCode.INVALID_CSS_UNIT_VALUE */, ngDevMode && `Please provide a CSS unit value for ${userProvidedProperty}:${value}`);\n}\nfunction invalidTrigger() {\n return new ɵRuntimeError(3006 /* RuntimeErrorCode.INVALID_TRIGGER */, ngDevMode &&\n 'animation triggers cannot be prefixed with an `@` sign (e.g. trigger(\\'@foo\\', [...]))');\n}\nfunction invalidDefinition() {\n return new ɵRuntimeError(3007 /* RuntimeErrorCode.INVALID_DEFINITION */, ngDevMode && 'only state() and transition() definitions can sit inside of a trigger()');\n}\nfunction invalidState(metadataName, missingSubs) {\n return new ɵRuntimeError(3008 /* RuntimeErrorCode.INVALID_STATE */, ngDevMode &&\n `state(\"${metadataName}\", ...) must define default values for all the following style substitutions: ${missingSubs.join(', ')}`);\n}\nfunction invalidStyleValue(value) {\n return new ɵRuntimeError(3002 /* RuntimeErrorCode.INVALID_STYLE_VALUE */, ngDevMode && `The provided style string value ${value} is not allowed.`);\n}\nfunction invalidProperty(prop) {\n return new ɵRuntimeError(3009 /* RuntimeErrorCode.INVALID_PROPERTY */, ngDevMode &&\n `The provided animation property \"${prop}\" is not a supported CSS property for animations`);\n}\nfunction invalidParallelAnimation(prop, firstStart, firstEnd, secondStart, secondEnd) {\n return new ɵRuntimeError(3010 /* RuntimeErrorCode.INVALID_PARALLEL_ANIMATION */, ngDevMode &&\n `The CSS property \"${prop}\" that exists between the times of \"${firstStart}ms\" and \"${firstEnd}ms\" is also being animated in a parallel animation between the times of \"${secondStart}ms\" and \"${secondEnd}ms\"`);\n}\nfunction invalidKeyframes() {\n return new ɵRuntimeError(3011 /* RuntimeErrorCode.INVALID_KEYFRAMES */, ngDevMode && `keyframes() must be placed inside of a call to animate()`);\n}\nfunction invalidOffset() {\n return new ɵRuntimeError(3012 /* RuntimeErrorCode.INVALID_OFFSET */, ngDevMode && `Please ensure that all keyframe offsets are between 0 and 1`);\n}\nfunction keyframeOffsetsOutOfOrder() {\n return new ɵRuntimeError(3200 /* RuntimeErrorCode.KEYFRAME_OFFSETS_OUT_OF_ORDER */, ngDevMode && `Please ensure that all keyframe offsets are in order`);\n}\nfunction keyframesMissingOffsets() {\n return new ɵRuntimeError(3202 /* RuntimeErrorCode.KEYFRAMES_MISSING_OFFSETS */, ngDevMode && `Not all style() steps within the declared keyframes() contain offsets`);\n}\nfunction invalidStagger() {\n return new ɵRuntimeError(3013 /* RuntimeErrorCode.INVALID_STAGGER */, ngDevMode && `stagger() can only be used inside of query()`);\n}\nfunction invalidQuery(selector) {\n return new ɵRuntimeError(3014 /* RuntimeErrorCode.INVALID_QUERY */, ngDevMode &&\n `\\`query(\"${selector}\")\\` returned zero elements. (Use \\`query(\"${selector}\", { optional: true })\\` if you wish to allow this.)`);\n}\nfunction invalidExpression(expr) {\n return new ɵRuntimeError(3015 /* RuntimeErrorCode.INVALID_EXPRESSION */, ngDevMode && `The provided transition expression \"${expr}\" is not supported`);\n}\nfunction invalidTransitionAlias(alias) {\n return new ɵRuntimeError(3016 /* RuntimeErrorCode.INVALID_TRANSITION_ALIAS */, ngDevMode && `The transition alias value \"${alias}\" is not supported`);\n}\nfunction validationFailed(errors) {\n return new ɵRuntimeError(3500 /* RuntimeErrorCode.VALIDATION_FAILED */, ngDevMode && `animation validation failed:\\n${errors.map(err => err.message).join('\\n')}`);\n}\nfunction buildingFailed(errors) {\n return new ɵRuntimeError(3501 /* RuntimeErrorCode.BUILDING_FAILED */, ngDevMode && `animation building failed:\\n${errors.map(err => err.message).join('\\n')}`);\n}\nfunction triggerBuildFailed(name, errors) {\n return new ɵRuntimeError(3404 /* RuntimeErrorCode.TRIGGER_BUILD_FAILED */, ngDevMode &&\n `The animation trigger \"${name}\" has failed to build due to the following errors:\\n - ${errors.map(err => err.message).join('\\n - ')}`);\n}\nfunction animationFailed(errors) {\n return new ɵRuntimeError(3502 /* RuntimeErrorCode.ANIMATION_FAILED */, ngDevMode &&\n `Unable to animate due to the following errors:${LINE_START}${errors.map(err => err.message).join(LINE_START)}`);\n}\nfunction registerFailed(errors) {\n return new ɵRuntimeError(3503 /* RuntimeErrorCode.REGISTRATION_FAILED */, ngDevMode &&\n `Unable to build the animation due to the following errors: ${errors.map(err => err.message).join('\\n')}`);\n}\nfunction missingOrDestroyedAnimation() {\n return new ɵRuntimeError(3300 /* RuntimeErrorCode.MISSING_OR_DESTROYED_ANIMATION */, ngDevMode && 'The requested animation doesn\\'t exist or has already been destroyed');\n}\nfunction createAnimationFailed(errors) {\n return new ɵRuntimeError(3504 /* RuntimeErrorCode.CREATE_ANIMATION_FAILED */, ngDevMode &&\n `Unable to create the animation due to the following errors:${errors.map(err => err.message).join('\\n')}`);\n}\nfunction missingPlayer(id) {\n return new ɵRuntimeError(3301 /* RuntimeErrorCode.MISSING_PLAYER */, ngDevMode && `Unable to find the timeline player referenced by ${id}`);\n}\nfunction missingTrigger(phase, name) {\n return new ɵRuntimeError(3302 /* RuntimeErrorCode.MISSING_TRIGGER */, ngDevMode &&\n `Unable to listen on the animation trigger event \"${phase}\" because the animation trigger \"${name}\" doesn\\'t exist!`);\n}\nfunction missingEvent(name) {\n return new ɵRuntimeError(3303 /* RuntimeErrorCode.MISSING_EVENT */, ngDevMode &&\n `Unable to listen on the animation trigger \"${name}\" because the provided event is undefined!`);\n}\nfunction unsupportedTriggerEvent(phase, name) {\n return new ɵRuntimeError(3400 /* RuntimeErrorCode.UNSUPPORTED_TRIGGER_EVENT */, ngDevMode &&\n `The provided animation trigger event \"${phase}\" for the animation trigger \"${name}\" is not supported!`);\n}\nfunction unregisteredTrigger(name) {\n return new ɵRuntimeError(3401 /* RuntimeErrorCode.UNREGISTERED_TRIGGER */, ngDevMode && `The provided animation trigger \"${name}\" has not been registered!`);\n}\nfunction triggerTransitionsFailed(errors) {\n return new ɵRuntimeError(3402 /* RuntimeErrorCode.TRIGGER_TRANSITIONS_FAILED */, ngDevMode &&\n `Unable to process animations due to the following failed trigger transitions\\n ${errors.map(err => err.message).join('\\n')}`);\n}\nfunction triggerParsingFailed(name, errors) {\n return new ɵRuntimeError(3403 /* RuntimeErrorCode.TRIGGER_PARSING_FAILED */, ngDevMode &&\n `Animation parsing for the ${name} trigger have failed:${LINE_START}${errors.map(err => err.message).join(LINE_START)}`);\n}\nfunction transitionFailed(name, errors) {\n return new ɵRuntimeError(3505 /* RuntimeErrorCode.TRANSITION_FAILED */, ngDevMode && `@${name} has failed due to:\\n ${errors.map(err => err.message).join('\\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 * Set of all animatable CSS properties\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_animated_properties\n */\nconst ANIMATABLE_PROP_SET = new Set([\n '-moz-outline-radius',\n '-moz-outline-radius-bottomleft',\n '-moz-outline-radius-bottomright',\n '-moz-outline-radius-topleft',\n '-moz-outline-radius-topright',\n '-ms-grid-columns',\n '-ms-grid-rows',\n '-webkit-line-clamp',\n '-webkit-text-fill-color',\n '-webkit-text-stroke',\n '-webkit-text-stroke-color',\n 'accent-color',\n 'all',\n 'backdrop-filter',\n 'background',\n 'background-color',\n 'background-position',\n 'background-size',\n 'block-size',\n 'border',\n 'border-block-end',\n 'border-block-end-color',\n 'border-block-end-width',\n 'border-block-start',\n 'border-block-start-color',\n 'border-block-start-width',\n 'border-bottom',\n 'border-bottom-color',\n 'border-bottom-left-radius',\n 'border-bottom-right-radius',\n 'border-bottom-width',\n 'border-color',\n 'border-end-end-radius',\n 'border-end-start-radius',\n 'border-image-outset',\n 'border-image-slice',\n 'border-image-width',\n 'border-inline-end',\n 'border-inline-end-color',\n 'border-inline-end-width',\n 'border-inline-start',\n 'border-inline-start-color',\n 'border-inline-start-width',\n 'border-left',\n 'border-left-color',\n 'border-left-width',\n 'border-radius',\n 'border-right',\n 'border-right-color',\n 'border-right-width',\n 'border-start-end-radius',\n 'border-start-start-radius',\n 'border-top',\n 'border-top-color',\n 'border-top-left-radius',\n 'border-top-right-radius',\n 'border-top-width',\n 'border-width',\n 'bottom',\n 'box-shadow',\n 'caret-color',\n 'clip',\n 'clip-path',\n 'color',\n 'column-count',\n 'column-gap',\n 'column-rule',\n 'column-rule-color',\n 'column-rule-width',\n 'column-width',\n 'columns',\n 'filter',\n 'flex',\n 'flex-basis',\n 'flex-grow',\n 'flex-shrink',\n 'font',\n 'font-size',\n 'font-size-adjust',\n 'font-stretch',\n 'font-variation-settings',\n 'font-weight',\n 'gap',\n 'grid-column-gap',\n 'grid-gap',\n 'grid-row-gap',\n 'grid-template-columns',\n 'grid-template-rows',\n 'height',\n 'inline-size',\n 'input-security',\n 'inset',\n 'inset-block',\n 'inset-block-end',\n 'inset-block-start',\n 'inset-inline',\n 'inset-inline-end',\n 'inset-inline-start',\n 'left',\n 'letter-spacing',\n 'line-clamp',\n 'line-height',\n 'margin',\n 'margin-block-end',\n 'margin-block-start',\n 'margin-bottom',\n 'margin-inline-end',\n 'margin-inline-start',\n 'margin-left',\n 'margin-right',\n 'margin-top',\n 'mask',\n 'mask-border',\n 'mask-position',\n 'mask-size',\n 'max-block-size',\n 'max-height',\n 'max-inline-size',\n 'max-lines',\n 'max-width',\n 'min-block-size',\n 'min-height',\n 'min-inline-size',\n 'min-width',\n 'object-position',\n 'offset',\n 'offset-anchor',\n 'offset-distance',\n 'offset-path',\n 'offset-position',\n 'offset-rotate',\n 'opacity',\n 'order',\n 'outline',\n 'outline-color',\n 'outline-offset',\n 'outline-width',\n 'padding',\n 'padding-block-end',\n 'padding-block-start',\n 'padding-bottom',\n 'padding-inline-end',\n 'padding-inline-start',\n 'padding-left',\n 'padding-right',\n 'padding-top',\n 'perspective',\n 'perspective-origin',\n 'right',\n 'rotate',\n 'row-gap',\n 'scale',\n 'scroll-margin',\n 'scroll-margin-block',\n 'scroll-margin-block-end',\n 'scroll-margin-block-start',\n 'scroll-margin-bottom',\n 'scroll-margin-inline',\n 'scroll-margin-inline-end',\n 'scroll-margin-inline-start',\n 'scroll-margin-left',\n 'scroll-margin-right',\n 'scroll-margin-top',\n 'scroll-padding',\n 'scroll-padding-block',\n 'scroll-padding-block-end',\n 'scroll-padding-block-start',\n 'scroll-padding-bottom',\n 'scroll-padding-inline',\n 'scroll-padding-inline-end',\n 'scroll-padding-inline-start',\n 'scroll-padding-left',\n 'scroll-padding-right',\n 'scroll-padding-top',\n 'scroll-snap-coordinate',\n 'scroll-snap-destination',\n 'scrollbar-color',\n 'shape-image-threshold',\n 'shape-margin',\n 'shape-outside',\n 'tab-size',\n 'text-decoration',\n 'text-decoration-color',\n 'text-decoration-thickness',\n 'text-emphasis',\n 'text-emphasis-color',\n 'text-indent',\n 'text-shadow',\n 'text-underline-offset',\n 'top',\n 'transform',\n 'transform-origin',\n 'translate',\n 'vertical-align',\n 'visibility',\n 'width',\n 'word-spacing',\n 'z-index',\n 'zoom',\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 isBrowser() {\n return (typeof window !== 'undefined' && typeof window.document !== 'undefined');\n}\nfunction isNode() {\n // Checking only for `process` isn't enough to identify whether or not we're in a Node\n // environment, because Webpack by default will polyfill the `process`. While we can discern\n // that Webpack polyfilled it by looking at `process.browser`, it's very Webpack-specific and\n // might not be future-proof. Instead we look at the stringified version of `process` which\n // is `[object process]` in Node and `[object Object]` when polyfilled.\n return typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n}\nfunction optimizeGroupPlayer(players) {\n switch (players.length) {\n case 0:\n return new NoopAnimationPlayer();\n case 1:\n return players[0];\n default:\n return new ɵAnimationGroupPlayer(players);\n }\n}\nfunction normalizeKeyframes$1(driver, normalizer, element, keyframes, preStyles = new Map(), postStyles = new Map()) {\n const errors = [];\n const normalizedKeyframes = [];\n let previousOffset = -1;\n let previousKeyframe = null;\n keyframes.forEach(kf => {\n const offset = kf.get('offset');\n const isSameOffset = offset == previousOffset;\n const normalizedKeyframe = (isSameOffset && previousKeyframe) || new Map();\n kf.forEach((val, prop) => {\n let normalizedProp = prop;\n let normalizedValue = val;\n if (prop !== 'offset') {\n normalizedProp = normalizer.normalizePropertyName(normalizedProp, errors);\n switch (normalizedValue) {\n case ɵPRE_STYLE:\n normalizedValue = preStyles.get(prop);\n break;\n case AUTO_STYLE:\n normalizedValue = postStyles.get(prop);\n break;\n default:\n normalizedValue =\n normalizer.normalizeStyleValue(prop, normalizedProp, normalizedValue, errors);\n break;\n }\n }\n normalizedKeyframe.set(normalizedProp, normalizedValue);\n });\n if (!isSameOffset) {\n normalizedKeyframes.push(normalizedKeyframe);\n }\n previousKeyframe = normalizedKeyframe;\n previousOffset = offset;\n });\n if (errors.length) {\n throw animationFailed(errors);\n }\n return normalizedKeyframes;\n}\nfunction listenOnPlayer(player, eventName, event, callback) {\n switch (eventName) {\n case 'start':\n player.onStart(() => callback(event && copyAnimationEvent(event, 'start', player)));\n break;\n case 'done':\n player.onDone(() => callback(event && copyAnimationEvent(event, 'done', player)));\n break;\n case 'destroy':\n player.onDestroy(() => callback(event && copyAnimationEvent(event, 'destroy', player)));\n break;\n }\n}\nfunction copyAnimationEvent(e, phaseName, player) {\n const totalTime = player.totalTime;\n const disabled = player.disabled ? true : false;\n const event = makeAnimationEvent(e.element, e.triggerName, e.fromState, e.toState, phaseName || e.phaseName, totalTime == undefined ? e.totalTime : totalTime, disabled);\n const data = e['_data'];\n if (data != null) {\n event['_data'] = data;\n }\n return event;\n}\nfunction makeAnimationEvent(element, triggerName, fromState, toState, phaseName = '', totalTime = 0, disabled) {\n return { element, triggerName, fromState, toState, phaseName, totalTime, disabled: !!disabled };\n}\nfunction getOrSetDefaultValue(map, key, defaultValue) {\n let value = map.get(key);\n if (!value) {\n map.set(key, value = defaultValue);\n }\n return value;\n}\nfunction parseTimelineCommand(command) {\n const separatorPos = command.indexOf(':');\n const id = command.substring(1, separatorPos);\n const action = command.slice(separatorPos + 1);\n return [id, action];\n}\nlet _contains = (elm1, elm2) => false;\nlet _query = (element, selector, multi) => {\n return [];\n};\nlet _documentElement = null;\nfunction getParentElement(element) {\n const parent = element.parentNode || element.host; // consider host to support shadow DOM\n if (parent === _documentElement) {\n return null;\n }\n return parent;\n}\n// Define utility methods for browsers and platform-server(domino) where Element\n// and utility methods exist.\nconst _isNode = isNode();\nif (_isNode || typeof Element !== 'undefined') {\n if (!isBrowser()) {\n _contains = (elm1, elm2) => elm1.contains(elm2);\n }\n else {\n // Read the document element in an IIFE that's been marked pure to avoid a top-level property\n // read that may prevent tree-shaking.\n _documentElement = /* @__PURE__ */ (() => document.documentElement)();\n _contains = (elm1, elm2) => {\n while (elm2) {\n if (elm2 === elm1) {\n return true;\n }\n elm2 = getParentElement(elm2);\n }\n return false;\n };\n }\n _query = (element, selector, multi) => {\n if (multi) {\n return Array.from(element.querySelectorAll(selector));\n }\n const elem = element.querySelector(selector);\n return elem ? [elem] : [];\n };\n}\nfunction containsVendorPrefix(prop) {\n // Webkit is the only real popular vendor prefix nowadays\n // cc: http://shouldiprefix.com/\n return prop.substring(1, 6) == 'ebkit'; // webkit or Webkit\n}\nlet _CACHED_BODY = null;\nlet _IS_WEBKIT = false;\nfunction validateStyleProperty(prop) {\n if (!_CACHED_BODY) {\n _CACHED_BODY = getBodyNode() || {};\n _IS_WEBKIT = _CACHED_BODY.style ? ('WebkitAppearance' in _CACHED_BODY.style) : false;\n }\n let result = true;\n if (_CACHED_BODY.style && !containsVendorPrefix(prop)) {\n result = prop in _CACHED_BODY.style;\n if (!result && _IS_WEBKIT) {\n const camelProp = 'Webkit' + prop.charAt(0).toUpperCase() + prop.slice(1);\n result = camelProp in _CACHED_BODY.style;\n }\n }\n return result;\n}\nfunction validateWebAnimatableStyleProperty(prop) {\n return ANIMATABLE_PROP_SET.has(prop);\n}\nfunction getBodyNode() {\n if (typeof document != 'undefined') {\n return document.body;\n }\n return null;\n}\nconst containsElement = _contains;\nconst invokeQuery = _query;\nfunction hypenatePropsKeys(original) {\n const newMap = new Map();\n original.forEach((val, prop) => {\n const newProp = prop.replace(/([a-z])([A-Z])/g, '$1-$2');\n newMap.set(newProp, val);\n });\n return newMap;\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 * @publicApi\n */\nclass NoopAnimationDriver {\n validateStyleProperty(prop) {\n return validateStyleProperty(prop);\n }\n matchesElement(_element, _selector) {\n // This method is deprecated and no longer in use so we return false.\n return false;\n }\n containsElement(elm1, elm2) {\n return containsElement(elm1, elm2);\n }\n getParentElement(element) {\n return getParentElement(element);\n }\n query(element, selector, multi) {\n return invokeQuery(element, selector, multi);\n }\n computeStyle(element, prop, defaultValue) {\n return defaultValue || '';\n }\n animate(element, keyframes, duration, delay, easing, previousPlayers = [], scrubberAccessRequested) {\n return new NoopAnimationPlayer(duration, delay);\n }\n}\nNoopAnimationDriver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NoopAnimationDriver, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nNoopAnimationDriver.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NoopAnimationDriver });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NoopAnimationDriver, decorators: [{\n type: Injectable\n }] });\n/**\n * @publicApi\n */\nclass AnimationDriver {\n}\nAnimationDriver.NOOP = ( /* @__PURE__ */new NoopAnimationDriver());\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 ONE_SECOND = 1000;\nconst SUBSTITUTION_EXPR_START = '{{';\nconst SUBSTITUTION_EXPR_END = '}}';\nconst ENTER_CLASSNAME = 'ng-enter';\nconst LEAVE_CLASSNAME = 'ng-leave';\nconst NG_TRIGGER_CLASSNAME = 'ng-trigger';\nconst NG_TRIGGER_SELECTOR = '.ng-trigger';\nconst NG_ANIMATING_CLASSNAME = 'ng-animating';\nconst NG_ANIMATING_SELECTOR = '.ng-animating';\nfunction resolveTimingValue(value) {\n if (typeof value == 'number')\n return value;\n const matches = value.match(/^(-?[\\.\\d]+)(m?s)/);\n if (!matches || matches.length < 2)\n return 0;\n return _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n}\nfunction _convertTimeValueToMS(value, unit) {\n switch (unit) {\n case 's':\n return value * ONE_SECOND;\n default: // ms or something else\n return value;\n }\n}\nfunction resolveTiming(timings, errors, allowNegativeValues) {\n return timings.hasOwnProperty('duration') ?\n timings :\n parseTimeExpression(timings, errors, allowNegativeValues);\n}\nfunction parseTimeExpression(exp, errors, allowNegativeValues) {\n const regex = /^(-?[\\.\\d]+)(m?s)(?:\\s+(-?[\\.\\d]+)(m?s))?(?:\\s+([-a-z]+(?:\\(.+?\\))?))?$/i;\n let duration;\n let delay = 0;\n let easing = '';\n if (typeof exp === 'string') {\n const matches = exp.match(regex);\n if (matches === null) {\n errors.push(invalidTimingValue(exp));\n return { duration: 0, delay: 0, easing: '' };\n }\n duration = _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n const delayMatch = matches[3];\n if (delayMatch != null) {\n delay = _convertTimeValueToMS(parseFloat(delayMatch), matches[4]);\n }\n const easingVal = matches[5];\n if (easingVal) {\n easing = easingVal;\n }\n }\n else {\n duration = exp;\n }\n if (!allowNegativeValues) {\n let containsErrors = false;\n let startIndex = errors.length;\n if (duration < 0) {\n errors.push(negativeStepValue());\n containsErrors = true;\n }\n if (delay < 0) {\n errors.push(negativeDelayValue());\n containsErrors = true;\n }\n if (containsErrors) {\n errors.splice(startIndex, 0, invalidTimingValue(exp));\n }\n }\n return { duration, delay, easing };\n}\nfunction copyObj(obj, destination = {}) {\n Object.keys(obj).forEach(prop => {\n destination[prop] = obj[prop];\n });\n return destination;\n}\nfunction convertToMap(obj) {\n const styleMap = new Map();\n Object.keys(obj).forEach(prop => {\n const val = obj[prop];\n styleMap.set(prop, val);\n });\n return styleMap;\n}\nfunction normalizeKeyframes(keyframes) {\n if (!keyframes.length) {\n return [];\n }\n if (keyframes[0] instanceof Map) {\n return keyframes;\n }\n return keyframes.map(kf => convertToMap(kf));\n}\nfunction normalizeStyles(styles) {\n const normalizedStyles = new Map();\n if (Array.isArray(styles)) {\n styles.forEach(data => copyStyles(data, normalizedStyles));\n }\n else {\n copyStyles(styles, normalizedStyles);\n }\n return normalizedStyles;\n}\nfunction copyStyles(styles, destination = new Map(), backfill) {\n if (backfill) {\n for (let [prop, val] of backfill) {\n destination.set(prop, val);\n }\n }\n for (let [prop, val] of styles) {\n destination.set(prop, val);\n }\n return destination;\n}\nfunction getStyleAttributeString(element, key, value) {\n // Return the key-value pair string to be added to the style attribute for the\n // given CSS style key.\n if (value) {\n return key + ':' + value + ';';\n }\n else {\n return '';\n }\n}\nfunction writeStyleAttribute(element) {\n // Read the style property of the element and manually reflect it to the\n // style attribute. This is needed because Domino on platform-server doesn't\n // understand the full set of allowed CSS properties and doesn't reflect some\n // of them automatically.\n let styleAttrValue = '';\n for (let i = 0; i < element.style.length; i++) {\n const key = element.style.item(i);\n styleAttrValue += getStyleAttributeString(element, key, element.style.getPropertyValue(key));\n }\n for (const key in element.style) {\n // Skip internal Domino properties that don't need to be reflected.\n if (!element.style.hasOwnProperty(key) || key.startsWith('_')) {\n continue;\n }\n const dashKey = camelCaseToDashCase(key);\n styleAttrValue += getStyleAttributeString(element, dashKey, element.style[key]);\n }\n element.setAttribute('style', styleAttrValue);\n}\nfunction setStyles(element, styles, formerStyles) {\n if (element['style']) {\n styles.forEach((val, prop) => {\n const camelProp = dashCaseToCamelCase(prop);\n if (formerStyles && !formerStyles.has(prop)) {\n formerStyles.set(prop, element.style[camelProp]);\n }\n element.style[camelProp] = val;\n });\n // On the server set the 'style' attribute since it's not automatically reflected.\n if (isNode()) {\n writeStyleAttribute(element);\n }\n }\n}\nfunction eraseStyles(element, styles) {\n if (element['style']) {\n styles.forEach((_, prop) => {\n const camelProp = dashCaseToCamelCase(prop);\n element.style[camelProp] = '';\n });\n // On the server set the 'style' attribute since it's not automatically reflected.\n if (isNode()) {\n writeStyleAttribute(element);\n }\n }\n}\nfunction normalizeAnimationEntry(steps) {\n if (Array.isArray(steps)) {\n if (steps.length == 1)\n return steps[0];\n return sequence(steps);\n }\n return steps;\n}\nfunction validateStyleParams(value, options, errors) {\n const params = options.params || {};\n const matches = extractStyleParams(value);\n if (matches.length) {\n matches.forEach(varName => {\n if (!params.hasOwnProperty(varName)) {\n errors.push(invalidStyleParams(varName));\n }\n });\n }\n}\nconst PARAM_REGEX = new RegExp(`${SUBSTITUTION_EXPR_START}\\\\s*(.+?)\\\\s*${SUBSTITUTION_EXPR_END}`, 'g');\nfunction extractStyleParams(value) {\n let params = [];\n if (typeof value === 'string') {\n let match;\n while (match = PARAM_REGEX.exec(value)) {\n params.push(match[1]);\n }\n PARAM_REGEX.lastIndex = 0;\n }\n return params;\n}\nfunction interpolateParams(value, params, errors) {\n const original = value.toString();\n const str = original.replace(PARAM_REGEX, (_, varName) => {\n let localVal = params[varName];\n // this means that the value was never overridden by the data passed in by the user\n if (localVal == null) {\n errors.push(invalidParamValue(varName));\n localVal = '';\n }\n return localVal.toString();\n });\n // we do this to assert that numeric values stay as they are\n return str == original ? value : str;\n}\nfunction iteratorToArray(iterator) {\n const arr = [];\n let item = iterator.next();\n while (!item.done) {\n arr.push(item.value);\n item = iterator.next();\n }\n return arr;\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 camelCaseToDashCase(input) {\n return input.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\nfunction allowPreviousPlayerStylesMerge(duration, delay) {\n return duration === 0 || delay === 0;\n}\nfunction balancePreviousStylesIntoKeyframes(element, keyframes, previousStyles) {\n if (previousStyles.size && keyframes.length) {\n let startingKeyframe = keyframes[0];\n let missingStyleProps = [];\n previousStyles.forEach((val, prop) => {\n if (!startingKeyframe.has(prop)) {\n missingStyleProps.push(prop);\n }\n startingKeyframe.set(prop, val);\n });\n if (missingStyleProps.length) {\n for (let i = 1; i < keyframes.length; i++) {\n let kf = keyframes[i];\n missingStyleProps.forEach(prop => kf.set(prop, computeStyle(element, prop)));\n }\n }\n }\n return keyframes;\n}\nfunction visitDslNode(visitor, node, context) {\n switch (node.type) {\n case 7 /* AnimationMetadataType.Trigger */:\n return visitor.visitTrigger(node, context);\n case 0 /* AnimationMetadataType.State */:\n return visitor.visitState(node, context);\n case 1 /* AnimationMetadataType.Transition */:\n return visitor.visitTransition(node, context);\n case 2 /* AnimationMetadataType.Sequence */:\n return visitor.visitSequence(node, context);\n case 3 /* AnimationMetadataType.Group */:\n return visitor.visitGroup(node, context);\n case 4 /* AnimationMetadataType.Animate */:\n return visitor.visitAnimate(node, context);\n case 5 /* AnimationMetadataType.Keyframes */:\n return visitor.visitKeyframes(node, context);\n case 6 /* AnimationMetadataType.Style */:\n return visitor.visitStyle(node, context);\n case 8 /* AnimationMetadataType.Reference */:\n return visitor.visitReference(node, context);\n case 9 /* AnimationMetadataType.AnimateChild */:\n return visitor.visitAnimateChild(node, context);\n case 10 /* AnimationMetadataType.AnimateRef */:\n return visitor.visitAnimateRef(node, context);\n case 11 /* AnimationMetadataType.Query */:\n return visitor.visitQuery(node, context);\n case 12 /* AnimationMetadataType.Stagger */:\n return visitor.visitStagger(node, context);\n default:\n throw invalidNodeType(node.type);\n }\n}\nfunction computeStyle(element, prop) {\n return window.getComputedStyle(element)[prop];\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 NG_DEV_MODE = typeof ngDevMode === 'undefined' || !!ngDevMode;\nfunction createListOfWarnings(warnings) {\n const LINE_START = '\\n - ';\n return `${LINE_START}${warnings.filter(Boolean).map(warning => warning).join(LINE_START)}`;\n}\nfunction warnValidation(warnings) {\n NG_DEV_MODE && console.warn(`animation validation warnings:${createListOfWarnings(warnings)}`);\n}\nfunction warnTriggerBuild(name, warnings) {\n NG_DEV_MODE &&\n console.warn(`The animation trigger \"${name}\" has built with the following warnings:${createListOfWarnings(warnings)}`);\n}\nfunction warnRegister(warnings) {\n NG_DEV_MODE &&\n console.warn(`Animation built with the following warnings:${createListOfWarnings(warnings)}`);\n}\nfunction triggerParsingWarnings(name, warnings) {\n NG_DEV_MODE &&\n console.warn(`Animation parsing for the ${name} trigger presents the following warnings:${createListOfWarnings(warnings)}`);\n}\nfunction pushUnrecognizedPropertiesWarning(warnings, props) {\n if (props.length) {\n warnings.push(`The following provided properties are not recognized: ${props.join(', ')}`);\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 ANY_STATE = '*';\nfunction parseTransitionExpr(transitionValue, errors) {\n const expressions = [];\n if (typeof transitionValue == 'string') {\n transitionValue.split(/\\s*,\\s*/).forEach(str => parseInnerTransitionStr(str, expressions, errors));\n }\n else {\n expressions.push(transitionValue);\n }\n return expressions;\n}\nfunction parseInnerTransitionStr(eventStr, expressions, errors) {\n if (eventStr[0] == ':') {\n const result = parseAnimationAlias(eventStr, errors);\n if (typeof result == 'function') {\n expressions.push(result);\n return;\n }\n eventStr = result;\n }\n const match = eventStr.match(/^(\\*|[-\\w]+)\\s*()\\s*(\\*|[-\\w]+)$/);\n if (match == null || match.length < 4) {\n errors.push(invalidExpression(eventStr));\n return expressions;\n }\n const fromState = match[1];\n const separator = match[2];\n const toState = match[3];\n expressions.push(makeLambdaFromStates(fromState, toState));\n const isFullAnyStateExpr = fromState == ANY_STATE && toState == ANY_STATE;\n if (separator[0] == '<' && !isFullAnyStateExpr) {\n expressions.push(makeLambdaFromStates(toState, fromState));\n }\n}\nfunction parseAnimationAlias(alias, errors) {\n switch (alias) {\n case ':enter':\n return 'void => *';\n case ':leave':\n return '* => void';\n case ':increment':\n return (fromState, toState) => parseFloat(toState) > parseFloat(fromState);\n case ':decrement':\n return (fromState, toState) => parseFloat(toState) < parseFloat(fromState);\n default:\n errors.push(invalidTransitionAlias(alias));\n return '* => *';\n }\n}\n// DO NOT REFACTOR ... keep the follow set instantiations\n// with the values intact (closure compiler for some reason\n// removes follow-up lines that add the values outside of\n// the constructor...\nconst TRUE_BOOLEAN_VALUES = new Set(['true', '1']);\nconst FALSE_BOOLEAN_VALUES = new Set(['false', '0']);\nfunction makeLambdaFromStates(lhs, rhs) {\n const LHS_MATCH_BOOLEAN = TRUE_BOOLEAN_VALUES.has(lhs) || FALSE_BOOLEAN_VALUES.has(lhs);\n const RHS_MATCH_BOOLEAN = TRUE_BOOLEAN_VALUES.has(rhs) || FALSE_BOOLEAN_VALUES.has(rhs);\n return (fromState, toState) => {\n let lhsMatch = lhs == ANY_STATE || lhs == fromState;\n let rhsMatch = rhs == ANY_STATE || rhs == toState;\n if (!lhsMatch && LHS_MATCH_BOOLEAN && typeof fromState === 'boolean') {\n lhsMatch = fromState ? TRUE_BOOLEAN_VALUES.has(lhs) : FALSE_BOOLEAN_VALUES.has(lhs);\n }\n if (!rhsMatch && RHS_MATCH_BOOLEAN && typeof toState === 'boolean') {\n rhsMatch = toState ? TRUE_BOOLEAN_VALUES.has(rhs) : FALSE_BOOLEAN_VALUES.has(rhs);\n }\n return lhsMatch && rhsMatch;\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 SELF_TOKEN = ':self';\nconst SELF_TOKEN_REGEX = new RegExp(`\\s*${SELF_TOKEN}\\s*,?`, 'g');\n/*\n * [Validation]\n * The visitor code below will traverse the animation AST generated by the animation verb functions\n * (the output is a tree of objects) and attempt to perform a series of validations on the data. The\n * following corner-cases will be validated:\n *\n * 1. Overlap of animations\n * Given that a CSS property cannot be animated in more than one place at the same time, it's\n * important that this behavior is detected and validated. The way in which this occurs is that\n * each time a style property is examined, a string-map containing the property will be updated with\n * the start and end times for when the property is used within an animation step.\n *\n * If there are two or more parallel animations that are currently running (these are invoked by the\n * group()) on the same element then the validator will throw an error. Since the start/end timing\n * values are collected for each property then if the current animation step is animating the same\n * property and its timing values fall anywhere into the window of time that the property is\n * currently being animated within then this is what causes an error.\n *\n * 2. Timing values\n * The validator will validate to see if a timing value of `duration delay easing` or\n * `durationNumber` is valid or not.\n *\n * (note that upon validation the code below will replace the timing data with an object containing\n * {duration,delay,easing}.\n *\n * 3. Offset Validation\n * Each of the style() calls are allowed to have an offset value when placed inside of keyframes().\n * Offsets within keyframes() are considered valid when:\n *\n * - No offsets are used at all\n * - Each style() entry contains an offset value\n * - Each offset is between 0 and 1\n * - Each offset is greater to or equal than the previous one\n *\n * Otherwise an error will be thrown.\n */\nfunction buildAnimationAst(driver, metadata, errors, warnings) {\n return new AnimationAstBuilderVisitor(driver).build(metadata, errors, warnings);\n}\nconst ROOT_SELECTOR = '';\nclass AnimationAstBuilderVisitor {\n constructor(_driver) {\n this._driver = _driver;\n }\n build(metadata, errors, warnings) {\n const context = new AnimationAstBuilderContext(errors);\n this._resetContextStyleTimingState(context);\n const ast = visitDslNode(this, normalizeAnimationEntry(metadata), context);\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (context.unsupportedCSSPropertiesFound.size) {\n pushUnrecognizedPropertiesWarning(warnings, [...context.unsupportedCSSPropertiesFound.keys()]);\n }\n }\n return ast;\n }\n _resetContextStyleTimingState(context) {\n context.currentQuerySelector = ROOT_SELECTOR;\n context.collectedStyles = new Map();\n context.collectedStyles.set(ROOT_SELECTOR, new Map());\n context.currentTime = 0;\n }\n visitTrigger(metadata, context) {\n let queryCount = context.queryCount = 0;\n let depCount = context.depCount = 0;\n const states = [];\n const transitions = [];\n if (metadata.name.charAt(0) == '@') {\n context.errors.push(invalidTrigger());\n }\n metadata.definitions.forEach(def => {\n this._resetContextStyleTimingState(context);\n if (def.type == 0 /* AnimationMetadataType.State */) {\n const stateDef = def;\n const name = stateDef.name;\n name.toString().split(/\\s*,\\s*/).forEach(n => {\n stateDef.name = n;\n states.push(this.visitState(stateDef, context));\n });\n stateDef.name = name;\n }\n else if (def.type == 1 /* AnimationMetadataType.Transition */) {\n const transition = this.visitTransition(def, context);\n queryCount += transition.queryCount;\n depCount += transition.depCount;\n transitions.push(transition);\n }\n else {\n context.errors.push(invalidDefinition());\n }\n });\n return {\n type: 7 /* AnimationMetadataType.Trigger */,\n name: metadata.name,\n states,\n transitions,\n queryCount,\n depCount,\n options: null\n };\n }\n visitState(metadata, context) {\n const styleAst = this.visitStyle(metadata.styles, context);\n const astParams = (metadata.options && metadata.options.params) || null;\n if (styleAst.containsDynamicStyles) {\n const missingSubs = new Set();\n const params = astParams || {};\n styleAst.styles.forEach(style => {\n if (style instanceof Map) {\n style.forEach(value => {\n extractStyleParams(value).forEach(sub => {\n if (!params.hasOwnProperty(sub)) {\n missingSubs.add(sub);\n }\n });\n });\n }\n });\n if (missingSubs.size) {\n const missingSubsArr = iteratorToArray(missingSubs.values());\n context.errors.push(invalidState(metadata.name, missingSubsArr));\n }\n }\n return {\n type: 0 /* AnimationMetadataType.State */,\n name: metadata.name,\n style: styleAst,\n options: astParams ? { params: astParams } : null\n };\n }\n visitTransition(metadata, context) {\n context.queryCount = 0;\n context.depCount = 0;\n const animation = visitDslNode(this, normalizeAnimationEntry(metadata.animation), context);\n const matchers = parseTransitionExpr(metadata.expr, context.errors);\n return {\n type: 1 /* AnimationMetadataType.Transition */,\n matchers,\n animation,\n queryCount: context.queryCount,\n depCount: context.depCount,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitSequence(metadata, context) {\n return {\n type: 2 /* AnimationMetadataType.Sequence */,\n steps: metadata.steps.map(s => visitDslNode(this, s, context)),\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitGroup(metadata, context) {\n const currentTime = context.currentTime;\n let furthestTime = 0;\n const steps = metadata.steps.map(step => {\n context.currentTime = currentTime;\n const innerAst = visitDslNode(this, step, context);\n furthestTime = Math.max(furthestTime, context.currentTime);\n return innerAst;\n });\n context.currentTime = furthestTime;\n return {\n type: 3 /* AnimationMetadataType.Group */,\n steps,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitAnimate(metadata, context) {\n const timingAst = constructTimingAst(metadata.timings, context.errors);\n context.currentAnimateTimings = timingAst;\n let styleAst;\n let styleMetadata = metadata.styles ? metadata.styles : style({});\n if (styleMetadata.type == 5 /* AnimationMetadataType.Keyframes */) {\n styleAst = this.visitKeyframes(styleMetadata, context);\n }\n else {\n let styleMetadata = metadata.styles;\n let isEmpty = false;\n if (!styleMetadata) {\n isEmpty = true;\n const newStyleData = {};\n if (timingAst.easing) {\n newStyleData['easing'] = timingAst.easing;\n }\n styleMetadata = style(newStyleData);\n }\n context.currentTime += timingAst.duration + timingAst.delay;\n const _styleAst = this.visitStyle(styleMetadata, context);\n _styleAst.isEmptyStep = isEmpty;\n styleAst = _styleAst;\n }\n context.currentAnimateTimings = null;\n return {\n type: 4 /* AnimationMetadataType.Animate */,\n timings: timingAst,\n style: styleAst,\n options: null\n };\n }\n visitStyle(metadata, context) {\n const ast = this._makeStyleAst(metadata, context);\n this._validateStyleAst(ast, context);\n return ast;\n }\n _makeStyleAst(metadata, context) {\n const styles = [];\n const metadataStyles = Array.isArray(metadata.styles) ? metadata.styles : [metadata.styles];\n for (let styleTuple of metadataStyles) {\n if (typeof styleTuple === 'string') {\n if (styleTuple === AUTO_STYLE) {\n styles.push(styleTuple);\n }\n else {\n context.errors.push(invalidStyleValue(styleTuple));\n }\n }\n else {\n styles.push(convertToMap(styleTuple));\n }\n }\n let containsDynamicStyles = false;\n let collectedEasing = null;\n styles.forEach(styleData => {\n if (styleData instanceof Map) {\n if (styleData.has('easing')) {\n collectedEasing = styleData.get('easing');\n styleData.delete('easing');\n }\n if (!containsDynamicStyles) {\n for (let value of styleData.values()) {\n if (value.toString().indexOf(SUBSTITUTION_EXPR_START) >= 0) {\n containsDynamicStyles = true;\n break;\n }\n }\n }\n }\n });\n return {\n type: 6 /* AnimationMetadataType.Style */,\n styles,\n easing: collectedEasing,\n offset: metadata.offset,\n containsDynamicStyles,\n options: null\n };\n }\n _validateStyleAst(ast, context) {\n const timings = context.currentAnimateTimings;\n let endTime = context.currentTime;\n let startTime = context.currentTime;\n if (timings && startTime > 0) {\n startTime -= timings.duration + timings.delay;\n }\n ast.styles.forEach(tuple => {\n if (typeof tuple === 'string')\n return;\n tuple.forEach((value, prop) => {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this._driver.validateStyleProperty(prop)) {\n tuple.delete(prop);\n context.unsupportedCSSPropertiesFound.add(prop);\n return;\n }\n }\n // This is guaranteed to have a defined Map at this querySelector location making it\n // safe to add the assertion here. It is set as a default empty map in prior methods.\n const collectedStyles = context.collectedStyles.get(context.currentQuerySelector);\n const collectedEntry = collectedStyles.get(prop);\n let updateCollectedStyle = true;\n if (collectedEntry) {\n if (startTime != endTime && startTime >= collectedEntry.startTime &&\n endTime <= collectedEntry.endTime) {\n context.errors.push(invalidParallelAnimation(prop, collectedEntry.startTime, collectedEntry.endTime, startTime, endTime));\n updateCollectedStyle = false;\n }\n // we always choose the smaller start time value since we\n // want to have a record of the entire animation window where\n // the style property is being animated in between\n startTime = collectedEntry.startTime;\n }\n if (updateCollectedStyle) {\n collectedStyles.set(prop, { startTime, endTime });\n }\n if (context.options) {\n validateStyleParams(value, context.options, context.errors);\n }\n });\n });\n }\n visitKeyframes(metadata, context) {\n const ast = { type: 5 /* AnimationMetadataType.Keyframes */, styles: [], options: null };\n if (!context.currentAnimateTimings) {\n context.errors.push(invalidKeyframes());\n return ast;\n }\n const MAX_KEYFRAME_OFFSET = 1;\n let totalKeyframesWithOffsets = 0;\n const offsets = [];\n let offsetsOutOfOrder = false;\n let keyframesOutOfRange = false;\n let previousOffset = 0;\n const keyframes = metadata.steps.map(styles => {\n const style = this._makeStyleAst(styles, context);\n let offsetVal = style.offset != null ? style.offset : consumeOffset(style.styles);\n let offset = 0;\n if (offsetVal != null) {\n totalKeyframesWithOffsets++;\n offset = style.offset = offsetVal;\n }\n keyframesOutOfRange = keyframesOutOfRange || offset < 0 || offset > 1;\n offsetsOutOfOrder = offsetsOutOfOrder || offset < previousOffset;\n previousOffset = offset;\n offsets.push(offset);\n return style;\n });\n if (keyframesOutOfRange) {\n context.errors.push(invalidOffset());\n }\n if (offsetsOutOfOrder) {\n context.errors.push(keyframeOffsetsOutOfOrder());\n }\n const length = metadata.steps.length;\n let generatedOffset = 0;\n if (totalKeyframesWithOffsets > 0 && totalKeyframesWithOffsets < length) {\n context.errors.push(keyframesMissingOffsets());\n }\n else if (totalKeyframesWithOffsets == 0) {\n generatedOffset = MAX_KEYFRAME_OFFSET / (length - 1);\n }\n const limit = length - 1;\n const currentTime = context.currentTime;\n const currentAnimateTimings = context.currentAnimateTimings;\n const animateDuration = currentAnimateTimings.duration;\n keyframes.forEach((kf, i) => {\n const offset = generatedOffset > 0 ? (i == limit ? 1 : (generatedOffset * i)) : offsets[i];\n const durationUpToThisFrame = offset * animateDuration;\n context.currentTime = currentTime + currentAnimateTimings.delay + durationUpToThisFrame;\n currentAnimateTimings.duration = durationUpToThisFrame;\n this._validateStyleAst(kf, context);\n kf.offset = offset;\n ast.styles.push(kf);\n });\n return ast;\n }\n visitReference(metadata, context) {\n return {\n type: 8 /* AnimationMetadataType.Reference */,\n animation: visitDslNode(this, normalizeAnimationEntry(metadata.animation), context),\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitAnimateChild(metadata, context) {\n context.depCount++;\n return {\n type: 9 /* AnimationMetadataType.AnimateChild */,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitAnimateRef(metadata, context) {\n return {\n type: 10 /* AnimationMetadataType.AnimateRef */,\n animation: this.visitReference(metadata.animation, context),\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitQuery(metadata, context) {\n const parentSelector = context.currentQuerySelector;\n const options = (metadata.options || {});\n context.queryCount++;\n context.currentQuery = metadata;\n const [selector, includeSelf] = normalizeSelector(metadata.selector);\n context.currentQuerySelector =\n parentSelector.length ? (parentSelector + ' ' + selector) : selector;\n getOrSetDefaultValue(context.collectedStyles, context.currentQuerySelector, new Map());\n const animation = visitDslNode(this, normalizeAnimationEntry(metadata.animation), context);\n context.currentQuery = null;\n context.currentQuerySelector = parentSelector;\n return {\n type: 11 /* AnimationMetadataType.Query */,\n selector,\n limit: options.limit || 0,\n optional: !!options.optional,\n includeSelf,\n animation,\n originalSelector: metadata.selector,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitStagger(metadata, context) {\n if (!context.currentQuery) {\n context.errors.push(invalidStagger());\n }\n const timings = metadata.timings === 'full' ?\n { duration: 0, delay: 0, easing: 'full' } :\n resolveTiming(metadata.timings, context.errors, true);\n return {\n type: 12 /* AnimationMetadataType.Stagger */,\n animation: visitDslNode(this, normalizeAnimationEntry(metadata.animation), context),\n timings,\n options: null\n };\n }\n}\nfunction normalizeSelector(selector) {\n const hasAmpersand = selector.split(/\\s*,\\s*/).find(token => token == SELF_TOKEN) ? true : false;\n if (hasAmpersand) {\n selector = selector.replace(SELF_TOKEN_REGEX, '');\n }\n // Note: the :enter and :leave aren't normalized here since those\n // selectors are filled in at runtime during timeline building\n selector = selector.replace(/@\\*/g, NG_TRIGGER_SELECTOR)\n .replace(/@\\w+/g, match => NG_TRIGGER_SELECTOR + '-' + match.slice(1))\n .replace(/:animating/g, NG_ANIMATING_SELECTOR);\n return [selector, hasAmpersand];\n}\nfunction normalizeParams(obj) {\n return obj ? copyObj(obj) : null;\n}\nclass AnimationAstBuilderContext {\n constructor(errors) {\n this.errors = errors;\n this.queryCount = 0;\n this.depCount = 0;\n this.currentTransition = null;\n this.currentQuery = null;\n this.currentQuerySelector = null;\n this.currentAnimateTimings = null;\n this.currentTime = 0;\n this.collectedStyles = new Map();\n this.options = null;\n this.unsupportedCSSPropertiesFound = new Set();\n }\n}\nfunction consumeOffset(styles) {\n if (typeof styles == 'string')\n return null;\n let offset = null;\n if (Array.isArray(styles)) {\n styles.forEach(styleTuple => {\n if (styleTuple instanceof Map && styleTuple.has('offset')) {\n const obj = styleTuple;\n offset = parseFloat(obj.get('offset'));\n obj.delete('offset');\n }\n });\n }\n else if (styles instanceof Map && styles.has('offset')) {\n const obj = styles;\n offset = parseFloat(obj.get('offset'));\n obj.delete('offset');\n }\n return offset;\n}\nfunction constructTimingAst(value, errors) {\n if (value.hasOwnProperty('duration')) {\n return value;\n }\n if (typeof value == 'number') {\n const duration = resolveTiming(value, errors).duration;\n return makeTimingAst(duration, 0, '');\n }\n const strValue = value;\n const isDynamic = strValue.split(/\\s+/).some(v => v.charAt(0) == '{' && v.charAt(1) == '{');\n if (isDynamic) {\n const ast = makeTimingAst(0, 0, '');\n ast.dynamic = true;\n ast.strValue = strValue;\n return ast;\n }\n const timings = resolveTiming(strValue, errors);\n return makeTimingAst(timings.duration, timings.delay, timings.easing);\n}\nfunction normalizeAnimationOptions(options) {\n if (options) {\n options = copyObj(options);\n if (options['params']) {\n options['params'] = normalizeParams(options['params']);\n }\n }\n else {\n options = {};\n }\n return options;\n}\nfunction makeTimingAst(duration, delay, easing) {\n return { duration, delay, easing };\n}\n\nfunction createTimelineInstruction(element, keyframes, preStyleProps, postStyleProps, duration, delay, easing = null, subTimeline = false) {\n return {\n type: 1 /* AnimationTransitionInstructionType.TimelineAnimation */,\n element,\n keyframes,\n preStyleProps,\n postStyleProps,\n duration,\n delay,\n totalTime: duration + delay,\n easing,\n subTimeline\n };\n}\n\nclass ElementInstructionMap {\n constructor() {\n this._map = new Map();\n }\n get(element) {\n return this._map.get(element) || [];\n }\n append(element, instructions) {\n let existingInstructions = this._map.get(element);\n if (!existingInstructions) {\n this._map.set(element, existingInstructions = []);\n }\n existingInstructions.push(...instructions);\n }\n has(element) {\n return this._map.has(element);\n }\n clear() {\n this._map.clear();\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 ONE_FRAME_IN_MILLISECONDS = 1;\nconst ENTER_TOKEN = ':enter';\nconst ENTER_TOKEN_REGEX = new RegExp(ENTER_TOKEN, 'g');\nconst LEAVE_TOKEN = ':leave';\nconst LEAVE_TOKEN_REGEX = new RegExp(LEAVE_TOKEN, 'g');\n/*\n * The code within this file aims to generate web-animations-compatible keyframes from Angular's\n * animation DSL code.\n *\n * The code below will be converted from:\n *\n * ```\n * sequence([\n * style({ opacity: 0 }),\n * animate(1000, style({ opacity: 0 }))\n * ])\n * ```\n *\n * To:\n * ```\n * keyframes = [{ opacity: 0, offset: 0 }, { opacity: 1, offset: 1 }]\n * duration = 1000\n * delay = 0\n * easing = ''\n * ```\n *\n * For this operation to cover the combination of animation verbs (style, animate, group, etc...) a\n * combination of AST traversal and merge-sort-like algorithms are used.\n *\n * [AST Traversal]\n * Each of the animation verbs, when executed, will return an string-map object representing what\n * type of action it is (style, animate, group, etc...) and the data associated with it. This means\n * that when functional composition mix of these functions is evaluated (like in the example above)\n * then it will end up producing a tree of objects representing the animation itself.\n *\n * When this animation object tree is processed by the visitor code below it will visit each of the\n * verb statements within the visitor. And during each visit it will build the context of the\n * animation keyframes by interacting with the `TimelineBuilder`.\n *\n * [TimelineBuilder]\n * This class is responsible for tracking the styles and building a series of keyframe objects for a\n * timeline between a start and end time. The builder starts off with an initial timeline and each\n * time the AST comes across a `group()`, `keyframes()` or a combination of the two within a\n * `sequence()` then it will generate a sub timeline for each step as well as a new one after\n * they are complete.\n *\n * As the AST is traversed, the timing state on each of the timelines will be incremented. If a sub\n * timeline was created (based on one of the cases above) then the parent timeline will attempt to\n * merge the styles used within the sub timelines into itself (only with group() this will happen).\n * This happens with a merge operation (much like how the merge works in mergeSort) and it will only\n * copy the most recently used styles from the sub timelines into the parent timeline. This ensures\n * that if the styles are used later on in another phase of the animation then they will be the most\n * up-to-date values.\n *\n * [How Missing Styles Are Updated]\n * Each timeline has a `backFill` property which is responsible for filling in new styles into\n * already processed keyframes if a new style shows up later within the animation sequence.\n *\n * ```\n * sequence([\n * style({ width: 0 }),\n * animate(1000, style({ width: 100 })),\n * animate(1000, style({ width: 200 })),\n * animate(1000, style({ width: 300 }))\n * animate(1000, style({ width: 400, height: 400 })) // notice how `height` doesn't exist anywhere\n * else\n * ])\n * ```\n *\n * What is happening here is that the `height` value is added later in the sequence, but is missing\n * from all previous animation steps. Therefore when a keyframe is created it would also be missing\n * from all previous keyframes up until where it is first used. For the timeline keyframe generation\n * to properly fill in the style it will place the previous value (the value from the parent\n * timeline) or a default value of `*` into the backFill map. The `copyStyles` method in util.ts\n * handles propagating that backfill map to the styles object.\n *\n * When a sub-timeline is created it will have its own backFill property. This is done so that\n * styles present within the sub-timeline do not accidentally seep into the previous/future timeline\n * keyframes\n *\n * [Validation]\n * The code in this file is not responsible for validation. That functionality happens with within\n * the `AnimationValidatorVisitor` code.\n */\nfunction buildAnimationTimelines(driver, rootElement, ast, enterClassName, leaveClassName, startingStyles = new Map(), finalStyles = new Map(), options, subInstructions, errors = []) {\n return new AnimationTimelineBuilderVisitor().buildKeyframes(driver, rootElement, ast, enterClassName, leaveClassName, startingStyles, finalStyles, options, subInstructions, errors);\n}\nclass AnimationTimelineBuilderVisitor {\n buildKeyframes(driver, rootElement, ast, enterClassName, leaveClassName, startingStyles, finalStyles, options, subInstructions, errors = []) {\n subInstructions = subInstructions || new ElementInstructionMap();\n const context = new AnimationTimelineContext(driver, rootElement, subInstructions, enterClassName, leaveClassName, errors, []);\n context.options = options;\n const delay = options.delay ? resolveTimingValue(options.delay) : 0;\n context.currentTimeline.delayNextStep(delay);\n context.currentTimeline.setStyles([startingStyles], null, context.errors, options);\n visitDslNode(this, ast, context);\n // this checks to see if an actual animation happened\n const timelines = context.timelines.filter(timeline => timeline.containsAnimation());\n // note: we just want to apply the final styles for the rootElement, so we do not\n // just apply the styles to the last timeline but the last timeline which\n // element is the root one (basically `*`-styles are replaced with the actual\n // state style values only for the root element)\n if (timelines.length && finalStyles.size) {\n let lastRootTimeline;\n for (let i = timelines.length - 1; i >= 0; i--) {\n const timeline = timelines[i];\n if (timeline.element === rootElement) {\n lastRootTimeline = timeline;\n break;\n }\n }\n if (lastRootTimeline && !lastRootTimeline.allowOnlyTimelineStyles()) {\n lastRootTimeline.setStyles([finalStyles], null, context.errors, options);\n }\n }\n return timelines.length ?\n timelines.map(timeline => timeline.buildKeyframes()) :\n [createTimelineInstruction(rootElement, [], [], [], 0, delay, '', false)];\n }\n visitTrigger(ast, context) {\n // these values are not visited in this AST\n }\n visitState(ast, context) {\n // these values are not visited in this AST\n }\n visitTransition(ast, context) {\n // these values are not visited in this AST\n }\n visitAnimateChild(ast, context) {\n const elementInstructions = context.subInstructions.get(context.element);\n if (elementInstructions) {\n const innerContext = context.createSubContext(ast.options);\n const startTime = context.currentTimeline.currentTime;\n const endTime = this._visitSubInstructions(elementInstructions, innerContext, innerContext.options);\n if (startTime != endTime) {\n // we do this on the upper context because we created a sub context for\n // the sub child animations\n context.transformIntoNewTimeline(endTime);\n }\n }\n context.previousNode = ast;\n }\n visitAnimateRef(ast, context) {\n const innerContext = context.createSubContext(ast.options);\n innerContext.transformIntoNewTimeline();\n this._applyAnimationRefDelays([ast.options, ast.animation.options], context, innerContext);\n this.visitReference(ast.animation, innerContext);\n context.transformIntoNewTimeline(innerContext.currentTimeline.currentTime);\n context.previousNode = ast;\n }\n _applyAnimationRefDelays(animationsRefsOptions, context, innerContext) {\n for (const animationRefOptions of animationsRefsOptions) {\n const animationDelay = animationRefOptions?.delay;\n if (animationDelay) {\n const animationDelayValue = typeof animationDelay === 'number' ?\n animationDelay :\n resolveTimingValue(interpolateParams(animationDelay, animationRefOptions?.params ?? {}, context.errors));\n innerContext.delayNextStep(animationDelayValue);\n }\n }\n }\n _visitSubInstructions(instructions, context, options) {\n const startTime = context.currentTimeline.currentTime;\n let furthestTime = startTime;\n // this is a special-case for when a user wants to skip a sub\n // animation from being fired entirely.\n const duration = options.duration != null ? resolveTimingValue(options.duration) : null;\n const delay = options.delay != null ? resolveTimingValue(options.delay) : null;\n if (duration !== 0) {\n instructions.forEach(instruction => {\n const instructionTimings = context.appendInstructionToTimeline(instruction, duration, delay);\n furthestTime =\n Math.max(furthestTime, instructionTimings.duration + instructionTimings.delay);\n });\n }\n return furthestTime;\n }\n visitReference(ast, context) {\n context.updateOptions(ast.options, true);\n visitDslNode(this, ast.animation, context);\n context.previousNode = ast;\n }\n visitSequence(ast, context) {\n const subContextCount = context.subContextCount;\n let ctx = context;\n const options = ast.options;\n if (options && (options.params || options.delay)) {\n ctx = context.createSubContext(options);\n ctx.transformIntoNewTimeline();\n if (options.delay != null) {\n if (ctx.previousNode.type == 6 /* AnimationMetadataType.Style */) {\n ctx.currentTimeline.snapshotCurrentStyles();\n ctx.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n }\n const delay = resolveTimingValue(options.delay);\n ctx.delayNextStep(delay);\n }\n }\n if (ast.steps.length) {\n ast.steps.forEach(s => visitDslNode(this, s, ctx));\n // this is here just in case the inner steps only contain or end with a style() call\n ctx.currentTimeline.applyStylesToKeyframe();\n // this means that some animation function within the sequence\n // ended up creating a sub timeline (which means the current\n // timeline cannot overlap with the contents of the sequence)\n if (ctx.subContextCount > subContextCount) {\n ctx.transformIntoNewTimeline();\n }\n }\n context.previousNode = ast;\n }\n visitGroup(ast, context) {\n const innerTimelines = [];\n let furthestTime = context.currentTimeline.currentTime;\n const delay = ast.options && ast.options.delay ? resolveTimingValue(ast.options.delay) : 0;\n ast.steps.forEach(s => {\n const innerContext = context.createSubContext(ast.options);\n if (delay) {\n innerContext.delayNextStep(delay);\n }\n visitDslNode(this, s, innerContext);\n furthestTime = Math.max(furthestTime, innerContext.currentTimeline.currentTime);\n innerTimelines.push(innerContext.currentTimeline);\n });\n // this operation is run after the AST loop because otherwise\n // if the parent timeline's collected styles were updated then\n // it would pass in invalid data into the new-to-be forked items\n innerTimelines.forEach(timeline => context.currentTimeline.mergeTimelineCollectedStyles(timeline));\n context.transformIntoNewTimeline(furthestTime);\n context.previousNode = ast;\n }\n _visitTiming(ast, context) {\n if (ast.dynamic) {\n const strValue = ast.strValue;\n const timingValue = context.params ? interpolateParams(strValue, context.params, context.errors) : strValue;\n return resolveTiming(timingValue, context.errors);\n }\n else {\n return { duration: ast.duration, delay: ast.delay, easing: ast.easing };\n }\n }\n visitAnimate(ast, context) {\n const timings = context.currentAnimateTimings = this._visitTiming(ast.timings, context);\n const timeline = context.currentTimeline;\n if (timings.delay) {\n context.incrementTime(timings.delay);\n timeline.snapshotCurrentStyles();\n }\n const style = ast.style;\n if (style.type == 5 /* AnimationMetadataType.Keyframes */) {\n this.visitKeyframes(style, context);\n }\n else {\n context.incrementTime(timings.duration);\n this.visitStyle(style, context);\n timeline.applyStylesToKeyframe();\n }\n context.currentAnimateTimings = null;\n context.previousNode = ast;\n }\n visitStyle(ast, context) {\n const timeline = context.currentTimeline;\n const timings = context.currentAnimateTimings;\n // this is a special case for when a style() call\n // directly follows an animate() call (but not inside of an animate() call)\n if (!timings && timeline.hasCurrentStyleProperties()) {\n timeline.forwardFrame();\n }\n const easing = (timings && timings.easing) || ast.easing;\n if (ast.isEmptyStep) {\n timeline.applyEmptyStep(easing);\n }\n else {\n timeline.setStyles(ast.styles, easing, context.errors, context.options);\n }\n context.previousNode = ast;\n }\n visitKeyframes(ast, context) {\n const currentAnimateTimings = context.currentAnimateTimings;\n const startTime = (context.currentTimeline).duration;\n const duration = currentAnimateTimings.duration;\n const innerContext = context.createSubContext();\n const innerTimeline = innerContext.currentTimeline;\n innerTimeline.easing = currentAnimateTimings.easing;\n ast.styles.forEach(step => {\n const offset = step.offset || 0;\n innerTimeline.forwardTime(offset * duration);\n innerTimeline.setStyles(step.styles, step.easing, context.errors, context.options);\n innerTimeline.applyStylesToKeyframe();\n });\n // this will ensure that the parent timeline gets all the styles from\n // the child even if the new timeline below is not used\n context.currentTimeline.mergeTimelineCollectedStyles(innerTimeline);\n // we do this because the window between this timeline and the sub timeline\n // should ensure that the styles within are exactly the same as they were before\n context.transformIntoNewTimeline(startTime + duration);\n context.previousNode = ast;\n }\n visitQuery(ast, context) {\n // in the event that the first step before this is a style step we need\n // to ensure the styles are applied before the children are animated\n const startTime = context.currentTimeline.currentTime;\n const options = (ast.options || {});\n const delay = options.delay ? resolveTimingValue(options.delay) : 0;\n if (delay &&\n (context.previousNode.type === 6 /* AnimationMetadataType.Style */ ||\n (startTime == 0 && context.currentTimeline.hasCurrentStyleProperties()))) {\n context.currentTimeline.snapshotCurrentStyles();\n context.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n }\n let furthestTime = startTime;\n const elms = context.invokeQuery(ast.selector, ast.originalSelector, ast.limit, ast.includeSelf, options.optional ? true : false, context.errors);\n context.currentQueryTotal = elms.length;\n let sameElementTimeline = null;\n elms.forEach((element, i) => {\n context.currentQueryIndex = i;\n const innerContext = context.createSubContext(ast.options, element);\n if (delay) {\n innerContext.delayNextStep(delay);\n }\n if (element === context.element) {\n sameElementTimeline = innerContext.currentTimeline;\n }\n visitDslNode(this, ast.animation, innerContext);\n // this is here just incase the inner steps only contain or end\n // with a style() call (which is here to signal that this is a preparatory\n // call to style an element before it is animated again)\n innerContext.currentTimeline.applyStylesToKeyframe();\n const endTime = innerContext.currentTimeline.currentTime;\n furthestTime = Math.max(furthestTime, endTime);\n });\n context.currentQueryIndex = 0;\n context.currentQueryTotal = 0;\n context.transformIntoNewTimeline(furthestTime);\n if (sameElementTimeline) {\n context.currentTimeline.mergeTimelineCollectedStyles(sameElementTimeline);\n context.currentTimeline.snapshotCurrentStyles();\n }\n context.previousNode = ast;\n }\n visitStagger(ast, context) {\n const parentContext = context.parentContext;\n const tl = context.currentTimeline;\n const timings = ast.timings;\n const duration = Math.abs(timings.duration);\n const maxTime = duration * (context.currentQueryTotal - 1);\n let delay = duration * context.currentQueryIndex;\n let staggerTransformer = timings.duration < 0 ? 'reverse' : timings.easing;\n switch (staggerTransformer) {\n case 'reverse':\n delay = maxTime - delay;\n break;\n case 'full':\n delay = parentContext.currentStaggerTime;\n break;\n }\n const timeline = context.currentTimeline;\n if (delay) {\n timeline.delayNextStep(delay);\n }\n const startingTime = timeline.currentTime;\n visitDslNode(this, ast.animation, context);\n context.previousNode = ast;\n // time = duration + delay\n // the reason why this computation is so complex is because\n // the inner timeline may either have a delay value or a stretched\n // keyframe depending on if a subtimeline is not used or is used.\n parentContext.currentStaggerTime =\n (tl.currentTime - startingTime) + (tl.startTime - parentContext.currentTimeline.startTime);\n }\n}\nconst DEFAULT_NOOP_PREVIOUS_NODE = {};\nclass AnimationTimelineContext {\n constructor(_driver, element, subInstructions, _enterClassName, _leaveClassName, errors, timelines, initialTimeline) {\n this._driver = _driver;\n this.element = element;\n this.subInstructions = subInstructions;\n this._enterClassName = _enterClassName;\n this._leaveClassName = _leaveClassName;\n this.errors = errors;\n this.timelines = timelines;\n this.parentContext = null;\n this.currentAnimateTimings = null;\n this.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n this.subContextCount = 0;\n this.options = {};\n this.currentQueryIndex = 0;\n this.currentQueryTotal = 0;\n this.currentStaggerTime = 0;\n this.currentTimeline = initialTimeline || new TimelineBuilder(this._driver, element, 0);\n timelines.push(this.currentTimeline);\n }\n get params() {\n return this.options.params;\n }\n updateOptions(options, skipIfExists) {\n if (!options)\n return;\n const newOptions = options;\n let optionsToUpdate = this.options;\n // NOTE: this will get patched up when other animation methods support duration overrides\n if (newOptions.duration != null) {\n optionsToUpdate.duration = resolveTimingValue(newOptions.duration);\n }\n if (newOptions.delay != null) {\n optionsToUpdate.delay = resolveTimingValue(newOptions.delay);\n }\n const newParams = newOptions.params;\n if (newParams) {\n let paramsToUpdate = optionsToUpdate.params;\n if (!paramsToUpdate) {\n paramsToUpdate = this.options.params = {};\n }\n Object.keys(newParams).forEach(name => {\n if (!skipIfExists || !paramsToUpdate.hasOwnProperty(name)) {\n paramsToUpdate[name] = interpolateParams(newParams[name], paramsToUpdate, this.errors);\n }\n });\n }\n }\n _copyOptions() {\n const options = {};\n if (this.options) {\n const oldParams = this.options.params;\n if (oldParams) {\n const params = options['params'] = {};\n Object.keys(oldParams).forEach(name => {\n params[name] = oldParams[name];\n });\n }\n }\n return options;\n }\n createSubContext(options = null, element, newTime) {\n const target = element || this.element;\n const context = new AnimationTimelineContext(this._driver, target, this.subInstructions, this._enterClassName, this._leaveClassName, this.errors, this.timelines, this.currentTimeline.fork(target, newTime || 0));\n context.previousNode = this.previousNode;\n context.currentAnimateTimings = this.currentAnimateTimings;\n context.options = this._copyOptions();\n context.updateOptions(options);\n context.currentQueryIndex = this.currentQueryIndex;\n context.currentQueryTotal = this.currentQueryTotal;\n context.parentContext = this;\n this.subContextCount++;\n return context;\n }\n transformIntoNewTimeline(newTime) {\n this.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n this.currentTimeline = this.currentTimeline.fork(this.element, newTime);\n this.timelines.push(this.currentTimeline);\n return this.currentTimeline;\n }\n appendInstructionToTimeline(instruction, duration, delay) {\n const updatedTimings = {\n duration: duration != null ? duration : instruction.duration,\n delay: this.currentTimeline.currentTime + (delay != null ? delay : 0) + instruction.delay,\n easing: ''\n };\n const builder = new SubTimelineBuilder(this._driver, instruction.element, instruction.keyframes, instruction.preStyleProps, instruction.postStyleProps, updatedTimings, instruction.stretchStartingKeyframe);\n this.timelines.push(builder);\n return updatedTimings;\n }\n incrementTime(time) {\n this.currentTimeline.forwardTime(this.currentTimeline.duration + time);\n }\n delayNextStep(delay) {\n // negative delays are not yet supported\n if (delay > 0) {\n this.currentTimeline.delayNextStep(delay);\n }\n }\n invokeQuery(selector, originalSelector, limit, includeSelf, optional, errors) {\n let results = [];\n if (includeSelf) {\n results.push(this.element);\n }\n if (selector.length > 0) { // only if :self is used then the selector can be empty\n selector = selector.replace(ENTER_TOKEN_REGEX, '.' + this._enterClassName);\n selector = selector.replace(LEAVE_TOKEN_REGEX, '.' + this._leaveClassName);\n const multi = limit != 1;\n let elements = this._driver.query(this.element, selector, multi);\n if (limit !== 0) {\n elements = limit < 0 ? elements.slice(elements.length + limit, elements.length) :\n elements.slice(0, limit);\n }\n results.push(...elements);\n }\n if (!optional && results.length == 0) {\n errors.push(invalidQuery(originalSelector));\n }\n return results;\n }\n}\nclass TimelineBuilder {\n constructor(_driver, element, startTime, _elementTimelineStylesLookup) {\n this._driver = _driver;\n this.element = element;\n this.startTime = startTime;\n this._elementTimelineStylesLookup = _elementTimelineStylesLookup;\n this.duration = 0;\n this._previousKeyframe = new Map();\n this._currentKeyframe = new Map();\n this._keyframes = new Map();\n this._styleSummary = new Map();\n this._localTimelineStyles = new Map();\n this._pendingStyles = new Map();\n this._backFill = new Map();\n this._currentEmptyStepKeyframe = null;\n if (!this._elementTimelineStylesLookup) {\n this._elementTimelineStylesLookup = new Map();\n }\n this._globalTimelineStyles = this._elementTimelineStylesLookup.get(element);\n if (!this._globalTimelineStyles) {\n this._globalTimelineStyles = this._localTimelineStyles;\n this._elementTimelineStylesLookup.set(element, this._localTimelineStyles);\n }\n this._loadKeyframe();\n }\n containsAnimation() {\n switch (this._keyframes.size) {\n case 0:\n return false;\n case 1:\n return this.hasCurrentStyleProperties();\n default:\n return true;\n }\n }\n hasCurrentStyleProperties() {\n return this._currentKeyframe.size > 0;\n }\n get currentTime() {\n return this.startTime + this.duration;\n }\n delayNextStep(delay) {\n // in the event that a style() step is placed right before a stagger()\n // and that style() step is the very first style() value in the animation\n // then we need to make a copy of the keyframe [0, copy, 1] so that the delay\n // properly applies the style() values to work with the stagger...\n const hasPreStyleStep = this._keyframes.size === 1 && this._pendingStyles.size;\n if (this.duration || hasPreStyleStep) {\n this.forwardTime(this.currentTime + delay);\n if (hasPreStyleStep) {\n this.snapshotCurrentStyles();\n }\n }\n else {\n this.startTime += delay;\n }\n }\n fork(element, currentTime) {\n this.applyStylesToKeyframe();\n return new TimelineBuilder(this._driver, element, currentTime || this.currentTime, this._elementTimelineStylesLookup);\n }\n _loadKeyframe() {\n if (this._currentKeyframe) {\n this._previousKeyframe = this._currentKeyframe;\n }\n this._currentKeyframe = this._keyframes.get(this.duration);\n if (!this._currentKeyframe) {\n this._currentKeyframe = new Map();\n this._keyframes.set(this.duration, this._currentKeyframe);\n }\n }\n forwardFrame() {\n this.duration += ONE_FRAME_IN_MILLISECONDS;\n this._loadKeyframe();\n }\n forwardTime(time) {\n this.applyStylesToKeyframe();\n this.duration = time;\n this._loadKeyframe();\n }\n _updateStyle(prop, value) {\n this._localTimelineStyles.set(prop, value);\n this._globalTimelineStyles.set(prop, value);\n this._styleSummary.set(prop, { time: this.currentTime, value });\n }\n allowOnlyTimelineStyles() {\n return this._currentEmptyStepKeyframe !== this._currentKeyframe;\n }\n applyEmptyStep(easing) {\n if (easing) {\n this._previousKeyframe.set('easing', easing);\n }\n // special case for animate(duration):\n // all missing styles are filled with a `*` value then\n // if any destination styles are filled in later on the same\n // keyframe then they will override the overridden styles\n // We use `_globalTimelineStyles` here because there may be\n // styles in previous keyframes that are not present in this timeline\n for (let [prop, value] of this._globalTimelineStyles) {\n this._backFill.set(prop, value || AUTO_STYLE);\n this._currentKeyframe.set(prop, AUTO_STYLE);\n }\n this._currentEmptyStepKeyframe = this._currentKeyframe;\n }\n setStyles(input, easing, errors, options) {\n if (easing) {\n this._previousKeyframe.set('easing', easing);\n }\n const params = (options && options.params) || {};\n const styles = flattenStyles(input, this._globalTimelineStyles);\n for (let [prop, value] of styles) {\n const val = interpolateParams(value, params, errors);\n this._pendingStyles.set(prop, val);\n if (!this._localTimelineStyles.has(prop)) {\n this._backFill.set(prop, this._globalTimelineStyles.get(prop) ?? AUTO_STYLE);\n }\n this._updateStyle(prop, val);\n }\n }\n applyStylesToKeyframe() {\n if (this._pendingStyles.size == 0)\n return;\n this._pendingStyles.forEach((val, prop) => {\n this._currentKeyframe.set(prop, val);\n });\n this._pendingStyles.clear();\n this._localTimelineStyles.forEach((val, prop) => {\n if (!this._currentKeyframe.has(prop)) {\n this._currentKeyframe.set(prop, val);\n }\n });\n }\n snapshotCurrentStyles() {\n for (let [prop, val] of this._localTimelineStyles) {\n this._pendingStyles.set(prop, val);\n this._updateStyle(prop, val);\n }\n }\n getFinalKeyframe() {\n return this._keyframes.get(this.duration);\n }\n get properties() {\n const properties = [];\n for (let prop in this._currentKeyframe) {\n properties.push(prop);\n }\n return properties;\n }\n mergeTimelineCollectedStyles(timeline) {\n timeline._styleSummary.forEach((details1, prop) => {\n const details0 = this._styleSummary.get(prop);\n if (!details0 || details1.time > details0.time) {\n this._updateStyle(prop, details1.value);\n }\n });\n }\n buildKeyframes() {\n this.applyStylesToKeyframe();\n const preStyleProps = new Set();\n const postStyleProps = new Set();\n const isEmpty = this._keyframes.size === 1 && this.duration === 0;\n let finalKeyframes = [];\n this._keyframes.forEach((keyframe, time) => {\n const finalKeyframe = copyStyles(keyframe, new Map(), this._backFill);\n finalKeyframe.forEach((value, prop) => {\n if (value === ɵPRE_STYLE) {\n preStyleProps.add(prop);\n }\n else if (value === AUTO_STYLE) {\n postStyleProps.add(prop);\n }\n });\n if (!isEmpty) {\n finalKeyframe.set('offset', time / this.duration);\n }\n finalKeyframes.push(finalKeyframe);\n });\n const preProps = preStyleProps.size ? iteratorToArray(preStyleProps.values()) : [];\n const postProps = postStyleProps.size ? iteratorToArray(postStyleProps.values()) : [];\n // special case for a 0-second animation (which is designed just to place styles onscreen)\n if (isEmpty) {\n const kf0 = finalKeyframes[0];\n const kf1 = new Map(kf0);\n kf0.set('offset', 0);\n kf1.set('offset', 1);\n finalKeyframes = [kf0, kf1];\n }\n return createTimelineInstruction(this.element, finalKeyframes, preProps, postProps, this.duration, this.startTime, this.easing, false);\n }\n}\nclass SubTimelineBuilder extends TimelineBuilder {\n constructor(driver, element, keyframes, preStyleProps, postStyleProps, timings, _stretchStartingKeyframe = false) {\n super(driver, element, timings.delay);\n this.keyframes = keyframes;\n this.preStyleProps = preStyleProps;\n this.postStyleProps = postStyleProps;\n this._stretchStartingKeyframe = _stretchStartingKeyframe;\n this.timings = { duration: timings.duration, delay: timings.delay, easing: timings.easing };\n }\n containsAnimation() {\n return this.keyframes.length > 1;\n }\n buildKeyframes() {\n let keyframes = this.keyframes;\n let { delay, duration, easing } = this.timings;\n if (this._stretchStartingKeyframe && delay) {\n const newKeyframes = [];\n const totalTime = duration + delay;\n const startingGap = delay / totalTime;\n // the original starting keyframe now starts once the delay is done\n const newFirstKeyframe = copyStyles(keyframes[0]);\n newFirstKeyframe.set('offset', 0);\n newKeyframes.push(newFirstKeyframe);\n const oldFirstKeyframe = copyStyles(keyframes[0]);\n oldFirstKeyframe.set('offset', roundOffset(startingGap));\n newKeyframes.push(oldFirstKeyframe);\n /*\n When the keyframe is stretched then it means that the delay before the animation\n starts is gone. Instead the first keyframe is placed at the start of the animation\n and it is then copied to where it starts when the original delay is over. This basically\n means nothing animates during that delay, but the styles are still rendered. For this\n to work the original offset values that exist in the original keyframes must be \"warped\"\n so that they can take the new keyframe + delay into account.\n \n delay=1000, duration=1000, keyframes = 0 .5 1\n \n turns into\n \n delay=0, duration=2000, keyframes = 0 .33 .66 1\n */\n // offsets between 1 ... n -1 are all warped by the keyframe stretch\n const limit = keyframes.length - 1;\n for (let i = 1; i <= limit; i++) {\n let kf = copyStyles(keyframes[i]);\n const oldOffset = kf.get('offset');\n const timeAtKeyframe = delay + oldOffset * duration;\n kf.set('offset', roundOffset(timeAtKeyframe / totalTime));\n newKeyframes.push(kf);\n }\n // the new starting keyframe should be added at the start\n duration = totalTime;\n delay = 0;\n easing = '';\n keyframes = newKeyframes;\n }\n return createTimelineInstruction(this.element, keyframes, this.preStyleProps, this.postStyleProps, duration, delay, easing, true);\n }\n}\nfunction roundOffset(offset, decimalPoints = 3) {\n const mult = Math.pow(10, decimalPoints - 1);\n return Math.round(offset * mult) / mult;\n}\nfunction flattenStyles(input, allStyles) {\n const styles = new Map();\n let allProperties;\n input.forEach(token => {\n if (token === '*') {\n allProperties = allProperties || allStyles.keys();\n for (let prop of allProperties) {\n styles.set(prop, AUTO_STYLE);\n }\n }\n else {\n copyStyles(token, styles);\n }\n });\n return styles;\n}\n\nclass Animation {\n constructor(_driver, input) {\n this._driver = _driver;\n const errors = [];\n const warnings = [];\n const ast = buildAnimationAst(_driver, input, errors, warnings);\n if (errors.length) {\n throw validationFailed(errors);\n }\n if (warnings.length) {\n warnValidation(warnings);\n }\n this._animationAst = ast;\n }\n buildTimelines(element, startingStyles, destinationStyles, options, subInstructions) {\n const start = Array.isArray(startingStyles) ? normalizeStyles(startingStyles) :\n startingStyles;\n const dest = Array.isArray(destinationStyles) ? normalizeStyles(destinationStyles) :\n destinationStyles;\n const errors = [];\n subInstructions = subInstructions || new ElementInstructionMap();\n const result = buildAnimationTimelines(this._driver, element, this._animationAst, ENTER_CLASSNAME, LEAVE_CLASSNAME, start, dest, options, subInstructions, errors);\n if (errors.length) {\n throw buildingFailed(errors);\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/**\n * @publicApi\n */\nclass AnimationStyleNormalizer {\n}\n/**\n * @publicApi\n */\nclass NoopAnimationStyleNormalizer {\n normalizePropertyName(propertyName, errors) {\n return propertyName;\n }\n normalizeStyleValue(userProvidedProperty, normalizedProperty, value, errors) {\n return value;\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 DIMENSIONAL_PROP_SET = new Set([\n 'width',\n 'height',\n 'minWidth',\n 'minHeight',\n 'maxWidth',\n 'maxHeight',\n 'left',\n 'top',\n 'bottom',\n 'right',\n 'fontSize',\n 'outlineWidth',\n 'outlineOffset',\n 'paddingTop',\n 'paddingLeft',\n 'paddingBottom',\n 'paddingRight',\n 'marginTop',\n 'marginLeft',\n 'marginBottom',\n 'marginRight',\n 'borderRadius',\n 'borderWidth',\n 'borderTopWidth',\n 'borderLeftWidth',\n 'borderRightWidth',\n 'borderBottomWidth',\n 'textIndent',\n 'perspective'\n]);\nclass WebAnimationsStyleNormalizer extends AnimationStyleNormalizer {\n normalizePropertyName(propertyName, errors) {\n return dashCaseToCamelCase(propertyName);\n }\n normalizeStyleValue(userProvidedProperty, normalizedProperty, value, errors) {\n let unit = '';\n const strVal = value.toString().trim();\n if (DIMENSIONAL_PROP_SET.has(normalizedProperty) && value !== 0 && value !== '0') {\n if (typeof value === 'number') {\n unit = 'px';\n }\n else {\n const valAndSuffixMatch = value.match(/^[+-]?[\\d\\.]+([a-z]*)$/);\n if (valAndSuffixMatch && valAndSuffixMatch[1].length == 0) {\n errors.push(invalidCssUnitValue(userProvidedProperty, value));\n }\n }\n }\n return strVal + unit;\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 createTransitionInstruction(element, triggerName, fromState, toState, isRemovalTransition, fromStyles, toStyles, timelines, queriedElements, preStyleProps, postStyleProps, totalTime, errors) {\n return {\n type: 0 /* AnimationTransitionInstructionType.TransitionAnimation */,\n element,\n triggerName,\n isRemovalTransition,\n fromState,\n fromStyles,\n toState,\n toStyles,\n timelines,\n queriedElements,\n preStyleProps,\n postStyleProps,\n totalTime,\n errors\n };\n}\n\nconst EMPTY_OBJECT = {};\nclass AnimationTransitionFactory {\n constructor(_triggerName, ast, _stateStyles) {\n this._triggerName = _triggerName;\n this.ast = ast;\n this._stateStyles = _stateStyles;\n }\n match(currentState, nextState, element, params) {\n return oneOrMoreTransitionsMatch(this.ast.matchers, currentState, nextState, element, params);\n }\n buildStyles(stateName, params, errors) {\n let styler = this._stateStyles.get('*');\n if (stateName !== undefined) {\n styler = this._stateStyles.get(stateName?.toString()) || styler;\n }\n return styler ? styler.buildStyles(params, errors) : new Map();\n }\n build(driver, element, currentState, nextState, enterClassName, leaveClassName, currentOptions, nextOptions, subInstructions, skipAstBuild) {\n const errors = [];\n const transitionAnimationParams = this.ast.options && this.ast.options.params || EMPTY_OBJECT;\n const currentAnimationParams = currentOptions && currentOptions.params || EMPTY_OBJECT;\n const currentStateStyles = this.buildStyles(currentState, currentAnimationParams, errors);\n const nextAnimationParams = nextOptions && nextOptions.params || EMPTY_OBJECT;\n const nextStateStyles = this.buildStyles(nextState, nextAnimationParams, errors);\n const queriedElements = new Set();\n const preStyleMap = new Map();\n const postStyleMap = new Map();\n const isRemoval = nextState === 'void';\n const animationOptions = {\n params: applyParamDefaults(nextAnimationParams, transitionAnimationParams),\n delay: this.ast.options?.delay,\n };\n const timelines = skipAstBuild ?\n [] :\n buildAnimationTimelines(driver, element, this.ast.animation, enterClassName, leaveClassName, currentStateStyles, nextStateStyles, animationOptions, subInstructions, errors);\n let totalTime = 0;\n timelines.forEach(tl => {\n totalTime = Math.max(tl.duration + tl.delay, totalTime);\n });\n if (errors.length) {\n return createTransitionInstruction(element, this._triggerName, currentState, nextState, isRemoval, currentStateStyles, nextStateStyles, [], [], preStyleMap, postStyleMap, totalTime, errors);\n }\n timelines.forEach(tl => {\n const elm = tl.element;\n const preProps = getOrSetDefaultValue(preStyleMap, elm, new Set());\n tl.preStyleProps.forEach(prop => preProps.add(prop));\n const postProps = getOrSetDefaultValue(postStyleMap, elm, new Set());\n tl.postStyleProps.forEach(prop => postProps.add(prop));\n if (elm !== element) {\n queriedElements.add(elm);\n }\n });\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n checkNonAnimatableInTimelines(timelines, this._triggerName, driver);\n }\n const queriedElementsList = iteratorToArray(queriedElements.values());\n return createTransitionInstruction(element, this._triggerName, currentState, nextState, isRemoval, currentStateStyles, nextStateStyles, timelines, queriedElementsList, preStyleMap, postStyleMap, totalTime);\n }\n}\n/**\n * Checks inside a set of timelines if they try to animate a css property which is not considered\n * animatable, in that case it prints a warning on the console.\n * Besides that the function doesn't have any other effect.\n *\n * Note: this check is done here after the timelines are built instead of doing on a lower level so\n * that we can make sure that the warning appears only once per instruction (we can aggregate here\n * all the issues instead of finding them separately).\n *\n * @param timelines The built timelines for the current instruction.\n * @param triggerName The name of the trigger for the current instruction.\n * @param driver Animation driver used to perform the check.\n *\n */\nfunction checkNonAnimatableInTimelines(timelines, triggerName, driver) {\n if (!driver.validateAnimatableStyleProperty) {\n return;\n }\n const invalidNonAnimatableProps = new Set();\n timelines.forEach(({ keyframes }) => {\n const nonAnimatablePropsInitialValues = new Map();\n keyframes.forEach(keyframe => {\n for (const [prop, value] of keyframe.entries()) {\n if (!driver.validateAnimatableStyleProperty(prop)) {\n if (nonAnimatablePropsInitialValues.has(prop) && !invalidNonAnimatableProps.has(prop)) {\n const propInitialValue = nonAnimatablePropsInitialValues.get(prop);\n if (propInitialValue !== value) {\n invalidNonAnimatableProps.add(prop);\n }\n }\n else {\n nonAnimatablePropsInitialValues.set(prop, value);\n }\n }\n }\n });\n });\n if (invalidNonAnimatableProps.size > 0) {\n console.warn(`Warning: The animation trigger \"${triggerName}\" is attempting to animate the following` +\n ' not animatable properties: ' + Array.from(invalidNonAnimatableProps).join(', ') + '\\n' +\n '(to check the list of all animatable properties visit https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_animated_properties)');\n }\n}\nfunction oneOrMoreTransitionsMatch(matchFns, currentState, nextState, element, params) {\n return matchFns.some(fn => fn(currentState, nextState, element, params));\n}\nfunction applyParamDefaults(userParams, defaults) {\n const result = copyObj(defaults);\n for (const key in userParams) {\n if (userParams.hasOwnProperty(key) && userParams[key] != null) {\n result[key] = userParams[key];\n }\n }\n return result;\n}\nclass AnimationStateStyles {\n constructor(styles, defaultParams, normalizer) {\n this.styles = styles;\n this.defaultParams = defaultParams;\n this.normalizer = normalizer;\n }\n buildStyles(params, errors) {\n const finalStyles = new Map();\n const combinedParams = copyObj(this.defaultParams);\n Object.keys(params).forEach(key => {\n const value = params[key];\n if (value !== null) {\n combinedParams[key] = value;\n }\n });\n this.styles.styles.forEach(value => {\n if (typeof value !== 'string') {\n value.forEach((val, prop) => {\n if (val) {\n val = interpolateParams(val, combinedParams, errors);\n }\n const normalizedProp = this.normalizer.normalizePropertyName(prop, errors);\n val = this.normalizer.normalizeStyleValue(prop, normalizedProp, val, errors);\n finalStyles.set(normalizedProp, val);\n });\n }\n });\n return finalStyles;\n }\n}\n\nfunction buildTrigger(name, ast, normalizer) {\n return new AnimationTrigger(name, ast, normalizer);\n}\nclass AnimationTrigger {\n constructor(name, ast, _normalizer) {\n this.name = name;\n this.ast = ast;\n this._normalizer = _normalizer;\n this.transitionFactories = [];\n this.states = new Map();\n ast.states.forEach(ast => {\n const defaultParams = (ast.options && ast.options.params) || {};\n this.states.set(ast.name, new AnimationStateStyles(ast.style, defaultParams, _normalizer));\n });\n balanceProperties(this.states, 'true', '1');\n balanceProperties(this.states, 'false', '0');\n ast.transitions.forEach(ast => {\n this.transitionFactories.push(new AnimationTransitionFactory(name, ast, this.states));\n });\n this.fallbackTransition = createFallbackTransition(name, this.states, this._normalizer);\n }\n get containsQueries() {\n return this.ast.queryCount > 0;\n }\n matchTransition(currentState, nextState, element, params) {\n const entry = this.transitionFactories.find(f => f.match(currentState, nextState, element, params));\n return entry || null;\n }\n matchStyles(currentState, params, errors) {\n return this.fallbackTransition.buildStyles(currentState, params, errors);\n }\n}\nfunction createFallbackTransition(triggerName, states, normalizer) {\n const matchers = [(fromState, toState) => true];\n const animation = { type: 2 /* AnimationMetadataType.Sequence */, steps: [], options: null };\n const transition = {\n type: 1 /* AnimationMetadataType.Transition */,\n animation,\n matchers,\n options: null,\n queryCount: 0,\n depCount: 0\n };\n return new AnimationTransitionFactory(triggerName, transition, states);\n}\nfunction balanceProperties(stateMap, key1, key2) {\n if (stateMap.has(key1)) {\n if (!stateMap.has(key2)) {\n stateMap.set(key2, stateMap.get(key1));\n }\n }\n else if (stateMap.has(key2)) {\n stateMap.set(key1, stateMap.get(key2));\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 EMPTY_INSTRUCTION_MAP = new ElementInstructionMap();\nclass TimelineAnimationEngine {\n constructor(bodyNode, _driver, _normalizer) {\n this.bodyNode = bodyNode;\n this._driver = _driver;\n this._normalizer = _normalizer;\n this._animations = new Map();\n this._playersById = new Map();\n this.players = [];\n }\n register(id, metadata) {\n const errors = [];\n const warnings = [];\n const ast = buildAnimationAst(this._driver, metadata, errors, warnings);\n if (errors.length) {\n throw registerFailed(errors);\n }\n else {\n if (warnings.length) {\n warnRegister(warnings);\n }\n this._animations.set(id, ast);\n }\n }\n _buildPlayer(i, preStyles, postStyles) {\n const element = i.element;\n const keyframes = normalizeKeyframes$1(this._driver, this._normalizer, element, i.keyframes, preStyles, postStyles);\n return this._driver.animate(element, keyframes, i.duration, i.delay, i.easing, [], true);\n }\n create(id, element, options = {}) {\n const errors = [];\n const ast = this._animations.get(id);\n let instructions;\n const autoStylesMap = new Map();\n if (ast) {\n instructions = buildAnimationTimelines(this._driver, element, ast, ENTER_CLASSNAME, LEAVE_CLASSNAME, new Map(), new Map(), options, EMPTY_INSTRUCTION_MAP, errors);\n instructions.forEach(inst => {\n const styles = getOrSetDefaultValue(autoStylesMap, inst.element, new Map());\n inst.postStyleProps.forEach(prop => styles.set(prop, null));\n });\n }\n else {\n errors.push(missingOrDestroyedAnimation());\n instructions = [];\n }\n if (errors.length) {\n throw createAnimationFailed(errors);\n }\n autoStylesMap.forEach((styles, element) => {\n styles.forEach((_, prop) => {\n styles.set(prop, this._driver.computeStyle(element, prop, AUTO_STYLE));\n });\n });\n const players = instructions.map(i => {\n const styles = autoStylesMap.get(i.element);\n return this._buildPlayer(i, new Map(), styles);\n });\n const player = optimizeGroupPlayer(players);\n this._playersById.set(id, player);\n player.onDestroy(() => this.destroy(id));\n this.players.push(player);\n return player;\n }\n destroy(id) {\n const player = this._getPlayer(id);\n player.destroy();\n this._playersById.delete(id);\n const index = this.players.indexOf(player);\n if (index >= 0) {\n this.players.splice(index, 1);\n }\n }\n _getPlayer(id) {\n const player = this._playersById.get(id);\n if (!player) {\n throw missingPlayer(id);\n }\n return player;\n }\n listen(id, element, eventName, callback) {\n // triggerName, fromState, toState are all ignored for timeline animations\n const baseEvent = makeAnimationEvent(element, '', '', '');\n listenOnPlayer(this._getPlayer(id), eventName, baseEvent, callback);\n return () => { };\n }\n command(id, element, command, args) {\n if (command == 'register') {\n this.register(id, args[0]);\n return;\n }\n if (command == 'create') {\n const options = (args[0] || {});\n this.create(id, element, options);\n return;\n }\n const player = this._getPlayer(id);\n switch (command) {\n case 'play':\n player.play();\n break;\n case 'pause':\n player.pause();\n break;\n case 'reset':\n player.reset();\n break;\n case 'restart':\n player.restart();\n break;\n case 'finish':\n player.finish();\n break;\n case 'init':\n player.init();\n break;\n case 'setPosition':\n player.setPosition(parseFloat(args[0]));\n break;\n case 'destroy':\n this.destroy(id);\n break;\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 */\nconst QUEUED_CLASSNAME = 'ng-animate-queued';\nconst QUEUED_SELECTOR = '.ng-animate-queued';\nconst DISABLED_CLASSNAME = 'ng-animate-disabled';\nconst DISABLED_SELECTOR = '.ng-animate-disabled';\nconst STAR_CLASSNAME = 'ng-star-inserted';\nconst STAR_SELECTOR = '.ng-star-inserted';\nconst EMPTY_PLAYER_ARRAY = [];\nconst NULL_REMOVAL_STATE = {\n namespaceId: '',\n setForRemoval: false,\n setForMove: false,\n hasAnimation: false,\n removedBeforeQueried: false\n};\nconst NULL_REMOVED_QUERIED_STATE = {\n namespaceId: '',\n setForMove: false,\n setForRemoval: false,\n hasAnimation: false,\n removedBeforeQueried: true\n};\nconst REMOVAL_FLAG = '__ng_removed';\nclass StateValue {\n constructor(input, namespaceId = '') {\n this.namespaceId = namespaceId;\n const isObj = input && input.hasOwnProperty('value');\n const value = isObj ? input['value'] : input;\n this.value = normalizeTriggerValue(value);\n if (isObj) {\n const options = copyObj(input);\n delete options['value'];\n this.options = options;\n }\n else {\n this.options = {};\n }\n if (!this.options.params) {\n this.options.params = {};\n }\n }\n get params() {\n return this.options.params;\n }\n absorbOptions(options) {\n const newParams = options.params;\n if (newParams) {\n const oldParams = this.options.params;\n Object.keys(newParams).forEach(prop => {\n if (oldParams[prop] == null) {\n oldParams[prop] = newParams[prop];\n }\n });\n }\n }\n}\nconst VOID_VALUE = 'void';\nconst DEFAULT_STATE_VALUE = new StateValue(VOID_VALUE);\nclass AnimationTransitionNamespace {\n constructor(id, hostElement, _engine) {\n this.id = id;\n this.hostElement = hostElement;\n this._engine = _engine;\n this.players = [];\n this._triggers = new Map();\n this._queue = [];\n this._elementListeners = new Map();\n this._hostClassName = 'ng-tns-' + id;\n addClass(hostElement, this._hostClassName);\n }\n listen(element, name, phase, callback) {\n if (!this._triggers.has(name)) {\n throw missingTrigger(phase, name);\n }\n if (phase == null || phase.length == 0) {\n throw missingEvent(name);\n }\n if (!isTriggerEventValid(phase)) {\n throw unsupportedTriggerEvent(phase, name);\n }\n const listeners = getOrSetDefaultValue(this._elementListeners, element, []);\n const data = { name, phase, callback };\n listeners.push(data);\n const triggersWithStates = getOrSetDefaultValue(this._engine.statesByElement, element, new Map());\n if (!triggersWithStates.has(name)) {\n addClass(element, NG_TRIGGER_CLASSNAME);\n addClass(element, NG_TRIGGER_CLASSNAME + '-' + name);\n triggersWithStates.set(name, DEFAULT_STATE_VALUE);\n }\n return () => {\n // the event listener is removed AFTER the flush has occurred such\n // that leave animations callbacks can fire (otherwise if the node\n // is removed in between then the listeners would be deregistered)\n this._engine.afterFlush(() => {\n const index = listeners.indexOf(data);\n if (index >= 0) {\n listeners.splice(index, 1);\n }\n if (!this._triggers.has(name)) {\n triggersWithStates.delete(name);\n }\n });\n };\n }\n register(name, ast) {\n if (this._triggers.has(name)) {\n // throw\n return false;\n }\n else {\n this._triggers.set(name, ast);\n return true;\n }\n }\n _getTrigger(name) {\n const trigger = this._triggers.get(name);\n if (!trigger) {\n throw unregisteredTrigger(name);\n }\n return trigger;\n }\n trigger(element, triggerName, value, defaultToFallback = true) {\n const trigger = this._getTrigger(triggerName);\n const player = new TransitionAnimationPlayer(this.id, triggerName, element);\n let triggersWithStates = this._engine.statesByElement.get(element);\n if (!triggersWithStates) {\n addClass(element, NG_TRIGGER_CLASSNAME);\n addClass(element, NG_TRIGGER_CLASSNAME + '-' + triggerName);\n this._engine.statesByElement.set(element, triggersWithStates = new Map());\n }\n let fromState = triggersWithStates.get(triggerName);\n const toState = new StateValue(value, this.id);\n const isObj = value && value.hasOwnProperty('value');\n if (!isObj && fromState) {\n toState.absorbOptions(fromState.options);\n }\n triggersWithStates.set(triggerName, toState);\n if (!fromState) {\n fromState = DEFAULT_STATE_VALUE;\n }\n const isRemoval = toState.value === VOID_VALUE;\n // normally this isn't reached by here, however, if an object expression\n // is passed in then it may be a new object each time. Comparing the value\n // is important since that will stay the same despite there being a new object.\n // The removal arc here is special cased because the same element is triggered\n // twice in the event that it contains animations on the outer/inner portions\n // of the host container\n if (!isRemoval && fromState.value === toState.value) {\n // this means that despite the value not changing, some inner params\n // have changed which means that the animation final styles need to be applied\n if (!objEquals(fromState.params, toState.params)) {\n const errors = [];\n const fromStyles = trigger.matchStyles(fromState.value, fromState.params, errors);\n const toStyles = trigger.matchStyles(toState.value, toState.params, errors);\n if (errors.length) {\n this._engine.reportError(errors);\n }\n else {\n this._engine.afterFlush(() => {\n eraseStyles(element, fromStyles);\n setStyles(element, toStyles);\n });\n }\n }\n return;\n }\n const playersOnElement = getOrSetDefaultValue(this._engine.playersByElement, element, []);\n playersOnElement.forEach(player => {\n // only remove the player if it is queued on the EXACT same trigger/namespace\n // we only also deal with queued players here because if the animation has\n // started then we want to keep the player alive until the flush happens\n // (which is where the previousPlayers are passed into the new player)\n if (player.namespaceId == this.id && player.triggerName == triggerName && player.queued) {\n player.destroy();\n }\n });\n let transition = trigger.matchTransition(fromState.value, toState.value, element, toState.params);\n let isFallbackTransition = false;\n if (!transition) {\n if (!defaultToFallback)\n return;\n transition = trigger.fallbackTransition;\n isFallbackTransition = true;\n }\n this._engine.totalQueuedPlayers++;\n this._queue.push({ element, triggerName, transition, fromState, toState, player, isFallbackTransition });\n if (!isFallbackTransition) {\n addClass(element, QUEUED_CLASSNAME);\n player.onStart(() => {\n removeClass(element, QUEUED_CLASSNAME);\n });\n }\n player.onDone(() => {\n let index = this.players.indexOf(player);\n if (index >= 0) {\n this.players.splice(index, 1);\n }\n const players = this._engine.playersByElement.get(element);\n if (players) {\n let index = players.indexOf(player);\n if (index >= 0) {\n players.splice(index, 1);\n }\n }\n });\n this.players.push(player);\n playersOnElement.push(player);\n return player;\n }\n deregister(name) {\n this._triggers.delete(name);\n this._engine.statesByElement.forEach(stateMap => stateMap.delete(name));\n this._elementListeners.forEach((listeners, element) => {\n this._elementListeners.set(element, listeners.filter(entry => {\n return entry.name != name;\n }));\n });\n }\n clearElementCache(element) {\n this._engine.statesByElement.delete(element);\n this._elementListeners.delete(element);\n const elementPlayers = this._engine.playersByElement.get(element);\n if (elementPlayers) {\n elementPlayers.forEach(player => player.destroy());\n this._engine.playersByElement.delete(element);\n }\n }\n _signalRemovalForInnerTriggers(rootElement, context) {\n const elements = this._engine.driver.query(rootElement, NG_TRIGGER_SELECTOR, true);\n // emulate a leave animation for all inner nodes within this node.\n // If there are no animations found for any of the nodes then clear the cache\n // for the element.\n elements.forEach(elm => {\n // this means that an inner remove() operation has already kicked off\n // the animation on this element...\n if (elm[REMOVAL_FLAG])\n return;\n const namespaces = this._engine.fetchNamespacesByElement(elm);\n if (namespaces.size) {\n namespaces.forEach(ns => ns.triggerLeaveAnimation(elm, context, false, true));\n }\n else {\n this.clearElementCache(elm);\n }\n });\n // If the child elements were removed along with the parent, their animations might not\n // have completed. Clear all the elements from the cache so we don't end up with a memory leak.\n this._engine.afterFlushAnimationsDone(() => elements.forEach(elm => this.clearElementCache(elm)));\n }\n triggerLeaveAnimation(element, context, destroyAfterComplete, defaultToFallback) {\n const triggerStates = this._engine.statesByElement.get(element);\n const previousTriggersValues = new Map();\n if (triggerStates) {\n const players = [];\n triggerStates.forEach((state, triggerName) => {\n previousTriggersValues.set(triggerName, state.value);\n // this check is here in the event that an element is removed\n // twice (both on the host level and the component level)\n if (this._triggers.has(triggerName)) {\n const player = this.trigger(element, triggerName, VOID_VALUE, defaultToFallback);\n if (player) {\n players.push(player);\n }\n }\n });\n if (players.length) {\n this._engine.markElementAsRemoved(this.id, element, true, context, previousTriggersValues);\n if (destroyAfterComplete) {\n optimizeGroupPlayer(players).onDone(() => this._engine.processLeaveNode(element));\n }\n return true;\n }\n }\n return false;\n }\n prepareLeaveAnimationListeners(element) {\n const listeners = this._elementListeners.get(element);\n const elementStates = this._engine.statesByElement.get(element);\n // if this statement fails then it means that the element was picked up\n // by an earlier flush (or there are no listeners at all to track the leave).\n if (listeners && elementStates) {\n const visitedTriggers = new Set();\n listeners.forEach(listener => {\n const triggerName = listener.name;\n if (visitedTriggers.has(triggerName))\n return;\n visitedTriggers.add(triggerName);\n const trigger = this._triggers.get(triggerName);\n const transition = trigger.fallbackTransition;\n const fromState = elementStates.get(triggerName) || DEFAULT_STATE_VALUE;\n const toState = new StateValue(VOID_VALUE);\n const player = new TransitionAnimationPlayer(this.id, triggerName, element);\n this._engine.totalQueuedPlayers++;\n this._queue.push({\n element,\n triggerName,\n transition,\n fromState,\n toState,\n player,\n isFallbackTransition: true\n });\n });\n }\n }\n removeNode(element, context) {\n const engine = this._engine;\n if (element.childElementCount) {\n this._signalRemovalForInnerTriggers(element, context);\n }\n // this means that a * => VOID animation was detected and kicked off\n if (this.triggerLeaveAnimation(element, context, true))\n return;\n // find the player that is animating and make sure that the\n // removal is delayed until that player has completed\n let containsPotentialParentTransition = false;\n if (engine.totalAnimations) {\n const currentPlayers = engine.players.length ? engine.playersByQueriedElement.get(element) : [];\n // when this `if statement` does not continue forward it means that\n // a previous animation query has selected the current element and\n // is animating it. In this situation want to continue forwards and\n // allow the element to be queued up for animation later.\n if (currentPlayers && currentPlayers.length) {\n containsPotentialParentTransition = true;\n }\n else {\n let parent = element;\n while (parent = parent.parentNode) {\n const triggers = engine.statesByElement.get(parent);\n if (triggers) {\n containsPotentialParentTransition = true;\n break;\n }\n }\n }\n }\n // at this stage we know that the element will either get removed\n // during flush or will be picked up by a parent query. Either way\n // we need to fire the listeners for this element when it DOES get\n // removed (once the query parent animation is done or after flush)\n this.prepareLeaveAnimationListeners(element);\n // whether or not a parent has an animation we need to delay the deferral of the leave\n // operation until we have more information (which we do after flush() has been called)\n if (containsPotentialParentTransition) {\n engine.markElementAsRemoved(this.id, element, false, context);\n }\n else {\n const removalFlag = element[REMOVAL_FLAG];\n if (!removalFlag || removalFlag === NULL_REMOVAL_STATE) {\n // we do this after the flush has occurred such\n // that the callbacks can be fired\n engine.afterFlush(() => this.clearElementCache(element));\n engine.destroyInnerAnimations(element);\n engine._onRemovalComplete(element, context);\n }\n }\n }\n insertNode(element, parent) {\n addClass(element, this._hostClassName);\n }\n drainQueuedTransitions(microtaskId) {\n const instructions = [];\n this._queue.forEach(entry => {\n const player = entry.player;\n if (player.destroyed)\n return;\n const element = entry.element;\n const listeners = this._elementListeners.get(element);\n if (listeners) {\n listeners.forEach((listener) => {\n if (listener.name == entry.triggerName) {\n const baseEvent = makeAnimationEvent(element, entry.triggerName, entry.fromState.value, entry.toState.value);\n baseEvent['_data'] = microtaskId;\n listenOnPlayer(entry.player, listener.phase, baseEvent, listener.callback);\n }\n });\n }\n if (player.markedForDestroy) {\n this._engine.afterFlush(() => {\n // now we can destroy the element properly since the event listeners have\n // been bound to the player\n player.destroy();\n });\n }\n else {\n instructions.push(entry);\n }\n });\n this._queue = [];\n return instructions.sort((a, b) => {\n // if depCount == 0 them move to front\n // otherwise if a contains b then move back\n const d0 = a.transition.ast.depCount;\n const d1 = b.transition.ast.depCount;\n if (d0 == 0 || d1 == 0) {\n return d0 - d1;\n }\n return this._engine.driver.containsElement(a.element, b.element) ? 1 : -1;\n });\n }\n destroy(context) {\n this.players.forEach(p => p.destroy());\n this._signalRemovalForInnerTriggers(this.hostElement, context);\n }\n elementContainsData(element) {\n let containsData = false;\n if (this._elementListeners.has(element))\n containsData = true;\n containsData =\n (this._queue.find(entry => entry.element === element) ? true : false) || containsData;\n return containsData;\n }\n}\nclass TransitionAnimationEngine {\n constructor(bodyNode, driver, _normalizer) {\n this.bodyNode = bodyNode;\n this.driver = driver;\n this._normalizer = _normalizer;\n this.players = [];\n this.newHostElements = new Map();\n this.playersByElement = new Map();\n this.playersByQueriedElement = new Map();\n this.statesByElement = new Map();\n this.disabledNodes = new Set();\n this.totalAnimations = 0;\n this.totalQueuedPlayers = 0;\n this._namespaceLookup = {};\n this._namespaceList = [];\n this._flushFns = [];\n this._whenQuietFns = [];\n this.namespacesByHostElement = new Map();\n this.collectedEnterElements = [];\n this.collectedLeaveElements = [];\n // this method is designed to be overridden by the code that uses this engine\n this.onRemovalComplete = (element, context) => { };\n }\n /** @internal */\n _onRemovalComplete(element, context) {\n this.onRemovalComplete(element, context);\n }\n get queuedPlayers() {\n const players = [];\n this._namespaceList.forEach(ns => {\n ns.players.forEach(player => {\n if (player.queued) {\n players.push(player);\n }\n });\n });\n return players;\n }\n createNamespace(namespaceId, hostElement) {\n const ns = new AnimationTransitionNamespace(namespaceId, hostElement, this);\n if (this.bodyNode && this.driver.containsElement(this.bodyNode, hostElement)) {\n this._balanceNamespaceList(ns, hostElement);\n }\n else {\n // defer this later until flush during when the host element has\n // been inserted so that we know exactly where to place it in\n // the namespace list\n this.newHostElements.set(hostElement, ns);\n // given that this host element is a part of the animation code, it\n // may or may not be inserted by a parent node that is of an\n // animation renderer type. If this happens then we can still have\n // access to this item when we query for :enter nodes. If the parent\n // is a renderer then the set data-structure will normalize the entry\n this.collectEnterElement(hostElement);\n }\n return this._namespaceLookup[namespaceId] = ns;\n }\n _balanceNamespaceList(ns, hostElement) {\n const namespaceList = this._namespaceList;\n const namespacesByHostElement = this.namespacesByHostElement;\n const limit = namespaceList.length - 1;\n if (limit >= 0) {\n let found = false;\n // Find the closest ancestor with an existing namespace so we can then insert `ns` after it,\n // establishing a top-down ordering of namespaces in `this._namespaceList`.\n let ancestor = this.driver.getParentElement(hostElement);\n while (ancestor) {\n const ancestorNs = namespacesByHostElement.get(ancestor);\n if (ancestorNs) {\n // An animation namespace has been registered for this ancestor, so we insert `ns`\n // right after it to establish top-down ordering of animation namespaces.\n const index = namespaceList.indexOf(ancestorNs);\n namespaceList.splice(index + 1, 0, ns);\n found = true;\n break;\n }\n ancestor = this.driver.getParentElement(ancestor);\n }\n if (!found) {\n // No namespace exists that is an ancestor of `ns`, so `ns` is inserted at the front to\n // ensure that any existing descendants are ordered after `ns`, retaining the desired\n // top-down ordering.\n namespaceList.unshift(ns);\n }\n }\n else {\n namespaceList.push(ns);\n }\n namespacesByHostElement.set(hostElement, ns);\n return ns;\n }\n register(namespaceId, hostElement) {\n let ns = this._namespaceLookup[namespaceId];\n if (!ns) {\n ns = this.createNamespace(namespaceId, hostElement);\n }\n return ns;\n }\n registerTrigger(namespaceId, name, trigger) {\n let ns = this._namespaceLookup[namespaceId];\n if (ns && ns.register(name, trigger)) {\n this.totalAnimations++;\n }\n }\n destroy(namespaceId, context) {\n if (!namespaceId)\n return;\n const ns = this._fetchNamespace(namespaceId);\n this.afterFlush(() => {\n this.namespacesByHostElement.delete(ns.hostElement);\n delete this._namespaceLookup[namespaceId];\n const index = this._namespaceList.indexOf(ns);\n if (index >= 0) {\n this._namespaceList.splice(index, 1);\n }\n });\n this.afterFlushAnimationsDone(() => ns.destroy(context));\n }\n _fetchNamespace(id) {\n return this._namespaceLookup[id];\n }\n fetchNamespacesByElement(element) {\n // normally there should only be one namespace per element, however\n // if @triggers are placed on both the component element and then\n // its host element (within the component code) then there will be\n // two namespaces returned. We use a set here to simply deduplicate\n // the namespaces in case (for the reason described above) there are multiple triggers\n const namespaces = new Set();\n const elementStates = this.statesByElement.get(element);\n if (elementStates) {\n for (let stateValue of elementStates.values()) {\n if (stateValue.namespaceId) {\n const ns = this._fetchNamespace(stateValue.namespaceId);\n if (ns) {\n namespaces.add(ns);\n }\n }\n }\n }\n return namespaces;\n }\n trigger(namespaceId, element, name, value) {\n if (isElementNode(element)) {\n const ns = this._fetchNamespace(namespaceId);\n if (ns) {\n ns.trigger(element, name, value);\n return true;\n }\n }\n return false;\n }\n insertNode(namespaceId, element, parent, insertBefore) {\n if (!isElementNode(element))\n return;\n // special case for when an element is removed and reinserted (move operation)\n // when this occurs we do not want to use the element for deletion later\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval) {\n details.setForRemoval = false;\n details.setForMove = true;\n const index = this.collectedLeaveElements.indexOf(element);\n if (index >= 0) {\n this.collectedLeaveElements.splice(index, 1);\n }\n }\n // in the event that the namespaceId is blank then the caller\n // code does not contain any animation code in it, but it is\n // just being called so that the node is marked as being inserted\n if (namespaceId) {\n const ns = this._fetchNamespace(namespaceId);\n // This if-statement is a workaround for router issue #21947.\n // The router sometimes hits a race condition where while a route\n // is being instantiated a new navigation arrives, triggering leave\n // animation of DOM that has not been fully initialized, until this\n // is resolved, we need to handle the scenario when DOM is not in a\n // consistent state during the animation.\n if (ns) {\n ns.insertNode(element, parent);\n }\n }\n // only *directives and host elements are inserted before\n if (insertBefore) {\n this.collectEnterElement(element);\n }\n }\n collectEnterElement(element) {\n this.collectedEnterElements.push(element);\n }\n markElementAsDisabled(element, value) {\n if (value) {\n if (!this.disabledNodes.has(element)) {\n this.disabledNodes.add(element);\n addClass(element, DISABLED_CLASSNAME);\n }\n }\n else if (this.disabledNodes.has(element)) {\n this.disabledNodes.delete(element);\n removeClass(element, DISABLED_CLASSNAME);\n }\n }\n removeNode(namespaceId, element, isHostElement, context) {\n if (isElementNode(element)) {\n const ns = namespaceId ? this._fetchNamespace(namespaceId) : null;\n if (ns) {\n ns.removeNode(element, context);\n }\n else {\n this.markElementAsRemoved(namespaceId, element, false, context);\n }\n if (isHostElement) {\n const hostNS = this.namespacesByHostElement.get(element);\n if (hostNS && hostNS.id !== namespaceId) {\n hostNS.removeNode(element, context);\n }\n }\n }\n else {\n this._onRemovalComplete(element, context);\n }\n }\n markElementAsRemoved(namespaceId, element, hasAnimation, context, previousTriggersValues) {\n this.collectedLeaveElements.push(element);\n element[REMOVAL_FLAG] = {\n namespaceId,\n setForRemoval: context,\n hasAnimation,\n removedBeforeQueried: false,\n previousTriggersValues\n };\n }\n listen(namespaceId, element, name, phase, callback) {\n if (isElementNode(element)) {\n return this._fetchNamespace(namespaceId).listen(element, name, phase, callback);\n }\n return () => { };\n }\n _buildInstruction(entry, subTimelines, enterClassName, leaveClassName, skipBuildAst) {\n return entry.transition.build(this.driver, entry.element, entry.fromState.value, entry.toState.value, enterClassName, leaveClassName, entry.fromState.options, entry.toState.options, subTimelines, skipBuildAst);\n }\n destroyInnerAnimations(containerElement) {\n let elements = this.driver.query(containerElement, NG_TRIGGER_SELECTOR, true);\n elements.forEach(element => this.destroyActiveAnimationsForElement(element));\n if (this.playersByQueriedElement.size == 0)\n return;\n elements = this.driver.query(containerElement, NG_ANIMATING_SELECTOR, true);\n elements.forEach(element => this.finishActiveQueriedAnimationOnElement(element));\n }\n destroyActiveAnimationsForElement(element) {\n const players = this.playersByElement.get(element);\n if (players) {\n players.forEach(player => {\n // special case for when an element is set for destruction, but hasn't started.\n // in this situation we want to delay the destruction until the flush occurs\n // so that any event listeners attached to the player are triggered.\n if (player.queued) {\n player.markedForDestroy = true;\n }\n else {\n player.destroy();\n }\n });\n }\n }\n finishActiveQueriedAnimationOnElement(element) {\n const players = this.playersByQueriedElement.get(element);\n if (players) {\n players.forEach(player => player.finish());\n }\n }\n whenRenderingDone() {\n return new Promise(resolve => {\n if (this.players.length) {\n return optimizeGroupPlayer(this.players).onDone(() => resolve());\n }\n else {\n resolve();\n }\n });\n }\n processLeaveNode(element) {\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval) {\n // this will prevent it from removing it twice\n element[REMOVAL_FLAG] = NULL_REMOVAL_STATE;\n if (details.namespaceId) {\n this.destroyInnerAnimations(element);\n const ns = this._fetchNamespace(details.namespaceId);\n if (ns) {\n ns.clearElementCache(element);\n }\n }\n this._onRemovalComplete(element, details.setForRemoval);\n }\n if (element.classList?.contains(DISABLED_CLASSNAME)) {\n this.markElementAsDisabled(element, false);\n }\n this.driver.query(element, DISABLED_SELECTOR, true).forEach(node => {\n this.markElementAsDisabled(node, false);\n });\n }\n flush(microtaskId = -1) {\n let players = [];\n if (this.newHostElements.size) {\n this.newHostElements.forEach((ns, element) => this._balanceNamespaceList(ns, element));\n this.newHostElements.clear();\n }\n if (this.totalAnimations && this.collectedEnterElements.length) {\n for (let i = 0; i < this.collectedEnterElements.length; i++) {\n const elm = this.collectedEnterElements[i];\n addClass(elm, STAR_CLASSNAME);\n }\n }\n if (this._namespaceList.length &&\n (this.totalQueuedPlayers || this.collectedLeaveElements.length)) {\n const cleanupFns = [];\n try {\n players = this._flushAnimations(cleanupFns, microtaskId);\n }\n finally {\n for (let i = 0; i < cleanupFns.length; i++) {\n cleanupFns[i]();\n }\n }\n }\n else {\n for (let i = 0; i < this.collectedLeaveElements.length; i++) {\n const element = this.collectedLeaveElements[i];\n this.processLeaveNode(element);\n }\n }\n this.totalQueuedPlayers = 0;\n this.collectedEnterElements.length = 0;\n this.collectedLeaveElements.length = 0;\n this._flushFns.forEach(fn => fn());\n this._flushFns = [];\n if (this._whenQuietFns.length) {\n // we move these over to a variable so that\n // if any new callbacks are registered in another\n // flush they do not populate the existing set\n const quietFns = this._whenQuietFns;\n this._whenQuietFns = [];\n if (players.length) {\n optimizeGroupPlayer(players).onDone(() => {\n quietFns.forEach(fn => fn());\n });\n }\n else {\n quietFns.forEach(fn => fn());\n }\n }\n }\n reportError(errors) {\n throw triggerTransitionsFailed(errors);\n }\n _flushAnimations(cleanupFns, microtaskId) {\n const subTimelines = new ElementInstructionMap();\n const skippedPlayers = [];\n const skippedPlayersMap = new Map();\n const queuedInstructions = [];\n const queriedElements = new Map();\n const allPreStyleElements = new Map();\n const allPostStyleElements = new Map();\n const disabledElementsSet = new Set();\n this.disabledNodes.forEach(node => {\n disabledElementsSet.add(node);\n const nodesThatAreDisabled = this.driver.query(node, QUEUED_SELECTOR, true);\n for (let i = 0; i < nodesThatAreDisabled.length; i++) {\n disabledElementsSet.add(nodesThatAreDisabled[i]);\n }\n });\n const bodyNode = this.bodyNode;\n const allTriggerElements = Array.from(this.statesByElement.keys());\n const enterNodeMap = buildRootMap(allTriggerElements, this.collectedEnterElements);\n // this must occur before the instructions are built below such that\n // the :enter queries match the elements (since the timeline queries\n // are fired during instruction building).\n const enterNodeMapIds = new Map();\n let i = 0;\n enterNodeMap.forEach((nodes, root) => {\n const className = ENTER_CLASSNAME + i++;\n enterNodeMapIds.set(root, className);\n nodes.forEach(node => addClass(node, className));\n });\n const allLeaveNodes = [];\n const mergedLeaveNodes = new Set();\n const leaveNodesWithoutAnimations = new Set();\n for (let i = 0; i < this.collectedLeaveElements.length; i++) {\n const element = this.collectedLeaveElements[i];\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval) {\n allLeaveNodes.push(element);\n mergedLeaveNodes.add(element);\n if (details.hasAnimation) {\n this.driver.query(element, STAR_SELECTOR, true).forEach(elm => mergedLeaveNodes.add(elm));\n }\n else {\n leaveNodesWithoutAnimations.add(element);\n }\n }\n }\n const leaveNodeMapIds = new Map();\n const leaveNodeMap = buildRootMap(allTriggerElements, Array.from(mergedLeaveNodes));\n leaveNodeMap.forEach((nodes, root) => {\n const className = LEAVE_CLASSNAME + i++;\n leaveNodeMapIds.set(root, className);\n nodes.forEach(node => addClass(node, className));\n });\n cleanupFns.push(() => {\n enterNodeMap.forEach((nodes, root) => {\n const className = enterNodeMapIds.get(root);\n nodes.forEach(node => removeClass(node, className));\n });\n leaveNodeMap.forEach((nodes, root) => {\n const className = leaveNodeMapIds.get(root);\n nodes.forEach(node => removeClass(node, className));\n });\n allLeaveNodes.forEach(element => {\n this.processLeaveNode(element);\n });\n });\n const allPlayers = [];\n const erroneousTransitions = [];\n for (let i = this._namespaceList.length - 1; i >= 0; i--) {\n const ns = this._namespaceList[i];\n ns.drainQueuedTransitions(microtaskId).forEach(entry => {\n const player = entry.player;\n const element = entry.element;\n allPlayers.push(player);\n if (this.collectedEnterElements.length) {\n const details = element[REMOVAL_FLAG];\n // animations for move operations (elements being removed and reinserted,\n // e.g. when the order of an *ngFor list changes) are currently not supported\n if (details && details.setForMove) {\n if (details.previousTriggersValues &&\n details.previousTriggersValues.has(entry.triggerName)) {\n const previousValue = details.previousTriggersValues.get(entry.triggerName);\n // we need to restore the previous trigger value since the element has\n // only been moved and hasn't actually left the DOM\n const triggersWithStates = this.statesByElement.get(entry.element);\n if (triggersWithStates && triggersWithStates.has(entry.triggerName)) {\n const state = triggersWithStates.get(entry.triggerName);\n state.value = previousValue;\n triggersWithStates.set(entry.triggerName, state);\n }\n }\n player.destroy();\n return;\n }\n }\n const nodeIsOrphaned = !bodyNode || !this.driver.containsElement(bodyNode, element);\n const leaveClassName = leaveNodeMapIds.get(element);\n const enterClassName = enterNodeMapIds.get(element);\n const instruction = this._buildInstruction(entry, subTimelines, enterClassName, leaveClassName, nodeIsOrphaned);\n if (instruction.errors && instruction.errors.length) {\n erroneousTransitions.push(instruction);\n return;\n }\n // even though the element may not be in the DOM, it may still\n // be added at a later point (due to the mechanics of content\n // projection and/or dynamic component insertion) therefore it's\n // important to still style the element.\n if (nodeIsOrphaned) {\n player.onStart(() => eraseStyles(element, instruction.fromStyles));\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n skippedPlayers.push(player);\n return;\n }\n // if an unmatched transition is queued and ready to go\n // then it SHOULD NOT render an animation and cancel the\n // previously running animations.\n if (entry.isFallbackTransition) {\n player.onStart(() => eraseStyles(element, instruction.fromStyles));\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n skippedPlayers.push(player);\n return;\n }\n // this means that if a parent animation uses this animation as a sub-trigger\n // then it will instruct the timeline builder not to add a player delay, but\n // instead stretch the first keyframe gap until the animation starts. This is\n // important in order to prevent extra initialization styles from being\n // required by the user for the animation.\n const timelines = [];\n instruction.timelines.forEach(tl => {\n tl.stretchStartingKeyframe = true;\n if (!this.disabledNodes.has(tl.element)) {\n timelines.push(tl);\n }\n });\n instruction.timelines = timelines;\n subTimelines.append(element, instruction.timelines);\n const tuple = { instruction, player, element };\n queuedInstructions.push(tuple);\n instruction.queriedElements.forEach(element => getOrSetDefaultValue(queriedElements, element, []).push(player));\n instruction.preStyleProps.forEach((stringMap, element) => {\n if (stringMap.size) {\n let setVal = allPreStyleElements.get(element);\n if (!setVal) {\n allPreStyleElements.set(element, setVal = new Set());\n }\n stringMap.forEach((_, prop) => setVal.add(prop));\n }\n });\n instruction.postStyleProps.forEach((stringMap, element) => {\n let setVal = allPostStyleElements.get(element);\n if (!setVal) {\n allPostStyleElements.set(element, setVal = new Set());\n }\n stringMap.forEach((_, prop) => setVal.add(prop));\n });\n });\n }\n if (erroneousTransitions.length) {\n const errors = [];\n erroneousTransitions.forEach(instruction => {\n errors.push(transitionFailed(instruction.triggerName, instruction.errors));\n });\n allPlayers.forEach(player => player.destroy());\n this.reportError(errors);\n }\n const allPreviousPlayersMap = new Map();\n // this map tells us which element in the DOM tree is contained by\n // which animation. Further down this map will get populated once\n // the players are built and in doing so we can use it to efficiently\n // figure out if a sub player is skipped due to a parent player having priority.\n const animationElementMap = new Map();\n queuedInstructions.forEach(entry => {\n const element = entry.element;\n if (subTimelines.has(element)) {\n animationElementMap.set(element, element);\n this._beforeAnimationBuild(entry.player.namespaceId, entry.instruction, allPreviousPlayersMap);\n }\n });\n skippedPlayers.forEach(player => {\n const element = player.element;\n const previousPlayers = this._getPreviousPlayers(element, false, player.namespaceId, player.triggerName, null);\n previousPlayers.forEach(prevPlayer => {\n getOrSetDefaultValue(allPreviousPlayersMap, element, []).push(prevPlayer);\n prevPlayer.destroy();\n });\n });\n // this is a special case for nodes that will be removed either by\n // having their own leave animations or by being queried in a container\n // that will be removed once a parent animation is complete. The idea\n // here is that * styles must be identical to ! styles because of\n // backwards compatibility (* is also filled in by default in many places).\n // Otherwise * styles will return an empty value or \"auto\" since the element\n // passed to getComputedStyle will not be visible (since * === destination)\n const replaceNodes = allLeaveNodes.filter(node => {\n return replacePostStylesAsPre(node, allPreStyleElements, allPostStyleElements);\n });\n // POST STAGE: fill the * styles\n const postStylesMap = new Map();\n const allLeaveQueriedNodes = cloakAndComputeStyles(postStylesMap, this.driver, leaveNodesWithoutAnimations, allPostStyleElements, AUTO_STYLE);\n allLeaveQueriedNodes.forEach(node => {\n if (replacePostStylesAsPre(node, allPreStyleElements, allPostStyleElements)) {\n replaceNodes.push(node);\n }\n });\n // PRE STAGE: fill the ! styles\n const preStylesMap = new Map();\n enterNodeMap.forEach((nodes, root) => {\n cloakAndComputeStyles(preStylesMap, this.driver, new Set(nodes), allPreStyleElements, ɵPRE_STYLE);\n });\n replaceNodes.forEach(node => {\n const post = postStylesMap.get(node);\n const pre = preStylesMap.get(node);\n postStylesMap.set(node, new Map([...Array.from(post?.entries() ?? []), ...Array.from(pre?.entries() ?? [])]));\n });\n const rootPlayers = [];\n const subPlayers = [];\n const NO_PARENT_ANIMATION_ELEMENT_DETECTED = {};\n queuedInstructions.forEach(entry => {\n const { element, player, instruction } = entry;\n // this means that it was never consumed by a parent animation which\n // means that it is independent and therefore should be set for animation\n if (subTimelines.has(element)) {\n if (disabledElementsSet.has(element)) {\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n player.disabled = true;\n player.overrideTotalTime(instruction.totalTime);\n skippedPlayers.push(player);\n return;\n }\n // this will flow up the DOM and query the map to figure out\n // if a parent animation has priority over it. In the situation\n // that a parent is detected then it will cancel the loop. If\n // nothing is detected, or it takes a few hops to find a parent,\n // then it will fill in the missing nodes and signal them as having\n // a detected parent (or a NO_PARENT value via a special constant).\n let parentWithAnimation = NO_PARENT_ANIMATION_ELEMENT_DETECTED;\n if (animationElementMap.size > 1) {\n let elm = element;\n const parentsToAdd = [];\n while (elm = elm.parentNode) {\n const detectedParent = animationElementMap.get(elm);\n if (detectedParent) {\n parentWithAnimation = detectedParent;\n break;\n }\n parentsToAdd.push(elm);\n }\n parentsToAdd.forEach(parent => animationElementMap.set(parent, parentWithAnimation));\n }\n const innerPlayer = this._buildAnimation(player.namespaceId, instruction, allPreviousPlayersMap, skippedPlayersMap, preStylesMap, postStylesMap);\n player.setRealPlayer(innerPlayer);\n if (parentWithAnimation === NO_PARENT_ANIMATION_ELEMENT_DETECTED) {\n rootPlayers.push(player);\n }\n else {\n const parentPlayers = this.playersByElement.get(parentWithAnimation);\n if (parentPlayers && parentPlayers.length) {\n player.parentPlayer = optimizeGroupPlayer(parentPlayers);\n }\n skippedPlayers.push(player);\n }\n }\n else {\n eraseStyles(element, instruction.fromStyles);\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n // there still might be a ancestor player animating this\n // element therefore we will still add it as a sub player\n // even if its animation may be disabled\n subPlayers.push(player);\n if (disabledElementsSet.has(element)) {\n skippedPlayers.push(player);\n }\n }\n });\n // find all of the sub players' corresponding inner animation players\n subPlayers.forEach(player => {\n // even if no players are found for a sub animation it\n // will still complete itself after the next tick since it's Noop\n const playersForElement = skippedPlayersMap.get(player.element);\n if (playersForElement && playersForElement.length) {\n const innerPlayer = optimizeGroupPlayer(playersForElement);\n player.setRealPlayer(innerPlayer);\n }\n });\n // the reason why we don't actually play the animation is\n // because all that a skipped player is designed to do is to\n // fire the start/done transition callback events\n skippedPlayers.forEach(player => {\n if (player.parentPlayer) {\n player.syncPlayerEvents(player.parentPlayer);\n }\n else {\n player.destroy();\n }\n });\n // run through all of the queued removals and see if they\n // were picked up by a query. If not then perform the removal\n // operation right away unless a parent animation is ongoing.\n for (let i = 0; i < allLeaveNodes.length; i++) {\n const element = allLeaveNodes[i];\n const details = element[REMOVAL_FLAG];\n removeClass(element, LEAVE_CLASSNAME);\n // this means the element has a removal animation that is being\n // taken care of and therefore the inner elements will hang around\n // until that animation is over (or the parent queried animation)\n if (details && details.hasAnimation)\n continue;\n let players = [];\n // if this element is queried or if it contains queried children\n // then we want for the element not to be removed from the page\n // until the queried animations have finished\n if (queriedElements.size) {\n let queriedPlayerResults = queriedElements.get(element);\n if (queriedPlayerResults && queriedPlayerResults.length) {\n players.push(...queriedPlayerResults);\n }\n let queriedInnerElements = this.driver.query(element, NG_ANIMATING_SELECTOR, true);\n for (let j = 0; j < queriedInnerElements.length; j++) {\n let queriedPlayers = queriedElements.get(queriedInnerElements[j]);\n if (queriedPlayers && queriedPlayers.length) {\n players.push(...queriedPlayers);\n }\n }\n }\n const activePlayers = players.filter(p => !p.destroyed);\n if (activePlayers.length) {\n removeNodesAfterAnimationDone(this, element, activePlayers);\n }\n else {\n this.processLeaveNode(element);\n }\n }\n // this is required so the cleanup method doesn't remove them\n allLeaveNodes.length = 0;\n rootPlayers.forEach(player => {\n this.players.push(player);\n player.onDone(() => {\n player.destroy();\n const index = this.players.indexOf(player);\n this.players.splice(index, 1);\n });\n player.play();\n });\n return rootPlayers;\n }\n elementContainsData(namespaceId, element) {\n let containsData = false;\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval)\n containsData = true;\n if (this.playersByElement.has(element))\n containsData = true;\n if (this.playersByQueriedElement.has(element))\n containsData = true;\n if (this.statesByElement.has(element))\n containsData = true;\n return this._fetchNamespace(namespaceId).elementContainsData(element) || containsData;\n }\n afterFlush(callback) {\n this._flushFns.push(callback);\n }\n afterFlushAnimationsDone(callback) {\n this._whenQuietFns.push(callback);\n }\n _getPreviousPlayers(element, isQueriedElement, namespaceId, triggerName, toStateValue) {\n let players = [];\n if (isQueriedElement) {\n const queriedElementPlayers = this.playersByQueriedElement.get(element);\n if (queriedElementPlayers) {\n players = queriedElementPlayers;\n }\n }\n else {\n const elementPlayers = this.playersByElement.get(element);\n if (elementPlayers) {\n const isRemovalAnimation = !toStateValue || toStateValue == VOID_VALUE;\n elementPlayers.forEach(player => {\n if (player.queued)\n return;\n if (!isRemovalAnimation && player.triggerName != triggerName)\n return;\n players.push(player);\n });\n }\n }\n if (namespaceId || triggerName) {\n players = players.filter(player => {\n if (namespaceId && namespaceId != player.namespaceId)\n return false;\n if (triggerName && triggerName != player.triggerName)\n return false;\n return true;\n });\n }\n return players;\n }\n _beforeAnimationBuild(namespaceId, instruction, allPreviousPlayersMap) {\n const triggerName = instruction.triggerName;\n const rootElement = instruction.element;\n // when a removal animation occurs, ALL previous players are collected\n // and destroyed (even if they are outside of the current namespace)\n const targetNameSpaceId = instruction.isRemovalTransition ? undefined : namespaceId;\n const targetTriggerName = instruction.isRemovalTransition ? undefined : triggerName;\n for (const timelineInstruction of instruction.timelines) {\n const element = timelineInstruction.element;\n const isQueriedElement = element !== rootElement;\n const players = getOrSetDefaultValue(allPreviousPlayersMap, element, []);\n const previousPlayers = this._getPreviousPlayers(element, isQueriedElement, targetNameSpaceId, targetTriggerName, instruction.toState);\n previousPlayers.forEach(player => {\n const realPlayer = player.getRealPlayer();\n if (realPlayer.beforeDestroy) {\n realPlayer.beforeDestroy();\n }\n player.destroy();\n players.push(player);\n });\n }\n // this needs to be done so that the PRE/POST styles can be\n // computed properly without interfering with the previous animation\n eraseStyles(rootElement, instruction.fromStyles);\n }\n _buildAnimation(namespaceId, instruction, allPreviousPlayersMap, skippedPlayersMap, preStylesMap, postStylesMap) {\n const triggerName = instruction.triggerName;\n const rootElement = instruction.element;\n // we first run this so that the previous animation player\n // data can be passed into the successive animation players\n const allQueriedPlayers = [];\n const allConsumedElements = new Set();\n const allSubElements = new Set();\n const allNewPlayers = instruction.timelines.map(timelineInstruction => {\n const element = timelineInstruction.element;\n allConsumedElements.add(element);\n // FIXME (matsko): make sure to-be-removed animations are removed properly\n const details = element[REMOVAL_FLAG];\n if (details && details.removedBeforeQueried)\n return new NoopAnimationPlayer(timelineInstruction.duration, timelineInstruction.delay);\n const isQueriedElement = element !== rootElement;\n const previousPlayers = flattenGroupPlayers((allPreviousPlayersMap.get(element) || EMPTY_PLAYER_ARRAY)\n .map(p => p.getRealPlayer()))\n .filter(p => {\n // the `element` is not apart of the AnimationPlayer definition, but\n // Mock/WebAnimations\n // use the element within their implementation. This will be added in Angular5 to\n // AnimationPlayer\n const pp = p;\n return pp.element ? pp.element === element : false;\n });\n const preStyles = preStylesMap.get(element);\n const postStyles = postStylesMap.get(element);\n const keyframes = normalizeKeyframes$1(this.driver, this._normalizer, element, timelineInstruction.keyframes, preStyles, postStyles);\n const player = this._buildPlayer(timelineInstruction, keyframes, previousPlayers);\n // this means that this particular player belongs to a sub trigger. It is\n // important that we match this player up with the corresponding (@trigger.listener)\n if (timelineInstruction.subTimeline && skippedPlayersMap) {\n allSubElements.add(element);\n }\n if (isQueriedElement) {\n const wrappedPlayer = new TransitionAnimationPlayer(namespaceId, triggerName, element);\n wrappedPlayer.setRealPlayer(player);\n allQueriedPlayers.push(wrappedPlayer);\n }\n return player;\n });\n allQueriedPlayers.forEach(player => {\n getOrSetDefaultValue(this.playersByQueriedElement, player.element, []).push(player);\n player.onDone(() => deleteOrUnsetInMap(this.playersByQueriedElement, player.element, player));\n });\n allConsumedElements.forEach(element => addClass(element, NG_ANIMATING_CLASSNAME));\n const player = optimizeGroupPlayer(allNewPlayers);\n player.onDestroy(() => {\n allConsumedElements.forEach(element => removeClass(element, NG_ANIMATING_CLASSNAME));\n setStyles(rootElement, instruction.toStyles);\n });\n // this basically makes all of the callbacks for sub element animations\n // be dependent on the upper players for when they finish\n allSubElements.forEach(element => {\n getOrSetDefaultValue(skippedPlayersMap, element, []).push(player);\n });\n return player;\n }\n _buildPlayer(instruction, keyframes, previousPlayers) {\n if (keyframes.length > 0) {\n return this.driver.animate(instruction.element, keyframes, instruction.duration, instruction.delay, instruction.easing, previousPlayers);\n }\n // special case for when an empty transition|definition is provided\n // ... there is no point in rendering an empty animation\n return new NoopAnimationPlayer(instruction.duration, instruction.delay);\n }\n}\nclass TransitionAnimationPlayer {\n constructor(namespaceId, triggerName, element) {\n this.namespaceId = namespaceId;\n this.triggerName = triggerName;\n this.element = element;\n this._player = new NoopAnimationPlayer();\n this._containsRealPlayer = false;\n this._queuedCallbacks = new Map();\n this.destroyed = false;\n this.markedForDestroy = false;\n this.disabled = false;\n this.queued = true;\n this.totalTime = 0;\n }\n setRealPlayer(player) {\n if (this._containsRealPlayer)\n return;\n this._player = player;\n this._queuedCallbacks.forEach((callbacks, phase) => {\n callbacks.forEach(callback => listenOnPlayer(player, phase, undefined, callback));\n });\n this._queuedCallbacks.clear();\n this._containsRealPlayer = true;\n this.overrideTotalTime(player.totalTime);\n this.queued = false;\n }\n getRealPlayer() {\n return this._player;\n }\n overrideTotalTime(totalTime) {\n this.totalTime = totalTime;\n }\n syncPlayerEvents(player) {\n const p = this._player;\n if (p.triggerCallback) {\n player.onStart(() => p.triggerCallback('start'));\n }\n player.onDone(() => this.finish());\n player.onDestroy(() => this.destroy());\n }\n _queueEvent(name, callback) {\n getOrSetDefaultValue(this._queuedCallbacks, name, []).push(callback);\n }\n onDone(fn) {\n if (this.queued) {\n this._queueEvent('done', fn);\n }\n this._player.onDone(fn);\n }\n onStart(fn) {\n if (this.queued) {\n this._queueEvent('start', fn);\n }\n this._player.onStart(fn);\n }\n onDestroy(fn) {\n if (this.queued) {\n this._queueEvent('destroy', fn);\n }\n this._player.onDestroy(fn);\n }\n init() {\n this._player.init();\n }\n hasStarted() {\n return this.queued ? false : this._player.hasStarted();\n }\n play() {\n !this.queued && this._player.play();\n }\n pause() {\n !this.queued && this._player.pause();\n }\n restart() {\n !this.queued && this._player.restart();\n }\n finish() {\n this._player.finish();\n }\n destroy() {\n this.destroyed = true;\n this._player.destroy();\n }\n reset() {\n !this.queued && this._player.reset();\n }\n setPosition(p) {\n if (!this.queued) {\n this._player.setPosition(p);\n }\n }\n getPosition() {\n return this.queued ? 0 : this._player.getPosition();\n }\n /** @internal */\n triggerCallback(phaseName) {\n const p = this._player;\n if (p.triggerCallback) {\n p.triggerCallback(phaseName);\n }\n }\n}\nfunction deleteOrUnsetInMap(map, key, value) {\n let currentValues = map.get(key);\n if (currentValues) {\n if (currentValues.length) {\n const index = currentValues.indexOf(value);\n currentValues.splice(index, 1);\n }\n if (currentValues.length == 0) {\n map.delete(key);\n }\n }\n return currentValues;\n}\nfunction normalizeTriggerValue(value) {\n // we use `!= null` here because it's the most simple\n // way to test against a \"falsy\" value without mixing\n // in empty strings or a zero value. DO NOT OPTIMIZE.\n return value != null ? value : null;\n}\nfunction isElementNode(node) {\n return node && node['nodeType'] === 1;\n}\nfunction isTriggerEventValid(eventName) {\n return eventName == 'start' || eventName == 'done';\n}\nfunction cloakElement(element, value) {\n const oldValue = element.style.display;\n element.style.display = value != null ? value : 'none';\n return oldValue;\n}\nfunction cloakAndComputeStyles(valuesMap, driver, elements, elementPropsMap, defaultStyle) {\n const cloakVals = [];\n elements.forEach(element => cloakVals.push(cloakElement(element)));\n const failedElements = [];\n elementPropsMap.forEach((props, element) => {\n const styles = new Map();\n props.forEach(prop => {\n const value = driver.computeStyle(element, prop, defaultStyle);\n styles.set(prop, value);\n // there is no easy way to detect this because a sub element could be removed\n // by a parent animation element being detached.\n if (!value || value.length == 0) {\n element[REMOVAL_FLAG] = NULL_REMOVED_QUERIED_STATE;\n failedElements.push(element);\n }\n });\n valuesMap.set(element, styles);\n });\n // we use a index variable here since Set.forEach(a, i) does not return\n // an index value for the closure (but instead just the value)\n let i = 0;\n elements.forEach(element => cloakElement(element, cloakVals[i++]));\n return failedElements;\n}\n/*\nSince the Angular renderer code will return a collection of inserted\nnodes in all areas of a DOM tree, it's up to this algorithm to figure\nout which nodes are roots for each animation @trigger.\n\nBy placing each inserted node into a Set and traversing upwards, it\nis possible to find the @trigger elements and well any direct *star\ninsertion nodes, if a @trigger root is found then the enter element\nis placed into the Map[@trigger] spot.\n */\nfunction buildRootMap(roots, nodes) {\n const rootMap = new Map();\n roots.forEach(root => rootMap.set(root, []));\n if (nodes.length == 0)\n return rootMap;\n const NULL_NODE = 1;\n const nodeSet = new Set(nodes);\n const localRootMap = new Map();\n function getRoot(node) {\n if (!node)\n return NULL_NODE;\n let root = localRootMap.get(node);\n if (root)\n return root;\n const parent = node.parentNode;\n if (rootMap.has(parent)) { // ngIf inside @trigger\n root = parent;\n }\n else if (nodeSet.has(parent)) { // ngIf inside ngIf\n root = NULL_NODE;\n }\n else { // recurse upwards\n root = getRoot(parent);\n }\n localRootMap.set(node, root);\n return root;\n }\n nodes.forEach(node => {\n const root = getRoot(node);\n if (root !== NULL_NODE) {\n rootMap.get(root).push(node);\n }\n });\n return rootMap;\n}\nfunction addClass(element, className) {\n element.classList?.add(className);\n}\nfunction removeClass(element, className) {\n element.classList?.remove(className);\n}\nfunction removeNodesAfterAnimationDone(engine, element, players) {\n optimizeGroupPlayer(players).onDone(() => engine.processLeaveNode(element));\n}\nfunction flattenGroupPlayers(players) {\n const finalPlayers = [];\n _flattenGroupPlayersRecur(players, finalPlayers);\n return finalPlayers;\n}\nfunction _flattenGroupPlayersRecur(players, finalPlayers) {\n for (let i = 0; i < players.length; i++) {\n const player = players[i];\n if (player instanceof ɵAnimationGroupPlayer) {\n _flattenGroupPlayersRecur(player.players, finalPlayers);\n }\n else {\n finalPlayers.push(player);\n }\n }\n}\nfunction objEquals(a, b) {\n const k1 = Object.keys(a);\n const k2 = Object.keys(b);\n if (k1.length != k2.length)\n return false;\n for (let i = 0; i < k1.length; i++) {\n const prop = k1[i];\n if (!b.hasOwnProperty(prop) || a[prop] !== b[prop])\n return false;\n }\n return true;\n}\nfunction replacePostStylesAsPre(element, allPreStyleElements, allPostStyleElements) {\n const postEntry = allPostStyleElements.get(element);\n if (!postEntry)\n return false;\n let preEntry = allPreStyleElements.get(element);\n if (preEntry) {\n postEntry.forEach(data => preEntry.add(data));\n }\n else {\n allPreStyleElements.set(element, postEntry);\n }\n allPostStyleElements.delete(element);\n return true;\n}\n\nclass AnimationEngine {\n constructor(bodyNode, _driver, _normalizer) {\n this.bodyNode = bodyNode;\n this._driver = _driver;\n this._normalizer = _normalizer;\n this._triggerCache = {};\n // this method is designed to be overridden by the code that uses this engine\n this.onRemovalComplete = (element, context) => { };\n this._transitionEngine = new TransitionAnimationEngine(bodyNode, _driver, _normalizer);\n this._timelineEngine = new TimelineAnimationEngine(bodyNode, _driver, _normalizer);\n this._transitionEngine.onRemovalComplete = (element, context) => this.onRemovalComplete(element, context);\n }\n registerTrigger(componentId, namespaceId, hostElement, name, metadata) {\n const cacheKey = componentId + '-' + name;\n let trigger = this._triggerCache[cacheKey];\n if (!trigger) {\n const errors = [];\n const warnings = [];\n const ast = buildAnimationAst(this._driver, metadata, errors, warnings);\n if (errors.length) {\n throw triggerBuildFailed(name, errors);\n }\n if (warnings.length) {\n warnTriggerBuild(name, warnings);\n }\n trigger = buildTrigger(name, ast, this._normalizer);\n this._triggerCache[cacheKey] = trigger;\n }\n this._transitionEngine.registerTrigger(namespaceId, name, trigger);\n }\n register(namespaceId, hostElement) {\n this._transitionEngine.register(namespaceId, hostElement);\n }\n destroy(namespaceId, context) {\n this._transitionEngine.destroy(namespaceId, context);\n }\n onInsert(namespaceId, element, parent, insertBefore) {\n this._transitionEngine.insertNode(namespaceId, element, parent, insertBefore);\n }\n onRemove(namespaceId, element, context, isHostElement) {\n this._transitionEngine.removeNode(namespaceId, element, isHostElement || false, context);\n }\n disableAnimations(element, disable) {\n this._transitionEngine.markElementAsDisabled(element, disable);\n }\n process(namespaceId, element, property, value) {\n if (property.charAt(0) == '@') {\n const [id, action] = parseTimelineCommand(property);\n const args = value;\n this._timelineEngine.command(id, element, action, args);\n }\n else {\n this._transitionEngine.trigger(namespaceId, element, property, value);\n }\n }\n listen(namespaceId, element, eventName, eventPhase, callback) {\n // @@listen\n if (eventName.charAt(0) == '@') {\n const [id, action] = parseTimelineCommand(eventName);\n return this._timelineEngine.listen(id, element, action, callback);\n }\n return this._transitionEngine.listen(namespaceId, element, eventName, eventPhase, callback);\n }\n flush(microtaskId = -1) {\n this._transitionEngine.flush(microtaskId);\n }\n get players() {\n return this._transitionEngine.players\n .concat(this._timelineEngine.players);\n }\n whenRenderingDone() {\n return this._transitionEngine.whenRenderingDone();\n }\n}\n\n/**\n * Returns an instance of `SpecialCasedStyles` if and when any special (non animateable) styles are\n * detected.\n *\n * In CSS there exist properties that cannot be animated within a keyframe animation\n * (whether it be via CSS keyframes or web-animations) and the animation implementation\n * will ignore them. This function is designed to detect those special cased styles and\n * return a container that will be executed at the start and end of the animation.\n *\n * @returns an instance of `SpecialCasedStyles` if any special styles are detected otherwise `null`\n */\nfunction packageNonAnimatableStyles(element, styles) {\n let startStyles = null;\n let endStyles = null;\n if (Array.isArray(styles) && styles.length) {\n startStyles = filterNonAnimatableStyles(styles[0]);\n if (styles.length > 1) {\n endStyles = filterNonAnimatableStyles(styles[styles.length - 1]);\n }\n }\n else if (styles instanceof Map) {\n startStyles = filterNonAnimatableStyles(styles);\n }\n return (startStyles || endStyles) ? new SpecialCasedStyles(element, startStyles, endStyles) :\n null;\n}\n/**\n * Designed to be executed during a keyframe-based animation to apply any special-cased styles.\n *\n * When started (when the `start()` method is run) then the provided `startStyles`\n * will be applied. When finished (when the `finish()` method is called) the\n * `endStyles` will be applied as well any any starting styles. Finally when\n * `destroy()` is called then all styles will be removed.\n */\nclass SpecialCasedStyles {\n constructor(_element, _startStyles, _endStyles) {\n this._element = _element;\n this._startStyles = _startStyles;\n this._endStyles = _endStyles;\n this._state = 0 /* SpecialCasedStylesState.Pending */;\n let initialStyles = SpecialCasedStyles.initialStylesByElement.get(_element);\n if (!initialStyles) {\n SpecialCasedStyles.initialStylesByElement.set(_element, initialStyles = new Map());\n }\n this._initialStyles = initialStyles;\n }\n start() {\n if (this._state < 1 /* SpecialCasedStylesState.Started */) {\n if (this._startStyles) {\n setStyles(this._element, this._startStyles, this._initialStyles);\n }\n this._state = 1 /* SpecialCasedStylesState.Started */;\n }\n }\n finish() {\n this.start();\n if (this._state < 2 /* SpecialCasedStylesState.Finished */) {\n setStyles(this._element, this._initialStyles);\n if (this._endStyles) {\n setStyles(this._element, this._endStyles);\n this._endStyles = null;\n }\n this._state = 1 /* SpecialCasedStylesState.Started */;\n }\n }\n destroy() {\n this.finish();\n if (this._state < 3 /* SpecialCasedStylesState.Destroyed */) {\n SpecialCasedStyles.initialStylesByElement.delete(this._element);\n if (this._startStyles) {\n eraseStyles(this._element, this._startStyles);\n this._endStyles = null;\n }\n if (this._endStyles) {\n eraseStyles(this._element, this._endStyles);\n this._endStyles = null;\n }\n setStyles(this._element, this._initialStyles);\n this._state = 3 /* SpecialCasedStylesState.Destroyed */;\n }\n }\n}\nSpecialCasedStyles.initialStylesByElement = ( /* @__PURE__ */new WeakMap());\nfunction filterNonAnimatableStyles(styles) {\n let result = null;\n styles.forEach((val, prop) => {\n if (isNonAnimatableStyle(prop)) {\n result = result || new Map();\n result.set(prop, val);\n }\n });\n return result;\n}\nfunction isNonAnimatableStyle(prop) {\n return prop === 'display' || prop === 'position';\n}\n\nclass WebAnimationsPlayer {\n constructor(element, keyframes, options, _specialStyles) {\n this.element = element;\n this.keyframes = keyframes;\n this.options = options;\n this._specialStyles = _specialStyles;\n this._onDoneFns = [];\n this._onStartFns = [];\n this._onDestroyFns = [];\n this._initialized = false;\n this._finished = false;\n this._started = false;\n this._destroyed = false;\n // the following original fns are persistent copies of the _onStartFns and _onDoneFns\n // and are used to reset the fns to their original values upon reset()\n // (since the _onStartFns and _onDoneFns get deleted after they are called)\n this._originalOnDoneFns = [];\n this._originalOnStartFns = [];\n this.time = 0;\n this.parentPlayer = null;\n this.currentSnapshot = new Map();\n this._duration = options['duration'];\n this._delay = options['delay'] || 0;\n this.time = this._duration + this._delay;\n }\n _onFinish() {\n if (!this._finished) {\n this._finished = true;\n this._onDoneFns.forEach(fn => fn());\n this._onDoneFns = [];\n }\n }\n init() {\n this._buildPlayer();\n this._preparePlayerBeforeStart();\n }\n _buildPlayer() {\n if (this._initialized)\n return;\n this._initialized = true;\n const keyframes = this.keyframes;\n this.domPlayer =\n this._triggerWebAnimation(this.element, keyframes, this.options);\n this._finalKeyframe = keyframes.length ? keyframes[keyframes.length - 1] : new Map();\n this.domPlayer.addEventListener('finish', () => this._onFinish());\n }\n _preparePlayerBeforeStart() {\n // this is required so that the player doesn't start to animate right away\n if (this._delay) {\n this._resetDomPlayerState();\n }\n else {\n this.domPlayer.pause();\n }\n }\n _convertKeyframesToObject(keyframes) {\n const kfs = [];\n keyframes.forEach(frame => {\n kfs.push(Object.fromEntries(frame));\n });\n return kfs;\n }\n /** @internal */\n _triggerWebAnimation(element, keyframes, options) {\n // jscompiler doesn't seem to know animate is a native property because it's not fully\n // supported yet across common browsers (we polyfill it for Edge/Safari) [CL #143630929]\n return element['animate'](this._convertKeyframesToObject(keyframes), options);\n }\n onStart(fn) {\n this._originalOnStartFns.push(fn);\n this._onStartFns.push(fn);\n }\n onDone(fn) {\n this._originalOnDoneFns.push(fn);\n this._onDoneFns.push(fn);\n }\n onDestroy(fn) {\n this._onDestroyFns.push(fn);\n }\n play() {\n this._buildPlayer();\n if (!this.hasStarted()) {\n this._onStartFns.forEach(fn => fn());\n this._onStartFns = [];\n this._started = true;\n if (this._specialStyles) {\n this._specialStyles.start();\n }\n }\n this.domPlayer.play();\n }\n pause() {\n this.init();\n this.domPlayer.pause();\n }\n finish() {\n this.init();\n if (this._specialStyles) {\n this._specialStyles.finish();\n }\n this._onFinish();\n this.domPlayer.finish();\n }\n reset() {\n this._resetDomPlayerState();\n this._destroyed = false;\n this._finished = false;\n this._started = false;\n this._onStartFns = this._originalOnStartFns;\n this._onDoneFns = this._originalOnDoneFns;\n }\n _resetDomPlayerState() {\n if (this.domPlayer) {\n this.domPlayer.cancel();\n }\n }\n restart() {\n this.reset();\n this.play();\n }\n hasStarted() {\n return this._started;\n }\n destroy() {\n if (!this._destroyed) {\n this._destroyed = true;\n this._resetDomPlayerState();\n this._onFinish();\n if (this._specialStyles) {\n this._specialStyles.destroy();\n }\n this._onDestroyFns.forEach(fn => fn());\n this._onDestroyFns = [];\n }\n }\n setPosition(p) {\n if (this.domPlayer === undefined) {\n this.init();\n }\n this.domPlayer.currentTime = p * this.time;\n }\n getPosition() {\n return this.domPlayer.currentTime / this.time;\n }\n get totalTime() {\n return this._delay + this._duration;\n }\n beforeDestroy() {\n const styles = new Map();\n if (this.hasStarted()) {\n // note: this code is invoked only when the `play` function was called prior to this\n // (thus `hasStarted` returns true), this implies that the code that initializes\n // `_finalKeyframe` has also been executed and the non-null assertion can be safely used here\n const finalKeyframe = this._finalKeyframe;\n finalKeyframe.forEach((val, prop) => {\n if (prop !== 'offset') {\n styles.set(prop, this._finished ? val : computeStyle(this.element, prop));\n }\n });\n }\n this.currentSnapshot = styles;\n }\n /** @internal */\n triggerCallback(phaseName) {\n const methods = phaseName === 'start' ? this._onStartFns : this._onDoneFns;\n methods.forEach(fn => fn());\n methods.length = 0;\n }\n}\n\nclass WebAnimationsDriver {\n validateStyleProperty(prop) {\n // Perform actual validation in dev mode only, in prod mode this check is a noop.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n return validateStyleProperty(prop);\n }\n return true;\n }\n validateAnimatableStyleProperty(prop) {\n // Perform actual validation in dev mode only, in prod mode this check is a noop.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n const cssProp = camelCaseToDashCase(prop);\n return validateWebAnimatableStyleProperty(cssProp);\n }\n return true;\n }\n matchesElement(_element, _selector) {\n // This method is deprecated and no longer in use so we return false.\n return false;\n }\n containsElement(elm1, elm2) {\n return containsElement(elm1, elm2);\n }\n getParentElement(element) {\n return getParentElement(element);\n }\n query(element, selector, multi) {\n return invokeQuery(element, selector, multi);\n }\n computeStyle(element, prop, defaultValue) {\n return window.getComputedStyle(element)[prop];\n }\n animate(element, keyframes, duration, delay, easing, previousPlayers = []) {\n const fill = delay == 0 ? 'both' : 'forwards';\n const playerOptions = { duration, delay, fill };\n // we check for this to avoid having a null|undefined value be present\n // for the easing (which results in an error for certain browsers #9752)\n if (easing) {\n playerOptions['easing'] = easing;\n }\n const previousStyles = new Map();\n const previousWebAnimationPlayers = previousPlayers.filter(player => player instanceof WebAnimationsPlayer);\n if (allowPreviousPlayerStylesMerge(duration, delay)) {\n previousWebAnimationPlayers.forEach(player => {\n player.currentSnapshot.forEach((val, prop) => previousStyles.set(prop, val));\n });\n }\n let _keyframes = normalizeKeyframes(keyframes).map(styles => copyStyles(styles));\n _keyframes = balancePreviousStylesIntoKeyframes(element, _keyframes, previousStyles);\n const specialStyles = packageNonAnimatableStyles(element, _keyframes);\n return new WebAnimationsPlayer(element, _keyframes, playerOptions, specialStyles);\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 * @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 * @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 * @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 * Generated bundle index. Do not edit.\n */\n\nexport { AnimationDriver, Animation as ɵAnimation, AnimationEngine as ɵAnimationEngine, AnimationStyleNormalizer as ɵAnimationStyleNormalizer, NoopAnimationDriver as ɵNoopAnimationDriver, NoopAnimationStyleNormalizer as ɵNoopAnimationStyleNormalizer, WebAnimationsDriver as ɵWebAnimationsDriver, WebAnimationsPlayer as ɵWebAnimationsPlayer, WebAnimationsStyleNormalizer as ɵWebAnimationsStyleNormalizer, allowPreviousPlayerStylesMerge as ɵallowPreviousPlayerStylesMerge, containsElement as ɵcontainsElement, getParentElement as ɵgetParentElement, invokeQuery as ɵinvokeQuery, normalizeKeyframes as ɵnormalizeKeyframes, validateStyleProperty as ɵvalidateStyleProperty };\n","/**\n * @license Angular v14.3.0\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport * as i0 from '@angular/core';\nimport { InjectionToken, Injectable, ɵɵinject, Inject, inject, Optional, EventEmitter, ɵfindLocaleData, ɵLocaleDataIndex, ɵgetLocaleCurrencyCode, ɵgetLocalePluralCase, LOCALE_ID, ɵregisterLocaleData, ɵisListLikeIterable, ɵstringify, Directive, Input, createNgModule, NgModuleRef, ɵRuntimeError, Host, Attribute, RendererStyleFlags2, ɵisPromise, ɵisSubscribable, Pipe, DEFAULT_CURRENCY_CODE, NgModule, Version, ɵɵdefineInjectable, ɵformatRuntimeError, Renderer2, ElementRef, Injector, PLATFORM_ID, NgZone } from '@angular/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 */\nlet _DOM = null;\nfunction getDOM() {\n return _DOM;\n}\nfunction setDOM(adapter) {\n _DOM = adapter;\n}\nfunction setRootDomAdapter(adapter) {\n if (!_DOM) {\n _DOM = adapter;\n }\n}\n/* tslint:disable:requireParameterType */\n/**\n * Provides DOM operations in an environment-agnostic way.\n *\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\n * can introduce XSS risks.\n */\nclass DomAdapter {\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 DI Token representing the main rendering context. In a browser this is the DOM Document.\n *\n * Note: Document might not be available in the Application Context when Application and Rendering\n * Contexts are not the same (e.g. when running the application in a Web Worker).\n *\n * @publicApi\n */\nconst DOCUMENT = new InjectionToken('DocumentToken');\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 class should not be used directly by an application developer. Instead, use\n * {@link Location}.\n *\n * `PlatformLocation` encapsulates all calls to DOM APIs, which allows the Router to be\n * platform-agnostic.\n * This means that we can have different implementation of `PlatformLocation` for the different\n * platforms that Angular supports. For example, `@angular/platform-browser` provides an\n * implementation specific to the browser environment, while `@angular/platform-server` provides\n * one suitable for use with server-side rendering.\n *\n * The `PlatformLocation` class is used directly by all implementations of {@link LocationStrategy}\n * when they need to interact with the DOM APIs like pushState, popState, etc.\n *\n * {@link LocationStrategy} in turn is used by the {@link Location} service which is used directly\n * by the {@link Router} in order to navigate between routes. Since all interactions between {@link\n * Router} /\n * {@link Location} / {@link LocationStrategy} and DOM APIs flow through the `PlatformLocation`\n * class, they are all platform-agnostic.\n *\n * @publicApi\n */\nclass PlatformLocation {\n historyGo(relativePosition) {\n throw new Error('Not implemented');\n }\n}\nPlatformLocation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: PlatformLocation, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nPlatformLocation.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: PlatformLocation, providedIn: 'platform', useFactory: useBrowserPlatformLocation });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: PlatformLocation, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'platform',\n // See #23917\n useFactory: useBrowserPlatformLocation\n }]\n }] });\nfunction useBrowserPlatformLocation() {\n return ɵɵinject(BrowserPlatformLocation);\n}\n/**\n * @description\n * Indicates when a location is initialized.\n *\n * @publicApi\n */\nconst LOCATION_INITIALIZED = new InjectionToken('Location Initialized');\n/**\n * `PlatformLocation` encapsulates all of the direct calls to platform APIs.\n * This class should not be used directly by an application developer. Instead, use\n * {@link Location}.\n */\nclass BrowserPlatformLocation extends PlatformLocation {\n constructor(_doc) {\n super();\n this._doc = _doc;\n this._init();\n }\n // This is moved to its own method so that `MockPlatformLocationStrategy` can overwrite it\n /** @internal */\n _init() {\n this.location = window.location;\n this._history = window.history;\n }\n getBaseHrefFromDOM() {\n return getDOM().getBaseHref(this._doc);\n }\n onPopState(fn) {\n const window = getDOM().getGlobalEventTarget(this._doc, 'window');\n window.addEventListener('popstate', fn, false);\n return () => window.removeEventListener('popstate', fn);\n }\n onHashChange(fn) {\n const window = getDOM().getGlobalEventTarget(this._doc, 'window');\n window.addEventListener('hashchange', fn, false);\n return () => window.removeEventListener('hashchange', fn);\n }\n get href() {\n return this.location.href;\n }\n get protocol() {\n return this.location.protocol;\n }\n get hostname() {\n return this.location.hostname;\n }\n get port() {\n return this.location.port;\n }\n get pathname() {\n return this.location.pathname;\n }\n get search() {\n return this.location.search;\n }\n get hash() {\n return this.location.hash;\n }\n set pathname(newPath) {\n this.location.pathname = newPath;\n }\n pushState(state, title, url) {\n if (supportsState()) {\n this._history.pushState(state, title, url);\n }\n else {\n this.location.hash = url;\n }\n }\n replaceState(state, title, url) {\n if (supportsState()) {\n this._history.replaceState(state, title, url);\n }\n else {\n this.location.hash = url;\n }\n }\n forward() {\n this._history.forward();\n }\n back() {\n this._history.back();\n }\n historyGo(relativePosition = 0) {\n this._history.go(relativePosition);\n }\n getState() {\n return this._history.state;\n }\n}\nBrowserPlatformLocation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BrowserPlatformLocation, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });\nBrowserPlatformLocation.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BrowserPlatformLocation, providedIn: 'platform', useFactory: createBrowserPlatformLocation });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BrowserPlatformLocation, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'platform',\n // See #23917\n useFactory: createBrowserPlatformLocation,\n }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; } });\nfunction supportsState() {\n return !!window.history.pushState;\n}\nfunction createBrowserPlatformLocation() {\n return new BrowserPlatformLocation(ɵɵinject(DOCUMENT));\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 * @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 * Joins two parts of a URL with a slash if needed.\n *\n * @param start URL string\n * @param end URL string\n *\n *\n * @returns The joined URL string.\n */\nfunction joinWithSlash(start, end) {\n if (start.length == 0) {\n return end;\n }\n if (end.length == 0) {\n return start;\n }\n let slashes = 0;\n if (start.endsWith('/')) {\n slashes++;\n }\n if (end.startsWith('/')) {\n slashes++;\n }\n if (slashes == 2) {\n return start + end.substring(1);\n }\n if (slashes == 1) {\n return start + end;\n }\n return start + '/' + end;\n}\n/**\n * Removes a trailing slash from a URL string if needed.\n * Looks for the first occurrence of either `#`, `?`, or the end of the\n * line as `/` characters and removes the trailing slash if one exists.\n *\n * @param url URL string.\n *\n * @returns The URL string, modified if needed.\n */\nfunction stripTrailingSlash(url) {\n const match = url.match(/#|\\?|$/);\n const pathEndIdx = match && match.index || url.length;\n const droppedSlashIdx = pathEndIdx - (url[pathEndIdx - 1] === '/' ? 1 : 0);\n return url.slice(0, droppedSlashIdx) + url.slice(pathEndIdx);\n}\n/**\n * Normalizes URL parameters by prepending with `?` if needed.\n *\n * @param params String of URL parameters.\n *\n * @returns The normalized URL parameters string.\n */\nfunction normalizeQueryParams(params) {\n return params && params[0] !== '?' ? '?' + params : params;\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 * Enables the `Location` service to read route state from the browser's URL.\n * Angular provides two strategies:\n * `HashLocationStrategy` and `PathLocationStrategy`.\n *\n * Applications should use the `Router` or `Location` services to\n * interact with application route state.\n *\n * For instance, `HashLocationStrategy` produces URLs like\n * http://example.com#/foo,\n * and `PathLocationStrategy` produces\n * http://example.com/foo as an equivalent URL.\n *\n * See these two classes for more.\n *\n * @publicApi\n */\nclass LocationStrategy {\n historyGo(relativePosition) {\n throw new Error('Not implemented');\n }\n}\nLocationStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: LocationStrategy, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nLocationStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: LocationStrategy, providedIn: 'root', useFactory: () => inject(PathLocationStrategy) });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: LocationStrategy, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root', useFactory: () => inject(PathLocationStrategy) }]\n }] });\n/**\n * A predefined [DI token](guide/glossary#di-token) for the base href\n * to be used with the `PathLocationStrategy`.\n * The base href is the URL prefix that should be preserved when generating\n * and recognizing URLs.\n *\n * @usageNotes\n *\n * The following example shows how to use this token to configure the root app injector\n * with a base href value, so that the DI framework can supply the dependency anywhere in the app.\n *\n * ```typescript\n * import {Component, NgModule} from '@angular/core';\n * import {APP_BASE_HREF} from '@angular/common';\n *\n * @NgModule({\n * providers: [{provide: APP_BASE_HREF, useValue: '/my/app'}]\n * })\n * class AppModule {}\n * ```\n *\n * @publicApi\n */\nconst APP_BASE_HREF = new InjectionToken('appBaseHref');\n/**\n * @description\n * A {@link LocationStrategy} used to configure the {@link Location} service to\n * represent its state in the\n * [path](https://en.wikipedia.org/wiki/Uniform_Resource_Locator#Syntax) of the\n * browser's URL.\n *\n * If you're using `PathLocationStrategy`, you may provide a {@link APP_BASE_HREF}\n * or add a `` element to the document to override the default.\n *\n * For instance, if you provide an `APP_BASE_HREF` of `'/my/app/'` and call\n * `location.go('/foo')`, the browser's URL will become\n * `example.com/my/app/foo`. To ensure all relative URIs resolve correctly,\n * the `` and/or `APP_BASE_HREF` should end with a `/`.\n *\n * Similarly, if you add `` to the document and call\n * `location.go('/foo')`, the browser's URL will become\n * `example.com/my/app/foo`.\n *\n * Note that when using `PathLocationStrategy`, neither the query nor\n * the fragment in the `` will be preserved, as outlined\n * by the [RFC](https://tools.ietf.org/html/rfc3986#section-5.2.2).\n *\n * @usageNotes\n *\n * ### Example\n *\n * {@example common/location/ts/path_location_component.ts region='LocationComponent'}\n *\n * @publicApi\n */\nclass PathLocationStrategy extends LocationStrategy {\n constructor(_platformLocation, href) {\n super();\n this._platformLocation = _platformLocation;\n this._removeListenerFns = [];\n this._baseHref = href ?? this._platformLocation.getBaseHrefFromDOM() ??\n inject(DOCUMENT).location?.origin ?? '';\n }\n /** @nodoc */\n ngOnDestroy() {\n while (this._removeListenerFns.length) {\n this._removeListenerFns.pop()();\n }\n }\n onPopState(fn) {\n this._removeListenerFns.push(this._platformLocation.onPopState(fn), this._platformLocation.onHashChange(fn));\n }\n getBaseHref() {\n return this._baseHref;\n }\n prepareExternalUrl(internal) {\n return joinWithSlash(this._baseHref, internal);\n }\n path(includeHash = false) {\n const pathname = this._platformLocation.pathname + normalizeQueryParams(this._platformLocation.search);\n const hash = this._platformLocation.hash;\n return hash && includeHash ? `${pathname}${hash}` : pathname;\n }\n pushState(state, title, url, queryParams) {\n const externalUrl = this.prepareExternalUrl(url + normalizeQueryParams(queryParams));\n this._platformLocation.pushState(state, title, externalUrl);\n }\n replaceState(state, title, url, queryParams) {\n const externalUrl = this.prepareExternalUrl(url + normalizeQueryParams(queryParams));\n this._platformLocation.replaceState(state, title, externalUrl);\n }\n forward() {\n this._platformLocation.forward();\n }\n back() {\n this._platformLocation.back();\n }\n getState() {\n return this._platformLocation.getState();\n }\n historyGo(relativePosition = 0) {\n this._platformLocation.historyGo?.(relativePosition);\n }\n}\nPathLocationStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: PathLocationStrategy, deps: [{ token: PlatformLocation }, { token: APP_BASE_HREF, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\nPathLocationStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: PathLocationStrategy, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: PathLocationStrategy, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: PlatformLocation }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [APP_BASE_HREF]\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 * @description\n * A {@link LocationStrategy} used to configure the {@link Location} service to\n * represent its state in the\n * [hash fragment](https://en.wikipedia.org/wiki/Uniform_Resource_Locator#Syntax)\n * of the browser's URL.\n *\n * For instance, if you call `location.go('/foo')`, the browser's URL will become\n * `example.com#/foo`.\n *\n * @usageNotes\n *\n * ### Example\n *\n * {@example common/location/ts/hash_location_component.ts region='LocationComponent'}\n *\n * @publicApi\n */\nclass HashLocationStrategy extends LocationStrategy {\n constructor(_platformLocation, _baseHref) {\n super();\n this._platformLocation = _platformLocation;\n this._baseHref = '';\n this._removeListenerFns = [];\n if (_baseHref != null) {\n this._baseHref = _baseHref;\n }\n }\n /** @nodoc */\n ngOnDestroy() {\n while (this._removeListenerFns.length) {\n this._removeListenerFns.pop()();\n }\n }\n onPopState(fn) {\n this._removeListenerFns.push(this._platformLocation.onPopState(fn), this._platformLocation.onHashChange(fn));\n }\n getBaseHref() {\n return this._baseHref;\n }\n path(includeHash = false) {\n // the hash value is always prefixed with a `#`\n // and if it is empty then it will stay empty\n let path = this._platformLocation.hash;\n if (path == null)\n path = '#';\n return path.length > 0 ? path.substring(1) : path;\n }\n prepareExternalUrl(internal) {\n const url = joinWithSlash(this._baseHref, internal);\n return url.length > 0 ? ('#' + url) : url;\n }\n pushState(state, title, path, queryParams) {\n let url = this.prepareExternalUrl(path + normalizeQueryParams(queryParams));\n if (url.length == 0) {\n url = this._platformLocation.pathname;\n }\n this._platformLocation.pushState(state, title, url);\n }\n replaceState(state, title, path, queryParams) {\n let url = this.prepareExternalUrl(path + normalizeQueryParams(queryParams));\n if (url.length == 0) {\n url = this._platformLocation.pathname;\n }\n this._platformLocation.replaceState(state, title, url);\n }\n forward() {\n this._platformLocation.forward();\n }\n back() {\n this._platformLocation.back();\n }\n getState() {\n return this._platformLocation.getState();\n }\n historyGo(relativePosition = 0) {\n this._platformLocation.historyGo?.(relativePosition);\n }\n}\nHashLocationStrategy.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: HashLocationStrategy, deps: [{ token: PlatformLocation }, { token: APP_BASE_HREF, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\nHashLocationStrategy.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: HashLocationStrategy });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: HashLocationStrategy, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: PlatformLocation }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [APP_BASE_HREF]\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 * @description\n *\n * A service that applications can use to interact with a browser's URL.\n *\n * Depending on the `LocationStrategy` used, `Location` persists\n * to the URL's path or the URL's hash segment.\n *\n * @usageNotes\n *\n * It's better to use the `Router.navigate()` service to trigger route changes. Use\n * `Location` only if you need to interact with or create normalized URLs outside of\n * routing.\n *\n * `Location` is responsible for normalizing the URL against the application's base href.\n * A normalized URL is absolute from the URL host, includes the application's base href, and has no\n * trailing slash:\n * - `/my/app/user/123` is normalized\n * - `my/app/user/123` **is not** normalized\n * - `/my/app/user/123/` **is not** normalized\n *\n * ### Example\n *\n * \n *\n * @publicApi\n */\nclass Location {\n constructor(locationStrategy) {\n /** @internal */\n this._subject = new EventEmitter();\n /** @internal */\n this._urlChangeListeners = [];\n /** @internal */\n this._urlChangeSubscription = null;\n this._locationStrategy = locationStrategy;\n const browserBaseHref = this._locationStrategy.getBaseHref();\n this._baseHref = stripTrailingSlash(_stripIndexHtml(browserBaseHref));\n this._locationStrategy.onPopState((ev) => {\n this._subject.emit({\n 'url': this.path(true),\n 'pop': true,\n 'state': ev.state,\n 'type': ev.type,\n });\n });\n }\n /** @nodoc */\n ngOnDestroy() {\n this._urlChangeSubscription?.unsubscribe();\n this._urlChangeListeners = [];\n }\n /**\n * Normalizes the URL path for this location.\n *\n * @param includeHash True to include an anchor fragment in the path.\n *\n * @returns The normalized URL path.\n */\n // TODO: vsavkin. Remove the boolean flag and always include hash once the deprecated router is\n // removed.\n path(includeHash = false) {\n return this.normalize(this._locationStrategy.path(includeHash));\n }\n /**\n * Reports the current state of the location history.\n * @returns The current value of the `history.state` object.\n */\n getState() {\n return this._locationStrategy.getState();\n }\n /**\n * Normalizes the given path and compares to the current normalized path.\n *\n * @param path The given URL path.\n * @param query Query parameters.\n *\n * @returns True if the given URL path is equal to the current normalized path, false\n * otherwise.\n */\n isCurrentPathEqualTo(path, query = '') {\n return this.path() == this.normalize(path + normalizeQueryParams(query));\n }\n /**\n * Normalizes a URL path by stripping any trailing slashes.\n *\n * @param url String representing a URL.\n *\n * @returns The normalized URL string.\n */\n normalize(url) {\n return Location.stripTrailingSlash(_stripBaseHref(this._baseHref, _stripIndexHtml(url)));\n }\n /**\n * Normalizes an external URL path.\n * If the given URL doesn't begin with a leading slash (`'/'`), adds one\n * before normalizing. Adds a hash if `HashLocationStrategy` is\n * in use, or the `APP_BASE_HREF` if the `PathLocationStrategy` is in use.\n *\n * @param url String representing a URL.\n *\n * @returns A normalized platform-specific URL.\n */\n prepareExternalUrl(url) {\n if (url && url[0] !== '/') {\n url = '/' + url;\n }\n return this._locationStrategy.prepareExternalUrl(url);\n }\n // TODO: rename this method to pushState\n /**\n * Changes the browser's URL to a normalized version of a given URL, and pushes a\n * new item onto the platform's history.\n *\n * @param path URL path to normalize.\n * @param query Query parameters.\n * @param state Location history state.\n *\n */\n go(path, query = '', state = null) {\n this._locationStrategy.pushState(state, '', path, query);\n this._notifyUrlChangeListeners(this.prepareExternalUrl(path + normalizeQueryParams(query)), state);\n }\n /**\n * Changes the browser's URL to a normalized version of the given URL, and replaces\n * the top item on the platform's history stack.\n *\n * @param path URL path to normalize.\n * @param query Query parameters.\n * @param state Location history state.\n */\n replaceState(path, query = '', state = null) {\n this._locationStrategy.replaceState(state, '', path, query);\n this._notifyUrlChangeListeners(this.prepareExternalUrl(path + normalizeQueryParams(query)), state);\n }\n /**\n * Navigates forward in the platform's history.\n */\n forward() {\n this._locationStrategy.forward();\n }\n /**\n * Navigates back in the platform's history.\n */\n back() {\n this._locationStrategy.back();\n }\n /**\n * Navigate to a specific page from session history, identified by its relative position to the\n * current page.\n *\n * @param relativePosition Position of the target page in the history relative to the current\n * page.\n * A negative value moves backwards, a positive value moves forwards, e.g. `location.historyGo(2)`\n * moves forward two pages and `location.historyGo(-2)` moves back two pages. When we try to go\n * beyond what's stored in the history session, we stay in the current page. Same behaviour occurs\n * when `relativePosition` equals 0.\n * @see https://developer.mozilla.org/en-US/docs/Web/API/History_API#Moving_to_a_specific_point_in_history\n */\n historyGo(relativePosition = 0) {\n this._locationStrategy.historyGo?.(relativePosition);\n }\n /**\n * Registers a URL change listener. Use to catch updates performed by the Angular\n * framework that are not detectible through \"popstate\" or \"hashchange\" events.\n *\n * @param fn The change handler function, which take a URL and a location history state.\n * @returns A function that, when executed, unregisters a URL change listener.\n */\n onUrlChange(fn) {\n this._urlChangeListeners.push(fn);\n if (!this._urlChangeSubscription) {\n this._urlChangeSubscription = this.subscribe(v => {\n this._notifyUrlChangeListeners(v.url, v.state);\n });\n }\n return () => {\n const fnIndex = this._urlChangeListeners.indexOf(fn);\n this._urlChangeListeners.splice(fnIndex, 1);\n if (this._urlChangeListeners.length === 0) {\n this._urlChangeSubscription?.unsubscribe();\n this._urlChangeSubscription = null;\n }\n };\n }\n /** @internal */\n _notifyUrlChangeListeners(url = '', state) {\n this._urlChangeListeners.forEach(fn => fn(url, state));\n }\n /**\n * Subscribes to the platform's `popState` events.\n *\n * Note: `Location.go()` does not trigger the `popState` event in the browser. Use\n * `Location.onUrlChange()` to subscribe to URL changes instead.\n *\n * @param value Event that is triggered when the state history changes.\n * @param exception The exception to throw.\n *\n * @see [onpopstate](https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onpopstate)\n *\n * @returns Subscribed events.\n */\n subscribe(onNext, onThrow, onReturn) {\n return this._subject.subscribe({ next: onNext, error: onThrow, complete: onReturn });\n }\n}\n/**\n * Normalizes URL parameters by prepending with `?` if needed.\n *\n * @param params String of URL parameters.\n *\n * @returns The normalized URL parameters string.\n */\nLocation.normalizeQueryParams = normalizeQueryParams;\n/**\n * Joins two parts of a URL with a slash if needed.\n *\n * @param start URL string\n * @param end URL string\n *\n *\n * @returns The joined URL string.\n */\nLocation.joinWithSlash = joinWithSlash;\n/**\n * Removes a trailing slash from a URL string if needed.\n * Looks for the first occurrence of either `#`, `?`, or the end of the\n * line as `/` characters and removes the trailing slash if one exists.\n *\n * @param url URL string.\n *\n * @returns The URL string, modified if needed.\n */\nLocation.stripTrailingSlash = stripTrailingSlash;\nLocation.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: Location, deps: [{ token: LocationStrategy }], target: i0.ɵɵFactoryTarget.Injectable });\nLocation.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: Location, providedIn: 'root', useFactory: createLocation });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: Location, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n // See #23917\n useFactory: createLocation,\n }]\n }], ctorParameters: function () { return [{ type: LocationStrategy }]; } });\nfunction createLocation() {\n return new Location(ɵɵinject(LocationStrategy));\n}\nfunction _stripBaseHref(baseHref, url) {\n return baseHref && url.startsWith(baseHref) ? url.substring(baseHref.length) : url;\n}\nfunction _stripIndexHtml(url) {\n return url.replace(/\\/index.html$/, '');\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 * @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/** @internal */\nconst CURRENCIES_EN = { \"ADP\": [undefined, undefined, 0], \"AFN\": [undefined, \"؋\", 0], \"ALL\": [undefined, undefined, 0], \"AMD\": [undefined, \"֏\", 2], \"AOA\": [undefined, \"Kz\"], \"ARS\": [undefined, \"$\"], \"AUD\": [\"A$\", \"$\"], \"AZN\": [undefined, \"₼\"], \"BAM\": [undefined, \"KM\"], \"BBD\": [undefined, \"$\"], \"BDT\": [undefined, \"৳\"], \"BHD\": [undefined, undefined, 3], \"BIF\": [undefined, undefined, 0], \"BMD\": [undefined, \"$\"], \"BND\": [undefined, \"$\"], \"BOB\": [undefined, \"Bs\"], \"BRL\": [\"R$\"], \"BSD\": [undefined, \"$\"], \"BWP\": [undefined, \"P\"], \"BYN\": [undefined, undefined, 2], \"BYR\": [undefined, undefined, 0], \"BZD\": [undefined, \"$\"], \"CAD\": [\"CA$\", \"$\", 2], \"CHF\": [undefined, undefined, 2], \"CLF\": [undefined, undefined, 4], \"CLP\": [undefined, \"$\", 0], \"CNY\": [\"CN¥\", \"¥\"], \"COP\": [undefined, \"$\", 2], \"CRC\": [undefined, \"₡\", 2], \"CUC\": [undefined, \"$\"], \"CUP\": [undefined, \"$\"], \"CZK\": [undefined, \"Kč\", 2], \"DJF\": [undefined, undefined, 0], \"DKK\": [undefined, \"kr\", 2], \"DOP\": [undefined, \"$\"], \"EGP\": [undefined, \"E£\"], \"ESP\": [undefined, \"₧\", 0], \"EUR\": [\"€\"], \"FJD\": [undefined, \"$\"], \"FKP\": [undefined, \"£\"], \"GBP\": [\"£\"], \"GEL\": [undefined, \"₾\"], \"GHS\": [undefined, \"GH₵\"], \"GIP\": [undefined, \"£\"], \"GNF\": [undefined, \"FG\", 0], \"GTQ\": [undefined, \"Q\"], \"GYD\": [undefined, \"$\", 2], \"HKD\": [\"HK$\", \"$\"], \"HNL\": [undefined, \"L\"], \"HRK\": [undefined, \"kn\"], \"HUF\": [undefined, \"Ft\", 2], \"IDR\": [undefined, \"Rp\", 2], \"ILS\": [\"₪\"], \"INR\": [\"₹\"], \"IQD\": [undefined, undefined, 0], \"IRR\": [undefined, undefined, 0], \"ISK\": [undefined, \"kr\", 0], \"ITL\": [undefined, undefined, 0], \"JMD\": [undefined, \"$\"], \"JOD\": [undefined, undefined, 3], \"JPY\": [\"¥\", undefined, 0], \"KHR\": [undefined, \"៛\"], \"KMF\": [undefined, \"CF\", 0], \"KPW\": [undefined, \"₩\", 0], \"KRW\": [\"₩\", undefined, 0], \"KWD\": [undefined, undefined, 3], \"KYD\": [undefined, \"$\"], \"KZT\": [undefined, \"₸\"], \"LAK\": [undefined, \"₭\", 0], \"LBP\": [undefined, \"L£\", 0], \"LKR\": [undefined, \"Rs\"], \"LRD\": [undefined, \"$\"], \"LTL\": [undefined, \"Lt\"], \"LUF\": [undefined, undefined, 0], \"LVL\": [undefined, \"Ls\"], \"LYD\": [undefined, undefined, 3], \"MGA\": [undefined, \"Ar\", 0], \"MGF\": [undefined, undefined, 0], \"MMK\": [undefined, \"K\", 0], \"MNT\": [undefined, \"₮\", 2], \"MRO\": [undefined, undefined, 0], \"MUR\": [undefined, \"Rs\", 2], \"MXN\": [\"MX$\", \"$\"], \"MYR\": [undefined, \"RM\"], \"NAD\": [undefined, \"$\"], \"NGN\": [undefined, \"₦\"], \"NIO\": [undefined, \"C$\"], \"NOK\": [undefined, \"kr\", 2], \"NPR\": [undefined, \"Rs\"], \"NZD\": [\"NZ$\", \"$\"], \"OMR\": [undefined, undefined, 3], \"PHP\": [\"₱\"], \"PKR\": [undefined, \"Rs\", 2], \"PLN\": [undefined, \"zł\"], \"PYG\": [undefined, \"₲\", 0], \"RON\": [undefined, \"lei\"], \"RSD\": [undefined, undefined, 0], \"RUB\": [undefined, \"₽\"], \"RWF\": [undefined, \"RF\", 0], \"SBD\": [undefined, \"$\"], \"SEK\": [undefined, \"kr\", 2], \"SGD\": [undefined, \"$\"], \"SHP\": [undefined, \"£\"], \"SLE\": [undefined, undefined, 2], \"SLL\": [undefined, undefined, 0], \"SOS\": [undefined, undefined, 0], \"SRD\": [undefined, \"$\"], \"SSP\": [undefined, \"£\"], \"STD\": [undefined, undefined, 0], \"STN\": [undefined, \"Db\"], \"SYP\": [undefined, \"£\", 0], \"THB\": [undefined, \"฿\"], \"TMM\": [undefined, undefined, 0], \"TND\": [undefined, undefined, 3], \"TOP\": [undefined, \"T$\"], \"TRL\": [undefined, undefined, 0], \"TRY\": [undefined, \"₺\"], \"TTD\": [undefined, \"$\"], \"TWD\": [\"NT$\", \"$\", 2], \"TZS\": [undefined, undefined, 2], \"UAH\": [undefined, \"₴\"], \"UGX\": [undefined, undefined, 0], \"USD\": [\"$\"], \"UYI\": [undefined, undefined, 0], \"UYU\": [undefined, \"$\"], \"UYW\": [undefined, undefined, 4], \"UZS\": [undefined, undefined, 2], \"VEF\": [undefined, \"Bs\", 2], \"VND\": [\"₫\", undefined, 0], \"VUV\": [undefined, undefined, 0], \"XAF\": [\"FCFA\", undefined, 0], \"XCD\": [\"EC$\", \"$\"], \"XOF\": [\"F CFA\", undefined, 0], \"XPF\": [\"CFPF\", undefined, 0], \"XXX\": [\"¤\"], \"YER\": [undefined, undefined, 0], \"ZAR\": [undefined, \"R\"], \"ZMK\": [undefined, undefined, 0], \"ZMW\": [undefined, \"ZK\"], \"ZWD\": [undefined, undefined, 0] };\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 * Format styles that can be used to represent numbers.\n * @see `getLocaleNumberFormat()`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nvar NumberFormatStyle;\n(function (NumberFormatStyle) {\n NumberFormatStyle[NumberFormatStyle[\"Decimal\"] = 0] = \"Decimal\";\n NumberFormatStyle[NumberFormatStyle[\"Percent\"] = 1] = \"Percent\";\n NumberFormatStyle[NumberFormatStyle[\"Currency\"] = 2] = \"Currency\";\n NumberFormatStyle[NumberFormatStyle[\"Scientific\"] = 3] = \"Scientific\";\n})(NumberFormatStyle || (NumberFormatStyle = {}));\n/**\n * Plurality cases used for translating plurals to different languages.\n *\n * @see `NgPlural`\n * @see `NgPluralCase`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nvar Plural;\n(function (Plural) {\n Plural[Plural[\"Zero\"] = 0] = \"Zero\";\n Plural[Plural[\"One\"] = 1] = \"One\";\n Plural[Plural[\"Two\"] = 2] = \"Two\";\n Plural[Plural[\"Few\"] = 3] = \"Few\";\n Plural[Plural[\"Many\"] = 4] = \"Many\";\n Plural[Plural[\"Other\"] = 5] = \"Other\";\n})(Plural || (Plural = {}));\n/**\n * Context-dependant translation forms for strings.\n * Typically the standalone version is for the nominative form of the word,\n * and the format version is used for the genitive case.\n * @see [CLDR website](http://cldr.unicode.org/translation/date-time-1/date-time#TOC-Standalone-vs.-Format-Styles)\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nvar FormStyle;\n(function (FormStyle) {\n FormStyle[FormStyle[\"Format\"] = 0] = \"Format\";\n FormStyle[FormStyle[\"Standalone\"] = 1] = \"Standalone\";\n})(FormStyle || (FormStyle = {}));\n/**\n * String widths available for translations.\n * The specific character widths are locale-specific.\n * Examples are given for the word \"Sunday\" in English.\n *\n * @publicApi\n */\nvar TranslationWidth;\n(function (TranslationWidth) {\n /** 1 character for `en-US`. For example: 'S' */\n TranslationWidth[TranslationWidth[\"Narrow\"] = 0] = \"Narrow\";\n /** 3 characters for `en-US`. For example: 'Sun' */\n TranslationWidth[TranslationWidth[\"Abbreviated\"] = 1] = \"Abbreviated\";\n /** Full length for `en-US`. For example: \"Sunday\" */\n TranslationWidth[TranslationWidth[\"Wide\"] = 2] = \"Wide\";\n /** 2 characters for `en-US`, For example: \"Su\" */\n TranslationWidth[TranslationWidth[\"Short\"] = 3] = \"Short\";\n})(TranslationWidth || (TranslationWidth = {}));\n/**\n * String widths available for date-time formats.\n * The specific character widths are locale-specific.\n * Examples are given for `en-US`.\n *\n * @see `getLocaleDateFormat()`\n * @see `getLocaleTimeFormat()`\n * @see `getLocaleDateTimeFormat()`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n * @publicApi\n */\nvar FormatWidth;\n(function (FormatWidth) {\n /**\n * For `en-US`, 'M/d/yy, h:mm a'`\n * (Example: `6/15/15, 9:03 AM`)\n */\n FormatWidth[FormatWidth[\"Short\"] = 0] = \"Short\";\n /**\n * For `en-US`, `'MMM d, y, h:mm:ss a'`\n * (Example: `Jun 15, 2015, 9:03:01 AM`)\n */\n FormatWidth[FormatWidth[\"Medium\"] = 1] = \"Medium\";\n /**\n * For `en-US`, `'MMMM d, y, h:mm:ss a z'`\n * (Example: `June 15, 2015 at 9:03:01 AM GMT+1`)\n */\n FormatWidth[FormatWidth[\"Long\"] = 2] = \"Long\";\n /**\n * For `en-US`, `'EEEE, MMMM d, y, h:mm:ss a zzzz'`\n * (Example: `Monday, June 15, 2015 at 9:03:01 AM GMT+01:00`)\n */\n FormatWidth[FormatWidth[\"Full\"] = 3] = \"Full\";\n})(FormatWidth || (FormatWidth = {}));\n/**\n * Symbols that can be used to replace placeholders in number patterns.\n * Examples are based on `en-US` values.\n *\n * @see `getLocaleNumberSymbol()`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nvar NumberSymbol;\n(function (NumberSymbol) {\n /**\n * Decimal separator.\n * For `en-US`, the dot character.\n * Example: 2,345`.`67\n */\n NumberSymbol[NumberSymbol[\"Decimal\"] = 0] = \"Decimal\";\n /**\n * Grouping separator, typically for thousands.\n * For `en-US`, the comma character.\n * Example: 2`,`345.67\n */\n NumberSymbol[NumberSymbol[\"Group\"] = 1] = \"Group\";\n /**\n * List-item separator.\n * Example: \"one, two, and three\"\n */\n NumberSymbol[NumberSymbol[\"List\"] = 2] = \"List\";\n /**\n * Sign for percentage (out of 100).\n * Example: 23.4%\n */\n NumberSymbol[NumberSymbol[\"PercentSign\"] = 3] = \"PercentSign\";\n /**\n * Sign for positive numbers.\n * Example: +23\n */\n NumberSymbol[NumberSymbol[\"PlusSign\"] = 4] = \"PlusSign\";\n /**\n * Sign for negative numbers.\n * Example: -23\n */\n NumberSymbol[NumberSymbol[\"MinusSign\"] = 5] = \"MinusSign\";\n /**\n * Computer notation for exponential value (n times a power of 10).\n * Example: 1.2E3\n */\n NumberSymbol[NumberSymbol[\"Exponential\"] = 6] = \"Exponential\";\n /**\n * Human-readable format of exponential.\n * Example: 1.2x103\n */\n NumberSymbol[NumberSymbol[\"SuperscriptingExponent\"] = 7] = \"SuperscriptingExponent\";\n /**\n * Sign for permille (out of 1000).\n * Example: 23.4‰\n */\n NumberSymbol[NumberSymbol[\"PerMille\"] = 8] = \"PerMille\";\n /**\n * Infinity, can be used with plus and minus.\n * Example: ∞, +∞, -∞\n */\n NumberSymbol[NumberSymbol[\"Infinity\"] = 9] = \"Infinity\";\n /**\n * Not a number.\n * Example: NaN\n */\n NumberSymbol[NumberSymbol[\"NaN\"] = 10] = \"NaN\";\n /**\n * Symbol used between time units.\n * Example: 10:52\n */\n NumberSymbol[NumberSymbol[\"TimeSeparator\"] = 11] = \"TimeSeparator\";\n /**\n * Decimal separator for currency values (fallback to `Decimal`).\n * Example: $2,345.67\n */\n NumberSymbol[NumberSymbol[\"CurrencyDecimal\"] = 12] = \"CurrencyDecimal\";\n /**\n * Group separator for currency values (fallback to `Group`).\n * Example: $2,345.67\n */\n NumberSymbol[NumberSymbol[\"CurrencyGroup\"] = 13] = \"CurrencyGroup\";\n})(NumberSymbol || (NumberSymbol = {}));\n/**\n * The value for each day of the week, based on the `en-US` locale\n *\n * @publicApi\n */\nvar WeekDay;\n(function (WeekDay) {\n WeekDay[WeekDay[\"Sunday\"] = 0] = \"Sunday\";\n WeekDay[WeekDay[\"Monday\"] = 1] = \"Monday\";\n WeekDay[WeekDay[\"Tuesday\"] = 2] = \"Tuesday\";\n WeekDay[WeekDay[\"Wednesday\"] = 3] = \"Wednesday\";\n WeekDay[WeekDay[\"Thursday\"] = 4] = \"Thursday\";\n WeekDay[WeekDay[\"Friday\"] = 5] = \"Friday\";\n WeekDay[WeekDay[\"Saturday\"] = 6] = \"Saturday\";\n})(WeekDay || (WeekDay = {}));\n/**\n * Retrieves the locale ID from the currently loaded locale.\n * The loaded locale could be, for example, a global one rather than a regional one.\n * @param locale A locale code, such as `fr-FR`.\n * @returns The locale code. For example, `fr`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleId(locale) {\n return ɵfindLocaleData(locale)[ɵLocaleDataIndex.LocaleId];\n}\n/**\n * Retrieves day period strings for the given locale.\n *\n * @param locale A locale code for the locale format rules to use.\n * @param formStyle The required grammatical form.\n * @param width The required character width.\n * @returns An array of localized period strings. For example, `[AM, PM]` for `en-US`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleDayPeriods(locale, formStyle, width) {\n const data = ɵfindLocaleData(locale);\n const amPmData = [\n data[ɵLocaleDataIndex.DayPeriodsFormat], data[ɵLocaleDataIndex.DayPeriodsStandalone]\n ];\n const amPm = getLastDefinedValue(amPmData, formStyle);\n return getLastDefinedValue(amPm, width);\n}\n/**\n * Retrieves days of the week for the given locale, using the Gregorian calendar.\n *\n * @param locale A locale code for the locale format rules to use.\n * @param formStyle The required grammatical form.\n * @param width The required character width.\n * @returns An array of localized name strings.\n * For example,`[Sunday, Monday, ... Saturday]` for `en-US`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleDayNames(locale, formStyle, width) {\n const data = ɵfindLocaleData(locale);\n const daysData = [data[ɵLocaleDataIndex.DaysFormat], data[ɵLocaleDataIndex.DaysStandalone]];\n const days = getLastDefinedValue(daysData, formStyle);\n return getLastDefinedValue(days, width);\n}\n/**\n * Retrieves months of the year for the given locale, using the Gregorian calendar.\n *\n * @param locale A locale code for the locale format rules to use.\n * @param formStyle The required grammatical form.\n * @param width The required character width.\n * @returns An array of localized name strings.\n * For example, `[January, February, ...]` for `en-US`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleMonthNames(locale, formStyle, width) {\n const data = ɵfindLocaleData(locale);\n const monthsData = [data[ɵLocaleDataIndex.MonthsFormat], data[ɵLocaleDataIndex.MonthsStandalone]];\n const months = getLastDefinedValue(monthsData, formStyle);\n return getLastDefinedValue(months, width);\n}\n/**\n * Retrieves Gregorian-calendar eras for the given locale.\n * @param locale A locale code for the locale format rules to use.\n * @param width The required character width.\n\n * @returns An array of localized era strings.\n * For example, `[AD, BC]` for `en-US`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleEraNames(locale, width) {\n const data = ɵfindLocaleData(locale);\n const erasData = data[ɵLocaleDataIndex.Eras];\n return getLastDefinedValue(erasData, width);\n}\n/**\n * Retrieves the first day of the week for the given locale.\n *\n * @param locale A locale code for the locale format rules to use.\n * @returns A day index number, using the 0-based week-day index for `en-US`\n * (Sunday = 0, Monday = 1, ...).\n * For example, for `fr-FR`, returns 1 to indicate that the first day is Monday.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleFirstDayOfWeek(locale) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.FirstDayOfWeek];\n}\n/**\n * Range of week days that are considered the week-end for the given locale.\n *\n * @param locale A locale code for the locale format rules to use.\n * @returns The range of day values, `[startDay, endDay]`.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleWeekEndRange(locale) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.WeekendRange];\n}\n/**\n * Retrieves a localized date-value formatting string.\n *\n * @param locale A locale code for the locale format rules to use.\n * @param width The format type.\n * @returns The localized formatting string.\n * @see `FormatWidth`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleDateFormat(locale, width) {\n const data = ɵfindLocaleData(locale);\n return getLastDefinedValue(data[ɵLocaleDataIndex.DateFormat], width);\n}\n/**\n * Retrieves a localized time-value formatting string.\n *\n * @param locale A locale code for the locale format rules to use.\n * @param width The format type.\n * @returns The localized formatting string.\n * @see `FormatWidth`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n\n * @publicApi\n */\nfunction getLocaleTimeFormat(locale, width) {\n const data = ɵfindLocaleData(locale);\n return getLastDefinedValue(data[ɵLocaleDataIndex.TimeFormat], width);\n}\n/**\n * Retrieves a localized date-time formatting string.\n *\n * @param locale A locale code for the locale format rules to use.\n * @param width The format type.\n * @returns The localized formatting string.\n * @see `FormatWidth`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleDateTimeFormat(locale, width) {\n const data = ɵfindLocaleData(locale);\n const dateTimeFormatData = data[ɵLocaleDataIndex.DateTimeFormat];\n return getLastDefinedValue(dateTimeFormatData, width);\n}\n/**\n * Retrieves a localized number symbol that can be used to replace placeholders in number formats.\n * @param locale The locale code.\n * @param symbol The symbol to localize.\n * @returns The character for the localized symbol.\n * @see `NumberSymbol`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleNumberSymbol(locale, symbol) {\n const data = ɵfindLocaleData(locale);\n const res = data[ɵLocaleDataIndex.NumberSymbols][symbol];\n if (typeof res === 'undefined') {\n if (symbol === NumberSymbol.CurrencyDecimal) {\n return data[ɵLocaleDataIndex.NumberSymbols][NumberSymbol.Decimal];\n }\n else if (symbol === NumberSymbol.CurrencyGroup) {\n return data[ɵLocaleDataIndex.NumberSymbols][NumberSymbol.Group];\n }\n }\n return res;\n}\n/**\n * Retrieves a number format for a given locale.\n *\n * Numbers are formatted using patterns, like `#,###.00`. For example, the pattern `#,###.00`\n * when used to format the number 12345.678 could result in \"12'345,678\". That would happen if the\n * grouping separator for your language is an apostrophe, and the decimal separator is a comma.\n *\n * Important: The characters `.` `,` `0` `#` (and others below) are special placeholders\n * that stand for the decimal separator, and so on, and are NOT real characters.\n * You must NOT \"translate\" the placeholders. For example, don't change `.` to `,` even though in\n * your language the decimal point is written with a comma. The symbols should be replaced by the\n * local equivalents, using the appropriate `NumberSymbol` for your language.\n *\n * Here are the special characters used in number patterns:\n *\n * | Symbol | Meaning |\n * |--------|---------|\n * | . | Replaced automatically by the character used for the decimal point. |\n * | , | Replaced by the \"grouping\" (thousands) separator. |\n * | 0 | Replaced by a digit (or zero if there aren't enough digits). |\n * | # | Replaced by a digit (or nothing if there aren't enough). |\n * | ¤ | Replaced by a currency symbol, such as $ or USD. |\n * | % | Marks a percent format. The % symbol may change position, but must be retained. |\n * | E | Marks a scientific format. The E symbol may change position, but must be retained. |\n * | ' | Special characters used as literal characters are quoted with ASCII single quotes. |\n *\n * @param locale A locale code for the locale format rules to use.\n * @param type The type of numeric value to be formatted (such as `Decimal` or `Currency`.)\n * @returns The localized format string.\n * @see `NumberFormatStyle`\n * @see [CLDR website](http://cldr.unicode.org/translation/number-patterns)\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleNumberFormat(locale, type) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.NumberFormats][type];\n}\n/**\n * Retrieves the symbol used to represent the currency for the main country\n * corresponding to a given locale. For example, '$' for `en-US`.\n *\n * @param locale A locale code for the locale format rules to use.\n * @returns The localized symbol character,\n * or `null` if the main country cannot be determined.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleCurrencySymbol(locale) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.CurrencySymbol] || null;\n}\n/**\n * Retrieves the name of the currency for the main country corresponding\n * to a given locale. For example, 'US Dollar' for `en-US`.\n * @param locale A locale code for the locale format rules to use.\n * @returns The currency name,\n * or `null` if the main country cannot be determined.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleCurrencyName(locale) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.CurrencyName] || null;\n}\n/**\n * Retrieves the default currency code for the given locale.\n *\n * The default is defined as the first currency which is still in use.\n *\n * @param locale The code of the locale whose currency code we want.\n * @returns The code of the default currency for the given locale.\n *\n * @publicApi\n */\nfunction getLocaleCurrencyCode(locale) {\n return ɵgetLocaleCurrencyCode(locale);\n}\n/**\n * Retrieves the currency values for a given locale.\n * @param locale A locale code for the locale format rules to use.\n * @returns The currency values.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n */\nfunction getLocaleCurrencies(locale) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.Currencies];\n}\n/**\n * @alias core/ɵgetLocalePluralCase\n * @publicApi\n */\nconst getLocalePluralCase = ɵgetLocalePluralCase;\nfunction checkFullData(data) {\n if (!data[ɵLocaleDataIndex.ExtraData]) {\n throw new Error(`Missing extra locale data for the locale \"${data[ɵLocaleDataIndex\n .LocaleId]}\". Use \"registerLocaleData\" to load new data. See the \"I18n guide\" on angular.io to know more.`);\n }\n}\n/**\n * Retrieves locale-specific rules used to determine which day period to use\n * when more than one period is defined for a locale.\n *\n * There is a rule for each defined day period. The\n * first rule is applied to the first day period and so on.\n * Fall back to AM/PM when no rules are available.\n *\n * A rule can specify a period as time range, or as a single time value.\n *\n * This functionality is only available when you have loaded the full locale data.\n * See the [\"I18n guide\"](guide/i18n-common-format-data-locale).\n *\n * @param locale A locale code for the locale format rules to use.\n * @returns The rules for the locale, a single time value or array of *from-time, to-time*,\n * or null if no periods are available.\n *\n * @see `getLocaleExtraDayPeriods()`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleExtraDayPeriodRules(locale) {\n const data = ɵfindLocaleData(locale);\n checkFullData(data);\n const rules = data[ɵLocaleDataIndex.ExtraData][2 /* ɵExtraLocaleDataIndex.ExtraDayPeriodsRules */] || [];\n return rules.map((rule) => {\n if (typeof rule === 'string') {\n return extractTime(rule);\n }\n return [extractTime(rule[0]), extractTime(rule[1])];\n });\n}\n/**\n * Retrieves locale-specific day periods, which indicate roughly how a day is broken up\n * in different languages.\n * For example, for `en-US`, periods are morning, noon, afternoon, evening, and midnight.\n *\n * This functionality is only available when you have loaded the full locale data.\n * See the [\"I18n guide\"](guide/i18n-common-format-data-locale).\n *\n * @param locale A locale code for the locale format rules to use.\n * @param formStyle The required grammatical form.\n * @param width The required character width.\n * @returns The translated day-period strings.\n * @see `getLocaleExtraDayPeriodRules()`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLocaleExtraDayPeriods(locale, formStyle, width) {\n const data = ɵfindLocaleData(locale);\n checkFullData(data);\n const dayPeriodsData = [\n data[ɵLocaleDataIndex.ExtraData][0 /* ɵExtraLocaleDataIndex.ExtraDayPeriodFormats */],\n data[ɵLocaleDataIndex.ExtraData][1 /* ɵExtraLocaleDataIndex.ExtraDayPeriodStandalone */]\n ];\n const dayPeriods = getLastDefinedValue(dayPeriodsData, formStyle) || [];\n return getLastDefinedValue(dayPeriods, width) || [];\n}\n/**\n * Retrieves the writing direction of a specified locale\n * @param locale A locale code for the locale format rules to use.\n * @publicApi\n * @returns 'rtl' or 'ltr'\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n */\nfunction getLocaleDirection(locale) {\n const data = ɵfindLocaleData(locale);\n return data[ɵLocaleDataIndex.Directionality];\n}\n/**\n * Retrieves the first value that is defined in an array, going backwards from an index position.\n *\n * To avoid repeating the same data (as when the \"format\" and \"standalone\" forms are the same)\n * add the first value to the locale data arrays, and add other values only if they are different.\n *\n * @param data The data array to retrieve from.\n * @param index A 0-based index into the array to start from.\n * @returns The value immediately before the given index position.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getLastDefinedValue(data, index) {\n for (let i = index; i > -1; i--) {\n if (typeof data[i] !== 'undefined') {\n return data[i];\n }\n }\n throw new Error('Locale data API: locale data undefined');\n}\n/**\n * Extracts the hours and minutes from a string like \"15:45\"\n */\nfunction extractTime(time) {\n const [h, m] = time.split(':');\n return { hours: +h, minutes: +m };\n}\n/**\n * Retrieves the currency symbol for a given currency code.\n *\n * For example, for the default `en-US` locale, the code `USD` can\n * be represented by the narrow symbol `$` or the wide symbol `US$`.\n *\n * @param code The currency code.\n * @param format The format, `wide` or `narrow`.\n * @param locale A locale code for the locale format rules to use.\n *\n * @returns The symbol, or the currency code if no symbol is available.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getCurrencySymbol(code, format, locale = 'en') {\n const currency = getLocaleCurrencies(locale)[code] || CURRENCIES_EN[code] || [];\n const symbolNarrow = currency[1 /* ɵCurrencyIndex.SymbolNarrow */];\n if (format === 'narrow' && typeof symbolNarrow === 'string') {\n return symbolNarrow;\n }\n return currency[0 /* ɵCurrencyIndex.Symbol */] || code;\n}\n// Most currencies have cents, that's why the default is 2\nconst DEFAULT_NB_OF_CURRENCY_DIGITS = 2;\n/**\n * Reports the number of decimal digits for a given currency.\n * The value depends upon the presence of cents in that particular currency.\n *\n * @param code The currency code.\n * @returns The number of decimal digits, typically 0 or 2.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction getNumberOfCurrencyDigits(code) {\n let digits;\n const currency = CURRENCIES_EN[code];\n if (currency) {\n digits = currency[2 /* ɵCurrencyIndex.NbOfDigits */];\n }\n return typeof digits === 'number' ? digits : DEFAULT_NB_OF_CURRENCY_DIGITS;\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 ISO8601_DATE_REGEX = /^(\\d{4,})-?(\\d\\d)-?(\\d\\d)(?:T(\\d\\d)(?::?(\\d\\d)(?::?(\\d\\d)(?:\\.(\\d+))?)?)?(Z|([+-])(\\d\\d):?(\\d\\d))?)?$/;\n// 1 2 3 4 5 6 7 8 9 10 11\nconst NAMED_FORMATS = {};\nconst DATE_FORMATS_SPLIT = /((?:[^BEGHLMOSWYZabcdhmswyz']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|Y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{1,6}|c{1,6}|a{1,5}|b{1,5}|B{1,5}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|O{1,4}))([\\s\\S]*)/;\nvar ZoneWidth;\n(function (ZoneWidth) {\n ZoneWidth[ZoneWidth[\"Short\"] = 0] = \"Short\";\n ZoneWidth[ZoneWidth[\"ShortGMT\"] = 1] = \"ShortGMT\";\n ZoneWidth[ZoneWidth[\"Long\"] = 2] = \"Long\";\n ZoneWidth[ZoneWidth[\"Extended\"] = 3] = \"Extended\";\n})(ZoneWidth || (ZoneWidth = {}));\nvar DateType;\n(function (DateType) {\n DateType[DateType[\"FullYear\"] = 0] = \"FullYear\";\n DateType[DateType[\"Month\"] = 1] = \"Month\";\n DateType[DateType[\"Date\"] = 2] = \"Date\";\n DateType[DateType[\"Hours\"] = 3] = \"Hours\";\n DateType[DateType[\"Minutes\"] = 4] = \"Minutes\";\n DateType[DateType[\"Seconds\"] = 5] = \"Seconds\";\n DateType[DateType[\"FractionalSeconds\"] = 6] = \"FractionalSeconds\";\n DateType[DateType[\"Day\"] = 7] = \"Day\";\n})(DateType || (DateType = {}));\nvar TranslationType;\n(function (TranslationType) {\n TranslationType[TranslationType[\"DayPeriods\"] = 0] = \"DayPeriods\";\n TranslationType[TranslationType[\"Days\"] = 1] = \"Days\";\n TranslationType[TranslationType[\"Months\"] = 2] = \"Months\";\n TranslationType[TranslationType[\"Eras\"] = 3] = \"Eras\";\n})(TranslationType || (TranslationType = {}));\n/**\n * @ngModule CommonModule\n * @description\n *\n * Formats a date according to locale rules.\n *\n * @param value The date to format, as a Date, or a number (milliseconds since UTC epoch)\n * or an [ISO date-time string](https://www.w3.org/TR/NOTE-datetime).\n * @param format The date-time components to include. See `DatePipe` for details.\n * @param locale A locale code for the locale format rules to use.\n * @param timezone The time zone. A time zone offset from GMT (such as `'+0430'`),\n * or a standard UTC/GMT or continental US time zone abbreviation.\n * If not specified, uses host system settings.\n *\n * @returns The formatted date string.\n *\n * @see `DatePipe`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction formatDate(value, format, locale, timezone) {\n let date = toDate(value);\n const namedFormat = getNamedFormat(locale, format);\n format = namedFormat || format;\n let parts = [];\n let match;\n while (format) {\n match = DATE_FORMATS_SPLIT.exec(format);\n if (match) {\n parts = parts.concat(match.slice(1));\n const part = parts.pop();\n if (!part) {\n break;\n }\n format = part;\n }\n else {\n parts.push(format);\n break;\n }\n }\n let dateTimezoneOffset = date.getTimezoneOffset();\n if (timezone) {\n dateTimezoneOffset = timezoneToOffset(timezone, dateTimezoneOffset);\n date = convertTimezoneToLocal(date, timezone, true);\n }\n let text = '';\n parts.forEach(value => {\n const dateFormatter = getDateFormatter(value);\n text += dateFormatter ? dateFormatter(date, locale, dateTimezoneOffset) :\n value === '\\'\\'' ? '\\'' :\n value.replace(/(^'|'$)/g, '').replace(/''/g, '\\'');\n });\n return text;\n}\n/**\n * Create a new Date object with the given date value, and the time set to midnight.\n *\n * We cannot use `new Date(year, month, date)` because it maps years between 0 and 99 to 1900-1999.\n * See: https://github.com/angular/angular/issues/40377\n *\n * Note that this function returns a Date object whose time is midnight in the current locale's\n * timezone. In the future we might want to change this to be midnight in UTC, but this would be a\n * considerable breaking change.\n */\nfunction createDate(year, month, date) {\n // The `newDate` is set to midnight (UTC) on January 1st 1970.\n // - In PST this will be December 31st 1969 at 4pm.\n // - In GMT this will be January 1st 1970 at 1am.\n // Note that they even have different years, dates and months!\n const newDate = new Date(0);\n // `setFullYear()` allows years like 0001 to be set correctly. This function does not\n // change the internal time of the date.\n // Consider calling `setFullYear(2019, 8, 20)` (September 20, 2019).\n // - In PST this will now be September 20, 2019 at 4pm\n // - In GMT this will now be September 20, 2019 at 1am\n newDate.setFullYear(year, month, date);\n // We want the final date to be at local midnight, so we reset the time.\n // - In PST this will now be September 20, 2019 at 12am\n // - In GMT this will now be September 20, 2019 at 12am\n newDate.setHours(0, 0, 0);\n return newDate;\n}\nfunction getNamedFormat(locale, format) {\n const localeId = getLocaleId(locale);\n NAMED_FORMATS[localeId] = NAMED_FORMATS[localeId] || {};\n if (NAMED_FORMATS[localeId][format]) {\n return NAMED_FORMATS[localeId][format];\n }\n let formatValue = '';\n switch (format) {\n case 'shortDate':\n formatValue = getLocaleDateFormat(locale, FormatWidth.Short);\n break;\n case 'mediumDate':\n formatValue = getLocaleDateFormat(locale, FormatWidth.Medium);\n break;\n case 'longDate':\n formatValue = getLocaleDateFormat(locale, FormatWidth.Long);\n break;\n case 'fullDate':\n formatValue = getLocaleDateFormat(locale, FormatWidth.Full);\n break;\n case 'shortTime':\n formatValue = getLocaleTimeFormat(locale, FormatWidth.Short);\n break;\n case 'mediumTime':\n formatValue = getLocaleTimeFormat(locale, FormatWidth.Medium);\n break;\n case 'longTime':\n formatValue = getLocaleTimeFormat(locale, FormatWidth.Long);\n break;\n case 'fullTime':\n formatValue = getLocaleTimeFormat(locale, FormatWidth.Full);\n break;\n case 'short':\n const shortTime = getNamedFormat(locale, 'shortTime');\n const shortDate = getNamedFormat(locale, 'shortDate');\n formatValue = formatDateTime(getLocaleDateTimeFormat(locale, FormatWidth.Short), [shortTime, shortDate]);\n break;\n case 'medium':\n const mediumTime = getNamedFormat(locale, 'mediumTime');\n const mediumDate = getNamedFormat(locale, 'mediumDate');\n formatValue = formatDateTime(getLocaleDateTimeFormat(locale, FormatWidth.Medium), [mediumTime, mediumDate]);\n break;\n case 'long':\n const longTime = getNamedFormat(locale, 'longTime');\n const longDate = getNamedFormat(locale, 'longDate');\n formatValue =\n formatDateTime(getLocaleDateTimeFormat(locale, FormatWidth.Long), [longTime, longDate]);\n break;\n case 'full':\n const fullTime = getNamedFormat(locale, 'fullTime');\n const fullDate = getNamedFormat(locale, 'fullDate');\n formatValue =\n formatDateTime(getLocaleDateTimeFormat(locale, FormatWidth.Full), [fullTime, fullDate]);\n break;\n }\n if (formatValue) {\n NAMED_FORMATS[localeId][format] = formatValue;\n }\n return formatValue;\n}\nfunction formatDateTime(str, opt_values) {\n if (opt_values) {\n str = str.replace(/\\{([^}]+)}/g, function (match, key) {\n return (opt_values != null && key in opt_values) ? opt_values[key] : match;\n });\n }\n return str;\n}\nfunction padNumber(num, digits, minusSign = '-', trim, negWrap) {\n let neg = '';\n if (num < 0 || (negWrap && num <= 0)) {\n if (negWrap) {\n num = -num + 1;\n }\n else {\n num = -num;\n neg = minusSign;\n }\n }\n let strNum = String(num);\n while (strNum.length < digits) {\n strNum = '0' + strNum;\n }\n if (trim) {\n strNum = strNum.slice(strNum.length - digits);\n }\n return neg + strNum;\n}\nfunction formatFractionalSeconds(milliseconds, digits) {\n const strMs = padNumber(milliseconds, 3);\n return strMs.substring(0, digits);\n}\n/**\n * Returns a date formatter that transforms a date into its locale digit representation\n */\nfunction dateGetter(name, size, offset = 0, trim = false, negWrap = false) {\n return function (date, locale) {\n let part = getDatePart(name, date);\n if (offset > 0 || part > -offset) {\n part += offset;\n }\n if (name === DateType.Hours) {\n if (part === 0 && offset === -12) {\n part = 12;\n }\n }\n else if (name === DateType.FractionalSeconds) {\n return formatFractionalSeconds(part, size);\n }\n const localeMinus = getLocaleNumberSymbol(locale, NumberSymbol.MinusSign);\n return padNumber(part, size, localeMinus, trim, negWrap);\n };\n}\nfunction getDatePart(part, date) {\n switch (part) {\n case DateType.FullYear:\n return date.getFullYear();\n case DateType.Month:\n return date.getMonth();\n case DateType.Date:\n return date.getDate();\n case DateType.Hours:\n return date.getHours();\n case DateType.Minutes:\n return date.getMinutes();\n case DateType.Seconds:\n return date.getSeconds();\n case DateType.FractionalSeconds:\n return date.getMilliseconds();\n case DateType.Day:\n return date.getDay();\n default:\n throw new Error(`Unknown DateType value \"${part}\".`);\n }\n}\n/**\n * Returns a date formatter that transforms a date into its locale string representation\n */\nfunction dateStrGetter(name, width, form = FormStyle.Format, extended = false) {\n return function (date, locale) {\n return getDateTranslation(date, locale, name, width, form, extended);\n };\n}\n/**\n * Returns the locale translation of a date for a given form, type and width\n */\nfunction getDateTranslation(date, locale, name, width, form, extended) {\n switch (name) {\n case TranslationType.Months:\n return getLocaleMonthNames(locale, form, width)[date.getMonth()];\n case TranslationType.Days:\n return getLocaleDayNames(locale, form, width)[date.getDay()];\n case TranslationType.DayPeriods:\n const currentHours = date.getHours();\n const currentMinutes = date.getMinutes();\n if (extended) {\n const rules = getLocaleExtraDayPeriodRules(locale);\n const dayPeriods = getLocaleExtraDayPeriods(locale, form, width);\n const index = rules.findIndex(rule => {\n if (Array.isArray(rule)) {\n // morning, afternoon, evening, night\n const [from, to] = rule;\n const afterFrom = currentHours >= from.hours && currentMinutes >= from.minutes;\n const beforeTo = (currentHours < to.hours ||\n (currentHours === to.hours && currentMinutes < to.minutes));\n // We must account for normal rules that span a period during the day (e.g. 6am-9am)\n // where `from` is less (earlier) than `to`. But also rules that span midnight (e.g.\n // 10pm - 5am) where `from` is greater (later!) than `to`.\n //\n // In the first case the current time must be BOTH after `from` AND before `to`\n // (e.g. 8am is after 6am AND before 10am).\n //\n // In the second case the current time must be EITHER after `from` OR before `to`\n // (e.g. 4am is before 5am but not after 10pm; and 11pm is not before 5am but it is\n // after 10pm).\n if (from.hours < to.hours) {\n if (afterFrom && beforeTo) {\n return true;\n }\n }\n else if (afterFrom || beforeTo) {\n return true;\n }\n }\n else { // noon or midnight\n if (rule.hours === currentHours && rule.minutes === currentMinutes) {\n return true;\n }\n }\n return false;\n });\n if (index !== -1) {\n return dayPeriods[index];\n }\n }\n // if no rules for the day periods, we use am/pm by default\n return getLocaleDayPeriods(locale, form, width)[currentHours < 12 ? 0 : 1];\n case TranslationType.Eras:\n return getLocaleEraNames(locale, width)[date.getFullYear() <= 0 ? 0 : 1];\n default:\n // This default case is not needed by TypeScript compiler, as the switch is exhaustive.\n // However Closure Compiler does not understand that and reports an error in typed mode.\n // The `throw new Error` below works around the problem, and the unexpected: never variable\n // makes sure tsc still checks this code is unreachable.\n const unexpected = name;\n throw new Error(`unexpected translation type ${unexpected}`);\n }\n}\n/**\n * Returns a date formatter that transforms a date and an offset into a timezone with ISO8601 or\n * GMT format depending on the width (eg: short = +0430, short:GMT = GMT+4, long = GMT+04:30,\n * extended = +04:30)\n */\nfunction timeZoneGetter(width) {\n return function (date, locale, offset) {\n const zone = -1 * offset;\n const minusSign = getLocaleNumberSymbol(locale, NumberSymbol.MinusSign);\n const hours = zone > 0 ? Math.floor(zone / 60) : Math.ceil(zone / 60);\n switch (width) {\n case ZoneWidth.Short:\n return ((zone >= 0) ? '+' : '') + padNumber(hours, 2, minusSign) +\n padNumber(Math.abs(zone % 60), 2, minusSign);\n case ZoneWidth.ShortGMT:\n return 'GMT' + ((zone >= 0) ? '+' : '') + padNumber(hours, 1, minusSign);\n case ZoneWidth.Long:\n return 'GMT' + ((zone >= 0) ? '+' : '') + padNumber(hours, 2, minusSign) + ':' +\n padNumber(Math.abs(zone % 60), 2, minusSign);\n case ZoneWidth.Extended:\n if (offset === 0) {\n return 'Z';\n }\n else {\n return ((zone >= 0) ? '+' : '') + padNumber(hours, 2, minusSign) + ':' +\n padNumber(Math.abs(zone % 60), 2, minusSign);\n }\n default:\n throw new Error(`Unknown zone width \"${width}\"`);\n }\n };\n}\nconst JANUARY = 0;\nconst THURSDAY = 4;\nfunction getFirstThursdayOfYear(year) {\n const firstDayOfYear = createDate(year, JANUARY, 1).getDay();\n return createDate(year, 0, 1 + ((firstDayOfYear <= THURSDAY) ? THURSDAY : THURSDAY + 7) - firstDayOfYear);\n}\nfunction getThursdayThisWeek(datetime) {\n return createDate(datetime.getFullYear(), datetime.getMonth(), datetime.getDate() + (THURSDAY - datetime.getDay()));\n}\nfunction weekGetter(size, monthBased = false) {\n return function (date, locale) {\n let result;\n if (monthBased) {\n const nbDaysBefore1stDayOfMonth = new Date(date.getFullYear(), date.getMonth(), 1).getDay() - 1;\n const today = date.getDate();\n result = 1 + Math.floor((today + nbDaysBefore1stDayOfMonth) / 7);\n }\n else {\n const thisThurs = getThursdayThisWeek(date);\n // Some days of a year are part of next year according to ISO 8601.\n // Compute the firstThurs from the year of this week's Thursday\n const firstThurs = getFirstThursdayOfYear(thisThurs.getFullYear());\n const diff = thisThurs.getTime() - firstThurs.getTime();\n result = 1 + Math.round(diff / 6.048e8); // 6.048e8 ms per week\n }\n return padNumber(result, size, getLocaleNumberSymbol(locale, NumberSymbol.MinusSign));\n };\n}\n/**\n * Returns a date formatter that provides the week-numbering year for the input date.\n */\nfunction weekNumberingYearGetter(size, trim = false) {\n return function (date, locale) {\n const thisThurs = getThursdayThisWeek(date);\n const weekNumberingYear = thisThurs.getFullYear();\n return padNumber(weekNumberingYear, size, getLocaleNumberSymbol(locale, NumberSymbol.MinusSign), trim);\n };\n}\nconst DATE_FORMATS = {};\n// Based on CLDR formats:\n// See complete list: http://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n// See also explanations: http://cldr.unicode.org/translation/date-time\n// TODO(ocombe): support all missing cldr formats: U, Q, D, F, e, j, J, C, A, v, V, X, x\nfunction getDateFormatter(format) {\n if (DATE_FORMATS[format]) {\n return DATE_FORMATS[format];\n }\n let formatter;\n switch (format) {\n // Era name (AD/BC)\n case 'G':\n case 'GG':\n case 'GGG':\n formatter = dateStrGetter(TranslationType.Eras, TranslationWidth.Abbreviated);\n break;\n case 'GGGG':\n formatter = dateStrGetter(TranslationType.Eras, TranslationWidth.Wide);\n break;\n case 'GGGGG':\n formatter = dateStrGetter(TranslationType.Eras, TranslationWidth.Narrow);\n break;\n // 1 digit representation of the year, e.g. (AD 1 => 1, AD 199 => 199)\n case 'y':\n formatter = dateGetter(DateType.FullYear, 1, 0, false, true);\n break;\n // 2 digit representation of the year, padded (00-99). (e.g. AD 2001 => 01, AD 2010 => 10)\n case 'yy':\n formatter = dateGetter(DateType.FullYear, 2, 0, true, true);\n break;\n // 3 digit representation of the year, padded (000-999). (e.g. AD 2001 => 01, AD 2010 => 10)\n case 'yyy':\n formatter = dateGetter(DateType.FullYear, 3, 0, false, true);\n break;\n // 4 digit representation of the year (e.g. AD 1 => 0001, AD 2010 => 2010)\n case 'yyyy':\n formatter = dateGetter(DateType.FullYear, 4, 0, false, true);\n break;\n // 1 digit representation of the week-numbering year, e.g. (AD 1 => 1, AD 199 => 199)\n case 'Y':\n formatter = weekNumberingYearGetter(1);\n break;\n // 2 digit representation of the week-numbering year, padded (00-99). (e.g. AD 2001 => 01, AD\n // 2010 => 10)\n case 'YY':\n formatter = weekNumberingYearGetter(2, true);\n break;\n // 3 digit representation of the week-numbering year, padded (000-999). (e.g. AD 1 => 001, AD\n // 2010 => 2010)\n case 'YYY':\n formatter = weekNumberingYearGetter(3);\n break;\n // 4 digit representation of the week-numbering year (e.g. AD 1 => 0001, AD 2010 => 2010)\n case 'YYYY':\n formatter = weekNumberingYearGetter(4);\n break;\n // Month of the year (1-12), numeric\n case 'M':\n case 'L':\n formatter = dateGetter(DateType.Month, 1, 1);\n break;\n case 'MM':\n case 'LL':\n formatter = dateGetter(DateType.Month, 2, 1);\n break;\n // Month of the year (January, ...), string, format\n case 'MMM':\n formatter = dateStrGetter(TranslationType.Months, TranslationWidth.Abbreviated);\n break;\n case 'MMMM':\n formatter = dateStrGetter(TranslationType.Months, TranslationWidth.Wide);\n break;\n case 'MMMMM':\n formatter = dateStrGetter(TranslationType.Months, TranslationWidth.Narrow);\n break;\n // Month of the year (January, ...), string, standalone\n case 'LLL':\n formatter =\n dateStrGetter(TranslationType.Months, TranslationWidth.Abbreviated, FormStyle.Standalone);\n break;\n case 'LLLL':\n formatter =\n dateStrGetter(TranslationType.Months, TranslationWidth.Wide, FormStyle.Standalone);\n break;\n case 'LLLLL':\n formatter =\n dateStrGetter(TranslationType.Months, TranslationWidth.Narrow, FormStyle.Standalone);\n break;\n // Week of the year (1, ... 52)\n case 'w':\n formatter = weekGetter(1);\n break;\n case 'ww':\n formatter = weekGetter(2);\n break;\n // Week of the month (1, ...)\n case 'W':\n formatter = weekGetter(1, true);\n break;\n // Day of the month (1-31)\n case 'd':\n formatter = dateGetter(DateType.Date, 1);\n break;\n case 'dd':\n formatter = dateGetter(DateType.Date, 2);\n break;\n // Day of the Week StandAlone (1, 1, Mon, Monday, M, Mo)\n case 'c':\n case 'cc':\n formatter = dateGetter(DateType.Day, 1);\n break;\n case 'ccc':\n formatter =\n dateStrGetter(TranslationType.Days, TranslationWidth.Abbreviated, FormStyle.Standalone);\n break;\n case 'cccc':\n formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Wide, FormStyle.Standalone);\n break;\n case 'ccccc':\n formatter =\n dateStrGetter(TranslationType.Days, TranslationWidth.Narrow, FormStyle.Standalone);\n break;\n case 'cccccc':\n formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Short, FormStyle.Standalone);\n break;\n // Day of the Week\n case 'E':\n case 'EE':\n case 'EEE':\n formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Abbreviated);\n break;\n case 'EEEE':\n formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Wide);\n break;\n case 'EEEEE':\n formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Narrow);\n break;\n case 'EEEEEE':\n formatter = dateStrGetter(TranslationType.Days, TranslationWidth.Short);\n break;\n // Generic period of the day (am-pm)\n case 'a':\n case 'aa':\n case 'aaa':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Abbreviated);\n break;\n case 'aaaa':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Wide);\n break;\n case 'aaaaa':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Narrow);\n break;\n // Extended period of the day (midnight, at night, ...), standalone\n case 'b':\n case 'bb':\n case 'bbb':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Abbreviated, FormStyle.Standalone, true);\n break;\n case 'bbbb':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Wide, FormStyle.Standalone, true);\n break;\n case 'bbbbb':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Narrow, FormStyle.Standalone, true);\n break;\n // Extended period of the day (midnight, night, ...), standalone\n case 'B':\n case 'BB':\n case 'BBB':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Abbreviated, FormStyle.Format, true);\n break;\n case 'BBBB':\n formatter =\n dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Wide, FormStyle.Format, true);\n break;\n case 'BBBBB':\n formatter = dateStrGetter(TranslationType.DayPeriods, TranslationWidth.Narrow, FormStyle.Format, true);\n break;\n // Hour in AM/PM, (1-12)\n case 'h':\n formatter = dateGetter(DateType.Hours, 1, -12);\n break;\n case 'hh':\n formatter = dateGetter(DateType.Hours, 2, -12);\n break;\n // Hour of the day (0-23)\n case 'H':\n formatter = dateGetter(DateType.Hours, 1);\n break;\n // Hour in day, padded (00-23)\n case 'HH':\n formatter = dateGetter(DateType.Hours, 2);\n break;\n // Minute of the hour (0-59)\n case 'm':\n formatter = dateGetter(DateType.Minutes, 1);\n break;\n case 'mm':\n formatter = dateGetter(DateType.Minutes, 2);\n break;\n // Second of the minute (0-59)\n case 's':\n formatter = dateGetter(DateType.Seconds, 1);\n break;\n case 'ss':\n formatter = dateGetter(DateType.Seconds, 2);\n break;\n // Fractional second\n case 'S':\n formatter = dateGetter(DateType.FractionalSeconds, 1);\n break;\n case 'SS':\n formatter = dateGetter(DateType.FractionalSeconds, 2);\n break;\n case 'SSS':\n formatter = dateGetter(DateType.FractionalSeconds, 3);\n break;\n // Timezone ISO8601 short format (-0430)\n case 'Z':\n case 'ZZ':\n case 'ZZZ':\n formatter = timeZoneGetter(ZoneWidth.Short);\n break;\n // Timezone ISO8601 extended format (-04:30)\n case 'ZZZZZ':\n formatter = timeZoneGetter(ZoneWidth.Extended);\n break;\n // Timezone GMT short format (GMT+4)\n case 'O':\n case 'OO':\n case 'OOO':\n // Should be location, but fallback to format O instead because we don't have the data yet\n case 'z':\n case 'zz':\n case 'zzz':\n formatter = timeZoneGetter(ZoneWidth.ShortGMT);\n break;\n // Timezone GMT long format (GMT+0430)\n case 'OOOO':\n case 'ZZZZ':\n // Should be location, but fallback to format O instead because we don't have the data yet\n case 'zzzz':\n formatter = timeZoneGetter(ZoneWidth.Long);\n break;\n default:\n return null;\n }\n DATE_FORMATS[format] = formatter;\n return formatter;\n}\nfunction timezoneToOffset(timezone, fallback) {\n // Support: IE 11 only, Edge 13-15+\n // IE/Edge do not \"understand\" colon (`:`) in timezone\n timezone = timezone.replace(/:/g, '');\n const requestedTimezoneOffset = Date.parse('Jan 01, 1970 00:00:00 ' + timezone) / 60000;\n return isNaN(requestedTimezoneOffset) ? fallback : requestedTimezoneOffset;\n}\nfunction addDateMinutes(date, minutes) {\n date = new Date(date.getTime());\n date.setMinutes(date.getMinutes() + minutes);\n return date;\n}\nfunction convertTimezoneToLocal(date, timezone, reverse) {\n const reverseValue = reverse ? -1 : 1;\n const dateTimezoneOffset = date.getTimezoneOffset();\n const timezoneOffset = timezoneToOffset(timezone, dateTimezoneOffset);\n return addDateMinutes(date, reverseValue * (timezoneOffset - dateTimezoneOffset));\n}\n/**\n * Converts a value to date.\n *\n * Supported input formats:\n * - `Date`\n * - number: timestamp\n * - string: numeric (e.g. \"1234\"), ISO and date strings in a format supported by\n * [Date.parse()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse).\n * Note: ISO strings without time return a date without timeoffset.\n *\n * Throws if unable to convert to a date.\n */\nfunction toDate(value) {\n if (isDate(value)) {\n return value;\n }\n if (typeof value === 'number' && !isNaN(value)) {\n return new Date(value);\n }\n if (typeof value === 'string') {\n value = value.trim();\n if (/^(\\d{4}(-\\d{1,2}(-\\d{1,2})?)?)$/.test(value)) {\n /* For ISO Strings without time the day, month and year must be extracted from the ISO String\n before Date creation to avoid time offset and errors in the new Date.\n If we only replace '-' with ',' in the ISO String (\"2015,01,01\"), and try to create a new\n date, some browsers (e.g. IE 9) will throw an invalid Date error.\n If we leave the '-' (\"2015-01-01\") and try to create a new Date(\"2015-01-01\") the timeoffset\n is applied.\n Note: ISO months are 0 for January, 1 for February, ... */\n const [y, m = 1, d = 1] = value.split('-').map((val) => +val);\n return createDate(y, m - 1, d);\n }\n const parsedNb = parseFloat(value);\n // any string that only contains numbers, like \"1234\" but not like \"1234hello\"\n if (!isNaN(value - parsedNb)) {\n return new Date(parsedNb);\n }\n let match;\n if (match = value.match(ISO8601_DATE_REGEX)) {\n return isoStringToDate(match);\n }\n }\n const date = new Date(value);\n if (!isDate(date)) {\n throw new Error(`Unable to convert \"${value}\" into a date`);\n }\n return date;\n}\n/**\n * Converts a date in ISO8601 to a Date.\n * Used instead of `Date.parse` because of browser discrepancies.\n */\nfunction isoStringToDate(match) {\n const date = new Date(0);\n let tzHour = 0;\n let tzMin = 0;\n // match[8] means that the string contains \"Z\" (UTC) or a timezone like \"+01:00\" or \"+0100\"\n const dateSetter = match[8] ? date.setUTCFullYear : date.setFullYear;\n const timeSetter = match[8] ? date.setUTCHours : date.setHours;\n // if there is a timezone defined like \"+01:00\" or \"+0100\"\n if (match[9]) {\n tzHour = Number(match[9] + match[10]);\n tzMin = Number(match[9] + match[11]);\n }\n dateSetter.call(date, Number(match[1]), Number(match[2]) - 1, Number(match[3]));\n const h = Number(match[4] || 0) - tzHour;\n const m = Number(match[5] || 0) - tzMin;\n const s = Number(match[6] || 0);\n // The ECMAScript specification (https://www.ecma-international.org/ecma-262/5.1/#sec-15.9.1.11)\n // defines that `DateTime` milliseconds should always be rounded down, so that `999.9ms`\n // becomes `999ms`.\n const ms = Math.floor(parseFloat('0.' + (match[7] || 0)) * 1000);\n timeSetter.call(date, h, m, s, ms);\n return date;\n}\nfunction isDate(value) {\n return value instanceof Date && !isNaN(value.valueOf());\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 NUMBER_FORMAT_REGEXP = /^(\\d+)?\\.((\\d+)(-(\\d+))?)?$/;\nconst MAX_DIGITS = 22;\nconst DECIMAL_SEP = '.';\nconst ZERO_CHAR = '0';\nconst PATTERN_SEP = ';';\nconst GROUP_SEP = ',';\nconst DIGIT_CHAR = '#';\nconst CURRENCY_CHAR = '¤';\nconst PERCENT_CHAR = '%';\n/**\n * Transforms a number to a locale string based on a style and a format.\n */\nfunction formatNumberToLocaleString(value, pattern, locale, groupSymbol, decimalSymbol, digitsInfo, isPercent = false) {\n let formattedText = '';\n let isZero = false;\n if (!isFinite(value)) {\n formattedText = getLocaleNumberSymbol(locale, NumberSymbol.Infinity);\n }\n else {\n let parsedNumber = parseNumber(value);\n if (isPercent) {\n parsedNumber = toPercent(parsedNumber);\n }\n let minInt = pattern.minInt;\n let minFraction = pattern.minFrac;\n let maxFraction = pattern.maxFrac;\n if (digitsInfo) {\n const parts = digitsInfo.match(NUMBER_FORMAT_REGEXP);\n if (parts === null) {\n throw new Error(`${digitsInfo} is not a valid digit info`);\n }\n const minIntPart = parts[1];\n const minFractionPart = parts[3];\n const maxFractionPart = parts[5];\n if (minIntPart != null) {\n minInt = parseIntAutoRadix(minIntPart);\n }\n if (minFractionPart != null) {\n minFraction = parseIntAutoRadix(minFractionPart);\n }\n if (maxFractionPart != null) {\n maxFraction = parseIntAutoRadix(maxFractionPart);\n }\n else if (minFractionPart != null && minFraction > maxFraction) {\n maxFraction = minFraction;\n }\n }\n roundNumber(parsedNumber, minFraction, maxFraction);\n let digits = parsedNumber.digits;\n let integerLen = parsedNumber.integerLen;\n const exponent = parsedNumber.exponent;\n let decimals = [];\n isZero = digits.every(d => !d);\n // pad zeros for small numbers\n for (; integerLen < minInt; integerLen++) {\n digits.unshift(0);\n }\n // pad zeros for small numbers\n for (; integerLen < 0; integerLen++) {\n digits.unshift(0);\n }\n // extract decimals digits\n if (integerLen > 0) {\n decimals = digits.splice(integerLen, digits.length);\n }\n else {\n decimals = digits;\n digits = [0];\n }\n // format the integer digits with grouping separators\n const groups = [];\n if (digits.length >= pattern.lgSize) {\n groups.unshift(digits.splice(-pattern.lgSize, digits.length).join(''));\n }\n while (digits.length > pattern.gSize) {\n groups.unshift(digits.splice(-pattern.gSize, digits.length).join(''));\n }\n if (digits.length) {\n groups.unshift(digits.join(''));\n }\n formattedText = groups.join(getLocaleNumberSymbol(locale, groupSymbol));\n // append the decimal digits\n if (decimals.length) {\n formattedText += getLocaleNumberSymbol(locale, decimalSymbol) + decimals.join('');\n }\n if (exponent) {\n formattedText += getLocaleNumberSymbol(locale, NumberSymbol.Exponential) + '+' + exponent;\n }\n }\n if (value < 0 && !isZero) {\n formattedText = pattern.negPre + formattedText + pattern.negSuf;\n }\n else {\n formattedText = pattern.posPre + formattedText + pattern.posSuf;\n }\n return formattedText;\n}\n/**\n * @ngModule CommonModule\n * @description\n *\n * Formats a number as currency using locale rules.\n *\n * @param value The number to format.\n * @param locale A locale code for the locale format rules to use.\n * @param currency A string containing the currency symbol or its name,\n * such as \"$\" or \"Canadian Dollar\". Used in output string, but does not affect the operation\n * of the function.\n * @param currencyCode The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217)\n * currency code, such as `USD` for the US dollar and `EUR` for the euro.\n * Used to determine the number of digits in the decimal part.\n * @param digitsInfo Decimal representation options, specified by a string in the following format:\n * `{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}`. See `DecimalPipe` for more details.\n *\n * @returns The formatted currency value.\n *\n * @see `formatNumber()`\n * @see `DecimalPipe`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction formatCurrency(value, locale, currency, currencyCode, digitsInfo) {\n const format = getLocaleNumberFormat(locale, NumberFormatStyle.Currency);\n const pattern = parseNumberFormat(format, getLocaleNumberSymbol(locale, NumberSymbol.MinusSign));\n pattern.minFrac = getNumberOfCurrencyDigits(currencyCode);\n pattern.maxFrac = pattern.minFrac;\n const res = formatNumberToLocaleString(value, pattern, locale, NumberSymbol.CurrencyGroup, NumberSymbol.CurrencyDecimal, digitsInfo);\n return res\n .replace(CURRENCY_CHAR, currency)\n // if we have 2 time the currency character, the second one is ignored\n .replace(CURRENCY_CHAR, '')\n // If there is a spacing between currency character and the value and\n // the currency character is suppressed by passing an empty string, the\n // spacing character would remain as part of the string. Then we\n // should remove it.\n .trim();\n}\n/**\n * @ngModule CommonModule\n * @description\n *\n * Formats a number as a percentage according to locale rules.\n *\n * @param value The number to format.\n * @param locale A locale code for the locale format rules to use.\n * @param digitsInfo Decimal representation options, specified by a string in the following format:\n * `{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}`. See `DecimalPipe` for more details.\n *\n * @returns The formatted percentage value.\n *\n * @see `formatNumber()`\n * @see `DecimalPipe`\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n * @publicApi\n *\n */\nfunction formatPercent(value, locale, digitsInfo) {\n const format = getLocaleNumberFormat(locale, NumberFormatStyle.Percent);\n const pattern = parseNumberFormat(format, getLocaleNumberSymbol(locale, NumberSymbol.MinusSign));\n const res = formatNumberToLocaleString(value, pattern, locale, NumberSymbol.Group, NumberSymbol.Decimal, digitsInfo, true);\n return res.replace(new RegExp(PERCENT_CHAR, 'g'), getLocaleNumberSymbol(locale, NumberSymbol.PercentSign));\n}\n/**\n * @ngModule CommonModule\n * @description\n *\n * Formats a number as text, with group sizing, separator, and other\n * parameters based on the locale.\n *\n * @param value The number to format.\n * @param locale A locale code for the locale format rules to use.\n * @param digitsInfo Decimal representation options, specified by a string in the following format:\n * `{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}`. See `DecimalPipe` for more details.\n *\n * @returns The formatted text string.\n * @see [Internationalization (i18n) Guide](https://angular.io/guide/i18n-overview)\n *\n * @publicApi\n */\nfunction formatNumber(value, locale, digitsInfo) {\n const format = getLocaleNumberFormat(locale, NumberFormatStyle.Decimal);\n const pattern = parseNumberFormat(format, getLocaleNumberSymbol(locale, NumberSymbol.MinusSign));\n return formatNumberToLocaleString(value, pattern, locale, NumberSymbol.Group, NumberSymbol.Decimal, digitsInfo);\n}\nfunction parseNumberFormat(format, minusSign = '-') {\n const p = {\n minInt: 1,\n minFrac: 0,\n maxFrac: 0,\n posPre: '',\n posSuf: '',\n negPre: '',\n negSuf: '',\n gSize: 0,\n lgSize: 0\n };\n const patternParts = format.split(PATTERN_SEP);\n const positive = patternParts[0];\n const negative = patternParts[1];\n const positiveParts = positive.indexOf(DECIMAL_SEP) !== -1 ?\n positive.split(DECIMAL_SEP) :\n [\n positive.substring(0, positive.lastIndexOf(ZERO_CHAR) + 1),\n positive.substring(positive.lastIndexOf(ZERO_CHAR) + 1)\n ], integer = positiveParts[0], fraction = positiveParts[1] || '';\n p.posPre = integer.substring(0, integer.indexOf(DIGIT_CHAR));\n for (let i = 0; i < fraction.length; i++) {\n const ch = fraction.charAt(i);\n if (ch === ZERO_CHAR) {\n p.minFrac = p.maxFrac = i + 1;\n }\n else if (ch === DIGIT_CHAR) {\n p.maxFrac = i + 1;\n }\n else {\n p.posSuf += ch;\n }\n }\n const groups = integer.split(GROUP_SEP);\n p.gSize = groups[1] ? groups[1].length : 0;\n p.lgSize = (groups[2] || groups[1]) ? (groups[2] || groups[1]).length : 0;\n if (negative) {\n const trunkLen = positive.length - p.posPre.length - p.posSuf.length, pos = negative.indexOf(DIGIT_CHAR);\n p.negPre = negative.substring(0, pos).replace(/'/g, '');\n p.negSuf = negative.slice(pos + trunkLen).replace(/'/g, '');\n }\n else {\n p.negPre = minusSign + p.posPre;\n p.negSuf = p.posSuf;\n }\n return p;\n}\n// Transforms a parsed number into a percentage by multiplying it by 100\nfunction toPercent(parsedNumber) {\n // if the number is 0, don't do anything\n if (parsedNumber.digits[0] === 0) {\n return parsedNumber;\n }\n // Getting the current number of decimals\n const fractionLen = parsedNumber.digits.length - parsedNumber.integerLen;\n if (parsedNumber.exponent) {\n parsedNumber.exponent += 2;\n }\n else {\n if (fractionLen === 0) {\n parsedNumber.digits.push(0, 0);\n }\n else if (fractionLen === 1) {\n parsedNumber.digits.push(0);\n }\n parsedNumber.integerLen += 2;\n }\n return parsedNumber;\n}\n/**\n * Parses a number.\n * Significant bits of this parse algorithm came from https://github.com/MikeMcl/big.js/\n */\nfunction parseNumber(num) {\n let numStr = Math.abs(num) + '';\n let exponent = 0, digits, integerLen;\n let i, j, zeros;\n // Decimal point?\n if ((integerLen = numStr.indexOf(DECIMAL_SEP)) > -1) {\n numStr = numStr.replace(DECIMAL_SEP, '');\n }\n // Exponential form?\n if ((i = numStr.search(/e/i)) > 0) {\n // Work out the exponent.\n if (integerLen < 0)\n integerLen = i;\n integerLen += +numStr.slice(i + 1);\n numStr = numStr.substring(0, i);\n }\n else if (integerLen < 0) {\n // There was no decimal point or exponent so it is an integer.\n integerLen = numStr.length;\n }\n // Count the number of leading zeros.\n for (i = 0; numStr.charAt(i) === ZERO_CHAR; i++) { /* empty */\n }\n if (i === (zeros = numStr.length)) {\n // The digits are all zero.\n digits = [0];\n integerLen = 1;\n }\n else {\n // Count the number of trailing zeros\n zeros--;\n while (numStr.charAt(zeros) === ZERO_CHAR)\n zeros--;\n // Trailing zeros are insignificant so ignore them\n integerLen -= i;\n digits = [];\n // Convert string to array of digits without leading/trailing zeros.\n for (j = 0; i <= zeros; i++, j++) {\n digits[j] = Number(numStr.charAt(i));\n }\n }\n // If the number overflows the maximum allowed digits then use an exponent.\n if (integerLen > MAX_DIGITS) {\n digits = digits.splice(0, MAX_DIGITS - 1);\n exponent = integerLen - 1;\n integerLen = 1;\n }\n return { digits, exponent, integerLen };\n}\n/**\n * Round the parsed number to the specified number of decimal places\n * This function changes the parsedNumber in-place\n */\nfunction roundNumber(parsedNumber, minFrac, maxFrac) {\n if (minFrac > maxFrac) {\n throw new Error(`The minimum number of digits after fraction (${minFrac}) is higher than the maximum (${maxFrac}).`);\n }\n let digits = parsedNumber.digits;\n let fractionLen = digits.length - parsedNumber.integerLen;\n const fractionSize = Math.min(Math.max(minFrac, fractionLen), maxFrac);\n // The index of the digit to where rounding is to occur\n let roundAt = fractionSize + parsedNumber.integerLen;\n let digit = digits[roundAt];\n if (roundAt > 0) {\n // Drop fractional digits beyond `roundAt`\n digits.splice(Math.max(parsedNumber.integerLen, roundAt));\n // Set non-fractional digits beyond `roundAt` to 0\n for (let j = roundAt; j < digits.length; j++) {\n digits[j] = 0;\n }\n }\n else {\n // We rounded to zero so reset the parsedNumber\n fractionLen = Math.max(0, fractionLen);\n parsedNumber.integerLen = 1;\n digits.length = Math.max(1, roundAt = fractionSize + 1);\n digits[0] = 0;\n for (let i = 1; i < roundAt; i++)\n digits[i] = 0;\n }\n if (digit >= 5) {\n if (roundAt - 1 < 0) {\n for (let k = 0; k > roundAt; k--) {\n digits.unshift(0);\n parsedNumber.integerLen++;\n }\n digits.unshift(1);\n parsedNumber.integerLen++;\n }\n else {\n digits[roundAt - 1]++;\n }\n }\n // Pad out with zeros to get the required fraction length\n for (; fractionLen < Math.max(0, fractionSize); fractionLen++)\n digits.push(0);\n let dropTrailingZeros = fractionSize !== 0;\n // Minimal length = nb of decimals required + current nb of integers\n // Any number besides that is optional and can be removed if it's a trailing 0\n const minLen = minFrac + parsedNumber.integerLen;\n // Do any carrying, e.g. a digit was rounded up to 10\n const carry = digits.reduceRight(function (carry, d, i, digits) {\n d = d + carry;\n digits[i] = d < 10 ? d : d - 10; // d % 10\n if (dropTrailingZeros) {\n // Do not keep meaningless fractional trailing zeros (e.g. 15.52000 --> 15.52)\n if (digits[i] === 0 && i >= minLen) {\n digits.pop();\n }\n else {\n dropTrailingZeros = false;\n }\n }\n return d >= 10 ? 1 : 0; // Math.floor(d / 10);\n }, 0);\n if (carry) {\n digits.unshift(carry);\n parsedNumber.integerLen++;\n }\n}\nfunction parseIntAutoRadix(text) {\n const result = parseInt(text);\n if (isNaN(result)) {\n throw new Error('Invalid integer literal when parsing ' + text);\n }\n return result;\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 * @publicApi\n */\nclass NgLocalization {\n}\nNgLocalization.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgLocalization, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nNgLocalization.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgLocalization, providedIn: 'root', useFactory: (locale) => new NgLocaleLocalization(locale), deps: [{ token: LOCALE_ID }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgLocalization, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n useFactory: (locale) => new NgLocaleLocalization(locale),\n deps: [LOCALE_ID],\n }]\n }] });\n/**\n * Returns the plural category for a given value.\n * - \"=value\" when the case exists,\n * - the plural category otherwise\n */\nfunction getPluralCategory(value, cases, ngLocalization, locale) {\n let key = `=${value}`;\n if (cases.indexOf(key) > -1) {\n return key;\n }\n key = ngLocalization.getPluralCategory(value, locale);\n if (cases.indexOf(key) > -1) {\n return key;\n }\n if (cases.indexOf('other') > -1) {\n return 'other';\n }\n throw new Error(`No plural message found for value \"${value}\"`);\n}\n/**\n * Returns the plural case based on the locale\n *\n * @publicApi\n */\nclass NgLocaleLocalization extends NgLocalization {\n constructor(locale) {\n super();\n this.locale = locale;\n }\n getPluralCategory(value, locale) {\n const plural = getLocalePluralCase(locale || this.locale)(value);\n switch (plural) {\n case Plural.Zero:\n return 'zero';\n case Plural.One:\n return 'one';\n case Plural.Two:\n return 'two';\n case Plural.Few:\n return 'few';\n case Plural.Many:\n return 'many';\n default:\n return 'other';\n }\n }\n}\nNgLocaleLocalization.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgLocaleLocalization, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable });\nNgLocaleLocalization.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgLocaleLocalization });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgLocaleLocalization, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\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 * Register global data to be used internally by Angular. See the\n * [\"I18n guide\"](guide/i18n-common-format-data-locale) to know how to import additional locale\n * data.\n *\n * The signature registerLocaleData(data: any, extraData?: any) is deprecated since v5.1\n *\n * @publicApi\n */\nfunction registerLocaleData(data, localeId, extraData) {\n return ɵregisterLocaleData(data, localeId, extraData);\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 parseCookieValue(cookieStr, name) {\n name = encodeURIComponent(name);\n for (const cookie of cookieStr.split(';')) {\n const eqIndex = cookie.indexOf('=');\n const [cookieName, cookieValue] = eqIndex == -1 ? [cookie, ''] : [cookie.slice(0, eqIndex), cookie.slice(eqIndex + 1)];\n if (cookieName.trim() === name) {\n return decodeURIComponent(cookieValue);\n }\n }\n return null;\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 * @ngModule CommonModule\n *\n * @usageNotes\n * ```\n * ...\n *\n * ...\n *\n * ...\n *\n * ...\n *\n * ...\n * ```\n *\n * @description\n *\n * Adds and removes CSS classes on an HTML element.\n *\n * The CSS classes are updated as follows, depending on the type of the expression evaluation:\n * - `string` - the CSS classes listed in the string (space delimited) are added,\n * - `Array` - the CSS classes declared as Array elements are added,\n * - `Object` - keys are CSS classes that get added when the expression given in the value\n * evaluates to a truthy value, otherwise they are removed.\n *\n * @publicApi\n */\nclass NgClass {\n constructor(_iterableDiffers, _keyValueDiffers, _ngEl, _renderer) {\n this._iterableDiffers = _iterableDiffers;\n this._keyValueDiffers = _keyValueDiffers;\n this._ngEl = _ngEl;\n this._renderer = _renderer;\n this._iterableDiffer = null;\n this._keyValueDiffer = null;\n this._initialClasses = [];\n this._rawClass = null;\n }\n set klass(value) {\n this._removeClasses(this._initialClasses);\n this._initialClasses = typeof value === 'string' ? value.split(/\\s+/) : [];\n this._applyClasses(this._initialClasses);\n this._applyClasses(this._rawClass);\n }\n set ngClass(value) {\n this._removeClasses(this._rawClass);\n this._applyClasses(this._initialClasses);\n this._iterableDiffer = null;\n this._keyValueDiffer = null;\n this._rawClass = typeof value === 'string' ? value.split(/\\s+/) : value;\n if (this._rawClass) {\n if (ɵisListLikeIterable(this._rawClass)) {\n this._iterableDiffer = this._iterableDiffers.find(this._rawClass).create();\n }\n else {\n this._keyValueDiffer = this._keyValueDiffers.find(this._rawClass).create();\n }\n }\n }\n ngDoCheck() {\n if (this._iterableDiffer) {\n const iterableChanges = this._iterableDiffer.diff(this._rawClass);\n if (iterableChanges) {\n this._applyIterableChanges(iterableChanges);\n }\n }\n else if (this._keyValueDiffer) {\n const keyValueChanges = this._keyValueDiffer.diff(this._rawClass);\n if (keyValueChanges) {\n this._applyKeyValueChanges(keyValueChanges);\n }\n }\n }\n _applyKeyValueChanges(changes) {\n changes.forEachAddedItem((record) => this._toggleClass(record.key, record.currentValue));\n changes.forEachChangedItem((record) => this._toggleClass(record.key, record.currentValue));\n changes.forEachRemovedItem((record) => {\n if (record.previousValue) {\n this._toggleClass(record.key, false);\n }\n });\n }\n _applyIterableChanges(changes) {\n changes.forEachAddedItem((record) => {\n if (typeof record.item === 'string') {\n this._toggleClass(record.item, true);\n }\n else {\n throw new Error(`NgClass can only toggle CSS classes expressed as strings, got ${ɵstringify(record.item)}`);\n }\n });\n changes.forEachRemovedItem((record) => this._toggleClass(record.item, false));\n }\n /**\n * Applies a collection of CSS classes to the DOM element.\n *\n * For argument of type Set and Array CSS class names contained in those collections are always\n * added.\n * For argument of type Map CSS class name in the map's key is toggled based on the value (added\n * for truthy and removed for falsy).\n */\n _applyClasses(rawClassVal) {\n if (rawClassVal) {\n if (Array.isArray(rawClassVal) || rawClassVal instanceof Set) {\n rawClassVal.forEach((klass) => this._toggleClass(klass, true));\n }\n else {\n Object.keys(rawClassVal).forEach(klass => this._toggleClass(klass, !!rawClassVal[klass]));\n }\n }\n }\n /**\n * Removes a collection of CSS classes from the DOM element. This is mostly useful for cleanup\n * purposes.\n */\n _removeClasses(rawClassVal) {\n if (rawClassVal) {\n if (Array.isArray(rawClassVal) || rawClassVal instanceof Set) {\n rawClassVal.forEach((klass) => this._toggleClass(klass, false));\n }\n else {\n Object.keys(rawClassVal).forEach(klass => this._toggleClass(klass, false));\n }\n }\n }\n _toggleClass(klass, enabled) {\n klass = klass.trim();\n if (klass) {\n klass.split(/\\s+/g).forEach(klass => {\n if (enabled) {\n this._renderer.addClass(this._ngEl.nativeElement, klass);\n }\n else {\n this._renderer.removeClass(this._ngEl.nativeElement, klass);\n }\n });\n }\n }\n}\nNgClass.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgClass, deps: [{ token: i0.IterableDiffers }, { token: i0.KeyValueDiffers }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });\nNgClass.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.3.0\", type: NgClass, isStandalone: true, selector: \"[ngClass]\", inputs: { klass: [\"class\", \"klass\"], ngClass: \"ngClass\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgClass, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngClass]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.IterableDiffers }, { type: i0.KeyValueDiffers }, { type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { klass: [{\n type: Input,\n args: ['class']\n }], ngClass: [{\n type: Input,\n args: ['ngClass']\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 * Instantiates a {@link Component} type and inserts its Host View into the current View.\n * `NgComponentOutlet` provides a declarative approach for dynamic component creation.\n *\n * `NgComponentOutlet` requires a component type, if a falsy value is set the view will clear and\n * any existing component will be destroyed.\n *\n * @usageNotes\n *\n * ### Fine tune control\n *\n * You can control the component creation process by using the following optional attributes:\n *\n * * `ngComponentOutletInjector`: Optional custom {@link Injector} that will be used as parent for\n * the Component. Defaults to the injector of the current view container.\n *\n * * `ngComponentOutletContent`: Optional list of projectable nodes to insert into the content\n * section of the component, if it exists.\n *\n * * `ngComponentOutletNgModule`: Optional NgModule class reference to allow loading another\n * module dynamically, then loading a component from that module.\n *\n * * `ngComponentOutletNgModuleFactory`: Deprecated config option that allows providing optional\n * NgModule factory to allow loading another module dynamically, then loading a component from that\n * module. Use `ngComponentOutletNgModule` instead.\n *\n * ### Syntax\n *\n * Simple\n * ```\n * \n * ```\n *\n * Customized injector/content\n * ```\n * \n * \n * ```\n *\n * Customized NgModule reference\n * ```\n * \n * \n * ```\n *\n * ### A simple example\n *\n * {@example common/ngComponentOutlet/ts/module.ts region='SimpleExample'}\n *\n * A more complete example with additional options:\n *\n * {@example common/ngComponentOutlet/ts/module.ts region='CompleteExample'}\n *\n * @publicApi\n * @ngModule CommonModule\n */\nclass NgComponentOutlet {\n constructor(_viewContainerRef) {\n this._viewContainerRef = _viewContainerRef;\n this.ngComponentOutlet = null;\n }\n /** @nodoc */\n ngOnChanges(changes) {\n const { _viewContainerRef: viewContainerRef, ngComponentOutletNgModule: ngModule, ngComponentOutletNgModuleFactory: ngModuleFactory, } = this;\n viewContainerRef.clear();\n this._componentRef = undefined;\n if (this.ngComponentOutlet) {\n const injector = this.ngComponentOutletInjector || viewContainerRef.parentInjector;\n if (changes['ngComponentOutletNgModule'] || changes['ngComponentOutletNgModuleFactory']) {\n if (this._moduleRef)\n this._moduleRef.destroy();\n if (ngModule) {\n this._moduleRef = createNgModule(ngModule, getParentInjector(injector));\n }\n else if (ngModuleFactory) {\n this._moduleRef = ngModuleFactory.create(getParentInjector(injector));\n }\n else {\n this._moduleRef = undefined;\n }\n }\n this._componentRef = viewContainerRef.createComponent(this.ngComponentOutlet, {\n index: viewContainerRef.length,\n injector,\n ngModuleRef: this._moduleRef,\n projectableNodes: this.ngComponentOutletContent,\n });\n }\n }\n /** @nodoc */\n ngOnDestroy() {\n if (this._moduleRef)\n this._moduleRef.destroy();\n }\n}\nNgComponentOutlet.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgComponentOutlet, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });\nNgComponentOutlet.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.3.0\", type: NgComponentOutlet, isStandalone: true, selector: \"[ngComponentOutlet]\", inputs: { ngComponentOutlet: \"ngComponentOutlet\", ngComponentOutletInjector: \"ngComponentOutletInjector\", ngComponentOutletContent: \"ngComponentOutletContent\", ngComponentOutletNgModule: \"ngComponentOutletNgModule\", ngComponentOutletNgModuleFactory: \"ngComponentOutletNgModuleFactory\" }, usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgComponentOutlet, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngComponentOutlet]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { ngComponentOutlet: [{\n type: Input\n }], ngComponentOutletInjector: [{\n type: Input\n }], ngComponentOutletContent: [{\n type: Input\n }], ngComponentOutletNgModule: [{\n type: Input\n }], ngComponentOutletNgModuleFactory: [{\n type: Input\n }] } });\n// Helper function that returns an Injector instance of a parent NgModule.\nfunction getParentInjector(injector) {\n const parentNgModule = injector.get(NgModuleRef);\n return parentNgModule.injector;\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 NG_DEV_MODE = typeof ngDevMode === 'undefined' || !!ngDevMode;\n/**\n * @publicApi\n */\nclass NgForOfContext {\n constructor($implicit, ngForOf, index, count) {\n this.$implicit = $implicit;\n this.ngForOf = ngForOf;\n this.index = index;\n this.count = count;\n }\n get first() {\n return this.index === 0;\n }\n get last() {\n return this.index === this.count - 1;\n }\n get even() {\n return this.index % 2 === 0;\n }\n get odd() {\n return !this.even;\n }\n}\n/**\n * A [structural directive](guide/structural-directives) that renders\n * a template for each item in a collection.\n * The directive is placed on an element, which becomes the parent\n * of the cloned templates.\n *\n * The `ngForOf` directive is generally used in the\n * [shorthand form](guide/structural-directives#asterisk) `*ngFor`.\n * In this form, the template to be rendered for each iteration is the content\n * of an anchor element containing the directive.\n *\n * The following example shows the shorthand syntax with some options,\n * contained in an `
  • ` element.\n *\n * ```\n *
  • ...
  • \n * ```\n *\n * The shorthand form expands into a long form that uses the `ngForOf` selector\n * on an `` element.\n * The content of the `` element is the `
  • ` element that held the\n * short-form directive.\n *\n * Here is the expanded version of the short-form example.\n *\n * ```\n * \n *
  • ...
  • \n *
    \n * ```\n *\n * Angular automatically expands the shorthand syntax as it compiles the template.\n * The context for each embedded view is logically merged to the current component\n * context according to its lexical position.\n *\n * When using the shorthand syntax, Angular allows only [one structural directive\n * on an element](guide/structural-directives#one-per-element).\n * If you want to iterate conditionally, for example,\n * put the `*ngIf` on a container element that wraps the `*ngFor` element.\n * For further discussion, see\n * [Structural Directives](guide/structural-directives#one-per-element).\n *\n * @usageNotes\n *\n * ### Local variables\n *\n * `NgForOf` provides exported values that can be aliased to local variables.\n * For example:\n *\n * ```\n *
  • \n * {{i}}/{{users.length}}. {{user}} default\n *
  • \n * ```\n *\n * The following exported values can be aliased to local variables:\n *\n * - `$implicit: T`: The value of the individual items in the iterable (`ngForOf`).\n * - `ngForOf: NgIterable`: The value of the iterable expression. Useful when the expression is\n * more complex then a property access, for example when using the async pipe (`userStreams |\n * async`).\n * - `index: number`: The index of the current item in the iterable.\n * - `count: number`: The length of the iterable.\n * - `first: boolean`: True when the item is the first item in the iterable.\n * - `last: boolean`: True when the item is the last item in the iterable.\n * - `even: boolean`: True when the item has an even index in the iterable.\n * - `odd: boolean`: True when the item has an odd index in the iterable.\n *\n * ### Change propagation\n *\n * When the contents of the iterator changes, `NgForOf` makes the corresponding changes to the DOM:\n *\n * * When an item is added, a new instance of the template is added to the DOM.\n * * When an item is removed, its template instance is removed from the DOM.\n * * When items are reordered, their respective templates are reordered in the DOM.\n *\n * Angular uses object identity to track insertions and deletions within the iterator and reproduce\n * those changes in the DOM. This has important implications for animations and any stateful\n * controls that are present, such as `` elements that accept user input. Inserted rows can\n * be animated in, deleted rows can be animated out, and unchanged rows retain any unsaved state\n * such as user input.\n * For more on animations, see [Transitions and Triggers](guide/transition-and-triggers).\n *\n * The identities of elements in the iterator can change while the data does not.\n * This can happen, for example, if the iterator is produced from an RPC to the server, and that\n * RPC is re-run. Even if the data hasn't changed, the second response produces objects with\n * different identities, and Angular must tear down the entire DOM and rebuild it (as if all old\n * elements were deleted and all new elements inserted).\n *\n * To avoid this expensive operation, you can customize the default tracking algorithm.\n * by supplying the `trackBy` option to `NgForOf`.\n * `trackBy` takes a function that has two arguments: `index` and `item`.\n * If `trackBy` is given, Angular tracks changes by the return value of the function.\n *\n * @see [Structural Directives](guide/structural-directives)\n * @ngModule CommonModule\n * @publicApi\n */\nclass NgForOf {\n constructor(_viewContainer, _template, _differs) {\n this._viewContainer = _viewContainer;\n this._template = _template;\n this._differs = _differs;\n this._ngForOf = null;\n this._ngForOfDirty = true;\n this._differ = null;\n }\n /**\n * The value of the iterable expression, which can be used as a\n * [template input variable](guide/structural-directives#shorthand).\n */\n set ngForOf(ngForOf) {\n this._ngForOf = ngForOf;\n this._ngForOfDirty = true;\n }\n /**\n * Specifies a custom `TrackByFunction` to compute the identity of items in an iterable.\n *\n * If a custom `TrackByFunction` is not provided, `NgForOf` will use the item's [object\n * identity](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is)\n * as the key.\n *\n * `NgForOf` uses the computed key to associate items in an iterable with DOM elements\n * it produces for these items.\n *\n * A custom `TrackByFunction` is useful to provide good user experience in cases when items in an\n * iterable rendered using `NgForOf` have a natural identifier (for example, custom ID or a\n * primary key), and this iterable could be updated with new object instances that still\n * represent the same underlying entity (for example, when data is re-fetched from the server,\n * and the iterable is recreated and re-rendered, but most of the data is still the same).\n *\n * @see `TrackByFunction`\n */\n set ngForTrackBy(fn) {\n if (NG_DEV_MODE && fn != null && typeof fn !== 'function') {\n // TODO(vicb): use a log service once there is a public one available\n if (console && console.warn) {\n console.warn(`trackBy must be a function, but received ${JSON.stringify(fn)}. ` +\n `See https://angular.io/api/common/NgForOf#change-propagation for more information.`);\n }\n }\n this._trackByFn = fn;\n }\n get ngForTrackBy() {\n return this._trackByFn;\n }\n /**\n * A reference to the template that is stamped out for each item in the iterable.\n * @see [template reference variable](guide/template-reference-variables)\n */\n set ngForTemplate(value) {\n // TODO(TS2.1): make TemplateRef>> once we move to TS v2.1\n // The current type is too restrictive; a template that just uses index, for example,\n // should be acceptable.\n if (value) {\n this._template = value;\n }\n }\n /**\n * Applies the changes when needed.\n * @nodoc\n */\n ngDoCheck() {\n if (this._ngForOfDirty) {\n this._ngForOfDirty = false;\n // React on ngForOf changes only once all inputs have been initialized\n const value = this._ngForOf;\n if (!this._differ && value) {\n if (NG_DEV_MODE) {\n try {\n // CAUTION: this logic is duplicated for production mode below, as the try-catch\n // is only present in development builds.\n this._differ = this._differs.find(value).create(this.ngForTrackBy);\n }\n catch {\n let errorMessage = `Cannot find a differ supporting object '${value}' of type '` +\n `${getTypeName(value)}'. NgFor only supports binding to Iterables, such as Arrays.`;\n if (typeof value === 'object') {\n errorMessage += ' Did you mean to use the keyvalue pipe?';\n }\n throw new ɵRuntimeError(-2200 /* RuntimeErrorCode.NG_FOR_MISSING_DIFFER */, errorMessage);\n }\n }\n else {\n // CAUTION: this logic is duplicated for development mode above, as the try-catch\n // is only present in development builds.\n this._differ = this._differs.find(value).create(this.ngForTrackBy);\n }\n }\n }\n if (this._differ) {\n const changes = this._differ.diff(this._ngForOf);\n if (changes)\n this._applyChanges(changes);\n }\n }\n _applyChanges(changes) {\n const viewContainer = this._viewContainer;\n changes.forEachOperation((item, adjustedPreviousIndex, currentIndex) => {\n if (item.previousIndex == null) {\n // NgForOf is never \"null\" or \"undefined\" here because the differ detected\n // that a new item needs to be inserted from the iterable. This implies that\n // there is an iterable value for \"_ngForOf\".\n viewContainer.createEmbeddedView(this._template, new NgForOfContext(item.item, this._ngForOf, -1, -1), currentIndex === null ? undefined : currentIndex);\n }\n else if (currentIndex == null) {\n viewContainer.remove(adjustedPreviousIndex === null ? undefined : adjustedPreviousIndex);\n }\n else if (adjustedPreviousIndex !== null) {\n const view = viewContainer.get(adjustedPreviousIndex);\n viewContainer.move(view, currentIndex);\n applyViewChange(view, item);\n }\n });\n for (let i = 0, ilen = viewContainer.length; i < ilen; i++) {\n const viewRef = viewContainer.get(i);\n const context = viewRef.context;\n context.index = i;\n context.count = ilen;\n context.ngForOf = this._ngForOf;\n }\n changes.forEachIdentityChange((record) => {\n const viewRef = viewContainer.get(record.currentIndex);\n applyViewChange(viewRef, record);\n });\n }\n /**\n * Asserts the correct type of the context for the template that `NgForOf` will render.\n *\n * The presence of this method is a signal to the Ivy template type-check compiler that the\n * `NgForOf` structural directive renders its template with a specific context type.\n */\n static ngTemplateContextGuard(dir, ctx) {\n return true;\n }\n}\nNgForOf.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgForOf, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: i0.IterableDiffers }], target: i0.ɵɵFactoryTarget.Directive });\nNgForOf.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.3.0\", type: NgForOf, isStandalone: true, selector: \"[ngFor][ngForOf]\", inputs: { ngForOf: \"ngForOf\", ngForTrackBy: \"ngForTrackBy\", ngForTemplate: \"ngForTemplate\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgForOf, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngFor][ngForOf]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }, { type: i0.IterableDiffers }]; }, propDecorators: { ngForOf: [{\n type: Input\n }], ngForTrackBy: [{\n type: Input\n }], ngForTemplate: [{\n type: Input\n }] } });\nfunction applyViewChange(view, record) {\n view.context.$implicit = record.item;\n}\nfunction getTypeName(type) {\n return type['name'] || typeof 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 * A structural directive that conditionally includes a template based on the value of\n * an expression coerced to Boolean.\n * When the expression evaluates to true, Angular renders the template\n * provided in a `then` clause, and when false or null,\n * Angular renders the template provided in an optional `else` clause. The default\n * template for the `else` clause is blank.\n *\n * A [shorthand form](guide/structural-directives#asterisk) of the directive,\n * `*ngIf=\"condition\"`, is generally used, provided\n * as an attribute of the anchor element for the inserted template.\n * Angular expands this into a more explicit version, in which the anchor element\n * is contained in an `` element.\n *\n * Simple form with shorthand syntax:\n *\n * ```\n *
    Content to render when condition is true.
    \n * ```\n *\n * Simple form with expanded syntax:\n *\n * ```\n *
    Content to render when condition is\n * true.
    \n * ```\n *\n * Form with an \"else\" block:\n *\n * ```\n *
    Content to render when condition is true.
    \n * Content to render when condition is false.\n * ```\n *\n * Shorthand form with \"then\" and \"else\" blocks:\n *\n * ```\n *
    \n * Content to render when condition is true.\n * Content to render when condition is false.\n * ```\n *\n * Form with storing the value locally:\n *\n * ```\n *
    {{value}}
    \n * Content to render when value is null.\n * ```\n *\n * @usageNotes\n *\n * The `*ngIf` directive is most commonly used to conditionally show an inline template,\n * as seen in the following example.\n * The default `else` template is blank.\n *\n * {@example common/ngIf/ts/module.ts region='NgIfSimple'}\n *\n * ### Showing an alternative template using `else`\n *\n * To display a template when `expression` evaluates to false, use an `else` template\n * binding as shown in the following example.\n * The `else` binding points to an `` element labeled `#elseBlock`.\n * The template can be defined anywhere in the component view, but is typically placed right after\n * `ngIf` for readability.\n *\n * {@example common/ngIf/ts/module.ts region='NgIfElse'}\n *\n * ### Using an external `then` template\n *\n * In the previous example, the then-clause template is specified inline, as the content of the\n * tag that contains the `ngIf` directive. You can also specify a template that is defined\n * externally, by referencing a labeled `` element. When you do this, you can\n * change which template to use at runtime, as shown in the following example.\n *\n * {@example common/ngIf/ts/module.ts region='NgIfThenElse'}\n *\n * ### Storing a conditional result in a variable\n *\n * You might want to show a set of properties from the same object. If you are waiting\n * for asynchronous data, the object can be undefined.\n * In this case, you can use `ngIf` and store the result of the condition in a local\n * variable as shown in the following example.\n *\n * {@example common/ngIf/ts/module.ts region='NgIfAs'}\n *\n * This code uses only one `AsyncPipe`, so only one subscription is created.\n * The conditional statement stores the result of `userStream|async` in the local variable `user`.\n * You can then bind the local `user` repeatedly.\n *\n * The conditional displays the data only if `userStream` returns a value,\n * so you don't need to use the\n * safe-navigation-operator (`?.`)\n * to guard against null values when accessing properties.\n * You can display an alternative template while waiting for the data.\n *\n * ### Shorthand syntax\n *\n * The shorthand syntax `*ngIf` expands into two separate template specifications\n * for the \"then\" and \"else\" clauses. For example, consider the following shorthand statement,\n * that is meant to show a loading page while waiting for data to be loaded.\n *\n * ```\n *
    \n * ...\n *
    \n *\n * \n *
    Loading...
    \n *
    \n * ```\n *\n * You can see that the \"else\" clause references the ``\n * with the `#loading` label, and the template for the \"then\" clause\n * is provided as the content of the anchor element.\n *\n * However, when Angular expands the shorthand syntax, it creates\n * another `` tag, with `ngIf` and `ngIfElse` directives.\n * The anchor element containing the template for the \"then\" clause becomes\n * the content of this unlabeled `` tag.\n *\n * ```\n * \n *
    \n * ...\n *
    \n *
    \n *\n * \n *
    Loading...
    \n *
    \n * ```\n *\n * The presence of the implicit template object has implications for the nesting of\n * structural directives. For more on this subject, see\n * [Structural Directives](guide/structural-directives#one-per-element).\n *\n * @ngModule CommonModule\n * @publicApi\n */\nclass NgIf {\n constructor(_viewContainer, templateRef) {\n this._viewContainer = _viewContainer;\n this._context = new NgIfContext();\n this._thenTemplateRef = null;\n this._elseTemplateRef = null;\n this._thenViewRef = null;\n this._elseViewRef = null;\n this._thenTemplateRef = templateRef;\n }\n /**\n * The Boolean expression to evaluate as the condition for showing a template.\n */\n set ngIf(condition) {\n this._context.$implicit = this._context.ngIf = condition;\n this._updateView();\n }\n /**\n * A template to show if the condition expression evaluates to true.\n */\n set ngIfThen(templateRef) {\n assertTemplate('ngIfThen', templateRef);\n this._thenTemplateRef = templateRef;\n this._thenViewRef = null; // clear previous view if any.\n this._updateView();\n }\n /**\n * A template to show if the condition expression evaluates to false.\n */\n set ngIfElse(templateRef) {\n assertTemplate('ngIfElse', templateRef);\n this._elseTemplateRef = templateRef;\n this._elseViewRef = null; // clear previous view if any.\n this._updateView();\n }\n _updateView() {\n if (this._context.$implicit) {\n if (!this._thenViewRef) {\n this._viewContainer.clear();\n this._elseViewRef = null;\n if (this._thenTemplateRef) {\n this._thenViewRef =\n this._viewContainer.createEmbeddedView(this._thenTemplateRef, this._context);\n }\n }\n }\n else {\n if (!this._elseViewRef) {\n this._viewContainer.clear();\n this._thenViewRef = null;\n if (this._elseTemplateRef) {\n this._elseViewRef =\n this._viewContainer.createEmbeddedView(this._elseTemplateRef, this._context);\n }\n }\n }\n }\n /**\n * Asserts the correct type of the context for the template that `NgIf` will render.\n *\n * The presence of this method is a signal to the Ivy template type-check compiler that the\n * `NgIf` structural directive renders its template with a specific context type.\n */\n static ngTemplateContextGuard(dir, ctx) {\n return true;\n }\n}\nNgIf.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgIf, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });\nNgIf.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.3.0\", type: NgIf, isStandalone: true, selector: \"[ngIf]\", inputs: { ngIf: \"ngIf\", ngIfThen: \"ngIfThen\", ngIfElse: \"ngIfElse\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgIf, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngIf]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }]; }, propDecorators: { ngIf: [{\n type: Input\n }], ngIfThen: [{\n type: Input\n }], ngIfElse: [{\n type: Input\n }] } });\n/**\n * @publicApi\n */\nclass NgIfContext {\n constructor() {\n this.$implicit = null;\n this.ngIf = null;\n }\n}\nfunction assertTemplate(property, templateRef) {\n const isTemplateRefOrNull = !!(!templateRef || templateRef.createEmbeddedView);\n if (!isTemplateRefOrNull) {\n throw new Error(`${property} must be a TemplateRef, but received '${ɵstringify(templateRef)}'.`);\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 SwitchView {\n constructor(_viewContainerRef, _templateRef) {\n this._viewContainerRef = _viewContainerRef;\n this._templateRef = _templateRef;\n this._created = false;\n }\n create() {\n this._created = true;\n this._viewContainerRef.createEmbeddedView(this._templateRef);\n }\n destroy() {\n this._created = false;\n this._viewContainerRef.clear();\n }\n enforceState(created) {\n if (created && !this._created) {\n this.create();\n }\n else if (!created && this._created) {\n this.destroy();\n }\n }\n}\n/**\n * @ngModule CommonModule\n *\n * @description\n * The `[ngSwitch]` directive on a container specifies an expression to match against.\n * The expressions to match are provided by `ngSwitchCase` directives on views within the container.\n * - Every view that matches is rendered.\n * - If there are no matches, a view with the `ngSwitchDefault` directive is rendered.\n * - Elements within the `[NgSwitch]` statement but outside of any `NgSwitchCase`\n * or `ngSwitchDefault` directive are preserved at the location.\n *\n * @usageNotes\n * Define a container element for the directive, and specify the switch expression\n * to match against as an attribute:\n *\n * ```\n * \n * ```\n *\n * Within the container, `*ngSwitchCase` statements specify the match expressions\n * as attributes. Include `*ngSwitchDefault` as the final case.\n *\n * ```\n * \n * ...\n * ...\n * ...\n * \n * ```\n *\n * ### Usage Examples\n *\n * The following example shows how to use more than one case to display the same view:\n *\n * ```\n * \n * \n * ...\n * ...\n * ...\n * \n * ...\n * \n * ```\n *\n * The following example shows how cases can be nested:\n * ```\n * \n * ...\n * ...\n * ...\n * \n * \n * \n * \n * \n * ...\n * \n * ```\n *\n * @publicApi\n * @see `NgSwitchCase`\n * @see `NgSwitchDefault`\n * @see [Structural Directives](guide/structural-directives)\n *\n */\nclass NgSwitch {\n constructor() {\n this._defaultUsed = false;\n this._caseCount = 0;\n this._lastCaseCheckIndex = 0;\n this._lastCasesMatched = false;\n }\n set ngSwitch(newValue) {\n this._ngSwitch = newValue;\n if (this._caseCount === 0) {\n this._updateDefaultCases(true);\n }\n }\n /** @internal */\n _addCase() {\n return this._caseCount++;\n }\n /** @internal */\n _addDefault(view) {\n if (!this._defaultViews) {\n this._defaultViews = [];\n }\n this._defaultViews.push(view);\n }\n /** @internal */\n _matchCase(value) {\n const matched = value == this._ngSwitch;\n this._lastCasesMatched = this._lastCasesMatched || matched;\n this._lastCaseCheckIndex++;\n if (this._lastCaseCheckIndex === this._caseCount) {\n this._updateDefaultCases(!this._lastCasesMatched);\n this._lastCaseCheckIndex = 0;\n this._lastCasesMatched = false;\n }\n return matched;\n }\n _updateDefaultCases(useDefault) {\n if (this._defaultViews && useDefault !== this._defaultUsed) {\n this._defaultUsed = useDefault;\n for (let i = 0; i < this._defaultViews.length; i++) {\n const defaultView = this._defaultViews[i];\n defaultView.enforceState(useDefault);\n }\n }\n }\n}\nNgSwitch.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgSwitch, deps: [], target: i0.ɵɵFactoryTarget.Directive });\nNgSwitch.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.3.0\", type: NgSwitch, isStandalone: true, selector: \"[ngSwitch]\", inputs: { ngSwitch: \"ngSwitch\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgSwitch, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngSwitch]',\n standalone: true,\n }]\n }], propDecorators: { ngSwitch: [{\n type: Input\n }] } });\n/**\n * @ngModule CommonModule\n *\n * @description\n * Provides a switch case expression to match against an enclosing `ngSwitch` expression.\n * When the expressions match, the given `NgSwitchCase` template is rendered.\n * If multiple match expressions match the switch expression value, all of them are displayed.\n *\n * @usageNotes\n *\n * Within a switch container, `*ngSwitchCase` statements specify the match expressions\n * as attributes. Include `*ngSwitchDefault` as the final case.\n *\n * ```\n * \n * ...\n * ...\n * ...\n * \n * ```\n *\n * Each switch-case statement contains an in-line HTML template or template reference\n * that defines the subtree to be selected if the value of the match expression\n * matches the value of the switch expression.\n *\n * Unlike JavaScript, which uses strict equality, Angular uses loose equality.\n * This means that the empty string, `\"\"` matches 0.\n *\n * @publicApi\n * @see `NgSwitch`\n * @see `NgSwitchDefault`\n *\n */\nclass NgSwitchCase {\n constructor(viewContainer, templateRef, ngSwitch) {\n this.ngSwitch = ngSwitch;\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !ngSwitch) {\n throwNgSwitchProviderNotFoundError('ngSwitchCase', 'NgSwitchCase');\n }\n ngSwitch._addCase();\n this._view = new SwitchView(viewContainer, templateRef);\n }\n /**\n * Performs case matching. For internal use only.\n * @nodoc\n */\n ngDoCheck() {\n this._view.enforceState(this.ngSwitch._matchCase(this.ngSwitchCase));\n }\n}\nNgSwitchCase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgSwitchCase, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: NgSwitch, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });\nNgSwitchCase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.3.0\", type: NgSwitchCase, isStandalone: true, selector: \"[ngSwitchCase]\", inputs: { ngSwitchCase: \"ngSwitchCase\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgSwitchCase, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngSwitchCase]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }, { type: NgSwitch, decorators: [{\n type: Optional\n }, {\n type: Host\n }] }]; }, propDecorators: { ngSwitchCase: [{\n type: Input\n }] } });\n/**\n * @ngModule CommonModule\n *\n * @description\n *\n * Creates a view that is rendered when no `NgSwitchCase` expressions\n * match the `NgSwitch` expression.\n * This statement should be the final case in an `NgSwitch`.\n *\n * @publicApi\n * @see `NgSwitch`\n * @see `NgSwitchCase`\n *\n */\nclass NgSwitchDefault {\n constructor(viewContainer, templateRef, ngSwitch) {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && !ngSwitch) {\n throwNgSwitchProviderNotFoundError('ngSwitchDefault', 'NgSwitchDefault');\n }\n ngSwitch._addDefault(new SwitchView(viewContainer, templateRef));\n }\n}\nNgSwitchDefault.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgSwitchDefault, deps: [{ token: i0.ViewContainerRef }, { token: i0.TemplateRef }, { token: NgSwitch, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });\nNgSwitchDefault.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.3.0\", type: NgSwitchDefault, isStandalone: true, selector: \"[ngSwitchDefault]\", ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgSwitchDefault, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngSwitchDefault]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i0.TemplateRef }, { type: NgSwitch, decorators: [{\n type: Optional\n }, {\n type: Host\n }] }]; } });\nfunction throwNgSwitchProviderNotFoundError(attrName, directiveName) {\n throw new ɵRuntimeError(2000 /* RuntimeErrorCode.PARENT_NG_SWITCH_NOT_FOUND */, `An element with the \"${attrName}\" attribute ` +\n `(matching the \"${directiveName}\" directive) must be located inside an element with the \"ngSwitch\" attribute ` +\n `(matching \"NgSwitch\" directive)`);\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 * @ngModule CommonModule\n *\n * @usageNotes\n * ```\n * \n * there is nothing\n * there is one\n * there are a few\n * \n * ```\n *\n * @description\n *\n * Adds / removes DOM sub-trees based on a numeric value. Tailored for pluralization.\n *\n * Displays DOM sub-trees that match the switch expression value, or failing that, DOM sub-trees\n * that match the switch expression's pluralization category.\n *\n * To use this directive you must provide a container element that sets the `[ngPlural]` attribute\n * to a switch expression. Inner elements with a `[ngPluralCase]` will display based on their\n * expression:\n * - if `[ngPluralCase]` is set to a value starting with `=`, it will only display if the value\n * matches the switch expression exactly,\n * - otherwise, the view will be treated as a \"category match\", and will only display if exact\n * value matches aren't found and the value maps to its category for the defined locale.\n *\n * See http://cldr.unicode.org/index/cldr-spec/plural-rules\n *\n * @publicApi\n */\nclass NgPlural {\n constructor(_localization) {\n this._localization = _localization;\n this._caseViews = {};\n }\n set ngPlural(value) {\n this._switchValue = value;\n this._updateView();\n }\n addCase(value, switchView) {\n this._caseViews[value] = switchView;\n }\n _updateView() {\n this._clearViews();\n const cases = Object.keys(this._caseViews);\n const key = getPluralCategory(this._switchValue, cases, this._localization);\n this._activateView(this._caseViews[key]);\n }\n _clearViews() {\n if (this._activeView)\n this._activeView.destroy();\n }\n _activateView(view) {\n if (view) {\n this._activeView = view;\n this._activeView.create();\n }\n }\n}\nNgPlural.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgPlural, deps: [{ token: NgLocalization }], target: i0.ɵɵFactoryTarget.Directive });\nNgPlural.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.3.0\", type: NgPlural, isStandalone: true, selector: \"[ngPlural]\", inputs: { ngPlural: \"ngPlural\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgPlural, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngPlural]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: NgLocalization }]; }, propDecorators: { ngPlural: [{\n type: Input\n }] } });\n/**\n * @ngModule CommonModule\n *\n * @description\n *\n * Creates a view that will be added/removed from the parent {@link NgPlural} when the\n * given expression matches the plural expression according to CLDR rules.\n *\n * @usageNotes\n * ```\n * \n * ...\n * ...\n * \n *```\n *\n * See {@link NgPlural} for more details and example.\n *\n * @publicApi\n */\nclass NgPluralCase {\n constructor(value, template, viewContainer, ngPlural) {\n this.value = value;\n const isANumber = !isNaN(Number(value));\n ngPlural.addCase(isANumber ? `=${value}` : value, new SwitchView(viewContainer, template));\n }\n}\nNgPluralCase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgPluralCase, deps: [{ token: 'ngPluralCase', attribute: true }, { token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: NgPlural, host: true }], target: i0.ɵɵFactoryTarget.Directive });\nNgPluralCase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.3.0\", type: NgPluralCase, isStandalone: true, selector: \"[ngPluralCase]\", ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgPluralCase, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngPluralCase]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Attribute,\n args: ['ngPluralCase']\n }] }, { type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: NgPlural, decorators: [{\n type: Host\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 * @ngModule CommonModule\n *\n * @usageNotes\n *\n * Set the font of the containing element to the result of an expression.\n *\n * ```\n * ...\n * ```\n *\n * Set the width of the containing element to a pixel value returned by an expression.\n *\n * ```\n * ...\n * ```\n *\n * Set a collection of style values using an expression that returns key-value pairs.\n *\n * ```\n * ...\n * ```\n *\n * @description\n *\n * An attribute directive that updates styles for the containing HTML element.\n * Sets one or more style properties, specified as colon-separated key-value pairs.\n * The key is a style name, with an optional `.` suffix\n * (such as 'top.px', 'font-style.em').\n * The value is an expression to be evaluated.\n * The resulting non-null value, expressed in the given unit,\n * is assigned to the given style property.\n * If the result of evaluation is null, the corresponding style is removed.\n *\n * @publicApi\n */\nclass NgStyle {\n constructor(_ngEl, _differs, _renderer) {\n this._ngEl = _ngEl;\n this._differs = _differs;\n this._renderer = _renderer;\n this._ngStyle = null;\n this._differ = null;\n }\n set ngStyle(values) {\n this._ngStyle = values;\n if (!this._differ && values) {\n this._differ = this._differs.find(values).create();\n }\n }\n ngDoCheck() {\n if (this._differ) {\n const changes = this._differ.diff(this._ngStyle);\n if (changes) {\n this._applyChanges(changes);\n }\n }\n }\n _setStyle(nameAndUnit, value) {\n const [name, unit] = nameAndUnit.split('.');\n const flags = name.indexOf('-') === -1 ? undefined : RendererStyleFlags2.DashCase;\n if (value != null) {\n this._renderer.setStyle(this._ngEl.nativeElement, name, unit ? `${value}${unit}` : value, flags);\n }\n else {\n this._renderer.removeStyle(this._ngEl.nativeElement, name, flags);\n }\n }\n _applyChanges(changes) {\n changes.forEachRemovedItem((record) => this._setStyle(record.key, null));\n changes.forEachAddedItem((record) => this._setStyle(record.key, record.currentValue));\n changes.forEachChangedItem((record) => this._setStyle(record.key, record.currentValue));\n }\n}\nNgStyle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgStyle, deps: [{ token: i0.ElementRef }, { token: i0.KeyValueDiffers }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });\nNgStyle.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.3.0\", type: NgStyle, isStandalone: true, selector: \"[ngStyle]\", inputs: { ngStyle: \"ngStyle\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgStyle, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngStyle]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.KeyValueDiffers }, { type: i0.Renderer2 }]; }, propDecorators: { ngStyle: [{\n type: Input,\n args: ['ngStyle']\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 * @ngModule CommonModule\n *\n * @description\n *\n * Inserts an embedded view from a prepared `TemplateRef`.\n *\n * You can attach a context object to the `EmbeddedViewRef` by setting `[ngTemplateOutletContext]`.\n * `[ngTemplateOutletContext]` should be an object, the object's keys will be available for binding\n * by the local template `let` declarations.\n *\n * @usageNotes\n * ```\n * \n * ```\n *\n * Using the key `$implicit` in the context object will set its value as default.\n *\n * ### Example\n *\n * {@example common/ngTemplateOutlet/ts/module.ts region='NgTemplateOutlet'}\n *\n * @publicApi\n */\nclass NgTemplateOutlet {\n constructor(_viewContainerRef) {\n this._viewContainerRef = _viewContainerRef;\n this._viewRef = null;\n /**\n * A context object to attach to the {@link EmbeddedViewRef}. This should be an\n * object, the object's keys will be available for binding by the local template `let`\n * declarations.\n * Using the key `$implicit` in the context object will set its value as default.\n */\n this.ngTemplateOutletContext = null;\n /**\n * A string defining the template reference and optionally the context object for the template.\n */\n this.ngTemplateOutlet = null;\n /** Injector to be used within the embedded view. */\n this.ngTemplateOutletInjector = null;\n }\n /** @nodoc */\n ngOnChanges(changes) {\n if (changes['ngTemplateOutlet'] || changes['ngTemplateOutletInjector']) {\n const viewContainerRef = this._viewContainerRef;\n if (this._viewRef) {\n viewContainerRef.remove(viewContainerRef.indexOf(this._viewRef));\n }\n if (this.ngTemplateOutlet) {\n const { ngTemplateOutlet: template, ngTemplateOutletContext: context, ngTemplateOutletInjector: injector } = this;\n this._viewRef = viewContainerRef.createEmbeddedView(template, context, injector ? { injector } : undefined);\n }\n else {\n this._viewRef = null;\n }\n }\n else if (this._viewRef && changes['ngTemplateOutletContext'] && this.ngTemplateOutletContext) {\n this._viewRef.context = this.ngTemplateOutletContext;\n }\n }\n}\nNgTemplateOutlet.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgTemplateOutlet, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });\nNgTemplateOutlet.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.3.0\", type: NgTemplateOutlet, isStandalone: true, selector: \"[ngTemplateOutlet]\", inputs: { ngTemplateOutletContext: \"ngTemplateOutletContext\", ngTemplateOutlet: \"ngTemplateOutlet\", ngTemplateOutletInjector: \"ngTemplateOutletInjector\" }, usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgTemplateOutlet, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngTemplateOutlet]',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { ngTemplateOutletContext: [{\n type: Input\n }], ngTemplateOutlet: [{\n type: Input\n }], ngTemplateOutletInjector: [{\n type: Input\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 collection of Angular directives that are likely to be used in each and every Angular\n * application.\n */\nconst COMMON_DIRECTIVES = [\n NgClass,\n NgComponentOutlet,\n NgForOf,\n NgIf,\n NgTemplateOutlet,\n NgStyle,\n NgSwitch,\n NgSwitchCase,\n NgSwitchDefault,\n NgPlural,\n NgPluralCase,\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 invalidPipeArgumentError(type, value) {\n return new ɵRuntimeError(2100 /* RuntimeErrorCode.INVALID_PIPE_ARGUMENT */, ngDevMode && `InvalidPipeArgument: '${value}' for pipe '${ɵstringify(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 */\nclass SubscribableStrategy {\n createSubscription(async, updateLatestValue) {\n return async.subscribe({\n next: updateLatestValue,\n error: (e) => {\n throw e;\n }\n });\n }\n dispose(subscription) {\n subscription.unsubscribe();\n }\n}\nclass PromiseStrategy {\n createSubscription(async, updateLatestValue) {\n return async.then(updateLatestValue, e => {\n throw e;\n });\n }\n dispose(subscription) { }\n}\nconst _promiseStrategy = new PromiseStrategy();\nconst _subscribableStrategy = new SubscribableStrategy();\n/**\n * @ngModule CommonModule\n * @description\n *\n * Unwraps a value from an asynchronous primitive.\n *\n * The `async` pipe subscribes to an `Observable` or `Promise` and returns the latest value it has\n * emitted. When a new value is emitted, the `async` pipe marks the component to be checked for\n * changes. When the component gets destroyed, the `async` pipe unsubscribes automatically to avoid\n * potential memory leaks. When the reference of the expression changes, the `async` pipe\n * automatically unsubscribes from the old `Observable` or `Promise` and subscribes to the new one.\n *\n * @usageNotes\n *\n * ### Examples\n *\n * This example binds a `Promise` to the view. Clicking the `Resolve` button resolves the\n * promise.\n *\n * {@example common/pipes/ts/async_pipe.ts region='AsyncPipePromise'}\n *\n * It's also possible to use `async` with Observables. The example below binds the `time` Observable\n * to the view. The Observable continuously updates the view with the current time.\n *\n * {@example common/pipes/ts/async_pipe.ts region='AsyncPipeObservable'}\n *\n * @publicApi\n */\nclass AsyncPipe {\n constructor(ref) {\n this._latestValue = null;\n this._subscription = null;\n this._obj = null;\n this._strategy = null;\n // Assign `ref` into `this._ref` manually instead of declaring `_ref` in the constructor\n // parameter list, as the type of `this._ref` includes `null` unlike the type of `ref`.\n this._ref = ref;\n }\n ngOnDestroy() {\n if (this._subscription) {\n this._dispose();\n }\n // Clear the `ChangeDetectorRef` and its association with the view data, to mitigate\n // potential memory leaks in Observables that could otherwise cause the view data to\n // be retained.\n // https://github.com/angular/angular/issues/17624\n this._ref = null;\n }\n transform(obj) {\n if (!this._obj) {\n if (obj) {\n this._subscribe(obj);\n }\n return this._latestValue;\n }\n if (obj !== this._obj) {\n this._dispose();\n return this.transform(obj);\n }\n return this._latestValue;\n }\n _subscribe(obj) {\n this._obj = obj;\n this._strategy = this._selectStrategy(obj);\n this._subscription = this._strategy.createSubscription(obj, (value) => this._updateLatestValue(obj, value));\n }\n _selectStrategy(obj) {\n if (ɵisPromise(obj)) {\n return _promiseStrategy;\n }\n if (ɵisSubscribable(obj)) {\n return _subscribableStrategy;\n }\n throw invalidPipeArgumentError(AsyncPipe, obj);\n }\n _dispose() {\n // Note: `dispose` is only called if a subscription has been initialized before, indicating\n // that `this._strategy` is also available.\n this._strategy.dispose(this._subscription);\n this._latestValue = null;\n this._subscription = null;\n this._obj = null;\n }\n _updateLatestValue(async, value) {\n if (async === this._obj) {\n this._latestValue = value;\n // Note: `this._ref` is only cleared in `ngOnDestroy` so is known to be available when a\n // value is being updated.\n this._ref.markForCheck();\n }\n }\n}\nAsyncPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: AsyncPipe, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Pipe });\nAsyncPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.3.0\", ngImport: i0, type: AsyncPipe, isStandalone: true, name: \"async\", pure: false });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: AsyncPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'async',\n pure: false,\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; } });\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 * Transforms text to all lower case.\n *\n * @see `UpperCasePipe`\n * @see `TitleCasePipe`\n * @usageNotes\n *\n * The following example defines a view that allows the user to enter\n * text, and then uses the pipe to convert the input text to all lower case.\n *\n * \n *\n * @ngModule CommonModule\n * @publicApi\n */\nclass LowerCasePipe {\n transform(value) {\n if (value == null)\n return null;\n if (typeof value !== 'string') {\n throw invalidPipeArgumentError(LowerCasePipe, value);\n }\n return value.toLowerCase();\n }\n}\nLowerCasePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: LowerCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\nLowerCasePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.3.0\", ngImport: i0, type: LowerCasePipe, isStandalone: true, name: \"lowercase\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: LowerCasePipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'lowercase',\n standalone: true,\n }]\n }] });\n//\n// Regex below matches any Unicode word and number compatible with ES5. In ES2018 the same result\n// can be achieved by using /[0-9\\p{L}]\\S*/gu and also known as Unicode Property Escapes\n// (https://2ality.com/2017/07/regexp-unicode-property-escapes.html). Since there is no\n// transpilation of this functionality down to ES5 without external tool, the only solution is\n// to use already transpiled form. Example can be found here -\n// https://mothereff.in/regexpu#input=var+regex+%3D+%2F%5B0-9%5Cp%7BL%7D%5D%5CS*%2Fgu%3B%0A%0A&unicodePropertyEscape=1\n//\nconst unicodeWordMatch = /(?:[0-9A-Za-z\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u0870-\\u0887\\u0889-\\u088E\\u08A0-\\u08C9\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C5D\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D04-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16F1-\\u16F8\\u1700-\\u1711\\u171F-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1878\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4C\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5\\u1CF6\\u1CFA\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u31A0-\\u31BF\\u31F0-\\u31FF\\u3400-\\u4DBF\\u4E00-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7CA\\uA7D0\\uA7D1\\uA7D3\\uA7D5-\\uA7D9\\uA7F2-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA8FE\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB69\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF2D-\\uDF40\\uDF42-\\uDF49\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF]|\\uD801[\\uDC00-\\uDC9D\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDD70-\\uDD7A\\uDD7C-\\uDD8A\\uDD8C-\\uDD92\\uDD94\\uDD95\\uDD97-\\uDDA1\\uDDA3-\\uDDB1\\uDDB3-\\uDDB9\\uDDBB\\uDDBC\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67\\uDF80-\\uDF85\\uDF87-\\uDFB0\\uDFB2-\\uDFBA]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE35\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2\\uDD00-\\uDD23\\uDE80-\\uDEA9\\uDEB0\\uDEB1\\uDF00-\\uDF1C\\uDF27\\uDF30-\\uDF45\\uDF70-\\uDF81\\uDFB0-\\uDFC4\\uDFE0-\\uDFF6]|\\uD804[\\uDC03-\\uDC37\\uDC71\\uDC72\\uDC75\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD44\\uDD47\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC5F-\\uDC61\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDEB8\\uDF00-\\uDF1A\\uDF40-\\uDF46]|\\uD806[\\uDC00-\\uDC2B\\uDCA0-\\uDCDF\\uDCFF-\\uDD06\\uDD09\\uDD0C-\\uDD13\\uDD15\\uDD16\\uDD18-\\uDD2F\\uDD3F\\uDD41\\uDDA0-\\uDDA7\\uDDAA-\\uDDD0\\uDDE1\\uDDE3\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE50\\uDE5C-\\uDE89\\uDE9D\\uDEB0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC72-\\uDC8F\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD30\\uDD46\\uDD60-\\uDD65\\uDD67\\uDD68\\uDD6A-\\uDD89\\uDD98\\uDEE0-\\uDEF2\\uDFB0]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC80-\\uDD43]|\\uD80B[\\uDF90-\\uDFF0]|[\\uD80C\\uD81C-\\uD820\\uD822\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879\\uD880-\\uD883][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE70-\\uDEBE\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDE40-\\uDE7F\\uDF00-\\uDF4A\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1\\uDFE3]|\\uD821[\\uDC00-\\uDFF7]|\\uD823[\\uDC00-\\uDCD5\\uDD00-\\uDD08]|\\uD82B[\\uDFF0-\\uDFF3\\uDFF5-\\uDFFB\\uDFFD\\uDFFE]|\\uD82C[\\uDC00-\\uDD22\\uDD50-\\uDD52\\uDD64-\\uDD67\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD837[\\uDF00-\\uDF1E]|\\uD838[\\uDD00-\\uDD2C\\uDD37-\\uDD3D\\uDD4E\\uDE90-\\uDEAD\\uDEC0-\\uDEEB]|\\uD839[\\uDFE0-\\uDFE6\\uDFE8-\\uDFEB\\uDFED\\uDFEE\\uDFF0-\\uDFFE]|\\uD83A[\\uDC00-\\uDCC4\\uDD00-\\uDD43\\uDD4B]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDEDF\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF38\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]|\\uD884[\\uDC00-\\uDF4A])\\S*/g;\n/**\n * Transforms text to title case.\n * Capitalizes the first letter of each word and transforms the\n * rest of the word to lower case.\n * Words are delimited by any whitespace character, such as a space, tab, or line-feed character.\n *\n * @see `LowerCasePipe`\n * @see `UpperCasePipe`\n *\n * @usageNotes\n * The following example shows the result of transforming various strings into title case.\n *\n * \n *\n * @ngModule CommonModule\n * @publicApi\n */\nclass TitleCasePipe {\n transform(value) {\n if (value == null)\n return null;\n if (typeof value !== 'string') {\n throw invalidPipeArgumentError(TitleCasePipe, value);\n }\n return value.replace(unicodeWordMatch, (txt => txt[0].toUpperCase() + txt.slice(1).toLowerCase()));\n }\n}\nTitleCasePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: TitleCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\nTitleCasePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.3.0\", ngImport: i0, type: TitleCasePipe, isStandalone: true, name: \"titlecase\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: TitleCasePipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'titlecase',\n standalone: true,\n }]\n }] });\n/**\n * Transforms text to all upper case.\n * @see `LowerCasePipe`\n * @see `TitleCasePipe`\n *\n * @ngModule CommonModule\n * @publicApi\n */\nclass UpperCasePipe {\n transform(value) {\n if (value == null)\n return null;\n if (typeof value !== 'string') {\n throw invalidPipeArgumentError(UpperCasePipe, value);\n }\n return value.toUpperCase();\n }\n}\nUpperCasePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: UpperCasePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\nUpperCasePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.3.0\", ngImport: i0, type: UpperCasePipe, isStandalone: true, name: \"uppercase\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: UpperCasePipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'uppercase',\n standalone: true,\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 * Optionally-provided default timezone to use for all instances of `DatePipe` (such as `'+0430'`).\n * If the value isn't provided, the `DatePipe` will use the end-user's local system timezone.\n */\nconst DATE_PIPE_DEFAULT_TIMEZONE = new InjectionToken('DATE_PIPE_DEFAULT_TIMEZONE');\n// clang-format off\n/**\n * @ngModule CommonModule\n * @description\n *\n * Formats a date value according to locale rules.\n *\n * `DatePipe` is executed only when it detects a pure change to the input value.\n * A pure change is either a change to a primitive input value\n * (such as `String`, `Number`, `Boolean`, or `Symbol`),\n * or a changed object reference (such as `Date`, `Array`, `Function`, or `Object`).\n *\n * Note that mutating a `Date` object does not cause the pipe to be rendered again.\n * To ensure that the pipe is executed, you must create a new `Date` object.\n *\n * Only the `en-US` locale data comes with Angular. To localize dates\n * in another language, you must import the corresponding locale data.\n * See the [I18n guide](guide/i18n-common-format-data-locale) for more information.\n *\n * The time zone of the formatted value can be specified either by passing it in as the second\n * parameter of the pipe, or by setting the default through the `DATE_PIPE_DEFAULT_TIMEZONE`\n * injection token. The value that is passed in as the second parameter takes precedence over\n * the one defined using the injection token.\n *\n * @see `formatDate()`\n *\n *\n * @usageNotes\n *\n * The result of this pipe is not reevaluated when the input is mutated. To avoid the need to\n * reformat the date on every change-detection cycle, treat the date as an immutable object\n * and change the reference when the pipe needs to run again.\n *\n * ### Pre-defined format options\n *\n * | Option | Equivalent to | Examples (given in `en-US` locale) |\n * |---------------|-------------------------------------|-------------------------------------------------|\n * | `'short'` | `'M/d/yy, h:mm a'` | `6/15/15, 9:03 AM` |\n * | `'medium'` | `'MMM d, y, h:mm:ss a'` | `Jun 15, 2015, 9:03:01 AM` |\n * | `'long'` | `'MMMM d, y, h:mm:ss a z'` | `June 15, 2015 at 9:03:01 AM GMT+1` |\n * | `'full'` | `'EEEE, MMMM d, y, h:mm:ss a zzzz'` | `Monday, June 15, 2015 at 9:03:01 AM GMT+01:00` |\n * | `'shortDate'` | `'M/d/yy'` | `6/15/15` |\n * | `'mediumDate'`| `'MMM d, y'` | `Jun 15, 2015` |\n * | `'longDate'` | `'MMMM d, y'` | `June 15, 2015` |\n * | `'fullDate'` | `'EEEE, MMMM d, y'` | `Monday, June 15, 2015` |\n * | `'shortTime'` | `'h:mm a'` | `9:03 AM` |\n * | `'mediumTime'`| `'h:mm:ss a'` | `9:03:01 AM` |\n * | `'longTime'` | `'h:mm:ss a z'` | `9:03:01 AM GMT+1` |\n * | `'fullTime'` | `'h:mm:ss a zzzz'` | `9:03:01 AM GMT+01:00` |\n *\n * ### Custom format options\n *\n * You can construct a format string using symbols to specify the components\n * of a date-time value, as described in the following table.\n * Format details depend on the locale.\n * Fields marked with (*) are only available in the extra data set for the given locale.\n *\n * | Field type | Format | Description | Example Value |\n * |-------------------- |-------------|---------------------------------------------------------------|------------------------------------------------------------|\n * | Era | G, GG & GGG | Abbreviated | AD |\n * | | GGGG | Wide | Anno Domini |\n * | | GGGGG | Narrow | A |\n * | Year | y | Numeric: minimum digits | 2, 20, 201, 2017, 20173 |\n * | | yy | Numeric: 2 digits + zero padded | 02, 20, 01, 17, 73 |\n * | | yyy | Numeric: 3 digits + zero padded | 002, 020, 201, 2017, 20173 |\n * | | yyyy | Numeric: 4 digits or more + zero padded | 0002, 0020, 0201, 2017, 20173 |\n * | Week-numbering year | Y | Numeric: minimum digits | 2, 20, 201, 2017, 20173 |\n * | | YY | Numeric: 2 digits + zero padded | 02, 20, 01, 17, 73 |\n * | | YYY | Numeric: 3 digits + zero padded | 002, 020, 201, 2017, 20173 |\n * | | YYYY | Numeric: 4 digits or more + zero padded | 0002, 0020, 0201, 2017, 20173 |\n * | Month | M | Numeric: 1 digit | 9, 12 |\n * | | MM | Numeric: 2 digits + zero padded | 09, 12 |\n * | | MMM | Abbreviated | Sep |\n * | | MMMM | Wide | September |\n * | | MMMMM | Narrow | S |\n * | Month standalone | L | Numeric: 1 digit | 9, 12 |\n * | | LL | Numeric: 2 digits + zero padded | 09, 12 |\n * | | LLL | Abbreviated | Sep |\n * | | LLLL | Wide | September |\n * | | LLLLL | Narrow | S |\n * | Week of year | w | Numeric: minimum digits | 1... 53 |\n * | | ww | Numeric: 2 digits + zero padded | 01... 53 |\n * | Week of month | W | Numeric: 1 digit | 1... 5 |\n * | Day of month | d | Numeric: minimum digits | 1 |\n * | | dd | Numeric: 2 digits + zero padded | 01 |\n * | Week day | E, EE & EEE | Abbreviated | Tue |\n * | | EEEE | Wide | Tuesday |\n * | | EEEEE | Narrow | T |\n * | | EEEEEE | Short | Tu |\n * | Week day standalone | c, cc | Numeric: 1 digit | 2 |\n * | | ccc | Abbreviated | Tue |\n * | | cccc | Wide | Tuesday |\n * | | ccccc | Narrow | T |\n * | | cccccc | Short | Tu |\n * | Period | a, aa & aaa | Abbreviated | am/pm or AM/PM |\n * | | aaaa | Wide (fallback to `a` when missing) | ante meridiem/post meridiem |\n * | | aaaaa | Narrow | a/p |\n * | Period* | B, BB & BBB | Abbreviated | mid. |\n * | | BBBB | Wide | am, pm, midnight, noon, morning, afternoon, evening, night |\n * | | BBBBB | Narrow | md |\n * | Period standalone* | b, bb & bbb | Abbreviated | mid. |\n * | | bbbb | Wide | am, pm, midnight, noon, morning, afternoon, evening, night |\n * | | bbbbb | Narrow | md |\n * | Hour 1-12 | h | Numeric: minimum digits | 1, 12 |\n * | | hh | Numeric: 2 digits + zero padded | 01, 12 |\n * | Hour 0-23 | H | Numeric: minimum digits | 0, 23 |\n * | | HH | Numeric: 2 digits + zero padded | 00, 23 |\n * | Minute | m | Numeric: minimum digits | 8, 59 |\n * | | mm | Numeric: 2 digits + zero padded | 08, 59 |\n * | Second | s | Numeric: minimum digits | 0... 59 |\n * | | ss | Numeric: 2 digits + zero padded | 00... 59 |\n * | Fractional seconds | S | Numeric: 1 digit | 0... 9 |\n * | | SS | Numeric: 2 digits + zero padded | 00... 99 |\n * | | SSS | Numeric: 3 digits + zero padded (= milliseconds) | 000... 999 |\n * | Zone | z, zz & zzz | Short specific non location format (fallback to O) | GMT-8 |\n * | | zzzz | Long specific non location format (fallback to OOOO) | GMT-08:00 |\n * | | Z, ZZ & ZZZ | ISO8601 basic format | -0800 |\n * | | ZZZZ | Long localized GMT format | GMT-8:00 |\n * | | ZZZZZ | ISO8601 extended format + Z indicator for offset 0 (= XXXXX) | -08:00 |\n * | | O, OO & OOO | Short localized GMT format | GMT-8 |\n * | | OOOO | Long localized GMT format | GMT-08:00 |\n *\n *\n * ### Format examples\n *\n * These examples transform a date into various formats,\n * assuming that `dateObj` is a JavaScript `Date` object for\n * year: 2015, month: 6, day: 15, hour: 21, minute: 43, second: 11,\n * given in the local time for the `en-US` locale.\n *\n * ```\n * {{ dateObj | date }} // output is 'Jun 15, 2015'\n * {{ dateObj | date:'medium' }} // output is 'Jun 15, 2015, 9:43:11 PM'\n * {{ dateObj | date:'shortTime' }} // output is '9:43 PM'\n * {{ dateObj | date:'mm:ss' }} // output is '43:11'\n * ```\n *\n * ### Usage example\n *\n * The following component uses a date pipe to display the current date in different formats.\n *\n * ```\n * @Component({\n * selector: 'date-pipe',\n * template: `
    \n *

    Today is {{today | date}}

    \n *

    Or if you prefer, {{today | date:'fullDate'}}

    \n *

    The time is {{today | date:'h:mm a z'}}

    \n *
    `\n * })\n * // Get the current date and time as a date-time value.\n * export class DatePipeComponent {\n * today: number = Date.now();\n * }\n * ```\n *\n * @publicApi\n */\n// clang-format on\nclass DatePipe {\n constructor(locale, defaultTimezone) {\n this.locale = locale;\n this.defaultTimezone = defaultTimezone;\n }\n transform(value, format = 'mediumDate', timezone, locale) {\n if (value == null || value === '' || value !== value)\n return null;\n try {\n return formatDate(value, format, locale || this.locale, timezone ?? this.defaultTimezone ?? undefined);\n }\n catch (error) {\n throw invalidPipeArgumentError(DatePipe, error.message);\n }\n }\n}\nDatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: DatePipe, deps: [{ token: LOCALE_ID }, { token: DATE_PIPE_DEFAULT_TIMEZONE, optional: true }], target: i0.ɵɵFactoryTarget.Pipe });\nDatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.3.0\", ngImport: i0, type: DatePipe, isStandalone: true, name: \"date\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: DatePipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'date',\n pure: true,\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }, { type: undefined, decorators: [{\n type: Inject,\n args: [DATE_PIPE_DEFAULT_TIMEZONE]\n }, {\n type: Optional\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 _INTERPOLATION_REGEXP = /#/g;\n/**\n * @ngModule CommonModule\n * @description\n *\n * Maps a value to a string that pluralizes the value according to locale rules.\n *\n * @usageNotes\n *\n * ### Example\n *\n * {@example common/pipes/ts/i18n_pipe.ts region='I18nPluralPipeComponent'}\n *\n * @publicApi\n */\nclass I18nPluralPipe {\n constructor(_localization) {\n this._localization = _localization;\n }\n /**\n * @param value the number to be formatted\n * @param pluralMap an object that mimics the ICU format, see\n * https://unicode-org.github.io/icu/userguide/format_parse/messages/.\n * @param locale a `string` defining the locale to use (uses the current {@link LOCALE_ID} by\n * default).\n */\n transform(value, pluralMap, locale) {\n if (value == null)\n return '';\n if (typeof pluralMap !== 'object' || pluralMap === null) {\n throw invalidPipeArgumentError(I18nPluralPipe, pluralMap);\n }\n const key = getPluralCategory(value, Object.keys(pluralMap), this._localization, locale);\n return pluralMap[key].replace(_INTERPOLATION_REGEXP, value.toString());\n }\n}\nI18nPluralPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: I18nPluralPipe, deps: [{ token: NgLocalization }], target: i0.ɵɵFactoryTarget.Pipe });\nI18nPluralPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.3.0\", ngImport: i0, type: I18nPluralPipe, isStandalone: true, name: \"i18nPlural\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: I18nPluralPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'i18nPlural',\n pure: true,\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: NgLocalization }]; } });\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 * @ngModule CommonModule\n * @description\n *\n * Generic selector that displays the string that matches the current value.\n *\n * If none of the keys of the `mapping` match the `value`, then the content\n * of the `other` key is returned when present, otherwise an empty string is returned.\n *\n * @usageNotes\n *\n * ### Example\n *\n * {@example common/pipes/ts/i18n_pipe.ts region='I18nSelectPipeComponent'}\n *\n * @publicApi\n */\nclass I18nSelectPipe {\n /**\n * @param value a string to be internationalized.\n * @param mapping an object that indicates the text that should be displayed\n * for different values of the provided `value`.\n */\n transform(value, mapping) {\n if (value == null)\n return '';\n if (typeof mapping !== 'object' || typeof value !== 'string') {\n throw invalidPipeArgumentError(I18nSelectPipe, mapping);\n }\n if (mapping.hasOwnProperty(value)) {\n return mapping[value];\n }\n if (mapping.hasOwnProperty('other')) {\n return mapping['other'];\n }\n return '';\n }\n}\nI18nSelectPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: I18nSelectPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\nI18nSelectPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.3.0\", ngImport: i0, type: I18nSelectPipe, isStandalone: true, name: \"i18nSelect\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: I18nSelectPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'i18nSelect',\n pure: true,\n standalone: true,\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 * @ngModule CommonModule\n * @description\n *\n * Converts a value into its JSON-format representation. Useful for debugging.\n *\n * @usageNotes\n *\n * The following component uses a JSON pipe to convert an object\n * to JSON format, and displays the string in both formats for comparison.\n *\n * {@example common/pipes/ts/json_pipe.ts region='JsonPipe'}\n *\n * @publicApi\n */\nclass JsonPipe {\n /**\n * @param value A value of any type to convert into a JSON-format string.\n */\n transform(value) {\n return JSON.stringify(value, null, 2);\n }\n}\nJsonPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: JsonPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\nJsonPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.3.0\", ngImport: i0, type: JsonPipe, isStandalone: true, name: \"json\", pure: false });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: JsonPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'json',\n pure: false,\n standalone: true,\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 makeKeyValuePair(key, value) {\n return { key: key, value: value };\n}\n/**\n * @ngModule CommonModule\n * @description\n *\n * Transforms Object or Map into an array of key value pairs.\n *\n * The output array will be ordered by keys.\n * By default the comparator will be by Unicode point value.\n * You can optionally pass a compareFn if your keys are complex types.\n *\n * @usageNotes\n * ### Examples\n *\n * This examples show how an Object or a Map can be iterated by ngFor with the use of this\n * keyvalue pipe.\n *\n * {@example common/pipes/ts/keyvalue_pipe.ts region='KeyValuePipe'}\n *\n * @publicApi\n */\nclass KeyValuePipe {\n constructor(differs) {\n this.differs = differs;\n this.keyValues = [];\n this.compareFn = defaultComparator;\n }\n transform(input, compareFn = defaultComparator) {\n if (!input || (!(input instanceof Map) && typeof input !== 'object')) {\n return null;\n }\n if (!this.differ) {\n // make a differ for whatever type we've been passed in\n this.differ = this.differs.find(input).create();\n }\n const differChanges = this.differ.diff(input);\n const compareFnChanged = compareFn !== this.compareFn;\n if (differChanges) {\n this.keyValues = [];\n differChanges.forEachItem((r) => {\n this.keyValues.push(makeKeyValuePair(r.key, r.currentValue));\n });\n }\n if (differChanges || compareFnChanged) {\n this.keyValues.sort(compareFn);\n this.compareFn = compareFn;\n }\n return this.keyValues;\n }\n}\nKeyValuePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: KeyValuePipe, deps: [{ token: i0.KeyValueDiffers }], target: i0.ɵɵFactoryTarget.Pipe });\nKeyValuePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.3.0\", ngImport: i0, type: KeyValuePipe, isStandalone: true, name: \"keyvalue\", pure: false });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: KeyValuePipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'keyvalue',\n pure: false,\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: i0.KeyValueDiffers }]; } });\nfunction defaultComparator(keyValueA, keyValueB) {\n const a = keyValueA.key;\n const b = keyValueB.key;\n // if same exit with 0;\n if (a === b)\n return 0;\n // make sure that undefined are at the end of the sort.\n if (a === undefined)\n return 1;\n if (b === undefined)\n return -1;\n // make sure that nulls are at the end of the sort.\n if (a === null)\n return 1;\n if (b === null)\n return -1;\n if (typeof a == 'string' && typeof b == 'string') {\n return a < b ? -1 : 1;\n }\n if (typeof a == 'number' && typeof b == 'number') {\n return a - b;\n }\n if (typeof a == 'boolean' && typeof b == 'boolean') {\n return a < b ? -1 : 1;\n }\n // `a` and `b` are of different types. Compare their string values.\n const aString = String(a);\n const bString = String(b);\n return aString == bString ? 0 : aString < bString ? -1 : 1;\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 * @ngModule CommonModule\n * @description\n *\n * Formats a value according to digit options and locale rules.\n * Locale determines group sizing and separator,\n * decimal point character, and other locale-specific configurations.\n *\n * @see `formatNumber()`\n *\n * @usageNotes\n *\n * ### digitsInfo\n *\n * The value's decimal representation is specified by the `digitsInfo`\n * parameter, written in the following format:
    \n *\n * ```\n * {minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}\n * ```\n *\n * - `minIntegerDigits`:\n * The minimum number of integer digits before the decimal point.\n * Default is 1.\n *\n * - `minFractionDigits`:\n * The minimum number of digits after the decimal point.\n * Default is 0.\n *\n * - `maxFractionDigits`:\n * The maximum number of digits after the decimal point.\n * Default is 3.\n *\n * If the formatted value is truncated it will be rounded using the \"to-nearest\" method:\n *\n * ```\n * {{3.6 | number: '1.0-0'}}\n * \n *\n * {{-3.6 | number:'1.0-0'}}\n * \n * ```\n *\n * ### locale\n *\n * `locale` will format a value according to locale rules.\n * Locale determines group sizing and separator,\n * decimal point character, and other locale-specific configurations.\n *\n * When not supplied, uses the value of `LOCALE_ID`, which is `en-US` by default.\n *\n * See [Setting your app locale](guide/i18n-common-locale-id).\n *\n * ### Example\n *\n * The following code shows how the pipe transforms values\n * according to various format specifications,\n * where the caller's default locale is `en-US`.\n *\n * \n *\n * @publicApi\n */\nclass DecimalPipe {\n constructor(_locale) {\n this._locale = _locale;\n }\n /**\n * @param value The value to be formatted.\n * @param digitsInfo Sets digit and decimal representation.\n * [See more](#digitsinfo).\n * @param locale Specifies what locale format rules to use.\n * [See more](#locale).\n */\n transform(value, digitsInfo, locale) {\n if (!isValue(value))\n return null;\n locale = locale || this._locale;\n try {\n const num = strToNumber(value);\n return formatNumber(num, locale, digitsInfo);\n }\n catch (error) {\n throw invalidPipeArgumentError(DecimalPipe, error.message);\n }\n }\n}\nDecimalPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: DecimalPipe, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe });\nDecimalPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.3.0\", ngImport: i0, type: DecimalPipe, isStandalone: true, name: \"number\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: DecimalPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'number',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }]; } });\n/**\n * @ngModule CommonModule\n * @description\n *\n * Transforms a number to a percentage\n * string, formatted according to locale rules that determine group sizing and\n * separator, decimal-point character, and other locale-specific\n * configurations.\n *\n * @see `formatPercent()`\n *\n * @usageNotes\n * The following code shows how the pipe transforms numbers\n * into text strings, according to various format specifications,\n * where the caller's default locale is `en-US`.\n *\n * \n *\n * @publicApi\n */\nclass PercentPipe {\n constructor(_locale) {\n this._locale = _locale;\n }\n /**\n *\n * @param value The number to be formatted as a percentage.\n * @param digitsInfo Decimal representation options, specified by a string\n * in the following format:
    \n * {minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}.\n * - `minIntegerDigits`: The minimum number of integer digits before the decimal point.\n * Default is `1`.\n * - `minFractionDigits`: The minimum number of digits after the decimal point.\n * Default is `0`.\n * - `maxFractionDigits`: The maximum number of digits after the decimal point.\n * Default is `0`.\n * @param locale A locale code for the locale format rules to use.\n * When not supplied, uses the value of `LOCALE_ID`, which is `en-US` by default.\n * See [Setting your app locale](guide/i18n-common-locale-id).\n */\n transform(value, digitsInfo, locale) {\n if (!isValue(value))\n return null;\n locale = locale || this._locale;\n try {\n const num = strToNumber(value);\n return formatPercent(num, locale, digitsInfo);\n }\n catch (error) {\n throw invalidPipeArgumentError(PercentPipe, error.message);\n }\n }\n}\nPercentPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: PercentPipe, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe });\nPercentPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.3.0\", ngImport: i0, type: PercentPipe, isStandalone: true, name: \"percent\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: PercentPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'percent',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }]; } });\n/**\n * @ngModule CommonModule\n * @description\n *\n * Transforms a number to a currency string, formatted according to locale rules\n * that determine group sizing and separator, decimal-point character,\n * and other locale-specific configurations.\n *\n * {@a currency-code-deprecation}\n *
    \n *\n * **Deprecation notice:**\n *\n * The default currency code is currently always `USD` but this is deprecated from v9.\n *\n * **In v11 the default currency code will be taken from the current locale identified by\n * the `LOCALE_ID` token. See the [i18n guide](guide/i18n-common-locale-id) for\n * more information.**\n *\n * If you need the previous behavior then set it by creating a `DEFAULT_CURRENCY_CODE` provider in\n * your application `NgModule`:\n *\n * ```ts\n * {provide: DEFAULT_CURRENCY_CODE, useValue: 'USD'}\n * ```\n *\n *
    \n *\n * @see `getCurrencySymbol()`\n * @see `formatCurrency()`\n *\n * @usageNotes\n * The following code shows how the pipe transforms numbers\n * into text strings, according to various format specifications,\n * where the caller's default locale is `en-US`.\n *\n * \n *\n * @publicApi\n */\nclass CurrencyPipe {\n constructor(_locale, _defaultCurrencyCode = 'USD') {\n this._locale = _locale;\n this._defaultCurrencyCode = _defaultCurrencyCode;\n }\n /**\n *\n * @param value The number to be formatted as currency.\n * @param currencyCode The [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code,\n * such as `USD` for the US dollar and `EUR` for the euro. The default currency code can be\n * configured using the `DEFAULT_CURRENCY_CODE` injection token.\n * @param display The format for the currency indicator. One of the following:\n * - `code`: Show the code (such as `USD`).\n * - `symbol`(default): Show the symbol (such as `$`).\n * - `symbol-narrow`: Use the narrow symbol for locales that have two symbols for their\n * currency.\n * For example, the Canadian dollar CAD has the symbol `CA$` and the symbol-narrow `$`. If the\n * locale has no narrow symbol, uses the standard symbol for the locale.\n * - String: Use the given string value instead of a code or a symbol.\n * For example, an empty string will suppress the currency & symbol.\n * - Boolean (marked deprecated in v5): `true` for symbol and false for `code`.\n *\n * @param digitsInfo Decimal representation options, specified by a string\n * in the following format:
    \n * {minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}.\n * - `minIntegerDigits`: The minimum number of integer digits before the decimal point.\n * Default is `1`.\n * - `minFractionDigits`: The minimum number of digits after the decimal point.\n * Default is `2`.\n * - `maxFractionDigits`: The maximum number of digits after the decimal point.\n * Default is `2`.\n * If not provided, the number will be formatted with the proper amount of digits,\n * depending on what the [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) specifies.\n * For example, the Canadian dollar has 2 digits, whereas the Chilean peso has none.\n * @param locale A locale code for the locale format rules to use.\n * When not supplied, uses the value of `LOCALE_ID`, which is `en-US` by default.\n * See [Setting your app locale](guide/i18n-common-locale-id).\n */\n transform(value, currencyCode = this._defaultCurrencyCode, display = 'symbol', digitsInfo, locale) {\n if (!isValue(value))\n return null;\n locale = locale || this._locale;\n if (typeof display === 'boolean') {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && console && console.warn) {\n console.warn(`Warning: the currency pipe has been changed in Angular v5. The symbolDisplay option (third parameter) is now a string instead of a boolean. The accepted values are \"code\", \"symbol\" or \"symbol-narrow\".`);\n }\n display = display ? 'symbol' : 'code';\n }\n let currency = currencyCode || this._defaultCurrencyCode;\n if (display !== 'code') {\n if (display === 'symbol' || display === 'symbol-narrow') {\n currency = getCurrencySymbol(currency, display === 'symbol' ? 'wide' : 'narrow', locale);\n }\n else {\n currency = display;\n }\n }\n try {\n const num = strToNumber(value);\n return formatCurrency(num, locale, currency, currencyCode, digitsInfo);\n }\n catch (error) {\n throw invalidPipeArgumentError(CurrencyPipe, error.message);\n }\n }\n}\nCurrencyPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: CurrencyPipe, deps: [{ token: LOCALE_ID }, { token: DEFAULT_CURRENCY_CODE }], target: i0.ɵɵFactoryTarget.Pipe });\nCurrencyPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.3.0\", ngImport: i0, type: CurrencyPipe, isStandalone: true, name: \"currency\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: CurrencyPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'currency',\n standalone: true,\n }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }, { type: undefined, decorators: [{\n type: Inject,\n args: [DEFAULT_CURRENCY_CODE]\n }] }]; } });\nfunction isValue(value) {\n return !(value == null || value === '' || value !== value);\n}\n/**\n * Transforms a string into a number (if needed).\n */\nfunction strToNumber(value) {\n // Convert strings to numbers\n if (typeof value === 'string' && !isNaN(Number(value) - parseFloat(value))) {\n return Number(value);\n }\n if (typeof value !== 'number') {\n throw new Error(`${value} is not a number`);\n }\n return 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 */\n/**\n * @ngModule CommonModule\n * @description\n *\n * Creates a new `Array` or `String` containing a subset (slice) of the elements.\n *\n * @usageNotes\n *\n * All behavior is based on the expected behavior of the JavaScript API `Array.prototype.slice()`\n * and `String.prototype.slice()`.\n *\n * When operating on an `Array`, the returned `Array` is always a copy even when all\n * the elements are being returned.\n *\n * When operating on a blank value, the pipe returns the blank value.\n *\n * ### List Example\n *\n * This `ngFor` example:\n *\n * {@example common/pipes/ts/slice_pipe.ts region='SlicePipe_list'}\n *\n * produces the following:\n *\n * ```html\n *
  • b
  • \n *
  • c
  • \n * ```\n *\n * ### String Examples\n *\n * {@example common/pipes/ts/slice_pipe.ts region='SlicePipe_string'}\n *\n * @publicApi\n */\nclass SlicePipe {\n transform(value, start, end) {\n if (value == null)\n return null;\n if (!this.supports(value)) {\n throw invalidPipeArgumentError(SlicePipe, value);\n }\n return value.slice(start, end);\n }\n supports(obj) {\n return typeof obj === 'string' || Array.isArray(obj);\n }\n}\nSlicePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: SlicePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\nSlicePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"14.3.0\", ngImport: i0, type: SlicePipe, isStandalone: true, name: \"slice\", pure: false });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: SlicePipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'slice',\n pure: false,\n standalone: true,\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 * A collection of Angular pipes that are likely to be used in each and every application.\n */\nconst COMMON_PIPES = [\n AsyncPipe,\n UpperCasePipe,\n LowerCasePipe,\n JsonPipe,\n SlicePipe,\n DecimalPipe,\n PercentPipe,\n TitleCasePipe,\n CurrencyPipe,\n DatePipe,\n I18nPluralPipe,\n I18nSelectPipe,\n KeyValuePipe,\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// Note: This does not contain the location providers,\n// as they need some platform specific implementations to work.\n/**\n * Exports all the basic Angular directives and pipes,\n * such as `NgIf`, `NgForOf`, `DecimalPipe`, and so on.\n * Re-exported by `BrowserModule`, which is included automatically in the root\n * `AppModule` when you create a new app with the CLI `new` command.\n *\n * @publicApi\n */\nclass CommonModule {\n}\nCommonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: CommonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nCommonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"14.3.0\", ngImport: i0, type: CommonModule, imports: [NgClass, NgComponentOutlet, NgForOf, NgIf, NgTemplateOutlet, NgStyle, NgSwitch, NgSwitchCase, NgSwitchDefault, NgPlural, NgPluralCase, AsyncPipe, UpperCasePipe, LowerCasePipe, JsonPipe, SlicePipe, DecimalPipe, PercentPipe, TitleCasePipe, CurrencyPipe, DatePipe, I18nPluralPipe, I18nSelectPipe, KeyValuePipe], exports: [NgClass, NgComponentOutlet, NgForOf, NgIf, NgTemplateOutlet, NgStyle, NgSwitch, NgSwitchCase, NgSwitchDefault, NgPlural, NgPluralCase, AsyncPipe, UpperCasePipe, LowerCasePipe, JsonPipe, SlicePipe, DecimalPipe, PercentPipe, TitleCasePipe, CurrencyPipe, DatePipe, I18nPluralPipe, I18nSelectPipe, KeyValuePipe] });\nCommonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: CommonModule });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: CommonModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [COMMON_DIRECTIVES, COMMON_PIPES],\n exports: [COMMON_DIRECTIVES, COMMON_PIPES],\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 PLATFORM_BROWSER_ID = 'browser';\nconst PLATFORM_SERVER_ID = 'server';\nconst PLATFORM_WORKER_APP_ID = 'browserWorkerApp';\nconst PLATFORM_WORKER_UI_ID = 'browserWorkerUi';\n/**\n * Returns whether a platform id represents a browser platform.\n * @publicApi\n */\nfunction isPlatformBrowser(platformId) {\n return platformId === PLATFORM_BROWSER_ID;\n}\n/**\n * Returns whether a platform id represents a server platform.\n * @publicApi\n */\nfunction isPlatformServer(platformId) {\n return platformId === PLATFORM_SERVER_ID;\n}\n/**\n * Returns whether a platform id represents a web worker app platform.\n * @publicApi\n */\nfunction isPlatformWorkerApp(platformId) {\n return platformId === PLATFORM_WORKER_APP_ID;\n}\n/**\n * Returns whether a platform id represents a web worker UI platform.\n * @publicApi\n */\nfunction isPlatformWorkerUi(platformId) {\n return platformId === PLATFORM_WORKER_UI_ID;\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 * @publicApi\n */\nconst VERSION = new Version('14.3.0');\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 * Defines a scroll position manager. Implemented by `BrowserViewportScroller`.\n *\n * @publicApi\n */\nclass ViewportScroller {\n}\n// De-sugared tree-shakable injection\n// See #23917\n/** @nocollapse */\nViewportScroller.ɵprov = ɵɵdefineInjectable({\n token: ViewportScroller,\n providedIn: 'root',\n factory: () => new BrowserViewportScroller(ɵɵinject(DOCUMENT), window)\n});\n/**\n * Manages the scroll position for a browser window.\n */\nclass BrowserViewportScroller {\n constructor(document, window) {\n this.document = document;\n this.window = window;\n this.offset = () => [0, 0];\n }\n /**\n * Configures the top offset used when scrolling to an anchor.\n * @param offset A position in screen coordinates (a tuple with x and y values)\n * or a function that returns the top offset position.\n *\n */\n setOffset(offset) {\n if (Array.isArray(offset)) {\n this.offset = () => offset;\n }\n else {\n this.offset = offset;\n }\n }\n /**\n * Retrieves the current scroll position.\n * @returns The position in screen coordinates.\n */\n getScrollPosition() {\n if (this.supportsScrolling()) {\n return [this.window.pageXOffset, this.window.pageYOffset];\n }\n else {\n return [0, 0];\n }\n }\n /**\n * Sets the scroll position.\n * @param position The new position in screen coordinates.\n */\n scrollToPosition(position) {\n if (this.supportsScrolling()) {\n this.window.scrollTo(position[0], position[1]);\n }\n }\n /**\n * Scrolls to an element and attempts to focus the element.\n *\n * Note that the function name here is misleading in that the target string may be an ID for a\n * non-anchor element.\n *\n * @param target The ID of an element or name of the anchor.\n *\n * @see https://html.spec.whatwg.org/#the-indicated-part-of-the-document\n * @see https://html.spec.whatwg.org/#scroll-to-fragid\n */\n scrollToAnchor(target) {\n if (!this.supportsScrolling()) {\n return;\n }\n const elSelected = findAnchorFromDocument(this.document, target);\n if (elSelected) {\n this.scrollToElement(elSelected);\n // After scrolling to the element, the spec dictates that we follow the focus steps for the\n // target. Rather than following the robust steps, simply attempt focus.\n //\n // @see https://html.spec.whatwg.org/#get-the-focusable-area\n // @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLOrForeignElement/focus\n // @see https://html.spec.whatwg.org/#focusable-area\n elSelected.focus();\n }\n }\n /**\n * Disables automatic scroll restoration provided by the browser.\n */\n setHistoryScrollRestoration(scrollRestoration) {\n if (this.supportScrollRestoration()) {\n const history = this.window.history;\n if (history && history.scrollRestoration) {\n history.scrollRestoration = scrollRestoration;\n }\n }\n }\n /**\n * Scrolls to an element using the native offset and the specified offset set on this scroller.\n *\n * The offset can be used when we know that there is a floating header and scrolling naively to an\n * element (ex: `scrollIntoView`) leaves the element hidden behind the floating header.\n */\n scrollToElement(el) {\n const rect = el.getBoundingClientRect();\n const left = rect.left + this.window.pageXOffset;\n const top = rect.top + this.window.pageYOffset;\n const offset = this.offset();\n this.window.scrollTo(left - offset[0], top - offset[1]);\n }\n /**\n * We only support scroll restoration when we can get a hold of window.\n * This means that we do not support this behavior when running in a web worker.\n *\n * Lifting this restriction right now would require more changes in the dom adapter.\n * Since webworkers aren't widely used, we will lift it once RouterScroller is\n * battle-tested.\n */\n supportScrollRestoration() {\n try {\n if (!this.supportsScrolling()) {\n return false;\n }\n // The `scrollRestoration` property could be on the `history` instance or its prototype.\n const scrollRestorationDescriptor = getScrollRestorationProperty(this.window.history) ||\n getScrollRestorationProperty(Object.getPrototypeOf(this.window.history));\n // We can write to the `scrollRestoration` property if it is a writable data field or it has a\n // setter function.\n return !!scrollRestorationDescriptor &&\n !!(scrollRestorationDescriptor.writable || scrollRestorationDescriptor.set);\n }\n catch {\n return false;\n }\n }\n supportsScrolling() {\n try {\n return !!this.window && !!this.window.scrollTo && 'pageXOffset' in this.window;\n }\n catch {\n return false;\n }\n }\n}\nfunction getScrollRestorationProperty(obj) {\n return Object.getOwnPropertyDescriptor(obj, 'scrollRestoration');\n}\nfunction findAnchorFromDocument(document, target) {\n const documentResult = document.getElementById(target) || document.getElementsByName(target)[0];\n if (documentResult) {\n return documentResult;\n }\n // `getElementById` and `getElementsByName` won't pierce through the shadow DOM so we\n // have to traverse the DOM manually and do the lookup through the shadow roots.\n if (typeof document.createTreeWalker === 'function' && document.body &&\n (document.body.createShadowRoot || document.body.attachShadow)) {\n const treeWalker = document.createTreeWalker(document.body, NodeFilter.SHOW_ELEMENT);\n let currentNode = treeWalker.currentNode;\n while (currentNode) {\n const shadowRoot = currentNode.shadowRoot;\n if (shadowRoot) {\n // Note that `ShadowRoot` doesn't support `getElementsByName`\n // so we have to fall back to `querySelector`.\n const result = shadowRoot.getElementById(target) || shadowRoot.querySelector(`[name=\"${target}\"]`);\n if (result) {\n return result;\n }\n }\n currentNode = treeWalker.nextNode();\n }\n }\n return null;\n}\n/**\n * Provides an empty implementation of the viewport scroller.\n */\nclass NullViewportScroller {\n /**\n * Empty implementation\n */\n setOffset(offset) { }\n /**\n * Empty implementation\n */\n getScrollPosition() {\n return [0, 0];\n }\n /**\n * Empty implementation\n */\n scrollToPosition(position) { }\n /**\n * Empty implementation\n */\n scrollToAnchor(anchor) { }\n /**\n * Empty implementation\n */\n setHistoryScrollRestoration(scrollRestoration) { }\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 wrapper around the `XMLHttpRequest` constructor.\n *\n * @publicApi\n */\nclass XhrFactory {\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// Converts a string that represents a URL into a URL class instance.\nfunction getUrl(src, win) {\n // Don't use a base URL is the URL is absolute.\n return isAbsoluteUrl(src) ? new URL(src) : new URL(src, win.location.href);\n}\n// Checks whether a URL is absolute (i.e. starts with `http://` or `https://`).\nfunction isAbsoluteUrl(src) {\n return /^https?:\\/\\//.test(src);\n}\n// Given a URL, extract the hostname part.\n// If a URL is a relative one - the URL is returned as is.\nfunction extractHostname(url) {\n return isAbsoluteUrl(url) ? (new URL(url)).hostname : url;\n}\nfunction isValidPath(path) {\n const isString = typeof path === 'string';\n if (!isString || path.trim() === '') {\n return false;\n }\n // Calling new URL() will throw if the path string is malformed\n try {\n const url = new URL(path);\n return true;\n }\n catch {\n return false;\n }\n}\nfunction normalizePath(path) {\n return path.endsWith('/') ? path.slice(0, -1) : path;\n}\nfunction normalizeSrc(src) {\n return src.startsWith('/') ? src.slice(1) : src;\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 * Noop image loader that does no transformation to the original src and just returns it as is.\n * This loader is used as a default one if more specific logic is not provided in an app config.\n *\n * @see `ImageLoader`\n * @see `NgOptimizedImage`\n */\nconst noopImageLoader = (config) => config.src;\n/**\n * Injection token that configures the image loader function.\n *\n * @see `ImageLoader`\n * @see `NgOptimizedImage`\n * @publicApi\n */\nconst IMAGE_LOADER = new InjectionToken('ImageLoader', {\n providedIn: 'root',\n factory: () => noopImageLoader,\n});\n/**\n * Internal helper function that makes it easier to introduce custom image loaders for the\n * `NgOptimizedImage` directive. It is enough to specify a URL builder function to obtain full DI\n * configuration for a given loader: a DI token corresponding to the actual loader function, plus DI\n * tokens managing preconnect check functionality.\n * @param buildUrlFn a function returning a full URL based on loader's configuration\n * @param exampleUrls example of full URLs for a given loader (used in error messages)\n * @returns a set of DI providers corresponding to the configured image loader\n */\nfunction createImageLoader(buildUrlFn, exampleUrls) {\n return function provideImageLoader(path) {\n if (!isValidPath(path)) {\n throwInvalidPathError(path, exampleUrls || []);\n }\n // The trailing / is stripped (if provided) to make URL construction (concatenation) easier in\n // the individual loader functions.\n path = normalizePath(path);\n const loaderFn = (config) => {\n if (isAbsoluteUrl(config.src)) {\n // Image loader functions expect an image file name (e.g. `my-image.png`)\n // or a relative path + a file name (e.g. `/a/b/c/my-image.png`) as an input,\n // so the final absolute URL can be constructed.\n // When an absolute URL is provided instead - the loader can not\n // build a final URL, thus the error is thrown to indicate that.\n throwUnexpectedAbsoluteUrlError(path, config.src);\n }\n return buildUrlFn(path, { ...config, src: normalizeSrc(config.src) });\n };\n const providers = [{ provide: IMAGE_LOADER, useValue: loaderFn }];\n return providers;\n };\n}\nfunction throwInvalidPathError(path, exampleUrls) {\n throw new ɵRuntimeError(2959 /* RuntimeErrorCode.INVALID_LOADER_ARGUMENTS */, ngDevMode &&\n `Image loader has detected an invalid path (\\`${path}\\`). ` +\n `To fix this, supply a path using one of the following formats: ${exampleUrls.join(' or ')}`);\n}\nfunction throwUnexpectedAbsoluteUrlError(path, url) {\n throw new ɵRuntimeError(2959 /* RuntimeErrorCode.INVALID_LOADER_ARGUMENTS */, ngDevMode &&\n `Image loader has detected a \\`\\` tag with an invalid \\`ngSrc\\` attribute: ${url}. ` +\n `This image loader expects \\`ngSrc\\` to be a relative URL - ` +\n `however the provided value is an absolute URL. ` +\n `To fix this, provide \\`ngSrc\\` as a path relative to the base URL ` +\n `configured for this loader (\\`${path}\\`).`);\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 * Function that generates an ImageLoader for [Cloudflare Image\n * Resizing](https://developers.cloudflare.com/images/image-resizing/) and turns it into an Angular\n * provider. Note: Cloudflare has multiple image products - this provider is specifically for\n * Cloudflare Image Resizing; it will not work with Cloudflare Images or Cloudflare Polish.\n *\n * @param path Your domain name, e.g. https://mysite.com\n * @returns Provider that provides an ImageLoader function\n *\n * @publicApi\n */\nconst provideCloudflareLoader = createImageLoader(createCloudflareUrl, ngDevMode ? ['https:///cdn-cgi/image//'] : undefined);\nfunction createCloudflareUrl(path, config) {\n let params = `format=auto`;\n if (config.width) {\n params += `,width=${config.width}`;\n }\n // Cloudflare image URLs format:\n // https://developers.cloudflare.com/images/image-resizing/url-format/\n return `${path}/cdn-cgi/image/${params}/${config.src}`;\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 * Name and URL tester for Cloudinary.\n */\nconst cloudinaryLoaderInfo = {\n name: 'Cloudinary',\n testUrl: isCloudinaryUrl\n};\nconst CLOUDINARY_LOADER_REGEX = /https?\\:\\/\\/[^\\/]+\\.cloudinary\\.com\\/.+/;\n/**\n * Tests whether a URL is from Cloudinary CDN.\n */\nfunction isCloudinaryUrl(url) {\n return CLOUDINARY_LOADER_REGEX.test(url);\n}\n/**\n * Function that generates an ImageLoader for Cloudinary and turns it into an Angular provider.\n *\n * @param path Base URL of your Cloudinary images\n * This URL should match one of the following formats:\n * https://res.cloudinary.com/mysite\n * https://mysite.cloudinary.com\n * https://subdomain.mysite.com\n * @returns Set of providers to configure the Cloudinary loader.\n *\n * @publicApi\n */\nconst provideCloudinaryLoader = createImageLoader(createCloudinaryUrl, ngDevMode ?\n [\n 'https://res.cloudinary.com/mysite', 'https://mysite.cloudinary.com',\n 'https://subdomain.mysite.com'\n ] :\n undefined);\nfunction createCloudinaryUrl(path, config) {\n // Cloudinary image URLformat:\n // https://cloudinary.com/documentation/image_transformations#transformation_url_structure\n // Example of a Cloudinary image URL:\n // https://res.cloudinary.com/mysite/image/upload/c_scale,f_auto,q_auto,w_600/marketing/tile-topics-m.png\n let params = `f_auto,q_auto`; // sets image format and quality to \"auto\"\n if (config.width) {\n params += `,w_${config.width}`;\n }\n return `${path}/image/upload/${params}/${config.src}`;\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 * Name and URL tester for ImageKit.\n */\nconst imageKitLoaderInfo = {\n name: 'ImageKit',\n testUrl: isImageKitUrl\n};\nconst IMAGE_KIT_LOADER_REGEX = /https?\\:\\/\\/[^\\/]+\\.imagekit\\.io\\/.+/;\n/**\n * Tests whether a URL is from ImageKit CDN.\n */\nfunction isImageKitUrl(url) {\n return IMAGE_KIT_LOADER_REGEX.test(url);\n}\n/**\n * Function that generates an ImageLoader for ImageKit and turns it into an Angular provider.\n *\n * @param path Base URL of your ImageKit images\n * This URL should match one of the following formats:\n * https://ik.imagekit.io/myaccount\n * https://subdomain.mysite.com\n * @returns Set of providers to configure the ImageKit loader.\n *\n * @publicApi\n */\nconst provideImageKitLoader = createImageLoader(createImagekitUrl, ngDevMode ? ['https://ik.imagekit.io/mysite', 'https://subdomain.mysite.com'] : undefined);\nfunction createImagekitUrl(path, config) {\n // Example of an ImageKit image URL:\n // https://ik.imagekit.io/demo/tr:w-300,h-300/medium_cafe_B1iTdD0C.jpg\n let params = `tr:q-auto`; // applies the \"auto quality\" transformation\n if (config.width) {\n params += `,w-${config.width}`;\n }\n return `${path}/${params}/${config.src}`;\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 * Name and URL tester for Imgix.\n */\nconst imgixLoaderInfo = {\n name: 'Imgix',\n testUrl: isImgixUrl\n};\nconst IMGIX_LOADER_REGEX = /https?\\:\\/\\/[^\\/]+\\.imgix\\.net\\/.+/;\n/**\n * Tests whether a URL is from Imgix CDN.\n */\nfunction isImgixUrl(url) {\n return IMGIX_LOADER_REGEX.test(url);\n}\n/**\n * Function that generates an ImageLoader for Imgix and turns it into an Angular provider.\n *\n * @param path path to the desired Imgix origin,\n * e.g. https://somepath.imgix.net or https://images.mysite.com\n * @returns Set of providers to configure the Imgix loader.\n *\n * @publicApi\n */\nconst provideImgixLoader = createImageLoader(createImgixUrl, ngDevMode ? ['https://somepath.imgix.net/'] : undefined);\nfunction createImgixUrl(path, config) {\n const url = new URL(`${path}/${config.src}`);\n // This setting ensures the smallest allowable format is set.\n url.searchParams.set('auto', 'format');\n if (config.width) {\n url.searchParams.set('w', config.width.toString());\n }\n return url.href;\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// Assembles directive details string, useful for error messages.\nfunction imgDirectiveDetails(ngSrc, includeNgSrc = true) {\n const ngSrcInfo = includeNgSrc ? `(activated on an element with the \\`ngSrc=\"${ngSrc}\"\\`) ` : '';\n return `The NgOptimizedImage directive ${ngSrcInfo}has detected that`;\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 * Asserts that the application is in development mode. Throws an error if the application is in\n * production mode. This assert can be used to make sure that there is no dev-mode code invoked in\n * the prod mode accidentally.\n */\nfunction assertDevMode(checkName) {\n if (!ngDevMode) {\n throw new ɵRuntimeError(2958 /* RuntimeErrorCode.UNEXPECTED_DEV_MODE_CHECK_IN_PROD_MODE */, `Unexpected invocation of the ${checkName} in the prod mode. ` +\n `Please make sure that the prod mode is enabled for production builds.`);\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 * Observer that detects whether an image with `NgOptimizedImage`\n * is treated as a Largest Contentful Paint (LCP) element. If so,\n * asserts that the image has the `priority` attribute.\n *\n * Note: this is a dev-mode only class and it does not appear in prod bundles,\n * thus there is no `ngDevMode` use in the code.\n *\n * Based on https://web.dev/lcp/#measure-lcp-in-javascript.\n */\nclass LCPImageObserver {\n constructor() {\n // Map of full image URLs -> original `ngSrc` values.\n this.images = new Map();\n // Keep track of images for which `console.warn` was produced.\n this.alreadyWarned = new Set();\n this.window = null;\n this.observer = null;\n assertDevMode('LCP checker');\n const win = inject(DOCUMENT).defaultView;\n if (typeof win !== 'undefined' && typeof PerformanceObserver !== 'undefined') {\n this.window = win;\n this.observer = this.initPerformanceObserver();\n }\n }\n /**\n * Inits PerformanceObserver and subscribes to LCP events.\n * Based on https://web.dev/lcp/#measure-lcp-in-javascript\n */\n initPerformanceObserver() {\n const observer = new PerformanceObserver((entryList) => {\n const entries = entryList.getEntries();\n if (entries.length === 0)\n return;\n // We use the latest entry produced by the `PerformanceObserver` as the best\n // signal on which element is actually an LCP one. As an example, the first image to load on\n // a page, by virtue of being the only thing on the page so far, is often a LCP candidate\n // and gets reported by PerformanceObserver, but isn't necessarily the LCP element.\n const lcpElement = entries[entries.length - 1];\n // Cast to `any` due to missing `element` on the `LargestContentfulPaint` type of entry.\n // See https://developer.mozilla.org/en-US/docs/Web/API/LargestContentfulPaint\n const imgSrc = lcpElement.element?.src ?? '';\n // Exclude `data:` and `blob:` URLs, since they are not supported by the directive.\n if (imgSrc.startsWith('data:') || imgSrc.startsWith('blob:'))\n return;\n const imgNgSrc = this.images.get(imgSrc);\n if (imgNgSrc && !this.alreadyWarned.has(imgSrc)) {\n this.alreadyWarned.add(imgSrc);\n logMissingPriorityWarning(imgSrc);\n }\n });\n observer.observe({ type: 'largest-contentful-paint', buffered: true });\n return observer;\n }\n registerImage(rewrittenSrc, originalNgSrc) {\n if (!this.observer)\n return;\n this.images.set(getUrl(rewrittenSrc, this.window).href, originalNgSrc);\n }\n unregisterImage(rewrittenSrc) {\n if (!this.observer)\n return;\n this.images.delete(getUrl(rewrittenSrc, this.window).href);\n }\n ngOnDestroy() {\n if (!this.observer)\n return;\n this.observer.disconnect();\n this.images.clear();\n this.alreadyWarned.clear();\n }\n}\nLCPImageObserver.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: LCPImageObserver, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nLCPImageObserver.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: LCPImageObserver, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: LCPImageObserver, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return []; } });\nfunction logMissingPriorityWarning(ngSrc) {\n const directiveDetails = imgDirectiveDetails(ngSrc);\n console.warn(ɵformatRuntimeError(2955 /* RuntimeErrorCode.LCP_IMG_MISSING_PRIORITY */, `${directiveDetails} this image is the Largest Contentful Paint (LCP) ` +\n `element but was not marked \"priority\". This image should be marked ` +\n `\"priority\" in order to prioritize its loading. ` +\n `To fix this, add the \"priority\" attribute.`));\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// Set of origins that are always excluded from the preconnect checks.\nconst INTERNAL_PRECONNECT_CHECK_BLOCKLIST = new Set(['localhost', '127.0.0.1', '0.0.0.0']);\n/**\n * Injection token to configure which origins should be excluded\n * from the preconnect checks. It can either be a single string or an array of strings\n * to represent a group of origins, for example:\n *\n * ```typescript\n * {provide: PRECONNECT_CHECK_BLOCKLIST, useValue: 'https://your-domain.com'}\n * ```\n *\n * or:\n *\n * ```typescript\n * {provide: PRECONNECT_CHECK_BLOCKLIST,\n * useValue: ['https://your-domain-1.com', 'https://your-domain-2.com']}\n * ```\n *\n * @publicApi\n */\nconst PRECONNECT_CHECK_BLOCKLIST = new InjectionToken('PRECONNECT_CHECK_BLOCKLIST');\n/**\n * Contains the logic to detect whether an image, marked with the \"priority\" attribute\n * has a corresponding `` tag in the `document.head`.\n *\n * Note: this is a dev-mode only class, which should not appear in prod bundles,\n * thus there is no `ngDevMode` use in the code.\n */\nclass PreconnectLinkChecker {\n constructor() {\n this.document = inject(DOCUMENT);\n /**\n * Set of tags found on this page.\n * The `null` value indicates that there was no DOM query operation performed.\n */\n this.preconnectLinks = null;\n /*\n * Keep track of all already seen origin URLs to avoid repeating the same check.\n */\n this.alreadySeen = new Set();\n this.window = null;\n this.blocklist = new Set(INTERNAL_PRECONNECT_CHECK_BLOCKLIST);\n assertDevMode('preconnect link checker');\n const win = this.document.defaultView;\n if (typeof win !== 'undefined') {\n this.window = win;\n }\n const blocklist = inject(PRECONNECT_CHECK_BLOCKLIST, { optional: true });\n if (blocklist) {\n this.populateBlocklist(blocklist);\n }\n }\n populateBlocklist(origins) {\n if (Array.isArray(origins)) {\n deepForEach(origins, origin => {\n this.blocklist.add(extractHostname(origin));\n });\n }\n else {\n this.blocklist.add(extractHostname(origins));\n }\n }\n /**\n * Checks that a preconnect resource hint exists in the head for the\n * given src.\n *\n * @param rewrittenSrc src formatted with loader\n * @param originalNgSrc ngSrc value\n */\n assertPreconnect(rewrittenSrc, originalNgSrc) {\n if (!this.window)\n return;\n const imgUrl = getUrl(rewrittenSrc, this.window);\n if (this.blocklist.has(imgUrl.hostname) || this.alreadySeen.has(imgUrl.origin))\n return;\n // Register this origin as seen, so we don't check it again later.\n this.alreadySeen.add(imgUrl.origin);\n if (!this.preconnectLinks) {\n // Note: we query for preconnect links only *once* and cache the results\n // for the entire lifespan of an application, since it's unlikely that the\n // list would change frequently. This allows to make sure there are no\n // performance implications of making extra DOM lookups for each image.\n this.preconnectLinks = this.queryPreconnectLinks();\n }\n if (!this.preconnectLinks.has(imgUrl.origin)) {\n console.warn(ɵformatRuntimeError(2956 /* RuntimeErrorCode.PRIORITY_IMG_MISSING_PRECONNECT_TAG */, `${imgDirectiveDetails(originalNgSrc)} there is no preconnect tag present for this ` +\n `image. Preconnecting to the origin(s) that serve priority images ensures that these ` +\n `images are delivered as soon as possible. To fix this, please add the following ` +\n `element into the of the document:\\n` +\n ` `));\n }\n }\n queryPreconnectLinks() {\n const preconnectUrls = new Set();\n const selector = 'link[rel=preconnect]';\n const links = Array.from(this.document.querySelectorAll(selector));\n for (let link of links) {\n const url = getUrl(link.href, this.window);\n preconnectUrls.add(url.origin);\n }\n return preconnectUrls;\n }\n ngOnDestroy() {\n this.preconnectLinks?.clear();\n this.alreadySeen.clear();\n }\n}\nPreconnectLinkChecker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: PreconnectLinkChecker, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nPreconnectLinkChecker.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: PreconnectLinkChecker, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: PreconnectLinkChecker, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return []; } });\n/**\n * Invokes a callback for each element in the array. Also invokes a callback\n * recursively for each nested array.\n */\nfunction deepForEach(input, fn) {\n for (let value of input) {\n Array.isArray(value) ? deepForEach(value, fn) : fn(value);\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 * In SSR scenarios, a preload `` element is generated for priority images.\n * Having a large number of preload tags may negatively affect the performance,\n * so we warn developers (by throwing an error) if the number of preloaded images\n * is above a certain threshold. This const specifies this threshold.\n */\nconst DEFAULT_PRELOADED_IMAGES_LIMIT = 5;\n/**\n * Helps to keep track of priority images that already have a corresponding\n * preload tag (to avoid generating multiple preload tags with the same URL).\n *\n * This Set tracks the original src passed into the `ngSrc` input not the src after it has been\n * run through the specified `IMAGE_LOADER`.\n */\nconst PRELOADED_IMAGES = new InjectionToken('NG_OPTIMIZED_PRELOADED_IMAGES', { providedIn: 'root', factory: () => new Set() });\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 * @description Contains the logic needed to track and add preload link tags to the `` tag. It\n * will also track what images have already had preload link tags added so as to not duplicate link\n * tags.\n *\n * In dev mode this service will validate that the number of preloaded images does not exceed the\n * configured default preloaded images limit: {@link DEFAULT_PRELOADED_IMAGES_LIMIT}.\n */\nclass PreloadLinkCreator {\n constructor() {\n this.preloadedImages = inject(PRELOADED_IMAGES);\n this.document = inject(DOCUMENT);\n }\n /**\n * @description Add a preload `` to the `` of the `index.html` that is served from the\n * server while using Angular Universal and SSR to kick off image loads for high priority images.\n *\n * The `sizes` (passed in from the user) and `srcset` (parsed and formatted from `ngSrcset`)\n * properties used to set the corresponding attributes, `imagesizes` and `imagesrcset`\n * respectively, on the preload `` tag so that the correctly sized image is preloaded from\n * the CDN.\n *\n * {@link https://web.dev/preload-responsive-images/#imagesrcset-and-imagesizes}\n *\n * @param renderer The `Renderer2` passed in from the directive\n * @param src The original src of the image that is set on the `ngSrc` input.\n * @param srcset The parsed and formatted srcset created from the `ngSrcset` input\n * @param sizes The value of the `sizes` attribute passed in to the `` tag\n */\n createPreloadLinkTag(renderer, src, srcset, sizes) {\n if (ngDevMode) {\n if (this.preloadedImages.size >= DEFAULT_PRELOADED_IMAGES_LIMIT) {\n throw new ɵRuntimeError(2961 /* RuntimeErrorCode.TOO_MANY_PRELOADED_IMAGES */, ngDevMode &&\n `The \\`NgOptimizedImage\\` directive has detected that more than ` +\n `${DEFAULT_PRELOADED_IMAGES_LIMIT} images were marked as priority. ` +\n `This might negatively affect an overall performance of the page. ` +\n `To fix this, remove the \"priority\" attribute from images with less priority.`);\n }\n }\n if (this.preloadedImages.has(src)) {\n return;\n }\n this.preloadedImages.add(src);\n const preload = renderer.createElement('link');\n renderer.setAttribute(preload, 'as', 'image');\n renderer.setAttribute(preload, 'href', src);\n renderer.setAttribute(preload, 'rel', 'preload');\n renderer.setAttribute(preload, 'fetchpriority', 'high');\n if (sizes) {\n renderer.setAttribute(preload, 'imageSizes', sizes);\n }\n if (srcset) {\n renderer.setAttribute(preload, 'imageSrcset', srcset);\n }\n renderer.appendChild(this.document.head, preload);\n }\n}\nPreloadLinkCreator.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: PreloadLinkCreator, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nPreloadLinkCreator.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: PreloadLinkCreator, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: PreloadLinkCreator, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\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 * When a Base64-encoded image is passed as an input to the `NgOptimizedImage` directive,\n * an error is thrown. The image content (as a string) might be very long, thus making\n * it hard to read an error message if the entire string is included. This const defines\n * the number of characters that should be included into the error message. The rest\n * of the content is truncated.\n */\nconst BASE64_IMG_MAX_LENGTH_IN_ERROR = 50;\n/**\n * RegExpr to determine whether a src in a srcset is using width descriptors.\n * Should match something like: \"100w, 200w\".\n */\nconst VALID_WIDTH_DESCRIPTOR_SRCSET = /^((\\s*\\d+w\\s*(,|$)){1,})$/;\n/**\n * RegExpr to determine whether a src in a srcset is using density descriptors.\n * Should match something like: \"1x, 2x, 50x\". Also supports decimals like \"1.5x, 1.50x\".\n */\nconst VALID_DENSITY_DESCRIPTOR_SRCSET = /^((\\s*\\d+(\\.\\d+)?x\\s*(,|$)){1,})$/;\n/**\n * Srcset values with a density descriptor higher than this value will actively\n * throw an error. Such densities are not permitted as they cause image sizes\n * to be unreasonably large and slow down LCP.\n */\nconst ABSOLUTE_SRCSET_DENSITY_CAP = 3;\n/**\n * Used only in error message text to communicate best practices, as we will\n * only throw based on the slightly more conservative ABSOLUTE_SRCSET_DENSITY_CAP.\n */\nconst RECOMMENDED_SRCSET_DENSITY_CAP = 2;\n/**\n * Used in generating automatic density-based srcsets\n */\nconst DENSITY_SRCSET_MULTIPLIERS = [1, 2];\n/**\n * Used to determine which breakpoints to use on full-width images\n */\nconst VIEWPORT_BREAKPOINT_CUTOFF = 640;\n/**\n * Used to determine whether two aspect ratios are similar in value.\n */\nconst ASPECT_RATIO_TOLERANCE = .1;\n/**\n * Used to determine whether the image has been requested at an overly\n * large size compared to the actual rendered image size (after taking\n * into account a typical device pixel ratio). In pixels.\n */\nconst OVERSIZED_IMAGE_TOLERANCE = 1000;\n/**\n * Used to limit automatic srcset generation of very large sources for\n * fixed-size images. In pixels.\n */\nconst FIXED_SRCSET_WIDTH_LIMIT = 1920;\nconst FIXED_SRCSET_HEIGHT_LIMIT = 1080;\n/** Info about built-in loaders we can test for. */\nconst BUILT_IN_LOADERS = [imgixLoaderInfo, imageKitLoaderInfo, cloudinaryLoaderInfo];\nconst defaultConfig = {\n breakpoints: [16, 32, 48, 64, 96, 128, 256, 384, 640, 750, 828, 1080, 1200, 1920, 2048, 3840],\n};\n/**\n * Injection token that configures the image optimized image functionality.\n *\n * @see `NgOptimizedImage`\n * @publicApi\n * @developerPreview\n */\nconst IMAGE_CONFIG = new InjectionToken('ImageConfig', { providedIn: 'root', factory: () => defaultConfig });\n/**\n * Directive that improves image loading performance by enforcing best practices.\n *\n * `NgOptimizedImage` ensures that the loading of the Largest Contentful Paint (LCP) image is\n * prioritized by:\n * - Automatically setting the `fetchpriority` attribute on the `` tag\n * - Lazy loading non-priority images by default\n * - Asserting that there is a corresponding preconnect link tag in the document head\n *\n * In addition, the directive:\n * - Generates appropriate asset URLs if a corresponding `ImageLoader` function is provided\n * - Automatically generates a srcset\n * - Requires that `width` and `height` are set\n * - Warns if `width` or `height` have been set incorrectly\n * - Warns if the image will be visually distorted when rendered\n *\n * @usageNotes\n * The `NgOptimizedImage` directive is marked as [standalone](guide/standalone-components) and can\n * be imported directly.\n *\n * Follow the steps below to enable and use the directive:\n * 1. Import it into the necessary NgModule or a standalone Component.\n * 2. Optionally provide an `ImageLoader` if you use an image hosting service.\n * 3. Update the necessary `` tags in templates and replace `src` attributes with `ngSrc`.\n * Using a `ngSrc` allows the directive to control when the `src` gets set, which triggers an image\n * download.\n *\n * Step 1: import the `NgOptimizedImage` directive.\n *\n * ```typescript\n * import { NgOptimizedImage } from '@angular/common';\n *\n * // Include it into the necessary NgModule\n * @NgModule({\n * imports: [NgOptimizedImage],\n * })\n * class AppModule {}\n *\n * // ... or a standalone Component\n * @Component({\n * standalone: true\n * imports: [NgOptimizedImage],\n * })\n * class MyStandaloneComponent {}\n * ```\n *\n * Step 2: configure a loader.\n *\n * To use the **default loader**: no additional code changes are necessary. The URL returned by the\n * generic loader will always match the value of \"src\". In other words, this loader applies no\n * transformations to the resource URL and the value of the `ngSrc` attribute will be used as is.\n *\n * To use an existing loader for a **third-party image service**: add the provider factory for your\n * chosen service to the `providers` array. In the example below, the Imgix loader is used:\n *\n * ```typescript\n * import {provideImgixLoader} from '@angular/common';\n *\n * // Call the function and add the result to the `providers` array:\n * providers: [\n * provideImgixLoader(\"https://my.base.url/\"),\n * ],\n * ```\n *\n * The `NgOptimizedImage` directive provides the following functions:\n * - `provideCloudflareLoader`\n * - `provideCloudinaryLoader`\n * - `provideImageKitLoader`\n * - `provideImgixLoader`\n *\n * If you use a different image provider, you can create a custom loader function as described\n * below.\n *\n * To use a **custom loader**: provide your loader function as a value for the `IMAGE_LOADER` DI\n * token.\n *\n * ```typescript\n * import {IMAGE_LOADER, ImageLoaderConfig} from '@angular/common';\n *\n * // Configure the loader using the `IMAGE_LOADER` token.\n * providers: [\n * {\n * provide: IMAGE_LOADER,\n * useValue: (config: ImageLoaderConfig) => {\n * return `https://example.com/${config.src}-${config.width}.jpg}`;\n * }\n * },\n * ],\n * ```\n *\n * Step 3: update `` tags in templates to use `ngSrc` instead of `src`.\n *\n * ```\n * \n * ```\n *\n * @publicApi\n */\nclass NgOptimizedImage {\n constructor() {\n this.imageLoader = inject(IMAGE_LOADER);\n this.config = processConfig(inject(IMAGE_CONFIG));\n this.renderer = inject(Renderer2);\n this.imgElement = inject(ElementRef).nativeElement;\n this.injector = inject(Injector);\n this.isServer = isPlatformServer(inject(PLATFORM_ID));\n this.preloadLinkChecker = inject(PreloadLinkCreator);\n // a LCP image observer - should be injected only in the dev mode\n this.lcpObserver = ngDevMode ? this.injector.get(LCPImageObserver) : null;\n /**\n * Calculate the rewritten `src` once and store it.\n * This is needed to avoid repetitive calculations and make sure the directive cleanup in the\n * `ngOnDestroy` does not rely on the `IMAGE_LOADER` logic (which in turn can rely on some other\n * instance that might be already destroyed).\n */\n this._renderedSrc = null;\n this._priority = false;\n this._disableOptimizedSrcset = false;\n this._fill = false;\n }\n /**\n * For responsive images: the intrinsic width of the image in pixels.\n * For fixed size images: the desired rendered width of the image in pixels.\n */\n set width(value) {\n ngDevMode && assertGreaterThanZero(this, value, 'width');\n this._width = inputToInteger(value);\n }\n get width() {\n return this._width;\n }\n /**\n * For responsive images: the intrinsic height of the image in pixels.\n * For fixed size images: the desired rendered height of the image in pixels.* The intrinsic\n * height of the image in pixels.\n */\n set height(value) {\n ngDevMode && assertGreaterThanZero(this, value, 'height');\n this._height = inputToInteger(value);\n }\n get height() {\n return this._height;\n }\n /**\n * Indicates whether this image should have a high priority.\n */\n set priority(value) {\n this._priority = inputToBoolean(value);\n }\n get priority() {\n return this._priority;\n }\n /**\n * Disables automatic srcset generation for this image.\n */\n set disableOptimizedSrcset(value) {\n this._disableOptimizedSrcset = inputToBoolean(value);\n }\n get disableOptimizedSrcset() {\n return this._disableOptimizedSrcset;\n }\n /**\n * Sets the image to \"fill mode\", which eliminates the height/width requirement and adds\n * styles such that the image fills its containing element.\n *\n * @developerPreview\n */\n set fill(value) {\n this._fill = inputToBoolean(value);\n }\n get fill() {\n return this._fill;\n }\n /** @nodoc */\n ngOnInit() {\n if (ngDevMode) {\n assertNonEmptyInput(this, 'ngSrc', this.ngSrc);\n assertValidNgSrcset(this, this.ngSrcset);\n assertNoConflictingSrc(this);\n if (this.ngSrcset) {\n assertNoConflictingSrcset(this);\n }\n assertNotBase64Image(this);\n assertNotBlobUrl(this);\n if (this.fill) {\n assertEmptyWidthAndHeight(this);\n assertNonZeroRenderedHeight(this, this.imgElement, this.renderer);\n }\n else {\n assertNonEmptyWidthAndHeight(this);\n // Only check for distorted images when not in fill mode, where\n // images may be intentionally stretched, cropped or letterboxed.\n assertNoImageDistortion(this, this.imgElement, this.renderer);\n }\n assertValidLoadingInput(this);\n if (!this.ngSrcset) {\n assertNoComplexSizes(this);\n }\n assertNotMissingBuiltInLoader(this.ngSrc, this.imageLoader);\n assertNoNgSrcsetWithoutLoader(this, this.imageLoader);\n assertNoLoaderParamsWithoutLoader(this, this.imageLoader);\n if (this.priority) {\n const checker = this.injector.get(PreconnectLinkChecker);\n checker.assertPreconnect(this.getRewrittenSrc(), this.ngSrc);\n }\n else {\n // Monitor whether an image is an LCP element only in case\n // the `priority` attribute is missing. Otherwise, an image\n // has the necessary settings and no extra checks are required.\n if (this.lcpObserver !== null) {\n const ngZone = this.injector.get(NgZone);\n ngZone.runOutsideAngular(() => {\n this.lcpObserver.registerImage(this.getRewrittenSrc(), this.ngSrc);\n });\n }\n }\n }\n this.setHostAttributes();\n }\n setHostAttributes() {\n // Must set width/height explicitly in case they are bound (in which case they will\n // only be reflected and not found by the browser)\n if (this.fill) {\n if (!this.sizes) {\n this.sizes = '100vw';\n }\n }\n else {\n this.setHostAttribute('width', this.width.toString());\n this.setHostAttribute('height', this.height.toString());\n }\n this.setHostAttribute('loading', this.getLoadingBehavior());\n this.setHostAttribute('fetchpriority', this.getFetchPriority());\n // The `data-ng-img` attribute flags an image as using the directive, to allow\n // for analysis of the directive's performance.\n this.setHostAttribute('ng-img', 'true');\n // The `src` and `srcset` attributes should be set last since other attributes\n // could affect the image's loading behavior.\n const rewrittenSrc = this.getRewrittenSrc();\n this.setHostAttribute('src', rewrittenSrc);\n let rewrittenSrcset = undefined;\n if (this.sizes) {\n this.setHostAttribute('sizes', this.sizes);\n }\n if (this.ngSrcset) {\n rewrittenSrcset = this.getRewrittenSrcset();\n }\n else if (this.shouldGenerateAutomaticSrcset()) {\n rewrittenSrcset = this.getAutomaticSrcset();\n }\n if (rewrittenSrcset) {\n this.setHostAttribute('srcset', rewrittenSrcset);\n }\n if (this.isServer && this.priority) {\n this.preloadLinkChecker.createPreloadLinkTag(this.renderer, rewrittenSrc, rewrittenSrcset, this.sizes);\n }\n }\n /** @nodoc */\n ngOnChanges(changes) {\n if (ngDevMode) {\n assertNoPostInitInputChange(this, changes, [\n 'ngSrc',\n 'ngSrcset',\n 'width',\n 'height',\n 'priority',\n 'fill',\n 'loading',\n 'sizes',\n 'loaderParams',\n 'disableOptimizedSrcset',\n ]);\n }\n }\n callImageLoader(configWithoutCustomParams) {\n let augmentedConfig = configWithoutCustomParams;\n if (this.loaderParams) {\n augmentedConfig.loaderParams = this.loaderParams;\n }\n return this.imageLoader(augmentedConfig);\n }\n getLoadingBehavior() {\n if (!this.priority && this.loading !== undefined) {\n return this.loading;\n }\n return this.priority ? 'eager' : 'lazy';\n }\n getFetchPriority() {\n return this.priority ? 'high' : 'auto';\n }\n getRewrittenSrc() {\n // ImageLoaderConfig supports setting a width property. However, we're not setting width here\n // because if the developer uses rendered width instead of intrinsic width in the HTML width\n // attribute, the image requested may be too small for 2x+ screens.\n if (!this._renderedSrc) {\n const imgConfig = { src: this.ngSrc };\n // Cache calculated image src to reuse it later in the code.\n this._renderedSrc = this.callImageLoader(imgConfig);\n }\n return this._renderedSrc;\n }\n getRewrittenSrcset() {\n const widthSrcSet = VALID_WIDTH_DESCRIPTOR_SRCSET.test(this.ngSrcset);\n const finalSrcs = this.ngSrcset.split(',').filter(src => src !== '').map(srcStr => {\n srcStr = srcStr.trim();\n const width = widthSrcSet ? parseFloat(srcStr) : parseFloat(srcStr) * this.width;\n return `${this.callImageLoader({ src: this.ngSrc, width })} ${srcStr}`;\n });\n return finalSrcs.join(', ');\n }\n getAutomaticSrcset() {\n if (this.sizes) {\n return this.getResponsiveSrcset();\n }\n else {\n return this.getFixedSrcset();\n }\n }\n getResponsiveSrcset() {\n const { breakpoints } = this.config;\n let filteredBreakpoints = breakpoints;\n if (this.sizes?.trim() === '100vw') {\n // Since this is a full-screen-width image, our srcset only needs to include\n // breakpoints with full viewport widths.\n filteredBreakpoints = breakpoints.filter(bp => bp >= VIEWPORT_BREAKPOINT_CUTOFF);\n }\n const finalSrcs = filteredBreakpoints.map(bp => `${this.callImageLoader({ src: this.ngSrc, width: bp })} ${bp}w`);\n return finalSrcs.join(', ');\n }\n getFixedSrcset() {\n const finalSrcs = DENSITY_SRCSET_MULTIPLIERS.map(multiplier => {\n const imgUrl = this.callImageLoader({ src: this.ngSrc, width: this.width * multiplier });\n return `${imgUrl} ${multiplier}x`;\n });\n return finalSrcs.join(', ');\n }\n shouldGenerateAutomaticSrcset() {\n return !this._disableOptimizedSrcset && !this.srcset && this.imageLoader !== noopImageLoader &&\n !(this.width > FIXED_SRCSET_WIDTH_LIMIT || this.height > FIXED_SRCSET_HEIGHT_LIMIT);\n }\n /** @nodoc */\n ngOnDestroy() {\n if (ngDevMode) {\n if (!this.priority && this._renderedSrc !== null && this.lcpObserver !== null) {\n this.lcpObserver.unregisterImage(this._renderedSrc);\n }\n }\n }\n setHostAttribute(name, value) {\n this.renderer.setAttribute(this.imgElement, name, value);\n }\n}\nNgOptimizedImage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgOptimizedImage, deps: [], target: i0.ɵɵFactoryTarget.Directive });\nNgOptimizedImage.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.3.0\", type: NgOptimizedImage, isStandalone: true, selector: \"img[ngSrc]\", inputs: { ngSrc: \"ngSrc\", ngSrcset: \"ngSrcset\", sizes: \"sizes\", width: \"width\", height: \"height\", loading: \"loading\", priority: \"priority\", loaderParams: \"loaderParams\", disableOptimizedSrcset: \"disableOptimizedSrcset\", fill: \"fill\", src: \"src\", srcset: \"srcset\" }, host: { properties: { \"style.position\": \"fill ? \\\"absolute\\\" : null\", \"style.width\": \"fill ? \\\"100%\\\" : null\", \"style.height\": \"fill ? \\\"100%\\\" : null\", \"style.inset\": \"fill ? \\\"0px\\\" : null\" } }, usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NgOptimizedImage, decorators: [{\n type: Directive,\n args: [{\n standalone: true,\n selector: 'img[ngSrc]',\n host: {\n '[style.position]': 'fill ? \"absolute\" : null',\n '[style.width]': 'fill ? \"100%\" : null',\n '[style.height]': 'fill ? \"100%\" : null',\n '[style.inset]': 'fill ? \"0px\" : null'\n }\n }]\n }], propDecorators: { ngSrc: [{\n type: Input\n }], ngSrcset: [{\n type: Input\n }], sizes: [{\n type: Input\n }], width: [{\n type: Input\n }], height: [{\n type: Input\n }], loading: [{\n type: Input\n }], priority: [{\n type: Input\n }], loaderParams: [{\n type: Input\n }], disableOptimizedSrcset: [{\n type: Input\n }], fill: [{\n type: Input\n }], src: [{\n type: Input\n }], srcset: [{\n type: Input\n }] } });\n/***** Helpers *****/\n/**\n * Convert input value to integer.\n */\nfunction inputToInteger(value) {\n return typeof value === 'string' ? parseInt(value, 10) : value;\n}\n/**\n * Convert input value to boolean.\n */\nfunction inputToBoolean(value) {\n return value != null && `${value}` !== 'false';\n}\n/**\n * Sorts provided config breakpoints and uses defaults.\n */\nfunction processConfig(config) {\n let sortedBreakpoints = {};\n if (config.breakpoints) {\n sortedBreakpoints.breakpoints = config.breakpoints.sort((a, b) => a - b);\n }\n return Object.assign({}, defaultConfig, config, sortedBreakpoints);\n}\n/***** Assert functions *****/\n/**\n * Verifies that there is no `src` set on a host element.\n */\nfunction assertNoConflictingSrc(dir) {\n if (dir.src) {\n throw new ɵRuntimeError(2950 /* RuntimeErrorCode.UNEXPECTED_SRC_ATTR */, `${imgDirectiveDetails(dir.ngSrc)} both \\`src\\` and \\`ngSrc\\` have been set. ` +\n `Supplying both of these attributes breaks lazy loading. ` +\n `The NgOptimizedImage directive sets \\`src\\` itself based on the value of \\`ngSrc\\`. ` +\n `To fix this, please remove the \\`src\\` attribute.`);\n }\n}\n/**\n * Verifies that there is no `srcset` set on a host element.\n */\nfunction assertNoConflictingSrcset(dir) {\n if (dir.srcset) {\n throw new ɵRuntimeError(2951 /* RuntimeErrorCode.UNEXPECTED_SRCSET_ATTR */, `${imgDirectiveDetails(dir.ngSrc)} both \\`srcset\\` and \\`ngSrcset\\` have been set. ` +\n `Supplying both of these attributes breaks lazy loading. ` +\n `The NgOptimizedImage directive sets \\`srcset\\` itself based on the value of ` +\n `\\`ngSrcset\\`. To fix this, please remove the \\`srcset\\` attribute.`);\n }\n}\n/**\n * Verifies that the `ngSrc` is not a Base64-encoded image.\n */\nfunction assertNotBase64Image(dir) {\n let ngSrc = dir.ngSrc.trim();\n if (ngSrc.startsWith('data:')) {\n if (ngSrc.length > BASE64_IMG_MAX_LENGTH_IN_ERROR) {\n ngSrc = ngSrc.substring(0, BASE64_IMG_MAX_LENGTH_IN_ERROR) + '...';\n }\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc, false)} \\`ngSrc\\` is a Base64-encoded string ` +\n `(${ngSrc}). NgOptimizedImage does not support Base64-encoded strings. ` +\n `To fix this, disable the NgOptimizedImage directive for this element ` +\n `by removing \\`ngSrc\\` and using a standard \\`src\\` attribute instead.`);\n }\n}\n/**\n * Verifies that the 'sizes' only includes responsive values.\n */\nfunction assertNoComplexSizes(dir) {\n let sizes = dir.sizes;\n if (sizes?.match(/((\\)|,)\\s|^)\\d+px/)) {\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc, false)} \\`sizes\\` was set to a string including ` +\n `pixel values. For automatic \\`srcset\\` generation, \\`sizes\\` must only include responsive ` +\n `values, such as \\`sizes=\"50vw\"\\` or \\`sizes=\"(min-width: 768px) 50vw, 100vw\"\\`. ` +\n `To fix this, modify the \\`sizes\\` attribute, or provide your own \\`ngSrcset\\` value directly.`);\n }\n}\n/**\n * Verifies that the `ngSrc` is not a Blob URL.\n */\nfunction assertNotBlobUrl(dir) {\n const ngSrc = dir.ngSrc.trim();\n if (ngSrc.startsWith('blob:')) {\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} \\`ngSrc\\` was set to a blob URL (${ngSrc}). ` +\n `Blob URLs are not supported by the NgOptimizedImage directive. ` +\n `To fix this, disable the NgOptimizedImage directive for this element ` +\n `by removing \\`ngSrc\\` and using a regular \\`src\\` attribute instead.`);\n }\n}\n/**\n * Verifies that the input is set to a non-empty string.\n */\nfunction assertNonEmptyInput(dir, name, value) {\n const isString = typeof value === 'string';\n const isEmptyString = isString && value.trim() === '';\n if (!isString || isEmptyString) {\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} \\`${name}\\` has an invalid value ` +\n `(\\`${value}\\`). To fix this, change the value to a non-empty string.`);\n }\n}\n/**\n * Verifies that the `ngSrcset` is in a valid format, e.g. \"100w, 200w\" or \"1x, 2x\".\n */\nfunction assertValidNgSrcset(dir, value) {\n if (value == null)\n return;\n assertNonEmptyInput(dir, 'ngSrcset', value);\n const stringVal = value;\n const isValidWidthDescriptor = VALID_WIDTH_DESCRIPTOR_SRCSET.test(stringVal);\n const isValidDensityDescriptor = VALID_DENSITY_DESCRIPTOR_SRCSET.test(stringVal);\n if (isValidDensityDescriptor) {\n assertUnderDensityCap(dir, stringVal);\n }\n const isValidSrcset = isValidWidthDescriptor || isValidDensityDescriptor;\n if (!isValidSrcset) {\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} \\`ngSrcset\\` has an invalid value (\\`${value}\\`). ` +\n `To fix this, supply \\`ngSrcset\\` using a comma-separated list of one or more width ` +\n `descriptors (e.g. \"100w, 200w\") or density descriptors (e.g. \"1x, 2x\").`);\n }\n}\nfunction assertUnderDensityCap(dir, value) {\n const underDensityCap = value.split(',').every(num => num === '' || parseFloat(num) <= ABSOLUTE_SRCSET_DENSITY_CAP);\n if (!underDensityCap) {\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} the \\`ngSrcset\\` contains an unsupported image density:` +\n `\\`${value}\\`. NgOptimizedImage generally recommends a max image density of ` +\n `${RECOMMENDED_SRCSET_DENSITY_CAP}x but supports image densities up to ` +\n `${ABSOLUTE_SRCSET_DENSITY_CAP}x. The human eye cannot distinguish between image densities ` +\n `greater than ${RECOMMENDED_SRCSET_DENSITY_CAP}x - which makes them unnecessary for ` +\n `most use cases. Images that will be pinch-zoomed are typically the primary use case for ` +\n `${ABSOLUTE_SRCSET_DENSITY_CAP}x images. Please remove the high density descriptor and try again.`);\n }\n}\n/**\n * Creates a `RuntimeError` instance to represent a situation when an input is set after\n * the directive has initialized.\n */\nfunction postInitInputChangeError(dir, inputName) {\n let reason;\n if (inputName === 'width' || inputName === 'height') {\n reason = `Changing \\`${inputName}\\` may result in different attribute value ` +\n `applied to the underlying image element and cause layout shifts on a page.`;\n }\n else {\n reason = `Changing the \\`${inputName}\\` would have no effect on the underlying ` +\n `image element, because the resource loading has already occurred.`;\n }\n return new ɵRuntimeError(2953 /* RuntimeErrorCode.UNEXPECTED_INPUT_CHANGE */, `${imgDirectiveDetails(dir.ngSrc)} \\`${inputName}\\` was updated after initialization. ` +\n `The NgOptimizedImage directive will not react to this input change. ${reason} ` +\n `To fix this, either switch \\`${inputName}\\` to a static value ` +\n `or wrap the image element in an *ngIf that is gated on the necessary value.`);\n}\n/**\n * Verify that none of the listed inputs has changed.\n */\nfunction assertNoPostInitInputChange(dir, changes, inputs) {\n inputs.forEach(input => {\n const isUpdated = changes.hasOwnProperty(input);\n if (isUpdated && !changes[input].isFirstChange()) {\n if (input === 'ngSrc') {\n // When the `ngSrc` input changes, we detect that only in the\n // `ngOnChanges` hook, thus the `ngSrc` is already set. We use\n // `ngSrc` in the error message, so we use a previous value, but\n // not the updated one in it.\n dir = { ngSrc: changes[input].previousValue };\n }\n throw postInitInputChangeError(dir, input);\n }\n });\n}\n/**\n * Verifies that a specified input is a number greater than 0.\n */\nfunction assertGreaterThanZero(dir, inputValue, inputName) {\n const validNumber = typeof inputValue === 'number' && inputValue > 0;\n const validString = typeof inputValue === 'string' && /^\\d+$/.test(inputValue.trim()) && parseInt(inputValue) > 0;\n if (!validNumber && !validString) {\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} \\`${inputName}\\` has an invalid value ` +\n `(\\`${inputValue}\\`). To fix this, provide \\`${inputName}\\` ` +\n `as a number greater than 0.`);\n }\n}\n/**\n * Verifies that the rendered image is not visually distorted. Effectively this is checking:\n * - Whether the \"width\" and \"height\" attributes reflect the actual dimensions of the image.\n * - Whether image styling is \"correct\" (see below for a longer explanation).\n */\nfunction assertNoImageDistortion(dir, img, renderer) {\n const removeListenerFn = renderer.listen(img, 'load', () => {\n removeListenerFn();\n const renderedWidth = img.clientWidth;\n const renderedHeight = img.clientHeight;\n const renderedAspectRatio = renderedWidth / renderedHeight;\n const nonZeroRenderedDimensions = renderedWidth !== 0 && renderedHeight !== 0;\n const intrinsicWidth = img.naturalWidth;\n const intrinsicHeight = img.naturalHeight;\n const intrinsicAspectRatio = intrinsicWidth / intrinsicHeight;\n const suppliedWidth = dir.width;\n const suppliedHeight = dir.height;\n const suppliedAspectRatio = suppliedWidth / suppliedHeight;\n // Tolerance is used to account for the impact of subpixel rendering.\n // Due to subpixel rendering, the rendered, intrinsic, and supplied\n // aspect ratios of a correctly configured image may not exactly match.\n // For example, a `width=4030 height=3020` image might have a rendered\n // size of \"1062w, 796.48h\". (An aspect ratio of 1.334... vs. 1.333...)\n const inaccurateDimensions = Math.abs(suppliedAspectRatio - intrinsicAspectRatio) > ASPECT_RATIO_TOLERANCE;\n const stylingDistortion = nonZeroRenderedDimensions &&\n Math.abs(intrinsicAspectRatio - renderedAspectRatio) > ASPECT_RATIO_TOLERANCE;\n if (inaccurateDimensions) {\n console.warn(ɵformatRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} the aspect ratio of the image does not match ` +\n `the aspect ratio indicated by the width and height attributes. ` +\n `\\nIntrinsic image size: ${intrinsicWidth}w x ${intrinsicHeight}h ` +\n `(aspect-ratio: ${intrinsicAspectRatio}). \\nSupplied width and height attributes: ` +\n `${suppliedWidth}w x ${suppliedHeight}h (aspect-ratio: ${suppliedAspectRatio}). ` +\n `\\nTo fix this, update the width and height attributes.`));\n }\n else if (stylingDistortion) {\n console.warn(ɵformatRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} the aspect ratio of the rendered image ` +\n `does not match the image's intrinsic aspect ratio. ` +\n `\\nIntrinsic image size: ${intrinsicWidth}w x ${intrinsicHeight}h ` +\n `(aspect-ratio: ${intrinsicAspectRatio}). \\nRendered image size: ` +\n `${renderedWidth}w x ${renderedHeight}h (aspect-ratio: ` +\n `${renderedAspectRatio}). \\nThis issue can occur if \"width\" and \"height\" ` +\n `attributes are added to an image without updating the corresponding ` +\n `image styling. To fix this, adjust image styling. In most cases, ` +\n `adding \"height: auto\" or \"width: auto\" to the image styling will fix ` +\n `this issue.`));\n }\n else if (!dir.ngSrcset && nonZeroRenderedDimensions) {\n // If `ngSrcset` hasn't been set, sanity check the intrinsic size.\n const recommendedWidth = RECOMMENDED_SRCSET_DENSITY_CAP * renderedWidth;\n const recommendedHeight = RECOMMENDED_SRCSET_DENSITY_CAP * renderedHeight;\n const oversizedWidth = (intrinsicWidth - recommendedWidth) >= OVERSIZED_IMAGE_TOLERANCE;\n const oversizedHeight = (intrinsicHeight - recommendedHeight) >= OVERSIZED_IMAGE_TOLERANCE;\n if (oversizedWidth || oversizedHeight) {\n console.warn(ɵformatRuntimeError(2960 /* RuntimeErrorCode.OVERSIZED_IMAGE */, `${imgDirectiveDetails(dir.ngSrc)} the intrinsic image is significantly ` +\n `larger than necessary. ` +\n `\\nRendered image size: ${renderedWidth}w x ${renderedHeight}h. ` +\n `\\nIntrinsic image size: ${intrinsicWidth}w x ${intrinsicHeight}h. ` +\n `\\nRecommended intrinsic image size: ${recommendedWidth}w x ${recommendedHeight}h. ` +\n `\\nNote: Recommended intrinsic image size is calculated assuming a maximum DPR of ` +\n `${RECOMMENDED_SRCSET_DENSITY_CAP}. To improve loading time, resize the image ` +\n `or consider using the \"ngSrcset\" and \"sizes\" attributes.`));\n }\n }\n });\n}\n/**\n * Verifies that a specified input is set.\n */\nfunction assertNonEmptyWidthAndHeight(dir) {\n let missingAttributes = [];\n if (dir.width === undefined)\n missingAttributes.push('width');\n if (dir.height === undefined)\n missingAttributes.push('height');\n if (missingAttributes.length > 0) {\n throw new ɵRuntimeError(2954 /* RuntimeErrorCode.REQUIRED_INPUT_MISSING */, `${imgDirectiveDetails(dir.ngSrc)} these required attributes ` +\n `are missing: ${missingAttributes.map(attr => `\"${attr}\"`).join(', ')}. ` +\n `Including \"width\" and \"height\" attributes will prevent image-related layout shifts. ` +\n `To fix this, include \"width\" and \"height\" attributes on the image tag or turn on ` +\n `\"fill\" mode with the \\`fill\\` attribute.`);\n }\n}\n/**\n * Verifies that width and height are not set. Used in fill mode, where those attributes don't make\n * sense.\n */\nfunction assertEmptyWidthAndHeight(dir) {\n if (dir.width || dir.height) {\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} the attributes \\`height\\` and/or \\`width\\` are present ` +\n `along with the \\`fill\\` attribute. Because \\`fill\\` mode causes an image to fill its containing ` +\n `element, the size attributes have no effect and should be removed.`);\n }\n}\n/**\n * Verifies that the rendered image has a nonzero height. If the image is in fill mode, provides\n * guidance that this can be caused by the containing element's CSS position property.\n */\nfunction assertNonZeroRenderedHeight(dir, img, renderer) {\n const removeListenerFn = renderer.listen(img, 'load', () => {\n removeListenerFn();\n const renderedHeight = img.clientHeight;\n if (dir.fill && renderedHeight === 0) {\n console.warn(ɵformatRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} the height of the fill-mode image is zero. ` +\n `This is likely because the containing element does not have the CSS 'position' ` +\n `property set to one of the following: \"relative\", \"fixed\", or \"absolute\". ` +\n `To fix this problem, make sure the container element has the CSS 'position' ` +\n `property defined and the height of the element is not zero.`));\n }\n });\n}\n/**\n * Verifies that the `loading` attribute is set to a valid input &\n * is not used on priority images.\n */\nfunction assertValidLoadingInput(dir) {\n if (dir.loading && dir.priority) {\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} the \\`loading\\` attribute ` +\n `was used on an image that was marked \"priority\". ` +\n `Setting \\`loading\\` on priority images is not allowed ` +\n `because these images will always be eagerly loaded. ` +\n `To fix this, remove the “loading” attribute from the priority image.`);\n }\n const validInputs = ['auto', 'eager', 'lazy'];\n if (typeof dir.loading === 'string' && !validInputs.includes(dir.loading)) {\n throw new ɵRuntimeError(2952 /* RuntimeErrorCode.INVALID_INPUT */, `${imgDirectiveDetails(dir.ngSrc)} the \\`loading\\` attribute ` +\n `has an invalid value (\\`${dir.loading}\\`). ` +\n `To fix this, provide a valid value (\"lazy\", \"eager\", or \"auto\").`);\n }\n}\n/**\n * Warns if NOT using a loader (falling back to the generic loader) and\n * the image appears to be hosted on one of the image CDNs for which\n * we do have a built-in image loader. Suggests switching to the\n * built-in loader.\n *\n * @param ngSrc Value of the ngSrc attribute\n * @param imageLoader ImageLoader provided\n */\nfunction assertNotMissingBuiltInLoader(ngSrc, imageLoader) {\n if (imageLoader === noopImageLoader) {\n let builtInLoaderName = '';\n for (const loader of BUILT_IN_LOADERS) {\n if (loader.testUrl(ngSrc)) {\n builtInLoaderName = loader.name;\n break;\n }\n }\n if (builtInLoaderName) {\n console.warn(ɵformatRuntimeError(2962 /* RuntimeErrorCode.MISSING_BUILTIN_LOADER */, `NgOptimizedImage: It looks like your images may be hosted on the ` +\n `${builtInLoaderName} CDN, but your app is not using Angular's ` +\n `built-in loader for that CDN. We recommend switching to use ` +\n `the built-in by calling \\`provide${builtInLoaderName}Loader()\\` ` +\n `in your \\`providers\\` and passing it your instance's base URL. ` +\n `If you don't want to use the built-in loader, define a custom ` +\n `loader function using IMAGE_LOADER to silence this warning.`));\n }\n }\n}\n/**\n * Warns if ngSrcset is present and no loader is configured (i.e. the default one is being used).\n */\nfunction assertNoNgSrcsetWithoutLoader(dir, imageLoader) {\n if (dir.ngSrcset && imageLoader === noopImageLoader) {\n console.warn(ɵformatRuntimeError(2963 /* RuntimeErrorCode.MISSING_NECESSARY_LOADER */, `${imgDirectiveDetails(dir.ngSrc)} the \\`ngSrcset\\` attribute is present but ` +\n `no image loader is configured (i.e. the default one is being used), ` +\n `which would result in the same image being used for all configured sizes. ` +\n `To fix this, provide a loader or remove the \\`ngSrcset\\` attribute from the image.`));\n }\n}\n/**\n * Warns if loaderParams is present and no loader is configured (i.e. the default one is being\n * used).\n */\nfunction assertNoLoaderParamsWithoutLoader(dir, imageLoader) {\n if (dir.loaderParams && imageLoader === noopImageLoader) {\n console.warn(ɵformatRuntimeError(2963 /* RuntimeErrorCode.MISSING_NECESSARY_LOADER */, `${imgDirectiveDetails(dir.ngSrc)} the \\`loaderParams\\` attribute is present but ` +\n `no image loader is configured (i.e. the default one is being used), ` +\n `which means that the loaderParams data will not be consumed and will not affect the URL. ` +\n `To fix this, provide a custom loader or remove the \\`loaderParams\\` attribute from the image.`));\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 * @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 * @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// This file only reexports content of the `src` folder. Keep it that way.\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 * Generated bundle index. Do not edit.\n */\n\nexport { APP_BASE_HREF, AsyncPipe, CommonModule, CurrencyPipe, DATE_PIPE_DEFAULT_TIMEZONE, DOCUMENT, DatePipe, DecimalPipe, FormStyle, FormatWidth, HashLocationStrategy, I18nPluralPipe, I18nSelectPipe, IMAGE_LOADER, JsonPipe, KeyValuePipe, LOCATION_INITIALIZED, Location, LocationStrategy, LowerCasePipe, NgClass, NgComponentOutlet, NgForOf as NgFor, NgForOf, NgForOfContext, NgIf, NgIfContext, NgLocaleLocalization, NgLocalization, NgOptimizedImage, NgPlural, NgPluralCase, NgStyle, NgSwitch, NgSwitchCase, NgSwitchDefault, NgTemplateOutlet, NumberFormatStyle, NumberSymbol, PRECONNECT_CHECK_BLOCKLIST, PathLocationStrategy, PercentPipe, PlatformLocation, Plural, SlicePipe, TitleCasePipe, TranslationWidth, UpperCasePipe, VERSION, ViewportScroller, WeekDay, XhrFactory, formatCurrency, formatDate, formatNumber, formatPercent, getCurrencySymbol, getLocaleCurrencyCode, getLocaleCurrencyName, getLocaleCurrencySymbol, getLocaleDateFormat, getLocaleDateTimeFormat, getLocaleDayNames, getLocaleDayPeriods, getLocaleDirection, getLocaleEraNames, getLocaleExtraDayPeriodRules, getLocaleExtraDayPeriods, getLocaleFirstDayOfWeek, getLocaleId, getLocaleMonthNames, getLocaleNumberFormat, getLocaleNumberSymbol, getLocalePluralCase, getLocaleTimeFormat, getLocaleWeekEndRange, getNumberOfCurrencyDigits, isPlatformBrowser, isPlatformServer, isPlatformWorkerApp, isPlatformWorkerUi, provideCloudflareLoader, provideCloudinaryLoader, provideImageKitLoader, provideImgixLoader, registerLocaleData, BrowserPlatformLocation as ɵBrowserPlatformLocation, DomAdapter as ɵDomAdapter, NullViewportScroller as ɵNullViewportScroller, PLATFORM_BROWSER_ID as ɵPLATFORM_BROWSER_ID, PLATFORM_SERVER_ID as ɵPLATFORM_SERVER_ID, PLATFORM_WORKER_APP_ID as ɵPLATFORM_WORKER_APP_ID, PLATFORM_WORKER_UI_ID as ɵPLATFORM_WORKER_UI_ID, getDOM as ɵgetDOM, parseCookieValue as ɵparseCookieValue, setRootDomAdapter as ɵsetRootDomAdapter };\n","/**\n * @license Angular v14.3.0\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport * as i1 from '@angular/common';\nimport { DOCUMENT, ɵparseCookieValue, XhrFactory as XhrFactory$1 } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { Injectable, InjectionToken, Inject, PLATFORM_ID, NgModule } from '@angular/core';\nimport { of, Observable } from 'rxjs';\nimport { concatMap, filter, map } from 'rxjs/operators';\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 * Transforms an `HttpRequest` into a stream of `HttpEvent`s, one of which will likely be a\n * `HttpResponse`.\n *\n * `HttpHandler` is injectable. When injected, the handler instance dispatches requests to the\n * first interceptor in the chain, which dispatches to the second, etc, eventually reaching the\n * `HttpBackend`.\n *\n * In an `HttpInterceptor`, the `HttpHandler` parameter is the next interceptor in the chain.\n *\n * @publicApi\n */\nclass HttpHandler {\n}\n/**\n * A final `HttpHandler` which will dispatch the request via browser HTTP APIs to a backend.\n *\n * Interceptors sit between the `HttpClient` interface and the `HttpBackend`.\n *\n * When injected, `HttpBackend` dispatches requests directly to the backend, without going\n * through the interceptor chain.\n *\n * @publicApi\n */\nclass HttpBackend {\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 the header configuration options for an HTTP request.\n * Instances are immutable. Modifying methods return a cloned\n * instance with the change. The original object is never changed.\n *\n * @publicApi\n */\nclass HttpHeaders {\n /** Constructs a new HTTP header object with the given values.*/\n constructor(headers) {\n /**\n * Internal map of lowercased header names to the normalized\n * form of the name (the form seen first).\n */\n this.normalizedNames = new Map();\n /**\n * Queued updates to be materialized the next initialization.\n */\n this.lazyUpdate = null;\n if (!headers) {\n this.headers = new Map();\n }\n else if (typeof headers === 'string') {\n this.lazyInit = () => {\n this.headers = new Map();\n headers.split('\\n').forEach(line => {\n const index = line.indexOf(':');\n if (index > 0) {\n const name = line.slice(0, index);\n const key = name.toLowerCase();\n const value = line.slice(index + 1).trim();\n this.maybeSetNormalizedName(name, key);\n if (this.headers.has(key)) {\n this.headers.get(key).push(value);\n }\n else {\n this.headers.set(key, [value]);\n }\n }\n });\n };\n }\n else {\n this.lazyInit = () => {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n assertValidHeaders(headers);\n }\n this.headers = new Map();\n Object.keys(headers).forEach(name => {\n let values = headers[name];\n const key = name.toLowerCase();\n if (typeof values === 'string') {\n values = [values];\n }\n if (values.length > 0) {\n this.headers.set(key, values);\n this.maybeSetNormalizedName(name, key);\n }\n });\n };\n }\n }\n /**\n * Checks for existence of a given header.\n *\n * @param name The header name to check for existence.\n *\n * @returns True if the header exists, false otherwise.\n */\n has(name) {\n this.init();\n return this.headers.has(name.toLowerCase());\n }\n /**\n * Retrieves the first value of a given header.\n *\n * @param name The header name.\n *\n * @returns The value string if the header exists, null otherwise\n */\n get(name) {\n this.init();\n const values = this.headers.get(name.toLowerCase());\n return values && values.length > 0 ? values[0] : null;\n }\n /**\n * Retrieves the names of the headers.\n *\n * @returns A list of header names.\n */\n keys() {\n this.init();\n return Array.from(this.normalizedNames.values());\n }\n /**\n * Retrieves a list of values for a given header.\n *\n * @param name The header name from which to retrieve values.\n *\n * @returns A string of values if the header exists, null otherwise.\n */\n getAll(name) {\n this.init();\n return this.headers.get(name.toLowerCase()) || null;\n }\n /**\n * Appends a new value to the existing set of values for a header\n * and returns them in a clone of the original instance.\n *\n * @param name The header name for which to append the values.\n * @param value The value to append.\n *\n * @returns A clone of the HTTP headers object with the value appended to the given header.\n */\n append(name, value) {\n return this.clone({ name, value, op: 'a' });\n }\n /**\n * Sets or modifies a value for a given header in a clone of the original instance.\n * If the header already exists, its value is replaced with the given value\n * in the returned object.\n *\n * @param name The header name.\n * @param value The value or values to set or override for the given header.\n *\n * @returns A clone of the HTTP headers object with the newly set header value.\n */\n set(name, value) {\n return this.clone({ name, value, op: 's' });\n }\n /**\n * Deletes values for a given header in a clone of the original instance.\n *\n * @param name The header name.\n * @param value The value or values to delete for the given header.\n *\n * @returns A clone of the HTTP headers object with the given value deleted.\n */\n delete(name, value) {\n return this.clone({ name, value, op: 'd' });\n }\n maybeSetNormalizedName(name, lcName) {\n if (!this.normalizedNames.has(lcName)) {\n this.normalizedNames.set(lcName, name);\n }\n }\n init() {\n if (!!this.lazyInit) {\n if (this.lazyInit instanceof HttpHeaders) {\n this.copyFrom(this.lazyInit);\n }\n else {\n this.lazyInit();\n }\n this.lazyInit = null;\n if (!!this.lazyUpdate) {\n this.lazyUpdate.forEach(update => this.applyUpdate(update));\n this.lazyUpdate = null;\n }\n }\n }\n copyFrom(other) {\n other.init();\n Array.from(other.headers.keys()).forEach(key => {\n this.headers.set(key, other.headers.get(key));\n this.normalizedNames.set(key, other.normalizedNames.get(key));\n });\n }\n clone(update) {\n const clone = new HttpHeaders();\n clone.lazyInit =\n (!!this.lazyInit && this.lazyInit instanceof HttpHeaders) ? this.lazyInit : this;\n clone.lazyUpdate = (this.lazyUpdate || []).concat([update]);\n return clone;\n }\n applyUpdate(update) {\n const key = update.name.toLowerCase();\n switch (update.op) {\n case 'a':\n case 's':\n let value = update.value;\n if (typeof value === 'string') {\n value = [value];\n }\n if (value.length === 0) {\n return;\n }\n this.maybeSetNormalizedName(update.name, key);\n const base = (update.op === 'a' ? this.headers.get(key) : undefined) || [];\n base.push(...value);\n this.headers.set(key, base);\n break;\n case 'd':\n const toDelete = update.value;\n if (!toDelete) {\n this.headers.delete(key);\n this.normalizedNames.delete(key);\n }\n else {\n let existing = this.headers.get(key);\n if (!existing) {\n return;\n }\n existing = existing.filter(value => toDelete.indexOf(value) === -1);\n if (existing.length === 0) {\n this.headers.delete(key);\n this.normalizedNames.delete(key);\n }\n else {\n this.headers.set(key, existing);\n }\n }\n break;\n }\n }\n /**\n * @internal\n */\n forEach(fn) {\n this.init();\n Array.from(this.normalizedNames.keys())\n .forEach(key => fn(this.normalizedNames.get(key), this.headers.get(key)));\n }\n}\n/**\n * Verifies that the headers object has the right shape: the values\n * must be either strings or arrays. Throws an error if an invalid\n * header value is present.\n */\nfunction assertValidHeaders(headers) {\n for (const [key, value] of Object.entries(headers)) {\n if (typeof value !== 'string' && !Array.isArray(value)) {\n throw new Error(`Unexpected value of the \\`${key}\\` header provided. ` +\n `Expecting either a string or an array, but got: \\`${value}\\`.`);\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 */\n/**\n * Provides encoding and decoding of URL parameter and query-string values.\n *\n * Serializes and parses URL parameter keys and values to encode and decode them.\n * If you pass URL query parameters without encoding,\n * the query parameters can be misinterpreted at the receiving end.\n *\n *\n * @publicApi\n */\nclass HttpUrlEncodingCodec {\n /**\n * Encodes a key name for a URL parameter or query-string.\n * @param key The key name.\n * @returns The encoded key name.\n */\n encodeKey(key) {\n return standardEncoding(key);\n }\n /**\n * Encodes the value of a URL parameter or query-string.\n * @param value The value.\n * @returns The encoded value.\n */\n encodeValue(value) {\n return standardEncoding(value);\n }\n /**\n * Decodes an encoded URL parameter or query-string key.\n * @param key The encoded key name.\n * @returns The decoded key name.\n */\n decodeKey(key) {\n return decodeURIComponent(key);\n }\n /**\n * Decodes an encoded URL parameter or query-string value.\n * @param value The encoded value.\n * @returns The decoded value.\n */\n decodeValue(value) {\n return decodeURIComponent(value);\n }\n}\nfunction paramParser(rawParams, codec) {\n const map = new Map();\n if (rawParams.length > 0) {\n // The `window.location.search` can be used while creating an instance of the `HttpParams` class\n // (e.g. `new HttpParams({ fromString: window.location.search })`). The `window.location.search`\n // may start with the `?` char, so we strip it if it's present.\n const params = rawParams.replace(/^\\?/, '').split('&');\n params.forEach((param) => {\n const eqIdx = param.indexOf('=');\n const [key, val] = eqIdx == -1 ?\n [codec.decodeKey(param), ''] :\n [codec.decodeKey(param.slice(0, eqIdx)), codec.decodeValue(param.slice(eqIdx + 1))];\n const list = map.get(key) || [];\n list.push(val);\n map.set(key, list);\n });\n }\n return map;\n}\n/**\n * Encode input string with standard encodeURIComponent and then un-encode specific characters.\n */\nconst STANDARD_ENCODING_REGEX = /%(\\d[a-f0-9])/gi;\nconst STANDARD_ENCODING_REPLACEMENTS = {\n '40': '@',\n '3A': ':',\n '24': '$',\n '2C': ',',\n '3B': ';',\n '3D': '=',\n '3F': '?',\n '2F': '/',\n};\nfunction standardEncoding(v) {\n return encodeURIComponent(v).replace(STANDARD_ENCODING_REGEX, (s, t) => STANDARD_ENCODING_REPLACEMENTS[t] ?? s);\n}\nfunction valueToString(value) {\n return `${value}`;\n}\n/**\n * An HTTP request/response body that represents serialized parameters,\n * per the MIME type `application/x-www-form-urlencoded`.\n *\n * This class is immutable; all mutation operations return a new instance.\n *\n * @publicApi\n */\nclass HttpParams {\n constructor(options = {}) {\n this.updates = null;\n this.cloneFrom = null;\n this.encoder = options.encoder || new HttpUrlEncodingCodec();\n if (!!options.fromString) {\n if (!!options.fromObject) {\n throw new Error(`Cannot specify both fromString and fromObject.`);\n }\n this.map = paramParser(options.fromString, this.encoder);\n }\n else if (!!options.fromObject) {\n this.map = new Map();\n Object.keys(options.fromObject).forEach(key => {\n const value = options.fromObject[key];\n // convert the values to strings\n const values = Array.isArray(value) ? value.map(valueToString) : [valueToString(value)];\n this.map.set(key, values);\n });\n }\n else {\n this.map = null;\n }\n }\n /**\n * Reports whether the body includes one or more values for a given parameter.\n * @param param The parameter name.\n * @returns True if the parameter has one or more values,\n * false if it has no value or is not present.\n */\n has(param) {\n this.init();\n return this.map.has(param);\n }\n /**\n * Retrieves the first value for a parameter.\n * @param param The parameter name.\n * @returns The first value of the given parameter,\n * or `null` if the parameter is not present.\n */\n get(param) {\n this.init();\n const res = this.map.get(param);\n return !!res ? res[0] : null;\n }\n /**\n * Retrieves all values for a parameter.\n * @param param The parameter name.\n * @returns All values in a string array,\n * or `null` if the parameter not present.\n */\n getAll(param) {\n this.init();\n return this.map.get(param) || null;\n }\n /**\n * Retrieves all the parameters for this body.\n * @returns The parameter names in a string array.\n */\n keys() {\n this.init();\n return Array.from(this.map.keys());\n }\n /**\n * Appends a new value to existing values for a parameter.\n * @param param The parameter name.\n * @param value The new value to add.\n * @return A new body with the appended value.\n */\n append(param, value) {\n return this.clone({ param, value, op: 'a' });\n }\n /**\n * Constructs a new body with appended values for the given parameter name.\n * @param params parameters and values\n * @return A new body with the new value.\n */\n appendAll(params) {\n const updates = [];\n Object.keys(params).forEach(param => {\n const value = params[param];\n if (Array.isArray(value)) {\n value.forEach(_value => {\n updates.push({ param, value: _value, op: 'a' });\n });\n }\n else {\n updates.push({ param, value: value, op: 'a' });\n }\n });\n return this.clone(updates);\n }\n /**\n * Replaces the value for a parameter.\n * @param param The parameter name.\n * @param value The new value.\n * @return A new body with the new value.\n */\n set(param, value) {\n return this.clone({ param, value, op: 's' });\n }\n /**\n * Removes a given value or all values from a parameter.\n * @param param The parameter name.\n * @param value The value to remove, if provided.\n * @return A new body with the given value removed, or with all values\n * removed if no value is specified.\n */\n delete(param, value) {\n return this.clone({ param, value, op: 'd' });\n }\n /**\n * Serializes the body to an encoded string, where key-value pairs (separated by `=`) are\n * separated by `&`s.\n */\n toString() {\n this.init();\n return this.keys()\n .map(key => {\n const eKey = this.encoder.encodeKey(key);\n // `a: ['1']` produces `'a=1'`\n // `b: []` produces `''`\n // `c: ['1', '2']` produces `'c=1&c=2'`\n return this.map.get(key).map(value => eKey + '=' + this.encoder.encodeValue(value))\n .join('&');\n })\n // filter out empty values because `b: []` produces `''`\n // which results in `a=1&&c=1&c=2` instead of `a=1&c=1&c=2` if we don't\n .filter(param => param !== '')\n .join('&');\n }\n clone(update) {\n const clone = new HttpParams({ encoder: this.encoder });\n clone.cloneFrom = this.cloneFrom || this;\n clone.updates = (this.updates || []).concat(update);\n return clone;\n }\n init() {\n if (this.map === null) {\n this.map = new Map();\n }\n if (this.cloneFrom !== null) {\n this.cloneFrom.init();\n this.cloneFrom.keys().forEach(key => this.map.set(key, this.cloneFrom.map.get(key)));\n this.updates.forEach(update => {\n switch (update.op) {\n case 'a':\n case 's':\n const base = (update.op === 'a' ? this.map.get(update.param) : undefined) || [];\n base.push(valueToString(update.value));\n this.map.set(update.param, base);\n break;\n case 'd':\n if (update.value !== undefined) {\n let base = this.map.get(update.param) || [];\n const idx = base.indexOf(valueToString(update.value));\n if (idx !== -1) {\n base.splice(idx, 1);\n }\n if (base.length > 0) {\n this.map.set(update.param, base);\n }\n else {\n this.map.delete(update.param);\n }\n }\n else {\n this.map.delete(update.param);\n break;\n }\n }\n });\n this.cloneFrom = this.updates = null;\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 */\n/**\n * A token used to manipulate and access values stored in `HttpContext`.\n *\n * @publicApi\n */\nclass HttpContextToken {\n constructor(defaultValue) {\n this.defaultValue = defaultValue;\n }\n}\n/**\n * Http context stores arbitrary user defined values and ensures type safety without\n * actually knowing the types. It is backed by a `Map` and guarantees that keys do not clash.\n *\n * This context is mutable and is shared between cloned requests unless explicitly specified.\n *\n * @usageNotes\n *\n * ### Usage Example\n *\n * ```typescript\n * // inside cache.interceptors.ts\n * export const IS_CACHE_ENABLED = new HttpContextToken(() => false);\n *\n * export class CacheInterceptor implements HttpInterceptor {\n *\n * intercept(req: HttpRequest, delegate: HttpHandler): Observable> {\n * if (req.context.get(IS_CACHE_ENABLED) === true) {\n * return ...;\n * }\n * return delegate.handle(req);\n * }\n * }\n *\n * // inside a service\n *\n * this.httpClient.get('/api/weather', {\n * context: new HttpContext().set(IS_CACHE_ENABLED, true)\n * }).subscribe(...);\n * ```\n *\n * @publicApi\n */\nclass HttpContext {\n constructor() {\n this.map = new Map();\n }\n /**\n * Store a value in the context. If a value is already present it will be overwritten.\n *\n * @param token The reference to an instance of `HttpContextToken`.\n * @param value The value to store.\n *\n * @returns A reference to itself for easy chaining.\n */\n set(token, value) {\n this.map.set(token, value);\n return this;\n }\n /**\n * Retrieve the value associated with the given token.\n *\n * @param token The reference to an instance of `HttpContextToken`.\n *\n * @returns The stored value or default if one is defined.\n */\n get(token) {\n if (!this.map.has(token)) {\n this.map.set(token, token.defaultValue());\n }\n return this.map.get(token);\n }\n /**\n * Delete the value associated with the given token.\n *\n * @param token The reference to an instance of `HttpContextToken`.\n *\n * @returns A reference to itself for easy chaining.\n */\n delete(token) {\n this.map.delete(token);\n return this;\n }\n /**\n * Checks for existence of a given token.\n *\n * @param token The reference to an instance of `HttpContextToken`.\n *\n * @returns True if the token exists, false otherwise.\n */\n has(token) {\n return this.map.has(token);\n }\n /**\n * @returns a list of tokens currently stored in the context.\n */\n keys() {\n return this.map.keys();\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 * Determine whether the given HTTP method may include a body.\n */\nfunction mightHaveBody(method) {\n switch (method) {\n case 'DELETE':\n case 'GET':\n case 'HEAD':\n case 'OPTIONS':\n case 'JSONP':\n return false;\n default:\n return true;\n }\n}\n/**\n * Safely assert whether the given value is an ArrayBuffer.\n *\n * In some execution environments ArrayBuffer is not defined.\n */\nfunction isArrayBuffer(value) {\n return typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer;\n}\n/**\n * Safely assert whether the given value is a Blob.\n *\n * In some execution environments Blob is not defined.\n */\nfunction isBlob(value) {\n return typeof Blob !== 'undefined' && value instanceof Blob;\n}\n/**\n * Safely assert whether the given value is a FormData instance.\n *\n * In some execution environments FormData is not defined.\n */\nfunction isFormData(value) {\n return typeof FormData !== 'undefined' && value instanceof FormData;\n}\n/**\n * Safely assert whether the given value is a URLSearchParams instance.\n *\n * In some execution environments URLSearchParams is not defined.\n */\nfunction isUrlSearchParams(value) {\n return typeof URLSearchParams !== 'undefined' && value instanceof URLSearchParams;\n}\n/**\n * An outgoing HTTP request with an optional typed body.\n *\n * `HttpRequest` represents an outgoing request, including URL, method,\n * headers, body, and other request configuration options. Instances should be\n * assumed to be immutable. To modify a `HttpRequest`, the `clone`\n * method should be used.\n *\n * @publicApi\n */\nclass HttpRequest {\n constructor(method, url, third, fourth) {\n this.url = url;\n /**\n * The request body, or `null` if one isn't set.\n *\n * Bodies are not enforced to be immutable, as they can include a reference to any\n * user-defined data type. However, interceptors should take care to preserve\n * idempotence by treating them as such.\n */\n this.body = null;\n /**\n * Whether this request should be made in a way that exposes progress events.\n *\n * Progress events are expensive (change detection runs on each event) and so\n * they should only be requested if the consumer intends to monitor them.\n */\n this.reportProgress = false;\n /**\n * Whether this request should be sent with outgoing credentials (cookies).\n */\n this.withCredentials = false;\n /**\n * The expected response type of the server.\n *\n * This is used to parse the response appropriately before returning it to\n * the requestee.\n */\n this.responseType = 'json';\n this.method = method.toUpperCase();\n // Next, need to figure out which argument holds the HttpRequestInit\n // options, if any.\n let options;\n // Check whether a body argument is expected. The only valid way to omit\n // the body argument is to use a known no-body method like GET.\n if (mightHaveBody(this.method) || !!fourth) {\n // Body is the third argument, options are the fourth.\n this.body = (third !== undefined) ? third : null;\n options = fourth;\n }\n else {\n // No body required, options are the third argument. The body stays null.\n options = third;\n }\n // If options have been passed, interpret them.\n if (options) {\n // Normalize reportProgress and withCredentials.\n this.reportProgress = !!options.reportProgress;\n this.withCredentials = !!options.withCredentials;\n // Override default response type of 'json' if one is provided.\n if (!!options.responseType) {\n this.responseType = options.responseType;\n }\n // Override headers if they're provided.\n if (!!options.headers) {\n this.headers = options.headers;\n }\n if (!!options.context) {\n this.context = options.context;\n }\n if (!!options.params) {\n this.params = options.params;\n }\n }\n // If no headers have been passed in, construct a new HttpHeaders instance.\n if (!this.headers) {\n this.headers = new HttpHeaders();\n }\n // If no context have been passed in, construct a new HttpContext instance.\n if (!this.context) {\n this.context = new HttpContext();\n }\n // If no parameters have been passed in, construct a new HttpUrlEncodedParams instance.\n if (!this.params) {\n this.params = new HttpParams();\n this.urlWithParams = url;\n }\n else {\n // Encode the parameters to a string in preparation for inclusion in the URL.\n const params = this.params.toString();\n if (params.length === 0) {\n // No parameters, the visible URL is just the URL given at creation time.\n this.urlWithParams = url;\n }\n else {\n // Does the URL already have query parameters? Look for '?'.\n const qIdx = url.indexOf('?');\n // There are 3 cases to handle:\n // 1) No existing parameters -> append '?' followed by params.\n // 2) '?' exists and is followed by existing query string ->\n // append '&' followed by params.\n // 3) '?' exists at the end of the url -> append params directly.\n // This basically amounts to determining the character, if any, with\n // which to join the URL and parameters.\n const sep = qIdx === -1 ? '?' : (qIdx < url.length - 1 ? '&' : '');\n this.urlWithParams = url + sep + params;\n }\n }\n }\n /**\n * Transform the free-form body into a serialized format suitable for\n * transmission to the server.\n */\n serializeBody() {\n // If no body is present, no need to serialize it.\n if (this.body === null) {\n return null;\n }\n // Check whether the body is already in a serialized form. If so,\n // it can just be returned directly.\n if (isArrayBuffer(this.body) || isBlob(this.body) || isFormData(this.body) ||\n isUrlSearchParams(this.body) || typeof this.body === 'string') {\n return this.body;\n }\n // Check whether the body is an instance of HttpUrlEncodedParams.\n if (this.body instanceof HttpParams) {\n return this.body.toString();\n }\n // Check whether the body is an object or array, and serialize with JSON if so.\n if (typeof this.body === 'object' || typeof this.body === 'boolean' ||\n Array.isArray(this.body)) {\n return JSON.stringify(this.body);\n }\n // Fall back on toString() for everything else.\n return this.body.toString();\n }\n /**\n * Examine the body and attempt to infer an appropriate MIME type\n * for it.\n *\n * If no such type can be inferred, this method will return `null`.\n */\n detectContentTypeHeader() {\n // An empty body has no content type.\n if (this.body === null) {\n return null;\n }\n // FormData bodies rely on the browser's content type assignment.\n if (isFormData(this.body)) {\n return null;\n }\n // Blobs usually have their own content type. If it doesn't, then\n // no type can be inferred.\n if (isBlob(this.body)) {\n return this.body.type || null;\n }\n // Array buffers have unknown contents and thus no type can be inferred.\n if (isArrayBuffer(this.body)) {\n return null;\n }\n // Technically, strings could be a form of JSON data, but it's safe enough\n // to assume they're plain strings.\n if (typeof this.body === 'string') {\n return 'text/plain';\n }\n // `HttpUrlEncodedParams` has its own content-type.\n if (this.body instanceof HttpParams) {\n return 'application/x-www-form-urlencoded;charset=UTF-8';\n }\n // Arrays, objects, boolean and numbers will be encoded as JSON.\n if (typeof this.body === 'object' || typeof this.body === 'number' ||\n typeof this.body === 'boolean') {\n return 'application/json';\n }\n // No type could be inferred.\n return null;\n }\n clone(update = {}) {\n // For method, url, and responseType, take the current value unless\n // it is overridden in the update hash.\n const method = update.method || this.method;\n const url = update.url || this.url;\n const responseType = update.responseType || this.responseType;\n // The body is somewhat special - a `null` value in update.body means\n // whatever current body is present is being overridden with an empty\n // body, whereas an `undefined` value in update.body implies no\n // override.\n const body = (update.body !== undefined) ? update.body : this.body;\n // Carefully handle the boolean options to differentiate between\n // `false` and `undefined` in the update args.\n const withCredentials = (update.withCredentials !== undefined) ? update.withCredentials : this.withCredentials;\n const reportProgress = (update.reportProgress !== undefined) ? update.reportProgress : this.reportProgress;\n // Headers and params may be appended to if `setHeaders` or\n // `setParams` are used.\n let headers = update.headers || this.headers;\n let params = update.params || this.params;\n // Pass on context if needed\n const context = update.context ?? this.context;\n // Check whether the caller has asked to add headers.\n if (update.setHeaders !== undefined) {\n // Set every requested header.\n headers =\n Object.keys(update.setHeaders)\n .reduce((headers, name) => headers.set(name, update.setHeaders[name]), headers);\n }\n // Check whether the caller has asked to set params.\n if (update.setParams) {\n // Set every requested param.\n params = Object.keys(update.setParams)\n .reduce((params, param) => params.set(param, update.setParams[param]), params);\n }\n // Finally, construct the new HttpRequest using the pieces from above.\n return new HttpRequest(method, url, body, {\n params,\n headers,\n context,\n reportProgress,\n responseType,\n withCredentials,\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 */\n/**\n * Type enumeration for the different kinds of `HttpEvent`.\n *\n * @publicApi\n */\nvar HttpEventType;\n(function (HttpEventType) {\n /**\n * The request was sent out over the wire.\n */\n HttpEventType[HttpEventType[\"Sent\"] = 0] = \"Sent\";\n /**\n * An upload progress event was received.\n */\n HttpEventType[HttpEventType[\"UploadProgress\"] = 1] = \"UploadProgress\";\n /**\n * The response status code and headers were received.\n */\n HttpEventType[HttpEventType[\"ResponseHeader\"] = 2] = \"ResponseHeader\";\n /**\n * A download progress event was received.\n */\n HttpEventType[HttpEventType[\"DownloadProgress\"] = 3] = \"DownloadProgress\";\n /**\n * The full response including the body was received.\n */\n HttpEventType[HttpEventType[\"Response\"] = 4] = \"Response\";\n /**\n * A custom event from an interceptor or a backend.\n */\n HttpEventType[HttpEventType[\"User\"] = 5] = \"User\";\n})(HttpEventType || (HttpEventType = {}));\n/**\n * Base class for both `HttpResponse` and `HttpHeaderResponse`.\n *\n * @publicApi\n */\nclass HttpResponseBase {\n /**\n * Super-constructor for all responses.\n *\n * The single parameter accepted is an initialization hash. Any properties\n * of the response passed there will override the default values.\n */\n constructor(init, defaultStatus = 200 /* HttpStatusCode.Ok */, defaultStatusText = 'OK') {\n // If the hash has values passed, use them to initialize the response.\n // Otherwise use the default values.\n this.headers = init.headers || new HttpHeaders();\n this.status = init.status !== undefined ? init.status : defaultStatus;\n this.statusText = init.statusText || defaultStatusText;\n this.url = init.url || null;\n // Cache the ok value to avoid defining a getter.\n this.ok = this.status >= 200 && this.status < 300;\n }\n}\n/**\n * A partial HTTP response which only includes the status and header data,\n * but no response body.\n *\n * `HttpHeaderResponse` is a `HttpEvent` available on the response\n * event stream, only when progress events are requested.\n *\n * @publicApi\n */\nclass HttpHeaderResponse extends HttpResponseBase {\n /**\n * Create a new `HttpHeaderResponse` with the given parameters.\n */\n constructor(init = {}) {\n super(init);\n this.type = HttpEventType.ResponseHeader;\n }\n /**\n * Copy this `HttpHeaderResponse`, overriding its contents with the\n * given parameter hash.\n */\n clone(update = {}) {\n // Perform a straightforward initialization of the new HttpHeaderResponse,\n // overriding the current parameters with new ones if given.\n return new HttpHeaderResponse({\n headers: update.headers || this.headers,\n status: update.status !== undefined ? update.status : this.status,\n statusText: update.statusText || this.statusText,\n url: update.url || this.url || undefined,\n });\n }\n}\n/**\n * A full HTTP response, including a typed response body (which may be `null`\n * if one was not returned).\n *\n * `HttpResponse` is a `HttpEvent` available on the response event\n * stream.\n *\n * @publicApi\n */\nclass HttpResponse extends HttpResponseBase {\n /**\n * Construct a new `HttpResponse`.\n */\n constructor(init = {}) {\n super(init);\n this.type = HttpEventType.Response;\n this.body = init.body !== undefined ? init.body : null;\n }\n clone(update = {}) {\n return new HttpResponse({\n body: (update.body !== undefined) ? update.body : this.body,\n headers: update.headers || this.headers,\n status: (update.status !== undefined) ? update.status : this.status,\n statusText: update.statusText || this.statusText,\n url: update.url || this.url || undefined,\n });\n }\n}\n/**\n * A response that represents an error or failure, either from a\n * non-successful HTTP status, an error while executing the request,\n * or some other failure which occurred during the parsing of the response.\n *\n * Any error returned on the `Observable` response stream will be\n * wrapped in an `HttpErrorResponse` to provide additional context about\n * the state of the HTTP layer when the error occurred. The error property\n * will contain either a wrapped Error object or the error response returned\n * from the server.\n *\n * @publicApi\n */\nclass HttpErrorResponse extends HttpResponseBase {\n constructor(init) {\n // Initialize with a default status of 0 / Unknown Error.\n super(init, 0, 'Unknown Error');\n this.name = 'HttpErrorResponse';\n /**\n * Errors are never okay, even when the status code is in the 2xx success range.\n */\n this.ok = false;\n // If the response was successful, then this was a parse error. Otherwise, it was\n // a protocol-level failure of some sort. Either the request failed in transit\n // or the server returned an unsuccessful status code.\n if (this.status >= 200 && this.status < 300) {\n this.message = `Http failure during parsing for ${init.url || '(unknown url)'}`;\n }\n else {\n this.message = `Http failure response for ${init.url || '(unknown url)'}: ${init.status} ${init.statusText}`;\n }\n this.error = init.error || null;\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 * Constructs an instance of `HttpRequestOptions` from a source `HttpMethodOptions` and\n * the given `body`. This function clones the object and adds the body.\n *\n * Note that the `responseType` *options* value is a String that identifies the\n * single data type of the response.\n * A single overload version of the method handles each response type.\n * The value of `responseType` cannot be a union, as the combined signature could imply.\n *\n */\nfunction addBody(options, body) {\n return {\n body,\n headers: options.headers,\n context: options.context,\n observe: options.observe,\n params: options.params,\n reportProgress: options.reportProgress,\n responseType: options.responseType,\n withCredentials: options.withCredentials,\n };\n}\n/**\n * Performs HTTP requests.\n * This service is available as an injectable class, with methods to perform HTTP requests.\n * Each request method has multiple signatures, and the return type varies based on\n * the signature that is called (mainly the values of `observe` and `responseType`).\n *\n * Note that the `responseType` *options* value is a String that identifies the\n * single data type of the response.\n * A single overload version of the method handles each response type.\n * The value of `responseType` cannot be a union, as the combined signature could imply.\n\n *\n * @usageNotes\n * Sample HTTP requests for the [Tour of Heroes](/tutorial/toh-pt0) application.\n *\n * ### HTTP Request Example\n *\n * ```\n * // GET heroes whose name contains search term\n * searchHeroes(term: string): observable{\n *\n * const params = new HttpParams({fromString: 'name=term'});\n * return this.httpClient.request('GET', this.heroesUrl, {responseType:'json', params});\n * }\n * ```\n *\n * Alternatively, the parameter string can be used without invoking HttpParams\n * by directly joining to the URL.\n * ```\n * this.httpClient.request('GET', this.heroesUrl + '?' + 'name=term', {responseType:'json'});\n * ```\n *\n *\n * ### JSONP Example\n * ```\n * requestJsonp(url, callback = 'callback') {\n * return this.httpClient.jsonp(this.heroesURL, callback);\n * }\n * ```\n *\n * ### PATCH Example\n * ```\n * // PATCH one of the heroes' name\n * patchHero (id: number, heroName: string): Observable<{}> {\n * const url = `${this.heroesUrl}/${id}`; // PATCH api/heroes/42\n * return this.httpClient.patch(url, {name: heroName}, httpOptions)\n * .pipe(catchError(this.handleError('patchHero')));\n * }\n * ```\n *\n * @see [HTTP Guide](guide/http)\n * @see [HTTP Request](api/common/http/HttpRequest)\n *\n * @publicApi\n */\nclass HttpClient {\n constructor(handler) {\n this.handler = handler;\n }\n /**\n * Constructs an observable for a generic HTTP request that, when subscribed,\n * fires the request through the chain of registered interceptors and on to the\n * server.\n *\n * You can pass an `HttpRequest` directly as the only parameter. In this case,\n * the call returns an observable of the raw `HttpEvent` stream.\n *\n * Alternatively you can pass an HTTP method as the first parameter,\n * a URL string as the second, and an options hash containing the request body as the third.\n * See `addBody()`. In this case, the specified `responseType` and `observe` options determine the\n * type of returned observable.\n * * The `responseType` value determines how a successful response body is parsed.\n * * If `responseType` is the default `json`, you can pass a type interface for the resulting\n * object as a type parameter to the call.\n *\n * The `observe` value determines the return type, according to what you are interested in\n * observing.\n * * An `observe` value of events returns an observable of the raw `HttpEvent` stream, including\n * progress events by default.\n * * An `observe` value of response returns an observable of `HttpResponse`,\n * where the `T` parameter depends on the `responseType` and any optionally provided type\n * parameter.\n * * An `observe` value of body returns an observable of `` with the same `T` body type.\n *\n */\n request(first, url, options = {}) {\n let req;\n // First, check whether the primary argument is an instance of `HttpRequest`.\n if (first instanceof HttpRequest) {\n // It is. The other arguments must be undefined (per the signatures) and can be\n // ignored.\n req = first;\n }\n else {\n // It's a string, so it represents a URL. Construct a request based on it,\n // and incorporate the remaining arguments (assuming `GET` unless a method is\n // provided.\n // Figure out the headers.\n let headers = undefined;\n if (options.headers instanceof HttpHeaders) {\n headers = options.headers;\n }\n else {\n headers = new HttpHeaders(options.headers);\n }\n // Sort out parameters.\n let params = undefined;\n if (!!options.params) {\n if (options.params instanceof HttpParams) {\n params = options.params;\n }\n else {\n params = new HttpParams({ fromObject: options.params });\n }\n }\n // Construct the request.\n req = new HttpRequest(first, url, (options.body !== undefined ? options.body : null), {\n headers,\n context: options.context,\n params,\n reportProgress: options.reportProgress,\n // By default, JSON is assumed to be returned for all calls.\n responseType: options.responseType || 'json',\n withCredentials: options.withCredentials,\n });\n }\n // Start with an Observable.of() the initial request, and run the handler (which\n // includes all interceptors) inside a concatMap(). This way, the handler runs\n // inside an Observable chain, which causes interceptors to be re-run on every\n // subscription (this also makes retries re-run the handler, including interceptors).\n const events$ = of(req).pipe(concatMap((req) => this.handler.handle(req)));\n // If coming via the API signature which accepts a previously constructed HttpRequest,\n // the only option is to get the event stream. Otherwise, return the event stream if\n // that is what was requested.\n if (first instanceof HttpRequest || options.observe === 'events') {\n return events$;\n }\n // The requested stream contains either the full response or the body. In either\n // case, the first step is to filter the event stream to extract a stream of\n // responses(s).\n const res$ = events$.pipe(filter((event) => event instanceof HttpResponse));\n // Decide which stream to return.\n switch (options.observe || 'body') {\n case 'body':\n // The requested stream is the body. Map the response stream to the response\n // body. This could be done more simply, but a misbehaving interceptor might\n // transform the response body into a different format and ignore the requested\n // responseType. Guard against this by validating that the response is of the\n // requested type.\n switch (req.responseType) {\n case 'arraybuffer':\n return res$.pipe(map((res) => {\n // Validate that the body is an ArrayBuffer.\n if (res.body !== null && !(res.body instanceof ArrayBuffer)) {\n throw new Error('Response is not an ArrayBuffer.');\n }\n return res.body;\n }));\n case 'blob':\n return res$.pipe(map((res) => {\n // Validate that the body is a Blob.\n if (res.body !== null && !(res.body instanceof Blob)) {\n throw new Error('Response is not a Blob.');\n }\n return res.body;\n }));\n case 'text':\n return res$.pipe(map((res) => {\n // Validate that the body is a string.\n if (res.body !== null && typeof res.body !== 'string') {\n throw new Error('Response is not a string.');\n }\n return res.body;\n }));\n case 'json':\n default:\n // No validation needed for JSON responses, as they can be of any type.\n return res$.pipe(map((res) => res.body));\n }\n case 'response':\n // The response stream was requested directly, so return it.\n return res$;\n default:\n // Guard against new future observe types being added.\n throw new Error(`Unreachable: unhandled observe type ${options.observe}}`);\n }\n }\n /**\n * Constructs an observable that, when subscribed, causes the configured\n * `DELETE` request to execute on the server. See the individual overloads for\n * details on the return type.\n *\n * @param url The endpoint URL.\n * @param options The HTTP options to send with the request.\n *\n */\n delete(url, options = {}) {\n return this.request('DELETE', url, options);\n }\n /**\n * Constructs an observable that, when subscribed, causes the configured\n * `GET` request to execute on the server. See the individual overloads for\n * details on the return type.\n */\n get(url, options = {}) {\n return this.request('GET', url, options);\n }\n /**\n * Constructs an observable that, when subscribed, causes the configured\n * `HEAD` request to execute on the server. The `HEAD` method returns\n * meta information about the resource without transferring the\n * resource itself. See the individual overloads for\n * details on the return type.\n */\n head(url, options = {}) {\n return this.request('HEAD', url, options);\n }\n /**\n * Constructs an `Observable` that, when subscribed, causes a request with the special method\n * `JSONP` to be dispatched via the interceptor pipeline.\n * The [JSONP pattern](https://en.wikipedia.org/wiki/JSONP) works around limitations of certain\n * API endpoints that don't support newer,\n * and preferable [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) protocol.\n * JSONP treats the endpoint API as a JavaScript file and tricks the browser to process the\n * requests even if the API endpoint is not located on the same domain (origin) as the client-side\n * application making the request.\n * The endpoint API must support JSONP callback for JSONP requests to work.\n * The resource API returns the JSON response wrapped in a callback function.\n * You can pass the callback function name as one of the query parameters.\n * Note that JSONP requests can only be used with `GET` requests.\n *\n * @param url The resource URL.\n * @param callbackParam The callback function name.\n *\n */\n jsonp(url, callbackParam) {\n return this.request('JSONP', url, {\n params: new HttpParams().append(callbackParam, 'JSONP_CALLBACK'),\n observe: 'body',\n responseType: 'json',\n });\n }\n /**\n * Constructs an `Observable` that, when subscribed, causes the configured\n * `OPTIONS` request to execute on the server. This method allows the client\n * to determine the supported HTTP methods and other capabilities of an endpoint,\n * without implying a resource action. See the individual overloads for\n * details on the return type.\n */\n options(url, options = {}) {\n return this.request('OPTIONS', url, options);\n }\n /**\n * Constructs an observable that, when subscribed, causes the configured\n * `PATCH` request to execute on the server. See the individual overloads for\n * details on the return type.\n */\n patch(url, body, options = {}) {\n return this.request('PATCH', url, addBody(options, body));\n }\n /**\n * Constructs an observable that, when subscribed, causes the configured\n * `POST` request to execute on the server. The server responds with the location of\n * the replaced resource. See the individual overloads for\n * details on the return type.\n */\n post(url, body, options = {}) {\n return this.request('POST', url, addBody(options, body));\n }\n /**\n * Constructs an observable that, when subscribed, causes the configured\n * `PUT` request to execute on the server. The `PUT` method replaces an existing resource\n * with a new set of values.\n * See the individual overloads for details on the return type.\n */\n put(url, body, options = {}) {\n return this.request('PUT', url, addBody(options, body));\n }\n}\nHttpClient.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: HttpClient, deps: [{ token: HttpHandler }], target: i0.ɵɵFactoryTarget.Injectable });\nHttpClient.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: HttpClient });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: HttpClient, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: HttpHandler }]; } });\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 * `HttpHandler` which applies an `HttpInterceptor` to an `HttpRequest`.\n *\n *\n */\nclass HttpInterceptorHandler {\n constructor(next, interceptor) {\n this.next = next;\n this.interceptor = interceptor;\n }\n handle(req) {\n return this.interceptor.intercept(req, this.next);\n }\n}\n/**\n * A multi-provider token that represents the array of registered\n * `HttpInterceptor` objects.\n *\n * @publicApi\n */\nconst HTTP_INTERCEPTORS = new InjectionToken('HTTP_INTERCEPTORS');\nclass NoopInterceptor {\n intercept(req, next) {\n return next.handle(req);\n }\n}\nNoopInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NoopInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nNoopInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NoopInterceptor });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: NoopInterceptor, decorators: [{\n type: Injectable\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// Every request made through JSONP needs a callback name that's unique across the\n// whole page. Each request is assigned an id and the callback name is constructed\n// from that. The next id to be assigned is tracked in a global variable here that\n// is shared among all applications on the page.\nlet nextRequestId = 0;\n/**\n * When a pending